viem 0.0.1-alpha.23 → 0.0.1-alpha.25

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.
Files changed (155) hide show
  1. package/contract/package.json +4 -0
  2. package/dist/call-ac509982.d.ts +23 -0
  3. package/dist/{chain-aa4898d0.d.ts → chain-c4ccb458.d.ts} +1 -1
  4. package/dist/{chain-4b39613a.d.ts → chain-f16512e8.d.ts} +20 -1
  5. package/dist/chains.d.ts +20 -8
  6. package/dist/chains.js +46 -46
  7. package/dist/chains.mjs +1 -1
  8. package/dist/{chunk-RJLUZTJS.mjs → chunk-2Y3UZMSP.mjs} +203 -84
  9. package/dist/chunk-2Y3UZMSP.mjs.map +1 -0
  10. package/dist/{chunk-ZKYGWITF.js → chunk-CD2XJOBJ.js} +261 -142
  11. package/dist/chunk-CD2XJOBJ.js.map +1 -0
  12. package/dist/{chunk-XBUH66KN.mjs → chunk-KSAO4Y4Q.mjs} +133 -54
  13. package/dist/chunk-KSAO4Y4Q.mjs.map +1 -0
  14. package/dist/{chunk-TXHOG6KU.mjs → chunk-LEPQJNVO.mjs} +18 -2
  15. package/dist/chunk-LEPQJNVO.mjs.map +1 -0
  16. package/dist/{chunk-7Y5QVLX7.js → chunk-NUXMGPMK.js} +30 -14
  17. package/dist/chunk-NUXMGPMK.js.map +1 -0
  18. package/dist/{chunk-SSPRUPGN.js → chunk-THMRUG4D.js} +148 -69
  19. package/dist/chunk-THMRUG4D.js.map +1 -0
  20. package/dist/{contract-4c3a37b3.d.ts → contract-9e76e561.d.ts} +44 -31
  21. package/dist/contract.d.ts +123 -0
  22. package/dist/contract.js +53 -0
  23. package/dist/{clients/index.js.map → contract.js.map} +0 -0
  24. package/dist/contract.mjs +53 -0
  25. package/dist/{clients/index.mjs.map → contract.mjs.map} +0 -0
  26. package/dist/{createClient-55a04188.d.ts → createClient-68ee4bb4.d.ts} +3 -3
  27. package/dist/{createPublicClient-3b27b282.d.ts → createPublicClient-b732194e.d.ts} +3 -3
  28. package/dist/{createTestClient-93f9eac6.d.ts → createTestClient-dedf321e.d.ts} +3 -3
  29. package/dist/{createWalletClient-c10df94d.d.ts → createWalletClient-75813d83.d.ts} +3 -3
  30. package/dist/decodeErrorResult-0b934d23.d.ts +16 -0
  31. package/dist/{eip1193-4c24765a.d.ts → eip1193-6f9ba163.d.ts} +1 -1
  32. package/dist/ens.d.ts +82 -1
  33. package/dist/ens.js +208 -3
  34. package/dist/ens.js.map +1 -1
  35. package/dist/ens.mjs +209 -4
  36. package/dist/ens.mjs.map +1 -1
  37. package/dist/getAbiItem-c8e6e7d4.d.ts +97 -0
  38. package/dist/index.d.ts +85 -133
  39. package/dist/index.js +237 -275
  40. package/dist/index.js.map +1 -1
  41. package/dist/index.mjs +245 -283
  42. package/dist/index.mjs.map +1 -1
  43. package/dist/public.d.ts +352 -10
  44. package/dist/public.js +3 -4
  45. package/dist/public.mjs +6 -7
  46. package/dist/readContract-4f6e2692.d.ts +10 -0
  47. package/dist/rpc-a5a7f376.d.ts +121 -0
  48. package/dist/{sendTransaction-f17a2389.d.ts → sendTransaction-e713f90c.d.ts} +3 -3
  49. package/dist/test.d.ts +160 -5
  50. package/dist/test.js +222 -18
  51. package/dist/test.js.map +1 -1
  52. package/dist/test.mjs +233 -29
  53. package/dist/test.mjs.map +1 -1
  54. package/dist/transactionReceipt-2a86c7c7.d.ts +26 -0
  55. package/dist/{transactionRequest-93e9f001.d.ts → transactionRequest-c7794f5e.d.ts} +1 -1
  56. package/dist/utils/index.d.ts +224 -20
  57. package/dist/utils/index.js +2 -6
  58. package/dist/utils/index.mjs +3 -7
  59. package/dist/wallet.d.ts +41 -7
  60. package/dist/wallet.js +3 -3
  61. package/dist/wallet.mjs +2 -2
  62. package/dist/watchEvent-c346c12d.d.ts +41 -0
  63. package/dist/window.d.ts +2 -2
  64. package/ens/package.json +4 -0
  65. package/package.json +13 -9
  66. package/src/_test/constants.ts +2 -0
  67. package/src/_test/utils.ts +10 -5
  68. package/src/actions/ens/getEnsAddress.bench.ts +26 -0
  69. package/src/actions/ens/getEnsAddress.test.ts +97 -0
  70. package/src/actions/ens/getEnsAddress.ts +122 -0
  71. package/src/actions/ens/getEnsName.bench.ts +30 -0
  72. package/src/actions/ens/getEnsName.test.ts +101 -0
  73. package/src/actions/ens/getEnsName.ts +106 -0
  74. package/src/actions/ens/index.test.ts +12 -0
  75. package/src/actions/ens/index.ts +3 -0
  76. package/src/actions/index.test.ts +2 -0
  77. package/src/actions/index.ts +9 -3
  78. package/src/actions/public/createEventFilter.test.ts +36 -4
  79. package/src/actions/public/createEventFilter.ts +27 -10
  80. package/src/actions/public/getFilterChanges.test.ts +198 -4
  81. package/src/actions/public/getFilterLogs.test.ts +195 -2
  82. package/src/actions/public/getLogs.test.ts +201 -2
  83. package/src/actions/public/index.test.ts +0 -1
  84. package/src/actions/public/index.ts +1 -7
  85. package/src/actions/public/multicall.ts +8 -3
  86. package/src/actions/public/simulateContract.ts +1 -4
  87. package/src/actions/public/watchContractEvent.test.ts +4 -4
  88. package/src/actions/{public → wallet}/deployContract.test.ts +1 -2
  89. package/src/actions/{public → wallet}/deployContract.ts +0 -0
  90. package/src/actions/wallet/index.test.ts +1 -0
  91. package/src/actions/wallet/index.ts +6 -0
  92. package/src/chains.test.ts +44 -1517
  93. package/src/clients/transports/webSocket.test.ts +1 -0
  94. package/src/clients/transports/webSocket.ts +1 -0
  95. package/src/contract.test.ts +31 -0
  96. package/src/contract.ts +68 -0
  97. package/src/ens.test.ts +15 -0
  98. package/src/ens.ts +4 -1
  99. package/src/errors/abi.ts +18 -2
  100. package/src/errors/chain.test.ts +46 -0
  101. package/src/errors/chain.ts +33 -0
  102. package/src/errors/contract.ts +2 -2
  103. package/src/errors/index.ts +3 -0
  104. package/src/index.test.ts +0 -145
  105. package/src/index.ts +0 -251
  106. package/src/public.test.ts +36 -0
  107. package/src/public.ts +2 -6
  108. package/src/test.test.ts +38 -0
  109. package/src/test.ts +1 -0
  110. package/src/types/contract.ts +144 -40
  111. package/src/types/index.ts +2 -1
  112. package/src/types/utils.ts +21 -0
  113. package/src/utils/abi/decodeErrorResult.test.ts +1 -1
  114. package/src/utils/abi/decodeEventLog.test.ts +542 -0
  115. package/src/utils/abi/decodeEventLog.ts +107 -0
  116. package/src/utils/abi/decodeFunctionData.test.ts +1 -2
  117. package/src/utils/abi/decodeFunctionData.ts +5 -2
  118. package/src/utils/abi/encodeFunctionData.ts +1 -4
  119. package/src/utils/abi/index.test.ts +1 -0
  120. package/src/utils/abi/index.ts +6 -0
  121. package/src/utils/ens/index.test.ts +1 -0
  122. package/src/utils/ens/index.ts +2 -0
  123. package/src/utils/ens/packetToBytes.test.ts +11 -0
  124. package/src/utils/ens/packetToBytes.ts +29 -0
  125. package/src/utils/index.test.ts +1 -3
  126. package/src/utils/index.ts +3 -2
  127. package/src/utils/rpc.test.ts +1 -0
  128. package/src/utils/rpc.ts +4 -2
  129. package/src/wallet.test.ts +19 -0
  130. package/wallet/package.json +4 -0
  131. package/clients/package.json +0 -4
  132. package/dist/chunk-7Y5QVLX7.js.map +0 -1
  133. package/dist/chunk-BV5NTHUX.js +0 -260
  134. package/dist/chunk-BV5NTHUX.js.map +0 -1
  135. package/dist/chunk-EGVXCZNJ.mjs +0 -260
  136. package/dist/chunk-EGVXCZNJ.mjs.map +0 -1
  137. package/dist/chunk-GX2KDAM3.mjs +0 -256
  138. package/dist/chunk-GX2KDAM3.mjs.map +0 -1
  139. package/dist/chunk-NW6724MI.js +0 -256
  140. package/dist/chunk-NW6724MI.js.map +0 -1
  141. package/dist/chunk-RJLUZTJS.mjs.map +0 -1
  142. package/dist/chunk-SSPRUPGN.js.map +0 -1
  143. package/dist/chunk-TXHOG6KU.mjs.map +0 -1
  144. package/dist/chunk-XBUH66KN.mjs.map +0 -1
  145. package/dist/chunk-ZKYGWITF.js.map +0 -1
  146. package/dist/clients/index.d.ts +0 -9
  147. package/dist/clients/index.js +0 -24
  148. package/dist/clients/index.mjs +0 -24
  149. package/dist/normalize-ef9240c0.d.ts +0 -33
  150. package/dist/parseGwei-3411cf2d.d.ts +0 -355
  151. package/dist/rpc-26932bae.d.ts +0 -61
  152. package/dist/stopImpersonatingAccount-afb26486.d.ts +0 -156
  153. package/dist/watchAsset-efd3dd05.d.ts +0 -38
  154. package/dist/watchPendingTransactions-57df1a13.d.ts +0 -373
  155. package/dist/webSocket-d2e7bd0e.d.ts +0 -83
package/dist/ens.mjs CHANGED
@@ -1,9 +1,214 @@
1
1
  import {
2
- labelhash,
3
- namehash,
4
- normalize
5
- } from "./chunk-XBUH66KN.mjs";
2
+ readContract
3
+ } from "./chunk-2Y3UZMSP.mjs";
4
+ import {
5
+ ChainDoesNotSupportContract,
6
+ ContractFunctionExecutionError,
7
+ bytesToHex,
8
+ concat,
9
+ decodeFunctionResult,
10
+ encodeBytes,
11
+ encodeFunctionData,
12
+ encodeHex,
13
+ keccak256,
14
+ panicReasons,
15
+ stringToBytes
16
+ } from "./chunk-KSAO4Y4Q.mjs";
17
+
18
+ // src/utils/ens/normalize.ts
19
+ import { toUnicode } from "idna-uts46-hx";
20
+ function normalize(name) {
21
+ return toUnicode(name, { useStd3ASCII: true });
22
+ }
23
+
24
+ // src/utils/ens/labelhash.ts
25
+ function labelhash(label) {
26
+ let result = new Uint8Array(32).fill(0);
27
+ if (!label)
28
+ return bytesToHex(result);
29
+ return keccak256(stringToBytes(normalize(label)));
30
+ }
31
+
32
+ // src/utils/ens/namehash.ts
33
+ function namehash(name) {
34
+ let result = new Uint8Array(32).fill(0);
35
+ if (!name)
36
+ return bytesToHex(result);
37
+ const labels = normalize(name).split(".");
38
+ for (let i = labels.length - 1; i >= 0; i -= 1) {
39
+ const hashed = keccak256(stringToBytes(labels[i]), "bytes");
40
+ result = keccak256(concat([result, hashed]), "bytes");
41
+ }
42
+ return bytesToHex(result);
43
+ }
44
+
45
+ // src/utils/ens/packetToBytes.ts
46
+ function packetToBytes(packet) {
47
+ function length(value2) {
48
+ if (value2 === "." || value2 === "..")
49
+ return 1;
50
+ return encodeBytes(value2.replace(/^\.|\.$/gm, "")).length + 2;
51
+ }
52
+ const bytes = new Uint8Array(length(packet));
53
+ const value = packet.replace(/^\.|\.$/gm, "");
54
+ if (!value.length)
55
+ return bytes;
56
+ let offset = 0;
57
+ const list = value.split(".");
58
+ for (let i = 0; i < list.length; i++) {
59
+ const encoded = encodeBytes(list[i]);
60
+ bytes[offset] = encoded.length;
61
+ bytes.set(encoded, offset + 1);
62
+ offset += encoded.length + 1;
63
+ }
64
+ return bytes;
65
+ }
66
+
67
+ // src/actions/ens/getEnsAddress.ts
68
+ async function getEnsAddress(client, {
69
+ blockNumber,
70
+ blockTag,
71
+ name,
72
+ universalResolverAddress: universalResolverAddress_
73
+ }) {
74
+ let universalResolverAddress = universalResolverAddress_;
75
+ if (!universalResolverAddress) {
76
+ if (!client.chain)
77
+ throw new Error(
78
+ "client chain not configured. universalResolverAddress is required."
79
+ );
80
+ const contract = client.chain?.contracts?.ensUniversalResolver;
81
+ if (!contract)
82
+ throw new ChainDoesNotSupportContract({
83
+ chain: client.chain,
84
+ contract: { name: "ensUniversalResolver" }
85
+ });
86
+ if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
87
+ throw new ChainDoesNotSupportContract({
88
+ blockNumber,
89
+ chain: client.chain,
90
+ contract: {
91
+ name: "ensUniversalResolver",
92
+ blockCreated: contract.blockCreated
93
+ }
94
+ });
95
+ universalResolverAddress = contract.address;
96
+ }
97
+ const res = await readContract(client, {
98
+ address: universalResolverAddress,
99
+ abi: [
100
+ {
101
+ name: "resolve",
102
+ type: "function",
103
+ stateMutability: "view",
104
+ inputs: [
105
+ { name: "name", type: "bytes" },
106
+ { name: "data", type: "bytes" }
107
+ ],
108
+ outputs: [
109
+ { name: "", type: "bytes" },
110
+ { name: "address", type: "address" }
111
+ ]
112
+ }
113
+ ],
114
+ functionName: "resolve",
115
+ args: [
116
+ encodeHex(packetToBytes(name)),
117
+ encodeFunctionData({
118
+ abi: [
119
+ {
120
+ name: "addr",
121
+ type: "function",
122
+ stateMutability: "view",
123
+ inputs: [{ name: "name", type: "bytes32" }],
124
+ outputs: []
125
+ }
126
+ ],
127
+ functionName: "addr",
128
+ args: [namehash(name)]
129
+ })
130
+ ],
131
+ blockNumber,
132
+ blockTag
133
+ });
134
+ return decodeFunctionResult({
135
+ abi: [
136
+ {
137
+ name: "addr",
138
+ type: "function",
139
+ stateMutability: "view",
140
+ inputs: [],
141
+ outputs: [{ name: "name", type: "address" }]
142
+ }
143
+ ],
144
+ functionName: "addr",
145
+ data: res[0]
146
+ });
147
+ }
148
+
149
+ // src/actions/ens/getEnsName.ts
150
+ async function getEnsName(client, {
151
+ address,
152
+ blockNumber,
153
+ blockTag,
154
+ universalResolverAddress: universalResolverAddress_
155
+ }) {
156
+ let universalResolverAddress = universalResolverAddress_;
157
+ if (!universalResolverAddress) {
158
+ if (!client.chain)
159
+ throw new Error(
160
+ "client chain not configured. universalResolverAddress is required."
161
+ );
162
+ const contract = client.chain?.contracts?.ensUniversalResolver;
163
+ if (!contract)
164
+ throw new ChainDoesNotSupportContract({
165
+ chain: client.chain,
166
+ contract: { name: "ensUniversalResolver" }
167
+ });
168
+ if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
169
+ throw new ChainDoesNotSupportContract({
170
+ blockNumber,
171
+ chain: client.chain,
172
+ contract: {
173
+ name: "ensUniversalResolver",
174
+ blockCreated: contract.blockCreated
175
+ }
176
+ });
177
+ universalResolverAddress = contract.address;
178
+ }
179
+ const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`;
180
+ try {
181
+ const res = await readContract(client, {
182
+ address: universalResolverAddress,
183
+ abi: [
184
+ {
185
+ name: "reverse",
186
+ type: "function",
187
+ stateMutability: "view",
188
+ inputs: [{ type: "bytes", name: "reverseName" }],
189
+ outputs: [
190
+ { type: "string", name: "resolvedName" },
191
+ { type: "address", name: "resolvedAddress" },
192
+ { type: "address", name: "reverseResolver" },
193
+ { type: "address", name: "resolver" }
194
+ ]
195
+ }
196
+ ],
197
+ functionName: "reverse",
198
+ args: [encodeHex(packetToBytes(reverseNode))],
199
+ blockNumber,
200
+ blockTag
201
+ });
202
+ return res[0];
203
+ } catch (error) {
204
+ if (error instanceof ContractFunctionExecutionError && error.cause.reason === panicReasons[50])
205
+ return null;
206
+ throw error;
207
+ }
208
+ }
6
209
  export {
210
+ getEnsAddress,
211
+ getEnsName,
7
212
  labelhash,
8
213
  namehash,
9
214
  normalize
package/dist/ens.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../src/utils/ens/normalize.ts","../src/utils/ens/labelhash.ts","../src/utils/ens/namehash.ts","../src/utils/ens/packetToBytes.ts","../src/actions/ens/getEnsAddress.ts","../src/actions/ens/getEnsName.ts"],"sourcesContent":["import { toUnicode } from 'idna-uts46-hx'\n\n/**\n * @description Normalizes ENS name\n *\n * @example\n * normalize('wagmi-dev.eth')\n * 'wagmi-dev.eth'\n *\n * @see https://docs.ens.domains/contract-api-reference/name-processing#normalising-names\n */\nexport function normalize(name: string) {\n return toUnicode(name, { useStd3ASCII: true })\n}\n","import { bytesToHex, stringToBytes } from '../encoding'\nimport { keccak256 } from '../hash'\nimport { normalize } from './normalize'\n\n/**\n * @description Hashes ENS label\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label: string) {\n let result = new Uint8Array(32).fill(0)\n if (!label) return bytesToHex(result)\n return keccak256(stringToBytes(normalize(label)))\n}\n","import { concat } from '../data'\nimport { bytesToHex, stringToBytes } from '../encoding'\nimport { keccak256 } from '../hash'\nimport { normalize } from './normalize'\n\n/**\n * @description Hashes ENS name\n *\n * @example\n * namehash('wagmi-dev.eth')\n * '0xf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a747801359'\n *\n * @see https://eips.ethereum.org/EIPS/eip-137\n * @see https://docs.ens.domains/contract-api-reference/name-processing#hashing-names\n */\nexport function namehash(name: string) {\n let result = new Uint8Array(32).fill(0)\n if (!name) return bytesToHex(result)\n\n const labels = normalize(name).split('.')\n // Iterate in reverse order building up hash\n for (let i = labels.length - 1; i >= 0; i -= 1) {\n const hashed = keccak256(stringToBytes(labels[i]), 'bytes')\n result = keccak256(concat([result, hashed]), 'bytes')\n }\n\n return bytesToHex(result)\n}\n","// Adapted from https://github.com/mafintosh/dns-packet\nimport { ByteArray } from '../../types'\nimport { encodeBytes } from '../encoding'\n\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n */\nexport function packetToBytes(packet: string): ByteArray {\n function length(value: string) {\n if (value === '.' || value === '..') return 1\n return encodeBytes(value.replace(/^\\.|\\.$/gm, '')).length + 2\n }\n\n const bytes = new Uint8Array(length(packet))\n // strip leading and trailing `.`\n const value = packet.replace(/^\\.|\\.$/gm, '')\n if (!value.length) return bytes\n\n let offset = 0\n const list = value.split('.')\n for (let i = 0; i < list.length; i++) {\n const encoded = encodeBytes(list[i])\n bytes[offset] = encoded.length\n bytes.set(encoded, offset + 1)\n offset += encoded.length + 1\n }\n\n return bytes\n}\n","import { PublicClient } from '../../clients'\nimport { ChainDoesNotSupportContract } from '../../errors'\nimport type { Address, Prettify } from '../../types'\nimport {\n decodeFunctionResult,\n encodeFunctionData,\n encodeHex,\n} from '../../utils'\nimport { namehash, packetToBytes } from '../../utils/ens'\nimport { readContract, ReadContractArgs } from '../public'\n\nexport type GetEnsAddressArgs = Prettify<\n Pick<ReadContractArgs, 'blockNumber' | 'blockTag'> & {\n /** ENS name to get address. */\n name: string\n /** Address of ENS Universal Resolver Contract */\n universalResolverAddress?: Address\n }\n>\n\n/**\n * @description Gets address for ENS name.\n *\n * - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * @example\n * const ensAddress = await getEnsAddress(publicClient, {\n * name: 'wagmi-dev.eth',\n * })\n * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n */\nexport async function getEnsAddress(\n client: PublicClient,\n {\n blockNumber,\n blockTag,\n name,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsAddressArgs,\n) {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n const contract = client.chain?.contracts?.ensUniversalResolver\n if (!contract)\n throw new ChainDoesNotSupportContract({\n chain: client.chain,\n contract: { name: 'ensUniversalResolver' },\n })\n\n if (\n blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n )\n throw new ChainDoesNotSupportContract({\n blockNumber,\n chain: client.chain,\n contract: {\n name: 'ensUniversalResolver',\n blockCreated: contract.blockCreated,\n },\n })\n\n universalResolverAddress = contract.address\n }\n\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: [\n {\n name: 'resolve',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n ],\n functionName: 'resolve',\n args: [\n encodeHex(packetToBytes(name)),\n encodeFunctionData({\n abi: [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [],\n },\n ],\n functionName: 'addr',\n args: [namehash(name)],\n }),\n ],\n blockNumber,\n blockTag,\n })\n return decodeFunctionResult({\n abi: [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [],\n outputs: [{ name: 'name', type: 'address' }],\n },\n ],\n functionName: 'addr',\n data: res[0],\n })\n}\n","import { PublicClient } from '../../clients'\nimport { panicReasons } from '../../constants'\nimport {\n ChainDoesNotSupportContract,\n ContractFunctionExecutionError,\n ContractFunctionRevertedError,\n} from '../../errors'\nimport type { Address, Prettify } from '../../types'\nimport { encodeHex } from '../../utils'\nimport { packetToBytes } from '../../utils/ens'\nimport { readContract, ReadContractArgs } from '../public'\n\nexport type GetEnsNameArgs = Prettify<\n Pick<ReadContractArgs, 'blockNumber' | 'blockTag'> & {\n /** Address to get ENS name for. */\n address: Address\n /** Address of ENS Universal Resolver Contract. */\n universalResolverAddress?: Address\n }\n>\n\n/**\n * @description Gets primary name for specified address.\n *\n * - Calls `reverse(bytes)` on ENS Universal Resolver Contract.\n *\n * @example\n * const ensName = await getEnsName(publicClient, {\n * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wagmi-dev.eth'\n */\nexport async function getEnsName(\n client: PublicClient,\n {\n address,\n blockNumber,\n blockTag,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsNameArgs,\n) {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n const contract = client.chain?.contracts?.ensUniversalResolver\n if (!contract)\n throw new ChainDoesNotSupportContract({\n chain: client.chain,\n contract: { name: 'ensUniversalResolver' },\n })\n\n if (\n blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n )\n throw new ChainDoesNotSupportContract({\n blockNumber,\n chain: client.chain,\n contract: {\n name: 'ensUniversalResolver',\n blockCreated: contract.blockCreated,\n },\n })\n\n universalResolverAddress = contract.address\n }\n\n const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`\n try {\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: [\n {\n name: 'reverse',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ type: 'bytes', name: 'reverseName' }],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolvedAddress' },\n { type: 'address', name: 'reverseResolver' },\n { type: 'address', name: 'resolver' },\n ],\n },\n ],\n functionName: 'reverse',\n args: [encodeHex(packetToBytes(reverseNode))],\n blockNumber,\n blockTag,\n })\n return res[0]\n } catch (error) {\n if (\n error instanceof ContractFunctionExecutionError &&\n (error.cause as ContractFunctionRevertedError).reason === panicReasons[50]\n )\n // No primary name set for address.\n return null\n throw error\n }\n}\n"],"mappings":"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","names":["value"]}
@@ -0,0 +1,97 @@
1
+ import { AbiParameter, Narrow, Abi, AbiParametersToPrimitiveTypes } from 'abitype';
2
+ import { H as Hex, G as LogTopic } from './chain-f16512e8.js';
3
+ import { b as ExtractEventNameFromAbi, d as ExtractEventArgsFromTopics, e as ExtractFunctionNameFromAbi, f as ExtractArgsFromAbi, E as ExtractResultFromAbi, a as ExtractConstructorArgsFromAbi, g as ExtractErrorNameFromAbi, h as ExtractErrorArgsFromAbi, c as ExtractEventArgsFromAbi, A as AbiItem, i as ExtractNameFromAbi } from './contract-9e76e561.js';
4
+ import * as abitype_dist_abi_78346466 from 'abitype/dist/abi-78346466';
5
+
6
+ type DecodeAbiArgs<TParams extends readonly AbiParameter[] | readonly unknown[] = readonly AbiParameter[]> = {
7
+ data: Hex;
8
+ params: Narrow<TParams>;
9
+ };
10
+ declare function decodeAbi<TParams extends readonly AbiParameter[] | readonly unknown[]>({ data, params }: DecodeAbiArgs<TParams>): readonly unknown[] | undefined;
11
+
12
+ type DecodeEventLogArgs<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string = string, TTopics extends LogTopic[] = LogTopic[], TData extends Hex | undefined = undefined> = {
13
+ abi: Narrow<TAbi>;
14
+ data?: TData;
15
+ eventName?: ExtractEventNameFromAbi<TAbi, TEventName>;
16
+ topics: [signature: Hex, ...args: TTopics];
17
+ };
18
+ type DecodeEventLogResponse<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string = string, TTopics extends LogTopic[] = LogTopic[], TData extends Hex | undefined = undefined> = {
19
+ eventName: TEventName;
20
+ } & ExtractEventArgsFromTopics<TAbi, TEventName, TTopics, TData>;
21
+ declare function decodeEventLog<TAbi extends Abi | readonly unknown[], TEventName extends string, TTopics extends LogTopic[], TData extends Hex | undefined = undefined>({ abi, data, topics, }: DecodeEventLogArgs<TAbi, TEventName, TTopics, TData>): DecodeEventLogResponse<TAbi, TEventName, TTopics, TData>;
22
+
23
+ type DecodeFunctionDataArgs = {
24
+ abi: Abi | readonly unknown[];
25
+ data: Hex;
26
+ };
27
+ declare function decodeFunctionData({ abi, data }: DecodeFunctionDataArgs): {
28
+ functionName: string;
29
+ args: readonly unknown[] | undefined;
30
+ };
31
+
32
+ type DecodeFunctionResultArgs<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = {
33
+ abi: Narrow<TAbi>;
34
+ functionName: ExtractFunctionNameFromAbi<TAbi, TFunctionName>;
35
+ data: Hex;
36
+ } & Partial<ExtractArgsFromAbi<TAbi, TFunctionName>>;
37
+ type DecodeFunctionResultResponse<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = ExtractResultFromAbi<TAbi, TFunctionName>;
38
+ declare function decodeFunctionResult<TAbi extends Abi | readonly unknown[], TFunctionName extends string>({ abi, args, functionName, data, }: DecodeFunctionResultArgs<TAbi, TFunctionName>): DecodeFunctionResultResponse<TAbi, TFunctionName>;
39
+
40
+ type EncodeAbiArgs<TParams extends readonly AbiParameter[] | readonly unknown[] = readonly AbiParameter[]> = {
41
+ params: Narrow<TParams>;
42
+ values: TParams extends readonly AbiParameter[] ? AbiParametersToPrimitiveTypes<TParams> : never;
43
+ };
44
+ /**
45
+ * @description Encodes a list of primitive values into an ABI-encoded hex value.
46
+ */
47
+ declare function encodeAbi<TParams extends readonly AbiParameter[] | readonly unknown[]>({ params, values }: EncodeAbiArgs<TParams>): `0x${string}`;
48
+
49
+ type EncodeDeployDataArgs<TAbi extends Abi | readonly unknown[] = Abi> = {
50
+ abi: Narrow<TAbi>;
51
+ bytecode: Hex;
52
+ } & ExtractConstructorArgsFromAbi<TAbi>;
53
+ declare function encodeDeployData<TAbi extends Abi | readonly unknown[]>({ abi, args, bytecode, }: EncodeDeployDataArgs<TAbi>): `0x${string}`;
54
+
55
+ type EncodeErrorResultArgs<TAbi extends Abi | readonly unknown[] = Abi, TErrorName extends string = string> = {
56
+ abi: Narrow<TAbi>;
57
+ errorName: ExtractErrorNameFromAbi<TAbi, TErrorName>;
58
+ } & ExtractErrorArgsFromAbi<TAbi, TErrorName>;
59
+ declare function encodeErrorResult<TAbi extends Abi | readonly unknown[], TErrorName extends string>({ abi, errorName, args }: EncodeErrorResultArgs<TAbi, TErrorName>): `0x${string}`;
60
+
61
+ type EncodeEventTopicsArgs<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string = string> = {
62
+ abi: Narrow<TAbi>;
63
+ eventName: ExtractEventNameFromAbi<TAbi, TEventName>;
64
+ } & ExtractEventArgsFromAbi<TAbi, TEventName>;
65
+ declare function encodeEventTopics<TAbi extends Abi | readonly unknown[], TEventName extends string>({ abi, eventName, args }: EncodeEventTopicsArgs<TAbi, TEventName>): `0x${string}`[];
66
+
67
+ type EncodeFunctionDataArgs<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = {
68
+ abi: Narrow<TAbi>;
69
+ functionName: ExtractFunctionNameFromAbi<TAbi, TFunctionName>;
70
+ } & ExtractArgsFromAbi<TAbi, TFunctionName>;
71
+ declare function encodeFunctionData<TAbi extends Abi | readonly unknown[], TFunctionName extends string>({ abi, args, functionName }: EncodeFunctionDataArgs<TAbi, TFunctionName>): `0x${string}`;
72
+
73
+ type EncodeFunctionResultArgs<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = {
74
+ abi: Narrow<TAbi>;
75
+ functionName: ExtractFunctionNameFromAbi<TAbi, TFunctionName>;
76
+ result?: ExtractResultFromAbi<TAbi, TFunctionName>;
77
+ };
78
+ declare function encodeFunctionResult<TAbi extends Abi | readonly unknown[], TFunctionName extends string>({ abi, functionName, result, }: EncodeFunctionResultArgs<TAbi, TFunctionName>): `0x${string}`;
79
+
80
+ declare function formatAbiItemWithArgs({ abiItem, args, includeFunctionName, includeName, }: {
81
+ abiItem: AbiItem;
82
+ args: readonly unknown[];
83
+ includeFunctionName?: boolean;
84
+ includeName?: boolean;
85
+ }): string | undefined;
86
+
87
+ declare function formatAbiItem(abiItem: AbiItem, { includeName }?: {
88
+ includeName?: boolean;
89
+ }): string;
90
+
91
+ type GetAbiItemArgs<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = any> = {
92
+ abi: Narrow<TAbi>;
93
+ name: ExtractNameFromAbi<TAbi, TFunctionName>;
94
+ } & Partial<ExtractArgsFromAbi<TAbi, TFunctionName>>;
95
+ declare function getAbiItem<TAbi extends Abi | readonly unknown[], TFunctionName extends string>({ abi, args, name }: GetAbiItemArgs<TAbi, TFunctionName>): abitype_dist_abi_78346466.o | abitype_dist_abi_78346466.q | abitype_dist_abi_78346466.p | undefined;
96
+
97
+ export { DecodeAbiArgs as D, EncodeAbiArgs as E, GetAbiItemArgs as G, DecodeEventLogArgs as a, DecodeEventLogResponse as b, DecodeFunctionDataArgs as c, DecodeFunctionResultArgs as d, DecodeFunctionResultResponse as e, EncodeDeployDataArgs as f, EncodeErrorResultArgs as g, EncodeEventTopicsArgs as h, EncodeFunctionDataArgs as i, EncodeFunctionResultArgs as j, decodeAbi as k, decodeEventLog as l, decodeFunctionData as m, decodeFunctionResult as n, encodeAbi as o, encodeDeployData as p, encodeErrorResult as q, encodeEventTopics as r, encodeFunctionData as s, encodeFunctionResult as t, formatAbiItemWithArgs as u, formatAbiItem as v, getAbiItem as w };
package/dist/index.d.ts CHANGED
@@ -1,26 +1,18 @@
1
- import { F as Filter, C as CallArgs } from './watchPendingTransactions-57df1a13.js';
2
- export { C as CallArgs, a as CallResponse, b as CreateBlockFilterResponse, c as CreatePendingTransactionFilterResponse, D as DeployContractArgs, e as DeployContractResponse, E as EstimateGasArgs, d as EstimateGasResponse, G as GetBalanceArgs, f as GetBalanceResponse, g as GetBlockArgs, h as GetBlockNumberArgs, i as GetBlockNumberResponse, j as GetBlockResponse, k as GetBlockTransactionCountArgs, l as GetBlockTransactionCountResponse, m as GetBytecodeArgs, n as GetBytecodeResponse, o as GetFeeHistoryArgs, p as GetFeeHistoryResponse, q as GetFilterChangesArgs, r as GetFilterChangesResponse, s as GetFilterLogsArgs, t as GetFilterLogsResponse, u as GetGasPriceResponse, v as GetTransactionArgs, w as GetTransactionConfirmationsArgs, x as GetTransactionConfirmationsResponse, y as GetTransactionCountArgs, z as GetTransactionCountResponse, B as GetTransactionReceiptArgs, H as GetTransactionReceiptResponse, A as GetTransactionResponse, O as OnBlock, I as OnBlockNumber, J as OnBlockNumberResponse, K as OnBlockResponse, L as OnTransactions, M as OnTransactionsResponse, S as SimulateContractArgs, N as SimulateContractResponse, U as UninstallFilterArgs, P as UninstallFilterResponse, W as WaitForTransactionReceiptArgs, Q as WaitForTransactionReceiptResponse, R as WatchBlockNumberArgs, T as WatchBlocksArgs, V as WatchPendingTransactionsArgs, X as WriteContractArgs, Y as WriteContractResponse, Z as call, _ as createBlockFilter, $ as createPendingTransactionFilter, a0 as deployContract, a1 as estimateGas, a2 as getBalance, a3 as getBlock, a4 as getBlockNumber, a5 as getBlockTransactionCount, a6 as getBytecode, a7 as getChainId, a8 as getFeeHistory, a9 as getFilterChanges, aa as getFilterLogs, ab as getGasPrice, ac as getTransaction, ad as getTransactionConfirmations, ae as getTransactionCount, af as getTransactionReceipt, ag as simulateContract, ah as uninstallFilter, ai as waitForTransactionReceipt, aj as watchBlockNumber, ak as watchBlocks, al as watchPendingTransactions, am as writeContract } from './watchPendingTransactions-57df1a13.js';
3
- import { H as Hex, A as Address, a as Hash, B as ByteArray, b as BlockTag, c as BlockNumber, L as Log } from './chain-4b39613a.js';
4
- export { d as AccessList, A as Address, e as Block, f as BlockIdentifier, c as BlockNumber, b as BlockTag, B as ByteArray, C as Chain, F as FeeHistory, g as FeeValues, h as FeeValuesEIP1559, i as FeeValuesLegacy, G as FormattedTransaction, a as Hash, H as Hex, L as Log, R as RpcBlock, j as RpcBlockIdentifier, k as RpcBlockNumber, l as RpcFeeHistory, m as RpcFeeValues, n as RpcLog, o as RpcTransaction, p as RpcTransactionReceipt, q as RpcTransactionRequest, r as RpcUncle, x as Transaction, y as TransactionBase, z as TransactionEIP1559, D as TransactionEIP2930, E as TransactionLegacy, T as TransactionReceipt, s as TransactionRequest, t as TransactionRequestBase, u as TransactionRequestEIP1559, v as TransactionRequestEIP2930, w as TransactionRequestLegacy, U as Uncle, I as formatTransaction, J as transactionType } from './chain-4b39613a.js';
5
- import { C as ContractConfig, E as ExtractResultFromAbi, a as EventDefinition, b as ExtractArgsFromEventDefinition, c as ExtractEventNameFromAbi, d as ExtractEventArgsFromAbi } from './contract-4c3a37b3.js';
6
- export { A as AbiItem, C as ContractConfig, F as FormattedBlock, f as formatBlock } from './contract-4c3a37b3.js';
7
- import { P as PublicClient } from './createPublicClient-3b27b282.js';
8
- export { P as PublicClient, a as PublicClientConfig, c as createPublicClient } from './createPublicClient-3b27b282.js';
9
- import { Abi } from 'abitype';
10
- export { C as Client, a as ClientConfig, T as Transport, b as TransportConfig, c as createClient, d as createTransport } from './createClient-55a04188.js';
11
- export { C as CustomTransport, a as CustomTransportConfig, F as FallbackTransport, b as FallbackTransportConfig, H as HttpTransport, c as HttpTransportConfig, W as WebSocketTransport, d as WebSocketTransportConfig, e as custom, f as fallback, h as http, w as webSocket } from './webSocket-d2e7bd0e.js';
12
- export { T as TestClient, a as TestClientConfig, c as createTestClient } from './createTestClient-93f9eac6.js';
13
- export { W as WalletClient, a as WalletClientConfig, c as createWalletClient } from './createWalletClient-c10df94d.js';
14
- export { D as DropTransactionArgs, I as ImpersonateAccountArgs, a as IncreaseTimeArgs, M as MineArgs, R as ResetArgs, b as RevertArgs, S as SendUnsignedTransactionArgs, c as SendUnsignedTransactionResponse, d as SetBalanceArgs, e as SetBlockGasLimitArgs, j as SetBlockTimestampIntervalArgs, f as SetCodeArgs, g as SetCoinbaseArgs, h as SetIntervalMiningArgs, i as SetMinGasPriceArgs, l as SetNextBlockBaseFeePerGasArgs, k as SetNextBlockTimestampArgs, m as SetNonceArgs, n as SetStorageAtArgs, o as StopImpersonatingAccountArgs, p as dropTransaction, q as getAutomine, r as getTxpoolContent, s as getTxpoolStatus, t as impersonateAccount, u as increaseTime, v as inspectTxpool, w as mine, x as removeBlockTimestampInterval, y as reset, z as revert, A as sendUnsignedTransaction, B as setAutomine, C as setBalance, E as setBlockGasLimit, F as setBlockTimestampInterval, G as setCode, H as setCoinbase, J as setIntervalMining, K as setLoggingEnabled, L as setMinGasPrice, N as setNextBlockBaseFeePerGas, O as setNextBlockTimestamp, P as setNonce, Q as setStorageAt, T as snapshot, U as stopImpersonatingAccount } from './stopImpersonatingAccount-afb26486.js';
15
- export { G as GetPermissionsResponse, R as RequestPermissionsResponse, S as SignMessageArgs, a as SignMessageResponse, b as SwitchChainArgs, W as WatchAssetArgs, c as WatchAssetResponse, d as addChain, g as getAccounts, e as getPermissions, r as requestAccounts, f as requestPermissions, s as signMessage, h as switchChain, w as watchAsset } from './watchAsset-efd3dd05.js';
16
- export { S as SendTransactionArgs, a as SendTransactionResponse, s as sendTransaction } from './sendTransaction-f17a2389.js';
17
- import { B as BaseError } from './parseGwei-3411cf2d.js';
18
- export { B as BaseError, C as ContractFunctionExecutionError, a as ContractFunctionRevertedError, b as ContractFunctionZeroDataError, D as DecodeAbiArgs, c as DecodeErrorResultArgs, d as DecodeFunctionDataArgs, e as DecodeFunctionResultArgs, f as DecodeFunctionResultResponse, E as EncodeAbiArgs, g as EncodeDeployDataArgs, h as EncodeErrorResultArgs, i as EncodeEventTopicsArgs, j as EncodeFunctionDataArgs, k as EncodeFunctionResultArgs, o as EncodeRlpResponse, n as GetAbiItemArgs, G as GetContractAddressOptions, m as GetCreate2AddressOptions, l as GetCreateAddressOptions, r as boolToBytes, s as boolToHex, t as bytesToBigint, u as bytesToBool, p as bytesToHex, v as bytesToNumber, q as bytesToString, w as decodeAbi, x as decodeBytes, y as decodeErrorResult, z as decodeFunctionData, A as decodeFunctionResult, F as decodeHex, H as decodeRlp, I as encodeAbi, J as encodeBytes, K as encodeDeployData, L as encodeErrorResult, M as encodeEventTopics, N as encodeFunctionData, O as encodeFunctionResult, P as encodeHex, Q as encodeRlp, R as etherUnits, Z as formatEther, ae as formatGwei, af as formatUnit, S as getAddress, T as getContractAddress, V as getCreate2Address, U as getCreateAddress, W as getEventSignature, X as getFunctionSignature, Y as gweiUnits, a2 as hexToBigInt, a3 as hexToBool, a4 as hexToBytes, ag as hexToNumber, a5 as hexToString, _ as isAddress, $ as isAddressEqual, a0 as isBytes, a1 as isHex, a6 as keccak256, a7 as numberToBytes, ah as numberToHex, a8 as pad, a9 as padBytes, aa as padHex, ab as parseEther, ac as parseGwei, ad as parseUnit, ai as size, aj as slice, ak as sliceBytes, al as sliceHex, am as stringToBytes, an as stringToHex, ao as trim, ap as weiUnits } from './parseGwei-3411cf2d.js';
19
- export { F as FormattedTransactionRequest, f as formatTransactionRequest } from './transactionRequest-93e9f001.js';
1
+ import { T as TransportConfig, a as Transport, B as BaseRpcRequests } from './createClient-68ee4bb4.js';
2
+ export { C as Client, b as ClientConfig, a as Transport, T as TransportConfig, c as createClient, d as createTransport } from './createClient-68ee4bb4.js';
3
+ import WebSocket from 'isomorphic-ws';
4
+ import { H as Hex, A as Address, a as Hash, B as ByteArray, b as BlockTag } from './chain-f16512e8.js';
5
+ export { c as AccessList, A as Address, d as Block, e as BlockIdentifier, f as BlockNumber, b as BlockTag, B as ByteArray, C as Chain, F as FeeHistory, g as FeeValues, h as FeeValuesEIP1559, i as FeeValuesLegacy, a as Hash, H as Hex, L as Log, R as RpcBlock, j as RpcBlockIdentifier, k as RpcBlockNumber, l as RpcFeeHistory, m as RpcFeeValues, n as RpcLog, o as RpcTransaction, p as RpcTransactionReceipt, q as RpcTransactionRequest, r as RpcUncle, x as Transaction, y as TransactionBase, z as TransactionEIP1559, D as TransactionEIP2930, E as TransactionLegacy, T as TransactionReceipt, s as TransactionRequest, t as TransactionRequestBase, u as TransactionRequestEIP1559, v as TransactionRequestEIP2930, w as TransactionRequestLegacy, U as Uncle } from './chain-f16512e8.js';
6
+ import { B as BaseError, R as RpcResponse } from './rpc-a5a7f376.js';
7
+ export { B as BaseError, C as ContractFunctionExecutionError, a as ContractFunctionRevertedError, b as ContractFunctionZeroDataError } from './rpc-a5a7f376.js';
8
+ export { P as PublicClient, a as PublicClientConfig, c as createPublicClient } from './createPublicClient-b732194e.js';
9
+ export { T as TestClient, a as TestClientConfig, c as createTestClient } from './createTestClient-dedf321e.js';
10
+ export { W as WalletClient, a as WalletClientConfig, c as createWalletClient } from './createWalletClient-75813d83.js';
11
+ export { A as AbiItem, C as ContractConfig } from './contract-9e76e561.js';
12
+ import './eip1193-6f9ba163.js';
20
13
  import '@wagmi/chains';
21
- import './eip1193-4c24765a.js';
22
- import './rpc-26932bae.js';
23
- import 'abitype/dist/abi-78346466';
14
+ import 'abitype';
15
+ import './decodeErrorResult-0b934d23.js';
24
16
 
25
17
  declare class AbiConstructorNotFoundError extends BaseError {
26
18
  name: string;
@@ -334,123 +326,83 @@ declare class UrlRequiredError extends BaseError {
334
326
  constructor();
335
327
  }
336
328
 
337
- type MAXIMUM_DEPTH = 20;
338
- type Contract<TAbi extends Abi | readonly unknown[] = Abi | readonly unknown[], TFunctionName extends string = string> = {
339
- abi: TAbi;
340
- functionName: TFunctionName;
329
+ type EthereumProvider = {
330
+ request: BaseRpcRequests['request'];
341
331
  };
342
- type MulticallContracts<TContracts extends Contract[], TProperties extends Record<string, any> = object, Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? (ContractConfig & TProperties)[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract] ? [
343
- ...Result,
344
- ContractConfig<Head['abi'], Head['functionName']> & TProperties
345
- ] : TContracts extends [
346
- infer Head extends Contract,
347
- ...infer Tail extends Contract[]
348
- ] ? MulticallContracts<[
349
- ...Tail
350
- ], TProperties, [
351
- ...Result,
352
- ContractConfig<Head['abi'], Head['functionName']> & TProperties
353
- ], [
354
- ...Depth,
355
- 1
356
- ]> : unknown[] extends TContracts ? TContracts : TContracts extends ContractConfig<infer TAbi, infer TFunctionName>[] ? (ContractConfig<TAbi, TFunctionName> & TProperties)[] : (ContractConfig & TProperties)[];
357
- type MulticallResult<Result, TAllowFailure extends boolean = true> = TAllowFailure extends true ? ({
358
- error?: undefined;
359
- result: Result;
360
- status: 'success';
361
- } | {
362
- error: Error;
363
- result?: undefined;
364
- status: 'error';
365
- }) : Result;
366
- type MulticallResults<TContracts extends Contract[], TAllowFailure extends boolean = true, Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? MulticallResult<ExtractResultFromAbi, TAllowFailure>[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract] ? [...Result, MulticallResult<ExtractResultFromAbi<Head['abi'], Head['functionName']>, TAllowFailure>] : TContracts extends [
367
- infer Head extends Contract,
368
- ...infer Tail extends Contract[]
369
- ] ? MulticallResults<[
370
- ...Tail
371
- ], TAllowFailure, [
372
- ...Result,
373
- MulticallResult<ExtractResultFromAbi<Head['abi'], Head['functionName']>, TAllowFailure>
374
- ], [
375
- ...Depth,
376
- 1
377
- ]> : TContracts extends ContractConfig<infer TAbi, infer TFunctionName>[] ? MulticallResult<ExtractResultFromAbi<TAbi, TFunctionName>, TAllowFailure>[] : MulticallResult<ExtractResultFromAbi, TAllowFailure>[];
378
-
379
- type EventFilterArgs<TEventDefinition extends EventDefinition> = ExtractArgsFromEventDefinition<TEventDefinition>;
380
- type CreateEventFilterArgs<TEventDefinition extends EventDefinition> = {
381
- address?: Address | Address[];
382
- fromBlock?: BlockNumber | BlockTag;
383
- toBlock?: BlockNumber | BlockTag;
384
- } & ({
385
- event: TEventDefinition;
386
- args?: EventFilterArgs<TEventDefinition>;
387
- } | {
388
- event?: never;
389
- args?: never;
390
- });
391
- type CreateEventFilterResponse = Filter<'event'>;
392
- declare function createEventFilter<TEventDefinition extends EventDefinition>(client: PublicClient, { address, event, args, fromBlock, toBlock, }?: CreateEventFilterArgs<TEventDefinition>): Promise<CreateEventFilterResponse>;
393
-
394
- type CreateContractEventFilterArgs<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string = any> = {
395
- address?: Address | Address[];
396
- abi: TAbi;
397
- eventName: ExtractEventNameFromAbi<TAbi, TEventName>;
398
- fromBlock?: BlockNumber | BlockTag;
399
- toBlock?: BlockNumber | BlockTag;
400
- } & ExtractEventArgsFromAbi<TAbi, TEventName>;
401
- type CreateContractEventFilterResponse = Filter<'event'>;
402
- declare function createContractEventFilter<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string = any>(client: PublicClient, { address, abi, args, eventName, fromBlock, toBlock, }: CreateContractEventFilterArgs<TAbi, TEventName>): Promise<CreateContractEventFilterResponse>;
403
-
404
- type GetLogsArgs<TEventDefinition extends EventDefinition> = {
405
- /** Address or list of addresses from which logs originated */
406
- address?: Address | Address[];
407
- } & ({
408
- event: TEventDefinition;
409
- args?: EventFilterArgs<TEventDefinition>;
410
- } | {
411
- event?: never;
412
- args?: never;
413
- }) & ({
414
- /** Block number or tag after which to include logs */
415
- fromBlock?: BlockNumber<bigint> | BlockTag;
416
- /** Block number or tag before which to include logs */
417
- toBlock?: BlockNumber<bigint> | BlockTag;
418
- blockHash?: never;
419
- } | {
420
- fromBlock?: never;
421
- toBlock?: never;
422
- /** Hash of block to include logs from */
423
- blockHash?: Hash;
424
- });
425
- type GetLogsResponse = Log[];
332
+ type CustomTransportConfig = {
333
+ /** The key of the transport. */
334
+ key?: TransportConfig['key'];
335
+ /** The name of the transport. */
336
+ name?: TransportConfig['name'];
337
+ };
338
+ type CustomTransport = Transport<'custom', EthereumProvider['request']>;
426
339
  /**
427
- * @description Returns a collection of event logs.
340
+ * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.
428
341
  */
429
- declare function getLogs<TEventDefinition extends EventDefinition>(client: PublicClient, { address, blockHash, fromBlock, toBlock, event, args, }?: GetLogsArgs<TEventDefinition>): Promise<GetLogsResponse>;
342
+ declare function custom<TProvider extends EthereumProvider>(
343
+ /** An Ethereum provider with an EIP-1193 "request" attribute. */
344
+ provider: TProvider, { key, name }?: CustomTransportConfig): CustomTransport;
430
345
 
431
- type GetStorageAtArgs = {
432
- address: Address;
433
- slot: Hex;
434
- } & ({
435
- blockNumber?: never;
436
- blockTag?: BlockTag;
437
- } | {
438
- blockNumber?: bigint;
439
- blockTag?: never;
440
- });
441
- type GetStorageAtResponse = Hex | undefined;
442
- declare function getStorageAt(client: PublicClient, { address, blockNumber, blockTag, slot }: GetStorageAtArgs): Promise<GetStorageAtResponse>;
346
+ type FallbackTransportConfig = {
347
+ /** The key of the Fallback transport. */
348
+ key?: TransportConfig['key'];
349
+ /** The name of the Fallback transport. */
350
+ name?: TransportConfig['name'];
351
+ };
352
+ type FallbackTransport = Transport<'fallback', {
353
+ transports: Transport[];
354
+ }>;
355
+ declare function fallback(transports: Transport[], { key, name }?: FallbackTransportConfig): FallbackTransport;
443
356
 
444
- type MulticallArgs<TContracts extends ContractConfig[], TAllowFailure extends boolean = true> = Pick<CallArgs, 'blockNumber' | 'blockTag'> & {
445
- allowFailure?: TAllowFailure;
446
- contracts: readonly [...MulticallContracts<TContracts>];
447
- multicallAddress: Address;
357
+ type HttpTransportConfig = {
358
+ /** The key of the HTTP transport. */
359
+ key?: TransportConfig['key'];
360
+ /** The name of the HTTP transport. */
361
+ name?: TransportConfig['name'];
448
362
  };
449
- declare function multicall<TContracts extends ContractConfig[], TAllowFailure extends boolean = true>(client: PublicClient, args: MulticallArgs<TContracts, TAllowFailure>): Promise<MulticallResults<TContracts, TAllowFailure>>;
363
+ type HttpTransport = Transport<'http', {
364
+ url?: string;
365
+ }>;
366
+ /**
367
+ * @description Creates a HTTP transport that connects to a JSON-RPC API.
368
+ */
369
+ declare function http(
370
+ /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */
371
+ url?: string, { key, name }?: HttpTransportConfig): HttpTransport;
450
372
 
451
- type ReadContractArgs<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = Pick<CallArgs, 'blockNumber' | 'blockTag'> & ContractConfig<TAbi, TFunctionName, 'view' | 'pure'>;
452
- type ReadContractResponse<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = ExtractResultFromAbi<TAbi, TFunctionName>;
453
- declare function readContract<TAbi extends Abi | readonly unknown[], TFunctionName extends string>(client: PublicClient, { abi, address, args, functionName, ...callRequest }: ReadContractArgs<TAbi, TFunctionName>): Promise<ReadContractResponse<TAbi, TFunctionName>>;
373
+ type WebSocketTransportSubscribeArgs = {
374
+ onData: (data: RpcResponse) => void;
375
+ onError?: (error: any) => void;
376
+ };
377
+ type WebSocketTransportSubscribeResponse = {
378
+ subscriptionId: Hash;
379
+ unsubscribe: () => Promise<RpcResponse<boolean>>;
380
+ };
381
+ type WebSocketTransportSubscribe = {
382
+ subscribe(args: WebSocketTransportSubscribeArgs & {
383
+ /**
384
+ * @description Add information about compiled contracts
385
+ * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_addcompilationresult
386
+ */
387
+ params: ['newHeads'];
388
+ }): Promise<WebSocketTransportSubscribeResponse>;
389
+ };
390
+ type WebSocketTransportConfig = {
391
+ /** The key of the WebSocket transport. */
392
+ key?: TransportConfig['key'];
393
+ /** The name of the WebSocket transport. */
394
+ name?: TransportConfig['name'];
395
+ };
396
+ type WebSocketTransport = Transport<'webSocket', {
397
+ getSocket(): Promise<WebSocket>;
398
+ subscribe: WebSocketTransportSubscribe['subscribe'];
399
+ }>;
400
+ /**
401
+ * @description Creates a WebSocket transport that connects to a JSON-RPC API.
402
+ */
403
+ declare function webSocket(
404
+ /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */
405
+ url?: string, { key, name, }?: WebSocketTransportConfig): WebSocketTransport;
454
406
 
455
407
  declare const multicall3Abi: readonly [{
456
408
  readonly inputs: readonly [{
@@ -483,4 +435,4 @@ declare const multicall3Abi: readonly [{
483
435
  readonly type: "function";
484
436
  }];
485
437
 
486
- export { AbiConstructorNotFoundError, AbiConstructorParamsNotFoundError, AbiDecodingDataSizeInvalidError, AbiEncodingArrayLengthMismatchError, AbiEncodingLengthMismatchError, AbiErrorInputsNotFoundError, AbiErrorNotFoundError, AbiErrorSignatureNotFoundError, AbiEventNotFoundError, AbiFunctionNotFoundError, AbiFunctionOutputsNotFoundError, AbiFunctionSignatureNotFoundError, BlockNotFoundError, CreateContractEventFilterArgs, CreateContractEventFilterResponse, CreateEventFilterArgs, CreateEventFilterResponse, DataLengthTooLongError, DataLengthTooShortError, FilterTypeNotSupportedError, GetLogsArgs, GetLogsResponse, GetStorageAtArgs, GetStorageAtResponse, HttpRequestError, InternalRpcError, InvalidAbiDecodingTypeError, InvalidAbiEncodingTypeError, InvalidAddressError, InvalidArrayError, InvalidBytesBooleanError, InvalidDefinitionTypeError, InvalidGasArgumentsError, InvalidHexBooleanError, InvalidHexValueError, InvalidInputRpcError, InvalidParamsRpcError, InvalidRequestRpcError, JsonRpcVersionUnsupportedError, LimitExceededRpcError, MethodNotFoundRpcError, MethodNotSupportedRpcError, MulticallArgs, OffsetOutOfBoundsError, ParseRpcError, ReadContractArgs, ReadContractResponse, RequestError, ResourceNotFoundRpcError, ResourceUnavailableRpcError, RpcError, RpcRequestError, SizeExceedsPaddingSizeError, TimeoutError, TransactionNotFoundError, TransactionReceiptNotFoundError, TransactionRejectedRpcError, UnknownRpcError, UrlRequiredError, WaitForTransactionReceiptTimeoutError, WebSocketRequestError, createContractEventFilter, createEventFilter, getLogs, getStorageAt, multicall, multicall3Abi, readContract };
438
+ export { AbiConstructorNotFoundError, AbiConstructorParamsNotFoundError, AbiDecodingDataSizeInvalidError, AbiEncodingArrayLengthMismatchError, AbiEncodingLengthMismatchError, AbiErrorInputsNotFoundError, AbiErrorNotFoundError, AbiErrorSignatureNotFoundError, AbiEventNotFoundError, AbiFunctionNotFoundError, AbiFunctionOutputsNotFoundError, AbiFunctionSignatureNotFoundError, BlockNotFoundError, CustomTransport, CustomTransportConfig, DataLengthTooLongError, DataLengthTooShortError, FallbackTransport, FallbackTransportConfig, FilterTypeNotSupportedError, HttpRequestError, HttpTransport, HttpTransportConfig, InternalRpcError, InvalidAbiDecodingTypeError, InvalidAbiEncodingTypeError, InvalidAddressError, InvalidArrayError, InvalidBytesBooleanError, InvalidDefinitionTypeError, InvalidGasArgumentsError, InvalidHexBooleanError, InvalidHexValueError, InvalidInputRpcError, InvalidParamsRpcError, InvalidRequestRpcError, JsonRpcVersionUnsupportedError, LimitExceededRpcError, MethodNotFoundRpcError, MethodNotSupportedRpcError, OffsetOutOfBoundsError, ParseRpcError, RequestError, ResourceNotFoundRpcError, ResourceUnavailableRpcError, RpcError, RpcRequestError, SizeExceedsPaddingSizeError, TimeoutError, TransactionNotFoundError, TransactionReceiptNotFoundError, TransactionRejectedRpcError, UnknownRpcError, UrlRequiredError, WaitForTransactionReceiptTimeoutError, WebSocketRequestError, WebSocketTransport, WebSocketTransportConfig, custom, fallback, http, multicall3Abi, webSocket };