@berachain/berajs 0.2.8-beta.7 → 0.2.8-beta.8
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/dist/abi/exports.cjs +4452 -1
- package/dist/abi/exports.cjs.map +1 -1
- package/dist/abi/exports.mjs +4452 -1
- package/dist/abi/exports.mjs.map +1 -1
- package/dist/actions/exports.cjs +913 -1
- package/dist/actions/exports.cjs.map +1 -1
- package/dist/actions/exports.mjs +913 -1
- package/dist/actions/exports.mjs.map +1 -1
- package/dist/chunk-2R73G2PO.mjs +4698 -0
- package/dist/{chunk-MASD43N5.mjs.map → chunk-2R73G2PO.mjs.map} +1 -1
- package/dist/chunk-3M47ZRXT.mjs +417 -0
- package/dist/{chunk-ESAVA5OD.mjs.map → chunk-3M47ZRXT.mjs.map} +1 -1
- package/dist/chunk-4GFN4LEP.mjs +97 -0
- package/dist/{chunk-5W7UKRHX.mjs.map → chunk-4GFN4LEP.mjs.map} +1 -1
- package/dist/chunk-5N7QQS55.cjs +130 -0
- package/dist/chunk-5N7QQS55.cjs.map +1 -0
- package/dist/chunk-5NMATIH4.mjs +130 -0
- package/dist/{chunk-SSPFPAWX.mjs.map → chunk-5NMATIH4.mjs.map} +1 -1
- package/dist/chunk-7QKRRIHI.mjs +1844 -0
- package/dist/{chunk-RSDCKN4Q.mjs.map → chunk-7QKRRIHI.mjs.map} +1 -1
- package/dist/chunk-7TFV6UKF.mjs +24 -0
- package/dist/{chunk-MK5NS5B5.mjs.map → chunk-7TFV6UKF.mjs.map} +1 -1
- package/dist/chunk-A4FPM7U3.cjs +63 -0
- package/dist/chunk-A4FPM7U3.cjs.map +1 -0
- package/dist/chunk-BDHINMWQ.cjs +417 -0
- package/dist/chunk-BDHINMWQ.cjs.map +1 -0
- package/dist/chunk-BEHP54S3.cjs +24 -0
- package/dist/chunk-BEHP54S3.cjs.map +1 -0
- package/dist/chunk-EGDXV2PT.cjs +36 -0
- package/dist/chunk-EGDXV2PT.cjs.map +1 -0
- package/dist/chunk-EWBKSMPG.cjs +13 -0
- package/dist/chunk-EWBKSMPG.cjs.map +1 -0
- package/dist/chunk-F6ZW7ZDD.cjs +403 -0
- package/dist/chunk-F6ZW7ZDD.cjs.map +1 -0
- package/dist/chunk-FTXTRUYT.cjs +170 -0
- package/dist/chunk-FTXTRUYT.cjs.map +1 -0
- package/dist/chunk-GLWPRM33.mjs +13 -0
- package/dist/{chunk-575OK77P.mjs.map → chunk-GLWPRM33.mjs.map} +1 -1
- package/dist/chunk-GWSTVITN.mjs +572 -0
- package/dist/{chunk-NLVWRMGD.mjs.map → chunk-GWSTVITN.mjs.map} +1 -1
- package/dist/chunk-H3Z37RYU.cjs +15 -0
- package/dist/chunk-H3Z37RYU.cjs.map +1 -0
- package/dist/chunk-I3FTWD6I.mjs +170 -0
- package/dist/{chunk-JDZGYU5T.mjs.map → chunk-I3FTWD6I.mjs.map} +1 -1
- package/dist/chunk-JA4DHMTG.mjs +15 -0
- package/dist/{chunk-OGBD5YOG.mjs.map → chunk-JA4DHMTG.mjs.map} +1 -1
- package/dist/chunk-KL6YZ5VR.mjs +63 -0
- package/dist/{chunk-OGJMSGB2.mjs.map → chunk-KL6YZ5VR.mjs.map} +1 -1
- package/dist/chunk-MXWPP6MS.cjs +572 -0
- package/dist/chunk-MXWPP6MS.cjs.map +1 -0
- package/dist/chunk-SGZP4O6R.mjs +135 -0
- package/dist/{chunk-6K252BGM.mjs.map → chunk-SGZP4O6R.mjs.map} +1 -1
- package/dist/chunk-TDW5SPXR.cjs +244 -0
- package/dist/chunk-TDW5SPXR.cjs.map +1 -0
- package/dist/chunk-TGK3IXDN.cjs +169 -0
- package/dist/chunk-TGK3IXDN.cjs.map +1 -0
- package/dist/chunk-TJEW6YCJ.cjs +97 -0
- package/dist/chunk-TJEW6YCJ.cjs.map +1 -0
- package/dist/chunk-VA3BQ34H.mjs +403 -0
- package/dist/{chunk-UENDEN3M.mjs.map → chunk-VA3BQ34H.mjs.map} +1 -1
- package/dist/chunk-VA5L5FDG.mjs +36 -0
- package/dist/{chunk-3MZ7MLKF.mjs.map → chunk-VA5L5FDG.mjs.map} +1 -1
- package/dist/chunk-XSGCRLSD.cjs +1844 -0
- package/dist/chunk-XSGCRLSD.cjs.map +1 -0
- package/dist/chunk-XV3GG3HC.cjs +135 -0
- package/dist/chunk-XV3GG3HC.cjs.map +1 -0
- package/dist/chunk-Y5B224UX.cjs +4698 -0
- package/dist/chunk-Y5B224UX.cjs.map +1 -0
- package/dist/chunk-ZBTRKBSI.mjs +169 -0
- package/dist/{chunk-CWKDFUFR.mjs.map → chunk-ZBTRKBSI.mjs.map} +1 -1
- package/dist/chunk-ZCEFC2TK.mjs +244 -0
- package/dist/{chunk-NAXAZJJY.mjs.map → chunk-ZCEFC2TK.mjs.map} +1 -1
- package/dist/contexts/exports.cjs +82 -1
- package/dist/contexts/exports.cjs.map +1 -1
- package/dist/contexts/exports.mjs +82 -1
- package/dist/contexts/exports.mjs.map +1 -1
- package/dist/enum/exports.cjs +58 -1
- package/dist/enum/exports.cjs.map +1 -1
- package/dist/enum/exports.mjs +58 -1
- package/dist/enum/exports.mjs.map +1 -1
- package/dist/errors/exports.cjs +38 -1
- package/dist/errors/exports.cjs.map +1 -1
- package/dist/errors/exports.mjs +38 -1
- package/dist/hooks/exports.cjs +8332 -3
- package/dist/hooks/exports.cjs.map +1 -1
- package/dist/hooks/exports.mjs +8332 -3
- package/dist/hooks/exports.mjs.map +1 -1
- package/dist/utils/exports.cjs +786 -1
- package/dist/utils/exports.cjs.map +1 -1
- package/dist/utils/exports.mjs +786 -1
- package/dist/utils/exports.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-3MZ7MLKF.mjs +0 -2
- package/dist/chunk-53TSJM6P.cjs +0 -2
- package/dist/chunk-53TSJM6P.cjs.map +0 -1
- package/dist/chunk-575OK77P.mjs +0 -2
- package/dist/chunk-5W7UKRHX.mjs +0 -2
- package/dist/chunk-6K252BGM.mjs +0 -2
- package/dist/chunk-CWKDFUFR.mjs +0 -2
- package/dist/chunk-D6L7LTA2.cjs +0 -2
- package/dist/chunk-D6L7LTA2.cjs.map +0 -1
- package/dist/chunk-DDEQFR3M.cjs +0 -2
- package/dist/chunk-DDEQFR3M.cjs.map +0 -1
- package/dist/chunk-DKY4QPWU.cjs +0 -2
- package/dist/chunk-DKY4QPWU.cjs.map +0 -1
- package/dist/chunk-DTBJO6VT.cjs +0 -2
- package/dist/chunk-DTBJO6VT.cjs.map +0 -1
- package/dist/chunk-ESAVA5OD.mjs +0 -2
- package/dist/chunk-JDZGYU5T.mjs +0 -2
- package/dist/chunk-JLFBRMOF.cjs +0 -2
- package/dist/chunk-JLFBRMOF.cjs.map +0 -1
- package/dist/chunk-KT6L4K4K.cjs +0 -2
- package/dist/chunk-KT6L4K4K.cjs.map +0 -1
- package/dist/chunk-MASD43N5.mjs +0 -4
- package/dist/chunk-MGGPHKA2.cjs +0 -4
- package/dist/chunk-MGGPHKA2.cjs.map +0 -1
- package/dist/chunk-MK5NS5B5.mjs +0 -2
- package/dist/chunk-NAXAZJJY.mjs +0 -2
- package/dist/chunk-NLVWRMGD.mjs +0 -2
- package/dist/chunk-OGBD5YOG.mjs +0 -2
- package/dist/chunk-OGJMSGB2.mjs +0 -2
- package/dist/chunk-OIYXOKTT.cjs +0 -2
- package/dist/chunk-OIYXOKTT.cjs.map +0 -1
- package/dist/chunk-OUD27MU7.cjs +0 -2
- package/dist/chunk-OUD27MU7.cjs.map +0 -1
- package/dist/chunk-QFLDL4UV.cjs +0 -2
- package/dist/chunk-QFLDL4UV.cjs.map +0 -1
- package/dist/chunk-RSDCKN4Q.mjs +0 -2
- package/dist/chunk-RWOICHRW.cjs +0 -2
- package/dist/chunk-RWOICHRW.cjs.map +0 -1
- package/dist/chunk-SSPFPAWX.mjs +0 -2
- package/dist/chunk-UENDEN3M.mjs +0 -2
- package/dist/chunk-UFIM7WQ4.cjs +0 -2
- package/dist/chunk-UFIM7WQ4.cjs.map +0 -1
- package/dist/chunk-WRFDB3QJ.cjs +0 -2
- package/dist/chunk-WRFDB3QJ.cjs.map +0 -1
- package/dist/chunk-XNJLSA6P.cjs +0 -2
- package/dist/chunk-XNJLSA6P.cjs.map +0 -1
- package/dist/chunk-ZYXVUXFQ.cjs +0 -2
- package/dist/chunk-ZYXVUXFQ.cjs.map +0 -1
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import {
|
|
2
|
+
multicall3Abi
|
|
3
|
+
} from "./chunk-ZCEFC2TK.mjs";
|
|
4
|
+
import {
|
|
5
|
+
assertAddress,
|
|
6
|
+
assertDefined,
|
|
7
|
+
assertPublicClient
|
|
8
|
+
} from "./chunk-ZBTRKBSI.mjs";
|
|
9
|
+
import {
|
|
10
|
+
isToken,
|
|
11
|
+
parseBaseArgs
|
|
12
|
+
} from "./chunk-4GFN4LEP.mjs";
|
|
13
|
+
|
|
14
|
+
// src/actions/clients/getEnsoClient.ts
|
|
15
|
+
import { EnsoClient } from "@ensofinance/sdk";
|
|
16
|
+
import { appConfig } from "@berachain/config/internal";
|
|
17
|
+
var isProduction = process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test";
|
|
18
|
+
function getEnsoClient({
|
|
19
|
+
useProxy = isProduction,
|
|
20
|
+
...args
|
|
21
|
+
} = {}) {
|
|
22
|
+
const { config } = parseBaseArgs(args);
|
|
23
|
+
return new EnsoClient({
|
|
24
|
+
baseURL: useProxy ? `${config.bex.aggregatorsProxyUrl}/enso/api/v1/` : void 0,
|
|
25
|
+
apiKey: useProxy ? (
|
|
26
|
+
// no API key since proxy has CORS for .berachain.com domains
|
|
27
|
+
""
|
|
28
|
+
) : appConfig.apiKeys.public.enso
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// src/actions/tokens/getWalletBalances.ts
|
|
33
|
+
import { getChainId, getPublicClient } from "@wagmi/core";
|
|
34
|
+
import {
|
|
35
|
+
erc20Abi,
|
|
36
|
+
formatUnits,
|
|
37
|
+
isAddress
|
|
38
|
+
} from "viem";
|
|
39
|
+
function getBalanceCall({
|
|
40
|
+
token,
|
|
41
|
+
account,
|
|
42
|
+
multicallAddress
|
|
43
|
+
}) {
|
|
44
|
+
if (isToken(token, "BERA") || isToken(token, "ETH")) {
|
|
45
|
+
return {
|
|
46
|
+
address: multicallAddress,
|
|
47
|
+
abi: multicall3Abi,
|
|
48
|
+
functionName: "getEthBalance",
|
|
49
|
+
args: [account]
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
address: token.address,
|
|
54
|
+
abi: erc20Abi,
|
|
55
|
+
functionName: "balanceOf",
|
|
56
|
+
args: [account]
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async function getWalletBalances({
|
|
60
|
+
account,
|
|
61
|
+
tokenList,
|
|
62
|
+
wagmiConfig: config
|
|
63
|
+
}) {
|
|
64
|
+
assertDefined(config, "config");
|
|
65
|
+
if (!account || !tokenList)
|
|
66
|
+
throw new Error("account or tokenList is not defined");
|
|
67
|
+
assertAddress(account, "account");
|
|
68
|
+
const filteredTokenList = tokenList.filter(
|
|
69
|
+
(token) => isAddress(token.address)
|
|
70
|
+
);
|
|
71
|
+
const tokensByChainId = Object.groupBy(
|
|
72
|
+
filteredTokenList,
|
|
73
|
+
(token) => token.chainId ?? getChainId(config)
|
|
74
|
+
);
|
|
75
|
+
const res = await Promise.allSettled(
|
|
76
|
+
Object.entries(tokensByChainId).map(async ([chainId, tokens]) => {
|
|
77
|
+
assertDefined(tokens, "tokens");
|
|
78
|
+
const publicClient = getPublicClient(config, {
|
|
79
|
+
chainId: Number(chainId)
|
|
80
|
+
});
|
|
81
|
+
assertPublicClient(publicClient, `publicClient ${chainId}`);
|
|
82
|
+
assertDefined(publicClient.chain, "publicClient.chain");
|
|
83
|
+
assertDefined(
|
|
84
|
+
publicClient.chain.contracts,
|
|
85
|
+
"publicClient.chain.contracts"
|
|
86
|
+
);
|
|
87
|
+
assertDefined(
|
|
88
|
+
publicClient.chain.contracts.multicall3,
|
|
89
|
+
"publicClient.chain.contracts.multicall3"
|
|
90
|
+
);
|
|
91
|
+
const { multicall3 } = publicClient.chain.contracts;
|
|
92
|
+
const multicall3Address = typeof multicall3 === "string" ? multicall3 : multicall3.address;
|
|
93
|
+
assertAddress(multicall3Address, "multicall3Address");
|
|
94
|
+
const call = tokens.map(
|
|
95
|
+
(token) => getBalanceCall({
|
|
96
|
+
token,
|
|
97
|
+
account,
|
|
98
|
+
multicallAddress: multicall3Address
|
|
99
|
+
})
|
|
100
|
+
);
|
|
101
|
+
const result = await publicClient.multicall({
|
|
102
|
+
contracts: call
|
|
103
|
+
});
|
|
104
|
+
return result.map((item, index) => {
|
|
105
|
+
const token = tokens[index];
|
|
106
|
+
if (item.error) {
|
|
107
|
+
return { ...token, balance: { raw: "0", formatted: "0" } };
|
|
108
|
+
}
|
|
109
|
+
const formattedBalance = formatUnits(
|
|
110
|
+
item.result,
|
|
111
|
+
token?.decimals || 18
|
|
112
|
+
);
|
|
113
|
+
const resultBalanceToken = {
|
|
114
|
+
...token,
|
|
115
|
+
balance: {
|
|
116
|
+
raw: item.result.toString(),
|
|
117
|
+
// TODO: this was done 10 months ago, i'm not sure it's a good solution.
|
|
118
|
+
formatted: formattedBalance.includes("e") ? "0" : formattedBalance
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
return resultBalanceToken;
|
|
122
|
+
});
|
|
123
|
+
})
|
|
124
|
+
);
|
|
125
|
+
return res.flatMap(
|
|
126
|
+
(result) => result.status === "fulfilled" ? result.value : []
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export {
|
|
131
|
+
getEnsoClient,
|
|
132
|
+
getBalanceCall,
|
|
133
|
+
getWalletBalances
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=chunk-SGZP4O6R.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/actions/clients/getEnsoClient.ts","../src/actions/tokens/getWalletBalances.ts"],"sourcesContent":["import { EnsoClient } from \"@ensofinance/sdk\";\n\nimport { appConfig } from \"@berachain/config/internal\";\n\nimport { parseBaseArgs } from \"../../utils/parseBaseArgs\";\n\nconst isProduction =\n process.env.NODE_ENV !== \"development\" && process.env.NODE_ENV !== \"test\";\n\nexport function getEnsoClient({\n useProxy = isProduction,\n ...args\n}: BeraJS.BaseFunctionArgs & { useProxy?: boolean } = {}) {\n const { config } = parseBaseArgs(args);\n return new EnsoClient({\n baseURL: useProxy\n ? `${config.bex.aggregatorsProxyUrl}/enso/api/v1/`\n : undefined,\n apiKey: useProxy\n ? // no API key since proxy has CORS for .berachain.com domains\n \"\"\n : appConfig.apiKeys.public.enso,\n });\n}\n","import { type Config, getChainId, getPublicClient } from \"@wagmi/core\";\nimport {\n type Address,\n type ContractFunctionParameters,\n erc20Abi,\n formatUnits,\n isAddress,\n} from \"viem\";\n\nimport { multicall3Abi } from \"../../abi/utils/multicall3\";\nimport {\n assertAddress,\n assertDefined,\n assertPublicClient,\n} from \"../../errors/assert\";\nimport type { BalanceToken, Token } from \"../../types/dex\";\nimport { isToken } from \"../../utils/tokens\";\n\nexport interface GetWalletBalances {\n account: string | undefined;\n tokenList: Token[] | undefined;\n wagmiConfig: Config | undefined;\n}\n\n/**\n * Returns the payload for the balanceOf call for a given token and account.\n *\n * @internal\n * @returns\n */\nexport function getBalanceCall({\n token,\n account,\n multicallAddress,\n}: {\n token: Token;\n account: Address;\n multicallAddress: Address;\n}) {\n if (isToken(token, \"BERA\") || isToken(token, \"ETH\")) {\n return {\n address: multicallAddress,\n abi: multicall3Abi,\n functionName: \"getEthBalance\",\n args: [account],\n } as const satisfies ContractFunctionParameters<\n typeof multicall3Abi,\n \"view\",\n \"getEthBalance\"\n >;\n }\n return {\n address: token.address as Address,\n abi: erc20Abi,\n functionName: \"balanceOf\",\n args: [account],\n } as const satisfies ContractFunctionParameters<\n typeof erc20Abi,\n \"view\",\n \"balanceOf\"\n >;\n}\n\n/**\n * fetch the balances of a given wallet address\n */\nexport async function getWalletBalances({\n account,\n tokenList,\n wagmiConfig: config,\n}: GetWalletBalances): Promise<BalanceToken[] | undefined> {\n assertDefined(config, \"config\");\n if (!account || !tokenList)\n throw new Error(\"account or tokenList is not defined\");\n\n assertAddress(account, \"account\");\n\n const filteredTokenList = tokenList.filter((token) =>\n isAddress(token.address),\n );\n\n const tokensByChainId = Object.groupBy(\n filteredTokenList,\n (token) => token.chainId ?? getChainId(config),\n );\n\n const res = await Promise.allSettled(\n Object.entries(tokensByChainId).map(async ([chainId, tokens]) => {\n assertDefined(tokens, \"tokens\");\n const publicClient = getPublicClient(config, {\n chainId: Number(chainId),\n });\n assertPublicClient(publicClient, `publicClient ${chainId}`);\n assertDefined(publicClient.chain, \"publicClient.chain\");\n assertDefined(\n publicClient.chain.contracts,\n \"publicClient.chain.contracts\",\n );\n assertDefined(\n publicClient.chain.contracts.multicall3,\n \"publicClient.chain.contracts.multicall3\",\n );\n\n const { multicall3 } = publicClient.chain.contracts;\n\n const multicall3Address =\n typeof multicall3 === \"string\" ? multicall3 : multicall3.address;\n\n assertAddress(multicall3Address, \"multicall3Address\");\n\n const call = tokens.map((token: Token) =>\n getBalanceCall({\n token,\n account,\n multicallAddress: multicall3Address,\n }),\n );\n\n const result = await publicClient.multicall({\n contracts: call,\n });\n\n return result.map((item, index) => {\n const token = tokens[index];\n if (item.error) {\n return { ...token, balance: { raw: \"0\", formatted: \"0\" } };\n }\n const formattedBalance = formatUnits(\n item.result,\n token?.decimals || 18,\n );\n\n const resultBalanceToken: BalanceToken = {\n ...token,\n balance: {\n raw: item.result.toString(),\n // TODO: this was done 10 months ago, i'm not sure it's a good solution.\n formatted: formattedBalance.includes(\"e\") ? \"0\" : formattedBalance,\n },\n } satisfies BalanceToken;\n return resultBalanceToken;\n });\n }),\n );\n\n return res.flatMap((result) =>\n result.status === \"fulfilled\" ? result.value : [],\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/actions/clients/getEnsoClient.ts","../src/actions/tokens/getWalletBalances.ts"],"sourcesContent":["import { EnsoClient } from \"@ensofinance/sdk\";\n\nimport { appConfig } from \"@berachain/config/internal\";\n\nimport { parseBaseArgs } from \"../../utils/parseBaseArgs\";\n\nconst isProduction =\n process.env.NODE_ENV !== \"development\" && process.env.NODE_ENV !== \"test\";\n\nexport function getEnsoClient({\n useProxy = isProduction,\n ...args\n}: BeraJS.BaseFunctionArgs & { useProxy?: boolean } = {}) {\n const { config } = parseBaseArgs(args);\n return new EnsoClient({\n baseURL: useProxy\n ? `${config.bex.aggregatorsProxyUrl}/enso/api/v1/`\n : undefined,\n apiKey: useProxy\n ? // no API key since proxy has CORS for .berachain.com domains\n \"\"\n : appConfig.apiKeys.public.enso,\n });\n}\n","import { type Config, getChainId, getPublicClient } from \"@wagmi/core\";\nimport {\n type Address,\n type ContractFunctionParameters,\n erc20Abi,\n formatUnits,\n isAddress,\n} from \"viem\";\n\nimport { multicall3Abi } from \"../../abi/utils/multicall3\";\nimport {\n assertAddress,\n assertDefined,\n assertPublicClient,\n} from \"../../errors/assert\";\nimport type { BalanceToken, Token } from \"../../types/dex\";\nimport { isToken } from \"../../utils/tokens\";\n\nexport interface GetWalletBalances {\n account: string | undefined;\n tokenList: Token[] | undefined;\n wagmiConfig: Config | undefined;\n}\n\n/**\n * Returns the payload for the balanceOf call for a given token and account.\n *\n * @internal\n * @returns\n */\nexport function getBalanceCall({\n token,\n account,\n multicallAddress,\n}: {\n token: Token;\n account: Address;\n multicallAddress: Address;\n}) {\n if (isToken(token, \"BERA\") || isToken(token, \"ETH\")) {\n return {\n address: multicallAddress,\n abi: multicall3Abi,\n functionName: \"getEthBalance\",\n args: [account],\n } as const satisfies ContractFunctionParameters<\n typeof multicall3Abi,\n \"view\",\n \"getEthBalance\"\n >;\n }\n return {\n address: token.address as Address,\n abi: erc20Abi,\n functionName: \"balanceOf\",\n args: [account],\n } as const satisfies ContractFunctionParameters<\n typeof erc20Abi,\n \"view\",\n \"balanceOf\"\n >;\n}\n\n/**\n * fetch the balances of a given wallet address\n */\nexport async function getWalletBalances({\n account,\n tokenList,\n wagmiConfig: config,\n}: GetWalletBalances): Promise<BalanceToken[] | undefined> {\n assertDefined(config, \"config\");\n if (!account || !tokenList)\n throw new Error(\"account or tokenList is not defined\");\n\n assertAddress(account, \"account\");\n\n const filteredTokenList = tokenList.filter((token) =>\n isAddress(token.address),\n );\n\n const tokensByChainId = Object.groupBy(\n filteredTokenList,\n (token) => token.chainId ?? getChainId(config),\n );\n\n const res = await Promise.allSettled(\n Object.entries(tokensByChainId).map(async ([chainId, tokens]) => {\n assertDefined(tokens, \"tokens\");\n const publicClient = getPublicClient(config, {\n chainId: Number(chainId),\n });\n assertPublicClient(publicClient, `publicClient ${chainId}`);\n assertDefined(publicClient.chain, \"publicClient.chain\");\n assertDefined(\n publicClient.chain.contracts,\n \"publicClient.chain.contracts\",\n );\n assertDefined(\n publicClient.chain.contracts.multicall3,\n \"publicClient.chain.contracts.multicall3\",\n );\n\n const { multicall3 } = publicClient.chain.contracts;\n\n const multicall3Address =\n typeof multicall3 === \"string\" ? multicall3 : multicall3.address;\n\n assertAddress(multicall3Address, \"multicall3Address\");\n\n const call = tokens.map((token: Token) =>\n getBalanceCall({\n token,\n account,\n multicallAddress: multicall3Address,\n }),\n );\n\n const result = await publicClient.multicall({\n contracts: call,\n });\n\n return result.map((item, index) => {\n const token = tokens[index];\n if (item.error) {\n return { ...token, balance: { raw: \"0\", formatted: \"0\" } };\n }\n const formattedBalance = formatUnits(\n item.result,\n token?.decimals || 18,\n );\n\n const resultBalanceToken: BalanceToken = {\n ...token,\n balance: {\n raw: item.result.toString(),\n // TODO: this was done 10 months ago, i'm not sure it's a good solution.\n formatted: formattedBalance.includes(\"e\") ? \"0\" : formattedBalance,\n },\n } satisfies BalanceToken;\n return resultBalanceToken;\n });\n }),\n );\n\n return res.flatMap((result) =>\n result.status === \"fulfilled\" ? result.value : [],\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/abi/utils/multicall3.ts
|
|
2
|
+
var multicall3Abi = [
|
|
3
|
+
{
|
|
4
|
+
inputs: [
|
|
5
|
+
{
|
|
6
|
+
components: [
|
|
7
|
+
{ internalType: "address", name: "target", type: "address" },
|
|
8
|
+
{ internalType: "bytes", name: "callData", type: "bytes" }
|
|
9
|
+
],
|
|
10
|
+
internalType: "struct Multicall3.Call[]",
|
|
11
|
+
name: "calls",
|
|
12
|
+
type: "tuple[]"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
name: "aggregate",
|
|
16
|
+
outputs: [
|
|
17
|
+
{ internalType: "uint256", name: "blockNumber", type: "uint256" },
|
|
18
|
+
{ internalType: "bytes[]", name: "returnData", type: "bytes[]" }
|
|
19
|
+
],
|
|
20
|
+
stateMutability: "payable",
|
|
21
|
+
type: "function"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
inputs: [
|
|
25
|
+
{
|
|
26
|
+
components: [
|
|
27
|
+
{ internalType: "address", name: "target", type: "address" },
|
|
28
|
+
{ internalType: "bool", name: "allowFailure", type: "bool" },
|
|
29
|
+
{ internalType: "bytes", name: "callData", type: "bytes" }
|
|
30
|
+
],
|
|
31
|
+
internalType: "struct Multicall3.Call3[]",
|
|
32
|
+
name: "calls",
|
|
33
|
+
type: "tuple[]"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
name: "aggregate3",
|
|
37
|
+
outputs: [
|
|
38
|
+
{
|
|
39
|
+
components: [
|
|
40
|
+
{ internalType: "bool", name: "success", type: "bool" },
|
|
41
|
+
{ internalType: "bytes", name: "returnData", type: "bytes" }
|
|
42
|
+
],
|
|
43
|
+
internalType: "struct Multicall3.Result[]",
|
|
44
|
+
name: "returnData",
|
|
45
|
+
type: "tuple[]"
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
stateMutability: "payable",
|
|
49
|
+
type: "function"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
inputs: [
|
|
53
|
+
{
|
|
54
|
+
components: [
|
|
55
|
+
{ internalType: "address", name: "target", type: "address" },
|
|
56
|
+
{ internalType: "bool", name: "allowFailure", type: "bool" },
|
|
57
|
+
{ internalType: "uint256", name: "value", type: "uint256" },
|
|
58
|
+
{ internalType: "bytes", name: "callData", type: "bytes" }
|
|
59
|
+
],
|
|
60
|
+
internalType: "struct Multicall3.Call3Value[]",
|
|
61
|
+
name: "calls",
|
|
62
|
+
type: "tuple[]"
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
name: "aggregate3Value",
|
|
66
|
+
outputs: [
|
|
67
|
+
{
|
|
68
|
+
components: [
|
|
69
|
+
{ internalType: "bool", name: "success", type: "bool" },
|
|
70
|
+
{ internalType: "bytes", name: "returnData", type: "bytes" }
|
|
71
|
+
],
|
|
72
|
+
internalType: "struct Multicall3.Result[]",
|
|
73
|
+
name: "returnData",
|
|
74
|
+
type: "tuple[]"
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
stateMutability: "payable",
|
|
78
|
+
type: "function"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
inputs: [
|
|
82
|
+
{
|
|
83
|
+
components: [
|
|
84
|
+
{ internalType: "address", name: "target", type: "address" },
|
|
85
|
+
{ internalType: "bytes", name: "callData", type: "bytes" }
|
|
86
|
+
],
|
|
87
|
+
internalType: "struct Multicall3.Call[]",
|
|
88
|
+
name: "calls",
|
|
89
|
+
type: "tuple[]"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
name: "blockAndAggregate",
|
|
93
|
+
outputs: [
|
|
94
|
+
{ internalType: "uint256", name: "blockNumber", type: "uint256" },
|
|
95
|
+
{ internalType: "bytes32", name: "blockHash", type: "bytes32" },
|
|
96
|
+
{
|
|
97
|
+
components: [
|
|
98
|
+
{ internalType: "bool", name: "success", type: "bool" },
|
|
99
|
+
{ internalType: "bytes", name: "returnData", type: "bytes" }
|
|
100
|
+
],
|
|
101
|
+
internalType: "struct Multicall3.Result[]",
|
|
102
|
+
name: "returnData",
|
|
103
|
+
type: "tuple[]"
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
stateMutability: "payable",
|
|
107
|
+
type: "function"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
inputs: [],
|
|
111
|
+
name: "getBasefee",
|
|
112
|
+
outputs: [{ internalType: "uint256", name: "basefee", type: "uint256" }],
|
|
113
|
+
stateMutability: "view",
|
|
114
|
+
type: "function"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
inputs: [{ internalType: "uint256", name: "blockNumber", type: "uint256" }],
|
|
118
|
+
name: "getBlockHash",
|
|
119
|
+
outputs: [{ internalType: "bytes32", name: "blockHash", type: "bytes32" }],
|
|
120
|
+
stateMutability: "view",
|
|
121
|
+
type: "function"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
inputs: [],
|
|
125
|
+
name: "getBlockNumber",
|
|
126
|
+
outputs: [
|
|
127
|
+
{ internalType: "uint256", name: "blockNumber", type: "uint256" }
|
|
128
|
+
],
|
|
129
|
+
stateMutability: "view",
|
|
130
|
+
type: "function"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
inputs: [],
|
|
134
|
+
name: "getChainId",
|
|
135
|
+
outputs: [{ internalType: "uint256", name: "chainid", type: "uint256" }],
|
|
136
|
+
stateMutability: "view",
|
|
137
|
+
type: "function"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
inputs: [],
|
|
141
|
+
name: "getCurrentBlockCoinbase",
|
|
142
|
+
outputs: [{ internalType: "address", name: "coinbase", type: "address" }],
|
|
143
|
+
stateMutability: "view",
|
|
144
|
+
type: "function"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
inputs: [],
|
|
148
|
+
name: "getCurrentBlockDifficulty",
|
|
149
|
+
outputs: [{ internalType: "uint256", name: "difficulty", type: "uint256" }],
|
|
150
|
+
stateMutability: "view",
|
|
151
|
+
type: "function"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
inputs: [],
|
|
155
|
+
name: "getCurrentBlockGasLimit",
|
|
156
|
+
outputs: [{ internalType: "uint256", name: "gaslimit", type: "uint256" }],
|
|
157
|
+
stateMutability: "view",
|
|
158
|
+
type: "function"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
inputs: [],
|
|
162
|
+
name: "getCurrentBlockTimestamp",
|
|
163
|
+
outputs: [{ internalType: "uint256", name: "timestamp", type: "uint256" }],
|
|
164
|
+
stateMutability: "view",
|
|
165
|
+
type: "function"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
inputs: [{ internalType: "address", name: "addr", type: "address" }],
|
|
169
|
+
name: "getEthBalance",
|
|
170
|
+
outputs: [{ internalType: "uint256", name: "balance", type: "uint256" }],
|
|
171
|
+
stateMutability: "view",
|
|
172
|
+
type: "function"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
inputs: [],
|
|
176
|
+
name: "getLastBlockHash",
|
|
177
|
+
outputs: [{ internalType: "bytes32", name: "blockHash", type: "bytes32" }],
|
|
178
|
+
stateMutability: "view",
|
|
179
|
+
type: "function"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
inputs: [
|
|
183
|
+
{ internalType: "bool", name: "requireSuccess", type: "bool" },
|
|
184
|
+
{
|
|
185
|
+
components: [
|
|
186
|
+
{ internalType: "address", name: "target", type: "address" },
|
|
187
|
+
{ internalType: "bytes", name: "callData", type: "bytes" }
|
|
188
|
+
],
|
|
189
|
+
internalType: "struct Multicall3.Call[]",
|
|
190
|
+
name: "calls",
|
|
191
|
+
type: "tuple[]"
|
|
192
|
+
}
|
|
193
|
+
],
|
|
194
|
+
name: "tryAggregate",
|
|
195
|
+
outputs: [
|
|
196
|
+
{
|
|
197
|
+
components: [
|
|
198
|
+
{ internalType: "bool", name: "success", type: "bool" },
|
|
199
|
+
{ internalType: "bytes", name: "returnData", type: "bytes" }
|
|
200
|
+
],
|
|
201
|
+
internalType: "struct Multicall3.Result[]",
|
|
202
|
+
name: "returnData",
|
|
203
|
+
type: "tuple[]"
|
|
204
|
+
}
|
|
205
|
+
],
|
|
206
|
+
stateMutability: "payable",
|
|
207
|
+
type: "function"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
inputs: [
|
|
211
|
+
{ internalType: "bool", name: "requireSuccess", type: "bool" },
|
|
212
|
+
{
|
|
213
|
+
components: [
|
|
214
|
+
{ internalType: "address", name: "target", type: "address" },
|
|
215
|
+
{ internalType: "bytes", name: "callData", type: "bytes" }
|
|
216
|
+
],
|
|
217
|
+
internalType: "struct Multicall3.Call[]",
|
|
218
|
+
name: "calls",
|
|
219
|
+
type: "tuple[]"
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
name: "tryBlockAndAggregate",
|
|
223
|
+
outputs: [
|
|
224
|
+
{ internalType: "uint256", name: "blockNumber", type: "uint256" },
|
|
225
|
+
{ internalType: "bytes32", name: "blockHash", type: "bytes32" },
|
|
226
|
+
{
|
|
227
|
+
components: [
|
|
228
|
+
{ internalType: "bool", name: "success", type: "bool" },
|
|
229
|
+
{ internalType: "bytes", name: "returnData", type: "bytes" }
|
|
230
|
+
],
|
|
231
|
+
internalType: "struct Multicall3.Result[]",
|
|
232
|
+
name: "returnData",
|
|
233
|
+
type: "tuple[]"
|
|
234
|
+
}
|
|
235
|
+
],
|
|
236
|
+
stateMutability: "payable",
|
|
237
|
+
type: "function"
|
|
238
|
+
}
|
|
239
|
+
];
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
exports.multicall3Abi = multicall3Abi;
|
|
244
|
+
//# sourceMappingURL=chunk-TDW5SPXR.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/chunk-TDW5SPXR.cjs","../src/abi/utils/multicall3.ts"],"names":[],"mappings":"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","file":"/Users/pong/coding/monobera/packages/berajs/dist/chunk-TDW5SPXR.cjs","sourcesContent":[null,"/**\n * This ABI is needed because viem exports a reduced version of this ABI.\n * For instance\n */\nexport const multicall3Abi = [\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"aggregate\",\n outputs: [\n { internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" },\n { internalType: \"bytes[]\", name: \"returnData\", type: \"bytes[]\" },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bool\", name: \"allowFailure\", type: \"bool\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Call3[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"aggregate3\",\n outputs: [\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bool\", name: \"allowFailure\", type: \"bool\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Call3Value[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"aggregate3Value\",\n outputs: [\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"blockAndAggregate\",\n outputs: [\n { internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" },\n { internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" },\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getBasefee\",\n outputs: [{ internalType: \"uint256\", name: \"basefee\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" }],\n name: \"getBlockHash\",\n outputs: [{ internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getBlockNumber\",\n outputs: [\n { internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getChainId\",\n outputs: [{ internalType: \"uint256\", name: \"chainid\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockCoinbase\",\n outputs: [{ internalType: \"address\", name: \"coinbase\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockDifficulty\",\n outputs: [{ internalType: \"uint256\", name: \"difficulty\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockGasLimit\",\n outputs: [{ internalType: \"uint256\", name: \"gaslimit\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockTimestamp\",\n outputs: [{ internalType: \"uint256\", name: \"timestamp\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"addr\", type: \"address\" }],\n name: \"getEthBalance\",\n outputs: [{ internalType: \"uint256\", name: \"balance\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getLastBlockHash\",\n outputs: [{ internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"bool\", name: \"requireSuccess\", type: \"bool\" },\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"tryAggregate\",\n outputs: [\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"bool\", name: \"requireSuccess\", type: \"bool\" },\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"tryBlockAndAggregate\",\n outputs: [\n { internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" },\n { internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" },\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall3.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n] as const;\n"]}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkXSGCRLSDcjs = require('./chunk-XSGCRLSD.cjs');
|
|
7
|
+
|
|
8
|
+
// src/errors/initBeraError.ts
|
|
9
|
+
var _viem = require('viem');
|
|
10
|
+
function initBeraError({
|
|
11
|
+
cause: error,
|
|
12
|
+
level
|
|
13
|
+
}) {
|
|
14
|
+
if (error instanceof _viem.BaseError) {
|
|
15
|
+
const parsed = _chunkXSGCRLSDcjs.parseViemError.call(void 0, {
|
|
16
|
+
error,
|
|
17
|
+
revertIfUnknown: false
|
|
18
|
+
});
|
|
19
|
+
if (parsed.isRequestError && parsed.rootCause instanceof _viem.BaseError && "url" in parsed.rootCause && typeof parsed.rootCause.url === "string") {
|
|
20
|
+
return new (0, _chunkXSGCRLSDcjs.RequestError)({
|
|
21
|
+
cause: parsed.rootCause,
|
|
22
|
+
response: void 0,
|
|
23
|
+
endpoint: {
|
|
24
|
+
url: parsed.rootCause.url,
|
|
25
|
+
type: "rpc"
|
|
26
|
+
},
|
|
27
|
+
level
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const err = error instanceof _chunkXSGCRLSDcjs.BeraError ? error : new (0, _chunkXSGCRLSDcjs.BeraError)({
|
|
32
|
+
cause: error,
|
|
33
|
+
level
|
|
34
|
+
});
|
|
35
|
+
return err;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// src/errors/assert.ts
|
|
39
|
+
|
|
40
|
+
function _isDefined(value) {
|
|
41
|
+
return value !== void 0 && value !== null;
|
|
42
|
+
}
|
|
43
|
+
function _assert({
|
|
44
|
+
value,
|
|
45
|
+
property,
|
|
46
|
+
fn
|
|
47
|
+
}) {
|
|
48
|
+
const result = fn(value);
|
|
49
|
+
if (!result.isValid) {
|
|
50
|
+
throw new (0, _chunkXSGCRLSDcjs.InvalidArgumentError)({
|
|
51
|
+
property,
|
|
52
|
+
value,
|
|
53
|
+
expected: result.expectedType
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function _assertDefined({
|
|
58
|
+
value,
|
|
59
|
+
property,
|
|
60
|
+
fn
|
|
61
|
+
}) {
|
|
62
|
+
_assert({
|
|
63
|
+
value,
|
|
64
|
+
property,
|
|
65
|
+
fn: (value2) => {
|
|
66
|
+
const isDefined = _isDefined(value2);
|
|
67
|
+
const { isValid, expectedType } = fn(value2);
|
|
68
|
+
return {
|
|
69
|
+
expectedType,
|
|
70
|
+
isValid: isDefined && isValid
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
function assertDefined(value, property) {
|
|
76
|
+
_assertDefined({
|
|
77
|
+
value,
|
|
78
|
+
property,
|
|
79
|
+
fn: (value2) => ({ expectedType: "defined", isValid: _isDefined(value2) })
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function assertPublicClient(value, property = "publicClient") {
|
|
83
|
+
assertDefined(value, property);
|
|
84
|
+
}
|
|
85
|
+
function assertAddress(value, property) {
|
|
86
|
+
_assertDefined({
|
|
87
|
+
value,
|
|
88
|
+
property,
|
|
89
|
+
fn: (value2) => ({
|
|
90
|
+
expectedType: "Address",
|
|
91
|
+
isValid: typeof value2 === "string" && _viem.isAddress.call(void 0, value2)
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function assertPositive(value, property) {
|
|
96
|
+
const isPositive = typeof value === "bigint" ? value > 0n : Number(value) > 0;
|
|
97
|
+
if (!isPositive) {
|
|
98
|
+
throw new (0, _chunkXSGCRLSDcjs.InvalidArgumentError)({
|
|
99
|
+
property,
|
|
100
|
+
value,
|
|
101
|
+
expected: "positive amount"
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function assertAmount(value, property) {
|
|
106
|
+
_assertDefined({
|
|
107
|
+
value,
|
|
108
|
+
property,
|
|
109
|
+
fn: (value2) => ({
|
|
110
|
+
expectedType: "number",
|
|
111
|
+
isValid: (typeof value2 === "string" || typeof value2 === "number") && Number(value2) > 0
|
|
112
|
+
})
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// src/utils/createEmitter.ts
|
|
117
|
+
function createEmitter() {
|
|
118
|
+
const events = {};
|
|
119
|
+
return {
|
|
120
|
+
emit(event, ...args) {
|
|
121
|
+
for (const callback of events[event] || []) {
|
|
122
|
+
callback(...args);
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
events,
|
|
126
|
+
on(event, cb) {
|
|
127
|
+
if (!events[event]) {
|
|
128
|
+
events[event] = [];
|
|
129
|
+
}
|
|
130
|
+
events[event].push(cb);
|
|
131
|
+
return () => {
|
|
132
|
+
events[event] = _optionalChain([events, 'access', _ => _[event], 'optionalAccess', _2 => _2.filter, 'call', _3 => _3((i) => cb !== i)]);
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// src/errors/BeraMonitoring.ts
|
|
139
|
+
var _emitter = createEmitter();
|
|
140
|
+
var BeraMonitoring = {
|
|
141
|
+
/**
|
|
142
|
+
* Capture an exception. Notifies all subscribers.
|
|
143
|
+
*/
|
|
144
|
+
captureException(exception) {
|
|
145
|
+
const event = {
|
|
146
|
+
exception,
|
|
147
|
+
timestamp: Date.now()
|
|
148
|
+
};
|
|
149
|
+
_emitter.emit("exception", event);
|
|
150
|
+
},
|
|
151
|
+
/**
|
|
152
|
+
* Subscribe to error events.
|
|
153
|
+
* @returns An unsubscribe function.
|
|
154
|
+
*/
|
|
155
|
+
on(...args) {
|
|
156
|
+
return _emitter.on(...args);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
exports.initBeraError = initBeraError; exports.assertDefined = assertDefined; exports.assertPublicClient = assertPublicClient; exports.assertAddress = assertAddress; exports.assertPositive = assertPositive; exports.assertAmount = assertAmount; exports.BeraMonitoring = BeraMonitoring;
|
|
169
|
+
//# sourceMappingURL=chunk-TGK3IXDN.cjs.map
|