@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.
- package/.jsdoc.json +1 -1
- package/dist/chain.browser.js +28552 -17092
- package/dist/chain.js +477 -121
- package/dist/node.browser.js +8815 -66914
- package/dist/node.js +1 -1
- package/dist/pako.browser.js +6731 -0
- package/dist/protons.browser.js +11429 -0
- package/dist/wrtc.browser.js +28 -0
- package/docs/@leofcoin/chain/{1.0.16 → 1.0.22}/chain.js.html +267 -114
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/contracts_factory.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.22}/contracts_nameService.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.22}/contracts_proxies_factoryProxy.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.22}/contracts_proxies_nameServiceProxy.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.22}/contracts_proxies_nativeTokenProxy.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/contracts_proxies_validatorsProxy.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/contracts_proxies_votingProxy.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.14 → 1.0.22}/contracts_validators.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Bold-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-BoldItalic-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Italic-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Light-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-LightItalic-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Regular-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Semibold-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.15 → 1.0.22}/global.html +687 -35
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/icons/home.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/icons/search.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/index.html +3 -3
- package/docs/@leofcoin/chain/{1.0.14 → 1.0.22}/machine.js.html +18 -14
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/scripts/linenumber.js +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/scripts/pagelocation.js +0 -0
- package/docs/@leofcoin/chain/{1.0.14 → 1.0.22}/standards_roles.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.14 → 1.0.22}/standards_token.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/styles/collapse.css +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/styles/jsdoc-default.css +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/styles/prettify-jsdoc.css +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.22}/styles/prettify-tomorrow.css +0 -0
- package/docs/@leofcoin/chain/{1.0.14 → 1.0.24}/chain.js.html +267 -114
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/contracts_factory.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.24}/contracts_nameService.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.14 → 1.0.24}/contracts_proxies_factoryProxy.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.14 → 1.0.24}/contracts_proxies_nameServiceProxy.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.24}/contracts_proxies_nativeTokenProxy.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/contracts_proxies_validatorsProxy.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/contracts_proxies_votingProxy.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.15 → 1.0.24}/contracts_validators.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Bold-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-BoldItalic-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Italic-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Light-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-LightItalic-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Regular-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Semibold-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.24}/global.html +687 -35
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/icons/home.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/icons/search.svg +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/index.html +3 -3
- package/docs/@leofcoin/chain/{1.0.15 → 1.0.24}/machine.js.html +18 -14
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/scripts/linenumber.js +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/scripts/pagelocation.js +0 -0
- package/docs/@leofcoin/chain/{1.0.12 → 1.0.24}/standards_roles.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/standards_token.js.html +3 -3
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/styles/collapse.css +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/styles/jsdoc-default.css +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/styles/prettify-jsdoc.css +0 -0
- package/docs/@leofcoin/chain/{1.0.13 → 1.0.24}/styles/prettify-tomorrow.css +0 -0
- package/package.json +55 -52
- package/rollup.config.js +9 -2
- package/src/chain.js +264 -111
- package/src/config/config.js +6 -2
- package/src/machine.js +15 -11
- package/src/node.js +2 -35
- package/src/state.js +8 -3
- package/src/transactions/transaction.js +3 -0
- package/test/chain.js +39 -60
- package/webpack.config.js +10 -140
- package/dist/browser/peernet.js +0 -101516
- package/dist/chain.browser.js.tmp-browserify-65536332430764332457 +0 -0
- package/dist/chain.browser.js.tmp-browserify-77283953363424018335 +0 -0
- package/dist/chain.browser.min.js +0 -2
- package/dist/chain.browser.min.js.LICENSE.txt +0 -10
- package/dist/lib.browser.js +0 -16966
- package/dist/native.js +0 -1
- package/dist/node.browser.min.js +0 -2
- package/dist/node.browser.min.js.LICENSE.txt +0 -12
- package/dist/token/native.js +0 -1
- package/dist/token.js +0 -1
- package/docs/@leofcoin/chain/1.0.12/chain.js.html +0 -738
- package/docs/@leofcoin/chain/1.0.12/contracts_proxies_factoryProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.12/contracts_proxies_nameServiceProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.12/contracts_validators.js.html +0 -242
- package/docs/@leofcoin/chain/1.0.12/machine.js.html +0 -252
- package/docs/@leofcoin/chain/1.0.12/standards_token.js.html +0 -260
- package/docs/@leofcoin/chain/1.0.13/chain.js.html +0 -738
- package/docs/@leofcoin/chain/1.0.13/contracts_validators.js.html +0 -242
- package/docs/@leofcoin/chain/1.0.13/global.html +0 -1153
- package/docs/@leofcoin/chain/1.0.13/machine.js.html +0 -251
- package/docs/@leofcoin/chain/1.0.13/standards_roles.js.html +0 -188
- package/docs/@leofcoin/chain/1.0.14/contracts_factory.js.html +0 -182
- package/docs/@leofcoin/chain/1.0.14/contracts_nameService.js.html +0 -231
- package/docs/@leofcoin/chain/1.0.14/contracts_proxies_nativeTokenProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.14/contracts_proxies_validatorsProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.14/contracts_proxies_votingProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Semibold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.14/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.14/global.html +0 -1153
- package/docs/@leofcoin/chain/1.0.14/icons/home.svg +0 -4
- package/docs/@leofcoin/chain/1.0.14/icons/search.svg +0 -4
- package/docs/@leofcoin/chain/1.0.14/index.html +0 -125
- package/docs/@leofcoin/chain/1.0.14/scripts/linenumber.js +0 -23
- package/docs/@leofcoin/chain/1.0.14/scripts/pagelocation.js +0 -89
- package/docs/@leofcoin/chain/1.0.14/styles/collapse.css +0 -27
- package/docs/@leofcoin/chain/1.0.14/styles/jsdoc-default.css +0 -953
- package/docs/@leofcoin/chain/1.0.14/styles/prettify-jsdoc.css +0 -111
- package/docs/@leofcoin/chain/1.0.14/styles/prettify-tomorrow.css +0 -138
- package/docs/@leofcoin/chain/1.0.15/chain.js.html +0 -738
- package/docs/@leofcoin/chain/1.0.15/contracts_factory.js.html +0 -182
- package/docs/@leofcoin/chain/1.0.15/contracts_nameService.js.html +0 -231
- package/docs/@leofcoin/chain/1.0.15/contracts_proxies_factoryProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.15/contracts_proxies_nameServiceProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.15/contracts_proxies_nativeTokenProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.15/contracts_proxies_validatorsProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.15/contracts_proxies_votingProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Semibold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.15/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.15/icons/home.svg +0 -4
- package/docs/@leofcoin/chain/1.0.15/icons/search.svg +0 -4
- package/docs/@leofcoin/chain/1.0.15/index.html +0 -125
- package/docs/@leofcoin/chain/1.0.15/scripts/linenumber.js +0 -23
- package/docs/@leofcoin/chain/1.0.15/scripts/pagelocation.js +0 -89
- package/docs/@leofcoin/chain/1.0.15/standards_roles.js.html +0 -188
- package/docs/@leofcoin/chain/1.0.15/standards_token.js.html +0 -260
- package/docs/@leofcoin/chain/1.0.15/styles/collapse.css +0 -27
- package/docs/@leofcoin/chain/1.0.15/styles/jsdoc-default.css +0 -953
- package/docs/@leofcoin/chain/1.0.15/styles/prettify-jsdoc.css +0 -111
- package/docs/@leofcoin/chain/1.0.15/styles/prettify-tomorrow.css +0 -138
- package/docs/@leofcoin/chain/1.0.16/contracts_factory.js.html +0 -182
- package/docs/@leofcoin/chain/1.0.16/contracts_nameService.js.html +0 -231
- package/docs/@leofcoin/chain/1.0.16/contracts_proxies_factoryProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.16/contracts_proxies_nameServiceProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.16/contracts_proxies_nativeTokenProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.16/contracts_proxies_validatorsProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.16/contracts_proxies_votingProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.16/contracts_validators.js.html +0 -242
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Semibold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.16/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.16/global.html +0 -1153
- package/docs/@leofcoin/chain/1.0.16/icons/home.svg +0 -4
- package/docs/@leofcoin/chain/1.0.16/icons/search.svg +0 -4
- package/docs/@leofcoin/chain/1.0.16/index.html +0 -125
- package/docs/@leofcoin/chain/1.0.16/machine.js.html +0 -251
- package/docs/@leofcoin/chain/1.0.16/scripts/linenumber.js +0 -23
- package/docs/@leofcoin/chain/1.0.16/scripts/pagelocation.js +0 -89
- package/docs/@leofcoin/chain/1.0.16/standards_roles.js.html +0 -188
- package/docs/@leofcoin/chain/1.0.16/standards_token.js.html +0 -260
- package/docs/@leofcoin/chain/1.0.16/styles/collapse.css +0 -27
- package/docs/@leofcoin/chain/1.0.16/styles/jsdoc-default.css +0 -953
- package/docs/@leofcoin/chain/1.0.16/styles/prettify-jsdoc.css +0 -111
- package/docs/@leofcoin/chain/1.0.16/styles/prettify-tomorrow.css +0 -138
- package/docs/@leofcoin/chain/1.0.17/chain.js.html +0 -738
- package/docs/@leofcoin/chain/1.0.17/contracts_factory.js.html +0 -182
- package/docs/@leofcoin/chain/1.0.17/contracts_nameService.js.html +0 -231
- package/docs/@leofcoin/chain/1.0.17/contracts_proxies_factoryProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.17/contracts_proxies_nameServiceProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.17/contracts_proxies_nativeTokenProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.17/contracts_proxies_validatorsProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.17/contracts_proxies_votingProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.17/contracts_validators.js.html +0 -242
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Semibold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.17/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.17/global.html +0 -1153
- package/docs/@leofcoin/chain/1.0.17/icons/home.svg +0 -4
- package/docs/@leofcoin/chain/1.0.17/icons/search.svg +0 -4
- package/docs/@leofcoin/chain/1.0.17/index.html +0 -125
- package/docs/@leofcoin/chain/1.0.17/machine.js.html +0 -251
- package/docs/@leofcoin/chain/1.0.17/scripts/linenumber.js +0 -23
- package/docs/@leofcoin/chain/1.0.17/scripts/pagelocation.js +0 -89
- package/docs/@leofcoin/chain/1.0.17/standards_roles.js.html +0 -188
- package/docs/@leofcoin/chain/1.0.17/standards_token.js.html +0 -260
- package/docs/@leofcoin/chain/1.0.17/styles/collapse.css +0 -27
- package/docs/@leofcoin/chain/1.0.17/styles/jsdoc-default.css +0 -953
- package/docs/@leofcoin/chain/1.0.17/styles/prettify-jsdoc.css +0 -111
- package/docs/@leofcoin/chain/1.0.17/styles/prettify-tomorrow.css +0 -138
- package/docs/@leofcoin/chain/1.0.18/chain.js.html +0 -738
- package/docs/@leofcoin/chain/1.0.18/contracts_factory.js.html +0 -182
- package/docs/@leofcoin/chain/1.0.18/contracts_nameService.js.html +0 -231
- package/docs/@leofcoin/chain/1.0.18/contracts_proxies_factoryProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.18/contracts_proxies_nameServiceProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.18/contracts_proxies_nativeTokenProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.18/contracts_proxies_validatorsProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.18/contracts_proxies_votingProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.18/contracts_validators.js.html +0 -242
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Semibold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.18/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.18/global.html +0 -1153
- package/docs/@leofcoin/chain/1.0.18/icons/home.svg +0 -4
- package/docs/@leofcoin/chain/1.0.18/icons/search.svg +0 -4
- package/docs/@leofcoin/chain/1.0.18/index.html +0 -125
- package/docs/@leofcoin/chain/1.0.18/machine.js.html +0 -251
- package/docs/@leofcoin/chain/1.0.18/scripts/linenumber.js +0 -23
- package/docs/@leofcoin/chain/1.0.18/scripts/pagelocation.js +0 -89
- package/docs/@leofcoin/chain/1.0.18/standards_roles.js.html +0 -188
- package/docs/@leofcoin/chain/1.0.18/standards_token.js.html +0 -260
- package/docs/@leofcoin/chain/1.0.18/styles/collapse.css +0 -27
- package/docs/@leofcoin/chain/1.0.18/styles/jsdoc-default.css +0 -953
- package/docs/@leofcoin/chain/1.0.18/styles/prettify-jsdoc.css +0 -111
- package/docs/@leofcoin/chain/1.0.18/styles/prettify-tomorrow.css +0 -138
- package/docs/@leofcoin/chain/1.0.19/chain.js.html +0 -738
- package/docs/@leofcoin/chain/1.0.19/contracts_factory.js.html +0 -182
- package/docs/@leofcoin/chain/1.0.19/contracts_nameService.js.html +0 -231
- package/docs/@leofcoin/chain/1.0.19/contracts_proxies_factoryProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.19/contracts_proxies_nameServiceProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.19/contracts_proxies_nativeTokenProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.19/contracts_proxies_validatorsProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.19/contracts_proxies_votingProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.19/contracts_validators.js.html +0 -242
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Semibold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.19/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.19/global.html +0 -1153
- package/docs/@leofcoin/chain/1.0.19/icons/home.svg +0 -4
- package/docs/@leofcoin/chain/1.0.19/icons/search.svg +0 -4
- package/docs/@leofcoin/chain/1.0.19/index.html +0 -125
- package/docs/@leofcoin/chain/1.0.19/machine.js.html +0 -251
- package/docs/@leofcoin/chain/1.0.19/scripts/linenumber.js +0 -23
- package/docs/@leofcoin/chain/1.0.19/scripts/pagelocation.js +0 -89
- package/docs/@leofcoin/chain/1.0.19/standards_roles.js.html +0 -188
- package/docs/@leofcoin/chain/1.0.19/standards_token.js.html +0 -260
- package/docs/@leofcoin/chain/1.0.19/styles/collapse.css +0 -27
- package/docs/@leofcoin/chain/1.0.19/styles/jsdoc-default.css +0 -953
- package/docs/@leofcoin/chain/1.0.19/styles/prettify-jsdoc.css +0 -111
- package/docs/@leofcoin/chain/1.0.19/styles/prettify-tomorrow.css +0 -138
package/dist/chain.js
CHANGED
|
@@ -2,12 +2,180 @@
|
|
|
2
2
|
|
|
3
3
|
var utils = require('@leofcoin/utils');
|
|
4
4
|
require('vm');
|
|
5
|
+
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
6
|
+
require('@ethersproject/bignumber');
|
|
7
|
+
require('@ethersproject/units');
|
|
5
8
|
var messages = require('@leofcoin/messages');
|
|
6
|
-
var
|
|
9
|
+
var addresses$1 = require('@leofcoin/addresses');
|
|
10
|
+
var MultiWallet = require('@leofcoin/multi-wallet');
|
|
11
|
+
var index = require('@leofcoin/codec-format-interface/dist/index');
|
|
12
|
+
var bs32 = require('@vandeurenglenn/base32');
|
|
13
|
+
var util = require('util');
|
|
14
|
+
var fs = require('fs');
|
|
7
15
|
|
|
8
16
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
17
|
|
|
10
|
-
var
|
|
18
|
+
var MultiWallet__default = /*#__PURE__*/_interopDefaultLegacy(MultiWallet);
|
|
19
|
+
var bs32__default = /*#__PURE__*/_interopDefaultLegacy(bs32);
|
|
20
|
+
|
|
21
|
+
var proto$4 = `
|
|
22
|
+
message ContractMessage {
|
|
23
|
+
required string creator = 1;
|
|
24
|
+
required bytes contract = 2;
|
|
25
|
+
repeated string constructorParameters = 3;
|
|
26
|
+
}
|
|
27
|
+
`;
|
|
28
|
+
|
|
29
|
+
class ContractMessage extends codecFormatInterface.FormatInterface {
|
|
30
|
+
get keys() {
|
|
31
|
+
return ['creator', 'contract', 'constructorParameters']
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
get messageName() {
|
|
35
|
+
return 'ContractMessage'
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
constructor(buffer) {
|
|
39
|
+
super(buffer, proto$4, {name: 'contract-message'});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
var proto$3 = `
|
|
44
|
+
|
|
45
|
+
message TransactionMessage {
|
|
46
|
+
required uint64 timestamp = 1;
|
|
47
|
+
required string from = 2;
|
|
48
|
+
required string to = 3;
|
|
49
|
+
required uint64 nonce = 4;
|
|
50
|
+
required string method = 5;
|
|
51
|
+
repeated string params = 6;
|
|
52
|
+
required string signature = 7;
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
55
|
+
|
|
56
|
+
class TransactionMessage extends codecFormatInterface.FormatInterface {
|
|
57
|
+
get keys() {
|
|
58
|
+
return ['timestamp', 'from', 'to', 'nonce', 'method', 'params', 'signature']
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
get messageName() {
|
|
62
|
+
return 'TransactionMessage'
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
constructor(buffer) {
|
|
66
|
+
const name = 'transaction-message';
|
|
67
|
+
super(buffer, proto$3, {name});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var proto$2 = `
|
|
72
|
+
message ValidatorMessage {
|
|
73
|
+
required string address = 1;
|
|
74
|
+
required string reward = 2;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
message Transaction {
|
|
78
|
+
required string hash = 1;
|
|
79
|
+
required uint64 timestamp = 2;
|
|
80
|
+
required string from = 3;
|
|
81
|
+
required string to = 4;
|
|
82
|
+
required uint64 nonce = 5;
|
|
83
|
+
required string method = 6;
|
|
84
|
+
repeated string params = 7;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
message BlockMessage {
|
|
88
|
+
required uint64 index = 1;
|
|
89
|
+
required string previousHash = 3;
|
|
90
|
+
required uint64 timestamp = 4;
|
|
91
|
+
required uint64 reward = 5;
|
|
92
|
+
required string fees = 6;
|
|
93
|
+
repeated Transaction transactions = 7;
|
|
94
|
+
repeated ValidatorMessage validators = 8;
|
|
95
|
+
}
|
|
96
|
+
`;
|
|
97
|
+
|
|
98
|
+
class BlockMessage extends codecFormatInterface.FormatInterface {
|
|
99
|
+
get keys() {
|
|
100
|
+
return ['index', 'previousHash', 'timestamp', 'reward', 'fees', 'transactions', 'validators']
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
get messageName() {
|
|
104
|
+
return 'BlockMessage'
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
constructor(buffer) {
|
|
108
|
+
const name = 'block-message';
|
|
109
|
+
super(buffer, proto$2, {name});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
var proto$1 = `
|
|
114
|
+
|
|
115
|
+
message BWMessage {
|
|
116
|
+
required uint64 up = 1;
|
|
117
|
+
required uint64 down = 2;
|
|
118
|
+
}
|
|
119
|
+
`;
|
|
120
|
+
|
|
121
|
+
class BWMessage extends codecFormatInterface.FormatInterface {
|
|
122
|
+
get keys() {
|
|
123
|
+
return ['up', 'down']
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
get messageName() {
|
|
127
|
+
return 'BWMessage'
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
constructor(buffer) {
|
|
131
|
+
const name = 'bw-message';
|
|
132
|
+
super(buffer, proto$1, {name});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
var proto = `
|
|
137
|
+
|
|
138
|
+
message BWRequestMessage {
|
|
139
|
+
}
|
|
140
|
+
`;
|
|
141
|
+
|
|
142
|
+
class BWRequestMessage extends codecFormatInterface.FormatInterface {
|
|
143
|
+
get keys() {
|
|
144
|
+
return []
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
get messageName() {
|
|
148
|
+
return 'BWRequestMessage'
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
constructor(buffer) {
|
|
152
|
+
const name = 'bw-request-message';
|
|
153
|
+
super(buffer, proto, {name});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
var contractFactory$1 = "ba5xdac4ybttixammtscsptfsvtqwnzuaw5p6eghn2sh7tf5dskqtdghjc";
|
|
158
|
+
var nativeToken$1 = "ba5xdad2t57fpdadkrumwht32uwcdubjppq6z2vkwomgowfjpzmjbn2wo2";
|
|
159
|
+
var nameService$1 = "ba5xdadb3f2jptnup2j6ev6usz4vs6p5vo7vst5hj7r4ddkhdxpnvebxvh";
|
|
160
|
+
var validators$1 = "ba5xdacicpruzh4lu6je5mfn42f6s4y7tboxosyrspxmner5wjma5bvntn";
|
|
161
|
+
var addresses = {
|
|
162
|
+
contractFactory: contractFactory$1,
|
|
163
|
+
nativeToken: nativeToken$1,
|
|
164
|
+
nameService: nameService$1,
|
|
165
|
+
validators: validators$1
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
const byteFormats = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
169
|
+
|
|
170
|
+
const formatBytes = (bytes, decimals = 2) => {
|
|
171
|
+
if (bytes === 0) return '0 Bytes';
|
|
172
|
+
if (decimals < 0) decimals = 0;
|
|
173
|
+
|
|
174
|
+
const k = 1024;
|
|
175
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
176
|
+
|
|
177
|
+
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(decimals))} ${byteFormats[i]}`
|
|
178
|
+
};
|
|
11
179
|
|
|
12
180
|
// import State from './state'
|
|
13
181
|
|
|
@@ -30,15 +198,18 @@ class Machine {
|
|
|
30
198
|
// return
|
|
31
199
|
try {
|
|
32
200
|
let contracts = [
|
|
33
|
-
contractStore.get(
|
|
34
|
-
contractStore.get(
|
|
35
|
-
contractStore.get(
|
|
36
|
-
contractStore.get(
|
|
201
|
+
contractStore.get(contractFactory$1),
|
|
202
|
+
contractStore.get(nativeToken$1),
|
|
203
|
+
contractStore.get(validators$1),
|
|
204
|
+
contractStore.get(nameService$1)
|
|
37
205
|
];
|
|
38
206
|
|
|
39
207
|
contracts = await Promise.all(contracts);
|
|
208
|
+
console.log(contracts);
|
|
40
209
|
for (const contract of contracts) {
|
|
41
|
-
|
|
210
|
+
|
|
211
|
+
const message = await new ContractMessage(new Uint8Array(contract.buffer, contract.buffer.byteOffset, contract.buffer.byteLength));
|
|
212
|
+
console.log(message);
|
|
42
213
|
await this.#runContract(message);
|
|
43
214
|
}
|
|
44
215
|
} catch (e) {
|
|
@@ -59,6 +230,7 @@ console.log(e);
|
|
|
59
230
|
}
|
|
60
231
|
|
|
61
232
|
async #runContract(contractMessage) {
|
|
233
|
+
console.log(contractMessage);
|
|
62
234
|
const params = contractMessage.decoded.constructorParameters;
|
|
63
235
|
try {
|
|
64
236
|
|
|
@@ -67,16 +239,15 @@ console.log(e);
|
|
|
67
239
|
|
|
68
240
|
globalThis.msg = this.#createMessage(contractMessage.decoded.creator);
|
|
69
241
|
// globalThis.msg = {sender: contractMessage.decoded.creator}
|
|
70
|
-
this.#contracts[contractMessage.hash] = new Contract(...params);
|
|
71
|
-
debug(`loaded contract: ${contractMessage.hash}`);
|
|
72
|
-
debug(`size: ${
|
|
242
|
+
this.#contracts[await contractMessage.hash] = await new Contract(...params);
|
|
243
|
+
debug(`loaded contract: ${await contractMessage.hash}`);
|
|
244
|
+
debug(`size: ${formatBytes(contractMessage.encoded.length)}`);
|
|
73
245
|
} catch (e) {
|
|
74
246
|
console.log(e);
|
|
75
247
|
console.warn(`removing contract ${contractMessage.hash}`);
|
|
76
248
|
await contractStore.delete(contractMessage.hash, contractMessage.encoded);
|
|
77
249
|
}
|
|
78
250
|
}
|
|
79
|
-
|
|
80
251
|
/**
|
|
81
252
|
* @params {ContractMessage} - contractMessage
|
|
82
253
|
*/
|
|
@@ -135,9 +306,47 @@ console.log(e);
|
|
|
135
306
|
}
|
|
136
307
|
}
|
|
137
308
|
|
|
309
|
+
var contractFactory = "237,198,1,10,54,51,67,122,86,50,109,72,55,122,115,71,66,119,54,122,122,71,99,53,69,102,111,109,116,76,78,114,116,75,78,51,103,78,90,77,98,69,99,112,89,118,83,82,75,115,52,106,85,90,68,116,118,71,121,18,146,8,114,101,116,117,114,110,32,99,108,97,115,115,32,70,97,99,116,111,114,121,123,35,110,97,109,101,61,34,65,114,116,79,110,108,105,110,101,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,34,59,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,48,59,35,99,111,110,116,114,97,99,116,115,61,91,93,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,38,38,40,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,99,111,110,116,114,97,99,116,115,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,116,111,116,97,108,67,111,110,116,114,97,99,116,115,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,116,111,116,97,108,67,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,44,99,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,125,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,99,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,91,46,46,46,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,93,125,103,101,116,32,116,111,116,97,108,67,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,125,105,115,118,97,108,105,100,40,104,97,115,104,44,99,114,101,97,116,111,114,44,99,111,110,116,114,97,99,116,44,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,61,91,93,41,123,99,111,110,115,116,32,109,101,115,115,97,103,101,61,110,101,119,32,67,111,110,116,114,97,99,116,77,101,115,115,97,103,101,40,123,99,114,101,97,116,111,114,58,99,114,101,97,116,111,114,44,99,111,110,116,114,97,99,116,58,99,111,110,116,114,97,99,116,44,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,58,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,125,41,59,114,101,116,117,114,110,32,66,111,111,108,101,97,110,40,109,101,115,115,97,103,101,46,104,97,115,104,61,61,61,104,97,115,104,41,125,97,115,121,110,99,32,100,101,112,108,111,121,67,111,110,116,114,97,99,116,40,99,111,110,116,114,97,99,116,72,97,115,104,44,99,114,101,97,116,111,114,44,99,111,110,116,114,97,99,116,44,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,61,91,93,41,123,105,102,40,99,111,110,116,114,97,99,116,46,99,114,101,97,116,111,114,33,61,61,109,115,103,46,115,101,110,100,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,110,108,121,32,97,32,99,111,110,116,114,97,99,116,32,99,114,101,97,116,111,114,32,99,97,110,32,100,101,112,108,111,121,32,97,32,99,111,110,116,114,97,99,116,34,41,59,105,102,40,97,119,97,105,116,32,99,111,110,116,114,97,99,116,83,116,111,114,101,46,104,97,115,40,104,97,115,104,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,100,117,112,108,105,99,97,116,101,32,99,111,110,116,114,97,99,116,34,41,59,105,102,40,33,116,104,105,115,46,105,115,86,97,108,105,100,40,99,111,110,116,114,97,99,116,72,97,115,104,44,99,114,101,97,116,111,114,44,99,111,110,116,114,97,99,116,44,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,118,97,108,105,100,32,99,111,110,116,114,97,99,116,34,41,59,97,119,97,105,116,32,99,111,110,116,114,97,99,116,83,116,111,114,101,46,112,117,116,40,104,97,115,104,44,101,110,99,111,100,101,100,41,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,43,61,49,44,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,112,117,115,104,40,104,97,115,104,41,125,125,59,10";
|
|
310
|
+
var nativeToken = "237,198,1,10,54,51,67,122,86,50,109,72,55,122,115,71,66,119,54,122,122,71,99,53,69,102,111,109,116,76,78,114,116,75,78,51,103,78,90,77,98,69,99,112,89,118,83,82,75,115,52,106,85,90,68,116,118,71,121,18,152,26,114,101,116,117,114,110,32,99,108,97,115,115,32,65,114,116,79,110,108,105,110,101,32,101,120,116,101,110,100,115,32,99,108,97,115,115,32,84,111,107,101,110,32,101,120,116,101,110,100,115,32,99,108,97,115,115,32,82,111,108,101,115,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,114,111,108,101,115,41,123,105,102,40,114,111,108,101,115,41,123,105,102,40,33,40,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,101,120,112,101,99,116,101,100,32,114,111,108,101,115,32,116,111,32,98,101,32,97,110,32,111,98,106,101,99,116,34,41,59,116,104,105,115,46,35,114,111,108,101,115,61,123,46,46,46,114,111,108,101,115,44,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,101,108,115,101,32,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,114,111,108,101,115,58,116,104,105,115,46,114,111,108,101,115,125,125,103,101,116,32,114,111,108,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,114,101,116,117,114,110,33,33,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,38,38,45,49,33,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,34,79,87,78,69,82,34,61,61,61,114,111,108,101,38,38,49,61,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,116,108,101,97,115,116,32,111,110,101,32,111,119,110,101,114,32,105,115,32,110,101,101,100,101,100,33,34,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,115,112,108,105,99,101,40,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,41,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,125,123,35,110,97,109,101,59,35,115,121,109,98,111,108,59,35,104,111,108,100,101,114,115,61,48,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,97,112,112,114,111,118,97,108,115,61,123,125,59,35,100,101,99,105,109,97,108,115,61,49,56,59,35,116,111,116,97,108,83,117,112,112,108,121,61,66,105,103,78,117,109,98,101,114,46,102,114,111,109,40,48,41,59,99,111,110,115,116,114,117,99,116,111,114,40,110,97,109,101,44,115,121,109,98,111,108,44,100,101,99,105,109,97,108,115,61,49,56,44,115,116,97,116,101,41,123,105,102,40,33,110,97,109,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,97,109,101,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,33,115,121,109,98,111,108,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,115,121,109,98,111,108,32,117,110,100,101,102,105,110,101,100,34,41,59,115,117,112,101,114,40,115,116,97,116,101,63,46,114,111,108,101,115,41,44,116,104,105,115,46,35,110,97,109,101,61,110,97,109,101,44,116,104,105,115,46,35,115,121,109,98,111,108,61,115,121,109,98,111,108,44,116,104,105,115,46,35,100,101,99,105,109,97,108,115,61,100,101,99,105,109,97,108,115,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,104,111,108,100,101,114,115,58,116,104,105,115,46,104,111,108,100,101,114,115,44,98,97,108,97,110,99,101,115,58,116,104,105,115,46,98,97,108,97,110,99,101,115,44,97,112,112,114,111,118,97,108,115,58,123,46,46,46,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,125,44,116,111,116,97,108,83,117,112,112,108,121,58,116,104,105,115,46,116,111,116,97,108,83,117,112,112,108,121,125,125,103,101,116,32,116,111,116,97,108,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,115,121,109,98,111,108,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,115,121,109,98,111,108,125,103,101,116,32,104,111,108,100,101,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,104,111,108,100,101,114,115,125,103,101,116,32,98,97,108,97,110,99,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,98,97,108,97,110,99,101,115,125,125,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,77,73,78,84,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,46,97,100,100,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,98,117,114,110,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,66,85,82,78,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,46,115,117,98,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,124,124,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,125,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,123,34,48,120,48,48,34,61,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,46,116,111,72,101,120,83,116,114,105,110,103,40,41,63,116,104,105,115,46,35,104,111,108,100,101,114,115,45,61,49,58,34,48,120,48,48,34,33,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,46,116,111,72,101,120,83,116,114,105,110,103,40,41,38,38,34,48,120,48,48,34,61,61,61,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,46,116,111,72,101,120,83,116,114,105,110,103,40,41,38,38,40,116,104,105,115,46,35,104,111,108,100,101,114,115,43,61,49,41,125,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,124,124,40,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,66,105,103,78,117,109,98,101,114,46,102,114,111,109,40,48,41,41,59,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,46,97,100,100,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,46,115,117,98,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,98,97,108,97,110,99,101,79,102,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,125,115,101,116,65,112,112,114,111,118,97,108,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,111,119,110,101,114,61,103,108,111,98,97,108,84,104,105,115,46,109,115,103,46,115,101,110,100,101,114,59,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,124,124,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,61,123,125,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,97,109,111,117,110,116,125,97,112,112,114,111,118,101,100,40,111,119,110,101,114,44,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,61,61,97,109,111,117,110,116,125,116,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,97,109,111,117,110,116,61,66,105,103,78,117,109,98,101,114,46,102,114,111,109,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,125,123,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,34,65,114,116,79,110,108,105,110,101,34,44,34,65,82,84,34,44,49,56,44,115,116,97,116,101,41,125,125,59,10";
|
|
311
|
+
var nameService = "237,198,1,10,54,51,67,122,86,50,109,72,55,122,115,71,66,119,54,122,122,71,99,53,69,102,111,109,116,76,78,114,116,75,78,51,103,78,90,77,98,69,99,112,89,118,83,82,75,115,52,106,85,90,68,116,118,71,121,18,138,12,114,101,116,117,114,110,32,99,108,97,115,115,32,78,97,109,101,83,101,114,118,105,99,101,123,35,110,97,109,101,61,34,65,114,116,79,110,108,105,110,101,78,97,109,101,83,101,114,118,105,99,101,34,59,35,111,119,110,101,114,59,35,112,114,105,99,101,61,48,59,35,114,101,103,105,115,116,114,121,61,123,125,59,35,99,117,114,114,101,110,99,121,59,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,114,101,103,105,115,116,114,121,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,101,103,105,115,116,114,121,125,125,103,101,116,32,115,116,97,116,101,40,41,123,125,99,111,110,115,116,114,117,99,116,111,114,40,102,97,99,116,111,114,121,65,100,100,114,101,115,115,44,99,117,114,114,101,110,99,121,44,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,44,112,114,105,99,101,44,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,111,119,110,101,114,61,115,116,97,116,101,46,111,119,110,101,114,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,61,115,116,97,116,101,46,114,101,103,105,115,116,114,121,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,115,116,97,116,101,46,99,117,114,114,101,110,99,121,44,116,104,105,115,46,35,112,114,105,99,101,61,115,116,97,116,101,46,112,114,105,99,101,41,58,40,116,104,105,115,46,35,111,119,110,101,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,112,114,105,99,101,61,112,114,105,99,101,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,65,114,116,79,110,108,105,110,101,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,102,97,99,116,111,114,121,65,100,100,114,101,115,115,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,65,114,116,79,110,108,105,110,101,84,111,107,101,110,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,99,117,114,114,101,110,99,121,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,65,114,116,79,110,108,105,110,101,86,97,108,105,100,97,116,111,114,115,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,125,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,99,117,114,114,101,110,99,121,41,125,99,104,97,110,103,101,79,119,110,101,114,40,111,119,110,101,114,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,32,111,119,110,101,114,34,41,59,116,104,105,115,46,35,111,119,110,101,114,61,111,119,110,101,114,125,99,104,97,110,103,101,80,114,105,99,101,40,112,114,105,99,101,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,32,111,119,110,101,114,34,41,59,116,104,105,115,46,35,112,114,105,99,101,61,112,114,105,99,101,125,99,104,97,110,103,101,67,117,114,114,101,110,99,121,40,99,117,114,114,101,110,99,121,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,32,111,119,110,101,114,34,41,59,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,99,117,114,114,101,110,99,121,125,97,115,121,110,99,32,112,117,114,99,104,97,115,101,78,97,109,101,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,99,117,114,114,101,110,99,121,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,60,116,104,105,115,46,35,112,114,105,99,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,112,114,105,99,101,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,59,116,114,121,123,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,99,117,114,114,101,110,99,121,44,34,116,114,97,110,115,102,101,114,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,111,119,110,101,114,44,116,104,105,115,46,35,112,114,105,99,101,93,41,125,99,97,116,99,104,40,101,41,123,116,104,114,111,119,32,101,125,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,97,100,100,114,101,115,115,125,125,108,111,111,107,117,112,40,110,97,109,101,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,125,116,114,97,110,115,102,101,114,79,119,110,101,114,115,104,105,112,40,110,97,109,101,44,116,111,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,111,119,110,101,114,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,61,116,111,125,99,104,97,110,103,101,65,100,100,114,101,115,115,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,111,119,110,101,114,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,97,100,100,114,101,115,115,61,97,100,100,114,101,115,115,125,125,59,10,26,58,98,97,53,120,100,97,99,52,121,98,116,116,105,120,97,109,109,116,115,99,115,112,116,102,115,118,116,113,119,110,122,117,97,119,53,112,54,101,103,104,110,50,115,104,55,116,102,53,100,115,107,113,116,100,103,104,106,99,26,58,98,97,53,120,100,97,100,50,116,53,55,102,112,100,97,100,107,114,117,109,119,104,116,51,50,117,119,99,100,117,98,106,112,112,113,54,122,50,118,107,119,111,109,103,111,119,102,106,112,122,109,106,98,110,50,119,111,50,26,58,98,97,53,120,100,97,99,105,99,112,114,117,122,104,52,108,117,54,106,101,53,109,102,110,52,50,102,54,115,52,121,55,116,98,111,120,111,115,121,114,115,112,120,109,110,101,114,53,119,106,109,97,53,98,118,110,116,110,26,17,48,46,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49";
|
|
312
|
+
var validators = "237,198,1,10,54,51,67,122,86,50,109,72,55,122,115,71,66,119,54,122,122,71,99,53,69,102,111,109,116,76,78,114,116,75,78,51,103,78,90,77,98,69,99,112,89,118,83,82,75,115,52,106,85,90,68,116,118,71,121,18,215,16,114,101,116,117,114,110,32,99,108,97,115,115,32,86,97,108,105,100,97,116,111,114,115,123,35,110,97,109,101,61,34,65,114,116,79,110,108,105,110,101,86,97,108,105,100,97,116,111,114,115,34,59,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,61,48,59,35,118,97,108,105,100,97,116,111,114,115,61,123,125,59,35,111,119,110,101,114,59,35,99,117,114,114,101,110,99,121,59,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,59,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,111,119,110,101,114,58,116,104,105,115,46,35,111,119,110,101,114,44,109,105,110,105,109,117,109,66,97,108,97,110,99,101,58,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,99,117,114,114,101,110,99,121,58,116,104,105,115,46,35,99,117,114,114,101,110,99,121,44,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,58,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,44,118,97,108,105,100,97,116,111,114,115,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,125,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,65,100,100,114,101,115,115,44,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,111,119,110,101,114,61,115,116,97,116,101,46,111,119,110,101,114,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,115,116,97,116,101,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,115,116,97,116,101,46,99,117,114,114,101,110,99,121,44,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,61,115,116,97,116,101,46,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,61,115,116,97,116,101,46,118,97,108,105,100,97,116,111,114,115,41,58,40,116,104,105,115,46,35,111,119,110,101,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,53,101,52,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,116,111,107,101,110,65,100,100,114,101,115,115,44,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,43,61,49,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,109,115,103,46,115,101,110,100,101,114,93,61,123,102,105,114,115,116,83,101,101,110,58,40,110,101,119,32,68,97,116,101,41,46,103,101,116,84,105,109,101,40,41,44,97,99,116,105,118,101,58,33,48,125,41,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,111,119,110,101,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,111,119,110,101,114,125,103,101,116,32,99,117,114,114,101,110,99,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,117,114,114,101,110,99,121,125,103,101,116,32,118,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,125,103,101,116,32,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,125,103,101,116,32,109,105,110,105,109,117,109,66,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,99,104,97,110,103,101,79,119,110,101,114,40,111,119,110,101,114,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,110,32,111,119,110,101,114,34,41,125,99,104,97,110,103,101,67,117,114,114,101,110,99,121,40,99,117,114,114,101,110,99,121,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,110,32,111,119,110,101,114,34,41,59,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,99,117,114,114,101,110,99,121,125,104,97,115,40,118,97,108,105,100,97,116,111,114,41,123,114,101,116,117,114,110,32,66,111,111,108,101,97,110,40,118,111,105,100,32,48,33,61,61,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,41,125,97,115,121,110,99,32,97,100,100,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,108,114,101,97,100,121,32,97,32,118,97,108,105,100,97,116,111,114,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,61,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,59,105,102,40,98,97,108,97,110,99,101,60,116,104,105,115,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,98,97,108,97,110,99,101,32,116,111,32,108,111,119,33,32,103,111,116,58,32,36,123,98,97,108,97,110,99,101,125,32,110,101,101,100,58,32,36,123,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,96,41,59,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,43,61,49,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,61,123,102,105,114,115,116,83,101,101,110,58,40,110,101,119,32,68,97,116,101,41,46,103,101,116,84,105,109,101,40,41,44,97,99,116,105,118,101,58,33,48,125,125,114,101,109,111,118,101,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,33,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,97,108,105,100,97,116,111,114,32,110,111,116,32,102,111,117,110,100,34,41,59,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,45,61,49,44,100,101,108,101,116,101,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,125,97,115,121,110,99,32,117,112,100,97,116,101,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,44,97,99,116,105,118,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,97,108,105,100,97,116,111,114,32,110,111,116,32,102,111,117,110,100,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,61,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,59,105,102,40,98,97,108,97,110,99,101,60,116,104,105,115,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,38,38,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,46,97,99,116,105,118,101,38,38,40,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,46,97,99,116,105,118,101,61,33,49,41,44,98,97,108,97,110,99,101,60,116,104,105,115,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,98,97,108,97,110,99,101,32,116,111,32,108,111,119,33,32,103,111,116,58,32,36,123,98,97,108,97,110,99,101,125,32,110,101,101,100,58,32,36,123,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,96,41,59,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,46,97,99,116,105,118,101,61,97,99,116,105,118,101,125,125,59,10,26,58,98,97,53,120,100,97,100,50,116,53,55,102,112,100,97,100,107,114,117,109,119,104,116,51,50,117,119,99,100,117,98,106,112,112,113,54,122,50,118,107,119,111,109,103,111,119,102,106,112,122,109,106,98,110,50,119,111,50";
|
|
313
|
+
var bytecodes = {
|
|
314
|
+
contractFactory: contractFactory,
|
|
315
|
+
nativeToken: nativeToken,
|
|
316
|
+
nameService: nameService,
|
|
317
|
+
validators: validators
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
const contractFactoryMessage = new Uint8Array(bytecodes.contractFactory.split(','));
|
|
321
|
+
const nativeTokenMessage = new Uint8Array(bytecodes.nativeToken.split(','));
|
|
322
|
+
|
|
323
|
+
const nameServiceMessage = new Uint8Array(bytecodes.nameService.split(','));
|
|
324
|
+
const validatorsMessage = new Uint8Array(bytecodes.validators.split(','));
|
|
325
|
+
|
|
326
|
+
const calculateFee = async transaction => {
|
|
327
|
+
// excluded from fees
|
|
328
|
+
if (transaction.to === addresses$1.validators) return 0
|
|
329
|
+
// fee per gb
|
|
330
|
+
transaction = await new messages.TransactionMessage(transaction);
|
|
331
|
+
let fee = transaction.encoded.length;
|
|
332
|
+
fee = fee / 1024;
|
|
333
|
+
fee = fee / 1000000;
|
|
334
|
+
const parts = String(fee).split('.');
|
|
335
|
+
let decimals = 0;
|
|
336
|
+
if (parts[1]) {
|
|
337
|
+
const potentional = parts[1].split('e');
|
|
338
|
+
parts[1] = potentional[0];
|
|
339
|
+
decimals = Number(potentional[1].replace(/\-|\+/g, '')) + Number(potentional[0].length);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
return Number.parseFloat(fee.toString()).toFixed(decimals)
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
util.promisify(fs.readFile);
|
|
346
|
+
util.promisify(fs.writeFile);
|
|
347
|
+
|
|
138
348
|
globalThis.BigNumber = utils.BigNumber;
|
|
139
349
|
|
|
140
|
-
const { ContractMessage, TransactionMessage, BlockMessage, BWMessage, BWRequestMessage } = lib__default["default"];
|
|
141
350
|
// check if browser or local
|
|
142
351
|
class Chain {
|
|
143
352
|
#validators = []
|
|
@@ -151,7 +360,7 @@ class Chain {
|
|
|
151
360
|
}
|
|
152
361
|
|
|
153
362
|
get lib() {
|
|
154
|
-
return
|
|
363
|
+
return lib
|
|
155
364
|
}
|
|
156
365
|
|
|
157
366
|
get lastBlock() {
|
|
@@ -159,7 +368,7 @@ class Chain {
|
|
|
159
368
|
}
|
|
160
369
|
|
|
161
370
|
get nativeToken() {
|
|
162
|
-
return
|
|
371
|
+
return addresses.nativeToken
|
|
163
372
|
}
|
|
164
373
|
|
|
165
374
|
get validators() {
|
|
@@ -172,28 +381,39 @@ class Chain {
|
|
|
172
381
|
|
|
173
382
|
async hasTransactionToHandle() {
|
|
174
383
|
const size = await transactionPoolStore.size();
|
|
384
|
+
console.log({size});
|
|
175
385
|
if (size > 0) return true
|
|
176
386
|
return false
|
|
177
387
|
}
|
|
178
388
|
|
|
179
389
|
async #runEpoch() {
|
|
180
|
-
|
|
390
|
+
this.#runningEpoch = true;
|
|
391
|
+
console.log('epoch');
|
|
392
|
+
const validators = await this.staticCall(addresses.validators, 'validators');
|
|
181
393
|
if (!validators[peernet.id]?.active) return
|
|
394
|
+
console.log('active');
|
|
182
395
|
|
|
183
|
-
|
|
396
|
+
|
|
184
397
|
const start = new Date().getTime();
|
|
185
|
-
|
|
398
|
+
try {
|
|
399
|
+
await this.#createBlock();
|
|
400
|
+
} catch (e) {
|
|
401
|
+
console.error(e);
|
|
402
|
+
}
|
|
403
|
+
|
|
186
404
|
const end = new Date().getTime();
|
|
187
|
-
console.log((end - start) / 1000 + ' s');
|
|
405
|
+
console.log(((end - start) / 1000) + ' s');
|
|
406
|
+
|
|
188
407
|
if (await this.hasTransactionToHandle()) return this.#runEpoch()
|
|
189
408
|
this.#runningEpoch = false;
|
|
409
|
+
// if (await this.hasTransactionToHandle() && !this.#runningEpoch) return this.#runEpoch()
|
|
190
410
|
}
|
|
191
411
|
|
|
192
412
|
async #setup() {
|
|
193
|
-
await contractStore.put(
|
|
194
|
-
await contractStore.put(
|
|
195
|
-
await contractStore.put(
|
|
196
|
-
await contractStore.put(
|
|
413
|
+
await contractStore.put(addresses.contractFactory, contractFactoryMessage);
|
|
414
|
+
await contractStore.put(addresses.nativeToken, nativeTokenMessage);
|
|
415
|
+
await contractStore.put(addresses.validators, validatorsMessage);
|
|
416
|
+
await contractStore.put(addresses.nameService, nameServiceMessage);
|
|
197
417
|
console.log('handle native contracts');
|
|
198
418
|
// handle native contracts
|
|
199
419
|
}
|
|
@@ -212,7 +432,6 @@ class Chain {
|
|
|
212
432
|
|
|
213
433
|
promises = await Promise.allSettled(promises);
|
|
214
434
|
promises = promises.reduce((set, c) => {
|
|
215
|
-
console.log({c});
|
|
216
435
|
if (c.index > set.index) {
|
|
217
436
|
set.index = c.index;
|
|
218
437
|
set.hash = c.hash;
|
|
@@ -225,7 +444,8 @@ class Chain {
|
|
|
225
444
|
async #init() {
|
|
226
445
|
// this.node = await new Node()
|
|
227
446
|
this.participants = [];
|
|
228
|
-
|
|
447
|
+
this.participating = false;
|
|
448
|
+
const initialized = await contractStore.has(addresses.contractFactory);
|
|
229
449
|
if (!initialized) await this.#setup();
|
|
230
450
|
|
|
231
451
|
this.#machine = await new Machine();
|
|
@@ -234,8 +454,8 @@ class Chain {
|
|
|
234
454
|
try {
|
|
235
455
|
let localBlock = await chainStore.get('lastBlock');
|
|
236
456
|
localBlock = await peernet.get(new TextDecoder().decode(localBlock));
|
|
237
|
-
localBlock = new BlockMessage(localBlock);
|
|
238
|
-
this.#lastBlock = {...localBlock.decoded, hash: localBlock.hash};
|
|
457
|
+
localBlock = await await new BlockMessage(localBlock);
|
|
458
|
+
this.#lastBlock = {...localBlock.decoded, hash: await localBlock.hash};
|
|
239
459
|
// console.log(this.lastBlock.decoded.transactions);
|
|
240
460
|
} catch (e) {
|
|
241
461
|
await this.#sync();
|
|
@@ -251,15 +471,7 @@ class Chain {
|
|
|
251
471
|
|
|
252
472
|
peernet.subscribe('add-block', this.#addBlock.bind(this));
|
|
253
473
|
|
|
254
|
-
peernet.subscribe('add-transaction',
|
|
255
|
-
try {
|
|
256
|
-
transaction = new TransactionMessage(transaction);
|
|
257
|
-
await transactionPoolStore.put(transaction.hash, transaction.encoded);
|
|
258
|
-
if (await this.hasTransactionToHandle() && !this.#runningEpoch) return this.#runEpoch()
|
|
259
|
-
} catch (e) {
|
|
260
|
-
throw Error('invalid transaction')
|
|
261
|
-
}
|
|
262
|
-
});
|
|
474
|
+
peernet.subscribe('add-transaction', this.#addTransaction.bind(this));
|
|
263
475
|
|
|
264
476
|
pubsub.subscribe('peer:connected', this.#peerConnected.bind(this));
|
|
265
477
|
|
|
@@ -292,28 +504,41 @@ class Chain {
|
|
|
292
504
|
this.#blocks.length;
|
|
293
505
|
(this.#blocks.length) - blocksSynced;
|
|
294
506
|
await this.#loadBlocks(this.#blocks);
|
|
295
|
-
const message = new BlockMessage(this.lastBlock);
|
|
296
|
-
await blockStore.put(message.hash, message.encoded);
|
|
507
|
+
const message = await new BlockMessage(this.lastBlock);
|
|
508
|
+
await blockStore.put(await message.hash, message.encoded);
|
|
297
509
|
await chainStore.put('lastBlock', new TextEncoder().encode(this.lastBlock.hash));
|
|
298
510
|
}
|
|
299
511
|
}
|
|
300
512
|
|
|
301
|
-
|
|
302
|
-
return new peernet.protos['peernet-response']({response: new TextEncoder().encode(JSON.stringify({ hash: this.lastBlock?.hash, index: this.lastBlock?.index }))})
|
|
303
|
-
}
|
|
513
|
+
#epochTimeout
|
|
304
514
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
515
|
+
async #addTransaction(transaction) {
|
|
516
|
+
try {
|
|
517
|
+
transaction = await new TransactionMessage(transaction);
|
|
518
|
+
const has = await transactionPoolStore.has(await transaction.hash);
|
|
519
|
+
if (!has) await transactionPoolStore.put(await transaction.hash, transaction.encoded);
|
|
520
|
+
if (this.participating && !this.#runningEpoch) this.#runEpoch();
|
|
521
|
+
} catch (e) {
|
|
522
|
+
throw Error('invalid transaction')
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
async #lastBlockHandler() {
|
|
527
|
+
return new peernet.protos['peernet-response']({response: new TextEncoder().encode(JSON.stringify({ hash: this.lastBlock?.hash, index: this.lastBlock?.index }))})
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
async resolveBlock(hash) {
|
|
531
|
+
let block = await peernet.get(hash, 'block');
|
|
532
|
+
if (!await peernet.has(hash, 'block')) await peernet.put(hash, block, 'block');
|
|
533
|
+
block = await new BlockMessage(block);
|
|
534
|
+
const size = block.encoded.length || block.encoded.byteLength;
|
|
535
|
+
block = {...block.decoded, hash};
|
|
536
|
+
this.#blocks[block.index] = block;
|
|
537
|
+
console.log(`loaded block: ${hash} @${block.index} ${formatBytes(size)}`);
|
|
538
|
+
if (block.index !== 0) {
|
|
539
|
+
return this.resolveBlock(block.previousHash)
|
|
316
540
|
}
|
|
541
|
+
}
|
|
317
542
|
|
|
318
543
|
async resolveBlocks() {
|
|
319
544
|
try {
|
|
@@ -378,7 +603,7 @@ class Chain {
|
|
|
378
603
|
}
|
|
379
604
|
|
|
380
605
|
async #addBlock(block) {
|
|
381
|
-
const blockMessage = new BlockMessage(block);
|
|
606
|
+
const blockMessage = await new BlockMessage(block);
|
|
382
607
|
// if (!Buffer.isBuffer(block)) block = Buffer.from(block, 'hex')
|
|
383
608
|
// const transactionJob = async transaction => {
|
|
384
609
|
// try {
|
|
@@ -394,14 +619,14 @@ class Chain {
|
|
|
394
619
|
// return transaction
|
|
395
620
|
// }
|
|
396
621
|
await Promise.all(blockMessage.decoded.transactions
|
|
397
|
-
.map(transaction => transactionPoolStore.delete(transaction.hash)));
|
|
398
|
-
|
|
622
|
+
.map(async transaction => transactionPoolStore.delete(await transaction.hash)));
|
|
623
|
+
const hash = await blockMessage.hash;
|
|
399
624
|
// let transactions = blockMessage.decoded.transactions.map(tx => transactionJob(tx))
|
|
400
625
|
// transactions = await Promise.all(transactions)
|
|
401
|
-
this.#lastBlock = {
|
|
402
|
-
await blockStore.put(
|
|
403
|
-
await chainStore.put('lastBlock', new TextEncoder().encode(
|
|
404
|
-
debug(`added block: ${
|
|
626
|
+
this.#lastBlock = { hash, ...blockMessage.decoded };
|
|
627
|
+
await blockStore.put(hash, blockMessage.encoded);
|
|
628
|
+
await chainStore.put('lastBlock', new TextEncoder().encode(hash));
|
|
629
|
+
debug(`added block: ${hash}`);
|
|
405
630
|
let promises = [];
|
|
406
631
|
let contracts = [];
|
|
407
632
|
for (let transaction of blockMessage.decoded.transactions) {
|
|
@@ -412,7 +637,10 @@ class Chain {
|
|
|
412
637
|
}
|
|
413
638
|
try {
|
|
414
639
|
promises = await Promise.allSettled(promises);
|
|
415
|
-
|
|
640
|
+
for (let transaction of blockMessage.decoded.transactions) {
|
|
641
|
+
await accountsStore.put(transaction.from, new TextEncoder().encode(String(transaction.nonce)));
|
|
642
|
+
}
|
|
643
|
+
|
|
416
644
|
// todo finish state
|
|
417
645
|
// for (const contract of contracts) {
|
|
418
646
|
// const state = await this.#machine.get(contract, 'state')
|
|
@@ -426,6 +654,10 @@ class Chain {
|
|
|
426
654
|
|
|
427
655
|
}
|
|
428
656
|
|
|
657
|
+
async #updateState() {
|
|
658
|
+
|
|
659
|
+
}
|
|
660
|
+
|
|
429
661
|
|
|
430
662
|
|
|
431
663
|
async participate() {
|
|
@@ -435,56 +667,72 @@ class Chain {
|
|
|
435
667
|
// introduce peer-reputation
|
|
436
668
|
// peerReputation(peerId)
|
|
437
669
|
// {bandwith: {up, down}, uptime}
|
|
438
|
-
|
|
439
|
-
if (await this.
|
|
670
|
+
this.participating = true;
|
|
671
|
+
if (!await this.staticCall(addresses.validators, 'has', [peernet.id])) await this.createTransactionFrom(peernet.id, addresses.validators, 'addValidator', [peernet.id]);
|
|
672
|
+
if (await this.hasTransactionToHandle() && !this.#runningEpoch) await this.#runEpoch();
|
|
673
|
+
|
|
674
|
+
// const runEpoch = () => setTimeout(async () => {
|
|
675
|
+
// if (await this.hasTransactionToHandle() && !this.#runningEpoch) await this.#runEpoch()
|
|
676
|
+
// runEpoch()
|
|
677
|
+
// }, 5000)
|
|
678
|
+
// runEpoch()
|
|
440
679
|
}
|
|
441
680
|
|
|
442
681
|
calculateFee(transaction) {
|
|
443
682
|
// excluded from fees
|
|
444
|
-
if (transaction.decoded.to ===
|
|
683
|
+
// if (transaction.decoded.to === addresses.validators) return 0
|
|
445
684
|
// fee per gb
|
|
446
685
|
return (transaction.encoded.length / 1024) / 1e-6
|
|
447
686
|
}
|
|
448
687
|
|
|
688
|
+
async getTransactions (transactions) {
|
|
689
|
+
return new Promise(async (resolve, reject) => {
|
|
690
|
+
let size = 0;
|
|
691
|
+
const _transactions = [];
|
|
692
|
+
const promises = await Promise.all(Object.values(transactions)
|
|
693
|
+
.map(tx => new TransactionMessage(new Uint8Array(tx, tx.byteOffset, tx.byteLength))));
|
|
694
|
+
|
|
695
|
+
for (let transaction of promises) {
|
|
696
|
+
size += transaction.encoded.length;
|
|
697
|
+
if ((size / 1024) / 1024 <= 1.15 ) _transactions.push({...transaction.decoded, hash: await transaction.hash });
|
|
698
|
+
else return resolve(_transactions)
|
|
699
|
+
|
|
700
|
+
}
|
|
701
|
+
return resolve(_transactions)
|
|
702
|
+
})
|
|
703
|
+
|
|
704
|
+
}
|
|
449
705
|
async #createBlock() {
|
|
450
706
|
let transactions = await transactionPoolStore.get();
|
|
451
707
|
|
|
452
708
|
if (Object.keys(transactions)?.length === 0 ) return
|
|
709
|
+
|
|
453
710
|
let block = {
|
|
454
711
|
transactions: [],
|
|
455
712
|
validators: [],
|
|
456
713
|
fees: 0
|
|
457
714
|
};
|
|
458
715
|
|
|
459
|
-
let _transactions = [];
|
|
460
|
-
|
|
461
716
|
// exclude failing tx
|
|
462
|
-
|
|
463
|
-
transaction = new TransactionMessage(new Uint8Array(transaction, transaction.byteOffset, transaction.byteLength));
|
|
717
|
+
transactions = await this.getTransactions(transactions);
|
|
464
718
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
transactions = _transactions.sort((a, b) => a.nonce - b.nonce);
|
|
470
|
-
_transactions = [];
|
|
471
|
-
for (let transaction of transactions) {
|
|
719
|
+
transactions = transactions.sort((a, b) => a.nonce - b.nonce);
|
|
720
|
+
for (let transaction of transactions) {
|
|
472
721
|
try {
|
|
473
722
|
await this.#executeTransaction(transaction);
|
|
474
|
-
|
|
723
|
+
block.transactions.push(transaction);
|
|
724
|
+
block.fees += Number(calculateFee(transaction));
|
|
725
|
+
await accountsStore.put(transaction.from, new TextEncoder().encode(String(transaction.nonce)));
|
|
475
726
|
} catch (e) {
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
await transactionPoolStore.delete(transaction.hash);
|
|
479
|
-
|
|
727
|
+
console.error(e);
|
|
728
|
+
transaction = await new TransactionMessage(transaction);
|
|
729
|
+
await transactionPoolStore.delete(await transaction.hash);
|
|
730
|
+
console.log(e);
|
|
480
731
|
}
|
|
481
732
|
}
|
|
482
|
-
transactions = _transactions;
|
|
483
733
|
// don't add empty block
|
|
484
|
-
if (transactions.length === 0) return
|
|
485
|
-
|
|
486
|
-
block.transactions = transactions;
|
|
487
|
-
const validators = await this.staticCall(lib__default["default"].validators, 'validators');
|
|
734
|
+
if (block.transactions.length === 0) return
|
|
735
|
+
const validators = await this.staticCall(addresses.validators, 'validators');
|
|
488
736
|
console.log({validators});
|
|
489
737
|
// block.validators = Object.keys(block.validators).reduce((set, key) => {
|
|
490
738
|
// if (block.validators[key].active) {
|
|
@@ -501,7 +749,7 @@ class Chain {
|
|
|
501
749
|
if (validators[validator].active) {
|
|
502
750
|
const peer = peers[validator];
|
|
503
751
|
if (peer && peer.connected) {
|
|
504
|
-
let data = new BWRequestMessage();
|
|
752
|
+
let data = await new BWRequestMessage();
|
|
505
753
|
const node = await peernet.prepareMessage(validator, data.encoded);
|
|
506
754
|
try {
|
|
507
755
|
const bw = await peer.request(node.encoded);
|
|
@@ -525,7 +773,7 @@ class Chain {
|
|
|
525
773
|
|
|
526
774
|
}
|
|
527
775
|
|
|
528
|
-
console.log(block.validators);
|
|
776
|
+
console.log({validators: block.validators});
|
|
529
777
|
|
|
530
778
|
block.reward = 150;
|
|
531
779
|
block.validators = block.validators.map(validator => {
|
|
@@ -533,7 +781,7 @@ class Chain {
|
|
|
533
781
|
delete validator.bw;
|
|
534
782
|
return validator
|
|
535
783
|
});
|
|
536
|
-
// block.validators =
|
|
784
|
+
// block.validators = calculateValidatorReward(block.validators, block.fees)
|
|
537
785
|
|
|
538
786
|
block.index = this.lastBlock?.index;
|
|
539
787
|
if (block.index === undefined) block.index = 0;
|
|
@@ -557,25 +805,48 @@ class Chain {
|
|
|
557
805
|
block.fees = Number.parseFloat(String(block.fees)).toFixed(decimals);
|
|
558
806
|
|
|
559
807
|
try {
|
|
560
|
-
let blockMessage = new BlockMessage(block);
|
|
561
|
-
|
|
808
|
+
let blockMessage = await new BlockMessage(block);
|
|
809
|
+
const hash = await blockMessage.hash;
|
|
810
|
+
await Promise.all(blockMessage.decoded.transactions
|
|
811
|
+
.map(async transaction => transactionPoolStore.delete(await transaction.hash)));
|
|
812
|
+
|
|
813
|
+
this.#lastBlock = { hash, ...blockMessage.decoded };
|
|
814
|
+
await blockStore.put(hash, blockMessage.encoded);
|
|
815
|
+
await chainStore.put('lastBlock', new TextEncoder().encode(hash));
|
|
816
|
+
debug(`created block: ${hash}`);
|
|
817
|
+
|
|
562
818
|
peernet.publish('add-block', blockMessage.encoded);
|
|
563
|
-
this.#
|
|
819
|
+
this.#updateState(blockMessage);
|
|
564
820
|
} catch (e) {
|
|
821
|
+
console.log(e);
|
|
565
822
|
throw Error(`invalid block ${block}`)
|
|
566
823
|
}
|
|
567
824
|
// data = await this.#machine.execute(to, method, params)
|
|
568
825
|
// transactionStore.put(message.hash, message.encoded)
|
|
569
826
|
}
|
|
570
827
|
|
|
571
|
-
async
|
|
828
|
+
async promiseTransactions(transactions) {
|
|
829
|
+
transactions = await Promise.all(transactions.map(tx => new TransactionMessage(tx)));
|
|
830
|
+
return transactions
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
async promiseTransactionsContent(transactions) {
|
|
834
|
+
transactions = await Promise.all(transactions.map(tx => new Promise(async (resolve, reject) => {
|
|
835
|
+
resolve({ ...tx.decoded, hash: await tx.hash });
|
|
836
|
+
})));
|
|
837
|
+
|
|
838
|
+
return transactions
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
async #getNonceFallback(address) {
|
|
572
842
|
let transactions = await transactionPoolStore.get();
|
|
573
|
-
transactions =
|
|
843
|
+
transactions = await this.promiseTransactions(Object.values(transactions));
|
|
574
844
|
transactions = transactions.filter(tx => tx.decoded.from === address);
|
|
575
|
-
transactions =
|
|
845
|
+
transactions = await this.promiseTransactionsContent(transactions);
|
|
846
|
+
|
|
576
847
|
if (this.lastBlock && transactions.length === 0) {
|
|
577
848
|
let block = await peernet.get(this.lastBlock.hash);
|
|
578
|
-
block = new BlockMessage(block);
|
|
849
|
+
block = await new BlockMessage(block);
|
|
579
850
|
|
|
580
851
|
// for (let tx of block.decoded?.transactions) {
|
|
581
852
|
// tx = await peernet.get(tx, 'transaction')
|
|
@@ -584,7 +855,7 @@ class Chain {
|
|
|
584
855
|
transactions = transactions.filter(tx => tx.from === address);
|
|
585
856
|
while (transactions.length === 0 && block.decoded.index !== 0) {
|
|
586
857
|
block = await blockStore.get(block.decoded.previousHash);
|
|
587
|
-
block = new BlockMessage(block);
|
|
858
|
+
block = await new BlockMessage(block);
|
|
588
859
|
transactions = block.decoded.transactions.filter(tx => tx.from === address);
|
|
589
860
|
}
|
|
590
861
|
|
|
@@ -595,6 +866,16 @@ class Chain {
|
|
|
595
866
|
return transactions[transactions.length - 1].nonce
|
|
596
867
|
}
|
|
597
868
|
|
|
869
|
+
async getNonce(address) {
|
|
870
|
+
if (!await accountsStore.has(address)) {
|
|
871
|
+
const nonce = await this.#getNonceFallback(address);
|
|
872
|
+
await accountsStore.put(address, new TextEncoder().encode(String(nonce)));
|
|
873
|
+
}
|
|
874
|
+
let nonce = await accountsStore.get(address);
|
|
875
|
+
nonce = new TextDecoder().decode(nonce);
|
|
876
|
+
return Number(nonce)
|
|
877
|
+
}
|
|
878
|
+
|
|
598
879
|
/**
|
|
599
880
|
* whenever method = createContract params should hold the contract hash
|
|
600
881
|
*
|
|
@@ -606,9 +887,74 @@ class Chain {
|
|
|
606
887
|
* @param {Array} params - array of paramters to apply to the contract method
|
|
607
888
|
* @param {Number} nonce - total transaction count [optional]
|
|
608
889
|
*/
|
|
609
|
-
createTransaction(to, method, params, nonce) {
|
|
890
|
+
async createTransaction(to, method, params, nonce, signature) {
|
|
610
891
|
return this.createTransactionFrom(peernet.id, to, method, params, nonce)
|
|
611
892
|
}
|
|
893
|
+
|
|
894
|
+
|
|
895
|
+
|
|
896
|
+
/**
|
|
897
|
+
*
|
|
898
|
+
* @param {Object} transaction {}
|
|
899
|
+
* @param {String} transaction.from address
|
|
900
|
+
* @param {String} transaction.to address
|
|
901
|
+
* @param {Object} transaction.params {}
|
|
902
|
+
* @param {String} transaction.params.method get, call
|
|
903
|
+
* @param {Buffer} transaction.params.data
|
|
904
|
+
* @returns
|
|
905
|
+
*/
|
|
906
|
+
async createTransactionHash(transaction) {
|
|
907
|
+
// todo: validate
|
|
908
|
+
const peernetHash = await new index.CodecHash(transaction, {name: 'transaction-message'});
|
|
909
|
+
return peernetHash.digest
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
/**
|
|
913
|
+
* @params {object} transaction -
|
|
914
|
+
* @params {object} wallet - any wallet/signer that supports sign(RAWtransaction)
|
|
915
|
+
*/
|
|
916
|
+
async #signTransaction (transaction, wallet) {
|
|
917
|
+
return wallet.sign(await this.createTransactionHash(transaction))
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
async signTransaction(transaction, signer) {
|
|
921
|
+
let identity = await walletStore.get('identity');
|
|
922
|
+
identity = JSON.parse(new TextDecoder().decode(identity));
|
|
923
|
+
const wallet = new MultiWallet__default["default"](peernet.network);
|
|
924
|
+
wallet.recover(identity.mnemonic);
|
|
925
|
+
wallet.account(0).external(0);
|
|
926
|
+
transaction.signature = await this.#signTransaction(transaction, wallet);
|
|
927
|
+
transaction.signature = bs32__default["default"].encode(transaction.signature);
|
|
928
|
+
return transaction
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
/**
|
|
932
|
+
*
|
|
933
|
+
* @param {Object} transaction
|
|
934
|
+
* @param {Address} transaction.from
|
|
935
|
+
* @param {Address} transaction.to
|
|
936
|
+
* @param {String} transaction.method
|
|
937
|
+
* @param {Array} transaction.params
|
|
938
|
+
* @param {Number} transaction.nonce
|
|
939
|
+
*
|
|
940
|
+
* @returns {Object} transaction
|
|
941
|
+
*/
|
|
942
|
+
async createRawTransaction(transaction) {
|
|
943
|
+
if (!transaction.from) transaction.from = peernet.id;
|
|
944
|
+
transaction.timestamp = Date.now();
|
|
945
|
+
|
|
946
|
+
if (transaction.nonce === undefined) {
|
|
947
|
+
transaction.nonce = await this.getNonce(transaction.from);
|
|
948
|
+
transaction.nonce += 1;
|
|
949
|
+
await accountsStore.put(transaction.from, new TextEncoder().encode(String(transaction.nonce)));
|
|
950
|
+
} else {
|
|
951
|
+
let nonce = await accountsStore.get(transaction.from);
|
|
952
|
+
nonce = new TextDecoder().decode(nonce);
|
|
953
|
+
if (transaction.nonce < nonce) throw Error(`a transaction with a higher nonce already exists`)
|
|
954
|
+
if (transaction.nonce === nonce) throw Error(`a transaction with the same nonce already exists`)
|
|
955
|
+
}
|
|
956
|
+
return transaction
|
|
957
|
+
}
|
|
612
958
|
/**
|
|
613
959
|
* every tx done is trough contracts so no need for amount
|
|
614
960
|
* data is undefined when nothing is returned
|
|
@@ -621,31 +967,41 @@ class Chain {
|
|
|
621
967
|
* @param {Number} nonce - total transaction count [optional]
|
|
622
968
|
*/
|
|
623
969
|
async createTransactionFrom(from, to, method, params, nonce) {
|
|
624
|
-
if (nonce === undefined) {
|
|
625
|
-
nonce = await this.getNonce(from);
|
|
626
|
-
nonce += 1;
|
|
627
|
-
}
|
|
628
|
-
|
|
629
|
-
let data;
|
|
630
|
-
let message = new TransactionMessage({timestamp: new Date().getTime(), from, to, nonce, method, params});
|
|
631
970
|
try {
|
|
971
|
+
|
|
972
|
+
const rawTransaction = await this.createRawTransaction({from, to, nonce, method, params});
|
|
973
|
+
const transaction = await this.signTransaction(rawTransaction, from);
|
|
974
|
+
const message = await new TransactionMessage(transaction);
|
|
975
|
+
|
|
976
|
+
let data;
|
|
632
977
|
// await transactionPoolStore.put(message.hash, new TextEncoder().encode(JSON.stringify({signature, message: message.encoded})))
|
|
633
|
-
|
|
978
|
+
const wait = () => new Promise(async (resolve, reject) => {
|
|
979
|
+
if (pubsub.subscribers[`transaction.completed.${await message.hash}`]) {
|
|
980
|
+
const result = pubsub.subscribers[`transaction.completed.${await message.hash}`].value;
|
|
981
|
+
result.status === 'fulfilled' ? resolve(await result.hash) : reject({hash: await result.hash, error: result.error});
|
|
982
|
+
} else {
|
|
983
|
+
const completed = async result => {
|
|
984
|
+
result.status === 'fulfilled' ? resolve(await result.hash) : reject({hash: await result.hash, error: result.error});
|
|
985
|
+
|
|
986
|
+
setTimeout(async () => {
|
|
987
|
+
pubsub.unsubscribe(`transaction.completed.${await message.hash}`, completed);
|
|
988
|
+
}, 10000);
|
|
989
|
+
};
|
|
990
|
+
pubsub.subscribe(`transaction.completed.${await message.hash}`, completed);
|
|
991
|
+
}
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
});
|
|
995
|
+
|
|
996
|
+
await transactionPoolStore.put(await message.hash, message.encoded);
|
|
634
997
|
peernet.publish('add-transaction', message.encoded);
|
|
998
|
+
this.#addTransaction(message.encoded);
|
|
999
|
+
return {hash: await message.hash, data, fee: await calculateFee(message.decoded), wait}
|
|
635
1000
|
} catch (e) {
|
|
1001
|
+
console.log(e);
|
|
636
1002
|
throw e
|
|
637
1003
|
}
|
|
638
|
-
|
|
639
|
-
const completed = result => {
|
|
640
|
-
result.status === 'fulfilled' ? resolve(result.hash) : reject({hash: result.hash, error: result.error});
|
|
641
|
-
|
|
642
|
-
pubsub.unsubscribe(`transaction.completed.${message.hash}`, completed);
|
|
643
|
-
};
|
|
644
|
-
pubsub.subscribe(`transaction.completed.${message.hash}`, completed);
|
|
645
|
-
});
|
|
646
|
-
|
|
647
|
-
if (await this.hasTransactionToHandle() && !this.#runningEpoch) this.#runEpoch();
|
|
648
|
-
return {hash: message.hash, data, fee: lib__default["default"].calculateFee(message), wait}
|
|
1004
|
+
|
|
649
1005
|
}
|
|
650
1006
|
|
|
651
1007
|
async createContractMessage(creator, contract, constructorParameters = []) {
|
|
@@ -657,8 +1013,8 @@ class Chain {
|
|
|
657
1013
|
}
|
|
658
1014
|
|
|
659
1015
|
async createContractAddress(creator, contract, constructorParameters = []) {
|
|
660
|
-
|
|
661
|
-
|
|
1016
|
+
contract = await this.createContractMessage(creator, contract, constructorParameters);
|
|
1017
|
+
return contract.hash
|
|
662
1018
|
}
|
|
663
1019
|
|
|
664
1020
|
/**
|
|
@@ -671,7 +1027,7 @@ class Chain {
|
|
|
671
1027
|
const hash = await this.createContractAddress(creator, contract, params);
|
|
672
1028
|
|
|
673
1029
|
try {
|
|
674
|
-
const tx = await this.createTransactionFrom(peernet.id,
|
|
1030
|
+
const tx = await this.createTransactionFrom(peernet.id, addresses.contractFactory, 'deployContract', [hash, creator, contract, constructorParameters]);
|
|
675
1031
|
} catch (e) {
|
|
676
1032
|
throw e
|
|
677
1033
|
}
|
|
@@ -718,15 +1074,15 @@ class Chain {
|
|
|
718
1074
|
}
|
|
719
1075
|
|
|
720
1076
|
mint(to, amount) {
|
|
721
|
-
return this.call(
|
|
1077
|
+
return this.call(addresses.nativeToken, 'mint', [to, amount])
|
|
722
1078
|
}
|
|
723
1079
|
|
|
724
1080
|
transfer(from, to, amount) {
|
|
725
|
-
return this.call(
|
|
1081
|
+
return this.call(addresses.nativeToken, 'transfer', [from, to, amount])
|
|
726
1082
|
}
|
|
727
1083
|
|
|
728
1084
|
get balances() {
|
|
729
|
-
return this.staticCall(
|
|
1085
|
+
return this.staticCall(addresses.nativeToken, 'balances')
|
|
730
1086
|
}
|
|
731
1087
|
|
|
732
1088
|
deleteAll() {
|
|
@@ -743,7 +1099,7 @@ class Chain {
|
|
|
743
1099
|
* @example chain.lookup('myCoolContractName') // qmqsfddfdgfg...
|
|
744
1100
|
*/
|
|
745
1101
|
lookup(name) {
|
|
746
|
-
return this.call(
|
|
1102
|
+
return this.call(addresses.nameService, 'lookup', [name])
|
|
747
1103
|
}
|
|
748
1104
|
}
|
|
749
1105
|
|