essential-eth 0.4.8 → 0.4.9-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/..eslintrc.js.un~ +0 -0
  2. package/..npmignore.un~ +0 -0
  3. package/.env +1 -0
  4. package/.eslintignore +4 -0
  5. package/.eslintrc.js +34 -0
  6. package/.gitattributes +1 -0
  7. package/.github/workflows/.test.yml.un~ +0 -0
  8. package/.github/workflows/test.yml +29 -0
  9. package/.package.json.un~ +0 -0
  10. package/.prettierignore +7 -0
  11. package/.travis.yml +5 -0
  12. package/jest.config.js +9 -0
  13. package/package.json +32 -18
  14. package/readme.md +1 -2
  15. package/scripts/build-website.sh +4 -0
  16. package/scripts/bump-minor.sh +4 -0
  17. package/scripts/bump-patch.sh +4 -0
  18. package/scripts/fetch-chains-info.ts +70 -0
  19. package/scripts/pre-commit.sh +5 -0
  20. package/src/classes/Contract.ts +161 -0
  21. package/src/classes/test/Contract/crv-abi.ts +488 -0
  22. package/src/classes/test/Contract/crv.test.ts +56 -0
  23. package/src/classes/test/Contract/ens-abi.ts +452 -0
  24. package/src/classes/test/Contract/ens.test.ts +39 -0
  25. package/src/classes/test/Contract/fei-abi.ts +526 -0
  26. package/src/classes/test/Contract/fei.test.ts +86 -0
  27. package/src/classes/test/Contract/foo-abi.ts +42 -0
  28. package/src/classes/test/Contract/foo.test.ts +33 -0
  29. package/src/classes/test/Contract/uni.test.ts +72 -0
  30. package/src/classes/test/Contract/uniswap-abi.ts +121 -0
  31. package/src/classes/utils/clean-block.ts +49 -0
  32. package/src/classes/utils/clean-transaction.ts +35 -0
  33. package/src/classes/utils/encode-decode-transaction.ts +126 -0
  34. package/src/classes/utils/fetchers.ts +27 -0
  35. package/{lib/cjs/classes/utils/hex-to-decimal.d.ts → src/classes/utils/hex-to-decimal.ts} +3 -1
  36. package/src/index.ts +27 -0
  37. package/src/providers/JsonRpcProvider.ts +94 -0
  38. package/src/providers/test/get-block.test.ts +63 -0
  39. package/src/providers/test/get-network.test.ts +34 -0
  40. package/src/providers/utils/chains-info.ts +1079 -0
  41. package/src/shared/tiny-big/helpers.test.ts +30 -0
  42. package/src/shared/tiny-big/helpers.ts +89 -0
  43. package/src/shared/tiny-big/tiny-big.test.ts +10 -0
  44. package/src/shared/tiny-big/tiny-big.ts +36 -0
  45. package/src/shared/validate-type.ts +20 -0
  46. package/src/types/.Contract.types.ts.un~ +0 -0
  47. package/src/types/Block.types.ts +50 -0
  48. package/src/types/Contract.types.ts +67 -0
  49. package/src/types/Network.types.ts +8 -0
  50. package/src/types/Transaction.types.ts +35 -0
  51. package/{lib/cjs/utils/ether-to-wei.d.ts → src/utils/ether-to-wei.ts} +10 -2
  52. package/src/utils/index.ts +6 -0
  53. package/src/utils/is-address.ts +16 -0
  54. package/src/utils/tests/ether-to-wei.test.ts +65 -0
  55. package/src/utils/tests/is-address.test.ts +52 -0
  56. package/src/utils/tests/to-checksum-address.test.ts +43 -0
  57. package/src/utils/tests/wei-to-ether.test.ts +72 -0
  58. package/src/utils/to-checksum-address.ts +47 -0
  59. package/{lib/cjs/utils/wei-to-ether.d.ts → src/utils/wei-to-ether.ts} +8 -1
  60. package/test/global-setup.js +8 -0
  61. package/test/global-teardown.js +5 -0
  62. package/test/jest.setup-after-env.js +1 -0
  63. package/test/server.js +24 -0
  64. package/tsconfig-cjs.json +8 -0
  65. package/tsconfig.json +25 -0
  66. package/typedoc/options-new-version.js +8 -0
  67. package/typedoc/options.js +9 -0
  68. package/types/just-omit.d.ts +1 -0
  69. package/website/.nojekyll +1 -0
  70. package/website/assets/highlight.css +71 -0
  71. package/website/assets/icons.css +1043 -0
  72. package/website/assets/icons.png +0 -0
  73. package/website/assets/icons@2x.png +0 -0
  74. package/website/assets/main.js +52 -0
  75. package/website/assets/search.js +1 -0
  76. package/website/assets/style.css +1413 -0
  77. package/website/assets/widgets.png +0 -0
  78. package/website/assets/widgets@2x.png +0 -0
  79. package/website/classes/Contract.html +13 -0
  80. package/website/classes/JsonRpcProvider.html +8 -0
  81. package/website/classes/TinyBig.html +161 -0
  82. package/website/index.html +207 -0
  83. package/website/interfaces/Block.html +1 -0
  84. package/website/interfaces/JSONABIArgument.html +1 -0
  85. package/website/interfaces/Network.html +3 -0
  86. package/website/interfaces/Transaction.html +1 -0
  87. package/website/modules.html +32 -0
  88. package/website/versions/0.1.2/assets/highlight.css +57 -0
  89. package/website/versions/0.1.2/assets/icons.css +1043 -0
  90. package/website/versions/0.1.2/assets/icons.png +0 -0
  91. package/website/versions/0.1.2/assets/icons@2x.png +0 -0
  92. package/website/versions/0.1.2/assets/main.js +52 -0
  93. package/website/versions/0.1.2/assets/search.js +1 -0
  94. package/website/versions/0.1.2/assets/style.css +1341 -0
  95. package/website/versions/0.1.2/assets/widgets.png +0 -0
  96. package/website/versions/0.1.2/assets/widgets@2x.png +0 -0
  97. package/website/versions/0.1.2/classes/TinyBig.html +4 -0
  98. package/website/versions/0.1.2/index.html +20 -0
  99. package/website/versions/0.1.2/modules.html +23 -0
  100. package/website/versions/0.1.3/assets/highlight.css +64 -0
  101. package/website/versions/0.1.3/assets/icons.css +1043 -0
  102. package/website/versions/0.1.3/assets/icons.png +0 -0
  103. package/website/versions/0.1.3/assets/icons@2x.png +0 -0
  104. package/website/versions/0.1.3/assets/main.js +52 -0
  105. package/website/versions/0.1.3/assets/search.js +1 -0
  106. package/website/versions/0.1.3/assets/style.css +1341 -0
  107. package/website/versions/0.1.3/assets/widgets.png +0 -0
  108. package/website/versions/0.1.3/assets/widgets@2x.png +0 -0
  109. package/website/versions/0.1.3/classes/TinyBig.html +4 -0
  110. package/website/versions/0.1.3/index.html +53 -0
  111. package/website/versions/0.1.3/modules.html +23 -0
  112. package/website/versions/0.1.4/assets/highlight.css +64 -0
  113. package/website/versions/0.1.4/assets/icons.css +1043 -0
  114. package/website/versions/0.1.4/assets/icons.png +0 -0
  115. package/website/versions/0.1.4/assets/icons@2x.png +0 -0
  116. package/website/versions/0.1.4/assets/main.js +52 -0
  117. package/website/versions/0.1.4/assets/search.js +1 -0
  118. package/website/versions/0.1.4/assets/style.css +1341 -0
  119. package/website/versions/0.1.4/assets/widgets.png +0 -0
  120. package/website/versions/0.1.4/assets/widgets@2x.png +0 -0
  121. package/website/versions/0.1.4/classes/EssentialEth.html +1 -0
  122. package/website/versions/0.1.4/classes/TinyBig.html +4 -0
  123. package/website/versions/0.1.4/index.html +58 -0
  124. package/website/versions/0.1.4/modules.html +23 -0
  125. package/website/versions/0.2.0/assets/highlight.css +64 -0
  126. package/website/versions/0.2.0/assets/icons.css +1043 -0
  127. package/website/versions/0.2.0/assets/icons.png +0 -0
  128. package/website/versions/0.2.0/assets/icons@2x.png +0 -0
  129. package/website/versions/0.2.0/assets/main.js +52 -0
  130. package/website/versions/0.2.0/assets/search.js +1 -0
  131. package/website/versions/0.2.0/assets/style.css +1341 -0
  132. package/website/versions/0.2.0/assets/widgets.png +0 -0
  133. package/website/versions/0.2.0/assets/widgets@2x.png +0 -0
  134. package/website/versions/0.2.0/classes/EssentialEth.html +5 -0
  135. package/website/versions/0.2.0/classes/TinyBig.html +146 -0
  136. package/website/versions/0.2.0/index.html +89 -0
  137. package/website/versions/0.2.0/modules.html +25 -0
  138. package/website/versions/0.2.1/assets/highlight.css +64 -0
  139. package/website/versions/0.2.1/assets/icons.css +1043 -0
  140. package/website/versions/0.2.1/assets/icons.png +0 -0
  141. package/website/versions/0.2.1/assets/icons@2x.png +0 -0
  142. package/website/versions/0.2.1/assets/main.js +52 -0
  143. package/website/versions/0.2.1/assets/search.js +1 -0
  144. package/website/versions/0.2.1/assets/style.css +1341 -0
  145. package/website/versions/0.2.1/assets/widgets.png +0 -0
  146. package/website/versions/0.2.1/assets/widgets@2x.png +0 -0
  147. package/website/versions/0.2.1/classes/EssentialEth.html +5 -0
  148. package/website/versions/0.2.1/classes/TinyBig.html +146 -0
  149. package/website/versions/0.2.1/index.html +96 -0
  150. package/website/versions/0.2.1/modules.html +29 -0
  151. package/website/versions/0.2.2/assets/highlight.css +64 -0
  152. package/website/versions/0.2.2/assets/icons.css +1043 -0
  153. package/website/versions/0.2.2/assets/icons.png +0 -0
  154. package/website/versions/0.2.2/assets/icons@2x.png +0 -0
  155. package/website/versions/0.2.2/assets/main.js +52 -0
  156. package/website/versions/0.2.2/assets/search.js +1 -0
  157. package/website/versions/0.2.2/assets/style.css +1341 -0
  158. package/website/versions/0.2.2/assets/widgets.png +0 -0
  159. package/website/versions/0.2.2/assets/widgets@2x.png +0 -0
  160. package/website/versions/0.2.2/classes/EssentialEth.html +5 -0
  161. package/website/versions/0.2.2/classes/TinyBig.html +146 -0
  162. package/website/versions/0.2.2/index.html +96 -0
  163. package/website/versions/0.2.2/modules.html +29 -0
  164. package/website/versions/0.3.0/.nojekyll +1 -0
  165. package/website/versions/0.3.0/assets/highlight.css +71 -0
  166. package/website/versions/0.3.0/assets/icons.css +1043 -0
  167. package/website/versions/0.3.0/assets/icons.png +0 -0
  168. package/website/versions/0.3.0/assets/icons@2x.png +0 -0
  169. package/website/versions/0.3.0/assets/main.js +52 -0
  170. package/website/versions/0.3.0/assets/search.js +1 -0
  171. package/website/versions/0.3.0/assets/style.css +1384 -0
  172. package/website/versions/0.3.0/assets/widgets.png +0 -0
  173. package/website/versions/0.3.0/assets/widgets@2x.png +0 -0
  174. package/website/versions/0.3.0/classes/Contract.html +15 -0
  175. package/website/versions/0.3.0/classes/TinyBig.html +156 -0
  176. package/website/versions/0.3.0/index.html +123 -0
  177. package/website/versions/0.3.0/modules.html +32 -0
  178. package/website/versions/0.3.1/.nojekyll +1 -0
  179. package/website/versions/0.3.1/assets/highlight.css +71 -0
  180. package/website/versions/0.3.1/assets/icons.css +1043 -0
  181. package/website/versions/0.3.1/assets/icons.png +0 -0
  182. package/website/versions/0.3.1/assets/icons@2x.png +0 -0
  183. package/website/versions/0.3.1/assets/main.js +52 -0
  184. package/website/versions/0.3.1/assets/search.js +1 -0
  185. package/website/versions/0.3.1/assets/style.css +1384 -0
  186. package/website/versions/0.3.1/assets/widgets.png +0 -0
  187. package/website/versions/0.3.1/assets/widgets@2x.png +0 -0
  188. package/website/versions/0.3.1/classes/Contract.html +15 -0
  189. package/website/versions/0.3.1/classes/TinyBig.html +156 -0
  190. package/website/versions/0.3.1/index.html +123 -0
  191. package/website/versions/0.3.1/modules.html +32 -0
  192. package/website/versions/0.3.2/.nojekyll +1 -0
  193. package/website/versions/0.3.2/assets/highlight.css +71 -0
  194. package/website/versions/0.3.2/assets/icons.css +1043 -0
  195. package/website/versions/0.3.2/assets/icons.png +0 -0
  196. package/website/versions/0.3.2/assets/icons@2x.png +0 -0
  197. package/website/versions/0.3.2/assets/main.js +52 -0
  198. package/website/versions/0.3.2/assets/search.js +1 -0
  199. package/website/versions/0.3.2/assets/style.css +1384 -0
  200. package/website/versions/0.3.2/assets/widgets.png +0 -0
  201. package/website/versions/0.3.2/assets/widgets@2x.png +0 -0
  202. package/website/versions/0.3.2/classes/Contract.html +15 -0
  203. package/website/versions/0.3.2/classes/JsonRpcProvider.html +5 -0
  204. package/website/versions/0.3.2/classes/TinyBig.html +156 -0
  205. package/website/versions/0.3.2/index.html +123 -0
  206. package/website/versions/0.3.2/modules.html +32 -0
  207. package/website/versions/0.3.3/.nojekyll +1 -0
  208. package/website/versions/0.3.3/assets/highlight.css +71 -0
  209. package/website/versions/0.3.3/assets/icons.css +1043 -0
  210. package/website/versions/0.3.3/assets/icons.png +0 -0
  211. package/website/versions/0.3.3/assets/icons@2x.png +0 -0
  212. package/website/versions/0.3.3/assets/main.js +52 -0
  213. package/website/versions/0.3.3/assets/search.js +1 -0
  214. package/website/versions/0.3.3/assets/style.css +1384 -0
  215. package/website/versions/0.3.3/assets/widgets.png +0 -0
  216. package/website/versions/0.3.3/assets/widgets@2x.png +0 -0
  217. package/website/versions/0.3.3/classes/Contract.html +15 -0
  218. package/website/versions/0.3.3/classes/JsonRpcProvider.html +5 -0
  219. package/website/versions/0.3.3/classes/TinyBig.html +156 -0
  220. package/website/versions/0.3.3/index.html +123 -0
  221. package/website/versions/0.3.3/interfaces/Block.html +1 -0
  222. package/website/versions/0.3.3/interfaces/Transaction.html +1 -0
  223. package/website/versions/0.3.3/modules.html +32 -0
  224. package/website/versions/0.4.0/.nojekyll +1 -0
  225. package/website/versions/0.4.0/assets/highlight.css +71 -0
  226. package/website/versions/0.4.0/assets/icons.css +1043 -0
  227. package/website/versions/0.4.0/assets/icons.png +0 -0
  228. package/website/versions/0.4.0/assets/icons@2x.png +0 -0
  229. package/website/versions/0.4.0/assets/main.js +52 -0
  230. package/website/versions/0.4.0/assets/search.js +1 -0
  231. package/website/versions/0.4.0/assets/style.css +1384 -0
  232. package/website/versions/0.4.0/assets/widgets.png +0 -0
  233. package/website/versions/0.4.0/assets/widgets@2x.png +0 -0
  234. package/website/versions/0.4.0/classes/Contract.html +15 -0
  235. package/website/versions/0.4.0/classes/JsonRpcProvider.html +6 -0
  236. package/website/versions/0.4.0/classes/TinyBig.html +156 -0
  237. package/website/versions/0.4.0/index.html +148 -0
  238. package/website/versions/0.4.0/interfaces/Block.html +1 -0
  239. package/website/versions/0.4.0/interfaces/Transaction.html +1 -0
  240. package/website/versions/0.4.0/modules.html +32 -0
  241. package/website/versions/0.4.1/.nojekyll +1 -0
  242. package/website/versions/0.4.1/assets/highlight.css +71 -0
  243. package/website/versions/0.4.1/assets/icons.css +1043 -0
  244. package/website/versions/0.4.1/assets/icons.png +0 -0
  245. package/website/versions/0.4.1/assets/icons@2x.png +0 -0
  246. package/website/versions/0.4.1/assets/main.js +52 -0
  247. package/website/versions/0.4.1/assets/search.js +1 -0
  248. package/website/versions/0.4.1/assets/style.css +1384 -0
  249. package/website/versions/0.4.1/assets/widgets.png +0 -0
  250. package/website/versions/0.4.1/assets/widgets@2x.png +0 -0
  251. package/website/versions/0.4.1/classes/Contract.html +15 -0
  252. package/website/versions/0.4.1/classes/JsonRpcProvider.html +6 -0
  253. package/website/versions/0.4.1/classes/TinyBig.html +156 -0
  254. package/website/versions/0.4.1/index.html +148 -0
  255. package/website/versions/0.4.1/interfaces/Block.html +1 -0
  256. package/website/versions/0.4.1/interfaces/Transaction.html +1 -0
  257. package/website/versions/0.4.1/modules.html +32 -0
  258. package/website/versions/0.4.2/.nojekyll +1 -0
  259. package/website/versions/0.4.2/assets/highlight.css +71 -0
  260. package/website/versions/0.4.2/assets/icons.css +1043 -0
  261. package/website/versions/0.4.2/assets/icons.png +0 -0
  262. package/website/versions/0.4.2/assets/icons@2x.png +0 -0
  263. package/website/versions/0.4.2/assets/main.js +52 -0
  264. package/website/versions/0.4.2/assets/search.js +1 -0
  265. package/website/versions/0.4.2/assets/style.css +1384 -0
  266. package/website/versions/0.4.2/assets/widgets.png +0 -0
  267. package/website/versions/0.4.2/assets/widgets@2x.png +0 -0
  268. package/website/versions/0.4.2/classes/Contract.html +15 -0
  269. package/website/versions/0.4.2/classes/JsonRpcProvider.html +8 -0
  270. package/website/versions/0.4.2/classes/TinyBig.html +156 -0
  271. package/website/versions/0.4.2/index.html +199 -0
  272. package/website/versions/0.4.2/interfaces/Block.html +1 -0
  273. package/website/versions/0.4.2/interfaces/Transaction.html +1 -0
  274. package/website/versions/0.4.2/modules.html +34 -0
  275. package/website/versions/0.4.3/.nojekyll +1 -0
  276. package/website/versions/0.4.3/assets/highlight.css +71 -0
  277. package/website/versions/0.4.3/assets/icons.css +1043 -0
  278. package/website/versions/0.4.3/assets/icons.png +0 -0
  279. package/website/versions/0.4.3/assets/icons@2x.png +0 -0
  280. package/website/versions/0.4.3/assets/main.js +52 -0
  281. package/website/versions/0.4.3/assets/search.js +1 -0
  282. package/website/versions/0.4.3/assets/style.css +1384 -0
  283. package/website/versions/0.4.3/assets/widgets.png +0 -0
  284. package/website/versions/0.4.3/assets/widgets@2x.png +0 -0
  285. package/website/versions/0.4.3/classes/Contract.html +15 -0
  286. package/website/versions/0.4.3/classes/JsonRpcProvider.html +8 -0
  287. package/website/versions/0.4.3/classes/TinyBig.html +159 -0
  288. package/website/versions/0.4.3/index.html +199 -0
  289. package/website/versions/0.4.3/interfaces/Block.html +1 -0
  290. package/website/versions/0.4.3/interfaces/Transaction.html +1 -0
  291. package/website/versions/0.4.3/modules.html +34 -0
  292. package/website/versions/0.4.6/.nojekyll +1 -0
  293. package/website/versions/0.4.6/assets/highlight.css +71 -0
  294. package/website/versions/0.4.6/assets/icons.css +1043 -0
  295. package/website/versions/0.4.6/assets/icons.png +0 -0
  296. package/website/versions/0.4.6/assets/icons@2x.png +0 -0
  297. package/website/versions/0.4.6/assets/main.js +52 -0
  298. package/website/versions/0.4.6/assets/search.js +1 -0
  299. package/website/versions/0.4.6/assets/style.css +1413 -0
  300. package/website/versions/0.4.6/assets/widgets.png +0 -0
  301. package/website/versions/0.4.6/assets/widgets@2x.png +0 -0
  302. package/website/versions/0.4.6/classes/Contract.html +15 -0
  303. package/website/versions/0.4.6/classes/JsonRpcProvider.html +8 -0
  304. package/website/versions/0.4.6/classes/TinyBig.html +159 -0
  305. package/website/versions/0.4.6/index.html +207 -0
  306. package/website/versions/0.4.6/interfaces/Block.html +1 -0
  307. package/website/versions/0.4.6/interfaces/Transaction.html +1 -0
  308. package/website/versions/0.4.6/modules.html +34 -0
  309. package/website/versions/0.4.8/.nojekyll +1 -0
  310. package/website/versions/0.4.8/assets/highlight.css +71 -0
  311. package/website/versions/0.4.8/assets/icons.css +1043 -0
  312. package/website/versions/0.4.8/assets/icons.png +0 -0
  313. package/website/versions/0.4.8/assets/icons@2x.png +0 -0
  314. package/website/versions/0.4.8/assets/main.js +52 -0
  315. package/website/versions/0.4.8/assets/search.js +1 -0
  316. package/website/versions/0.4.8/assets/style.css +1413 -0
  317. package/website/versions/0.4.8/assets/widgets.png +0 -0
  318. package/website/versions/0.4.8/assets/widgets@2x.png +0 -0
  319. package/website/versions/0.4.8/classes/Contract.html +15 -0
  320. package/website/versions/0.4.8/classes/JsonRpcProvider.html +8 -0
  321. package/website/versions/0.4.8/classes/TinyBig.html +161 -0
  322. package/website/versions/0.4.8/index.html +207 -0
  323. package/website/versions/0.4.8/interfaces/Block.html +1 -0
  324. package/website/versions/0.4.8/interfaces/Transaction.html +1 -0
  325. package/website/versions/0.4.8/modules.html +34 -0
  326. package/website/versions/0.4.9-beta.0/.nojekyll +1 -0
  327. package/website/versions/0.4.9-beta.0/assets/highlight.css +71 -0
  328. package/website/versions/0.4.9-beta.0/assets/icons.css +1043 -0
  329. package/website/versions/0.4.9-beta.0/assets/icons.png +0 -0
  330. package/website/versions/0.4.9-beta.0/assets/icons@2x.png +0 -0
  331. package/website/versions/0.4.9-beta.0/assets/main.js +52 -0
  332. package/website/versions/0.4.9-beta.0/assets/search.js +1 -0
  333. package/website/versions/0.4.9-beta.0/assets/style.css +1413 -0
  334. package/website/versions/0.4.9-beta.0/assets/widgets.png +0 -0
  335. package/website/versions/0.4.9-beta.0/assets/widgets@2x.png +0 -0
  336. package/website/versions/0.4.9-beta.0/classes/Contract.html +13 -0
  337. package/website/versions/0.4.9-beta.0/classes/JsonRpcProvider.html +8 -0
  338. package/website/versions/0.4.9-beta.0/classes/TinyBig.html +161 -0
  339. package/website/versions/0.4.9-beta.0/index.html +207 -0
  340. package/website/versions/0.4.9-beta.0/interfaces/Block.html +1 -0
  341. package/website/versions/0.4.9-beta.0/interfaces/JSONABIArgument.html +1 -0
  342. package/website/versions/0.4.9-beta.0/interfaces/Network.html +3 -0
  343. package/website/versions/0.4.9-beta.0/interfaces/Transaction.html +1 -0
  344. package/website/versions/0.4.9-beta.0/modules.html +32 -0
  345. package/website/versions/versions/0.1.2/assets/highlight.css +57 -0
  346. package/website/versions/versions/0.1.2/assets/icons.css +1043 -0
  347. package/website/versions/versions/0.1.2/assets/icons.png +0 -0
  348. package/website/versions/versions/0.1.2/assets/icons@2x.png +0 -0
  349. package/website/versions/versions/0.1.2/assets/main.js +52 -0
  350. package/website/versions/versions/0.1.2/assets/search.js +1 -0
  351. package/website/versions/versions/0.1.2/assets/style.css +1341 -0
  352. package/website/versions/versions/0.1.2/assets/widgets.png +0 -0
  353. package/website/versions/versions/0.1.2/assets/widgets@2x.png +0 -0
  354. package/website/versions/versions/0.1.2/classes/TinyBig.html +4 -0
  355. package/website/versions/versions/0.1.2/index.html +20 -0
  356. package/website/versions/versions/0.1.2/modules.html +23 -0
  357. package/website/versions/versions/0.1.3/assets/highlight.css +64 -0
  358. package/website/versions/versions/0.1.3/assets/icons.css +1043 -0
  359. package/website/versions/versions/0.1.3/assets/icons.png +0 -0
  360. package/website/versions/versions/0.1.3/assets/icons@2x.png +0 -0
  361. package/website/versions/versions/0.1.3/assets/main.js +52 -0
  362. package/website/versions/versions/0.1.3/assets/search.js +1 -0
  363. package/website/versions/versions/0.1.3/assets/style.css +1341 -0
  364. package/website/versions/versions/0.1.3/assets/widgets.png +0 -0
  365. package/website/versions/versions/0.1.3/assets/widgets@2x.png +0 -0
  366. package/website/versions/versions/0.1.3/classes/TinyBig.html +4 -0
  367. package/website/versions/versions/0.1.3/index.html +53 -0
  368. package/website/versions/versions/0.1.3/modules.html +23 -0
  369. package/website/versions/versions/0.1.4/assets/highlight.css +64 -0
  370. package/website/versions/versions/0.1.4/assets/icons.css +1043 -0
  371. package/website/versions/versions/0.1.4/assets/icons.png +0 -0
  372. package/website/versions/versions/0.1.4/assets/icons@2x.png +0 -0
  373. package/website/versions/versions/0.1.4/assets/main.js +52 -0
  374. package/website/versions/versions/0.1.4/assets/search.js +1 -0
  375. package/website/versions/versions/0.1.4/assets/style.css +1341 -0
  376. package/website/versions/versions/0.1.4/assets/widgets.png +0 -0
  377. package/website/versions/versions/0.1.4/assets/widgets@2x.png +0 -0
  378. package/website/versions/versions/0.1.4/classes/TinyBig.html +4 -0
  379. package/website/versions/versions/0.1.4/index.html +58 -0
  380. package/website/versions/versions/0.1.4/modules.html +23 -0
  381. package/lib/cjs/classes/Contract.d.ts +0 -72
  382. package/lib/cjs/classes/Contract.js +0 -126
  383. package/lib/cjs/classes/test/Contract/crv-abi.d.ts +0 -2
  384. package/lib/cjs/classes/test/Contract/crv-abi.js +0 -488
  385. package/lib/cjs/classes/test/Contract/ens-abi.d.ts +0 -2
  386. package/lib/cjs/classes/test/Contract/ens-abi.js +0 -453
  387. package/lib/cjs/classes/test/Contract/fei-abi.d.ts +0 -2
  388. package/lib/cjs/classes/test/Contract/fei-abi.js +0 -526
  389. package/lib/cjs/classes/test/Contract/foo-abi.d.ts +0 -2
  390. package/lib/cjs/classes/test/Contract/foo-abi.js +0 -42
  391. package/lib/cjs/classes/test/Contract/uniswap-abi.d.ts +0 -2
  392. package/lib/cjs/classes/test/Contract/uniswap-abi.js +0 -121
  393. package/lib/cjs/classes/utils/clean-block.d.ts +0 -6
  394. package/lib/cjs/classes/utils/clean-block.js +0 -46
  395. package/lib/cjs/classes/utils/clean-transaction.d.ts +0 -5
  396. package/lib/cjs/classes/utils/clean-transaction.js +0 -38
  397. package/lib/cjs/classes/utils/encode-decode-transaction.d.ts +0 -3
  398. package/lib/cjs/classes/utils/encode-decode-transaction.js +0 -113
  399. package/lib/cjs/classes/utils/fetchers.d.ts +0 -9
  400. package/lib/cjs/classes/utils/fetchers.js +0 -33
  401. package/lib/cjs/classes/utils/hex-to-decimal.js +0 -11
  402. package/lib/cjs/index.d.ts +0 -12
  403. package/lib/cjs/index.js +0 -19
  404. package/lib/cjs/providers/JsonRpcProvider.d.ts +0 -22
  405. package/lib/cjs/providers/JsonRpcProvider.js +0 -69
  406. package/lib/cjs/providers/utils/chains-info.d.ts +0 -340
  407. package/lib/cjs/providers/utils/chains-info.js +0 -1021
  408. package/lib/cjs/shared/tiny-big/helpers.d.ts +0 -1
  409. package/lib/cjs/shared/tiny-big/helpers.js +0 -71
  410. package/lib/cjs/shared/tiny-big/tiny-big.d.ts +0 -19
  411. package/lib/cjs/shared/tiny-big/tiny-big.js +0 -41
  412. package/lib/cjs/shared/validate-type.d.ts +0 -3
  413. package/lib/cjs/shared/validate-type.js +0 -9
  414. package/lib/cjs/types/Block.types.d.ts +0 -47
  415. package/lib/cjs/types/Block.types.js +0 -2
  416. package/lib/cjs/types/Contract.types.d.ts +0 -24
  417. package/lib/cjs/types/Contract.types.js +0 -2
  418. package/lib/cjs/types/Network.types.d.ts +0 -8
  419. package/lib/cjs/types/Network.types.js +0 -2
  420. package/lib/cjs/types/Transaction.types.d.ts +0 -34
  421. package/lib/cjs/types/Transaction.types.js +0 -2
  422. package/lib/cjs/utils/ether-to-wei.js +0 -32
  423. package/lib/cjs/utils/is-address.d.ts +0 -5
  424. package/lib/cjs/utils/is-address.js +0 -20
  425. package/lib/cjs/utils/to-checksum-address.d.ts +0 -17
  426. package/lib/cjs/utils/to-checksum-address.js +0 -46
  427. package/lib/cjs/utils/wei-to-ether.js +0 -34
  428. package/lib/esm/classes/Contract.d.ts +0 -12
  429. package/lib/esm/classes/Contract.js +0 -63
  430. package/lib/esm/classes/test/Contract/crv-abi.d.ts +0 -2
  431. package/lib/esm/classes/test/Contract/crv-abi.js +0 -470
  432. package/lib/esm/classes/test/Contract/ens-abi.d.ts +0 -2
  433. package/lib/esm/classes/test/Contract/ens-abi.js +0 -435
  434. package/lib/esm/classes/test/Contract/fei-abi.d.ts +0 -2
  435. package/lib/esm/classes/test/Contract/fei-abi.js +0 -521
  436. package/lib/esm/classes/test/Contract/foo-abi.d.ts +0 -2
  437. package/lib/esm/classes/test/Contract/foo-abi.js +0 -33
  438. package/lib/esm/classes/test/Contract/uniswap-abi.d.ts +0 -2
  439. package/lib/esm/classes/test/Contract/uniswap-abi.js +0 -116
  440. package/lib/esm/classes/utils/clean-block.d.ts +0 -3
  441. package/lib/esm/classes/utils/clean-block.js +0 -35
  442. package/lib/esm/classes/utils/clean-transaction.d.ts +0 -2
  443. package/lib/esm/classes/utils/clean-transaction.js +0 -29
  444. package/lib/esm/classes/utils/encode-decode-transaction.d.ts +0 -3
  445. package/lib/esm/classes/utils/encode-decode-transaction.js +0 -98
  446. package/lib/esm/classes/utils/fetchers.d.ts +0 -9
  447. package/lib/esm/classes/utils/fetchers.js +0 -25
  448. package/lib/esm/classes/utils/hex-to-decimal.d.ts +0 -1
  449. package/lib/esm/classes/utils/hex-to-decimal.js +0 -3
  450. package/lib/esm/index.d.ts +0 -12
  451. package/lib/esm/index.js +0 -8
  452. package/lib/esm/providers/JsonRpcProvider.d.ts +0 -9
  453. package/lib/esm/providers/JsonRpcProvider.js +0 -49
  454. package/lib/esm/providers/utils/chains-info.d.ts +0 -340
  455. package/lib/esm/providers/utils/chains-info.js +0 -1017
  456. package/lib/esm/shared/tiny-big/helpers.d.ts +0 -1
  457. package/lib/esm/shared/tiny-big/helpers.js +0 -58
  458. package/lib/esm/shared/tiny-big/tiny-big.d.ts +0 -8
  459. package/lib/esm/shared/tiny-big/tiny-big.js +0 -22
  460. package/lib/esm/shared/validate-type.d.ts +0 -3
  461. package/lib/esm/shared/validate-type.js +0 -5
  462. package/lib/esm/types/Block.types.d.ts +0 -47
  463. package/lib/esm/types/Block.types.js +0 -1
  464. package/lib/esm/types/Contract.types.d.ts +0 -24
  465. package/lib/esm/types/Contract.types.js +0 -1
  466. package/lib/esm/types/Network.types.d.ts +0 -5
  467. package/lib/esm/types/Network.types.js +0 -1
  468. package/lib/esm/types/Transaction.types.d.ts +0 -34
  469. package/lib/esm/types/Transaction.types.js +0 -1
  470. package/lib/esm/utils/ether-to-wei.d.ts +0 -3
  471. package/lib/esm/utils/ether-to-wei.js +0 -7
  472. package/lib/esm/utils/is-address.d.ts +0 -1
  473. package/lib/esm/utils/is-address.js +0 -12
  474. package/lib/esm/utils/to-checksum-address.d.ts +0 -1
  475. package/lib/esm/utils/to-checksum-address.js +0 -25
  476. package/lib/esm/utils/wei-to-ether.d.ts +0 -3
  477. package/lib/esm/utils/wei-to-ether.js +0 -7
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cleanBlock = void 0;
4
- const __1 = require("../..");
5
- const clean_transaction_1 = require("./clean-transaction");
6
- const hex_to_decimal_1 = require("./hex-to-decimal");
7
- /**
8
- * Converts hex to decimal and checksum-addresses all addresses
9
- */
10
- function cleanBlock(block, returnTransactionObjects) {
11
- const cleanedBlock = Object.assign({}, block);
12
- Object.keys(block).forEach((key) => {
13
- // pending blocks have null instead of a difficulty
14
- // pending blocks have null instead of a miner address
15
- if (!block[key])
16
- return;
17
- switch (key) {
18
- case 'gasLimit':
19
- case 'gasUsed':
20
- case 'number':
21
- case 'size':
22
- case 'timestamp':
23
- case 'baseFeePerGas':
24
- cleanedBlock[key] = Number((0, hex_to_decimal_1.hexToDecimal)(block[key]));
25
- break;
26
- case 'difficulty':
27
- case 'totalDifficulty':
28
- cleanedBlock[key] = (0, hex_to_decimal_1.hexToDecimal)(block[key]);
29
- break;
30
- case 'miner':
31
- if (block[key]) {
32
- cleanedBlock[key] = (0, __1.toChecksumAddress)(block[key]);
33
- }
34
- break;
35
- }
36
- });
37
- // for all full transactions
38
- if (returnTransactionObjects) {
39
- // could be renamed "cleanTransaction" in the future
40
- cleanedBlock.transactions.forEach((transaction, index) => {
41
- cleanedBlock.transactions[index] = (0, clean_transaction_1.cleanTransaction)(transaction);
42
- });
43
- }
44
- return cleanedBlock;
45
- }
46
- exports.cleanBlock = cleanBlock;
@@ -1,5 +0,0 @@
1
- import { RPCTransaction, Transaction } from '../../types/Transaction.types';
2
- /**
3
- * Converts hex to decimal and checksum-addresses all addresses
4
- */
5
- export declare function cleanTransaction(transaction: RPCTransaction): Transaction;
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cleanTransaction = void 0;
4
- const __1 = require("../..");
5
- const hex_to_decimal_1 = require("./hex-to-decimal");
6
- /**
7
- * Converts hex to decimal and checksum-addresses all addresses
8
- */
9
- function cleanTransaction(transaction) {
10
- const cleanedTransaction = Object.assign({}, transaction);
11
- Object.keys(transaction).forEach((key) => {
12
- // pending blocks have null instead of a difficulty
13
- // pending blocks have null instead of a miner address
14
- if (!transaction[key])
15
- return;
16
- switch (key) {
17
- case 'blockNumber':
18
- case 'gas':
19
- case 'nonce':
20
- case 'transactionIndex':
21
- case 'type':
22
- cleanedTransaction[key] = Number((0, hex_to_decimal_1.hexToDecimal)(transaction[key]));
23
- break;
24
- case 'gasPrice':
25
- case 'value':
26
- cleanedTransaction[key] = (0, hex_to_decimal_1.hexToDecimal)(transaction[key]);
27
- break;
28
- case 'from':
29
- case 'to':
30
- if (transaction[key]) {
31
- cleanedTransaction[key] = (0, __1.toChecksumAddress)(transaction[key]);
32
- }
33
- break;
34
- }
35
- });
36
- return cleanedTransaction;
37
- }
38
- exports.cleanTransaction = cleanTransaction;
@@ -1,3 +0,0 @@
1
- import { JSONABIArgument } from '../../types/Contract.types';
2
- export declare function encodeData(jsonABIArgument: JSONABIArgument, args: any[]): string;
3
- export declare function decodeRPCResponse(jsonABIArgument: JSONABIArgument, nodeResponse: string): string | number | boolean | import("../..").TinyBig | (string | number | boolean | import("../..").TinyBig)[];
@@ -1,113 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decodeRPCResponse = exports.encodeData = void 0;
4
- const sha3_1 = require("sha3");
5
- const __1 = require("../..");
6
- const hex_to_decimal_1 = require("./hex-to-decimal");
7
- const hexTrue = '0000000000000000000000000000000000000000000000000000000000000001';
8
- const hexFalse = '0000000000000000000000000000000000000000000000000000000000000000';
9
- function expandType(type) {
10
- // https://docs.soliditylang.org/en/v0.8.7/types.html#integers
11
- if (type === 'uint[]') {
12
- return 'uint256[]';
13
- }
14
- else if (type === 'int[]') {
15
- return 'int256[]';
16
- }
17
- return type;
18
- }
19
- function encodeData(jsonABIArgument, args) {
20
- const hash = new sha3_1.Keccak(256);
21
- /* first 4 bytes will create the data parameter */
22
- const functionString = `${jsonABIArgument.name}(${jsonABIArgument.inputs.map((input) => expandType(input.type))})`;
23
- // encoding learnt from https://ethereum.stackexchange.com/questions/3514/how-to-call-a-contract-method-using-the-eth-call-json-rpc-api
24
- const functionHash = hash.update(functionString).digest('hex');
25
- // no arrays
26
- const jsonABIInputsLength = jsonABIArgument.inputs.length;
27
- let shouldValidateInputLength = true;
28
- // inputs contains 1 or more arrays
29
- if (jsonABIArgument.inputs.find((input) => input.type.includes('['))) {
30
- shouldValidateInputLength = false;
31
- }
32
- if (shouldValidateInputLength && args.length !== jsonABIInputsLength) {
33
- throw new Error(`args inputs of "${args.length}" does not match expected length of "${jsonABIArgument.inputs.length}"`);
34
- }
35
- const argsWithTypes = (jsonABIArgument.inputs || []).reduce((acc, input, i) => {
36
- var _a;
37
- if (input.type.includes('[')) {
38
- // strip array and length like "[2]" from type
39
- const basicType = (_a = /([^[]*)\[.*$/g.exec(input.type)) === null || _a === void 0 ? void 0 : _a[1];
40
- args.forEach((arg) => {
41
- acc = acc.concat([[arg, basicType]]);
42
- });
43
- return acc;
44
- }
45
- else {
46
- return acc.concat([[args[i], input.type]]);
47
- }
48
- }, []);
49
- const encodedArgs = argsWithTypes.map(([arg, inputType]) => {
50
- let rawArg = arg;
51
- switch (inputType) {
52
- case 'bool':
53
- return arg ? hexTrue : hexFalse;
54
- case 'address':
55
- // remove leading "0x"
56
- rawArg = arg.replace(/^0x/g, '').toLowerCase();
57
- break;
58
- default:
59
- if (inputType.startsWith('bytes')) {
60
- // encode each character to hex
61
- const argEncoded = rawArg
62
- .split('')
63
- .map((character) => character.charCodeAt(0).toString(16))
64
- .join('');
65
- const paddedEncodedArg = argEncoded.padEnd(64, '0');
66
- return paddedEncodedArg;
67
- }
68
- else if (inputType === 'uint256') {
69
- const argEncoded = BigInt(arg).toString(16);
70
- const paddedEncodedArg = argEncoded.padStart(64, '0');
71
- return paddedEncodedArg;
72
- }
73
- else if (inputType.startsWith('uint')) {
74
- break;
75
- }
76
- else {
77
- throw new Error(`essential-eth does not yet support "${inputType}" inputs. Make a PR today!"`);
78
- }
79
- }
80
- const argEncoded = rawArg.toString(16);
81
- const paddedEncodedArg = argEncoded.padStart(64, '0');
82
- return paddedEncodedArg;
83
- });
84
- const functionEncoded = functionHash.slice(0, 8);
85
- const data = `0x${functionEncoded}${encodedArgs.join('')}`;
86
- return data;
87
- }
88
- exports.encodeData = encodeData;
89
- function decodeRPCResponse(jsonABIArgument, nodeResponse) {
90
- const rawOutputs = jsonABIArgument.outputs;
91
- // chunk response every 64 characters
92
- const encodedOutputs = nodeResponse.slice(2).match(/.{1,64}/g);
93
- const outputs = (encodedOutputs || []).map((output, i) => {
94
- const outputType = (rawOutputs || [])[i].type;
95
- switch (outputType) {
96
- case 'bool':
97
- return output === hexTrue;
98
- case 'address':
99
- /* address types have 26 leading zeroes to remove */
100
- return (0, __1.toChecksumAddress)(`0x${output.slice(24)}`);
101
- case 'uint256':
102
- return (0, __1.tinyBig)((0, hex_to_decimal_1.hexToDecimal)(`0x${output}`));
103
- case 'bytes32':
104
- return `0x${output}`;
105
- case 'uint8':
106
- return Number((0, hex_to_decimal_1.hexToDecimal)(`0x${output}`));
107
- default:
108
- throw new Error(`essential-eth does not yet support "${outputType}" outputs. Make a PR today!"`);
109
- }
110
- });
111
- return outputs.length === 1 ? outputs[0] : outputs;
112
- }
113
- exports.decodeRPCResponse = decodeRPCResponse;
@@ -1,9 +0,0 @@
1
- export declare function post(url: string, body: Record<string, unknown>): Promise<any>;
2
- declare type RPCMethodName = 'eth_getBlockByNumber' | 'eth_call' | 'eth_chainId';
3
- export declare function buildRPCPostBody(method: RPCMethodName, params: any[]): {
4
- jsonrpc: string;
5
- id: number;
6
- method: RPCMethodName;
7
- params: any[];
8
- };
9
- export {};
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.buildRPCPostBody = exports.post = void 0;
7
- const isomorphic_unfetch_1 = __importDefault(require("isomorphic-unfetch"));
8
- function post(url, body) {
9
- return (0, isomorphic_unfetch_1.default)(url, {
10
- method: 'POST',
11
- headers: {
12
- 'Content-Type': 'application/json',
13
- },
14
- body: JSON.stringify(body),
15
- })
16
- .then((r) => r.json())
17
- .then((response) => {
18
- if (response.error) {
19
- throw new Error(response.error);
20
- }
21
- return response.result;
22
- });
23
- }
24
- exports.post = post;
25
- function buildRPCPostBody(method, params) {
26
- return {
27
- jsonrpc: '2.0',
28
- id: 1,
29
- method,
30
- params,
31
- };
32
- }
33
- exports.buildRPCPostBody = buildRPCPostBody;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hexToDecimal = void 0;
4
- /**
5
- * Converts a hexadecimal string it's decimal equivalent.
6
- * This is needed instead of parseInt because parseInt loses precision
7
- */
8
- function hexToDecimal(hex) {
9
- return BigInt(hex).toString();
10
- }
11
- exports.hexToDecimal = hexToDecimal;
@@ -1,12 +0,0 @@
1
- import { Contract } from './classes/Contract';
2
- import { JsonRpcProvider, jsonRpcProvider } from './providers/JsonRpcProvider';
3
- import { tinyBig, TinyBig } from './shared/tiny-big/tiny-big';
4
- import { Block } from './types/Block.types';
5
- import { ContractTypes, JSONABI, JSONABIArgument } from './types/Contract.types';
6
- import { Network } from './types/Network.types';
7
- import { Transaction } from './types/Transaction.types';
8
- import { etherToWei } from './utils/ether-to-wei';
9
- import { isAddress } from './utils/is-address';
10
- import { toChecksumAddress } from './utils/to-checksum-address';
11
- import { weiToEther } from './utils/wei-to-ether';
12
- export { etherToWei, isAddress, jsonRpcProvider, JsonRpcProvider, tinyBig, toChecksumAddress, weiToEther, Contract, TinyBig, Block, ContractTypes, JSONABI, JSONABIArgument, Network, Transaction, };
package/lib/cjs/index.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TinyBig = exports.Contract = exports.weiToEther = exports.toChecksumAddress = exports.tinyBig = exports.JsonRpcProvider = exports.jsonRpcProvider = exports.isAddress = exports.etherToWei = void 0;
4
- const Contract_1 = require("./classes/Contract");
5
- Object.defineProperty(exports, "Contract", { enumerable: true, get: function () { return Contract_1.Contract; } });
6
- const JsonRpcProvider_1 = require("./providers/JsonRpcProvider");
7
- Object.defineProperty(exports, "JsonRpcProvider", { enumerable: true, get: function () { return JsonRpcProvider_1.JsonRpcProvider; } });
8
- Object.defineProperty(exports, "jsonRpcProvider", { enumerable: true, get: function () { return JsonRpcProvider_1.jsonRpcProvider; } });
9
- const tiny_big_1 = require("./shared/tiny-big/tiny-big");
10
- Object.defineProperty(exports, "tinyBig", { enumerable: true, get: function () { return tiny_big_1.tinyBig; } });
11
- Object.defineProperty(exports, "TinyBig", { enumerable: true, get: function () { return tiny_big_1.TinyBig; } });
12
- const ether_to_wei_1 = require("./utils/ether-to-wei");
13
- Object.defineProperty(exports, "etherToWei", { enumerable: true, get: function () { return ether_to_wei_1.etherToWei; } });
14
- const is_address_1 = require("./utils/is-address");
15
- Object.defineProperty(exports, "isAddress", { enumerable: true, get: function () { return is_address_1.isAddress; } });
16
- const to_checksum_address_1 = require("./utils/to-checksum-address");
17
- Object.defineProperty(exports, "toChecksumAddress", { enumerable: true, get: function () { return to_checksum_address_1.toChecksumAddress; } });
18
- const wei_to_ether_1 = require("./utils/wei-to-ether");
19
- Object.defineProperty(exports, "weiToEther", { enumerable: true, get: function () { return wei_to_ether_1.weiToEther; } });
@@ -1,22 +0,0 @@
1
- import { Block } from '../types/Block.types';
2
- import { Network } from '../types/Network.types';
3
- export declare class JsonRpcProvider {
4
- /**
5
- * The URL to your Eth node. Consider POKT or Infura
6
- */
7
- _rpcUrl: string;
8
- constructor(rpcUrl?: string);
9
- /**
10
- * Returns the block requested
11
- * Same as `web3.eth.getBlock`
12
- */
13
- getBlock(timeFrame: 'latest' | 'earliest' | 'pending' | number, returnTransactionObjects?: boolean): Promise<Block>;
14
- /**
15
- * Returns the network this provider is connected to
16
- */
17
- getNetwork(): Promise<Network>;
18
- }
19
- /**
20
- * Helper function to avoid "new"
21
- */
22
- export declare function jsonRpcProvider(rpcUrl?: string): JsonRpcProvider;
@@ -1,69 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.jsonRpcProvider = exports.JsonRpcProvider = void 0;
16
- const clean_block_1 = require("../classes/utils/clean-block");
17
- const fetchers_1 = require("../classes/utils/fetchers");
18
- const hex_to_decimal_1 = require("../classes/utils/hex-to-decimal");
19
- const chains_info_1 = __importDefault(require("./utils/chains-info"));
20
- class JsonRpcProvider {
21
- constructor(rpcUrl) {
22
- this._rpcUrl = rpcUrl || 'https://free-eth-node.com/api/eth';
23
- }
24
- /**
25
- * Returns the block requested
26
- * Same as `web3.eth.getBlock`
27
- */
28
- getBlock(timeFrame /* block number as integer */, returnTransactionObjects = false) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- let rpcTimeFrame;
31
- if (typeof timeFrame === 'number') {
32
- // exact block numbers require hex string format
33
- rpcTimeFrame = `0x${timeFrame.toString(16)}`;
34
- }
35
- else {
36
- // "latest", "earliest", and "pending" require no manipulation
37
- rpcTimeFrame = timeFrame;
38
- }
39
- const nodeResponse = (yield (0, fetchers_1.post)(this._rpcUrl, (0, fetchers_1.buildRPCPostBody)('eth_getBlockByNumber', [
40
- rpcTimeFrame,
41
- returnTransactionObjects,
42
- ])));
43
- return (0, clean_block_1.cleanBlock)(nodeResponse, returnTransactionObjects);
44
- });
45
- }
46
- /**
47
- * Returns the network this provider is connected to
48
- */
49
- getNetwork() {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- const nodeResponse = (yield (0, fetchers_1.post)(this._rpcUrl, (0, fetchers_1.buildRPCPostBody)('eth_chainId', [])));
52
- const chainId = (0, hex_to_decimal_1.hexToDecimal)(nodeResponse);
53
- const info = chains_info_1.default[chainId];
54
- return {
55
- chainId: Number(chainId),
56
- name: info[0] || 'unknown',
57
- ensAddress: info[1] || null, // only send ensAddress if it exists
58
- };
59
- });
60
- }
61
- }
62
- exports.JsonRpcProvider = JsonRpcProvider;
63
- /**
64
- * Helper function to avoid "new"
65
- */
66
- function jsonRpcProvider(rpcUrl) {
67
- return new JsonRpcProvider(rpcUrl);
68
- }
69
- exports.jsonRpcProvider = jsonRpcProvider;