diff --git a/css/app.58af62ab.css b/css/app.58af62ab.css new file mode 100644 index 0000000..43605d1 --- /dev/null +++ b/css/app.58af62ab.css @@ -0,0 +1 @@ +@import url(https://fonts.googleapis.com/css2?family=Nunito:wght@200;400;700&display=swap);body,html{background:linear-gradient(180deg,#4d5879,#26314e);color:#a7b0ca;font-family:Nunito,sans-serif;font-weight:700;font-size:16px;height:100%;margin:0}pre{overflow-x:auto;font-size:14px}*{box-sizing:border-box}.rotate svg{transition:all 2s linear}.rotate.down svg{transform:rotate(1turn)}.vue-notification-group{padding-top:50px}.df{display:flex}.error{background:#ca4b4b;margin:0 0 30px;padding:10px;text-align:center;color:#fff;font-weight:200}.lastrefresh{position:absolute;top:25px;right:0;font-size:10px;font-weight:400;letter-spacing:0;background:rgba(0,0,0,.18);padding:2px 4px;border-radius:3px;text-transform:none;opacity:.4}.labeltabs{display:flex;margin-bottom:5px}.labeltabs label{cursor:pointer;border-bottom:2px solid transparent;opacity:.4;transition:all .3s}.labeltabs label.active{font-weight:700;border-bottom:2px solid #59c7f1;opacity:1}.labeltabs label:first-child{margin-right:20px}.close{position:absolute;top:20px;right:20px;color:#59c7f1;font-size:24px;z-index:2}.morebutton{color:#ccc;font-size:14px;padding:0 10px}canvas{display:inline-block!important;max-width:100%;height:auto!important}#powstatus{width:100%;position:relative;height:32px;overflow:hidden;position:absolute;z-index:5}#powstatus .status{padding:5px;position:absolute;transition:all .7s;text-align:center;left:0;right:0;height:32px;text-shadow:0 0 6px rgba(0,0,0,.27)}#powstatus .status svg{-webkit-filter:drop-shadow(0 0 6px rgba(0,0,0,.270588));filter:drop-shadow(0 0 6px rgba(0,0,0,.270588))}#powstatus .status.busy{background:#363e58;top:-32px}#powstatus .status.busy.active{top:0}#powstatus .status.ready{background:#59c7f1;color:#fff;top:32px}#powstatus .status.ready.active{top:0}.showmobile{display:block!important}@media (min-width:1040px){.showmobile{display:none!important}}.hidemobile{display:none!important}@media (min-width:1040px){.hidemobile{display:block!important}}#app{overflow:hidden;position:relative}#app,#app .page{width:100vw;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}#app .page{background:#26314e;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjIAAAAUCAYAAACXptdbAAAA00lEQVR4nO3WOw7CMBAEUIfDcv8bhIqKhPgXixHvlbuzjhDNbKWUZ/m0H8zeznZH89pszW1PZq/cjdzW7lbmWmej9yP//Z3Znvnsm1X72u/0Zmfe/pNt0m/tfaf17q78zNyKzNHuLN8yn/HGivm3b1ztZmcu33s0PAIA8FMUGQAgliIDAMRSZACAWIoMABBLkQEAYikyAEAsRQYAiKXIAACxFBkAIJYiAwDEUmQAgFiKDAAQS5EBAGIpMgBALEUGAIilyAAAsRQZACCWIgMAZCqlvAC39jN1dolr3gAAAABJRU5ErkJggg==);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjIAAAAUCAYAAACXptdbAAAA00lEQVR4nO3WOw7CMBAEUIfDcv8bhIqKhPgXixHvlbuzjhDNbKWUZ/m0H8zeznZH89pszW1PZq/cjdzW7lbmWmej9yP//Z3Znvnsm1X72u/0Zmfe/pNt0m/tfaf17q78zNyKzNHuLN8yn/HGivm3b1ztZmcu33s0PAIA8FMUGQAgliIDAMRSZACAWIoMABBLkQEAYikyAEAsRQYAiKXIAACxFBkAIJYiAwDEUmQAgFiKDAAQS5EBAGIpMgBALEUGAIilyAAAsRQZACCWIgMAZCqlvAC39jN1dolr3gAAAABJRU5ErkJggg==),linear-gradient(180deg,#4d5879,#26314e);background-size:contain;padding:30px;transition:all .3s;position:absolute;top:32px;left:100vw}#app .page.active{left:0;z-index:2}#app .page .inner{overflow-y:auto;padding-bottom:65px;position:relative;width:calc(100% + 60px);padding:30px;padding-top:48px;margin:-30px}@media (min-width:1040px){#app .page .inner{display:flex;justify-content:center;overflow-y:visible}#app .page .inner.settings .block{max-width:500px}#app .page .inner .block{flex:1;padding:10px 30px}#app .page .inner .block .details{margin-bottom:15px}#app .page .inner .block .details input{margin-bottom:22px}#app .page .inner .block.history{height:calc(100vh - 75px);padding-bottom:75px;overflow:auto}#app .page .inner .block.pending{height:calc(100vh - 120px);padding-bottom:75px;overflow:auto}}#app .block{width:100%;max-width:600px}#app #login{justify-content:space-between;top:0}#app #receive,#app #send,#app #settings{z-index:2}#app #receive{justify-content:flex-start}#app #receive .qrcode{text-align:center}#app #receive .qrcode img{display:inline-block!important;max-width:100%;height:auto}#app #receive .block{display:flex;flex-direction:column;align-items:center;position:relative}#app #receive .btn{margin-top:15px;width:100%}#app #receive .address{font-size:18px;margin:0 30px 30px;font-weight:700;line-height:1.8}#app #receive .amount{position:absolute;top:0;right:-30px;left:-30px;padding:58px 20px 20px;background:linear-gradient(180deg,#3a435b 0,#161a24);z-index:3}#app #receive .amount input{border:none;background:transparent;font-size:40px;text-align:right;margin-bottom:0}#app #receive .amount input:focus{outline:none}#app #receive .keypad{display:flex;flex-direction:column;width:calc(100% + 60px);margin:156px -30px 0;border:1px solid rgba(0,0,0,.15)}#app #receive .keypad .row{display:flex;width:100%}#app #receive .keypad button{flex:0 0 33.333%;display:flex;height:65px;justify-content:center;align-items:center;background:transparent;border:1px solid rgba(0,0,0,.15);color:#a7b0ca;font-size:30px}#app #receive .receive-amount{background:#000;padding:5px 10px;border-radius:10px;margin-top:15px}#app #receive .receive .page{justify-content:flex-start;max-width:500px}#app #blockdetails,#app #scan{z-index:3}#app #scan{top:0}#app #settingsdetails{width:100%}#app #genwallet{top:0}#app .genwallet{color:#a7b0ca;font-size:14px;font-weight:400}#app #wallet{z-index:1;justify-content:flex-start;padding:0;top:0}#app #wallet .menu{position:absolute;bottom:0;height:75px;left:0;width:100%}#app #wallet .menu .bg{position:absolute;bottom:0;top:0;left:0;right:0;background:rgba(31,38,60,.68);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#app #wallet .menu .tab{cursor:pointer;flex:1;height:100%;justify-content:center;align-items:center;display:flex;flex-direction:column;font-weight:400;font-size:14px}#app #wallet .menu .tab .menuicon{margin-bottom:4px}#app #wallet .menu .content{position:absolute;bottom:0;top:0;left:0;right:0;display:flex;justify-content:space-evenly;align-items:center}#app #wallet .menu .content a{color:#fff;text-decoration:none}#app .scan-nfc-code .page,#app .scan-qr-code .page{position:fixed}#output .balance{background:#3e4761;margin:10px 10px 40px;padding:20px 40px;border-radius:10px;word-break:break-all;text-align:center;border:1px solid hsla(0,0%,100%,.07);box-shadow:0 0 11px rgba(0,0,0,.22);position:relative}#output .balance .balanceextra{position:absolute;bottom:8px;right:8px;padding:0 10px;color:#a7b0ca;font-size:12px}#output .balance .value{font-size:44px;color:#d1d5e2;font-weight:700;margin:30px 0;line-height:1;display:flex;justify-content:center;align-items:center}#output .balance .value img{display:inline-block;width:40px;margin-right:10px}#output .balance .value .suffix{font-size:30px;color:rgba(190,195,210,.79);margin-left:6px}#output .balance .raw{font-size:12px;line-height:1;display:flex;justify-content:center;display:none;letter-spacing:2px;font-weight:200}#output .balance .raw.active{display:flex}#output .balance .raw img{width:12px;margin-right:4px}.headingtitle{font-size:16px;font-weight:400;margin:40px 25px 5px;display:flex;justify-content:space-between;text-transform:uppercase;letter-spacing:4px}.headingtitle.top{margin:25px 20px 25px;position:relative}.address{word-break:break-all;font-size:16px;font-weight:200}.address .highlight{font-weight:700}#breakdown{justify-content:flex-start;height:calc(100% - 30px);overflow:auto;font-weight:200;word-break:break-all;width:100%}#breakdown header{font-size:24px;justify-content:flex-start;margin:0}#breakdown .title{font-weight:400;font-size:18px;display:flex;align-items:baseline;text-transform:uppercase;letter-spacing:2px}#breakdown .label{opacity:.7;font-size:14px;margin-top:5px;word-break:break-word}#breakdown .json{overflow:auto}#breakdown .block{margin-bottom:20px}#breakdown .stateblock,#breakdown .value{word-break:break-all}#breakdown .value{font-weight:200;font-size:16px;margin-left:25px;letter-spacing:0;text-transform:none}#breakdown .value.mla{margin-left:auto}#breakdown .hide{position:absolute;left:-999em}#breakdown .address{position:absolute;top:30px;left:0;font-weight:400}#breakdown .date{font-weight:400;margin-bottom:30px}#breakdown details.uaddress{height:100px}#breakdown .raw{font-size:12px}.mla{margin-left:auto}@media (max-width:600px){#send{padding-bottom:115px}}.btn.sendfunds{width:100%;margin:15px 0}@media (max-width:600px){.btn.sendfunds{position:absolute;bottom:32px;left:0;right:0;border-radius:0;margin:0 auto;font-size:20px!important;padding:30px!important;color:#fff!important;text-transform:uppercase;letter-spacing:2px;font-weight:600}}.scan-qr-code{margin-bottom:15px}.scan{width:100%}.highlight{color:#59c7f1}#history,#pendingblocks{width:100%;padding:0 10px}.transaction{display:flex;align-items:center;padding:20px;position:relative;border-bottom:1px solid hsla(0,0%,100%,.05)}.transaction:after{content:"";position:absolute;bottom:0;left:0;right:0;border-bottom:1px solid rgba(0,0,0,.32)}.transaction .innerdetails{flex:1}.transaction .address{font-weight:200;font-size:12px;opacity:.7}.transaction .address span{display:flex;justify-content:space-between}.transaction .icon{font-size:35px;margin-right:15px;opacity:.85;display:block}.transaction .value{display:flex;align-items:center;line-height:1;font-size:14px}.transaction .value svg{margin-left:5px}.transaction .amount{display:flex;align-items:center;justify-content:space-between}.transaction .amount .icon{margin-left:5px}.transaction .amount .type{color:#fff;font-size:14px}.transaction button.pocket{background:#e2ac39;border:none;padding:3px 8px;border-radius:7px}.transaction.receive .type{color:#59c7f1}.transaction.send .type{color:#af73d2}.transaction.pending .type{color:#e2ac39}#output{width:100%}#output .details{padding:0 40px}label{margin-bottom:10px;display:inline-block}input[type=password],input[type=text]{font-size:22px;padding:15px;background:rgba(0,0,0,.21);color:#a7b0ca;border-radius:5px;border:2px solid #59c7f1;margin-bottom:30px;width:100%}input[type=password]::-webkit-input-placeholder,input[type=text]::-webkit-input-placeholder{color:rgba(167,176,202,.43);font-weight:200}input[type=password]::-moz-placeholder,input[type=text]::-moz-placeholder{color:rgba(167,176,202,.43);font-weight:200}input[type=password]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder{color:rgba(167,176,202,.43);font-weight:200}input[type=password]::-ms-input-placeholder,input[type=text]::-ms-input-placeholder{color:rgba(167,176,202,.43);font-weight:200}input[type=password]::placeholder,input[type=text]::placeholder{color:rgba(167,176,202,.43);font-weight:200}@media (min-width:900px){input[type=password],input[type=text]{font-size:15px;padding:12px}}.login{position:relative}.login .eye,.login .max{position:absolute;display:flex;right:0;top:0;height:60px;width:60px;justify-content:center;align-items:center;font-size:24px}.login .eye span,.login .max span{display:none}.login .eye span.active,.login .max span.active{display:block}.login .max{font-size:14px;color:#59c7f1;cursor:pointer;font-weight:400}.login input[type=password],.login input[type=text]{padding-right:60px!important}@media (min-width:900px){.login input[type=password],.login input[type=text]{font-size:22px;padding:15px 60px 15px 15px}}.details{margin-bottom:30px;border-bottom:1px solid hsla(0,0%,100%,.13);position:relative}.details:after{position:absolute;content:"";border-bottom:1px solid rgba(0,0,0,.21);bottom:0;left:0;right:0}.details label{display:block}.details .copy{position:absolute;right:0;top:0;color:#59c7f1;text-decoration:underline}.details.smaller{margin-bottom:0;border-bottom:none}.details.smaller:after{display:none}.details.smaller input[type=password],.details.smaller input[type=text]{padding:10px;border:none;margin-bottom:20px;font-size:15px!important}.rpc{margin:-30px 0;width:calc(100% + 60px);position:relative;text-align:center;font-weight:400;padding:10px;background:rgba(0,0,0,.15);font-size:12px;letter-spacing:2px;text-transform:lowercase}.rpc span{color:#59c7f1;letter-spacing:0;text-transform:none;margin-left:10px}#inputs{display:flex;flex-direction:column;width:100%;max-width:500px;padding-top:50px}#inputs label{font-size:16px;font-weight:400;text-transform:uppercase;letter-spacing:2px}#inputs button{padding:15px;margin-bottom:15px}.btn{background:#59c7f1;border-radius:20px;border:none;color:#26314e;cursor:pointer;padding:10px 20px;font-size:16px;display:inline-block;justify-content:center;letter-spacing:3px;text-align:center;max-width:600px}.btn.outline{padding:8px 18px;border:2px solid rgba(89,199,241,.733333);background:transparent;color:rgba(89,199,241,.733333)}.btn.outline:hover{border-color:#59c7f1;color:#59c7f1}.inline-buttons{display:flex}.inline-buttons .btn{flex:1}input:-webkit-autofill,input:-webkit-autofill:active,input:-webkit-autofill:focus,input:-webkit-autofill:hover{-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s;-webkit-text-fill-color:#a7b0ca!important}#buttons button{background:none;color:#ccc;border:none;font-size:14px}.abbreviate{font-family:Courier New,Courier,monospace}.qrcode{max-width:260px;width:100%;height:auto!important;border-radius:50%;padding:40px;border:5px solid #59c7f1;background:#fff}#app .page[data-v-6a99bac7]{padding:30px}.print-position{margin-bottom:8px}.posbuttons{display:flex;flex-direction:column;justify-content:space-evenly}.posbuttons button{border-radius:0}.posbuttons button.btn{padding:0}.posbuttons button.outline img{opacity:.1}.posbuttons img{width:220px}#printwallet{display:none}.printpos{display:flex}.printpos canvas{background:#fff;max-width:500px;height:auto;margin-right:20px;border-radius:20px;display:none!important}.fdcol{flex-direction:column}#printimage{height:0;width:0}@media print{@page{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}body,html{margin:0;padding:0}.wallet canvas{max-width:100%!important}.wallet .close{display:none}.wallet>*{padding:0;margin:0}#printimage{display:block;position:fixed;height:279mm;width:210mm;top:0;right:0;z-index:999;background:#fff}}.btn[data-v-b3c21964]{width:100%;margin-bottom:15px}.canvas-bag[data-v-b3c21964]{text-align:center;margin-top:20px;display:flex;justify-content:center}.refreshwallet[data-v-b3c21964]{color:#59c7f1;margin-left:15px}#genwallet .login .max[data-v-b3c21964]{height:37px}.details .copy[data-v-b3c21964]{right:-21px;top:40px} \ No newline at end of file diff --git a/index.html b/index.html index 4aa984f..5c7f912 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -
This wallet is designed to use any Nano Node RPC server as a backend, using nano.linuxserver.io will plug you into our own public network. More information including how to get funds from a faucet is available on GitHub.
If you are looking for the live Nano network please use tixwallet.cc.
\n \n{{ JSON.stringify(blockstate, null, 4) }}\n c&&(d.c.length=c):n&&(d=d.mod(e))}if(o){if(0===(o=a(o/2)))break;h=o%2}else if(Z(t=t.times(r),t.e+1,1),14 \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nvar util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n var o0 = v[a] + v[b]\n var o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n var o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n var o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return (arr[i] ^\n (arr[i + 1] << 8) ^\n (arr[i + 2] << 16) ^\n (arr[i + 3] << 24))\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n var x0 = m[ix]\n var x1 = m[ix + 1]\n var y0 = m[iy]\n var y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n var xor0 = v[d] ^ v[a]\n var xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nvar BLAKE2B_IV32 = new Uint32Array([\n 0xF3BCC908, 0x6A09E667, 0x84CAA73B, 0xBB67AE85,\n 0xFE94F82B, 0x3C6EF372, 0x5F1D36F1, 0xA54FF53A,\n 0xADE682D1, 0x510E527F, 0x2B3E6C1F, 0x9B05688C,\n 0xFB41BD6B, 0x1F83D9AB, 0x137E2179, 0x5BE0CD19\n])\n\nvar SIGMA8 = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,\n 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,\n 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,\n 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,\n 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,\n 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,\n 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,\n 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nvar SIGMA82 = new Uint8Array(SIGMA8.map(function (x) { return x * 2 }))\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nvar v = new Uint32Array(32)\nvar m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n var i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\nfunction blake2bInit (outlen, key) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n\n // state, 'param block'\n var ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // initialize hash state\n for (var i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i]\n }\n var keylen = key ? key.length : 0\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (var i = 0; i < input.length; i++) {\n if (ctx.c === 128) { // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) { // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n var out = new Uint8Array(ctx.outlen)\n for (var i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2b (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n\n // do the math\n var ctx = blake2bInit(outlen, key)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2bHex (input, key, outlen) {\n var output = blake2b(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","/*!\n* nanocurrency-js v2.4.0: A toolkit for the Nano cryptocurrency.\n* Copyright (c) 2020 Marvin ROGER i[a]^r?1:-1;return c==u?0:c>u^r?1:-1}function w(t,e,r,n){if(ts&&(r=s-c),i=r;i>=0;i--){for(var f=!0,h=0;ho)&&(r=o),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return k(this,t,e,r);case"utf8":case"utf-8":return E(this,t,e,r);case"ascii":return x(this,t,e,r);case"latin1":case"binary":return S(this,t,e,r);case"base64":return _(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,e,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;function D(t){var e=t.length;if(e<=Q)return String.fromCharCode.apply(String,t);var r="",n=0;while(nr?r:t}var s=function(){function t(t,e){this.width=t,this.data=new Uint8ClampedArray(t*e)}return t.prototype.get=function(t,e){return this.data[e*this.width+t]},t.prototype.set=function(t,e,r){this.data[e*this.width+t]=r},t}();function c(t,e,r,c){if(t.length!==e*r*4)throw new Error("Malformed data passed to binarizer.");for(var u=new s(e,r),l=0;l0){if(y===c)break;y+=g,d-=f}}for(var w=[],C=0;C