@leofcoin/chain 1.0.21 → 1.0.24

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 (413) hide show
  1. package/.jsdoc.json +1 -1
  2. package/dist/chain.browser.js +28552 -17092
  3. package/dist/chain.js +477 -121
  4. package/dist/node.browser.js +8815 -66914
  5. package/dist/node.js +1 -1
  6. package/dist/pako.browser.js +6731 -0
  7. package/dist/protons.browser.js +11429 -0
  8. package/dist/wrtc.browser.js +28 -0
  9. package/docs/@leofcoin/chain/{1.0.16 → 1.0.22}/chain.js.html +267 -114
  10. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/contracts_factory.js.html +3 -3
  11. package/docs/@leofcoin/chain/{1.0.13 → 1.0.22}/contracts_nameService.js.html +3 -3
  12. package/docs/@leofcoin/chain/{1.0.13 → 1.0.22}/contracts_proxies_factoryProxy.js.html +3 -3
  13. package/docs/@leofcoin/chain/{1.0.13 → 1.0.22}/contracts_proxies_nameServiceProxy.js.html +3 -3
  14. package/docs/@leofcoin/chain/{1.0.13 → 1.0.22}/contracts_proxies_nativeTokenProxy.js.html +3 -3
  15. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/contracts_proxies_validatorsProxy.js.html +3 -3
  16. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/contracts_proxies_votingProxy.js.html +3 -3
  17. package/docs/@leofcoin/chain/{1.0.14 → 1.0.22}/contracts_validators.js.html +3 -3
  18. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Bold-webfont.eot +0 -0
  19. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Bold-webfont.svg +0 -0
  20. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Bold-webfont.woff +0 -0
  21. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  22. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-BoldItalic-webfont.svg +0 -0
  23. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  24. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Italic-webfont.eot +0 -0
  25. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Italic-webfont.svg +0 -0
  26. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Italic-webfont.woff +0 -0
  27. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Light-webfont.eot +0 -0
  28. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Light-webfont.svg +0 -0
  29. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Light-webfont.woff +0 -0
  30. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  31. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-LightItalic-webfont.svg +0 -0
  32. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  33. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Regular-webfont.eot +0 -0
  34. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Regular-webfont.svg +0 -0
  35. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Regular-webfont.woff +0 -0
  36. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Semibold-webfont.eot +0 -0
  37. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Semibold-webfont.svg +0 -0
  38. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  39. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Semibold-webfont.woff +0 -0
  40. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  41. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -0
  42. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  43. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  44. package/docs/@leofcoin/chain/{1.0.15 → 1.0.22}/global.html +687 -35
  45. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/icons/home.svg +0 -0
  46. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/icons/search.svg +0 -0
  47. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/index.html +3 -3
  48. package/docs/@leofcoin/chain/{1.0.14 → 1.0.22}/machine.js.html +18 -14
  49. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/scripts/linenumber.js +0 -0
  50. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/scripts/pagelocation.js +0 -0
  51. package/docs/@leofcoin/chain/{1.0.14 → 1.0.22}/standards_roles.js.html +3 -3
  52. package/docs/@leofcoin/chain/{1.0.14 → 1.0.22}/standards_token.js.html +3 -3
  53. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/styles/collapse.css +0 -0
  54. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/styles/jsdoc-default.css +0 -0
  55. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/styles/prettify-jsdoc.css +0 -0
  56. package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/styles/prettify-tomorrow.css +0 -0
  57. package/docs/@leofcoin/chain/{1.0.14 → 1.0.24}/chain.js.html +267 -114
  58. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/contracts_factory.js.html +3 -3
  59. package/docs/@leofcoin/chain/{1.0.12 → 1.0.24}/contracts_nameService.js.html +3 -3
  60. package/docs/@leofcoin/chain/{1.0.14 → 1.0.24}/contracts_proxies_factoryProxy.js.html +3 -3
  61. package/docs/@leofcoin/chain/{1.0.14 → 1.0.24}/contracts_proxies_nameServiceProxy.js.html +3 -3
  62. package/docs/@leofcoin/chain/{1.0.12 → 1.0.24}/contracts_proxies_nativeTokenProxy.js.html +3 -3
  63. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/contracts_proxies_validatorsProxy.js.html +3 -3
  64. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/contracts_proxies_votingProxy.js.html +3 -3
  65. package/docs/@leofcoin/chain/{1.0.15 → 1.0.24}/contracts_validators.js.html +3 -3
  66. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Bold-webfont.eot +0 -0
  67. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Bold-webfont.svg +0 -0
  68. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Bold-webfont.woff +0 -0
  69. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  70. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-BoldItalic-webfont.svg +0 -0
  71. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  72. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Italic-webfont.eot +0 -0
  73. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Italic-webfont.svg +0 -0
  74. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Italic-webfont.woff +0 -0
  75. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Light-webfont.eot +0 -0
  76. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Light-webfont.svg +0 -0
  77. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Light-webfont.woff +0 -0
  78. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  79. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-LightItalic-webfont.svg +0 -0
  80. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  81. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Regular-webfont.eot +0 -0
  82. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Regular-webfont.svg +0 -0
  83. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Regular-webfont.woff +0 -0
  84. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Semibold-webfont.eot +0 -0
  85. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Semibold-webfont.svg +0 -0
  86. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  87. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Semibold-webfont.woff +0 -0
  88. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  89. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -0
  90. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  91. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  92. package/docs/@leofcoin/chain/{1.0.12 → 1.0.24}/global.html +687 -35
  93. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/icons/home.svg +0 -0
  94. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/icons/search.svg +0 -0
  95. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/index.html +3 -3
  96. package/docs/@leofcoin/chain/{1.0.15 → 1.0.24}/machine.js.html +18 -14
  97. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/scripts/linenumber.js +0 -0
  98. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/scripts/pagelocation.js +0 -0
  99. package/docs/@leofcoin/chain/{1.0.12 → 1.0.24}/standards_roles.js.html +3 -3
  100. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/standards_token.js.html +3 -3
  101. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/styles/collapse.css +0 -0
  102. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/styles/jsdoc-default.css +0 -0
  103. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/styles/prettify-jsdoc.css +0 -0
  104. package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/styles/prettify-tomorrow.css +0 -0
  105. package/package.json +55 -52
  106. package/rollup.config.js +9 -2
  107. package/src/chain.js +264 -111
  108. package/src/config/config.js +6 -2
  109. package/src/machine.js +15 -11
  110. package/src/node.js +2 -35
  111. package/src/state.js +8 -3
  112. package/src/transactions/transaction.js +3 -0
  113. package/test/chain.js +39 -60
  114. package/webpack.config.js +10 -140
  115. package/dist/browser/peernet.js +0 -101516
  116. package/dist/chain.browser.js.tmp-browserify-65536332430764332457 +0 -0
  117. package/dist/chain.browser.js.tmp-browserify-77283953363424018335 +0 -0
  118. package/dist/chain.browser.min.js +0 -2
  119. package/dist/chain.browser.min.js.LICENSE.txt +0 -10
  120. package/dist/lib.browser.js +0 -16966
  121. package/dist/native.js +0 -1
  122. package/dist/node.browser.min.js +0 -2
  123. package/dist/node.browser.min.js.LICENSE.txt +0 -12
  124. package/dist/token/native.js +0 -1
  125. package/dist/token.js +0 -1
  126. package/docs/@leofcoin/chain/1.0.12/chain.js.html +0 -738
  127. package/docs/@leofcoin/chain/1.0.12/contracts_proxies_factoryProxy.js.html +0 -135
  128. package/docs/@leofcoin/chain/1.0.12/contracts_proxies_nameServiceProxy.js.html +0 -135
  129. package/docs/@leofcoin/chain/1.0.12/contracts_validators.js.html +0 -242
  130. package/docs/@leofcoin/chain/1.0.12/machine.js.html +0 -252
  131. package/docs/@leofcoin/chain/1.0.12/standards_token.js.html +0 -260
  132. package/docs/@leofcoin/chain/1.0.13/chain.js.html +0 -738
  133. package/docs/@leofcoin/chain/1.0.13/contracts_validators.js.html +0 -242
  134. package/docs/@leofcoin/chain/1.0.13/global.html +0 -1153
  135. package/docs/@leofcoin/chain/1.0.13/machine.js.html +0 -251
  136. package/docs/@leofcoin/chain/1.0.13/standards_roles.js.html +0 -188
  137. package/docs/@leofcoin/chain/1.0.14/contracts_factory.js.html +0 -182
  138. package/docs/@leofcoin/chain/1.0.14/contracts_nameService.js.html +0 -231
  139. package/docs/@leofcoin/chain/1.0.14/contracts_proxies_nativeTokenProxy.js.html +0 -135
  140. package/docs/@leofcoin/chain/1.0.14/contracts_proxies_validatorsProxy.js.html +0 -135
  141. package/docs/@leofcoin/chain/1.0.14/contracts_proxies_votingProxy.js.html +0 -135
  142. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Bold-webfont.eot +0 -0
  143. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Bold-webfont.svg +0 -1830
  144. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Bold-webfont.woff +0 -0
  145. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  146. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  147. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  148. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Italic-webfont.eot +0 -0
  149. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Italic-webfont.svg +0 -1830
  150. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Italic-webfont.woff +0 -0
  151. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Light-webfont.eot +0 -0
  152. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Light-webfont.svg +0 -1831
  153. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Light-webfont.woff +0 -0
  154. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  155. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  156. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  157. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Regular-webfont.eot +0 -0
  158. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Regular-webfont.svg +0 -1831
  159. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Regular-webfont.woff +0 -0
  160. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Semibold-webfont.eot +0 -0
  161. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  162. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  163. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Semibold-webfont.woff +0 -0
  164. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  165. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  166. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  167. package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  168. package/docs/@leofcoin/chain/1.0.14/global.html +0 -1153
  169. package/docs/@leofcoin/chain/1.0.14/icons/home.svg +0 -4
  170. package/docs/@leofcoin/chain/1.0.14/icons/search.svg +0 -4
  171. package/docs/@leofcoin/chain/1.0.14/index.html +0 -125
  172. package/docs/@leofcoin/chain/1.0.14/scripts/linenumber.js +0 -23
  173. package/docs/@leofcoin/chain/1.0.14/scripts/pagelocation.js +0 -89
  174. package/docs/@leofcoin/chain/1.0.14/styles/collapse.css +0 -27
  175. package/docs/@leofcoin/chain/1.0.14/styles/jsdoc-default.css +0 -953
  176. package/docs/@leofcoin/chain/1.0.14/styles/prettify-jsdoc.css +0 -111
  177. package/docs/@leofcoin/chain/1.0.14/styles/prettify-tomorrow.css +0 -138
  178. package/docs/@leofcoin/chain/1.0.15/chain.js.html +0 -738
  179. package/docs/@leofcoin/chain/1.0.15/contracts_factory.js.html +0 -182
  180. package/docs/@leofcoin/chain/1.0.15/contracts_nameService.js.html +0 -231
  181. package/docs/@leofcoin/chain/1.0.15/contracts_proxies_factoryProxy.js.html +0 -135
  182. package/docs/@leofcoin/chain/1.0.15/contracts_proxies_nameServiceProxy.js.html +0 -135
  183. package/docs/@leofcoin/chain/1.0.15/contracts_proxies_nativeTokenProxy.js.html +0 -135
  184. package/docs/@leofcoin/chain/1.0.15/contracts_proxies_validatorsProxy.js.html +0 -135
  185. package/docs/@leofcoin/chain/1.0.15/contracts_proxies_votingProxy.js.html +0 -135
  186. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Bold-webfont.eot +0 -0
  187. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Bold-webfont.svg +0 -1830
  188. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Bold-webfont.woff +0 -0
  189. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  190. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  191. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  192. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Italic-webfont.eot +0 -0
  193. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Italic-webfont.svg +0 -1830
  194. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Italic-webfont.woff +0 -0
  195. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Light-webfont.eot +0 -0
  196. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Light-webfont.svg +0 -1831
  197. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Light-webfont.woff +0 -0
  198. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  199. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  200. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  201. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Regular-webfont.eot +0 -0
  202. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Regular-webfont.svg +0 -1831
  203. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Regular-webfont.woff +0 -0
  204. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Semibold-webfont.eot +0 -0
  205. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  206. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  207. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Semibold-webfont.woff +0 -0
  208. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  209. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  210. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  211. package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  212. package/docs/@leofcoin/chain/1.0.15/icons/home.svg +0 -4
  213. package/docs/@leofcoin/chain/1.0.15/icons/search.svg +0 -4
  214. package/docs/@leofcoin/chain/1.0.15/index.html +0 -125
  215. package/docs/@leofcoin/chain/1.0.15/scripts/linenumber.js +0 -23
  216. package/docs/@leofcoin/chain/1.0.15/scripts/pagelocation.js +0 -89
  217. package/docs/@leofcoin/chain/1.0.15/standards_roles.js.html +0 -188
  218. package/docs/@leofcoin/chain/1.0.15/standards_token.js.html +0 -260
  219. package/docs/@leofcoin/chain/1.0.15/styles/collapse.css +0 -27
  220. package/docs/@leofcoin/chain/1.0.15/styles/jsdoc-default.css +0 -953
  221. package/docs/@leofcoin/chain/1.0.15/styles/prettify-jsdoc.css +0 -111
  222. package/docs/@leofcoin/chain/1.0.15/styles/prettify-tomorrow.css +0 -138
  223. package/docs/@leofcoin/chain/1.0.16/contracts_factory.js.html +0 -182
  224. package/docs/@leofcoin/chain/1.0.16/contracts_nameService.js.html +0 -231
  225. package/docs/@leofcoin/chain/1.0.16/contracts_proxies_factoryProxy.js.html +0 -135
  226. package/docs/@leofcoin/chain/1.0.16/contracts_proxies_nameServiceProxy.js.html +0 -135
  227. package/docs/@leofcoin/chain/1.0.16/contracts_proxies_nativeTokenProxy.js.html +0 -135
  228. package/docs/@leofcoin/chain/1.0.16/contracts_proxies_validatorsProxy.js.html +0 -135
  229. package/docs/@leofcoin/chain/1.0.16/contracts_proxies_votingProxy.js.html +0 -135
  230. package/docs/@leofcoin/chain/1.0.16/contracts_validators.js.html +0 -242
  231. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Bold-webfont.eot +0 -0
  232. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Bold-webfont.svg +0 -1830
  233. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Bold-webfont.woff +0 -0
  234. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  235. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  236. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  237. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Italic-webfont.eot +0 -0
  238. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Italic-webfont.svg +0 -1830
  239. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Italic-webfont.woff +0 -0
  240. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Light-webfont.eot +0 -0
  241. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Light-webfont.svg +0 -1831
  242. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Light-webfont.woff +0 -0
  243. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  244. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  245. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  246. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Regular-webfont.eot +0 -0
  247. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Regular-webfont.svg +0 -1831
  248. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Regular-webfont.woff +0 -0
  249. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Semibold-webfont.eot +0 -0
  250. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  251. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  252. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Semibold-webfont.woff +0 -0
  253. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  254. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  255. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  256. package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  257. package/docs/@leofcoin/chain/1.0.16/global.html +0 -1153
  258. package/docs/@leofcoin/chain/1.0.16/icons/home.svg +0 -4
  259. package/docs/@leofcoin/chain/1.0.16/icons/search.svg +0 -4
  260. package/docs/@leofcoin/chain/1.0.16/index.html +0 -125
  261. package/docs/@leofcoin/chain/1.0.16/machine.js.html +0 -251
  262. package/docs/@leofcoin/chain/1.0.16/scripts/linenumber.js +0 -23
  263. package/docs/@leofcoin/chain/1.0.16/scripts/pagelocation.js +0 -89
  264. package/docs/@leofcoin/chain/1.0.16/standards_roles.js.html +0 -188
  265. package/docs/@leofcoin/chain/1.0.16/standards_token.js.html +0 -260
  266. package/docs/@leofcoin/chain/1.0.16/styles/collapse.css +0 -27
  267. package/docs/@leofcoin/chain/1.0.16/styles/jsdoc-default.css +0 -953
  268. package/docs/@leofcoin/chain/1.0.16/styles/prettify-jsdoc.css +0 -111
  269. package/docs/@leofcoin/chain/1.0.16/styles/prettify-tomorrow.css +0 -138
  270. package/docs/@leofcoin/chain/1.0.17/chain.js.html +0 -738
  271. package/docs/@leofcoin/chain/1.0.17/contracts_factory.js.html +0 -182
  272. package/docs/@leofcoin/chain/1.0.17/contracts_nameService.js.html +0 -231
  273. package/docs/@leofcoin/chain/1.0.17/contracts_proxies_factoryProxy.js.html +0 -135
  274. package/docs/@leofcoin/chain/1.0.17/contracts_proxies_nameServiceProxy.js.html +0 -135
  275. package/docs/@leofcoin/chain/1.0.17/contracts_proxies_nativeTokenProxy.js.html +0 -135
  276. package/docs/@leofcoin/chain/1.0.17/contracts_proxies_validatorsProxy.js.html +0 -135
  277. package/docs/@leofcoin/chain/1.0.17/contracts_proxies_votingProxy.js.html +0 -135
  278. package/docs/@leofcoin/chain/1.0.17/contracts_validators.js.html +0 -242
  279. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Bold-webfont.eot +0 -0
  280. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Bold-webfont.svg +0 -1830
  281. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Bold-webfont.woff +0 -0
  282. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  283. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  284. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  285. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Italic-webfont.eot +0 -0
  286. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Italic-webfont.svg +0 -1830
  287. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Italic-webfont.woff +0 -0
  288. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Light-webfont.eot +0 -0
  289. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Light-webfont.svg +0 -1831
  290. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Light-webfont.woff +0 -0
  291. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  292. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  293. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  294. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Regular-webfont.eot +0 -0
  295. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Regular-webfont.svg +0 -1831
  296. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Regular-webfont.woff +0 -0
  297. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Semibold-webfont.eot +0 -0
  298. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  299. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  300. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Semibold-webfont.woff +0 -0
  301. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  302. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  303. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  304. package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  305. package/docs/@leofcoin/chain/1.0.17/global.html +0 -1153
  306. package/docs/@leofcoin/chain/1.0.17/icons/home.svg +0 -4
  307. package/docs/@leofcoin/chain/1.0.17/icons/search.svg +0 -4
  308. package/docs/@leofcoin/chain/1.0.17/index.html +0 -125
  309. package/docs/@leofcoin/chain/1.0.17/machine.js.html +0 -251
  310. package/docs/@leofcoin/chain/1.0.17/scripts/linenumber.js +0 -23
  311. package/docs/@leofcoin/chain/1.0.17/scripts/pagelocation.js +0 -89
  312. package/docs/@leofcoin/chain/1.0.17/standards_roles.js.html +0 -188
  313. package/docs/@leofcoin/chain/1.0.17/standards_token.js.html +0 -260
  314. package/docs/@leofcoin/chain/1.0.17/styles/collapse.css +0 -27
  315. package/docs/@leofcoin/chain/1.0.17/styles/jsdoc-default.css +0 -953
  316. package/docs/@leofcoin/chain/1.0.17/styles/prettify-jsdoc.css +0 -111
  317. package/docs/@leofcoin/chain/1.0.17/styles/prettify-tomorrow.css +0 -138
  318. package/docs/@leofcoin/chain/1.0.18/chain.js.html +0 -738
  319. package/docs/@leofcoin/chain/1.0.18/contracts_factory.js.html +0 -182
  320. package/docs/@leofcoin/chain/1.0.18/contracts_nameService.js.html +0 -231
  321. package/docs/@leofcoin/chain/1.0.18/contracts_proxies_factoryProxy.js.html +0 -135
  322. package/docs/@leofcoin/chain/1.0.18/contracts_proxies_nameServiceProxy.js.html +0 -135
  323. package/docs/@leofcoin/chain/1.0.18/contracts_proxies_nativeTokenProxy.js.html +0 -135
  324. package/docs/@leofcoin/chain/1.0.18/contracts_proxies_validatorsProxy.js.html +0 -135
  325. package/docs/@leofcoin/chain/1.0.18/contracts_proxies_votingProxy.js.html +0 -135
  326. package/docs/@leofcoin/chain/1.0.18/contracts_validators.js.html +0 -242
  327. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Bold-webfont.eot +0 -0
  328. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Bold-webfont.svg +0 -1830
  329. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Bold-webfont.woff +0 -0
  330. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  331. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  332. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  333. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Italic-webfont.eot +0 -0
  334. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Italic-webfont.svg +0 -1830
  335. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Italic-webfont.woff +0 -0
  336. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Light-webfont.eot +0 -0
  337. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Light-webfont.svg +0 -1831
  338. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Light-webfont.woff +0 -0
  339. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  340. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  341. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  342. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Regular-webfont.eot +0 -0
  343. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Regular-webfont.svg +0 -1831
  344. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Regular-webfont.woff +0 -0
  345. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Semibold-webfont.eot +0 -0
  346. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  347. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  348. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Semibold-webfont.woff +0 -0
  349. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  350. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  351. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  352. package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  353. package/docs/@leofcoin/chain/1.0.18/global.html +0 -1153
  354. package/docs/@leofcoin/chain/1.0.18/icons/home.svg +0 -4
  355. package/docs/@leofcoin/chain/1.0.18/icons/search.svg +0 -4
  356. package/docs/@leofcoin/chain/1.0.18/index.html +0 -125
  357. package/docs/@leofcoin/chain/1.0.18/machine.js.html +0 -251
  358. package/docs/@leofcoin/chain/1.0.18/scripts/linenumber.js +0 -23
  359. package/docs/@leofcoin/chain/1.0.18/scripts/pagelocation.js +0 -89
  360. package/docs/@leofcoin/chain/1.0.18/standards_roles.js.html +0 -188
  361. package/docs/@leofcoin/chain/1.0.18/standards_token.js.html +0 -260
  362. package/docs/@leofcoin/chain/1.0.18/styles/collapse.css +0 -27
  363. package/docs/@leofcoin/chain/1.0.18/styles/jsdoc-default.css +0 -953
  364. package/docs/@leofcoin/chain/1.0.18/styles/prettify-jsdoc.css +0 -111
  365. package/docs/@leofcoin/chain/1.0.18/styles/prettify-tomorrow.css +0 -138
  366. package/docs/@leofcoin/chain/1.0.19/chain.js.html +0 -738
  367. package/docs/@leofcoin/chain/1.0.19/contracts_factory.js.html +0 -182
  368. package/docs/@leofcoin/chain/1.0.19/contracts_nameService.js.html +0 -231
  369. package/docs/@leofcoin/chain/1.0.19/contracts_proxies_factoryProxy.js.html +0 -135
  370. package/docs/@leofcoin/chain/1.0.19/contracts_proxies_nameServiceProxy.js.html +0 -135
  371. package/docs/@leofcoin/chain/1.0.19/contracts_proxies_nativeTokenProxy.js.html +0 -135
  372. package/docs/@leofcoin/chain/1.0.19/contracts_proxies_validatorsProxy.js.html +0 -135
  373. package/docs/@leofcoin/chain/1.0.19/contracts_proxies_votingProxy.js.html +0 -135
  374. package/docs/@leofcoin/chain/1.0.19/contracts_validators.js.html +0 -242
  375. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Bold-webfont.eot +0 -0
  376. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Bold-webfont.svg +0 -1830
  377. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Bold-webfont.woff +0 -0
  378. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  379. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  380. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  381. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Italic-webfont.eot +0 -0
  382. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Italic-webfont.svg +0 -1830
  383. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Italic-webfont.woff +0 -0
  384. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Light-webfont.eot +0 -0
  385. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Light-webfont.svg +0 -1831
  386. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Light-webfont.woff +0 -0
  387. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  388. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  389. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  390. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Regular-webfont.eot +0 -0
  391. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Regular-webfont.svg +0 -1831
  392. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Regular-webfont.woff +0 -0
  393. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Semibold-webfont.eot +0 -0
  394. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  395. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  396. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Semibold-webfont.woff +0 -0
  397. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  398. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  399. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  400. package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  401. package/docs/@leofcoin/chain/1.0.19/global.html +0 -1153
  402. package/docs/@leofcoin/chain/1.0.19/icons/home.svg +0 -4
  403. package/docs/@leofcoin/chain/1.0.19/icons/search.svg +0 -4
  404. package/docs/@leofcoin/chain/1.0.19/index.html +0 -125
  405. package/docs/@leofcoin/chain/1.0.19/machine.js.html +0 -251
  406. package/docs/@leofcoin/chain/1.0.19/scripts/linenumber.js +0 -23
  407. package/docs/@leofcoin/chain/1.0.19/scripts/pagelocation.js +0 -89
  408. package/docs/@leofcoin/chain/1.0.19/standards_roles.js.html +0 -188
  409. package/docs/@leofcoin/chain/1.0.19/standards_token.js.html +0 -260
  410. package/docs/@leofcoin/chain/1.0.19/styles/collapse.css +0 -27
  411. package/docs/@leofcoin/chain/1.0.19/styles/jsdoc-default.css +0 -953
  412. package/docs/@leofcoin/chain/1.0.19/styles/prettify-jsdoc.css +0 -111
  413. package/docs/@leofcoin/chain/1.0.19/styles/prettify-tomorrow.css +0 -138
package/src/chain.js CHANGED
@@ -1,10 +1,16 @@
1
1
  import { BigNumber, formatUnits, parseUnits } from '@leofcoin/utils'
2
- import Machine from './machine'
3
- import lib from '@leofcoin/lib'
2
+ import Machine from './machine.js'
3
+ import { ContractMessage, TransactionMessage, BlockMessage, BWMessage, BWRequestMessage } from './../../messages/src/messages'
4
+ import { addresses } from './../../addresses/src/addresses'
5
+ import { contractFactoryMessage, nativeTokenMessage, validatorsMessage, nameServiceMessage, calculateFee } from './../../lib/src/lib'
6
+ import MultiWallet from '@leofcoin/multi-wallet'
7
+ import {CodecHash} from '@leofcoin/codec-format-interface/dist/index'
8
+ import bs32 from '@vandeurenglenn/base32'
9
+ import config from './config/config'
10
+ import { formatBytes } from '../../utils/src/utils.js'
4
11
 
5
12
  globalThis.BigNumber = BigNumber
6
13
 
7
- const { ContractMessage, TransactionMessage, BlockMessage, BWMessage, BWRequestMessage } = lib
8
14
  // check if browser or local
9
15
  export default class Chain {
10
16
  #validators = []
@@ -26,7 +32,7 @@ export default class Chain {
26
32
  }
27
33
 
28
34
  get nativeToken() {
29
- return lib.nativeToken
35
+ return addresses.nativeToken
30
36
  }
31
37
 
32
38
  get validators() {
@@ -39,28 +45,39 @@ export default class Chain {
39
45
 
40
46
  async hasTransactionToHandle() {
41
47
  const size = await transactionPoolStore.size()
48
+ console.log({size});
42
49
  if (size > 0) return true
43
50
  return false
44
51
  }
45
52
 
46
53
  async #runEpoch() {
47
- const validators = await this.staticCall(lib.validators, 'validators')
54
+ this.#runningEpoch = true
55
+ console.log('epoch');
56
+ const validators = await this.staticCall(addresses.validators, 'validators')
48
57
  if (!validators[peernet.id]?.active) return
58
+ console.log('active');
49
59
 
50
- this.#runningEpoch = true
60
+
51
61
  const start = new Date().getTime()
52
- await this.#createBlock()
62
+ try {
63
+ await this.#createBlock()
64
+ } catch (e) {
65
+ console.error(e);
66
+ }
67
+
53
68
  const end = new Date().getTime()
54
- console.log((end - start) / 1000 + ' s');
69
+ console.log(((end - start) / 1000) + ' s');
70
+
55
71
  if (await this.hasTransactionToHandle()) return this.#runEpoch()
56
72
  this.#runningEpoch = false
73
+ // if (await this.hasTransactionToHandle() && !this.#runningEpoch) return this.#runEpoch()
57
74
  }
58
75
 
59
76
  async #setup() {
60
- await contractStore.put(lib.contractFactory, lib.contractFactoryMessage)
61
- await contractStore.put(lib.nativeToken, lib.nativeTokenMessage)
62
- await contractStore.put(lib.validators, lib.validatorsMessage)
63
- await contractStore.put(lib.nameService, lib.nameServiceMessage)
77
+ await contractStore.put(addresses.contractFactory, contractFactoryMessage)
78
+ await contractStore.put(addresses.nativeToken, nativeTokenMessage)
79
+ await contractStore.put(addresses.validators, validatorsMessage)
80
+ await contractStore.put(addresses.nameService, nameServiceMessage)
64
81
  console.log('handle native contracts');
65
82
  // handle native contracts
66
83
  }
@@ -79,7 +96,6 @@ export default class Chain {
79
96
 
80
97
  promises = await Promise.allSettled(promises)
81
98
  promises = promises.reduce((set, c) => {
82
- console.log({c});
83
99
  if (c.index > set.index) {
84
100
  set.index = c.index
85
101
  set.hash = c.hash
@@ -92,7 +108,8 @@ export default class Chain {
92
108
  async #init() {
93
109
  // this.node = await new Node()
94
110
  this.participants = []
95
- const initialized = await contractStore.has(lib.contractFactory)
111
+ this.participating = false
112
+ const initialized = await contractStore.has(addresses.contractFactory)
96
113
  if (!initialized) await this.#setup()
97
114
 
98
115
  this.#machine = await new Machine()
@@ -101,8 +118,8 @@ export default class Chain {
101
118
  try {
102
119
  let localBlock = await chainStore.get('lastBlock')
103
120
  localBlock = await peernet.get(new TextDecoder().decode(localBlock))
104
- localBlock = new BlockMessage(localBlock)
105
- this.#lastBlock = {...localBlock.decoded, hash: localBlock.hash}
121
+ localBlock = await await new BlockMessage(localBlock)
122
+ this.#lastBlock = {...localBlock.decoded, hash: await localBlock.hash}
106
123
  // console.log(this.lastBlock.decoded.transactions);
107
124
  } catch (e) {
108
125
  await this.#sync()
@@ -118,15 +135,7 @@ export default class Chain {
118
135
 
119
136
  peernet.subscribe('add-block', this.#addBlock.bind(this))
120
137
 
121
- peernet.subscribe('add-transaction', async transaction => {
122
- try {
123
- transaction = new TransactionMessage(transaction)
124
- await transactionPoolStore.put(transaction.hash, transaction.encoded)
125
- if (await this.hasTransactionToHandle() && !this.#runningEpoch) return this.#runEpoch()
126
- } catch (e) {
127
- throw Error('invalid transaction')
128
- }
129
- })
138
+ peernet.subscribe('add-transaction', this.#addTransaction.bind(this))
130
139
 
131
140
  pubsub.subscribe('peer:connected', this.#peerConnected.bind(this))
132
141
 
@@ -159,28 +168,41 @@ export default class Chain {
159
168
  const end = this.#blocks.length
160
169
  const start = (this.#blocks.length) - blocksSynced
161
170
  await this.#loadBlocks(this.#blocks)
162
- const message = new BlockMessage(this.lastBlock)
163
- await blockStore.put(message.hash, message.encoded)
171
+ const message = await new BlockMessage(this.lastBlock)
172
+ await blockStore.put(await message.hash, message.encoded)
164
173
  await chainStore.put('lastBlock', new TextEncoder().encode(this.lastBlock.hash))
165
174
  }
166
175
  }
167
176
 
168
- async #lastBlockHandler() {
169
- return new peernet.protos['peernet-response']({response: new TextEncoder().encode(JSON.stringify({ hash: this.lastBlock?.hash, index: this.lastBlock?.index }))})
177
+ #epochTimeout
178
+
179
+ async #addTransaction(transaction) {
180
+ try {
181
+ transaction = await new TransactionMessage(transaction)
182
+ const has = await transactionPoolStore.has(await transaction.hash)
183
+ if (!has) await transactionPoolStore.put(await transaction.hash, transaction.encoded)
184
+ if (this.participating && !this.#runningEpoch) this.#runEpoch()
185
+ } catch (e) {
186
+ throw Error('invalid transaction')
170
187
  }
188
+ }
171
189
 
172
- async resolveBlock(hash) {
173
- let block = await peernet.get(hash, 'block')
174
- if (!await peernet.has(hash, 'block')) await peernet.put(hash, block, 'block')
175
- block = await new BlockMessage(block)
176
- const size = block.encoded.length || block.encoded.byteLength
177
- block = {...block.decoded, hash}
178
- this.#blocks[block.index] = block
179
- console.log(`loaded block: ${hash} @${block.index} ${Math.round((size / 1024 / 1024) * 100) / 100} mb`);
180
- if (block.index !== 0) {
181
- return this.resolveBlock(block.previousHash)
182
- }
190
+ async #lastBlockHandler() {
191
+ return new peernet.protos['peernet-response']({response: new TextEncoder().encode(JSON.stringify({ hash: this.lastBlock?.hash, index: this.lastBlock?.index }))})
192
+ }
193
+
194
+ async resolveBlock(hash) {
195
+ let block = await peernet.get(hash, 'block')
196
+ if (!await peernet.has(hash, 'block')) await peernet.put(hash, block, 'block')
197
+ block = await new BlockMessage(block)
198
+ const size = block.encoded.length || block.encoded.byteLength
199
+ block = {...block.decoded, hash}
200
+ this.#blocks[block.index] = block
201
+ console.log(`loaded block: ${hash} @${block.index} ${formatBytes(size)}`);
202
+ if (block.index !== 0) {
203
+ return this.resolveBlock(block.previousHash)
183
204
  }
205
+ }
184
206
 
185
207
  async resolveBlocks() {
186
208
  try {
@@ -245,7 +267,7 @@ export default class Chain {
245
267
  }
246
268
 
247
269
  async #addBlock(block) {
248
- const blockMessage = new BlockMessage(block)
270
+ const blockMessage = await new BlockMessage(block)
249
271
  // if (!Buffer.isBuffer(block)) block = Buffer.from(block, 'hex')
250
272
  // const transactionJob = async transaction => {
251
273
  // try {
@@ -260,15 +282,15 @@ export default class Chain {
260
282
  // transaction = new TransactionMessage(transaction)
261
283
  // return transaction
262
284
  // }
263
- await Promise.all(blockMessage.decoded.transactions
264
- .map(transaction => transactionPoolStore.delete(transaction.hash)))
265
-
285
+ const deletions = await Promise.all(blockMessage.decoded.transactions
286
+ .map(async transaction => transactionPoolStore.delete(await transaction.hash)))
287
+ const hash = await blockMessage.hash
266
288
  // let transactions = blockMessage.decoded.transactions.map(tx => transactionJob(tx))
267
289
  // transactions = await Promise.all(transactions)
268
- this.#lastBlock = {hash: blockMessage.hash, ...blockMessage.decoded}
269
- await blockStore.put(blockMessage.hash, blockMessage.encoded)
270
- await chainStore.put('lastBlock', new TextEncoder().encode(blockMessage.hash))
271
- debug(`added block: ${blockMessage.hash}`)
290
+ this.#lastBlock = { hash, ...blockMessage.decoded }
291
+ await blockStore.put(hash, blockMessage.encoded)
292
+ await chainStore.put('lastBlock', new TextEncoder().encode(hash))
293
+ debug(`added block: ${hash}`)
272
294
  let promises = []
273
295
  let contracts = []
274
296
  for (let transaction of blockMessage.decoded.transactions) {
@@ -279,7 +301,10 @@ export default class Chain {
279
301
  }
280
302
  try {
281
303
  promises = await Promise.allSettled(promises)
282
-
304
+ for (let transaction of blockMessage.decoded.transactions) {
305
+ await accountsStore.put(transaction.from, new TextEncoder().encode(String(transaction.nonce)))
306
+ }
307
+
283
308
  // todo finish state
284
309
  // for (const contract of contracts) {
285
310
  // const state = await this.#machine.get(contract, 'state')
@@ -293,6 +318,10 @@ export default class Chain {
293
318
 
294
319
  }
295
320
 
321
+ async #updateState() {
322
+
323
+ }
324
+
296
325
 
297
326
 
298
327
  async participate() {
@@ -302,56 +331,72 @@ export default class Chain {
302
331
  // introduce peer-reputation
303
332
  // peerReputation(peerId)
304
333
  // {bandwith: {up, down}, uptime}
305
- if (!await this.staticCall(lib.validators, 'has', [peernet.id])) await this.createTransactionFrom(peernet.id, lib.validators, 'addValidator', [peernet.id])
306
- if (await this.hasTransactionToHandle() && !this.#runningEpoch) return this.#runEpoch()
334
+ this.participating = true
335
+ if (!await this.staticCall(addresses.validators, 'has', [peernet.id])) await this.createTransactionFrom(peernet.id, addresses.validators, 'addValidator', [peernet.id])
336
+ if (await this.hasTransactionToHandle() && !this.#runningEpoch) await this.#runEpoch()
337
+
338
+ // const runEpoch = () => setTimeout(async () => {
339
+ // if (await this.hasTransactionToHandle() && !this.#runningEpoch) await this.#runEpoch()
340
+ // runEpoch()
341
+ // }, 5000)
342
+ // runEpoch()
307
343
  }
308
344
 
309
345
  calculateFee(transaction) {
310
346
  // excluded from fees
311
- if (transaction.decoded.to === lib.validators) return 0
347
+ // if (transaction.decoded.to === addresses.validators) return 0
312
348
  // fee per gb
313
349
  return (transaction.encoded.length / 1024) / 1e-6
314
350
  }
315
351
 
352
+ async getTransactions (transactions) {
353
+ return new Promise(async (resolve, reject) => {
354
+ let size = 0
355
+ const _transactions = []
356
+ const promises = await Promise.all(Object.values(transactions)
357
+ .map(tx => new TransactionMessage(new Uint8Array(tx, tx.byteOffset, tx.byteLength))))
358
+
359
+ for (let transaction of promises) {
360
+ size += transaction.encoded.length
361
+ if ((size / 1024) / 1024 <= 1.15 ) _transactions.push({...transaction.decoded, hash: await transaction.hash })
362
+ else return resolve(_transactions)
363
+
364
+ }
365
+ return resolve(_transactions)
366
+ })
367
+
368
+ }
316
369
  async #createBlock() {
317
370
  let transactions = await transactionPoolStore.get()
318
371
 
319
372
  if (Object.keys(transactions)?.length === 0 ) return
373
+
320
374
  let block = {
321
375
  transactions: [],
322
376
  validators: [],
323
377
  fees: 0
324
378
  }
325
379
 
326
- let _transactions = []
327
-
328
380
  // exclude failing tx
329
- for (let transaction of Object.values(transactions)) {
330
- transaction = new TransactionMessage(new Uint8Array(transaction, transaction.byteOffset, transaction.byteLength))
331
-
332
- block.fees += Number(lib.calculateFee(transaction))
333
- _transactions.push({...transaction.decoded, hash: transaction.hash })
334
- }
381
+ transactions = await this.getTransactions(transactions)
335
382
 
336
- transactions = _transactions.sort((a, b) => a.nonce - b.nonce)
337
- _transactions = []
338
- for (let transaction of transactions) {
383
+ transactions = transactions.sort((a, b) => a.nonce - b.nonce)
384
+ for (let transaction of transactions) {
339
385
  try {
340
386
  await this.#executeTransaction(transaction)
341
- _transactions.push(transaction)
387
+ block.transactions.push(transaction)
388
+ block.fees += Number(calculateFee(transaction))
389
+ await accountsStore.put(transaction.from, new TextEncoder().encode(String(transaction.nonce)))
342
390
  } catch (e) {
343
- transaction = new TransactionMessage(transaction)
344
- block.fees -= Number(lib.calculateFee(transaction))
345
- await transactionPoolStore.delete(transaction.hash)
346
-
391
+ console.error(e)
392
+ transaction = await new TransactionMessage(transaction)
393
+ await transactionPoolStore.delete(await transaction.hash)
394
+ console.log(e);
347
395
  }
348
396
  }
349
- transactions = _transactions
350
397
  // don't add empty block
351
- if (transactions.length === 0) return
352
-
353
- block.transactions = transactions
354
- const validators = await this.staticCall(lib.validators, 'validators')
398
+ if (block.transactions.length === 0) return
399
+ const validators = await this.staticCall(addresses.validators, 'validators')
355
400
  console.log({validators});
356
401
  // block.validators = Object.keys(block.validators).reduce((set, key) => {
357
402
  // if (block.validators[key].active) {
@@ -368,7 +413,7 @@ export default class Chain {
368
413
  if (validators[validator].active) {
369
414
  const peer = peers[validator]
370
415
  if (peer && peer.connected) {
371
- let data = new BWRequestMessage()
416
+ let data = await new BWRequestMessage()
372
417
  const node = await peernet.prepareMessage(validator, data.encoded)
373
418
  try {
374
419
  const bw = await peer.request(node.encoded)
@@ -392,7 +437,7 @@ export default class Chain {
392
437
 
393
438
  }
394
439
 
395
- console.log(block.validators);
440
+ console.log({validators: block.validators});
396
441
 
397
442
  block.reward = 150
398
443
  block.validators = block.validators.map(validator => {
@@ -400,7 +445,7 @@ export default class Chain {
400
445
  delete validator.bw
401
446
  return validator
402
447
  })
403
- // block.validators = lib.calculateValidatorReward(block.validators, block.fees)
448
+ // block.validators = calculateValidatorReward(block.validators, block.fees)
404
449
 
405
450
  block.index = this.lastBlock?.index
406
451
  if (block.index === undefined) block.index = 0
@@ -424,25 +469,48 @@ export default class Chain {
424
469
  block.fees = Number.parseFloat(String(block.fees)).toFixed(decimals)
425
470
 
426
471
  try {
427
- let blockMessage = new BlockMessage(block)
428
- this.#lastBlock = {...block, hash: blockMessage.hash}
472
+ let blockMessage = await new BlockMessage(block)
473
+ const hash = await blockMessage.hash
474
+ await Promise.all(blockMessage.decoded.transactions
475
+ .map(async transaction => transactionPoolStore.delete(await transaction.hash)))
476
+
477
+ this.#lastBlock = { hash, ...blockMessage.decoded }
478
+ await blockStore.put(hash, blockMessage.encoded)
479
+ await chainStore.put('lastBlock', new TextEncoder().encode(hash))
480
+ debug(`created block: ${hash}`)
481
+
429
482
  peernet.publish('add-block', blockMessage.encoded)
430
- this.#addBlock(blockMessage.encoded)
483
+ this.#updateState(blockMessage)
431
484
  } catch (e) {
485
+ console.log(e);
432
486
  throw Error(`invalid block ${block}`)
433
487
  }
434
488
  // data = await this.#machine.execute(to, method, params)
435
489
  // transactionStore.put(message.hash, message.encoded)
436
490
  }
437
491
 
438
- async getNonce(address) {
492
+ async promiseTransactions(transactions) {
493
+ transactions = await Promise.all(transactions.map(tx => new TransactionMessage(tx)))
494
+ return transactions
495
+ }
496
+
497
+ async promiseTransactionsContent(transactions) {
498
+ transactions = await Promise.all(transactions.map(tx => new Promise(async (resolve, reject) => {
499
+ resolve({ ...tx.decoded, hash: await tx.hash })
500
+ })))
501
+
502
+ return transactions
503
+ }
504
+
505
+ async #getNonceFallback(address) {
439
506
  let transactions = await transactionPoolStore.get()
440
- transactions = Object.keys(transactions).map(tx => new TransactionMessage(transactions[tx]))
507
+ transactions = await this.promiseTransactions(Object.values(transactions))
441
508
  transactions = transactions.filter(tx => tx.decoded.from === address)
442
- transactions = transactions.map(tx => { return {...tx.decoded, hash: tx.hash} })
509
+ transactions = await this.promiseTransactionsContent(transactions)
510
+
443
511
  if (this.lastBlock && transactions.length === 0) {
444
512
  let block = await peernet.get(this.lastBlock.hash)
445
- block = new BlockMessage(block)
513
+ block = await new BlockMessage(block)
446
514
 
447
515
  // for (let tx of block.decoded?.transactions) {
448
516
  // tx = await peernet.get(tx, 'transaction')
@@ -451,7 +519,7 @@ export default class Chain {
451
519
  transactions = transactions.filter(tx => tx.from === address)
452
520
  while (transactions.length === 0 && block.decoded.index !== 0) {
453
521
  block = await blockStore.get(block.decoded.previousHash)
454
- block = new BlockMessage(block)
522
+ block = await new BlockMessage(block)
455
523
  transactions = block.decoded.transactions.filter(tx => tx.from === address)
456
524
  }
457
525
 
@@ -462,6 +530,16 @@ export default class Chain {
462
530
  return transactions[transactions.length - 1].nonce
463
531
  }
464
532
 
533
+ async getNonce(address) {
534
+ if (!await accountsStore.has(address)) {
535
+ const nonce = await this.#getNonceFallback(address)
536
+ await accountsStore.put(address, new TextEncoder().encode(String(nonce)))
537
+ }
538
+ let nonce = await accountsStore.get(address)
539
+ nonce = new TextDecoder().decode(nonce)
540
+ return Number(nonce)
541
+ }
542
+
465
543
  /**
466
544
  * whenever method = createContract params should hold the contract hash
467
545
  *
@@ -473,9 +551,74 @@ export default class Chain {
473
551
  * @param {Array} params - array of paramters to apply to the contract method
474
552
  * @param {Number} nonce - total transaction count [optional]
475
553
  */
476
- createTransaction(to, method, params, nonce) {
554
+ async createTransaction(to, method, params, nonce, signature) {
477
555
  return this.createTransactionFrom(peernet.id, to, method, params, nonce)
478
556
  }
557
+
558
+
559
+
560
+ /**
561
+ *
562
+ * @param {Object} transaction {}
563
+ * @param {String} transaction.from address
564
+ * @param {String} transaction.to address
565
+ * @param {Object} transaction.params {}
566
+ * @param {String} transaction.params.method get, call
567
+ * @param {Buffer} transaction.params.data
568
+ * @returns
569
+ */
570
+ async createTransactionHash(transaction) {
571
+ // todo: validate
572
+ const peernetHash = await new CodecHash(transaction, {name: 'transaction-message'})
573
+ return peernetHash.digest
574
+ }
575
+
576
+ /**
577
+ * @params {object} transaction -
578
+ * @params {object} wallet - any wallet/signer that supports sign(RAWtransaction)
579
+ */
580
+ async #signTransaction (transaction, wallet) {
581
+ return wallet.sign(await this.createTransactionHash(transaction))
582
+ }
583
+
584
+ async signTransaction(transaction, signer) {
585
+ let identity = await walletStore.get('identity')
586
+ identity = JSON.parse(new TextDecoder().decode(identity))
587
+ const wallet = new MultiWallet(peernet.network)
588
+ wallet.recover(identity.mnemonic)
589
+ const account = wallet.account(0).external(0)
590
+ transaction.signature = await this.#signTransaction(transaction, wallet)
591
+ transaction.signature = bs32.encode(transaction.signature)
592
+ return transaction
593
+ }
594
+
595
+ /**
596
+ *
597
+ * @param {Object} transaction
598
+ * @param {Address} transaction.from
599
+ * @param {Address} transaction.to
600
+ * @param {String} transaction.method
601
+ * @param {Array} transaction.params
602
+ * @param {Number} transaction.nonce
603
+ *
604
+ * @returns {Object} transaction
605
+ */
606
+ async createRawTransaction(transaction) {
607
+ if (!transaction.from) transaction.from = peernet.id
608
+ transaction.timestamp = Date.now()
609
+
610
+ if (transaction.nonce === undefined) {
611
+ transaction.nonce = await this.getNonce(transaction.from)
612
+ transaction.nonce += 1
613
+ await accountsStore.put(transaction.from, new TextEncoder().encode(String(transaction.nonce)))
614
+ } else {
615
+ let nonce = await accountsStore.get(transaction.from)
616
+ nonce = new TextDecoder().decode(nonce)
617
+ if (transaction.nonce < nonce) throw Error(`a transaction with a higher nonce already exists`)
618
+ if (transaction.nonce === nonce) throw Error(`a transaction with the same nonce already exists`)
619
+ }
620
+ return transaction
621
+ }
479
622
  /**
480
623
  * every tx done is trough contracts so no need for amount
481
624
  * data is undefined when nothing is returned
@@ -488,31 +631,41 @@ export default class Chain {
488
631
  * @param {Number} nonce - total transaction count [optional]
489
632
  */
490
633
  async createTransactionFrom(from, to, method, params, nonce) {
491
- if (nonce === undefined) {
492
- nonce = await this.getNonce(from)
493
- nonce += 1
494
- }
495
-
496
- let data
497
- let message = new TransactionMessage({timestamp: new Date().getTime(), from, to, nonce, method, params})
498
634
  try {
635
+
636
+ const rawTransaction = await this.createRawTransaction({from, to, nonce, method, params})
637
+ const transaction = await this.signTransaction(rawTransaction, from)
638
+ const message = await new TransactionMessage(transaction)
639
+
640
+ let data
499
641
  // await transactionPoolStore.put(message.hash, new TextEncoder().encode(JSON.stringify({signature, message: message.encoded})))
500
- await transactionPoolStore.put(message.hash, message.encoded)
642
+ const wait = () => new Promise(async (resolve, reject) => {
643
+ if (pubsub.subscribers[`transaction.completed.${await message.hash}`]) {
644
+ const result = pubsub.subscribers[`transaction.completed.${await message.hash}`].value
645
+ result.status === 'fulfilled' ? resolve(await result.hash) : reject({hash: await result.hash, error: result.error})
646
+ } else {
647
+ const completed = async result => {
648
+ result.status === 'fulfilled' ? resolve(await result.hash) : reject({hash: await result.hash, error: result.error})
649
+
650
+ setTimeout(async () => {
651
+ pubsub.unsubscribe(`transaction.completed.${await message.hash}`, completed)
652
+ }, 10000)
653
+ }
654
+ pubsub.subscribe(`transaction.completed.${await message.hash}`, completed)
655
+ }
656
+
657
+
658
+ })
659
+
660
+ await transactionPoolStore.put(await message.hash, message.encoded)
501
661
  peernet.publish('add-transaction', message.encoded)
662
+ this.#addTransaction(message.encoded)
663
+ return {hash: await message.hash, data, fee: await calculateFee(message.decoded), wait}
502
664
  } catch (e) {
665
+ console.log(e);
503
666
  throw e
504
667
  }
505
- const wait = () => new Promise((resolve, reject) => {
506
- const completed = result => {
507
- result.status === 'fulfilled' ? resolve(result.hash) : reject({hash: result.hash, error: result.error})
508
-
509
- pubsub.unsubscribe(`transaction.completed.${message.hash}`, completed)
510
- }
511
- pubsub.subscribe(`transaction.completed.${message.hash}`, completed)
512
- })
513
-
514
- if (await this.hasTransactionToHandle() && !this.#runningEpoch) this.#runEpoch()
515
- return {hash: message.hash, data, fee: lib.calculateFee(message), wait}
668
+
516
669
  }
517
670
 
518
671
  async createContractMessage(creator, contract, constructorParameters = []) {
@@ -524,8 +677,8 @@ export default class Chain {
524
677
  }
525
678
 
526
679
  async createContractAddress(creator, contract, constructorParameters = []) {
527
- return this.createContractMessage(creator, contract, constructorParameters)
528
- .hash
680
+ contract = await this.createContractMessage(creator, contract, constructorParameters)
681
+ return contract.hash
529
682
  }
530
683
 
531
684
  /**
@@ -538,7 +691,7 @@ export default class Chain {
538
691
  const hash = await this.createContractAddress(creator, contract, params)
539
692
 
540
693
  try {
541
- const tx = await this.createTransactionFrom(peernet.id, lib.contractFactory, 'deployContract', [hash, creator, contract, constructorParameters])
694
+ const tx = await this.createTransactionFrom(peernet.id, addresses.contractFactory, 'deployContract', [hash, creator, contract, constructorParameters])
542
695
  } catch (e) {
543
696
  throw e
544
697
  }
@@ -585,15 +738,15 @@ export default class Chain {
585
738
  }
586
739
 
587
740
  mint(to, amount) {
588
- return this.call(lib.nativeToken, 'mint', [to, amount])
741
+ return this.call(addresses.nativeToken, 'mint', [to, amount])
589
742
  }
590
743
 
591
744
  transfer(from, to, amount) {
592
- return this.call(lib.nativeToken, 'transfer', [from, to, amount])
745
+ return this.call(addresses.nativeToken, 'transfer', [from, to, amount])
593
746
  }
594
747
 
595
748
  get balances() {
596
- return this.staticCall(lib.nativeToken, 'balances')
749
+ return this.staticCall(addresses.nativeToken, 'balances')
597
750
  }
598
751
 
599
752
  deleteAll() {
@@ -610,6 +763,6 @@ export default class Chain {
610
763
  * @example chain.lookup('myCoolContractName') // qmqsfddfdgfg...
611
764
  */
612
765
  lookup(name) {
613
- return this.call(lib.nameService, 'lookup', [name])
766
+ return this.call(addresses.nameService, 'lookup', [name])
614
767
  }
615
768
  }
@@ -1,9 +1,13 @@
1
1
  import main from './main'
2
2
  import protocol from './protocol'
3
- import { read, write } from './../utils/utils'
3
+ import { promisify } from 'util'
4
+ import { readFile, writeFile } from 'fs'
5
+
6
+ const read = promisify(readFile)
7
+ const write = promisify(writeFile)
4
8
 
5
9
  export default async () => {
6
- let config = { ...main, ...protocol }
10
+ let config = { ...main, protocol }
7
11
  try {
8
12
  let data = await read(main.configPath)
9
13
  data = JSON.parse(data.toString())