nanocurrency
Version:
A toolkit for the Nano cryptocurrency, allowing you to derive keys, generate seeds, hashes, signatures, proofs of work and blocks.
71 lines (68 loc) • 49.5 kB
JavaScript
/*!
* nanocurrency-js v2.5.0: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2020 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/
import A from"fs";import I from"path";import i from"bignumber.js";import g,{blake2b as C,blake2bInit as r,blake2bUpdate as o,blake2bFinal as n}from"blakejs";
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */function t(A,I,i,g){return new(i||(i=Promise))((function(C,r){function o(A){try{t(g.next(A))}catch(A){r(A)}}function n(A){try{t(g.throw(A))}catch(A){r(A)}}function t(A){var I;A.done?C(A.value):(I=A.value,I instanceof i?I:new i((function(A){A(I)}))).then(o,n)}t((g=g.apply(A,I||[])).next())}))}function h(A,I){var i,g,C,r,o={label:0,sent:function(){if(1&C[0])throw C[1];return C[1]},trys:[],ops:[]};return r={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function n(r){return function(n){return function(r){if(i)throw new TypeError("Generator is already executing.");for(;o;)try{if(i=1,g&&(C=2&r[0]?g.return:r[0]?g.throw||((C=g.return)&&C.call(g),0):g.next)&&!(C=C.call(g,r[1])).done)return C;switch(g=0,C&&(r=[2&r[0],C.value]),r[0]){case 0:case 1:C=r;break;case 4:return o.label++,{value:r[1],done:!1};case 5:o.label++,g=r[1],r=[0];continue;case 7:r=o.ops.pop(),o.trys.pop();continue;default:if(!(C=(C=o.trys).length>0&&C[C.length-1])&&(6===r[0]||2===r[0])){o=0;continue}if(3===r[0]&&(!C||r[1]>C[0]&&r[1]<C[3])){o.label=r[1];break}if(6===r[0]&&o.label<C[1]){o.label=C[1],C=r;break}if(C&&o.label<C[2]){o.label=C[2],o.ops.push(r);break}C[2]&&o.ops.pop(),o.trys.pop();continue}r=I.call(A,o)}catch(A){r=[6,A],g=0}finally{i=C=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,n])}}}var e,a=function(A,I){return A(I={exports:{}},I.exports),I.exports}((function(i,g){var C,r=(C="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(i){var g;i=i||{},g||(g=void 0!==i?i:{});var r,o={};for(r in g)g.hasOwnProperty(r)&&(o[r]=g[r]);g.arguments=[],g.thisProgram="./this.program",g.quit=function(A,I){throw I},g.preRun=[],g.postRun=[];var n=!1,t=!1,h=!1,e=!1;n="object"==typeof window,t="function"==typeof importScripts,h="object"==typeof process&&!n&&!t,e=!n&&!h&&!t;var a,Q,B="";h?(B=__dirname+"/",g.read=function(i,g){var C=V(i);return C||(a||(a=A),Q||(Q=I),i=Q.normalize(i),C=a.readFileSync(i)),g?C:C.toString()},g.readBinary=function(A){return(A=g.read(A,!0)).buffer||(A=new Uint8Array(A)),c(A.buffer),A},1<process.argv.length&&(g.thisProgram=process.argv[1].replace(/\\/g,"/")),g.arguments=process.argv.slice(2),process.on("uncaughtException",(function(A){if(!(A instanceof z))throw A})),process.on("unhandledRejection",$),g.quit=function(A){process.exit(A)},g.inspect=function(){return"[Emscripten Module object]"}):e?("undefined"!=typeof read&&(g.read=function(A){var I=V(A);return I?j(I):read(A)}),g.readBinary=function(A){var I;return(I=V(A))?I:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(c("object"==typeof(I=read(A,"binary"))),I)},"undefined"!=typeof scriptArgs?g.arguments=scriptArgs:void 0!==arguments&&(g.arguments=arguments),"function"==typeof quit&&(g.quit=function(A){quit(A)})):(n||t)&&(t?B=self.location.href:document.currentScript&&(B=document.currentScript.src),C&&(B=C),B=0!==B.indexOf("blob:")?B.substr(0,B.lastIndexOf("/")+1):"",g.read=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){if(A=V(A))return j(A);throw I}},t&&(g.readBinary=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){if(A=V(A))return A;throw I}}),g.readAsync=function(A,I,i){var g=new XMLHttpRequest;g.open("GET",A,!0),g.responseType="arraybuffer",g.onload=function(){if(200==g.status||0==g.status&&g.response)I(g.response);else{var C=V(A);C?I(C.buffer):i()}},g.onerror=i,g.send(null)},g.setWindowTitle=function(A){document.title=A});var f=g.print||("undefined"!=typeof console?console.log.bind(console):"undefined"!=typeof print?print:null),E=g.printErr||("undefined"!=typeof printErr?printErr:"undefined"!=typeof console&&console.warn.bind(console)||f);for(r in o)o.hasOwnProperty(r)&&(g[r]=o[r]);o=void 0;var w={"f64-rem":function(A,I){return A%I},debugger:function(){}};"object"!=typeof WebAssembly&&E("no native wasm support detected");var u,s=!1;function c(A,I){A||$("Assertion failed: "+I)}function l(A){var I=g["_"+A];return c(I,"Cannot call unknown function "+A+", make sure it is exported"),I}function S(A,I,i,g){var C={string:function(A){var I=0;if(null!=A&&0!==A){var i=1+(A.length<<2),g=I=q(i),C=y;if(0<i){i=g+i-1;for(var r=0;r<A.length;++r){var o=A.charCodeAt(r);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&A.charCodeAt(++r)),127>=o){if(g>=i)break;C[g++]=o}else{if(2047>=o){if(g+1>=i)break;C[g++]=192|o>>6}else{if(65535>=o){if(g+2>=i)break;C[g++]=224|o>>12}else{if(g+3>=i)break;C[g++]=240|o>>18,C[g++]=128|o>>12&63}C[g++]=128|o>>6&63}C[g++]=128|63&o}}C[g]=0}}return I},array:function(A){var I=q(A.length);return G.set(A,I),I}},r=l(A),o=[];if(A=0,g)for(var n=0;n<g.length;n++){var t=C[i[n]];t?(0===A&&(A=W()),o[n]=t(g[n])):o[n]=g[n]}return i=function(A){if("string"===I)if(A){for(var i=y,g=A+void 0,C=A;i[C]&&!(C>=g);)++C;if(16<C-A&&i.subarray&&F)A=F.decode(i.subarray(A,C));else{for(g="";A<C;){var r=i[A++];if(128&r){var o=63&i[A++];if(192==(224&r))g+=String.fromCharCode((31&r)<<6|o);else{var n=63&i[A++];65536>(r=224==(240&r)?(15&r)<<12|o<<6|n:(7&r)<<18|o<<12|n<<6|63&i[A++])?g+=String.fromCharCode(r):(r-=65536,g+=String.fromCharCode(55296|r>>10,56320|1023&r))}}else g+=String.fromCharCode(r)}A=g}}else A="";else A="boolean"===I?!!A:A;return A}(i=r.apply(null,o)),0!==A&&T(A),i}var F="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var U,G,y,D,d=g.TOTAL_MEMORY||16777216;function k(A){for(;0<A.length;){var I=A.shift();if("function"==typeof I)I();else{var i=I.h;"number"==typeof i?void 0===I.g?g.dynCall_v(i):g.dynCall_vi(i,I.g):i(void 0===I.g?null:I.g)}}}5242880>d&&E("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+d+"! (TOTAL_STACK=5242880)"),g.buffer?U=g.buffer:(U="object"==typeof WebAssembly&&"function"==typeof WebAssembly.Memory?(u=new WebAssembly.Memory({initial:d/65536,maximum:d/65536})).buffer:new ArrayBuffer(d),g.buffer=U),g.HEAP8=G=new Int8Array(U),g.HEAP16=new Int16Array(U),g.HEAP32=D=new Int32Array(U),g.HEAPU8=y=new Uint8Array(U),g.HEAPU16=new Uint16Array(U),g.HEAPU32=new Uint32Array(U),g.HEAPF32=new Float32Array(U),g.HEAPF64=new Float64Array(U),D[724]=5246032;var H=[],p=[],v=[],Y=[],M=!1;function K(){var A=g.preRun.shift();H.unshift(A)}var b=0,x=null;g.preloadedImages={},g.preloadedAudios={};var m="data:application/octet-stream;base64,";function N(A){return String.prototype.startsWith?A.startsWith(m):0===A.indexOf(m)}var L="data:application/octet-stream;base64,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NCAAIAM2AjggACADNgI8IABBQGshAAwBCwsDQCAAIAVIBEAgACADNgIAIABBBGohAAwBCwsLA0AgACAESARAIAAgAToAACAAQQFqIQAMAQsLIAQgAmsLxgMBA38gAkGAwABOBEAgACABIAIQABogAA8LIAAhBCAAIAJqIQMgAEEDcSABQQNxRgRAA0AgAEEDcQRAIAJFBEAgBA8LIAAgASwAADoAACAAQQFqIQAgAUEBaiEBIAJBAWshAgwBCwsgA0F8cSICQUBqIQUDQCAAIAVMBEAgACABKAIANgIAIAAgASgCBDYCBCAAIAEoAgg2AgggACABKAIMNgIMIAAgASgCEDYCECAAIAEoAhQ2AhQgACABKAIYNgIYIAAgASgCHDYCHCAAIAEoAiA2AiAgACABKAIkNgIkIAAgASgCKDYCKCAAIAEoAiw2AiwgACABKAIwNgIwIAAgASgCNDYCNCAAIAEoAjg2AjggACABKAI8NgI8IABBQGshACABQUBrIQEMAQsLA0AgACACSARAIAAgASgCADYCACAAQQRqIQAgAUEEaiEBDAELCwUgA0EEayECA0AgACACSARAIAAgASwAADoAACAAIAEsAAE6AAEgACABLAACOgACIAAgASwAAzoAAyAAQQRqIQAgAUEEaiEBDAELCwsDQCAAIANIBEAgACABLAAAOgAAIABBAWohACABQQFqIQEMAQsLIAQLBwAgABAMpwuNAQEDfwJAAkAgACICQQNxRQ0AIAIiASEAAkADQCABLAAARQ0BIAFBAWoiASIAQQNxDQALIAEhAAwBCwwBCwNAIABBBGohASAAKAIAIgNB//37d2ogA0GAgYKEeHFBgIGChHhzcUUEQCABIQAMAQsLIANB/wFxBEADQCAAQQFqIgAsAAANAAsLCyAAIAJrC+wFAgR/AX4DQCAAKAIEIgEgACgCZEkEfyAAIAFBAWo2AgQgAS0AAAUgABACCyIBIgNBIEYgA0F3akEFSXINAAsCQAJAIAFBK2sOAwABAAELIAFBLUZBH3RBH3UhBCAAKAIEIgEgACgCZEkEfyAAIAFBAWo2AgQgAS0AAAUgABACCyEBCwJ+An8CQAJAIAFBMEYEfiAAKAIEIgEgACgCZEkEfyAAIAFBAWo2AgQgAS0AAAUgABACCyIBQSByQfgARwRAIAFBkQhqLAAAIgNB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aiwAADoAAEG2CiABQf8BcUEEdkGACGosAAA6AABBtwogAUEPcUGACGosAAA6AABBuAogAkH/AXFBBHZBgAhqLAAAOgAAQbkKIAJBD3FBgAhqLAAAOgAAQboKIANB/wFxQQR2QYAIaiwAADoAAEG7CiADQQ9xQYAIaiwAADoAAEG8CiAJQf8BcUEEdkGACGosAAA6AABBvQogCUEPcUGACGosAAA6AABBvgogBUH/AXFBBHZBgAhqLAAAOgAAQb8KIAVBD3FBgAhqLAAAOgAAQcAKIAhB/wFxQQR2QYAIaiwAADoAAEHBCiAIQQ9xQYAIaiwAADoAAEHCCkEAOgAAIAckAUGwCgsGACAAJAELCABBABABQQALcAIBfwJ+IwEhASMBQYABaiQBIAFBADYCACABIAA2AgQgASAANgIsIAFBfyAAQf////8HaiAAQQBIGzYCCCABQX82AkwgAUEANgJoIAEgASgCCCIAIAEoAgRrNgJsIAEgADYCZCABEAghAyABJAEgAwuLAQECfyAAIAAsAEoiASABQf8BanI6AEogACgCFCAAKAIcSwRAIAAoAiQhASAAQQBBACABQQFxEQAAGgsgAEEANgIQIABBADYCHCAAQQA2AhQgACgCACIBQQRxBH8gACABQSByNgIAQX8FIAAgACgCLCAAKAIwaiICNgIIIAAgAjYCBCABQRt0QR91CwtEAQN/IwEhASMBQRBqJAEgABANBH9BfwUgACgCICECIAAgAUEBIAJBAXERAABBAUYEfyABLQAABUF/CwshAyABJAEgAwsEACMBCxsBAn8jASECIAAjAWokASMBQQ9qQXBxJAEgAgsLoAICAEGACAuRAjAxMjM0NTY3ODlhYmNkZWb/////////////////////////////////////////////////////////////////AAECAwQFBgcICf////////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBBoAoLAQE=";if(!N(L)){var R=L;L=g.locateFile?g.locateFile(R,B):B+R}function J(){try{if(g.wasmBinary)return new Uint8Array(g.wasmBinary);var A=V(L);if(A)return A;if(g.readBinary)return g.readBinary(L);throw"both async and sync fetching of the wasm failed"}catch(A){$(A)}}function P(){return g.wasmBinary||!n&&!t||"function"!=typeof fetch?new Promise((function(A){A(J())})):fetch(L,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+L+"'";return A.arrayBuffer()})).catch((function(){return J()}))}function X(A){function I(A){g.asm=A.exports,b--,g.monitorRunDependencies&&g.monitorRunDependencies(b),0==b&&x&&(A=x,x=null,A())}function i(A){I(A.instance)}function C(A){P().then((function(A){return WebAssembly.instantiate(A,r)})).then(A,(function(A){E("failed to asynchronously prepare wasm: "+A),$(A)}))}var r={env:A,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:w};if(b++,g.monitorRunDependencies&&g.monitorRunDependencies(b),g.instantiateWasm)try{return g.instantiateWasm(r,I)}catch(A){return E("Module.instantiateWasm callback failed with error: "+A),!1}return g.wasmBinary||"function"!=typeof WebAssembly.instantiateStreaming||N(L)||"function"!=typeof fetch?C(i):WebAssembly.instantiateStreaming(fetch(L,{credentials:"same-origin"}),r).then(i,(function(A){E("wasm streaming compile failed: "+A),E("falling back to ArrayBuffer instantiation"),C(i)})),{}}function j(A){for(var I=[],i=0;i<A.length;i++){var g=A[i];255<g&&(g&=255),I.push(String.fromCharCode(g))}return I.join("")}g.asm=function(A,I){return I.memory=u,I.table=new WebAssembly.Table({initial:2,maximum:2,element:"anyfunc"}),I.__memory_base=1024,I.__table_base=0,X(I)};var O="function"==typeof atob?atob:function(A){var I="",i=0;A=A.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(A.charAt(i++)),C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(A.charAt(i++)),r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(A.charAt(i++)),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(A.charAt(i++));g=g<<2|C>>4,C=(15&C)<<4|r>>2;var n=(3&r)<<6|o;I+=String.fromCharCode(g),64!==r&&(I+=String.fromCharCode(C)),64!==o&&(I+=String.fromCharCode(n))}while(i<A.length);return I};function V(A){if(N(A)){if(A=A.slice(m.length),"boolean"==typeof h&&h){try{var I=Buffer.from(A,"base64")}catch(i){I=new Buffer(A,"base64")}var i=new Uint8Array(I.buffer,I.byteOffset,I.byteLength)}else try{var g=O(A),C=new Uint8Array(g.length);for(I=0;I<g.length;++I)C[I]=g.charCodeAt(I);i=C}catch(A){throw Error("Converting base64 string to bytes failed.")}return i}}var Z=g.asm({},{b:$,a:function(A,I,i){y.set(y.subarray(I,I+i),A)}},U);g.asm=Z,g._emscripten_work=function(){return g.asm.c.apply(null,arguments)};var q=g.stackAlloc=function(){return g.asm.d.apply(null,arguments)},T=g.stackRestore=function(){return g.asm.e.apply(null,arguments)},W=g.stackSave=function(){return g.asm.f.apply(null,arguments)};function z(A){this.name="ExitStatus",this.message="Program terminated with exit("+A+")",this.status=A}function _(){function A(){if(!g.calledRun&&(g.calledRun=!0,!s)){if(M||(M=!0,k(p)),k(v),g.onRuntimeInitialized&&g.onRuntimeInitialized(),g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;){var A=g.postRun.shift();Y.unshift(A)}k(Y)}}if(!(0<b)){if(g.preRun)for("function"==typeof g.preRun&&(g.preRun=[g.preRun]);g.preRun.length;)K();k(H),0<b||g.calledRun||(g.setStatus?(g.setStatus("Running..."),setTimeout((function(){setTimeout((function(){g.setStatus("")}),1),A()}),1)):A())}}function $(A){throw g.onAbort&&g.onAbort(A),void 0!==A?(f(A),E(A),A=JSON.stringify(A)):A="",s=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(g.asm=Z,g.cwrap=function(A,I,i,g){var C=(i=i||[]).every((function(A){return"number"===A}));return"string"!==I&&C&&!g?l(A):function(){return S(A,I,i,arguments)}},g.then=function(A){if(g.calledRun)A(g);else{var I=g.onRuntimeInitialized;g.onRuntimeInitialized=function(){I&&I(),A(g)}}return g},z.prototype=Error(),z.prototype.constructor=z,x=function A(){g.calledRun||_(),g.calledRun||(x=A)},g.run=_,g.abort=$,g.preInit)for("function"==typeof g.preInit&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();return g.noExitRuntime=!0,_(),i});i.exports=r}));
/*!
* nanocurrency-js: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2019 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/if("[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0)){var Q=require("util").promisify;e=Q(require("crypto").randomFill)}else e=function(A){return new Promise((function(I){crypto.getRandomValues(A),I()}))};function B(A){if(!A)return"";for(var I="",i=0;i<A.length;i++){var g=(255&A[i]).toString(16);I+=g=1===g.length?"0"+g:g}return I.toUpperCase()}function f(A){if(!A)return new Uint8Array;for(var I=[],i=0;i<A.length;i+=2)I.push(parseInt(A.substr(i,2),16));return new Uint8Array(I)}var E="13456789abcdefghijkmnopqrstuwxyz";function w(A){for(var I=A.length,i=8*I%5,g=0===i?0:5-i,C=0,r="",o=0,n=0;n<I;n++)for(C=C<<8|A[n],o+=8;o>=5;)r+=E[C>>>o+g-5&31],o-=5;return o>0&&(r+=E[C<<5-(o+g)&31]),r}function u(A){var I=E.indexOf(A);if(-1===I)throw new Error("Invalid character found: "+A);return I}function s(A){for(var I=A.length,i=5*I%8,g=0===i?0:8-i,C=0,r=0,o=0,n=new Uint8Array(Math.ceil(5*I/8)),t=0;t<I;t++)r=r<<5|u(A[t]),(C+=5)>=8&&(n[o++]=r>>>C+g-8&255,C-=8);return C>0&&(n[o++]=r<<C+g-8&255),0!==i&&(n=n.slice(1)),n}
/*!
* nanocurrency-js: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2019 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/function c(A){var I,i={valid:!1,publicKeyBytes:null};if(!F(A)||!/^(xrb_|nano_)[13][13-9a-km-uw-z]{59}$/.test(A))return i;I=A.startsWith("xrb_")?4:5;var g=s(A.substr(I,52));return function(A,I){for(var i=0;i<A.length;i++)if(A[i]!==I[i])return!1;return!0}(s(A.substr(I+52)),C(g,null,5).reverse())?{publicKeyBytes:g,valid:!0}:i}
/*!
* nanocurrency-js: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2019 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/var l=Math.pow(2,32)-1,S=new i("0xffffffffffffffffffffffffffffffff");function F(A){return"string"==typeof A}function U(A){return"0"===A||!(!F(A)||!/^[1-9]{1}[0-9]{0,38}$/.test(A))&&new i(A).isLessThanOrEqualTo(S)}function G(A){return F(A)&&/^[0-9a-fA-F]{64}$/.test(A)}function y(A){return F(A)&&/^[0-9a-fA-F]{16}$/.test(A)}function D(A){return Number.isInteger(A)&&A>=0&&A<=l}function d(A){return G(A)}function k(A){return G(A)}function H(A){return c(A).valid}function p(A){return F(A)&&/^[0-9a-fA-F]{16}$/.test(A)}function v(A){return F(A)&&/^[0-9a-fA-F]{128}$/.test(A)}
/*!
* nanocurrency-js: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2019 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/function Y(A){var I,g=null!==(I=A.threshold)&&void 0!==I?I:"ffffffc000000000";if(!d(A.blockHash))throw new Error("Hash is not valid");if(!p(A.work))throw new Error("Work is not valid");if(!y(g))throw new Error("Threshold is not valid");var C=new i("0x"+g),t=f(A.blockHash),h=f(A.work).reverse(),e=r(8);o(e,h),o(e,t);var a=B(n(e).reverse());return new i("0x"+a).isGreaterThanOrEqualTo(C)}var M={loaded:!1,work:null};function K(){return new Promise((function(A,I){if(M.loaded)return A(M);try{a().then((function(I){var i=Object.assign(M,{loaded:!0,work:I.cwrap("emscripten_work","string",["string","string","number","number"])});A(i)}))}catch(A){I(A)}}))}function b(A,I){return void 0===I&&(I={}),t(this,void 0,void 0,(function(){var i,g,C,r,o,n,t,e;return h(this,(function(h){switch(h.label){case 0:return i=I.workerIndex,g=void 0===i?0:i,C=I.workerCount,r=void 0===C?1:C,o=I.workThreshold,n=void 0===o?"ffffffc000000000":o,[4,K()];case 1:if(t=h.sent(),!d(A))throw new Error("Hash is not valid");if(!y(n))throw new Error("Threshold is not valid");if(!Number.isInteger(g)||!Number.isInteger(r)||g<0||r<1||g>r-1)throw new Error("Worker parameters are not valid");return e=t.work(A,n,g,r),"1"===e[1]?[2,e.substr(2)]:[2,null]}}))}))}
/*!
* nanocurrency-js: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2019 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/var x=function(A){var I=new Float64Array(16);if(A)for(var i=0;i<A.length;i++)I[i]=A[i];return I};new Uint8Array(32)[0]=9;var m=x(),N=x([1]),L=x([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),R=x([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),J=x([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),P=x([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),X=x([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function j(A,I,i,g){return function(A,I,i,g,C){for(var r=0,o=0;o<C;o++)r|=A[I+o]^i[g+o];return(1&r-1>>>8)-1}(A,I,i,g,32)}function O(A,I){var i;for(i=0;i<16;i++)A[i]=0|I[i]}function V(A){for(var I,i=1,g=0;g<16;g++)I=A[g]+i+65535,i=Math.floor(I/65536),A[g]=I-65536*i;A[0]+=i-1+37*(i-1)}function Z(A,I,i){for(var g,C=~(i-1),r=0;r<16;r++)g=C&(A[r]^I[r]),A[r]^=g,I[r]^=g}function q(A,I){for(var i,g=x(),C=x(),r=0;r<16;r++)C[r]=I[r];V(C),V(C),V(C);for(var o=0;o<2;o++){g[0]=C[0]-65517;for(r=1;r<15;r++)g[r]=C[r]-65535-(g[r-1]>>16&1),g[r-1]&=65535;g[15]=C[15]-32767-(g[14]>>16&1),i=g[15]>>16&1,g[14]&=65535,Z(C,g,1-i)}for(r=0;r<16;r++)A[2*r]=255&C[r],A[2*r+1]=C[r]>>8}function T(A,I){var i=new Uint8Array(32),g=new Uint8Array(32);return q(i,A),q(g,I),j(i,0,g,0)}function W(A){var I=new Uint8Array(32);return q(I,A),1&I[0]}function z(A,I,i){for(var g=0;g<16;g++)A[g]=I[g]+i[g]}function _(A,I,i){for(var g=0;g<16;g++)A[g]=I[g]-i[g]}function $(A,I,i){var g,C,r=0,o=0,n=0,t=0,h=0,e=0,a=0,Q=0,B=0,f=0,E=0,w=0,u=0,s=0,c=0,l=0,S=0,F=0,U=0,G=0,y=0,D=0,d=0,k=0,H=0,p=0,v=0,Y=0,M=0,K=0,b=0,x=i[0],m=i[1],N=i[2],L=i[3],R=i[4],J=i[5],P=i[6],X=i[7],j=i[8],O=i[9],V=i[10],Z=i[11],q=i[12],T=i[13],W=i[14],z=i[15];r+=(g=I[0])*x,o+=g*m,n+=g*N,t+=g*L,h+=g*R,e+=g*J,a+=g*P,Q+=g*X,B+=g*j,f+=g*O,E+=g*V,w+=g*Z,u+=g*q,s+=g*T,c+=g*W,l+=g*z,o+=(g=I[1])*x,n+=g*m,t+=g*N,h+=g*L,e+=g*R,a+=g*J,Q+=g*P,B+=g*X,f+=g*j,E+=g*O,w+=g*V,u+=g*Z,s+=g*q,c+=g*T,l+=g*W,S+=g*z,n+=(g=I[2])*x,t+=g*m,h+=g*N,e+=g*L,a+=g*R,Q+=g*J,B+=g*P,f+=g*X,E+=g*j,w+=g*O,u+=g*V,s+=g*Z,c+=g*q,l+=g*T,S+=g*W,F+=g*z,t+=(g=I[3])*x,h+=g*m,e+=g*N,a+=g*L,Q+=g*R,B+=g*J,f+=g*P,E+=g*X,w+=g*j,u+=g*O,s+=g*V,c+=g*Z,l+=g*q,S+=g*T,F+=g*W,U+=g*z,h+=(g=I[4])*x,e+=g*m,a+=g*N,Q+=g*L,B+=g*R,f+=g*J,E+=g*P,w+=g*X,u+=g*j,s+=g*O,c+=g*V,l+=g*Z,S+=g*q,F+=g*T,U+=g*W,G+=g*z,e+=(g=I[5])*x,a+=g*m,Q+=g*N,B+=g*L,f+=g*R,E+=g*J,w+=g*P,u+=g*X,s+=g*j,c+=g*O,l+=g*V,S+=g*Z,F+=g*q,U+=g*T,G+=g*W,y+=g*z,a+=(g=I[6])*x,Q+=g*m,B+=g*N,f+=g*L,E+=g*R,w+=g*J,u+=g*P,s+=g*X,c+=g*j,l+=g*O,S+=g*V,F+=g*Z,U+=g*q,G+=g*T,y+=g*W,D+=g*z,Q+=(g=I[7])*x,B+=g*m,f+=g*N,E+=g*L,w+=g*R,u+=g*J,s+=g*P,c+=g*X,l+=g*j,S+=g*O,F+=g*V,U+=g*Z,G+=g*q,y+=g*T,D+=g*W,d+=g*z,B+=(g=I[8])*x,f+=g*m,E+=g*N,w+=g*L,u+=g*R,s+=g*J,c+=g*P,l+=g*X,S+=g*j,F+=g*O,U+=g*V,G+=g*Z,y+=g*q,D+=g*T,d+=g*W,k+=g*z,f+=(g=I[9])*x,E+=g*m,w+=g*N,u+=g*L,s+=g*R,c+=g*J,l+=g*P,S+=g*X,F+=g*j,U+=g*O,G+=g*V,y+=g*Z,D+=g*q,d+=g*T,k+=g*W,H+=g*z,E+=(g=I[10])*x,w+=g*m,u+=g*N,s+=g*L,c+=g*R,l+=g*J,S+=g*P,F+=g*X,U+=g*j,G+=g*O,y+=g*V,D+=g*Z,d+=g*q,k+=g*T,H+=g*W,p+=g*z,w+=(g=I[11])*x,u+=g*m,s+=g*N,c+=g*L,l+=g*R,S+=g*J,F+=g*P,U+=g*X,G+=g*j,y+=g*O,D+=g*V,d+=g*Z,k+=g*q,H+=g*T,p+=g*W,v+=g*z,u+=(g=I[12])*x,s+=g*m,c+=g*N,l+=g*L,S+=g*R,F+=g*J,U+=g*P,G+=g*X,y+=g*j,D+=g*O,d+=g*V,k+=g*Z,H+=g*q,p+=g*T,v+=g*W,Y+=g*z,s+=(g=I[13])*x,c+=g*m,l+=g*N,S+=g*L,F+=g*R,U+=g*J,G+=g*P,y+=g*X,D+=g*j,d+=g*O,k+=g*V,H+=g*Z,p+=g*q,v+=g*T,Y+=g*W,M+=g*z,c+=(g=I[14])*x,l+=g*m,S+=g*N,F+=g*L,U+=g*R,G+=g*J,y+=g*P,D+=g*X,d+=g*j,k+=g*O,H+=g*V,p+=g*Z,v+=g*q,Y+=g*T,M+=g*W,K+=g*z,l+=(g=I[15])*x,o+=38*(F+=g*N),n+=38*(U+=g*L),t+=38*(G+=g*R),h+=38*(y+=g*J),e+=38*(D+=g*P),a+=38*(d+=g*X),Q+=38*(k+=g*j),B+=38*(H+=g*O),f+=38*(p+=g*V),E+=38*(v+=g*Z),w+=38*(Y+=g*q),u+=38*(M+=g*T),s+=38*(K+=g*W),c+=38*(b+=g*z),r=(g=(r+=38*(S+=g*m))+(C=1)+65535)-65536*(C=Math.floor(g/65536)),o=(g=o+C+65535)-65536*(C=Math.floor(g/65536)),n=(g=n+C+65535)-65536*(C=Math.floor(g/65536)),t=(g=t+C+65535)-65536*(C=Math.floor(g/65536)),h=(g=h+C+65535)-65536*(C=Math.floor(g/65536)),e=(g=e+C+65535)-65536*(C=Math.floor(g/65536)),a=(g=a+C+65535)-65536*(C=Math.floor(g/65536)),Q=(g=Q+C+65535)-65536*(C=Math.floor(g/65536)),B=(g=B+C+65535)-65536*(C=Math.floor(g/65536)),f=(g=f+C+65535)-65536*(C=Math.floor(g/65536)),E=(g=E+C+65535)-65536*(C=Math.floor(g/65536)),w=(g=w+C+65535)-65536*(C=Math.floor(g/65536)),u=(g=u+C+65535)-65536*(C=Math.floor(g/65536)),s=(g=s+C+65535)-65536*(C=Math.floor(g/65536)),c=(g=c+C+65535)-65536*(C=Math.floor(g/65536)),l=(g=l+C+65535)-65536*(C=Math.floor(g/65536)),r=(g=(r+=C-1+37*(C-1))+(C=1)+65535)-65536*(C=Math.floor(g/65536)),o=(g=o+C+65535)-65536*(C=Math.floor(g/65536)),n=(g=n+C+65535)-65536*(C=Math.floor(g/65536)),t=(g=t+C+65535)-65536*(C=Math.floor(g/65536)),h=(g=h+C+65535)-65536*(C=Math.floor(g/65536)),e=(g=e+C+65535)-65536*(C=Math.floor(g/65536)),a=(g=a+C+65535)-65536*(C=Math.floor(g/65536)),Q=(g=Q+C+65535)-65536*(C=Math.floor(g/65536)),B=(g=B+C+65535)-65536*(C=Math.floor(g/65536)),f=(g=f+C+65535)-65536*(C=Math.floor(g/65536)),E=(g=E+C+65535)-65536*(C=Math.floor(g/65536)),w=(g=w+C+65535)-65536*(C=Math.floor(g/65536)),u=(g=u+C+65535)-65536*(C=Math.floor(g/65536)),s=(g=s+C+65535)-65536*(C=Math.floor(g/65536)),c=(g=c+C+65535)-65536*(C=Math.floor(g/65536)),l=(g=l+C+65535)-65536*(C=Math.floor(g/65536)),r+=C-1+37*(C-1),A[0]=r,A[1]=o,A[2]=n,A[3]=t,A[4]=h,A[5]=e,A[6]=a,A[7]=Q,A[8]=B,A[9]=f,A[10]=E,A[11]=w,A[12]=u,A[13]=s,A[14]=c,A[15]=l}function AA(A,I){$(A,I,I)}function IA(A,I,i){for(var C=new Uint8Array(i),r=0;r<i;++r)C[r]=I[r];var o=g.blake2b(C);for(r=0;r<64;++r)A[r]=o[r];return 0}function iA(A,I){var i=x(),g=x(),C=x(),r=x(),o=x(),n=x(),t=x(),h=x(),e=x();_(i,A[1],A[0]),_(e,I[1],I[0]),$(i,i,e),z(g,A[0],A[1]),z(e,I[0],I[1]),$(g,g,e),$(C,A[3],I[3]),$(C,C,R),$(r,A[2],I[2]),z(r,r,r),_(o,g,i),_(n,r,C),z(t,r,C),z(h,g,i),$(A[0],o,n),$(A[1],h,t),$(A[2],t,n),$(A[3],o,h)}function gA(A,I,i){var g;for(g=0;g<4;g++)Z(A[g],I[g],i)}function CA(A,I){var i=x(),g=x(),C=x();!function(A,I){var i,g=x();for(i=0;i<16;i++)g[i]=I[i];for(i=253;i>=0;i--)AA(g,g),2!==i&&4!==i&&$(g,g,I);for(i=0;i<16;i++)A[i]=g[i]}(C,I[2]),$(i,I[0],C),$(g,I[1],C),q(A,g),A[31]^=W(i)<<7}function rA(A,I,i){var g,C;for(O(A[0],m),O(A[1],N),O(A[2],N),O(A[3],m),C=255;C>=0;--C)gA(A,I,g=i[C/8|0]>>(7&C)&1),iA(I,A),iA(A,A),gA(A,I,g)}function oA(A,I){var i=[x(),x(),x(),x()];O(i[0],J),O(i[1],P),O(i[2],N),$(i[3],J,P),rA(A,i,I)}var nA,tA=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function hA(A,I){var i,g,C,r;for(g=63;g>=32;--g){for(i=0,C=g-32,r=g-12;C<r;++C)I[C]+=i-16*I[g]*tA[C-(g-32)],i=I[C]+128>>8,I[C]-=256*i;I[C]+=i,I[g]=0}for(i=0,C=0;C<32;C++)I[C]+=i-(I[31]>>4)*tA[C],i=I[C]>>8,I[C]&=255;for(C=0;C<32;C++)I[C]-=i*tA[C];for(g=0;g<32;g++)I[g+1]+=I[g]>>8,A[g]=255&I[g]}function eA(A){for(var I=new Float64Array(64),i=0;i<64;i++)I[i]=A[i];for(i=0;i<64;i++)A[i]=0;hA(A,I)}function aA(A){var I=new Uint8Array(64),i=[x(),x(),x(),x()],C=new Uint8Array(32),r=g.blake2bInit(64);return g.blake2bUpdate(r,A),(I=g.blake2bFinal(r))[0]&=248,I[31]&=127,I[31]|=64,oA(i,I),CA(C,i),C}function QA(A,I){var i=x(),g=x(),C=x(),r=x(),o=x(),n=x(),t=x();return O(A[2],N),function(A,I){var i;for(i=0;i<16;i++)A[i]=I[2*i]+(I[2*i+1]<<8);A[15]&=32767}(A[1],I),AA(C,A[1]),$(r,C,L),_(C,C,A[2]),z(r,A[2],r),AA(o,r),AA(n,o),$(t,n,o),$(i,t,C),$(i,i,r),function(A,I){var i,g=x();for(i=0;i<16;i++)g[i]=I[i];for(i=250;i>=0;i--)AA(g,g),1!==i&&$(g,g,I);for(i=0;i<16;i++)A[i]=g[i]}(i,i),$(i,i,C),$(i,i,r),$(i,i,r),$(A[0],i,r),AA(g,A[0]),$(g,g,r),T(g,C)&&$(A[0],A[0],X),AA(g,A[0]),$(g,g,r),T(g,C)?-1:(W(A[0])===I[31]>>7&&_(A[0],m,A[0]),$(A[3],A[0],A[1]),0)}function BA(A,I){if(32!==I.length)throw new Error("bad secret key size");var i=new Uint8Array(64+A.length);return function(A,I,i,g){var C,r,o=new Uint8Array(64),n=new Uint8Array(64),t=new Uint8Array(64),h=new Float64Array(64),e=[x(),x(),x(),x()],a=aA(g);IA(o,g,32),o[0]&=248,o[31]&=127,o[31]|=64;var Q=i+64;for(C=0;C<i;C++)A[64+C]=I[C];for(C=0;C<32;C++)A[32+C]=o[32+C];for(IA(t,A.subarray(32),i+32),eA(t),oA(e,t),CA(A,e),C=32;C<64;C++)A[C]=a[C-32];for(IA(n,A,i+64),eA(n),C=0;C<64;C++)h[C]=0;for(C=0;C<32;C++)h[C]=t[C];for(C=0;C<32;C++)for(r=0;r<32;r++)h[C+r]+=n[C]*o[r];hA(A.subarray(32),h)}(i,A,A.length,I),i}function fA(A,I,i){if(64!==I.length)throw new Error("bad signature size");if(32!==i.length)throw new Error("bad public key size");var g,C=new Uint8Array(64+A.length),r=new Uint8Array(64+A.length);for(g=0;g<64;g++)C[g]=I[g];for(g=0;g<A.length;g++)C[g+64]=A[g];return function(A,I,i,g){var C,r=new Uint8Array(32),o=new Uint8Array(64),n=[x(),x(),x(),x()],t=[x(),x(),x(),x()];if(-1,i<64)return-1;if(QA(t,g))return-1;for(C=0;C<i;C++)A[C]=I[C];for(C=0;C<32;C++)A[C+32]=g[C];if(IA(o,A,i),eA(o),rA(n,t,o),oA(t,I.subarray(32)),iA(n,t),CA(r,n),i-=64,j(I,0,r,0)){for(C=0;C<i;C++)A[C]=0;return-1}for(C=0;C<i;C++)A[C]=I[C+64];return i}(r,C,C.length,i)>=0}
/*!
* nanocurrency-js: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2019 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/function EA(){return new Promise((function(A,I){var i;(i=32,new Promise((function(A,I){var g=new Uint8Array(i);e(g).then((function(){return A(g)})).catch(I)}))).then((function(I){var i=I.reduce((function(A,I){return""+A+("0"+I.toString(16)).slice(-2)}),"");return A(i)})).catch(I)}))}function wA(A,I){if(!G(A))throw new Error("Seed is not valid");if(!D(I))throw new Error("Index is not valid");var i=f(A),g=new ArrayBuffer(4);new DataView(g).setUint32(0,I);var C=new Uint8Array(g),t=r(32);return o(t,i),o(t,C),B(n(t))}function uA(A){var I,i=k(A),g=c(A),C=g.valid;if(!i&&!C)throw new Error("Secret key or address is not valid");i?I=aA(f(A)):I=g.publicKeyBytes;return B(I)}function sA(A,I){if(void 0===I&&(I={}),!k(A))throw new Error("Public key is not valid");var i=f(A),g=f(A),r="xrb_";return!0===I.useNanoPrefix&&(r="nano_"),r+w(g)+w(C(i,null,5).reverse())}
/*!
* nanocurrency-js: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2019 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/!function(A){A.hex="hex",A.raw="raw",A.nano="nano",A.knano="knano",A.Nano="Nano",A.NANO="NANO",A.KNano="KNano",A.MNano="MNano"}(nA||(nA={}));var cA={hex:0,raw:0,nano:24,knano:27,Nano:30,NANO:30,KNano:33,MNano:36},lA=i.clone({EXPONENTIAL_AT:1e9,DECIMAL_PLACES:cA.MNano});function SA(A,I){var i=new Error("From or to is not valid");if(!I)throw i;var g=cA[I.from],C=cA[I.to];if(void 0===g||void 0===C)throw new Error("From or to is not valid");var r=new Error("Value is not valid");if("hex"===I.from){if(!/^[0-9a-fA-F]{32}$/.test(A))throw r}else if(!function(A){if(!F(A))return!1;if(A.startsWith(".")||A.endsWith("."))return!1;var I=A.replace(".","");if(A.length-I.length>1)return!1;for(var i=0,g=I;i<g.length;i++){var C=g[i];if(C<"0"||C>"9")return!1}return!0}(A))throw r;var o,n=g-C;if(o="hex"===I.from?new lA("0x"+A):new lA(A),n<0)for(var t=0;t<-n;t++)o=o.dividedBy(10);else if(n>0)for(t=0;t<n;t++)o=o.multipliedBy(10);return"hex"===I.to?o.toString(16).padStart(32,"0"):o.toString()}
/*!
* nanocurrency-js: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2019 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/var FA=new Uint8Array(32);function UA(A){var I,i=f(uA(A.account)),g=f(A.previous),C=f(uA(A.representative)),t=f(SA(A.balance,{from:nA.raw,to:nA.hex}));I=H(A.link)?f(uA(A.link)):f(A.link);var h=r(32);return o(h,FA),o(h,i),o(h,g),o(h,C),o(h,t),o(h,I),B(n(h))}function GA(A){if(!H(A.account))throw new Error("Account is not valid");if(!d(A.previous))throw new Error("Previous is not valid");if(!H(A.representative))throw new Error("Representative is not valid");if(!U(A.balance))throw new Error("Balance is not valid");if(!H(A.link)&&!d(A.link))throw new Error("Link is not valid");return UA(A)}
/*!
* nanocurrency-js: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2019 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/function yA(A){if(!d(A.hash))throw new Error("Hash is not valid");if(!k(A.secretKey))throw new Error("Secret key is not valid");return B(function(A,I){for(var i=BA(A,I),g=new Uint8Array(64),C=0;C<g.length;C++)g[C]=i[C];return g}(f(A.hash),f(A.secretKey)))}function DA(A){if(!d(A.hash))throw new Error("Hash is not valid");if(!v(A.signature))throw new Error("Signature is not valid");if(!k(A.publicKey))throw new Error("Public key is not valid");return fA(f(A.hash),f(A.signature),f(A.publicKey))}
/*!
* nanocurrency-js: A toolkit for the Nano cryptocurrency.
* Copyright (c) 2019 Marvin ROGER <dev at marvinroger dot fr>
* Licensed under GPL-3.0 (https://git.io/vAZsK)
*/FA[31]=6;var dA="0000000000000000000000000000000000000000000000000000000000000000";function kA(A,I){if(!k(A))throw new Error("Secret key is not valid");if(void 0===I.work)throw new Error("Work is not set");if(!H(I.representative))throw new Error("Representative is not valid");if(!U(I.balance))throw new Error("Balance is not valid");var i;if(null===I.previous)i=dA;else if(!d(i=I.previous))throw new Error("Previous is not valid");var g,C=!1;if(null===I.link)g=dA;else if(H(g=I.link))C=!0;else if(!d(g))throw new Error("Link is not valid");if(i===dA&&(C||g===dA))throw new Error("Block is impossible");var r,o,n=sA(uA(A)),t=UA({account:n,previous:i,representative:I.representative,balance:I.balance,link:g}),h=yA({hash:t,secretKey:A});return C?r=uA(o=g):o=sA(r=g),{hash:t,block:{type:"state",account:n,previous:i,representative:I.representative,balance:I.balance,link:r,link_as_account:o,work:I.work,signature:h}}}export{nA as Unit,H as checkAddress,U as checkAmount,d as checkHash,D as checkIndex,k as checkKey,G as checkSeed,v as checkSignature,y as checkThreshold,p as checkWork,b as computeWork,SA as convert,kA as createBlock,sA as deriveAddress,uA as derivePublicKey,wA as deriveSecretKey,EA as generateSeed,GA as hashBlock,yA as signBlock,Y as validateWork,DA as verifyBlock};