eteres 0.0.1-security → 6.7.1

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.

Potentially problematic release.


This version of eteres might be problematic. Click here for more details.

Files changed (1265) hide show
  1. package/CHANGELOG.md +247 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +137 -5
  4. package/SECURITY.md +34 -0
  5. package/dist/README.md +22 -0
  6. package/dist/ethers.js +23758 -0
  7. package/dist/ethers.js.map +1 -0
  8. package/dist/ethers.min.js +1 -0
  9. package/dist/ethers.umd.js +23954 -0
  10. package/dist/ethers.umd.js.map +1 -0
  11. package/dist/ethers.umd.min.js +1 -0
  12. package/dist/wordlists-extra.js +1595 -0
  13. package/dist/wordlists-extra.js.map +1 -0
  14. package/dist/wordlists-extra.min.js +1 -0
  15. package/lib.commonjs/README.md +16 -0
  16. package/lib.commonjs/_version.d.ts +5 -0
  17. package/lib.commonjs/_version.d.ts.map +1 -0
  18. package/lib.commonjs/_version.js +9 -0
  19. package/lib.commonjs/_version.js.map +1 -0
  20. package/lib.commonjs/abi/abi-coder.d.ts +60 -0
  21. package/lib.commonjs/abi/abi-coder.d.ts.map +1 -0
  22. package/lib.commonjs/abi/abi-coder.js +205 -0
  23. package/lib.commonjs/abi/abi-coder.js.map +1 -0
  24. package/lib.commonjs/abi/bytes32.d.ts +15 -0
  25. package/lib.commonjs/abi/bytes32.d.ts.map +1 -0
  26. package/lib.commonjs/abi/bytes32.js +45 -0
  27. package/lib.commonjs/abi/bytes32.js.map +1 -0
  28. package/lib.commonjs/abi/coders/abstract-coder.d.ts +121 -0
  29. package/lib.commonjs/abi/coders/abstract-coder.d.ts.map +1 -0
  30. package/lib.commonjs/abi/coders/abstract-coder.js +407 -0
  31. package/lib.commonjs/abi/coders/abstract-coder.js.map +1 -0
  32. package/lib.commonjs/abi/coders/address.d.ts +13 -0
  33. package/lib.commonjs/abi/coders/address.d.ts.map +1 -0
  34. package/lib.commonjs/abi/coders/address.js +33 -0
  35. package/lib.commonjs/abi/coders/address.js.map +1 -0
  36. package/lib.commonjs/abi/coders/anonymous.d.ts +15 -0
  37. package/lib.commonjs/abi/coders/anonymous.d.ts.map +1 -0
  38. package/lib.commonjs/abi/coders/anonymous.js +27 -0
  39. package/lib.commonjs/abi/coders/anonymous.js.map +1 -0
  40. package/lib.commonjs/abi/coders/array.d.ts +25 -0
  41. package/lib.commonjs/abi/coders/array.d.ts.map +1 -0
  42. package/lib.commonjs/abi/coders/array.js +165 -0
  43. package/lib.commonjs/abi/coders/array.js.map +1 -0
  44. package/lib.commonjs/abi/coders/boolean.d.ts +13 -0
  45. package/lib.commonjs/abi/coders/boolean.d.ts.map +1 -0
  46. package/lib.commonjs/abi/coders/boolean.js +25 -0
  47. package/lib.commonjs/abi/coders/boolean.js.map +1 -0
  48. package/lib.commonjs/abi/coders/bytes.d.ts +19 -0
  49. package/lib.commonjs/abi/coders/bytes.d.ts.map +1 -0
  50. package/lib.commonjs/abi/coders/bytes.js +39 -0
  51. package/lib.commonjs/abi/coders/bytes.js.map +1 -0
  52. package/lib.commonjs/abi/coders/fixed-bytes.d.ts +15 -0
  53. package/lib.commonjs/abi/coders/fixed-bytes.d.ts.map +1 -0
  54. package/lib.commonjs/abi/coders/fixed-bytes.js +32 -0
  55. package/lib.commonjs/abi/coders/fixed-bytes.js.map +1 -0
  56. package/lib.commonjs/abi/coders/null.d.ts +12 -0
  57. package/lib.commonjs/abi/coders/null.d.ts.map +1 -0
  58. package/lib.commonjs/abi/coders/null.js +28 -0
  59. package/lib.commonjs/abi/coders/null.js.map +1 -0
  60. package/lib.commonjs/abi/coders/number.d.ts +16 -0
  61. package/lib.commonjs/abi/coders/number.d.ts.map +1 -0
  62. package/lib.commonjs/abi/coders/number.js +49 -0
  63. package/lib.commonjs/abi/coders/number.js.map +1 -0
  64. package/lib.commonjs/abi/coders/string.d.ts +13 -0
  65. package/lib.commonjs/abi/coders/string.d.ts.map +1 -0
  66. package/lib.commonjs/abi/coders/string.js +25 -0
  67. package/lib.commonjs/abi/coders/string.js.map +1 -0
  68. package/lib.commonjs/abi/coders/tuple.d.ts +16 -0
  69. package/lib.commonjs/abi/coders/tuple.d.ts.map +1 -0
  70. package/lib.commonjs/abi/coders/tuple.js +67 -0
  71. package/lib.commonjs/abi/coders/tuple.js.map +1 -0
  72. package/lib.commonjs/abi/fragments.d.ts +466 -0
  73. package/lib.commonjs/abi/fragments.d.ts.map +1 -0
  74. package/lib.commonjs/abi/fragments.js +1331 -0
  75. package/lib.commonjs/abi/fragments.js.map +1 -0
  76. package/lib.commonjs/abi/index.d.ts +18 -0
  77. package/lib.commonjs/abi/index.d.ts.map +1 -0
  78. package/lib.commonjs/abi/index.js +40 -0
  79. package/lib.commonjs/abi/index.js.map +1 -0
  80. package/lib.commonjs/abi/interface.d.ts +382 -0
  81. package/lib.commonjs/abi/interface.d.ts.map +1 -0
  82. package/lib.commonjs/abi/interface.js +1106 -0
  83. package/lib.commonjs/abi/interface.js.map +1 -0
  84. package/lib.commonjs/abi/typed.d.ts +570 -0
  85. package/lib.commonjs/abi/typed.d.ts.map +1 -0
  86. package/lib.commonjs/abi/typed.js +606 -0
  87. package/lib.commonjs/abi/typed.js.map +1 -0
  88. package/lib.commonjs/address/address.d.ts +56 -0
  89. package/lib.commonjs/address/address.d.ts.map +1 -0
  90. package/lib.commonjs/address/address.js +161 -0
  91. package/lib.commonjs/address/address.js.map +1 -0
  92. package/lib.commonjs/address/checks.d.ts +81 -0
  93. package/lib.commonjs/address/checks.d.ts.map +1 -0
  94. package/lib.commonjs/address/checks.js +120 -0
  95. package/lib.commonjs/address/checks.js.map +1 -0
  96. package/lib.commonjs/address/contract-address.d.ts +48 -0
  97. package/lib.commonjs/address/contract-address.d.ts.map +1 -0
  98. package/lib.commonjs/address/contract-address.js +74 -0
  99. package/lib.commonjs/address/contract-address.js.map +1 -0
  100. package/lib.commonjs/address/index.d.ts +49 -0
  101. package/lib.commonjs/address/index.d.ts.map +1 -0
  102. package/lib.commonjs/address/index.js +29 -0
  103. package/lib.commonjs/address/index.js.map +1 -0
  104. package/lib.commonjs/constants/addresses.d.ts +7 -0
  105. package/lib.commonjs/constants/addresses.d.ts.map +1 -0
  106. package/lib.commonjs/constants/addresses.js +10 -0
  107. package/lib.commonjs/constants/addresses.js.map +1 -0
  108. package/lib.commonjs/constants/hashes.d.ts +7 -0
  109. package/lib.commonjs/constants/hashes.d.ts.map +1 -0
  110. package/lib.commonjs/constants/hashes.js +10 -0
  111. package/lib.commonjs/constants/hashes.js.map +1 -0
  112. package/lib.commonjs/constants/index.d.ts +10 -0
  113. package/lib.commonjs/constants/index.d.ts.map +1 -0
  114. package/lib.commonjs/constants/index.js +22 -0
  115. package/lib.commonjs/constants/index.js.map +1 -0
  116. package/lib.commonjs/constants/numbers.d.ts +31 -0
  117. package/lib.commonjs/constants/numbers.d.ts.map +1 -0
  118. package/lib.commonjs/constants/numbers.js +34 -0
  119. package/lib.commonjs/constants/numbers.js.map +1 -0
  120. package/lib.commonjs/constants/strings.d.ts +13 -0
  121. package/lib.commonjs/constants/strings.d.ts.map +1 -0
  122. package/lib.commonjs/constants/strings.js +17 -0
  123. package/lib.commonjs/constants/strings.js.map +1 -0
  124. package/lib.commonjs/contract/contract.d.ts +168 -0
  125. package/lib.commonjs/contract/contract.d.ts.map +1 -0
  126. package/lib.commonjs/contract/contract.js +943 -0
  127. package/lib.commonjs/contract/contract.js.map +1 -0
  128. package/lib.commonjs/contract/factory.d.ts +62 -0
  129. package/lib.commonjs/contract/factory.d.ts.map +1 -0
  130. package/lib.commonjs/contract/factory.js +116 -0
  131. package/lib.commonjs/contract/factory.js.map +1 -0
  132. package/lib.commonjs/contract/index.d.ts +13 -0
  133. package/lib.commonjs/contract/index.d.ts.map +1 -0
  134. package/lib.commonjs/contract/index.js +24 -0
  135. package/lib.commonjs/contract/index.js.map +1 -0
  136. package/lib.commonjs/contract/types.d.ts +193 -0
  137. package/lib.commonjs/contract/types.d.ts.map +1 -0
  138. package/lib.commonjs/contract/types.js +6 -0
  139. package/lib.commonjs/contract/types.js.map +1 -0
  140. package/lib.commonjs/contract/wrappers.d.ts +143 -0
  141. package/lib.commonjs/contract/wrappers.d.ts.map +1 -0
  142. package/lib.commonjs/contract/wrappers.js +186 -0
  143. package/lib.commonjs/contract/wrappers.js.map +1 -0
  144. package/lib.commonjs/crypto/crypto-browser.d.ts +15 -0
  145. package/lib.commonjs/crypto/crypto-browser.d.ts.map +1 -0
  146. package/lib.commonjs/crypto/crypto-browser.js +55 -0
  147. package/lib.commonjs/crypto/crypto-browser.js.map +1 -0
  148. package/lib.commonjs/crypto/crypto.d.ts +2 -0
  149. package/lib.commonjs/crypto/crypto.d.ts.map +1 -0
  150. package/lib.commonjs/crypto/crypto.js +9 -0
  151. package/lib.commonjs/crypto/crypto.js.map +1 -0
  152. package/lib.commonjs/crypto/hmac.d.ts +25 -0
  153. package/lib.commonjs/crypto/hmac.d.ts.map +1 -0
  154. package/lib.commonjs/crypto/hmac.js +51 -0
  155. package/lib.commonjs/crypto/hmac.js.map +1 -0
  156. package/lib.commonjs/crypto/index.d.ts +25 -0
  157. package/lib.commonjs/crypto/index.d.ts.map +1 -0
  158. package/lib.commonjs/crypto/index.js +49 -0
  159. package/lib.commonjs/crypto/index.js.map +1 -0
  160. package/lib.commonjs/crypto/keccak.d.ts +35 -0
  161. package/lib.commonjs/crypto/keccak.d.ts.map +1 -0
  162. package/lib.commonjs/crypto/keccak.js +52 -0
  163. package/lib.commonjs/crypto/keccak.js.map +1 -0
  164. package/lib.commonjs/crypto/pbkdf2.d.ts +35 -0
  165. package/lib.commonjs/crypto/pbkdf2.d.ts.map +1 -0
  166. package/lib.commonjs/crypto/pbkdf2.js +53 -0
  167. package/lib.commonjs/crypto/pbkdf2.js.map +1 -0
  168. package/lib.commonjs/crypto/random.d.ts +14 -0
  169. package/lib.commonjs/crypto/random.d.ts.map +1 -0
  170. package/lib.commonjs/crypto/random.js +38 -0
  171. package/lib.commonjs/crypto/random.js.map +1 -0
  172. package/lib.commonjs/crypto/ripemd160.d.ts +25 -0
  173. package/lib.commonjs/crypto/ripemd160.d.ts.map +1 -0
  174. package/lib.commonjs/crypto/ripemd160.js +42 -0
  175. package/lib.commonjs/crypto/ripemd160.js.map +1 -0
  176. package/lib.commonjs/crypto/scrypt.d.ts +82 -0
  177. package/lib.commonjs/crypto/scrypt.d.ts.map +1 -0
  178. package/lib.commonjs/crypto/scrypt.js +104 -0
  179. package/lib.commonjs/crypto/scrypt.js.map +1 -0
  180. package/lib.commonjs/crypto/sha2.d.ts +47 -0
  181. package/lib.commonjs/crypto/sha2.d.ts.map +1 -0
  182. package/lib.commonjs/crypto/sha2.js +76 -0
  183. package/lib.commonjs/crypto/sha2.js.map +1 -0
  184. package/lib.commonjs/crypto/signature.d.ts +158 -0
  185. package/lib.commonjs/crypto/signature.d.ts.map +1 -0
  186. package/lib.commonjs/crypto/signature.js +305 -0
  187. package/lib.commonjs/crypto/signature.js.map +1 -0
  188. package/lib.commonjs/crypto/signing-key.d.ts +122 -0
  189. package/lib.commonjs/crypto/signing-key.d.ts.map +1 -0
  190. package/lib.commonjs/crypto/signing-key.js +178 -0
  191. package/lib.commonjs/crypto/signing-key.js.map +1 -0
  192. package/lib.commonjs/ethers.d.ts +22 -0
  193. package/lib.commonjs/ethers.d.ts.map +1 -0
  194. package/lib.commonjs/ethers.js +209 -0
  195. package/lib.commonjs/ethers.js.map +1 -0
  196. package/lib.commonjs/hash/id.d.ts +13 -0
  197. package/lib.commonjs/hash/id.d.ts.map +1 -0
  198. package/lib.commonjs/hash/id.js +21 -0
  199. package/lib.commonjs/hash/id.js.map +1 -0
  200. package/lib.commonjs/hash/index.d.ts +13 -0
  201. package/lib.commonjs/hash/index.d.ts.map +1 -0
  202. package/lib.commonjs/hash/index.js +27 -0
  203. package/lib.commonjs/hash/index.js.map +1 -0
  204. package/lib.commonjs/hash/message.d.ts +36 -0
  205. package/lib.commonjs/hash/message.d.ts.map +1 -0
  206. package/lib.commonjs/hash/message.js +56 -0
  207. package/lib.commonjs/hash/message.js.map +1 -0
  208. package/lib.commonjs/hash/namehash.d.ts +20 -0
  209. package/lib.commonjs/hash/namehash.d.ts.map +1 -0
  210. package/lib.commonjs/hash/namehash.js +88 -0
  211. package/lib.commonjs/hash/namehash.js.map +1 -0
  212. package/lib.commonjs/hash/solidity.d.ts +31 -0
  213. package/lib.commonjs/hash/solidity.d.ts.map +1 -0
  214. package/lib.commonjs/hash/solidity.js +109 -0
  215. package/lib.commonjs/hash/solidity.js.map +1 -0
  216. package/lib.commonjs/hash/typed-data.d.ts +150 -0
  217. package/lib.commonjs/hash/typed-data.d.ts.map +1 -0
  218. package/lib.commonjs/hash/typed-data.js +493 -0
  219. package/lib.commonjs/hash/typed-data.js.map +1 -0
  220. package/lib.commonjs/index.d.ts +11 -0
  221. package/lib.commonjs/index.d.ts.map +1 -0
  222. package/lib.commonjs/index.js +15 -0
  223. package/lib.commonjs/index.js.map +1 -0
  224. package/lib.commonjs/package.json +12 -0
  225. package/lib.commonjs/providers/abstract-provider.d.ts +449 -0
  226. package/lib.commonjs/providers/abstract-provider.d.ts.map +1 -0
  227. package/lib.commonjs/providers/abstract-provider.js +1382 -0
  228. package/lib.commonjs/providers/abstract-provider.js.map +1 -0
  229. package/lib.commonjs/providers/abstract-signer.d.ts +67 -0
  230. package/lib.commonjs/providers/abstract-signer.d.ts.map +1 -0
  231. package/lib.commonjs/providers/abstract-signer.js +228 -0
  232. package/lib.commonjs/providers/abstract-signer.js.map +1 -0
  233. package/lib.commonjs/providers/community.d.ts +29 -0
  234. package/lib.commonjs/providers/community.d.ts.map +1 -0
  235. package/lib.commonjs/providers/community.js +40 -0
  236. package/lib.commonjs/providers/community.js.map +1 -0
  237. package/lib.commonjs/providers/contracts.d.ts +36 -0
  238. package/lib.commonjs/providers/contracts.d.ts.map +1 -0
  239. package/lib.commonjs/providers/contracts.js +3 -0
  240. package/lib.commonjs/providers/contracts.js.map +1 -0
  241. package/lib.commonjs/providers/default-provider.d.ts +5 -0
  242. package/lib.commonjs/providers/default-provider.d.ts.map +1 -0
  243. package/lib.commonjs/providers/default-provider.js +138 -0
  244. package/lib.commonjs/providers/default-provider.js.map +1 -0
  245. package/lib.commonjs/providers/ens-resolver.d.ts +147 -0
  246. package/lib.commonjs/providers/ens-resolver.d.ts.map +1 -0
  247. package/lib.commonjs/providers/ens-resolver.js +502 -0
  248. package/lib.commonjs/providers/ens-resolver.js.map +1 -0
  249. package/lib.commonjs/providers/format.d.ts +15 -0
  250. package/lib.commonjs/providers/format.d.ts.map +1 -0
  251. package/lib.commonjs/providers/format.js +273 -0
  252. package/lib.commonjs/providers/format.js.map +1 -0
  253. package/lib.commonjs/providers/formatting.d.ts +268 -0
  254. package/lib.commonjs/providers/formatting.d.ts.map +1 -0
  255. package/lib.commonjs/providers/formatting.js +10 -0
  256. package/lib.commonjs/providers/formatting.js.map +1 -0
  257. package/lib.commonjs/providers/index.d.ts +47 -0
  258. package/lib.commonjs/providers/index.d.ts.map +1 -0
  259. package/lib.commonjs/providers/index.js +80 -0
  260. package/lib.commonjs/providers/index.js.map +1 -0
  261. package/lib.commonjs/providers/network.d.ts +99 -0
  262. package/lib.commonjs/providers/network.d.ts.map +1 -0
  263. package/lib.commonjs/providers/network.js +378 -0
  264. package/lib.commonjs/providers/network.js.map +1 -0
  265. package/lib.commonjs/providers/pagination.d.ts +6 -0
  266. package/lib.commonjs/providers/pagination.d.ts.map +1 -0
  267. package/lib.commonjs/providers/pagination.js +3 -0
  268. package/lib.commonjs/providers/pagination.js.map +1 -0
  269. package/lib.commonjs/providers/plugin-fallback.d.ts +13 -0
  270. package/lib.commonjs/providers/plugin-fallback.d.ts.map +1 -0
  271. package/lib.commonjs/providers/plugin-fallback.js +31 -0
  272. package/lib.commonjs/providers/plugin-fallback.js.map +1 -0
  273. package/lib.commonjs/providers/plugins-network.d.ts +170 -0
  274. package/lib.commonjs/providers/plugins-network.d.ts.map +1 -0
  275. package/lib.commonjs/providers/plugins-network.js +216 -0
  276. package/lib.commonjs/providers/plugins-network.js.map +1 -0
  277. package/lib.commonjs/providers/provider-alchemy.d.ts +31 -0
  278. package/lib.commonjs/providers/provider-alchemy.d.ts.map +1 -0
  279. package/lib.commonjs/providers/provider-alchemy.js +120 -0
  280. package/lib.commonjs/providers/provider-alchemy.js.map +1 -0
  281. package/lib.commonjs/providers/provider-ankr.d.ts +51 -0
  282. package/lib.commonjs/providers/provider-ankr.d.ts.map +1 -0
  283. package/lib.commonjs/providers/provider-ankr.js +107 -0
  284. package/lib.commonjs/providers/provider-ankr.js.map +1 -0
  285. package/lib.commonjs/providers/provider-browser.d.ts +56 -0
  286. package/lib.commonjs/providers/provider-browser.d.ts.map +1 -0
  287. package/lib.commonjs/providers/provider-browser.js +102 -0
  288. package/lib.commonjs/providers/provider-browser.js.map +1 -0
  289. package/lib.commonjs/providers/provider-cloudflare.d.ts +14 -0
  290. package/lib.commonjs/providers/provider-cloudflare.d.ts.map +1 -0
  291. package/lib.commonjs/providers/provider-cloudflare.js +26 -0
  292. package/lib.commonjs/providers/provider-cloudflare.js.map +1 -0
  293. package/lib.commonjs/providers/provider-etherscan.d.ts +141 -0
  294. package/lib.commonjs/providers/provider-etherscan.d.ts.map +1 -0
  295. package/lib.commonjs/providers/provider-etherscan.js +522 -0
  296. package/lib.commonjs/providers/provider-etherscan.js.map +1 -0
  297. package/lib.commonjs/providers/provider-fallback.d.ts +115 -0
  298. package/lib.commonjs/providers/provider-fallback.d.ts.map +1 -0
  299. package/lib.commonjs/providers/provider-fallback.js +573 -0
  300. package/lib.commonjs/providers/provider-fallback.js.map +1 -0
  301. package/lib.commonjs/providers/provider-infura.d.ts +90 -0
  302. package/lib.commonjs/providers/provider-infura.d.ts.map +1 -0
  303. package/lib.commonjs/providers/provider-infura.js +176 -0
  304. package/lib.commonjs/providers/provider-infura.js.map +1 -0
  305. package/lib.commonjs/providers/provider-ipcsocket-browser.d.ts +3 -0
  306. package/lib.commonjs/providers/provider-ipcsocket-browser.d.ts.map +1 -0
  307. package/lib.commonjs/providers/provider-ipcsocket-browser.js +6 -0
  308. package/lib.commonjs/providers/provider-ipcsocket-browser.js.map +1 -0
  309. package/lib.commonjs/providers/provider-ipcsocket.d.ts +20 -0
  310. package/lib.commonjs/providers/provider-ipcsocket.d.ts.map +1 -0
  311. package/lib.commonjs/providers/provider-ipcsocket.js +69 -0
  312. package/lib.commonjs/providers/provider-ipcsocket.js.map +1 -0
  313. package/lib.commonjs/providers/provider-jsonrpc.d.ts +350 -0
  314. package/lib.commonjs/providers/provider-jsonrpc.d.ts.map +1 -0
  315. package/lib.commonjs/providers/provider-jsonrpc.js +880 -0
  316. package/lib.commonjs/providers/provider-jsonrpc.js.map +1 -0
  317. package/lib.commonjs/providers/provider-pocket.d.ts +54 -0
  318. package/lib.commonjs/providers/provider-pocket.d.ts.map +1 -0
  319. package/lib.commonjs/providers/provider-pocket.js +109 -0
  320. package/lib.commonjs/providers/provider-pocket.js.map +1 -0
  321. package/lib.commonjs/providers/provider-quicknode.d.ts +50 -0
  322. package/lib.commonjs/providers/provider-quicknode.d.ts.map +1 -0
  323. package/lib.commonjs/providers/provider-quicknode.js +109 -0
  324. package/lib.commonjs/providers/provider-quicknode.js.map +1 -0
  325. package/lib.commonjs/providers/provider-socket.d.ts +113 -0
  326. package/lib.commonjs/providers/provider-socket.d.ts.map +1 -0
  327. package/lib.commonjs/providers/provider-socket.js +293 -0
  328. package/lib.commonjs/providers/provider-socket.js.map +1 -0
  329. package/lib.commonjs/providers/provider-websocket.d.ts +36 -0
  330. package/lib.commonjs/providers/provider-websocket.d.ts.map +1 -0
  331. package/lib.commonjs/providers/provider-websocket.js +80 -0
  332. package/lib.commonjs/providers/provider-websocket.js.map +1 -0
  333. package/lib.commonjs/providers/provider.d.ts +1131 -0
  334. package/lib.commonjs/providers/provider.d.ts.map +1 -0
  335. package/lib.commonjs/providers/provider.js +1226 -0
  336. package/lib.commonjs/providers/provider.js.map +1 -0
  337. package/lib.commonjs/providers/signer-noncemanager.d.ts +38 -0
  338. package/lib.commonjs/providers/signer-noncemanager.d.ts.map +1 -0
  339. package/lib.commonjs/providers/signer-noncemanager.js +78 -0
  340. package/lib.commonjs/providers/signer-noncemanager.js.map +1 -0
  341. package/lib.commonjs/providers/signer.d.ts +118 -0
  342. package/lib.commonjs/providers/signer.d.ts.map +1 -0
  343. package/lib.commonjs/providers/signer.js +3 -0
  344. package/lib.commonjs/providers/signer.js.map +1 -0
  345. package/lib.commonjs/providers/subscriber-connection.d.ts +25 -0
  346. package/lib.commonjs/providers/subscriber-connection.d.ts.map +1 -0
  347. package/lib.commonjs/providers/subscriber-connection.js +56 -0
  348. package/lib.commonjs/providers/subscriber-connection.js.map +1 -0
  349. package/lib.commonjs/providers/subscriber-filterid.d.ts +64 -0
  350. package/lib.commonjs/providers/subscriber-filterid.d.ts.map +1 -0
  351. package/lib.commonjs/providers/subscriber-filterid.js +177 -0
  352. package/lib.commonjs/providers/subscriber-filterid.js.map +1 -0
  353. package/lib.commonjs/providers/subscriber-polling.d.ts +94 -0
  354. package/lib.commonjs/providers/subscriber-polling.d.ts.map +1 -0
  355. package/lib.commonjs/providers/subscriber-polling.js +274 -0
  356. package/lib.commonjs/providers/subscriber-polling.js.map +1 -0
  357. package/lib.commonjs/providers/ws-browser.d.ts +3 -0
  358. package/lib.commonjs/providers/ws-browser.d.ts.map +1 -0
  359. package/lib.commonjs/providers/ws-browser.js +19 -0
  360. package/lib.commonjs/providers/ws-browser.js.map +1 -0
  361. package/lib.commonjs/providers/ws.d.ts +2 -0
  362. package/lib.commonjs/providers/ws.d.ts.map +1 -0
  363. package/lib.commonjs/providers/ws.js +6 -0
  364. package/lib.commonjs/providers/ws.js.map +1 -0
  365. package/lib.commonjs/transaction/accesslist.d.ts +6 -0
  366. package/lib.commonjs/transaction/accesslist.d.ts.map +1 -0
  367. package/lib.commonjs/transaction/accesslist.js +41 -0
  368. package/lib.commonjs/transaction/accesslist.js.map +1 -0
  369. package/lib.commonjs/transaction/address.d.ts +15 -0
  370. package/lib.commonjs/transaction/address.d.ts.map +1 -0
  371. package/lib.commonjs/transaction/address.js +30 -0
  372. package/lib.commonjs/transaction/address.js.map +1 -0
  373. package/lib.commonjs/transaction/index.d.ts +25 -0
  374. package/lib.commonjs/transaction/index.d.ts.map +1 -0
  375. package/lib.commonjs/transaction/index.js +17 -0
  376. package/lib.commonjs/transaction/index.js.map +1 -0
  377. package/lib.commonjs/transaction/transaction.d.ts +269 -0
  378. package/lib.commonjs/transaction/transaction.d.ts.map +1 -0
  379. package/lib.commonjs/transaction/transaction.js +708 -0
  380. package/lib.commonjs/transaction/transaction.js.map +1 -0
  381. package/lib.commonjs/utils/base58.d.ts +23 -0
  382. package/lib.commonjs/utils/base58.d.ts.map +1 -0
  383. package/lib.commonjs/utils/base58.js +60 -0
  384. package/lib.commonjs/utils/base58.js.map +1 -0
  385. package/lib.commonjs/utils/base64-browser.d.ts +4 -0
  386. package/lib.commonjs/utils/base64-browser.d.ts.map +1 -0
  387. package/lib.commonjs/utils/base64-browser.js +24 -0
  388. package/lib.commonjs/utils/base64-browser.js.map +1 -0
  389. package/lib.commonjs/utils/base64.d.ts +40 -0
  390. package/lib.commonjs/utils/base64.d.ts.map +1 -0
  391. package/lib.commonjs/utils/base64.js +58 -0
  392. package/lib.commonjs/utils/base64.js.map +1 -0
  393. package/lib.commonjs/utils/data.d.ts +93 -0
  394. package/lib.commonjs/utils/data.d.ts.map +1 -0
  395. package/lib.commonjs/utils/data.js +184 -0
  396. package/lib.commonjs/utils/data.js.map +1 -0
  397. package/lib.commonjs/utils/errors.d.ts +505 -0
  398. package/lib.commonjs/utils/errors.d.ts.map +1 -0
  399. package/lib.commonjs/utils/errors.js +228 -0
  400. package/lib.commonjs/utils/errors.js.map +1 -0
  401. package/lib.commonjs/utils/events.d.ts +77 -0
  402. package/lib.commonjs/utils/events.d.ts.map +1 -0
  403. package/lib.commonjs/utils/events.js +46 -0
  404. package/lib.commonjs/utils/events.js.map +1 -0
  405. package/lib.commonjs/utils/fetch.d.ts +334 -0
  406. package/lib.commonjs/utils/fetch.d.ts.map +1 -0
  407. package/lib.commonjs/utils/fetch.js +804 -0
  408. package/lib.commonjs/utils/fetch.js.map +1 -0
  409. package/lib.commonjs/utils/fixednumber.d.ts +252 -0
  410. package/lib.commonjs/utils/fixednumber.d.ts.map +1 -0
  411. package/lib.commonjs/utils/fixednumber.js +530 -0
  412. package/lib.commonjs/utils/fixednumber.js.map +1 -0
  413. package/lib.commonjs/utils/geturl-browser.d.ts +21 -0
  414. package/lib.commonjs/utils/geturl-browser.d.ts.map +1 -0
  415. package/lib.commonjs/utils/geturl-browser.js +41 -0
  416. package/lib.commonjs/utils/geturl-browser.js.map +1 -0
  417. package/lib.commonjs/utils/geturl.d.ts +6 -0
  418. package/lib.commonjs/utils/geturl.d.ts.map +1 -0
  419. package/lib.commonjs/utils/geturl.js +83 -0
  420. package/lib.commonjs/utils/geturl.js.map +1 -0
  421. package/lib.commonjs/utils/index.d.ts +30 -0
  422. package/lib.commonjs/utils/index.d.ts.map +1 -0
  423. package/lib.commonjs/utils/index.js +78 -0
  424. package/lib.commonjs/utils/index.js.map +1 -0
  425. package/lib.commonjs/utils/maths.d.ts +66 -0
  426. package/lib.commonjs/utils/maths.d.ts.map +1 -0
  427. package/lib.commonjs/utils/maths.js +229 -0
  428. package/lib.commonjs/utils/maths.js.map +1 -0
  429. package/lib.commonjs/utils/properties.d.ts +23 -0
  430. package/lib.commonjs/utils/properties.d.ts.map +1 -0
  431. package/lib.commonjs/utils/properties.js +59 -0
  432. package/lib.commonjs/utils/properties.js.map +1 -0
  433. package/lib.commonjs/utils/rlp-decode.d.ts +6 -0
  434. package/lib.commonjs/utils/rlp-decode.d.ts.map +1 -0
  435. package/lib.commonjs/utils/rlp-decode.js +83 -0
  436. package/lib.commonjs/utils/rlp-decode.js.map +1 -0
  437. package/lib.commonjs/utils/rlp-encode.d.ts +6 -0
  438. package/lib.commonjs/utils/rlp-encode.d.ts.map +1 -0
  439. package/lib.commonjs/utils/rlp-encode.js +53 -0
  440. package/lib.commonjs/utils/rlp-encode.js.map +1 -0
  441. package/lib.commonjs/utils/rlp.d.ts +13 -0
  442. package/lib.commonjs/utils/rlp.d.ts.map +1 -0
  443. package/lib.commonjs/utils/rlp.js +14 -0
  444. package/lib.commonjs/utils/rlp.js.map +1 -0
  445. package/lib.commonjs/utils/units.d.ts +24 -0
  446. package/lib.commonjs/utils/units.d.ts.map +1 -0
  447. package/lib.commonjs/utils/units.js +90 -0
  448. package/lib.commonjs/utils/units.js.map +1 -0
  449. package/lib.commonjs/utils/utf8.d.ts +96 -0
  450. package/lib.commonjs/utils/utf8.d.ts.map +1 -0
  451. package/lib.commonjs/utils/utf8.js +226 -0
  452. package/lib.commonjs/utils/utf8.js.map +1 -0
  453. package/lib.commonjs/utils/uuid.d.ts +8 -0
  454. package/lib.commonjs/utils/uuid.d.ts.map +1 -0
  455. package/lib.commonjs/utils/uuid.js +34 -0
  456. package/lib.commonjs/utils/uuid.js.map +1 -0
  457. package/lib.commonjs/wallet/base-wallet.d.ts +48 -0
  458. package/lib.commonjs/wallet/base-wallet.d.ts.map +1 -0
  459. package/lib.commonjs/wallet/base-wallet.js +105 -0
  460. package/lib.commonjs/wallet/base-wallet.js.map +1 -0
  461. package/lib.commonjs/wallet/hdwallet.d.ts +248 -0
  462. package/lib.commonjs/wallet/hdwallet.d.ts.map +1 -0
  463. package/lib.commonjs/wallet/hdwallet.js +505 -0
  464. package/lib.commonjs/wallet/hdwallet.js.map +1 -0
  465. package/lib.commonjs/wallet/index.d.ts +27 -0
  466. package/lib.commonjs/wallet/index.d.ts.map +1 -0
  467. package/lib.commonjs/wallet/index.js +43 -0
  468. package/lib.commonjs/wallet/index.js.map +1 -0
  469. package/lib.commonjs/wallet/json-crowdsale.d.ts +27 -0
  470. package/lib.commonjs/wallet/json-crowdsale.d.ts.map +1 -0
  471. package/lib.commonjs/wallet/json-crowdsale.js +60 -0
  472. package/lib.commonjs/wallet/json-crowdsale.js.map +1 -0
  473. package/lib.commonjs/wallet/json-keystore.d.ts +89 -0
  474. package/lib.commonjs/wallet/json-keystore.d.ts.map +1 -0
  475. package/lib.commonjs/wallet/json-keystore.js +295 -0
  476. package/lib.commonjs/wallet/json-keystore.js.map +1 -0
  477. package/lib.commonjs/wallet/mnemonic.d.ts +65 -0
  478. package/lib.commonjs/wallet/mnemonic.d.ts.map +1 -0
  479. package/lib.commonjs/wallet/mnemonic.js +169 -0
  480. package/lib.commonjs/wallet/mnemonic.js.map +1 -0
  481. package/lib.commonjs/wallet/utils.d.ts +8 -0
  482. package/lib.commonjs/wallet/utils.d.ts.map +1 -0
  483. package/lib.commonjs/wallet/utils.js +149 -0
  484. package/lib.commonjs/wallet/utils.js.map +1 -0
  485. package/lib.commonjs/wallet/wallet.d.ts +71 -0
  486. package/lib.commonjs/wallet/wallet.d.ts.map +1 -0
  487. package/lib.commonjs/wallet/wallet.js +148 -0
  488. package/lib.commonjs/wallet/wallet.js.map +1 -0
  489. package/lib.commonjs/wordlists/bit-reader.d.ts +5 -0
  490. package/lib.commonjs/wordlists/bit-reader.d.ts.map +1 -0
  491. package/lib.commonjs/wordlists/bit-reader.js +36 -0
  492. package/lib.commonjs/wordlists/bit-reader.js.map +1 -0
  493. package/lib.commonjs/wordlists/decode-owl.d.ts +9 -0
  494. package/lib.commonjs/wordlists/decode-owl.d.ts.map +1 -0
  495. package/lib.commonjs/wordlists/decode-owl.js +60 -0
  496. package/lib.commonjs/wordlists/decode-owl.js.map +1 -0
  497. package/lib.commonjs/wordlists/decode-owla.d.ts +5 -0
  498. package/lib.commonjs/wordlists/decode-owla.d.ts.map +1 -0
  499. package/lib.commonjs/wordlists/decode-owla.js +32 -0
  500. package/lib.commonjs/wordlists/decode-owla.js.map +1 -0
  501. package/lib.commonjs/wordlists/generation/encode-latin.d.ts +25 -0
  502. package/lib.commonjs/wordlists/generation/encode-latin.d.ts.map +1 -0
  503. package/lib.commonjs/wordlists/generation/encode-latin.js +351 -0
  504. package/lib.commonjs/wordlists/generation/encode-latin.js.map +1 -0
  505. package/lib.commonjs/wordlists/index.d.ts +25 -0
  506. package/lib.commonjs/wordlists/index.d.ts.map +1 -0
  507. package/lib.commonjs/wordlists/index.js +33 -0
  508. package/lib.commonjs/wordlists/index.js.map +1 -0
  509. package/lib.commonjs/wordlists/lang-cz.d.ts +23 -0
  510. package/lib.commonjs/wordlists/lang-cz.d.ts.map +1 -0
  511. package/lib.commonjs/wordlists/lang-cz.js +35 -0
  512. package/lib.commonjs/wordlists/lang-cz.js.map +1 -0
  513. package/lib.commonjs/wordlists/lang-en.d.ts +23 -0
  514. package/lib.commonjs/wordlists/lang-en.d.ts.map +1 -0
  515. package/lib.commonjs/wordlists/lang-en.js +35 -0
  516. package/lib.commonjs/wordlists/lang-en.js.map +1 -0
  517. package/lib.commonjs/wordlists/lang-es.d.ts +23 -0
  518. package/lib.commonjs/wordlists/lang-es.d.ts.map +1 -0
  519. package/lib.commonjs/wordlists/lang-es.js +36 -0
  520. package/lib.commonjs/wordlists/lang-es.js.map +1 -0
  521. package/lib.commonjs/wordlists/lang-fr.d.ts +23 -0
  522. package/lib.commonjs/wordlists/lang-fr.d.ts.map +1 -0
  523. package/lib.commonjs/wordlists/lang-fr.js +36 -0
  524. package/lib.commonjs/wordlists/lang-fr.js.map +1 -0
  525. package/lib.commonjs/wordlists/lang-it.d.ts +23 -0
  526. package/lib.commonjs/wordlists/lang-it.d.ts.map +1 -0
  527. package/lib.commonjs/wordlists/lang-it.js +35 -0
  528. package/lib.commonjs/wordlists/lang-it.js.map +1 -0
  529. package/lib.commonjs/wordlists/lang-ja.d.ts +27 -0
  530. package/lib.commonjs/wordlists/lang-ja.d.ts.map +1 -0
  531. package/lib.commonjs/wordlists/lang-ja.js +158 -0
  532. package/lib.commonjs/wordlists/lang-ja.js.map +1 -0
  533. package/lib.commonjs/wordlists/lang-ko.d.ts +25 -0
  534. package/lib.commonjs/wordlists/lang-ko.d.ts.map +1 -0
  535. package/lib.commonjs/wordlists/lang-ko.js +93 -0
  536. package/lib.commonjs/wordlists/lang-ko.js.map +1 -0
  537. package/lib.commonjs/wordlists/lang-pt.d.ts +23 -0
  538. package/lib.commonjs/wordlists/lang-pt.d.ts.map +1 -0
  539. package/lib.commonjs/wordlists/lang-pt.js +35 -0
  540. package/lib.commonjs/wordlists/lang-pt.js.map +1 -0
  541. package/lib.commonjs/wordlists/lang-zh.d.ts +32 -0
  542. package/lib.commonjs/wordlists/lang-zh.d.ts.map +1 -0
  543. package/lib.commonjs/wordlists/lang-zh.js +96 -0
  544. package/lib.commonjs/wordlists/lang-zh.js.map +1 -0
  545. package/lib.commonjs/wordlists/wordlist-owl.d.ts +32 -0
  546. package/lib.commonjs/wordlists/wordlist-owl.d.ts.map +1 -0
  547. package/lib.commonjs/wordlists/wordlist-owl.js +70 -0
  548. package/lib.commonjs/wordlists/wordlist-owl.js.map +1 -0
  549. package/lib.commonjs/wordlists/wordlist-owla.d.ts +30 -0
  550. package/lib.commonjs/wordlists/wordlist-owla.d.ts.map +1 -0
  551. package/lib.commonjs/wordlists/wordlist-owla.js +40 -0
  552. package/lib.commonjs/wordlists/wordlist-owla.js.map +1 -0
  553. package/lib.commonjs/wordlists/wordlist.d.ts +47 -0
  554. package/lib.commonjs/wordlists/wordlist.d.ts.map +1 -0
  555. package/lib.commonjs/wordlists/wordlist.js +46 -0
  556. package/lib.commonjs/wordlists/wordlist.js.map +1 -0
  557. package/lib.commonjs/wordlists/wordlists-browser.d.ts +3 -0
  558. package/lib.commonjs/wordlists/wordlists-browser.d.ts.map +1 -0
  559. package/lib.commonjs/wordlists/wordlists-browser.js +8 -0
  560. package/lib.commonjs/wordlists/wordlists-browser.js.map +1 -0
  561. package/lib.commonjs/wordlists/wordlists-extra.d.ts +9 -0
  562. package/lib.commonjs/wordlists/wordlists-extra.d.ts.map +1 -0
  563. package/lib.commonjs/wordlists/wordlists-extra.js +20 -0
  564. package/lib.commonjs/wordlists/wordlists-extra.js.map +1 -0
  565. package/lib.commonjs/wordlists/wordlists.d.ts +16 -0
  566. package/lib.commonjs/wordlists/wordlists.d.ts.map +1 -0
  567. package/lib.commonjs/wordlists/wordlists.js +38 -0
  568. package/lib.commonjs/wordlists/wordlists.js.map +1 -0
  569. package/lib.esm/README.md +16 -0
  570. package/lib.esm/_version.d.ts +5 -0
  571. package/lib.esm/_version.d.ts.map +1 -0
  572. package/lib.esm/_version.js +6 -0
  573. package/lib.esm/_version.js.map +1 -0
  574. package/lib.esm/abi/abi-coder.d.ts +60 -0
  575. package/lib.esm/abi/abi-coder.d.ts.map +1 -0
  576. package/lib.esm/abi/abi-coder.js +201 -0
  577. package/lib.esm/abi/abi-coder.js.map +1 -0
  578. package/lib.esm/abi/bytes32.d.ts +15 -0
  579. package/lib.esm/abi/bytes32.d.ts.map +1 -0
  580. package/lib.esm/abi/bytes32.js +40 -0
  581. package/lib.esm/abi/bytes32.js.map +1 -0
  582. package/lib.esm/abi/coders/abstract-coder.d.ts +121 -0
  583. package/lib.esm/abi/coders/abstract-coder.d.ts.map +1 -0
  584. package/lib.esm/abi/coders/abstract-coder.js +399 -0
  585. package/lib.esm/abi/coders/abstract-coder.js.map +1 -0
  586. package/lib.esm/abi/coders/address.d.ts +13 -0
  587. package/lib.esm/abi/coders/address.d.ts.map +1 -0
  588. package/lib.esm/abi/coders/address.js +29 -0
  589. package/lib.esm/abi/coders/address.js.map +1 -0
  590. package/lib.esm/abi/coders/anonymous.d.ts +15 -0
  591. package/lib.esm/abi/coders/anonymous.d.ts.map +1 -0
  592. package/lib.esm/abi/coders/anonymous.js +23 -0
  593. package/lib.esm/abi/coders/anonymous.js.map +1 -0
  594. package/lib.esm/abi/coders/array.d.ts +25 -0
  595. package/lib.esm/abi/coders/array.d.ts.map +1 -0
  596. package/lib.esm/abi/coders/array.js +159 -0
  597. package/lib.esm/abi/coders/array.js.map +1 -0
  598. package/lib.esm/abi/coders/boolean.d.ts +13 -0
  599. package/lib.esm/abi/coders/boolean.d.ts.map +1 -0
  600. package/lib.esm/abi/coders/boolean.js +21 -0
  601. package/lib.esm/abi/coders/boolean.js.map +1 -0
  602. package/lib.esm/abi/coders/bytes.d.ts +19 -0
  603. package/lib.esm/abi/coders/bytes.d.ts.map +1 -0
  604. package/lib.esm/abi/coders/bytes.js +34 -0
  605. package/lib.esm/abi/coders/bytes.js.map +1 -0
  606. package/lib.esm/abi/coders/fixed-bytes.d.ts +15 -0
  607. package/lib.esm/abi/coders/fixed-bytes.d.ts.map +1 -0
  608. package/lib.esm/abi/coders/fixed-bytes.js +28 -0
  609. package/lib.esm/abi/coders/fixed-bytes.js.map +1 -0
  610. package/lib.esm/abi/coders/null.d.ts +12 -0
  611. package/lib.esm/abi/coders/null.d.ts.map +1 -0
  612. package/lib.esm/abi/coders/null.js +24 -0
  613. package/lib.esm/abi/coders/null.js.map +1 -0
  614. package/lib.esm/abi/coders/number.d.ts +16 -0
  615. package/lib.esm/abi/coders/number.d.ts.map +1 -0
  616. package/lib.esm/abi/coders/number.js +45 -0
  617. package/lib.esm/abi/coders/number.js.map +1 -0
  618. package/lib.esm/abi/coders/string.d.ts +13 -0
  619. package/lib.esm/abi/coders/string.d.ts.map +1 -0
  620. package/lib.esm/abi/coders/string.js +21 -0
  621. package/lib.esm/abi/coders/string.js.map +1 -0
  622. package/lib.esm/abi/coders/tuple.d.ts +16 -0
  623. package/lib.esm/abi/coders/tuple.d.ts.map +1 -0
  624. package/lib.esm/abi/coders/tuple.js +63 -0
  625. package/lib.esm/abi/coders/tuple.js.map +1 -0
  626. package/lib.esm/abi/fragments.d.ts +466 -0
  627. package/lib.esm/abi/fragments.d.ts.map +1 -0
  628. package/lib.esm/abi/fragments.js +1319 -0
  629. package/lib.esm/abi/fragments.js.map +1 -0
  630. package/lib.esm/abi/index.d.ts +18 -0
  631. package/lib.esm/abi/index.d.ts.map +1 -0
  632. package/lib.esm/abi/index.js +17 -0
  633. package/lib.esm/abi/index.js.map +1 -0
  634. package/lib.esm/abi/interface.d.ts +382 -0
  635. package/lib.esm/abi/interface.d.ts.map +1 -0
  636. package/lib.esm/abi/interface.js +1097 -0
  637. package/lib.esm/abi/interface.js.map +1 -0
  638. package/lib.esm/abi/typed.d.ts +570 -0
  639. package/lib.esm/abi/typed.d.ts.map +1 -0
  640. package/lib.esm/abi/typed.js +602 -0
  641. package/lib.esm/abi/typed.js.map +1 -0
  642. package/lib.esm/address/address.d.ts +56 -0
  643. package/lib.esm/address/address.d.ts.map +1 -0
  644. package/lib.esm/address/address.js +156 -0
  645. package/lib.esm/address/address.js.map +1 -0
  646. package/lib.esm/address/checks.d.ts +81 -0
  647. package/lib.esm/address/checks.d.ts.map +1 -0
  648. package/lib.esm/address/checks.js +114 -0
  649. package/lib.esm/address/checks.js.map +1 -0
  650. package/lib.esm/address/contract-address.d.ts +48 -0
  651. package/lib.esm/address/contract-address.d.ts.map +1 -0
  652. package/lib.esm/address/contract-address.js +69 -0
  653. package/lib.esm/address/contract-address.js.map +1 -0
  654. package/lib.esm/address/index.d.ts +49 -0
  655. package/lib.esm/address/index.d.ts.map +1 -0
  656. package/lib.esm/address/index.js +19 -0
  657. package/lib.esm/address/index.js.map +1 -0
  658. package/lib.esm/constants/addresses.d.ts +7 -0
  659. package/lib.esm/constants/addresses.d.ts.map +1 -0
  660. package/lib.esm/constants/addresses.js +7 -0
  661. package/lib.esm/constants/addresses.js.map +1 -0
  662. package/lib.esm/constants/hashes.d.ts +7 -0
  663. package/lib.esm/constants/hashes.d.ts.map +1 -0
  664. package/lib.esm/constants/hashes.js +7 -0
  665. package/lib.esm/constants/hashes.js.map +1 -0
  666. package/lib.esm/constants/index.d.ts +10 -0
  667. package/lib.esm/constants/index.d.ts.map +1 -0
  668. package/lib.esm/constants/index.js +10 -0
  669. package/lib.esm/constants/index.js.map +1 -0
  670. package/lib.esm/constants/numbers.d.ts +31 -0
  671. package/lib.esm/constants/numbers.d.ts.map +1 -0
  672. package/lib.esm/constants/numbers.js +31 -0
  673. package/lib.esm/constants/numbers.js.map +1 -0
  674. package/lib.esm/constants/strings.d.ts +13 -0
  675. package/lib.esm/constants/strings.d.ts.map +1 -0
  676. package/lib.esm/constants/strings.js +14 -0
  677. package/lib.esm/constants/strings.js.map +1 -0
  678. package/lib.esm/contract/contract.d.ts +168 -0
  679. package/lib.esm/contract/contract.d.ts.map +1 -0
  680. package/lib.esm/contract/contract.js +936 -0
  681. package/lib.esm/contract/contract.js.map +1 -0
  682. package/lib.esm/contract/factory.d.ts +62 -0
  683. package/lib.esm/contract/factory.d.ts.map +1 -0
  684. package/lib.esm/contract/factory.js +112 -0
  685. package/lib.esm/contract/factory.js.map +1 -0
  686. package/lib.esm/contract/index.d.ts +13 -0
  687. package/lib.esm/contract/index.d.ts.map +1 -0
  688. package/lib.esm/contract/index.js +12 -0
  689. package/lib.esm/contract/index.js.map +1 -0
  690. package/lib.esm/contract/types.d.ts +193 -0
  691. package/lib.esm/contract/types.d.ts.map +1 -0
  692. package/lib.esm/contract/types.js +5 -0
  693. package/lib.esm/contract/types.js.map +1 -0
  694. package/lib.esm/contract/wrappers.d.ts +143 -0
  695. package/lib.esm/contract/wrappers.d.ts.map +1 -0
  696. package/lib.esm/contract/wrappers.js +177 -0
  697. package/lib.esm/contract/wrappers.js.map +1 -0
  698. package/lib.esm/crypto/crypto-browser.d.ts +15 -0
  699. package/lib.esm/crypto/crypto-browser.d.ts.map +1 -0
  700. package/lib.esm/crypto/crypto-browser.js +48 -0
  701. package/lib.esm/crypto/crypto-browser.js.map +1 -0
  702. package/lib.esm/crypto/crypto.d.ts +2 -0
  703. package/lib.esm/crypto/crypto.d.ts.map +1 -0
  704. package/lib.esm/crypto/crypto.js +2 -0
  705. package/lib.esm/crypto/crypto.js.map +1 -0
  706. package/lib.esm/crypto/hmac.d.ts +25 -0
  707. package/lib.esm/crypto/hmac.d.ts.map +1 -0
  708. package/lib.esm/crypto/hmac.js +47 -0
  709. package/lib.esm/crypto/hmac.js.map +1 -0
  710. package/lib.esm/crypto/index.d.ts +25 -0
  711. package/lib.esm/crypto/index.d.ts.map +1 -0
  712. package/lib.esm/crypto/index.js +36 -0
  713. package/lib.esm/crypto/index.js.map +1 -0
  714. package/lib.esm/crypto/keccak.d.ts +35 -0
  715. package/lib.esm/crypto/keccak.d.ts.map +1 -0
  716. package/lib.esm/crypto/keccak.js +48 -0
  717. package/lib.esm/crypto/keccak.js.map +1 -0
  718. package/lib.esm/crypto/pbkdf2.d.ts +35 -0
  719. package/lib.esm/crypto/pbkdf2.d.ts.map +1 -0
  720. package/lib.esm/crypto/pbkdf2.js +49 -0
  721. package/lib.esm/crypto/pbkdf2.js.map +1 -0
  722. package/lib.esm/crypto/random.d.ts +14 -0
  723. package/lib.esm/crypto/random.d.ts.map +1 -0
  724. package/lib.esm/crypto/random.js +34 -0
  725. package/lib.esm/crypto/random.js.map +1 -0
  726. package/lib.esm/crypto/ripemd160.d.ts +25 -0
  727. package/lib.esm/crypto/ripemd160.d.ts.map +1 -0
  728. package/lib.esm/crypto/ripemd160.js +38 -0
  729. package/lib.esm/crypto/ripemd160.js.map +1 -0
  730. package/lib.esm/crypto/scrypt.d.ts +82 -0
  731. package/lib.esm/crypto/scrypt.d.ts.map +1 -0
  732. package/lib.esm/crypto/scrypt.js +99 -0
  733. package/lib.esm/crypto/scrypt.js.map +1 -0
  734. package/lib.esm/crypto/sha2.d.ts +47 -0
  735. package/lib.esm/crypto/sha2.d.ts.map +1 -0
  736. package/lib.esm/crypto/sha2.js +71 -0
  737. package/lib.esm/crypto/sha2.js.map +1 -0
  738. package/lib.esm/crypto/signature.d.ts +158 -0
  739. package/lib.esm/crypto/signature.d.ts.map +1 -0
  740. package/lib.esm/crypto/signature.js +301 -0
  741. package/lib.esm/crypto/signature.js.map +1 -0
  742. package/lib.esm/crypto/signing-key.d.ts +122 -0
  743. package/lib.esm/crypto/signing-key.d.ts.map +1 -0
  744. package/lib.esm/crypto/signing-key.js +173 -0
  745. package/lib.esm/crypto/signing-key.js.map +1 -0
  746. package/lib.esm/ethers.d.ts +22 -0
  747. package/lib.esm/ethers.d.ts.map +1 -0
  748. package/lib.esm/ethers.js +15 -0
  749. package/lib.esm/ethers.js.map +1 -0
  750. package/lib.esm/hash/id.d.ts +13 -0
  751. package/lib.esm/hash/id.d.ts.map +1 -0
  752. package/lib.esm/hash/id.js +17 -0
  753. package/lib.esm/hash/id.js.map +1 -0
  754. package/lib.esm/hash/index.d.ts +13 -0
  755. package/lib.esm/hash/index.d.ts.map +1 -0
  756. package/lib.esm/hash/index.js +12 -0
  757. package/lib.esm/hash/index.js.map +1 -0
  758. package/lib.esm/hash/message.d.ts +36 -0
  759. package/lib.esm/hash/message.d.ts.map +1 -0
  760. package/lib.esm/hash/message.js +51 -0
  761. package/lib.esm/hash/message.js.map +1 -0
  762. package/lib.esm/hash/namehash.d.ts +20 -0
  763. package/lib.esm/hash/namehash.d.ts.map +1 -0
  764. package/lib.esm/hash/namehash.js +81 -0
  765. package/lib.esm/hash/namehash.js.map +1 -0
  766. package/lib.esm/hash/solidity.d.ts +31 -0
  767. package/lib.esm/hash/solidity.d.ts.map +1 -0
  768. package/lib.esm/hash/solidity.js +103 -0
  769. package/lib.esm/hash/solidity.js.map +1 -0
  770. package/lib.esm/hash/typed-data.d.ts +150 -0
  771. package/lib.esm/hash/typed-data.d.ts.map +1 -0
  772. package/lib.esm/hash/typed-data.js +488 -0
  773. package/lib.esm/hash/typed-data.js.map +1 -0
  774. package/lib.esm/index.d.ts +11 -0
  775. package/lib.esm/index.d.ts.map +1 -0
  776. package/lib.esm/index.js +11 -0
  777. package/lib.esm/index.js.map +1 -0
  778. package/lib.esm/package.json +12 -0
  779. package/lib.esm/providers/abstract-provider.d.ts +449 -0
  780. package/lib.esm/providers/abstract-provider.d.ts.map +1 -0
  781. package/lib.esm/providers/abstract-provider.js +1377 -0
  782. package/lib.esm/providers/abstract-provider.js.map +1 -0
  783. package/lib.esm/providers/abstract-signer.d.ts +67 -0
  784. package/lib.esm/providers/abstract-signer.d.ts.map +1 -0
  785. package/lib.esm/providers/abstract-signer.js +223 -0
  786. package/lib.esm/providers/abstract-signer.js.map +1 -0
  787. package/lib.esm/providers/community.d.ts +29 -0
  788. package/lib.esm/providers/community.d.ts.map +1 -0
  789. package/lib.esm/providers/community.js +36 -0
  790. package/lib.esm/providers/community.js.map +1 -0
  791. package/lib.esm/providers/contracts.d.ts +36 -0
  792. package/lib.esm/providers/contracts.d.ts.map +1 -0
  793. package/lib.esm/providers/contracts.js +2 -0
  794. package/lib.esm/providers/contracts.js.map +1 -0
  795. package/lib.esm/providers/default-provider.d.ts +5 -0
  796. package/lib.esm/providers/default-provider.d.ts.map +1 -0
  797. package/lib.esm/providers/default-provider.js +134 -0
  798. package/lib.esm/providers/default-provider.js.map +1 -0
  799. package/lib.esm/providers/ens-resolver.d.ts +147 -0
  800. package/lib.esm/providers/ens-resolver.d.ts.map +1 -0
  801. package/lib.esm/providers/ens-resolver.js +496 -0
  802. package/lib.esm/providers/ens-resolver.js.map +1 -0
  803. package/lib.esm/providers/format.d.ts +15 -0
  804. package/lib.esm/providers/format.d.ts.map +1 -0
  805. package/lib.esm/providers/format.js +258 -0
  806. package/lib.esm/providers/format.js.map +1 -0
  807. package/lib.esm/providers/formatting.d.ts +268 -0
  808. package/lib.esm/providers/formatting.d.ts.map +1 -0
  809. package/lib.esm/providers/formatting.js +9 -0
  810. package/lib.esm/providers/formatting.js.map +1 -0
  811. package/lib.esm/providers/index.d.ts +47 -0
  812. package/lib.esm/providers/index.d.ts.map +1 -0
  813. package/lib.esm/providers/index.js +38 -0
  814. package/lib.esm/providers/index.js.map +1 -0
  815. package/lib.esm/providers/network.d.ts +99 -0
  816. package/lib.esm/providers/network.d.ts.map +1 -0
  817. package/lib.esm/providers/network.js +374 -0
  818. package/lib.esm/providers/network.js.map +1 -0
  819. package/lib.esm/providers/pagination.d.ts +6 -0
  820. package/lib.esm/providers/pagination.d.ts.map +1 -0
  821. package/lib.esm/providers/pagination.js +2 -0
  822. package/lib.esm/providers/pagination.js.map +1 -0
  823. package/lib.esm/providers/plugin-fallback.d.ts +13 -0
  824. package/lib.esm/providers/plugin-fallback.d.ts.map +1 -0
  825. package/lib.esm/providers/plugin-fallback.js +26 -0
  826. package/lib.esm/providers/plugin-fallback.js.map +1 -0
  827. package/lib.esm/providers/plugins-network.d.ts +170 -0
  828. package/lib.esm/providers/plugins-network.d.ts.map +1 -0
  829. package/lib.esm/providers/plugins-network.js +208 -0
  830. package/lib.esm/providers/plugins-network.js.map +1 -0
  831. package/lib.esm/providers/provider-alchemy.d.ts +31 -0
  832. package/lib.esm/providers/provider-alchemy.d.ts.map +1 -0
  833. package/lib.esm/providers/provider-alchemy.js +116 -0
  834. package/lib.esm/providers/provider-alchemy.js.map +1 -0
  835. package/lib.esm/providers/provider-ankr.d.ts +51 -0
  836. package/lib.esm/providers/provider-ankr.d.ts.map +1 -0
  837. package/lib.esm/providers/provider-ankr.js +103 -0
  838. package/lib.esm/providers/provider-ankr.js.map +1 -0
  839. package/lib.esm/providers/provider-browser.d.ts +56 -0
  840. package/lib.esm/providers/provider-browser.d.ts.map +1 -0
  841. package/lib.esm/providers/provider-browser.js +98 -0
  842. package/lib.esm/providers/provider-browser.js.map +1 -0
  843. package/lib.esm/providers/provider-cloudflare.d.ts +14 -0
  844. package/lib.esm/providers/provider-cloudflare.d.ts.map +1 -0
  845. package/lib.esm/providers/provider-cloudflare.js +22 -0
  846. package/lib.esm/providers/provider-cloudflare.js.map +1 -0
  847. package/lib.esm/providers/provider-etherscan.d.ts +141 -0
  848. package/lib.esm/providers/provider-etherscan.d.ts.map +1 -0
  849. package/lib.esm/providers/provider-etherscan.js +517 -0
  850. package/lib.esm/providers/provider-etherscan.js.map +1 -0
  851. package/lib.esm/providers/provider-fallback.d.ts +115 -0
  852. package/lib.esm/providers/provider-fallback.d.ts.map +1 -0
  853. package/lib.esm/providers/provider-fallback.js +569 -0
  854. package/lib.esm/providers/provider-fallback.js.map +1 -0
  855. package/lib.esm/providers/provider-infura.d.ts +90 -0
  856. package/lib.esm/providers/provider-infura.d.ts.map +1 -0
  857. package/lib.esm/providers/provider-infura.js +171 -0
  858. package/lib.esm/providers/provider-infura.js.map +1 -0
  859. package/lib.esm/providers/provider-ipcsocket-browser.d.ts +3 -0
  860. package/lib.esm/providers/provider-ipcsocket-browser.d.ts.map +1 -0
  861. package/lib.esm/providers/provider-ipcsocket-browser.js +3 -0
  862. package/lib.esm/providers/provider-ipcsocket-browser.js.map +1 -0
  863. package/lib.esm/providers/provider-ipcsocket.d.ts +20 -0
  864. package/lib.esm/providers/provider-ipcsocket.d.ts.map +1 -0
  865. package/lib.esm/providers/provider-ipcsocket.js +65 -0
  866. package/lib.esm/providers/provider-ipcsocket.js.map +1 -0
  867. package/lib.esm/providers/provider-jsonrpc.d.ts +350 -0
  868. package/lib.esm/providers/provider-jsonrpc.d.ts.map +1 -0
  869. package/lib.esm/providers/provider-jsonrpc.js +873 -0
  870. package/lib.esm/providers/provider-jsonrpc.js.map +1 -0
  871. package/lib.esm/providers/provider-pocket.d.ts +54 -0
  872. package/lib.esm/providers/provider-pocket.d.ts.map +1 -0
  873. package/lib.esm/providers/provider-pocket.js +105 -0
  874. package/lib.esm/providers/provider-pocket.js.map +1 -0
  875. package/lib.esm/providers/provider-quicknode.d.ts +50 -0
  876. package/lib.esm/providers/provider-quicknode.d.ts.map +1 -0
  877. package/lib.esm/providers/provider-quicknode.js +105 -0
  878. package/lib.esm/providers/provider-quicknode.js.map +1 -0
  879. package/lib.esm/providers/provider-socket.d.ts +113 -0
  880. package/lib.esm/providers/provider-socket.d.ts.map +1 -0
  881. package/lib.esm/providers/provider-socket.js +285 -0
  882. package/lib.esm/providers/provider-socket.js.map +1 -0
  883. package/lib.esm/providers/provider-websocket.d.ts +36 -0
  884. package/lib.esm/providers/provider-websocket.d.ts.map +1 -0
  885. package/lib.esm/providers/provider-websocket.js +76 -0
  886. package/lib.esm/providers/provider-websocket.js.map +1 -0
  887. package/lib.esm/providers/provider.d.ts +1131 -0
  888. package/lib.esm/providers/provider.d.ts.map +1 -0
  889. package/lib.esm/providers/provider.js +1217 -0
  890. package/lib.esm/providers/provider.js.map +1 -0
  891. package/lib.esm/providers/signer-noncemanager.d.ts +38 -0
  892. package/lib.esm/providers/signer-noncemanager.d.ts.map +1 -0
  893. package/lib.esm/providers/signer-noncemanager.js +74 -0
  894. package/lib.esm/providers/signer-noncemanager.js.map +1 -0
  895. package/lib.esm/providers/signer.d.ts +118 -0
  896. package/lib.esm/providers/signer.d.ts.map +1 -0
  897. package/lib.esm/providers/signer.js +2 -0
  898. package/lib.esm/providers/signer.js.map +1 -0
  899. package/lib.esm/providers/subscriber-connection.d.ts +25 -0
  900. package/lib.esm/providers/subscriber-connection.d.ts.map +1 -0
  901. package/lib.esm/providers/subscriber-connection.js +52 -0
  902. package/lib.esm/providers/subscriber-connection.js.map +1 -0
  903. package/lib.esm/providers/subscriber-filterid.d.ts +64 -0
  904. package/lib.esm/providers/subscriber-filterid.d.ts.map +1 -0
  905. package/lib.esm/providers/subscriber-filterid.js +171 -0
  906. package/lib.esm/providers/subscriber-filterid.js.map +1 -0
  907. package/lib.esm/providers/subscriber-polling.d.ts +94 -0
  908. package/lib.esm/providers/subscriber-polling.d.ts.map +1 -0
  909. package/lib.esm/providers/subscriber-polling.js +265 -0
  910. package/lib.esm/providers/subscriber-polling.js.map +1 -0
  911. package/lib.esm/providers/ws-browser.d.ts +3 -0
  912. package/lib.esm/providers/ws-browser.d.ts.map +1 -0
  913. package/lib.esm/providers/ws-browser.js +16 -0
  914. package/lib.esm/providers/ws-browser.js.map +1 -0
  915. package/lib.esm/providers/ws.d.ts +2 -0
  916. package/lib.esm/providers/ws.d.ts.map +1 -0
  917. package/lib.esm/providers/ws.js +2 -0
  918. package/lib.esm/providers/ws.js.map +1 -0
  919. package/lib.esm/transaction/accesslist.d.ts +6 -0
  920. package/lib.esm/transaction/accesslist.d.ts.map +1 -0
  921. package/lib.esm/transaction/accesslist.js +37 -0
  922. package/lib.esm/transaction/accesslist.js.map +1 -0
  923. package/lib.esm/transaction/address.d.ts +15 -0
  924. package/lib.esm/transaction/address.d.ts.map +1 -0
  925. package/lib.esm/transaction/address.js +25 -0
  926. package/lib.esm/transaction/address.js.map +1 -0
  927. package/lib.esm/transaction/index.d.ts +25 -0
  928. package/lib.esm/transaction/index.d.ts.map +1 -0
  929. package/lib.esm/transaction/index.js +10 -0
  930. package/lib.esm/transaction/index.js.map +1 -0
  931. package/lib.esm/transaction/transaction.d.ts +269 -0
  932. package/lib.esm/transaction/transaction.d.ts.map +1 -0
  933. package/lib.esm/transaction/transaction.js +704 -0
  934. package/lib.esm/transaction/transaction.js.map +1 -0
  935. package/lib.esm/utils/base58.d.ts +23 -0
  936. package/lib.esm/utils/base58.d.ts.map +1 -0
  937. package/lib.esm/utils/base58.js +55 -0
  938. package/lib.esm/utils/base58.js.map +1 -0
  939. package/lib.esm/utils/base64-browser.d.ts +4 -0
  940. package/lib.esm/utils/base64-browser.d.ts.map +1 -0
  941. package/lib.esm/utils/base64-browser.js +19 -0
  942. package/lib.esm/utils/base64-browser.js.map +1 -0
  943. package/lib.esm/utils/base64.d.ts +40 -0
  944. package/lib.esm/utils/base64.d.ts.map +1 -0
  945. package/lib.esm/utils/base64.js +53 -0
  946. package/lib.esm/utils/base64.js.map +1 -0
  947. package/lib.esm/utils/data.d.ts +93 -0
  948. package/lib.esm/utils/data.d.ts.map +1 -0
  949. package/lib.esm/utils/data.js +170 -0
  950. package/lib.esm/utils/data.js.map +1 -0
  951. package/lib.esm/utils/errors.d.ts +505 -0
  952. package/lib.esm/utils/errors.d.ts.map +1 -0
  953. package/lib.esm/utils/errors.js +217 -0
  954. package/lib.esm/utils/errors.js.map +1 -0
  955. package/lib.esm/utils/events.d.ts +77 -0
  956. package/lib.esm/utils/events.d.ts.map +1 -0
  957. package/lib.esm/utils/events.js +42 -0
  958. package/lib.esm/utils/events.js.map +1 -0
  959. package/lib.esm/utils/fetch.d.ts +334 -0
  960. package/lib.esm/utils/fetch.d.ts.map +1 -0
  961. package/lib.esm/utils/fetch.js +798 -0
  962. package/lib.esm/utils/fetch.js.map +1 -0
  963. package/lib.esm/utils/fixednumber.d.ts +252 -0
  964. package/lib.esm/utils/fixednumber.d.ts.map +1 -0
  965. package/lib.esm/utils/fixednumber.js +526 -0
  966. package/lib.esm/utils/fixednumber.js.map +1 -0
  967. package/lib.esm/utils/geturl-browser.d.ts +21 -0
  968. package/lib.esm/utils/geturl-browser.d.ts.map +1 -0
  969. package/lib.esm/utils/geturl-browser.js +37 -0
  970. package/lib.esm/utils/geturl-browser.js.map +1 -0
  971. package/lib.esm/utils/geturl.d.ts +6 -0
  972. package/lib.esm/utils/geturl.d.ts.map +1 -0
  973. package/lib.esm/utils/geturl.js +78 -0
  974. package/lib.esm/utils/geturl.js.map +1 -0
  975. package/lib.esm/utils/index.d.ts +30 -0
  976. package/lib.esm/utils/index.d.ts.map +1 -0
  977. package/lib.esm/utils/index.js +22 -0
  978. package/lib.esm/utils/index.js.map +1 -0
  979. package/lib.esm/utils/maths.d.ts +66 -0
  980. package/lib.esm/utils/maths.d.ts.map +1 -0
  981. package/lib.esm/utils/maths.js +215 -0
  982. package/lib.esm/utils/maths.js.map +1 -0
  983. package/lib.esm/utils/properties.d.ts +23 -0
  984. package/lib.esm/utils/properties.d.ts.map +1 -0
  985. package/lib.esm/utils/properties.js +54 -0
  986. package/lib.esm/utils/properties.js.map +1 -0
  987. package/lib.esm/utils/rlp-decode.d.ts +6 -0
  988. package/lib.esm/utils/rlp-decode.d.ts.map +1 -0
  989. package/lib.esm/utils/rlp-decode.js +79 -0
  990. package/lib.esm/utils/rlp-decode.js.map +1 -0
  991. package/lib.esm/utils/rlp-encode.d.ts +6 -0
  992. package/lib.esm/utils/rlp-encode.d.ts.map +1 -0
  993. package/lib.esm/utils/rlp-encode.js +49 -0
  994. package/lib.esm/utils/rlp-encode.js.map +1 -0
  995. package/lib.esm/utils/rlp.d.ts +13 -0
  996. package/lib.esm/utils/rlp.d.ts.map +1 -0
  997. package/lib.esm/utils/rlp.js +9 -0
  998. package/lib.esm/utils/rlp.js.map +1 -0
  999. package/lib.esm/utils/units.d.ts +24 -0
  1000. package/lib.esm/utils/units.d.ts.map +1 -0
  1001. package/lib.esm/utils/units.js +83 -0
  1002. package/lib.esm/utils/units.js.map +1 -0
  1003. package/lib.esm/utils/utf8.d.ts +96 -0
  1004. package/lib.esm/utils/utf8.d.ts.map +1 -0
  1005. package/lib.esm/utils/utf8.js +220 -0
  1006. package/lib.esm/utils/utf8.js.map +1 -0
  1007. package/lib.esm/utils/uuid.d.ts +8 -0
  1008. package/lib.esm/utils/uuid.d.ts.map +1 -0
  1009. package/lib.esm/utils/uuid.js +30 -0
  1010. package/lib.esm/utils/uuid.js.map +1 -0
  1011. package/lib.esm/wallet/base-wallet.d.ts +48 -0
  1012. package/lib.esm/wallet/base-wallet.d.ts.map +1 -0
  1013. package/lib.esm/wallet/base-wallet.js +101 -0
  1014. package/lib.esm/wallet/base-wallet.js.map +1 -0
  1015. package/lib.esm/wallet/hdwallet.d.ts +248 -0
  1016. package/lib.esm/wallet/hdwallet.d.ts.map +1 -0
  1017. package/lib.esm/wallet/hdwallet.js +498 -0
  1018. package/lib.esm/wallet/hdwallet.js.map +1 -0
  1019. package/lib.esm/wallet/index.d.ts +27 -0
  1020. package/lib.esm/wallet/index.d.ts.map +1 -0
  1021. package/lib.esm/wallet/index.js +25 -0
  1022. package/lib.esm/wallet/index.js.map +1 -0
  1023. package/lib.esm/wallet/json-crowdsale.d.ts +27 -0
  1024. package/lib.esm/wallet/json-crowdsale.d.ts.map +1 -0
  1025. package/lib.esm/wallet/json-crowdsale.js +55 -0
  1026. package/lib.esm/wallet/json-crowdsale.js.map +1 -0
  1027. package/lib.esm/wallet/json-keystore.d.ts +89 -0
  1028. package/lib.esm/wallet/json-keystore.d.ts.map +1 -0
  1029. package/lib.esm/wallet/json-keystore.js +287 -0
  1030. package/lib.esm/wallet/json-keystore.js.map +1 -0
  1031. package/lib.esm/wallet/mnemonic.d.ts +65 -0
  1032. package/lib.esm/wallet/mnemonic.d.ts.map +1 -0
  1033. package/lib.esm/wallet/mnemonic.js +165 -0
  1034. package/lib.esm/wallet/mnemonic.js.map +1 -0
  1035. package/lib.esm/wallet/utils.d.ts +8 -0
  1036. package/lib.esm/wallet/utils.d.ts.map +1 -0
  1037. package/lib.esm/wallet/utils.js +142 -0
  1038. package/lib.esm/wallet/utils.js.map +1 -0
  1039. package/lib.esm/wallet/wallet.d.ts +71 -0
  1040. package/lib.esm/wallet/wallet.d.ts.map +1 -0
  1041. package/lib.esm/wallet/wallet.js +144 -0
  1042. package/lib.esm/wallet/wallet.js.map +1 -0
  1043. package/lib.esm/wordlists/bit-reader.d.ts +5 -0
  1044. package/lib.esm/wordlists/bit-reader.d.ts.map +1 -0
  1045. package/lib.esm/wordlists/bit-reader.js +32 -0
  1046. package/lib.esm/wordlists/bit-reader.js.map +1 -0
  1047. package/lib.esm/wordlists/decode-owl.d.ts +9 -0
  1048. package/lib.esm/wordlists/decode-owl.d.ts.map +1 -0
  1049. package/lib.esm/wordlists/decode-owl.js +55 -0
  1050. package/lib.esm/wordlists/decode-owl.js.map +1 -0
  1051. package/lib.esm/wordlists/decode-owla.d.ts +5 -0
  1052. package/lib.esm/wordlists/decode-owla.d.ts.map +1 -0
  1053. package/lib.esm/wordlists/decode-owla.js +28 -0
  1054. package/lib.esm/wordlists/decode-owla.js.map +1 -0
  1055. package/lib.esm/wordlists/generation/encode-latin.d.ts +25 -0
  1056. package/lib.esm/wordlists/generation/encode-latin.d.ts.map +1 -0
  1057. package/lib.esm/wordlists/generation/encode-latin.js +344 -0
  1058. package/lib.esm/wordlists/generation/encode-latin.js.map +1 -0
  1059. package/lib.esm/wordlists/index.d.ts +25 -0
  1060. package/lib.esm/wordlists/index.d.ts.map +1 -0
  1061. package/lib.esm/wordlists/index.js +25 -0
  1062. package/lib.esm/wordlists/index.js.map +1 -0
  1063. package/lib.esm/wordlists/lang-cz.d.ts +23 -0
  1064. package/lib.esm/wordlists/lang-cz.d.ts.map +1 -0
  1065. package/lib.esm/wordlists/lang-cz.js +31 -0
  1066. package/lib.esm/wordlists/lang-cz.js.map +1 -0
  1067. package/lib.esm/wordlists/lang-en.d.ts +23 -0
  1068. package/lib.esm/wordlists/lang-en.d.ts.map +1 -0
  1069. package/lib.esm/wordlists/lang-en.js +31 -0
  1070. package/lib.esm/wordlists/lang-en.js.map +1 -0
  1071. package/lib.esm/wordlists/lang-es.d.ts +23 -0
  1072. package/lib.esm/wordlists/lang-es.d.ts.map +1 -0
  1073. package/lib.esm/wordlists/lang-es.js +32 -0
  1074. package/lib.esm/wordlists/lang-es.js.map +1 -0
  1075. package/lib.esm/wordlists/lang-fr.d.ts +23 -0
  1076. package/lib.esm/wordlists/lang-fr.d.ts.map +1 -0
  1077. package/lib.esm/wordlists/lang-fr.js +32 -0
  1078. package/lib.esm/wordlists/lang-fr.js.map +1 -0
  1079. package/lib.esm/wordlists/lang-it.d.ts +23 -0
  1080. package/lib.esm/wordlists/lang-it.d.ts.map +1 -0
  1081. package/lib.esm/wordlists/lang-it.js +31 -0
  1082. package/lib.esm/wordlists/lang-it.js.map +1 -0
  1083. package/lib.esm/wordlists/lang-ja.d.ts +27 -0
  1084. package/lib.esm/wordlists/lang-ja.d.ts.map +1 -0
  1085. package/lib.esm/wordlists/lang-ja.js +154 -0
  1086. package/lib.esm/wordlists/lang-ja.js.map +1 -0
  1087. package/lib.esm/wordlists/lang-ko.d.ts +25 -0
  1088. package/lib.esm/wordlists/lang-ko.d.ts.map +1 -0
  1089. package/lib.esm/wordlists/lang-ko.js +89 -0
  1090. package/lib.esm/wordlists/lang-ko.js.map +1 -0
  1091. package/lib.esm/wordlists/lang-pt.d.ts +23 -0
  1092. package/lib.esm/wordlists/lang-pt.d.ts.map +1 -0
  1093. package/lib.esm/wordlists/lang-pt.js +31 -0
  1094. package/lib.esm/wordlists/lang-pt.js.map +1 -0
  1095. package/lib.esm/wordlists/lang-zh.d.ts +32 -0
  1096. package/lib.esm/wordlists/lang-zh.d.ts.map +1 -0
  1097. package/lib.esm/wordlists/lang-zh.js +92 -0
  1098. package/lib.esm/wordlists/lang-zh.js.map +1 -0
  1099. package/lib.esm/wordlists/wordlist-owl.d.ts +32 -0
  1100. package/lib.esm/wordlists/wordlist-owl.d.ts.map +1 -0
  1101. package/lib.esm/wordlists/wordlist-owl.js +66 -0
  1102. package/lib.esm/wordlists/wordlist-owl.js.map +1 -0
  1103. package/lib.esm/wordlists/wordlist-owla.d.ts +30 -0
  1104. package/lib.esm/wordlists/wordlist-owla.d.ts.map +1 -0
  1105. package/lib.esm/wordlists/wordlist-owla.js +36 -0
  1106. package/lib.esm/wordlists/wordlist-owla.js.map +1 -0
  1107. package/lib.esm/wordlists/wordlist.d.ts +47 -0
  1108. package/lib.esm/wordlists/wordlist.d.ts.map +1 -0
  1109. package/lib.esm/wordlists/wordlist.js +42 -0
  1110. package/lib.esm/wordlists/wordlist.js.map +1 -0
  1111. package/lib.esm/wordlists/wordlists-browser.d.ts +3 -0
  1112. package/lib.esm/wordlists/wordlists-browser.d.ts.map +1 -0
  1113. package/lib.esm/wordlists/wordlists-browser.js +5 -0
  1114. package/lib.esm/wordlists/wordlists-browser.js.map +1 -0
  1115. package/lib.esm/wordlists/wordlists-extra.d.ts +9 -0
  1116. package/lib.esm/wordlists/wordlists-extra.d.ts.map +1 -0
  1117. package/lib.esm/wordlists/wordlists-extra.js +9 -0
  1118. package/lib.esm/wordlists/wordlists-extra.js.map +1 -0
  1119. package/lib.esm/wordlists/wordlists.d.ts +16 -0
  1120. package/lib.esm/wordlists/wordlists.d.ts.map +1 -0
  1121. package/lib.esm/wordlists/wordlists.js +35 -0
  1122. package/lib.esm/wordlists/wordlists.js.map +1 -0
  1123. package/package.json +135 -6
  1124. package/rollup.config.mjs +50 -0
  1125. package/src.ts/_version.ts +6 -0
  1126. package/src.ts/abi/abi-coder.ts +232 -0
  1127. package/src.ts/abi/bytes32.ts +45 -0
  1128. package/src.ts/abi/coders/abstract-coder.ts +467 -0
  1129. package/src.ts/abi/coders/address.ts +36 -0
  1130. package/src.ts/abi/coders/anonymous.ts +29 -0
  1131. package/src.ts/abi/coders/array.ts +199 -0
  1132. package/src.ts/abi/coders/boolean.ts +27 -0
  1133. package/src.ts/abi/coders/bytes.ts +43 -0
  1134. package/src.ts/abi/coders/fixed-bytes.ts +37 -0
  1135. package/src.ts/abi/coders/null.ts +28 -0
  1136. package/src.ts/abi/coders/number.ts +63 -0
  1137. package/src.ts/abi/coders/string.ts +29 -0
  1138. package/src.ts/abi/coders/tuple.ts +69 -0
  1139. package/src.ts/abi/fragments.ts +1615 -0
  1140. package/src.ts/abi/index.ts +41 -0
  1141. package/src.ts/abi/interface.ts +1266 -0
  1142. package/src.ts/abi/typed.ts +796 -0
  1143. package/src.ts/address/address.ts +173 -0
  1144. package/src.ts/address/checks.ts +123 -0
  1145. package/src.ts/address/contract-address.ts +80 -0
  1146. package/src.ts/address/index.ts +57 -0
  1147. package/src.ts/constants/addresses.ts +8 -0
  1148. package/src.ts/constants/hashes.ts +7 -0
  1149. package/src.ts/constants/index.ts +16 -0
  1150. package/src.ts/constants/numbers.ts +35 -0
  1151. package/src.ts/constants/strings.ts +16 -0
  1152. package/src.ts/contract/contract.ts +1106 -0
  1153. package/src.ts/contract/factory.ts +143 -0
  1154. package/src.ts/contract/index.ts +31 -0
  1155. package/src.ts/contract/types.ts +236 -0
  1156. package/src.ts/contract/wrappers.ts +225 -0
  1157. package/src.ts/crypto/crypto-browser.ts +64 -0
  1158. package/src.ts/crypto/crypto.ts +4 -0
  1159. package/src.ts/crypto/hmac.ts +51 -0
  1160. package/src.ts/crypto/index.ts +59 -0
  1161. package/src.ts/crypto/keccak.ts +54 -0
  1162. package/src.ts/crypto/pbkdf2.ts +55 -0
  1163. package/src.ts/crypto/random.ts +36 -0
  1164. package/src.ts/crypto/ripemd160.ts +43 -0
  1165. package/src.ts/crypto/scrypt.ts +114 -0
  1166. package/src.ts/crypto/sha2.ts +78 -0
  1167. package/src.ts/crypto/signature.ts +363 -0
  1168. package/src.ts/crypto/signing-key.ts +204 -0
  1169. package/src.ts/ethers.ts +210 -0
  1170. package/src.ts/hash/id.ts +17 -0
  1171. package/src.ts/hash/index.ts +16 -0
  1172. package/src.ts/hash/message.ts +51 -0
  1173. package/src.ts/hash/namehash.ts +98 -0
  1174. package/src.ts/hash/solidity.ts +117 -0
  1175. package/src.ts/hash/typed-data.ts +615 -0
  1176. package/src.ts/index.ts +12 -0
  1177. package/src.ts/providers/abstract-provider.ts +1727 -0
  1178. package/src.ts/providers/abstract-signer.ts +288 -0
  1179. package/src.ts/providers/community.ts +49 -0
  1180. package/src.ts/providers/contracts.ts +42 -0
  1181. package/src.ts/providers/default-provider.ts +142 -0
  1182. package/src.ts/providers/ens-resolver.ts +606 -0
  1183. package/src.ts/providers/format.ts +293 -0
  1184. package/src.ts/providers/formatting.ts +356 -0
  1185. package/src.ts/providers/index.ts +132 -0
  1186. package/src.ts/providers/network.ts +450 -0
  1187. package/src.ts/providers/pagination.ts +8 -0
  1188. package/src.ts/providers/plugin-fallback.ts +35 -0
  1189. package/src.ts/providers/plugins-network.ts +281 -0
  1190. package/src.ts/providers/provider-alchemy.ts +134 -0
  1191. package/src.ts/providers/provider-ankr.ts +122 -0
  1192. package/src.ts/providers/provider-browser.ts +142 -0
  1193. package/src.ts/providers/provider-cloudflare.ts +24 -0
  1194. package/src.ts/providers/provider-etherscan.ts +608 -0
  1195. package/src.ts/providers/provider-fallback.ts +755 -0
  1196. package/src.ts/providers/provider-infura.ts +190 -0
  1197. package/src.ts/providers/provider-ipcsocket-browser.ts +3 -0
  1198. package/src.ts/providers/provider-ipcsocket.ts +78 -0
  1199. package/src.ts/providers/provider-jsonrpc.ts +1223 -0
  1200. package/src.ts/providers/provider-pocket.ts +121 -0
  1201. package/src.ts/providers/provider-quicknode.ts +121 -0
  1202. package/src.ts/providers/provider-socket.ts +334 -0
  1203. package/src.ts/providers/provider-websocket.ts +102 -0
  1204. package/src.ts/providers/provider.ts +1986 -0
  1205. package/src.ts/providers/signer-noncemanager.ts +98 -0
  1206. package/src.ts/providers/signer.ts +149 -0
  1207. package/src.ts/providers/subscriber-connection.ts +74 -0
  1208. package/src.ts/providers/subscriber-filterid.ts +198 -0
  1209. package/src.ts/providers/subscriber-polling.ts +291 -0
  1210. package/src.ts/providers/ws-browser.ts +11 -0
  1211. package/src.ts/providers/ws.ts +3 -0
  1212. package/src.ts/runner.ps1 +45 -0
  1213. package/src.ts/thirdparty.d.ts +16 -0
  1214. package/src.ts/transaction/accesslist.ts +43 -0
  1215. package/src.ts/transaction/address.ts +28 -0
  1216. package/src.ts/transaction/index.ts +31 -0
  1217. package/src.ts/transaction/transaction.ts +823 -0
  1218. package/src.ts/utils/base58.ts +64 -0
  1219. package/src.ts/utils/base64-browser.ts +25 -0
  1220. package/src.ts/utils/base64.ts +56 -0
  1221. package/src.ts/utils/data.ts +199 -0
  1222. package/src.ts/utils/errors.ts +780 -0
  1223. package/src.ts/utils/events.ts +105 -0
  1224. package/src.ts/utils/fetch.ts +913 -0
  1225. package/src.ts/utils/fixednumber.ts +643 -0
  1226. package/src.ts/utils/geturl-browser.ts +72 -0
  1227. package/src.ts/utils/geturl.ts +96 -0
  1228. package/src.ts/utils/index.ts +95 -0
  1229. package/src.ts/utils/maths.ts +240 -0
  1230. package/src.ts/utils/properties.ts +60 -0
  1231. package/src.ts/utils/rlp-decode.ts +104 -0
  1232. package/src.ts/utils/rlp-encode.ts +64 -0
  1233. package/src.ts/utils/rlp.ts +15 -0
  1234. package/src.ts/utils/test.txt +0 -0
  1235. package/src.ts/utils/units.ts +91 -0
  1236. package/src.ts/utils/utf8.ts +324 -0
  1237. package/src.ts/utils/uuid.ts +36 -0
  1238. package/src.ts/wallet/base-wallet.ts +130 -0
  1239. package/src.ts/wallet/hdwallet.ts +583 -0
  1240. package/src.ts/wallet/index.ts +47 -0
  1241. package/src.ts/wallet/json-crowdsale.ts +74 -0
  1242. package/src.ts/wallet/json-keystore.ts +389 -0
  1243. package/src.ts/wallet/mnemonic.ts +203 -0
  1244. package/src.ts/wallet/utils.ts +147 -0
  1245. package/src.ts/wallet/wallet.ts +163 -0
  1246. package/src.ts/wordlists/bit-reader.ts +35 -0
  1247. package/src.ts/wordlists/decode-owl.ts +58 -0
  1248. package/src.ts/wordlists/decode-owla.ts +33 -0
  1249. package/src.ts/wordlists/generation/encode-latin.ts +370 -0
  1250. package/src.ts/wordlists/index.ts +26 -0
  1251. package/src.ts/wordlists/lang-cz.ts +33 -0
  1252. package/src.ts/wordlists/lang-en.ts +33 -0
  1253. package/src.ts/wordlists/lang-es.ts +35 -0
  1254. package/src.ts/wordlists/lang-fr.ts +34 -0
  1255. package/src.ts/wordlists/lang-it.ts +33 -0
  1256. package/src.ts/wordlists/lang-ja.ts +181 -0
  1257. package/src.ts/wordlists/lang-ko.ts +104 -0
  1258. package/src.ts/wordlists/lang-pt.ts +34 -0
  1259. package/src.ts/wordlists/lang-zh.ts +112 -0
  1260. package/src.ts/wordlists/wordlist-owl.ts +77 -0
  1261. package/src.ts/wordlists/wordlist-owla.ts +41 -0
  1262. package/src.ts/wordlists/wordlist.ts +59 -0
  1263. package/src.ts/wordlists/wordlists-browser.ts +8 -0
  1264. package/src.ts/wordlists/wordlists-extra.ts +9 -0
  1265. package/src.ts/wordlists/wordlists.ts +38 -0
@@ -0,0 +1,1266 @@
1
+ /**
2
+ * The Interface class is a low-level class that accepts an
3
+ * ABI and provides all the necessary functionality to encode
4
+ * and decode paramaters to and results from methods, events
5
+ * and errors.
6
+ *
7
+ * It also provides several convenience methods to automatically
8
+ * search and find matching transactions and events to parse them.
9
+ *
10
+ * @_subsection api/abi:Interfaces [interfaces]
11
+ */
12
+
13
+ import { keccak256 } from "../crypto/index.js"
14
+ import { id } from "../hash/index.js"
15
+ import {
16
+ concat, dataSlice, getBigInt, getBytes, getBytesCopy,
17
+ hexlify, zeroPadBytes, zeroPadValue, isHexString, defineProperties,
18
+ assertArgument, toBeHex, assert
19
+ } from "../utils/index.js";
20
+
21
+ import { AbiCoder } from "./abi-coder.js";
22
+ import { checkResultErrors, Result } from "./coders/abstract-coder.js";
23
+ import {
24
+ ConstructorFragment, ErrorFragment, EventFragment, FallbackFragment,
25
+ Fragment, FunctionFragment, ParamType
26
+ } from "./fragments.js";
27
+ import { Typed } from "./typed.js";
28
+
29
+ import type { BigNumberish, BytesLike, CallExceptionError, CallExceptionTransaction } from "../utils/index.js";
30
+
31
+ import type { JsonFragment } from "./fragments.js";
32
+
33
+
34
+ export { checkResultErrors, Result };
35
+
36
+ /**
37
+ * When using the [[Interface-parseLog]] to automatically match a Log to its event
38
+ * for parsing, a **LogDescription** is returned.
39
+ */
40
+ export class LogDescription {
41
+ /**
42
+ * The matching fragment for the ``topic0``.
43
+ */
44
+ readonly fragment!: EventFragment;
45
+
46
+ /**
47
+ * The name of the Event.
48
+ */
49
+ readonly name!: string;
50
+
51
+ /**
52
+ * The full Event signature.
53
+ */
54
+ readonly signature!: string;
55
+
56
+ /**
57
+ * The topic hash for the Event.
58
+ */
59
+ readonly topic!: string;
60
+
61
+ /**
62
+ * The arguments passed into the Event with ``emit``.
63
+ */
64
+ readonly args!: Result
65
+
66
+ /**
67
+ * @_ignore:
68
+ */
69
+ constructor(fragment: EventFragment, topic: string, args: Result) {
70
+ const name = fragment.name, signature = fragment.format();
71
+ defineProperties<LogDescription>(this, {
72
+ fragment, name, signature, topic, args
73
+ });
74
+ }
75
+ }
76
+
77
+ /**
78
+ * When using the [[Interface-parseTransaction]] to automatically match
79
+ * a transaction data to its function for parsing,
80
+ * a **TransactionDescription** is returned.
81
+ */
82
+ export class TransactionDescription {
83
+ /**
84
+ * The matching fragment from the transaction ``data``.
85
+ */
86
+ readonly fragment!: FunctionFragment;
87
+
88
+ /**
89
+ * The name of the Function from the transaction ``data``.
90
+ */
91
+ readonly name!: string;
92
+
93
+ /**
94
+ * The arguments passed to the Function from the transaction ``data``.
95
+ */
96
+ readonly args!: Result;
97
+
98
+ /**
99
+ * The full Function signature from the transaction ``data``.
100
+ */
101
+ readonly signature!: string;
102
+
103
+ /**
104
+ * The selector for the Function from the transaction ``data``.
105
+ */
106
+ readonly selector!: string;
107
+
108
+ /**
109
+ * The ``value`` (in wei) from the transaction.
110
+ */
111
+ readonly value!: bigint;
112
+
113
+ /**
114
+ * @_ignore:
115
+ */
116
+ constructor(fragment: FunctionFragment, selector: string, args: Result, value: bigint) {
117
+ const name = fragment.name, signature = fragment.format();
118
+ defineProperties<TransactionDescription>(this, {
119
+ fragment, name, args, signature, selector, value
120
+ });
121
+ }
122
+ }
123
+
124
+ /**
125
+ * When using the [[Interface-parseError]] to automatically match an
126
+ * error for a call result for parsing, an **ErrorDescription** is returned.
127
+ */
128
+ export class ErrorDescription {
129
+ /**
130
+ * The matching fragment.
131
+ */
132
+ readonly fragment!: ErrorFragment;
133
+
134
+ /**
135
+ * The name of the Error.
136
+ */
137
+ readonly name!: string;
138
+
139
+ /**
140
+ * The arguments passed to the Error with ``revert``.
141
+ */
142
+ readonly args!: Result;
143
+
144
+ /**
145
+ * The full Error signature.
146
+ */
147
+ readonly signature!: string;
148
+
149
+ /**
150
+ * The selector for the Error.
151
+ */
152
+ readonly selector!: string;
153
+
154
+ /**
155
+ * @_ignore:
156
+ */
157
+ constructor(fragment: ErrorFragment, selector: string, args: Result) {
158
+ const name = fragment.name, signature = fragment.format();
159
+ defineProperties<ErrorDescription>(this, {
160
+ fragment, name, args, signature, selector
161
+ });
162
+ }
163
+ }
164
+
165
+ /**
166
+ * An **Indexed** is used as a value when a value that does not
167
+ * fit within a topic (i.e. not a fixed-length, 32-byte type). It
168
+ * is the ``keccak256`` of the value, and used for types such as
169
+ * arrays, tuples, bytes and strings.
170
+ */
171
+ export class Indexed {
172
+ /**
173
+ * The ``keccak256`` of the value logged.
174
+ */
175
+ readonly hash!: null | string;
176
+
177
+ /**
178
+ * @_ignore:
179
+ */
180
+ readonly _isIndexed!: boolean;
181
+
182
+ /**
183
+ * Returns ``true`` if %%value%% is an **Indexed**.
184
+ *
185
+ * This provides a Type Guard for property access.
186
+ */
187
+ static isIndexed(value: any): value is Indexed {
188
+ return !!(value && value._isIndexed);
189
+ }
190
+
191
+ /**
192
+ * @_ignore:
193
+ */
194
+ constructor(hash: null | string) {
195
+ defineProperties<Indexed>(this, { hash, _isIndexed: true })
196
+ }
197
+ }
198
+
199
+ type ErrorInfo = {
200
+ signature: string,
201
+ inputs: Array<string>,
202
+ name: string,
203
+ reason: (...args: Array<any>) => string;
204
+ };
205
+
206
+ // https://docs.soliditylang.org/en/v0.8.13/control-structures.html?highlight=panic#panic-via-assert-and-error-via-require
207
+ const PanicReasons: Record<string, string> = {
208
+ "0": "generic panic",
209
+ "1": "assert(false)",
210
+ "17": "arithmetic overflow",
211
+ "18": "division or modulo by zero",
212
+ "33": "enum overflow",
213
+ "34": "invalid encoded storage byte array accessed",
214
+ "49": "out-of-bounds array access; popping on an empty array",
215
+ "50": "out-of-bounds access of an array or bytesN",
216
+ "65": "out of memory",
217
+ "81": "uninitialized function",
218
+ }
219
+
220
+ const BuiltinErrors: Record<string, ErrorInfo> = {
221
+ "0x08c379a0": {
222
+ signature: "Error(string)",
223
+ name: "Error",
224
+ inputs: [ "string" ],
225
+ reason: (message: string) => {
226
+ return `reverted with reason string ${ JSON.stringify(message) }`;
227
+ }
228
+ },
229
+ "0x4e487b71": {
230
+ signature: "Panic(uint256)",
231
+ name: "Panic",
232
+ inputs: [ "uint256" ],
233
+ reason: (code: bigint) => {
234
+ let reason = "unknown panic code";
235
+ if (code >= 0 && code <= 0xff && PanicReasons[code.toString()]) {
236
+ reason = PanicReasons[code.toString()];
237
+ }
238
+ return `reverted with panic code 0x${ code.toString(16) } (${ reason })`;
239
+ }
240
+ }
241
+ }
242
+
243
+ /*
244
+ function wrapAccessError(property: string, error: Error): Error {
245
+ const wrap = new Error(`deferred error during ABI decoding triggered accessing ${ property }`);
246
+ (<any>wrap).error = error;
247
+ return wrap;
248
+ }
249
+ */
250
+ /*
251
+ function checkNames(fragment: Fragment, type: "input" | "output", params: Array<ParamType>): void {
252
+ params.reduce((accum, param) => {
253
+ if (param.name) {
254
+ if (accum[param.name]) {
255
+ logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format("full") }`, "fragment", fragment);
256
+ }
257
+ accum[param.name] = true;
258
+ }
259
+ return accum;
260
+ }, <{ [ name: string ]: boolean }>{ });
261
+ }
262
+ */
263
+
264
+ /**
265
+ * An **InterfaceAbi** may be any supported ABI format.
266
+ *
267
+ * A string is expected to be a JSON string, which will be parsed
268
+ * using ``JSON.parse``. This means that the value **must** be a valid
269
+ * JSON string, with no stray commas, etc.
270
+ *
271
+ * An array may contain any combination of:
272
+ * - Human-Readable fragments
273
+ * - Parsed JSON fragment
274
+ * - [[Fragment]] instances
275
+ *
276
+ * A **Human-Readable Fragment** is a string which resembles a Solidity
277
+ * signature and is introduced in [this blog entry](link-ricmoo-humanreadableabi).
278
+ * For example, ``function balanceOf(address) view returns (uint)``.
279
+ *
280
+ * A **Parsed JSON Fragment** is a JavaScript Object desribed in the
281
+ * [Solidity documentation](link-solc-jsonabi).
282
+ */
283
+ export type InterfaceAbi = string | ReadonlyArray<Fragment | JsonFragment | string>;
284
+
285
+ /**
286
+ * An Interface abstracts many of the low-level details for
287
+ * encoding and decoding the data on the blockchain.
288
+ *
289
+ * An ABI provides information on how to encode data to send to
290
+ * a Contract, how to decode the results and events and how to
291
+ * interpret revert errors.
292
+ *
293
+ * The ABI can be specified by [any supported format](InterfaceAbi).
294
+ */
295
+ export class Interface {
296
+
297
+ /**
298
+ * All the Contract ABI members (i.e. methods, events, errors, etc).
299
+ */
300
+ readonly fragments!: ReadonlyArray<Fragment>;
301
+
302
+ /**
303
+ * The Contract constructor.
304
+ */
305
+ readonly deploy!: ConstructorFragment;
306
+
307
+ /**
308
+ * The Fallback method, if any.
309
+ */
310
+ readonly fallback!: null | FallbackFragment;
311
+
312
+ /**
313
+ * If receiving ether is supported.
314
+ */
315
+ readonly receive!: boolean;
316
+
317
+ #errors: Map<string, ErrorFragment>;
318
+ #events: Map<string, EventFragment>;
319
+ #functions: Map<string, FunctionFragment>;
320
+ // #structs: Map<string, StructFragment>;
321
+
322
+ #abiCoder: AbiCoder;
323
+
324
+ /**
325
+ * Create a new Interface for the %%fragments%%.
326
+ */
327
+ constructor(fragments: InterfaceAbi) {
328
+ let abi: ReadonlyArray<Fragment | JsonFragment | string> = [ ];
329
+ if (typeof(fragments) === "string") {
330
+ abi = JSON.parse(fragments);
331
+ } else {
332
+ abi = fragments;
333
+ }
334
+
335
+ this.#functions = new Map();
336
+ this.#errors = new Map();
337
+ this.#events = new Map();
338
+ // this.#structs = new Map();
339
+
340
+
341
+ const frags: Array<Fragment> = [ ];
342
+ for (const a of abi) {
343
+ try {
344
+ frags.push(Fragment.from(a));
345
+ } catch (error) {
346
+ console.log("EE", error);
347
+ }
348
+ }
349
+
350
+ defineProperties<Interface>(this, {
351
+ fragments: Object.freeze(frags)
352
+ });
353
+
354
+ let fallback: null | FallbackFragment = null;
355
+ let receive = false;
356
+
357
+ this.#abiCoder = this.getAbiCoder();
358
+
359
+ // Add all fragments by their signature
360
+ this.fragments.forEach((fragment, index) => {
361
+ let bucket: Map<string, Fragment>;
362
+ switch (fragment.type) {
363
+ case "constructor":
364
+ if (this.deploy) {
365
+ console.log("duplicate definition - constructor");
366
+ return;
367
+ }
368
+ //checkNames(fragment, "input", fragment.inputs);
369
+ defineProperties<Interface>(this, { deploy: <ConstructorFragment>fragment });
370
+ return;
371
+
372
+ case "fallback":
373
+ if (fragment.inputs.length === 0) {
374
+ receive = true;
375
+ } else {
376
+ assertArgument(!fallback || (<FallbackFragment>fragment).payable !== fallback.payable,
377
+ "conflicting fallback fragments", `fragments[${ index }]`, fragment);
378
+ fallback = <FallbackFragment>fragment;
379
+ receive = fallback.payable;
380
+ }
381
+ return;
382
+
383
+ case "function":
384
+ //checkNames(fragment, "input", fragment.inputs);
385
+ //checkNames(fragment, "output", (<FunctionFragment>fragment).outputs);
386
+ bucket = this.#functions;
387
+ break;
388
+
389
+ case "event":
390
+ //checkNames(fragment, "input", fragment.inputs);
391
+ bucket = this.#events;
392
+ break;
393
+
394
+ case "error":
395
+ bucket = this.#errors;
396
+ break;
397
+
398
+ default:
399
+ return;
400
+ }
401
+
402
+ // Two identical entries; ignore it
403
+ const signature = fragment.format();
404
+ if (bucket.has(signature)) { return; }
405
+
406
+ bucket.set(signature, fragment);
407
+ });
408
+
409
+ // If we do not have a constructor add a default
410
+ if (!this.deploy) {
411
+ defineProperties<Interface>(this, {
412
+ deploy: ConstructorFragment.from("constructor()")
413
+ });
414
+ }
415
+
416
+ defineProperties<Interface>(this, { fallback, receive });
417
+ }
418
+
419
+ /**
420
+ * Returns the entire Human-Readable ABI, as an array of
421
+ * signatures, optionally as %%minimal%% strings, which
422
+ * removes parameter names and unneceesary spaces.
423
+ */
424
+ format(minimal?: boolean): Array<string> {
425
+ const format = (minimal ? "minimal": "full");
426
+ const abi = this.fragments.map((f) => f.format(format));
427
+ return abi;
428
+ }
429
+
430
+ /**
431
+ * Return the JSON-encoded ABI. This is the format Solidiy
432
+ * returns.
433
+ */
434
+ formatJson(): string {
435
+ const abi = this.fragments.map((f) => f.format("json"));
436
+
437
+ // We need to re-bundle the JSON fragments a bit
438
+ return JSON.stringify(abi.map((j) => JSON.parse(j)));
439
+ }
440
+
441
+ /**
442
+ * The ABI coder that will be used to encode and decode binary
443
+ * data.
444
+ */
445
+ getAbiCoder(): AbiCoder {
446
+ return AbiCoder.defaultAbiCoder();
447
+ }
448
+
449
+ // Find a function definition by any means necessary (unless it is ambiguous)
450
+ #getFunction(key: string, values: null | Array<any | Typed>, forceUnique: boolean): null | FunctionFragment {
451
+
452
+ // Selector
453
+ if (isHexString(key)) {
454
+ const selector = key.toLowerCase();
455
+ for (const fragment of this.#functions.values()) {
456
+ if (selector === fragment.selector) { return fragment; }
457
+ }
458
+ return null;
459
+ }
460
+
461
+ // It is a bare name, look up the function (will return null if ambiguous)
462
+ if (key.indexOf("(") === -1) {
463
+ const matching: Array<FunctionFragment> = [ ];
464
+ for (const [ name, fragment ] of this.#functions) {
465
+ if (name.split("("/* fix:) */)[0] === key) { matching.push(fragment); }
466
+ }
467
+
468
+ if (values) {
469
+ const lastValue = (values.length > 0) ? values[values.length - 1]: null;
470
+
471
+ let valueLength = values.length;
472
+ let allowOptions = true;
473
+ if (Typed.isTyped(lastValue) && lastValue.type === "overrides") {
474
+ allowOptions = false;
475
+ valueLength--;
476
+ }
477
+
478
+ // Remove all matches that don't have a compatible length. The args
479
+ // may contain an overrides, so the match may have n or n - 1 parameters
480
+ for (let i = matching.length - 1; i >= 0; i--) {
481
+ const inputs = matching[i].inputs.length;
482
+ if (inputs !== valueLength && (!allowOptions || inputs !== valueLength - 1)) {
483
+ matching.splice(i, 1);
484
+ }
485
+ }
486
+
487
+ // Remove all matches that don't match the Typed signature
488
+ for (let i = matching.length - 1; i >= 0; i--) {
489
+ const inputs = matching[i].inputs;
490
+ for (let j = 0; j < values.length; j++) {
491
+ // Not a typed value
492
+ if (!Typed.isTyped(values[j])) { continue; }
493
+
494
+ // We are past the inputs
495
+ if (j >= inputs.length) {
496
+ if (values[j].type === "overrides") { continue; }
497
+ matching.splice(i, 1);
498
+ break;
499
+ }
500
+
501
+ // Make sure the value type matches the input type
502
+ if (values[j].type !== inputs[j].baseType) {
503
+ matching.splice(i, 1);
504
+ break;
505
+ }
506
+ }
507
+ }
508
+ }
509
+
510
+ // We found a single matching signature with an overrides, but the
511
+ // last value is something that cannot possibly be an options
512
+ if (matching.length === 1 && values && values.length !== matching[0].inputs.length) {
513
+ const lastArg = values[values.length - 1];
514
+ if (lastArg == null || Array.isArray(lastArg) || typeof(lastArg) !== "object") {
515
+ matching.splice(0, 1);
516
+ }
517
+ }
518
+
519
+ if (matching.length === 0) { return null; }
520
+
521
+ if (matching.length > 1 && forceUnique) {
522
+ const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
523
+ assertArgument(false, `ambiguous function description (i.e. matches ${ matchStr })`, "key", key);
524
+ }
525
+
526
+ return matching[0];
527
+ }
528
+
529
+ // Normalize the signature and lookup the function
530
+ const result = this.#functions.get(FunctionFragment.from(key).format());
531
+ if (result) { return result; }
532
+
533
+ return null;
534
+ }
535
+
536
+ /**
537
+ * Get the function name for %%key%%, which may be a function selector,
538
+ * function name or function signature that belongs to the ABI.
539
+ */
540
+ getFunctionName(key: string): string {
541
+ const fragment = this.#getFunction(key, null, false);
542
+ assertArgument(fragment, "no matching function", "key", key);
543
+ return fragment.name;
544
+ }
545
+
546
+ /**
547
+ * Returns true if %%key%% (a function selector, function name or
548
+ * function signature) is present in the ABI.
549
+ *
550
+ * In the case of a function name, the name may be ambiguous, so
551
+ * accessing the [[FunctionFragment]] may require refinement.
552
+ */
553
+ hasFunction(key: string): boolean {
554
+ return !!this.#getFunction(key, null, false);
555
+ }
556
+
557
+ /**
558
+ * Get the [[FunctionFragment]] for %%key%%, which may be a function
559
+ * selector, function name or function signature that belongs to the ABI.
560
+ *
561
+ * If %%values%% is provided, it will use the Typed API to handle
562
+ * ambiguous cases where multiple functions match by name.
563
+ *
564
+ * If the %%key%% and %%values%% do not refine to a single function in
565
+ * the ABI, this will throw.
566
+ */
567
+ getFunction(key: string, values?: Array<any | Typed>): null | FunctionFragment {
568
+ return this.#getFunction(key, values || null, true);
569
+ }
570
+
571
+ /**
572
+ * Iterate over all functions, calling %%callback%%, sorted by their name.
573
+ */
574
+ forEachFunction(callback: (func: FunctionFragment, index: number) => void): void {
575
+ const names = Array.from(this.#functions.keys());
576
+ names.sort((a, b) => a.localeCompare(b));
577
+ for (let i = 0; i < names.length; i++) {
578
+ const name = names[i];
579
+ callback(<FunctionFragment>(this.#functions.get(name)), i);
580
+ }
581
+ }
582
+
583
+
584
+ // Find an event definition by any means necessary (unless it is ambiguous)
585
+ #getEvent(key: string, values: null | Array<null | any | Typed>, forceUnique: boolean): null | EventFragment {
586
+
587
+ // EventTopic
588
+ if (isHexString(key)) {
589
+ const eventTopic = key.toLowerCase();
590
+ for (const fragment of this.#events.values()) {
591
+ if (eventTopic === fragment.topicHash) { return fragment; }
592
+ }
593
+ return null;
594
+ }
595
+
596
+ // It is a bare name, look up the function (will return null if ambiguous)
597
+ if (key.indexOf("(") === -1) {
598
+ const matching: Array<EventFragment> = [ ];
599
+ for (const [ name, fragment ] of this.#events) {
600
+ if (name.split("("/* fix:) */)[0] === key) { matching.push(fragment); }
601
+ }
602
+
603
+ if (values) {
604
+ // Remove all matches that don't have a compatible length.
605
+ for (let i = matching.length - 1; i >= 0; i--) {
606
+ if (matching[i].inputs.length < values.length) {
607
+ matching.splice(i, 1);
608
+ }
609
+ }
610
+
611
+ // Remove all matches that don't match the Typed signature
612
+ for (let i = matching.length - 1; i >= 0; i--) {
613
+ const inputs = matching[i].inputs;
614
+ for (let j = 0; j < values.length; j++) {
615
+ // Not a typed value
616
+ if (!Typed.isTyped(values[j])) { continue; }
617
+
618
+ // Make sure the value type matches the input type
619
+ if (values[j].type !== inputs[j].baseType) {
620
+ matching.splice(i, 1);
621
+ break;
622
+ }
623
+ }
624
+ }
625
+ }
626
+
627
+ if (matching.length === 0) { return null; }
628
+
629
+ if (matching.length > 1 && forceUnique) {
630
+ const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
631
+ assertArgument(false, `ambiguous event description (i.e. matches ${ matchStr })`, "key", key);
632
+ }
633
+
634
+ return matching[0];
635
+ }
636
+
637
+ // Normalize the signature and lookup the function
638
+ const result = this.#events.get(EventFragment.from(key).format());
639
+ if (result) { return result; }
640
+
641
+ return null;
642
+ }
643
+
644
+ /**
645
+ * Get the event name for %%key%%, which may be a topic hash,
646
+ * event name or event signature that belongs to the ABI.
647
+ */
648
+ getEventName(key: string): string {
649
+ const fragment = this.#getEvent(key, null, false);
650
+ assertArgument(fragment, "no matching event", "key", key);
651
+
652
+ return fragment.name;
653
+ }
654
+
655
+ /**
656
+ * Returns true if %%key%% (an event topic hash, event name or
657
+ * event signature) is present in the ABI.
658
+ *
659
+ * In the case of an event name, the name may be ambiguous, so
660
+ * accessing the [[EventFragment]] may require refinement.
661
+ */
662
+ hasEvent(key: string): boolean {
663
+ return !!this.#getEvent(key, null, false);
664
+ }
665
+
666
+ /**
667
+ * Get the [[EventFragment]] for %%key%%, which may be a topic hash,
668
+ * event name or event signature that belongs to the ABI.
669
+ *
670
+ * If %%values%% is provided, it will use the Typed API to handle
671
+ * ambiguous cases where multiple events match by name.
672
+ *
673
+ * If the %%key%% and %%values%% do not refine to a single event in
674
+ * the ABI, this will throw.
675
+ */
676
+ getEvent(key: string, values?: Array<any | Typed>): null | EventFragment {
677
+ return this.#getEvent(key, values || null, true)
678
+ }
679
+
680
+ /**
681
+ * Iterate over all events, calling %%callback%%, sorted by their name.
682
+ */
683
+ forEachEvent(callback: (func: EventFragment, index: number) => void): void {
684
+ const names = Array.from(this.#events.keys());
685
+ names.sort((a, b) => a.localeCompare(b));
686
+ for (let i = 0; i < names.length; i++) {
687
+ const name = names[i];
688
+ callback(<EventFragment>(this.#events.get(name)), i);
689
+ }
690
+ }
691
+
692
+ /**
693
+ * Get the [[ErrorFragment]] for %%key%%, which may be an error
694
+ * selector, error name or error signature that belongs to the ABI.
695
+ *
696
+ * If %%values%% is provided, it will use the Typed API to handle
697
+ * ambiguous cases where multiple errors match by name.
698
+ *
699
+ * If the %%key%% and %%values%% do not refine to a single error in
700
+ * the ABI, this will throw.
701
+ */
702
+ getError(key: string, values?: Array<any | Typed>): null | ErrorFragment {
703
+ if (isHexString(key)) {
704
+ const selector = key.toLowerCase();
705
+
706
+ if (BuiltinErrors[selector]) {
707
+ return ErrorFragment.from(BuiltinErrors[selector].signature);
708
+ }
709
+
710
+ for (const fragment of this.#errors.values()) {
711
+ if (selector === fragment.selector) { return fragment; }
712
+ }
713
+
714
+ return null;
715
+ }
716
+
717
+ // It is a bare name, look up the function (will return null if ambiguous)
718
+ if (key.indexOf("(") === -1) {
719
+ const matching: Array<ErrorFragment> = [ ];
720
+ for (const [ name, fragment ] of this.#errors) {
721
+ if (name.split("("/* fix:) */)[0] === key) { matching.push(fragment); }
722
+ }
723
+
724
+ if (matching.length === 0) {
725
+ if (key === "Error") { return ErrorFragment.from("error Error(string)"); }
726
+ if (key === "Panic") { return ErrorFragment.from("error Panic(uint256)"); }
727
+ return null;
728
+ } else if (matching.length > 1) {
729
+ const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
730
+ assertArgument(false, `ambiguous error description (i.e. ${ matchStr })`, "name", key);
731
+ }
732
+
733
+ return matching[0];
734
+ }
735
+
736
+ // Normalize the signature and lookup the function
737
+ key = ErrorFragment.from(key).format()
738
+ if (key === "Error(string)") { return ErrorFragment.from("error Error(string)"); }
739
+ if (key === "Panic(uint256)") { return ErrorFragment.from("error Panic(uint256)"); }
740
+
741
+ const result = this.#errors.get(key);
742
+ if (result) { return result; }
743
+
744
+ return null;
745
+ }
746
+
747
+ /**
748
+ * Iterate over all errors, calling %%callback%%, sorted by their name.
749
+ */
750
+ forEachError(callback: (func: ErrorFragment, index: number) => void): void {
751
+ const names = Array.from(this.#errors.keys());
752
+ names.sort((a, b) => a.localeCompare(b));
753
+ for (let i = 0; i < names.length; i++) {
754
+ const name = names[i];
755
+ callback(<ErrorFragment>(this.#errors.get(name)), i);
756
+ }
757
+ }
758
+
759
+ // Get the 4-byte selector used by Solidity to identify a function
760
+ /*
761
+ getSelector(fragment: ErrorFragment | FunctionFragment): string {
762
+ if (typeof(fragment) === "string") {
763
+ const matches: Array<Fragment> = [ ];
764
+
765
+ try { matches.push(this.getFunction(fragment)); } catch (error) { }
766
+ try { matches.push(this.getError(<string>fragment)); } catch (_) { }
767
+
768
+ if (matches.length === 0) {
769
+ logger.throwArgumentError("unknown fragment", "key", fragment);
770
+ } else if (matches.length > 1) {
771
+ logger.throwArgumentError("ambiguous fragment matches function and error", "key", fragment);
772
+ }
773
+
774
+ fragment = matches[0];
775
+ }
776
+
777
+ return dataSlice(id(fragment.format()), 0, 4);
778
+ }
779
+ */
780
+
781
+ // Get the 32-byte topic hash used by Solidity to identify an event
782
+ /*
783
+ getEventTopic(fragment: EventFragment): string {
784
+ //if (typeof(fragment) === "string") { fragment = this.getEvent(eventFragment); }
785
+ return id(fragment.format());
786
+ }
787
+ */
788
+
789
+
790
+ _decodeParams(params: ReadonlyArray<ParamType>, data: BytesLike): Result {
791
+ return this.#abiCoder.decode(params, data)
792
+ }
793
+
794
+ _encodeParams(params: ReadonlyArray<ParamType>, values: ReadonlyArray<any>): string {
795
+ return this.#abiCoder.encode(params, values)
796
+ }
797
+
798
+ /**
799
+ * Encodes a ``tx.data`` object for deploying the Contract with
800
+ * the %%values%% as the constructor arguments.
801
+ */
802
+ encodeDeploy(values?: ReadonlyArray<any>): string {
803
+ return this._encodeParams(this.deploy.inputs, values || [ ]);
804
+ }
805
+
806
+ /**
807
+ * Decodes the result %%data%% (e.g. from an ``eth_call``) for the
808
+ * specified error (see [[getError]] for valid values for
809
+ * %%key%%).
810
+ *
811
+ * Most developers should prefer the [[parseCallResult]] method instead,
812
+ * which will automatically detect a ``CALL_EXCEPTION`` and throw the
813
+ * corresponding error.
814
+ */
815
+ decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {
816
+ if (typeof(fragment) === "string") {
817
+ const f = this.getError(fragment);
818
+ assertArgument(f, "unknown error", "fragment", fragment);
819
+ fragment = f;
820
+ }
821
+
822
+ assertArgument(dataSlice(data, 0, 4) === fragment.selector,
823
+ `data signature does not match error ${ fragment.name }.`, "data", data);
824
+
825
+ return this._decodeParams(fragment.inputs, dataSlice(data, 4));
826
+ }
827
+
828
+ /**
829
+ * Encodes the transaction revert data for a call result that
830
+ * reverted from the the Contract with the sepcified %%error%%
831
+ * (see [[getError]] for valid values for %%fragment%%) with the %%values%%.
832
+ *
833
+ * This is generally not used by most developers, unless trying to mock
834
+ * a result from a Contract.
835
+ */
836
+ encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray<any>): string {
837
+ if (typeof(fragment) === "string") {
838
+ const f = this.getError(fragment);
839
+ assertArgument(f, "unknown error", "fragment", fragment);
840
+ fragment = f;
841
+ }
842
+
843
+ return concat([
844
+ fragment.selector,
845
+ this._encodeParams(fragment.inputs, values || [ ])
846
+ ]);
847
+ }
848
+
849
+ /**
850
+ * Decodes the %%data%% from a transaction ``tx.data`` for
851
+ * the function specified (see [[getFunction]] for valid values
852
+ * for %%fragment%%).
853
+ *
854
+ * Most developers should prefer the [[parseTransaction]] method
855
+ * instead, which will automatically detect the fragment.
856
+ */
857
+ decodeFunctionData(fragment: FunctionFragment | string, data: BytesLike): Result {
858
+ if (typeof(fragment) === "string") {
859
+ const f = this.getFunction(fragment);
860
+ assertArgument(f, "unknown function", "fragment", fragment);
861
+ fragment = f;
862
+ }
863
+
864
+ assertArgument(dataSlice(data, 0, 4) === fragment.selector,
865
+ `data signature does not match function ${ fragment.name }.`, "data", data);
866
+
867
+ return this._decodeParams(fragment.inputs, dataSlice(data, 4));
868
+ }
869
+
870
+ /**
871
+ * Encodes the ``tx.data`` for a transaction that calls the function
872
+ * specified (see [[getFunction]] for valid values for %%fragment%%) with
873
+ * the %%values%%.
874
+ */
875
+ encodeFunctionData(fragment: FunctionFragment | string, values?: ReadonlyArray<any>): string {
876
+ if (typeof(fragment) === "string") {
877
+ const f = this.getFunction(fragment);
878
+ assertArgument(f, "unknown function", "fragment", fragment);
879
+ fragment = f;
880
+ }
881
+
882
+ return concat([
883
+ fragment.selector,
884
+ this._encodeParams(fragment.inputs, values || [ ])
885
+ ]);
886
+ }
887
+
888
+ /**
889
+ * Decodes the result %%data%% (e.g. from an ``eth_call``) for the
890
+ * specified function (see [[getFunction]] for valid values for
891
+ * %%key%%).
892
+ *
893
+ * Most developers should prefer the [[parseCallResult]] method instead,
894
+ * which will automatically detect a ``CALL_EXCEPTION`` and throw the
895
+ * corresponding error.
896
+ */
897
+ decodeFunctionResult(fragment: FunctionFragment | string, data: BytesLike): Result {
898
+ if (typeof(fragment) === "string") {
899
+ const f = this.getFunction(fragment);
900
+ assertArgument(f, "unknown function", "fragment", fragment);
901
+ fragment = f;
902
+ }
903
+
904
+ let message = "invalid length for result data";
905
+
906
+ const bytes = getBytesCopy(data);
907
+ if ((bytes.length % 32) === 0) {
908
+ try {
909
+ return this.#abiCoder.decode(fragment.outputs, bytes);
910
+ } catch (error) {
911
+ message = "could not decode result data";
912
+ }
913
+ }
914
+
915
+ // Call returned data with no error, but the data is junk
916
+ assert(false, message, "BAD_DATA", {
917
+ value: hexlify(bytes),
918
+ info: { method: fragment.name, signature: fragment.format() }
919
+ });
920
+ }
921
+
922
+ makeError(_data: BytesLike, tx: CallExceptionTransaction): CallExceptionError {
923
+ const data = getBytes(_data, "data");
924
+
925
+ const error = AbiCoder.getBuiltinCallException("call", tx, data);
926
+
927
+ // Not a built-in error; try finding a custom error
928
+ const customPrefix = "execution reverted (unknown custom error)";
929
+ if (error.message.startsWith(customPrefix)) {
930
+ const selector = hexlify(data.slice(0, 4));
931
+
932
+ const ef = this.getError(selector);
933
+ if (ef) {
934
+ try {
935
+ const args = this.#abiCoder.decode(ef.inputs, data.slice(4));
936
+ error.revert = {
937
+ name: ef.name, signature: ef.format(), args
938
+ };
939
+ error.reason = error.revert.signature;
940
+ error.message = `execution reverted: ${ error.reason }`
941
+ } catch (e) {
942
+ error.message = `execution reverted (coult not decode custom error)`
943
+ }
944
+ }
945
+ }
946
+
947
+ // Add the invocation, if available
948
+ const parsed = this.parseTransaction(tx);
949
+ if (parsed) {
950
+ error.invocation = {
951
+ method: parsed.name,
952
+ signature: parsed.signature,
953
+ args: parsed.args
954
+ };
955
+ }
956
+
957
+ return error;
958
+ }
959
+
960
+ /**
961
+ * Encodes the result data (e.g. from an ``eth_call``) for the
962
+ * specified function (see [[getFunction]] for valid values
963
+ * for %%fragment%%) with %%values%%.
964
+ *
965
+ * This is generally not used by most developers, unless trying to mock
966
+ * a result from a Contract.
967
+ */
968
+ encodeFunctionResult(fragment: FunctionFragment | string, values?: ReadonlyArray<any>): string {
969
+ if (typeof(fragment) === "string") {
970
+ const f = this.getFunction(fragment);
971
+ assertArgument(f, "unknown function", "fragment", fragment);
972
+ fragment = f;
973
+ }
974
+ return hexlify(this.#abiCoder.encode(fragment.outputs, values || [ ]));
975
+ }
976
+ /*
977
+ spelunk(inputs: Array<ParamType>, values: ReadonlyArray<any>, processfunc: (type: string, value: any) => Promise<any>): Promise<Array<any>> {
978
+ const promises: Array<Promise<>> = [ ];
979
+ const process = function(type: ParamType, value: any): any {
980
+ if (type.baseType === "array") {
981
+ return descend(type.child
982
+ }
983
+ if (type. === "address") {
984
+ }
985
+ };
986
+
987
+ const descend = function (inputs: Array<ParamType>, values: ReadonlyArray<any>) {
988
+ if (inputs.length !== values.length) { throw new Error("length mismatch"); }
989
+
990
+ };
991
+
992
+ const result: Array<any> = [ ];
993
+ values.forEach((value, index) => {
994
+ if (value == null) {
995
+ topics.push(null);
996
+ } else if (param.baseType === "array" || param.baseType === "tuple") {
997
+ logger.throwArgumentError("filtering with tuples or arrays not supported", ("contract." + param.name), value);
998
+ } else if (Array.isArray(value)) {
999
+ topics.push(value.map((value) => encodeTopic(param, value)));
1000
+ } else {
1001
+ topics.push(encodeTopic(param, value));
1002
+ }
1003
+ });
1004
+ }
1005
+ */
1006
+ // Create the filter for the event with search criteria (e.g. for eth_filterLog)
1007
+ encodeFilterTopics(fragment: EventFragment | string, values: ReadonlyArray<any>): Array<null | string | Array<string>> {
1008
+ if (typeof(fragment) === "string") {
1009
+ const f = this.getEvent(fragment);
1010
+ assertArgument(f, "unknown event", "eventFragment", fragment);
1011
+ fragment = f;
1012
+ }
1013
+
1014
+ assert(values.length <= fragment.inputs.length, `too many arguments for ${ fragment.format() }`,
1015
+ "UNEXPECTED_ARGUMENT", { count: values.length, expectedCount: fragment.inputs.length })
1016
+
1017
+ const topics: Array<null | string | Array<string>> = [];
1018
+ if (!fragment.anonymous) { topics.push(fragment.topicHash); }
1019
+
1020
+ // @TODO: Use the coders for this; to properly support tuples, etc.
1021
+ const encodeTopic = (param: ParamType, value: any): string => {
1022
+ if (param.type === "string") {
1023
+ return id(value);
1024
+ } else if (param.type === "bytes") {
1025
+ return keccak256(hexlify(value));
1026
+ }
1027
+
1028
+ if (param.type === "bool" && typeof(value) === "boolean") {
1029
+ value = (value ? "0x01": "0x00");
1030
+ } else if (param.type.match(/^u?int/)) {
1031
+ value = toBeHex(value); // @TODO: Should this toTwos??
1032
+ } else if (param.type.match(/^bytes/)) {
1033
+ value = zeroPadBytes(value, 32);
1034
+ } else if (param.type === "address") {
1035
+ // Check addresses are valid
1036
+ this.#abiCoder.encode( [ "address" ], [ value ]);
1037
+ }
1038
+
1039
+ return zeroPadValue(hexlify(value), 32);
1040
+ };
1041
+
1042
+ values.forEach((value, index) => {
1043
+
1044
+ const param = (<EventFragment>fragment).inputs[index];
1045
+
1046
+ if (!param.indexed) {
1047
+ assertArgument(value == null,
1048
+ "cannot filter non-indexed parameters; must be null", ("contract." + param.name), value);
1049
+ return;
1050
+ }
1051
+
1052
+ if (value == null) {
1053
+ topics.push(null);
1054
+ } else if (param.baseType === "array" || param.baseType === "tuple") {
1055
+ assertArgument(false, "filtering with tuples or arrays not supported", ("contract." + param.name), value);
1056
+ } else if (Array.isArray(value)) {
1057
+ topics.push(value.map((value) => encodeTopic(param, value)));
1058
+ } else {
1059
+ topics.push(encodeTopic(param, value));
1060
+ }
1061
+ });
1062
+
1063
+ // Trim off trailing nulls
1064
+ while (topics.length && topics[topics.length - 1] === null) {
1065
+ topics.pop();
1066
+ }
1067
+
1068
+ return topics;
1069
+ }
1070
+
1071
+ encodeEventLog(fragment: EventFragment | string, values: ReadonlyArray<any>): { data: string, topics: Array<string> } {
1072
+ if (typeof(fragment) === "string") {
1073
+ const f = this.getEvent(fragment);
1074
+ assertArgument(f, "unknown event", "eventFragment", fragment);
1075
+ fragment = f;
1076
+ }
1077
+
1078
+ const topics: Array<string> = [ ];
1079
+
1080
+ const dataTypes: Array<ParamType> = [ ];
1081
+ const dataValues: Array<string> = [ ];
1082
+
1083
+ if (!fragment.anonymous) {
1084
+ topics.push(fragment.topicHash);
1085
+ }
1086
+
1087
+ assertArgument(values.length === fragment.inputs.length,
1088
+ "event arguments/values mismatch", "values", values);
1089
+
1090
+ fragment.inputs.forEach((param, index) => {
1091
+ const value = values[index];
1092
+ if (param.indexed) {
1093
+ if (param.type === "string") {
1094
+ topics.push(id(value))
1095
+ } else if (param.type === "bytes") {
1096
+ topics.push(keccak256(value))
1097
+ } else if (param.baseType === "tuple" || param.baseType === "array") {
1098
+ // @TODO
1099
+ throw new Error("not implemented");
1100
+ } else {
1101
+ topics.push(this.#abiCoder.encode([ param.type] , [ value ]));
1102
+ }
1103
+ } else {
1104
+ dataTypes.push(param);
1105
+ dataValues.push(value);
1106
+ }
1107
+ });
1108
+
1109
+ return {
1110
+ data: this.#abiCoder.encode(dataTypes , dataValues),
1111
+ topics: topics
1112
+ };
1113
+ }
1114
+
1115
+ // Decode a filter for the event and the search criteria
1116
+ decodeEventLog(fragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray<string>): Result {
1117
+ if (typeof(fragment) === "string") {
1118
+ const f = this.getEvent(fragment);
1119
+ assertArgument(f, "unknown event", "eventFragment", fragment);
1120
+ fragment = f;
1121
+ }
1122
+
1123
+ if (topics != null && !fragment.anonymous) {
1124
+ const eventTopic = fragment.topicHash;
1125
+ assertArgument(isHexString(topics[0], 32) && topics[0].toLowerCase() === eventTopic,
1126
+ "fragment/topic mismatch", "topics[0]", topics[0]);
1127
+ topics = topics.slice(1);
1128
+ }
1129
+
1130
+ const indexed: Array<ParamType> = [];
1131
+ const nonIndexed: Array<ParamType> = [];
1132
+ const dynamic: Array<boolean> = [];
1133
+
1134
+ fragment.inputs.forEach((param, index) => {
1135
+ if (param.indexed) {
1136
+ if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") {
1137
+ indexed.push(ParamType.from({ type: "bytes32", name: param.name }));
1138
+ dynamic.push(true);
1139
+ } else {
1140
+ indexed.push(param);
1141
+ dynamic.push(false);
1142
+ }
1143
+ } else {
1144
+ nonIndexed.push(param);
1145
+ dynamic.push(false);
1146
+ }
1147
+ });
1148
+
1149
+ const resultIndexed = (topics != null) ? this.#abiCoder.decode(indexed, concat(topics)): null;
1150
+ const resultNonIndexed = this.#abiCoder.decode(nonIndexed, data, true);
1151
+
1152
+ //const result: (Array<any> & { [ key: string ]: any }) = [ ];
1153
+ const values: Array<any> = [ ];
1154
+ const keys: Array<null | string> = [ ];
1155
+ let nonIndexedIndex = 0, indexedIndex = 0;
1156
+ fragment.inputs.forEach((param, index) => {
1157
+ let value: null | Indexed | Error = null;
1158
+ if (param.indexed) {
1159
+ if (resultIndexed == null) {
1160
+ value = new Indexed(null);
1161
+
1162
+ } else if (dynamic[index]) {
1163
+ value = new Indexed(resultIndexed[indexedIndex++]);
1164
+
1165
+ } else {
1166
+ try {
1167
+ value = resultIndexed[indexedIndex++];
1168
+ } catch (error: any) {
1169
+ value = error;
1170
+ }
1171
+ }
1172
+ } else {
1173
+ try {
1174
+ value = resultNonIndexed[nonIndexedIndex++];
1175
+ } catch (error: any) {
1176
+ value = error;
1177
+ }
1178
+ }
1179
+
1180
+ values.push(value);
1181
+ keys.push(param.name || null);
1182
+ });
1183
+
1184
+ return Result.fromItems(values, keys);
1185
+ }
1186
+
1187
+ /**
1188
+ * Parses a transaction, finding the matching function and extracts
1189
+ * the parameter values along with other useful function details.
1190
+ *
1191
+ * If the matching function cannot be found, return null.
1192
+ */
1193
+ parseTransaction(tx: { data: string, value?: BigNumberish }): null | TransactionDescription {
1194
+ const data = getBytes(tx.data, "tx.data");
1195
+ const value = getBigInt((tx.value != null) ? tx.value: 0, "tx.value");
1196
+
1197
+ const fragment = this.getFunction(hexlify(data.slice(0, 4)));
1198
+
1199
+ if (!fragment) { return null; }
1200
+
1201
+ const args = this.#abiCoder.decode(fragment.inputs, data.slice(4));
1202
+ return new TransactionDescription(fragment, fragment.selector, args, value);
1203
+ }
1204
+
1205
+ parseCallResult(data: BytesLike): Result {
1206
+ throw new Error("@TODO");
1207
+ }
1208
+
1209
+ /**
1210
+ * Parses a receipt log, finding the matching event and extracts
1211
+ * the parameter values along with other useful event details.
1212
+ *
1213
+ * If the matching event cannot be found, returns null.
1214
+ */
1215
+ parseLog(log: { topics: Array<string>, data: string}): null | LogDescription {
1216
+ const fragment = this.getEvent(log.topics[0]);
1217
+
1218
+ if (!fragment || fragment.anonymous) { return null; }
1219
+
1220
+ // @TODO: If anonymous, and the only method, and the input count matches, should we parse?
1221
+ // Probably not, because just because it is the only event in the ABI does
1222
+ // not mean we have the full ABI; maybe just a fragment?
1223
+
1224
+
1225
+ return new LogDescription(fragment, fragment.topicHash, this.decodeEventLog(fragment, log.data, log.topics));
1226
+ }
1227
+
1228
+ /**
1229
+ * Parses a revert data, finding the matching error and extracts
1230
+ * the parameter values along with other useful error details.
1231
+ *
1232
+ * If the matching event cannot be found, returns null.
1233
+ */
1234
+ parseError(data: BytesLike): null | ErrorDescription {
1235
+ const hexData = hexlify(data);
1236
+
1237
+ const fragment = this.getError(dataSlice(hexData, 0, 4));
1238
+
1239
+ if (!fragment) { return null; }
1240
+
1241
+ const args = this.#abiCoder.decode(fragment.inputs, dataSlice(hexData, 4));
1242
+ return new ErrorDescription(fragment, fragment.selector, args);
1243
+ }
1244
+
1245
+ /**
1246
+ * Creates a new [[Interface]] from the ABI %%value%%.
1247
+ *
1248
+ * The %%value%% may be provided as an existing [[Interface]] object,
1249
+ * a JSON-encoded ABI or any Human-Readable ABI format.
1250
+ */
1251
+ static from(value: InterfaceAbi | Interface): Interface {
1252
+ // Already an Interface, which is immutable
1253
+ if (value instanceof Interface) { return value; }
1254
+
1255
+ // JSON
1256
+ if (typeof(value) === "string") { return new Interface(JSON.parse(value)); }
1257
+
1258
+ // Maybe an interface from an older version, or from a symlinked copy
1259
+ if (typeof((<any>value).format) === "function") {
1260
+ return new Interface((<any>value).format("json"));
1261
+ }
1262
+
1263
+ // Array of fragments
1264
+ return new Interface(value);
1265
+ }
1266
+ }