essential-eth 0.4.9-beta.0 → 0.4.9-beta.3

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