@w3lib/evm-batch-call 0.6.0 → 0.8.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 +54 -0
- package/README.md +367 -3
- 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/dividends.d.ts +135 -0
- package/dist/dividends.d.ts.map +1 -0
- package/dist/dividends.js +253 -0
- package/dist/dividends.js.map +1 -0
- 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/history.d.ts +154 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +247 -0
- package/dist/history.js.map +1 -0
- package/dist/historySources.d.ts +32 -0
- package/dist/historySources.d.ts.map +1 -0
- package/dist/historySources.js +319 -0
- package/dist/historySources.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/liquidity/v3.d.ts +2 -0
- package/dist/liquidity/v3.d.ts.map +1 -1
- package/dist/liquidity/v3.js +1 -1
- package/dist/liquidity/v3.js.map +1 -1
- package/dist/liquidity/v4.d.ts +21 -0
- package/dist/liquidity/v4.d.ts.map +1 -1
- package/dist/liquidity/v4.js +4 -3
- package/dist/liquidity/v4.js.map +1 -1
- package/dist/lp.d.ts +10 -1
- package/dist/lp.d.ts.map +1 -1
- package/dist/lp.js +19 -2
- package/dist/lp.js.map +1 -1
- package/dist/lpV4.d.ts +4 -0
- package/dist/lpV4.d.ts.map +1 -1
- package/dist/lpV4.js +27 -3
- package/dist/lpV4.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/permit.d.ts +137 -0
- package/dist/permit.d.ts.map +1 -0
- package/dist/permit.js +355 -0
- package/dist/permit.js.map +1 -0
- package/dist/portfolio.d.ts +56 -0
- package/dist/portfolio.d.ts.map +1 -0
- package/dist/portfolio.js +54 -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/rewards/farms.d.ts +26 -0
- package/dist/rewards/farms.d.ts.map +1 -0
- package/dist/rewards/farms.js +210 -0
- package/dist/rewards/farms.js.map +1 -0
- package/dist/rewards/index.d.ts +42 -0
- package/dist/rewards/index.d.ts.map +1 -0
- package/dist/rewards/index.js +382 -0
- package/dist/rewards/index.js.map +1 -0
- package/dist/rewards/types.d.ts +170 -0
- package/dist/rewards/types.d.ts.map +1 -0
- package/dist/rewards/types.js +2 -0
- package/dist/rewards/types.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/simulate.d.ts +186 -0
- package/dist/simulate.d.ts.map +1 -0
- package/dist/simulate.js +559 -0
- package/dist/simulate.js.map +1 -0
- package/dist/simulateDecode.d.ts +33 -0
- package/dist/simulateDecode.d.ts.map +1 -0
- package/dist/simulateDecode.js +321 -0
- package/dist/simulateDecode.js.map +1 -0
- package/dist/smartAccount/account.d.ts +31 -0
- package/dist/smartAccount/account.d.ts.map +1 -0
- package/dist/smartAccount/account.js +33 -0
- package/dist/smartAccount/account.js.map +1 -0
- package/dist/smartAccount/clients.d.ts +77 -0
- package/dist/smartAccount/clients.d.ts.map +1 -0
- package/dist/smartAccount/clients.js +122 -0
- package/dist/smartAccount/clients.js.map +1 -0
- package/dist/smartAccount/eip5792.d.ts +77 -0
- package/dist/smartAccount/eip5792.d.ts.map +1 -0
- package/dist/smartAccount/eip5792.js +152 -0
- package/dist/smartAccount/eip5792.js.map +1 -0
- package/dist/smartAccount/send.d.ts +40 -0
- package/dist/smartAccount/send.d.ts.map +1 -0
- package/dist/smartAccount/send.js +271 -0
- package/dist/smartAccount/send.js.map +1 -0
- package/dist/smartAccount/userOp.d.ts +91 -0
- package/dist/smartAccount/userOp.d.ts.map +1 -0
- package/dist/smartAccount/userOp.js +124 -0
- package/dist/smartAccount/userOp.js.map +1 -0
- 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/dividends.d.ts +28 -0
- package/dist/subpaths/dividends.d.ts.map +1 -0
- package/dist/subpaths/dividends.js +29 -0
- package/dist/subpaths/dividends.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/history.d.ts +22 -0
- package/dist/subpaths/history.d.ts.map +1 -0
- package/dist/subpaths/history.js +23 -0
- package/dist/subpaths/history.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/permit.d.ts +14 -0
- package/dist/subpaths/permit.d.ts.map +1 -0
- package/dist/subpaths/permit.js +14 -0
- package/dist/subpaths/permit.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/rewards.d.ts +27 -0
- package/dist/subpaths/rewards.d.ts.map +1 -0
- package/dist/subpaths/rewards.js +25 -0
- package/dist/subpaths/rewards.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/simulate.d.ts +25 -0
- package/dist/subpaths/simulate.d.ts.map +1 -0
- package/dist/subpaths/simulate.js +28 -0
- package/dist/subpaths/simulate.js.map +1 -0
- package/dist/subpaths/smart-account.d.ts +24 -0
- package/dist/subpaths/smart-account.d.ts.map +1 -0
- package/dist/subpaths/smart-account.js +24 -0
- package/dist/subpaths/smart-account.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 +168 -0
- package/dist/swap.d.ts.map +1 -0
- package/dist/swap.js +387 -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/batch.d.ts +34 -2
- package/dist/write/batch.d.ts.map +1 -1
- package/dist/write/batch.js +22 -3
- package/dist/write/batch.js.map +1 -1
- package/dist/write/collect.d.ts +9 -0
- package/dist/write/collect.d.ts.map +1 -1
- package/dist/write/collect.js +41 -1
- package/dist/write/collect.js.map +1 -1
- package/dist/write/send.d.ts +4 -0
- package/dist/write/send.d.ts.map +1 -1
- package/dist/write/send.js.map +1 -1
- package/dist/write/signer.d.ts +5 -1
- package/dist/write/signer.d.ts.map +1 -1
- package/dist/write/signer.js.map +1 -1
- package/dist/write/transfer.d.ts +5 -3
- package/dist/write/transfer.d.ts.map +1 -1
- package/dist/write/transfer.js +12 -6
- package/dist/write/transfer.js.map +1 -1
- 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 +73 -16
- package/src/aggregate.ts +110 -3
- package/src/approvals.ts +462 -0
- package/src/chains.ts +4 -0
- package/src/dividends.ts +360 -0
- package/src/fees.ts +201 -0
- package/src/history.ts +367 -0
- package/src/historySources.ts +360 -0
- package/src/http.ts +34 -0
- package/src/liquidity/v3.ts +1 -1
- package/src/liquidity/v4.ts +4 -3
- package/src/lp.ts +21 -2
- package/src/lpV4.ts +32 -2
- package/src/multicall.ts +3 -0
- package/src/names.ts +141 -0
- package/src/owner.ts +7 -138
- package/src/permit.ts +457 -0
- package/src/portfolio.ts +98 -0
- package/src/price.ts +415 -0
- package/src/rewards/farms.ts +229 -0
- package/src/rewards/index.ts +431 -0
- package/src/rewards/types.ts +179 -0
- package/src/risk.ts +166 -0
- package/src/rpcNodes.ts +18 -0
- package/src/simulate.ts +727 -0
- package/src/simulateDecode.ts +352 -0
- package/src/smartAccount/account.ts +63 -0
- package/src/smartAccount/clients.ts +180 -0
- package/src/smartAccount/eip5792.ts +187 -0
- package/src/smartAccount/send.ts +341 -0
- package/src/smartAccount/userOp.ts +180 -0
- package/src/subpaths/approvals.ts +48 -0
- package/src/subpaths/dividends.ts +47 -0
- package/src/subpaths/fees.ts +43 -0
- package/src/subpaths/history.ts +41 -0
- package/src/subpaths/names.ts +43 -0
- package/src/subpaths/permit.ts +39 -0
- package/src/subpaths/price.ts +60 -0
- package/src/subpaths/rewards.ts +46 -0
- package/src/subpaths/risk.ts +23 -0
- package/src/subpaths/simulate.ts +51 -0
- package/src/subpaths/smart-account.ts +40 -0
- package/src/subpaths/swap.ts +36 -0
- package/src/swap.ts +534 -0
- package/src/tokenProbe.ts +5 -0
- package/src/write/batch.ts +44 -5
- package/src/write/collect.ts +60 -1
- package/src/write/send.ts +4 -0
- package/src/write/signer.ts +5 -1
- package/src/write/transfer.ts +17 -10
- 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":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAa,MAAM,WAAW,CAAA;AACtD,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAC9D,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;AAUD,eAAe;AACf,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAwBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAuBxF;AAED,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BhE,CAAA;AAkBD,qEAAqE;AACrE,wBAAgB,kBAAkB,IAAI,WAAW,CAYhD;AAED,uFAAuF;AACvF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAOnF;AAED,6BAA6B;AAC7B,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,eAAe,CAAC,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAQ1H;AAED,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoB7D,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACvC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,WAAW,CAyClE;AAID;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,WAAW,CA2CnE;AASD,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW,CAqBrE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW,CAgB9D;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,IAAI,WAAW,CAEhD;AAiBD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACzG,OAAO,EAAE,eAAe,EAAE,CAAA;AAe1B,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,uEAAuE;IACvE,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;IAC9B,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uFAAuF;IACvF,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAA;CAC9C;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA+F5H"}
|
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":"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"}
|
|
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,eAAe,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,eAAe,EAAoB,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,YAAY,EAA4B,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AA6BrE,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAC/B,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAC3B,MAAM,YAAY,GAAG,4CAA4C,CAAA;AAEjE,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;AAED,mDAAmD;AACnD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAA6C,MAAM,YAAY,CAAA;AACzG,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,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,QAAQ,EAAE,CAAC;QACtO,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"}
|
package/dist/permit.d.ts
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 免 gas 授权(子路径 `@w3lib/evm-batch-call/permit`):EIP-2612 permit(含 DAI 风格)、Permit2(AllowanceTransfer 的 PermitSingle / PermitBatch、
|
|
3
|
+
* SignatureTransfer 的 permitTransferFrom)。构建 EIP-712 数据、用 ethers Signer 签名(私钥 / 浏览器钱包都行)、本地验证签名、生成上链的 calldata。
|
|
4
|
+
*
|
|
5
|
+
* 安全默认:金额精确(无限额度要显式 allowUnlimited)、有效期默认 30 分钟(超过 24 小时要显式 allowLongDeadline)、
|
|
6
|
+
* 签名前核对 owner = 签名者、chainId、verifyingContract(代币本身 / Permit2)、spender 不是零地址
|
|
7
|
+
*/
|
|
8
|
+
import { type TypedDataDomain, type TypedDataField } from 'ethers';
|
|
9
|
+
import type { Provider } from './provider.js';
|
|
10
|
+
import type { WriteSigner } from './write/signer.js';
|
|
11
|
+
/** Uniswap 的 Permit2(各 EVM 链上地址相同) */
|
|
12
|
+
export declare const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
|
|
13
|
+
export declare const MAX_UINT160: bigint;
|
|
14
|
+
/** 默认的签名有效期(秒) */
|
|
15
|
+
export declare const DEFAULT_PERMIT_DEADLINE = 1800;
|
|
16
|
+
/** 有效期超过这个值(秒)要显式 allowLongDeadline */
|
|
17
|
+
export declare const MAX_PERMIT_DEADLINE = 86400;
|
|
18
|
+
export type PermitKind = 'eip2612' | 'dai' | 'permit2-single' | 'permit2-batch' | 'permit2-transfer';
|
|
19
|
+
export interface TypedData {
|
|
20
|
+
domain: TypedDataDomain;
|
|
21
|
+
types: Record<string, TypedDataField[]>;
|
|
22
|
+
primaryType: string;
|
|
23
|
+
message: Record<string, any>;
|
|
24
|
+
}
|
|
25
|
+
/** 一个待签名的授权:typedData 是要签的内容,其余是它的摘要(签名前核对用) */
|
|
26
|
+
export interface Permit {
|
|
27
|
+
kind: PermitKind;
|
|
28
|
+
chainId: number;
|
|
29
|
+
owner: string;
|
|
30
|
+
spender: string;
|
|
31
|
+
/** 代币地址(permit2-batch 为每个代币一项) */
|
|
32
|
+
tokens: string[];
|
|
33
|
+
/** 授权 / 转账的数量(最小单位),与 tokens 一一对应(DAI 风格为 '0' / 无限) */
|
|
34
|
+
amounts: string[];
|
|
35
|
+
/** 签名过期时间(unix 秒) */
|
|
36
|
+
deadline: number;
|
|
37
|
+
/** permit2-single / batch:额度本身的过期时间(unix 秒) */
|
|
38
|
+
expiration?: number;
|
|
39
|
+
/** 签名要用的 nonce(permit2-batch 为每个代币一项) */
|
|
40
|
+
nonces: string[];
|
|
41
|
+
typedData: TypedData;
|
|
42
|
+
}
|
|
43
|
+
export interface SignedPermit {
|
|
44
|
+
permit: Permit;
|
|
45
|
+
signature: string;
|
|
46
|
+
/** 紧凑的 v / r / s,给 permit() 的参数用 */
|
|
47
|
+
v: number;
|
|
48
|
+
r: string;
|
|
49
|
+
s: string;
|
|
50
|
+
}
|
|
51
|
+
export interface PermitOptions {
|
|
52
|
+
/** 签名有效期(秒),默认 1800;也可传 deadlineAt(unix 秒) */
|
|
53
|
+
deadline?: number;
|
|
54
|
+
deadlineAt?: number;
|
|
55
|
+
/** 允许无限额度(MaxUint256 / MaxUint160,DAI 风格的 permit 本身只能授权无限)。默认拒绝 */
|
|
56
|
+
allowUnlimited?: boolean;
|
|
57
|
+
/** 允许超过 24 小时的有效期。默认拒绝 */
|
|
58
|
+
allowLongDeadline?: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface PermitSupport {
|
|
61
|
+
/** null:不支持(reason 说明原因) */
|
|
62
|
+
kind: 'eip2612' | 'dai' | null;
|
|
63
|
+
/** 支持时:EIP-712 domain(已和代币的 DOMAIN_SEPARATOR 核对一致) */
|
|
64
|
+
domain?: TypedDataDomain;
|
|
65
|
+
reason?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 检测代币是否支持 permit:读 nonces / DOMAIN_SEPARATOR / name / version / eip712Domain(EIP-5267),
|
|
69
|
+
* 按链 ID 和代币地址重新算 domain,**和代币的 DOMAIN_SEPARATOR 逐位一致**才算支持(不一致说明 domain 参数猜错或代币的实现特殊,签了也会被拒)。
|
|
70
|
+
* 通过 PERMIT_TYPEHASH 区分 DAI 风格(Permit(holder, spender, nonce, expiry, allowed))
|
|
71
|
+
*/
|
|
72
|
+
export declare function detectPermit(provider: Provider, token: string): Promise<PermitSupport>;
|
|
73
|
+
export interface BuildPermitParams {
|
|
74
|
+
token: string;
|
|
75
|
+
owner: string;
|
|
76
|
+
spender: string;
|
|
77
|
+
/** 授权的数量(最小单位,精确)。DAI 风格的 permit 只能授权无限额度,要 allowUnlimited: true 才会构建 */
|
|
78
|
+
value: bigint | string | number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* 构建 EIP-2612 permit(代币不支持、domain 对不上时抛错):读 owner 当前的 nonce,默认有效期 30 分钟、精确额度。
|
|
82
|
+
* 返回要签的数据(`signPermit` 签名)
|
|
83
|
+
*/
|
|
84
|
+
export declare function buildPermit(provider: Provider, params: BuildPermitParams, options?: PermitOptions): Promise<Permit>;
|
|
85
|
+
/** 代币上的 permit 调用 calldata(任何人都可以提交,不需要是 owner) */
|
|
86
|
+
export declare function permitCalldata(signed: SignedPermit): string;
|
|
87
|
+
export interface Permit2AllowanceParams {
|
|
88
|
+
token: string;
|
|
89
|
+
owner: string;
|
|
90
|
+
/** 被授权方(路由合约等),在 Permit2 里能 transferFrom 的地址 */
|
|
91
|
+
spender: string;
|
|
92
|
+
/** 额度(最小单位,精确,≤ 2^160 − 1) */
|
|
93
|
+
amount: bigint | string | number;
|
|
94
|
+
/** 额度的过期时间(unix 秒),默认和签名一样 30 分钟(Permit2 的额度过期后自动失效) */
|
|
95
|
+
expirationAt?: number;
|
|
96
|
+
}
|
|
97
|
+
/** 构建 Permit2 AllowanceTransfer 的 PermitSingle(owner 签名后任何人可调 permit2.permit,之后 spender 可通过 Permit2 转走额度内的代币) */
|
|
98
|
+
export declare function buildPermit2Single(provider: Provider, params: Permit2AllowanceParams, options?: PermitOptions): Promise<Permit>;
|
|
99
|
+
export interface Permit2BatchParams {
|
|
100
|
+
owner: string;
|
|
101
|
+
spender: string;
|
|
102
|
+
items: ReadonlyArray<{
|
|
103
|
+
token: string;
|
|
104
|
+
amount: bigint | string | number;
|
|
105
|
+
}>;
|
|
106
|
+
expirationAt?: number;
|
|
107
|
+
}
|
|
108
|
+
/** 构建 Permit2 的 PermitBatch(多个代币一个签名);items 只有一个且 single 时为 PermitSingle */
|
|
109
|
+
export declare function buildPermit2Batch(provider: Provider, params: Permit2BatchParams, options?: PermitOptions, single?: boolean): Promise<Permit>;
|
|
110
|
+
export interface Permit2TransferParams {
|
|
111
|
+
token: string;
|
|
112
|
+
owner: string;
|
|
113
|
+
/** 能调 permitTransferFrom 的合约(只有它能用这个签名) */
|
|
114
|
+
spender: string;
|
|
115
|
+
/** 最多转走的数量(最小单位,精确) */
|
|
116
|
+
amount: bigint | string | number;
|
|
117
|
+
/** 不传时随机生成(SignatureTransfer 的 nonce 是无序位图,随机数不会冲突) */
|
|
118
|
+
nonce?: bigint;
|
|
119
|
+
}
|
|
120
|
+
/** 构建 Permit2 SignatureTransfer 的 PermitTransferFrom:一次性签名,不留下链上额度(spender 合约在同一笔交易里 permitTransferFrom) */
|
|
121
|
+
export declare function buildPermit2Transfer(provider: Provider, params: Permit2TransferParams, options?: PermitOptions): Promise<Permit>;
|
|
122
|
+
/** Permit2.permit(owner, permitSingle | permitBatch, signature) 的 calldata */
|
|
123
|
+
export declare function permit2Calldata(signed: SignedPermit): string;
|
|
124
|
+
/** Permit2.permitTransferFrom 的 calldata:把 owner 的代币转给 to(spender 合约调用) */
|
|
125
|
+
export declare function permitTransferFromCalldata(signed: SignedPermit, to: string, requestedAmount?: bigint): string;
|
|
126
|
+
/** 签名前的核对:typedData 里的内容要和 permit 摘要一致(防止被替换)、链 / 合约地址正确、签名者就是 owner */
|
|
127
|
+
export declare function assertPermitSafe(permit: Permit, signerAddress?: string, chainId?: number): void;
|
|
128
|
+
/**
|
|
129
|
+
* 签名:signer 是 ethers Signer(Wallet、浏览器钱包的 JsonRpcSigner 等,用 signTypedData)或私钥以外的任何有 signTypedData 的对象。
|
|
130
|
+
* 签名前核对(assertPermitSafe),签完本地验证签名确实来自 owner
|
|
131
|
+
*/
|
|
132
|
+
export declare function signPermit(signer: Pick<WriteSigner, 'getAddress' | 'signTypedData'>, permit: Permit, options?: {
|
|
133
|
+
chainId?: number;
|
|
134
|
+
}): Promise<SignedPermit>;
|
|
135
|
+
/** 本地验证签名:恢复出的地址是不是 owner(EOA 签名;合约账户的 ERC-1271 签名无法本地验证,返回 false) */
|
|
136
|
+
export declare function verifyPermitSignature(permit: Permit, signature: string): boolean;
|
|
137
|
+
//# sourceMappingURL=permit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permit.d.ts","sourceRoot":"","sources":["../src/permit.ts"],"names":[],"mappings":"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"}
|