{"version":3,"file":"js/dist/main.15f31f828bd44e76fe9f.js","mappings":"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","sources":["webpack:///../../../../node_modules/svelte/internal/index.mjs","webpack:///./_snowpack/env.js","webpack:///../../../../node_modules/svelte/store/index.mjs","webpack:///../../../node_modules/tinro/dist/tinro_lib.js","webpack:///../../../node_modules/tinro/cmp/Route.svelte","webpack:///../../../../node_modules/eosio-signing-request/lib/esr.m.js","webpack:///../../../../node_modules/uuid/dist/esm-browser/rng.js","webpack:///../../../../node_modules/fetch-ponyfill/build/fetch-browser.js","webpack:///../../../../node_modules/@greymass/miniaes/lib/miniaes.m.js","webpack:///../../../../node_modules/uuid/dist/esm-browser/regex.js","webpack:///../../../../node_modules/uuid/dist/esm-browser/validate.js","webpack:///../../../../node_modules/uuid/dist/esm-browser/stringify.js","webpack:///../../../../node_modules/uuid/dist/esm-browser/v4.js","webpack:///../../../../node_modules/isomorphic-ws/browser.js","webpack:///../../../../node_modules/anchor-link/lib/anchor-link.m.js","webpack:///../src/config.ts","webpack:///../../../node_modules/idb/build/wrap-idb-value.js","webpack:///../../../node_modules/idb/build/index.js","webpack:///../../../node_modules/svelte-result-store/lib/svelte-result-store.m.js","webpack:///../src/db.ts","webpack:///../src/preferences.ts","webpack:///../src/lib/readable-object.ts","webpack:///../src/abi-types.ts","webpack:///../src/api-client.ts","webpack:///../src/price-ticker.ts","webpack:///../src/stores/account-provider.ts","webpack:///../src/store.ts","webpack:///../../../node_modules/anchor-link-browser-transport/lib/anchor-link-browser-transport.m.js","webpack:///../src/auth.ts","webpack:///icon.svelte","webpack:///button.svelte","webpack:///text.svelte","webpack:///../src/stores/toast.ts","webpack:///login.svelte","webpack:///segment.svelte","webpack:///list.svelte","webpack:///sidebar.svelte","webpack:///mode.svelte","webpack:///header.svelte","webpack:///media-query.svelte","webpack:///logo.svelte","webpack:///unicove.svelte","webpack:///content.svelte","webpack:///index.svelte","webpack:///page.svelte","webpack:///features.svelte","webpack:///unicove-animated.svelte","webpack:///../src/stores/balances-provider.ts","webpack:///../src/stores/tokens.ts","webpack:///../src/stores/balances.ts","webpack:///../../../../node_modules/@greymass/eosio-resources/lib/eosio-resources.m.js","webpack:///../src/pages/resources/resources.ts","webpack:///group.svelte","webpack:///image.svelte","webpack:///token.svelte","webpack:///headerrow.svelte","webpack:///number.svelte","webpack:///row.svelte","webpack:///table.svelte","webpack:///../src/pages/request/request.ts","webpack:///../src/pages/request/template.ts","webpack:///qrcode.svelte","webpack:///default.svelte","webpack:///loading.svelte","webpack:///../src/pages/request/resources.ts","webpack:///newaccount.svelte","webpack:///../src/pages/transfer/transfer.ts","webpack:///../src/pages/transfer/fio.ts","webpack:///form.svelte","webpack:///card.svelte","webpack:///../src/components/tx-follower/utils.ts","webpack:///summary.svelte","webpack:///advanced.svelte","webpack:///transaction.svelte","webpack:///label.svelte","webpack:///input.svelte","webpack:///errorMessage.svelte","webpack:///labelled.svelte","webpack:///lookup.svelte","webpack:///../src/components/elements/input/validators/presence.ts","webpack:///../src/components/elements/input/validators/publicKey.ts","webpack:///publicKey.svelte","webpack:///recipient.svelte","webpack:///../src/components/elements/input/validators/asset.ts","webpack:///asset.svelte","webpack:///modal.svelte","webpack:///selector.svelte","webpack:///amount.svelte","webpack:///container.svelte","webpack:///change.svelte","webpack:///completed.svelte","webpack:///address.svelte","webpack:///account.svelte","webpack:///quantity.svelte","webpack:///fee.svelte","webpack:///confirm.svelte","webpack:///clipboard.svelte","webpack:///receive.svelte","webpack:///memo.svelte","webpack:///sending.svelte","webpack:///main.svelte","webpack:///../../../../node_modules/svelte/motion/index.mjs","webpack:///../../../../node_modules/svelte/easing/index.mjs","webpack:///gauge.svelte","webpack:///cpu.svelte","webpack:///net.svelte","webpack:///ram.svelte","webpack:///prices.svelte","webpack:///balance.svelte","webpack:///rambuy.svelte","webpack:///buy.svelte","webpack:///ramsell.svelte","webpack:///sell.svelte","webpack:///progress.svelte","webpack:///fuel.svelte","webpack:///powerup.svelte","webpack:///rex.svelte","webpack:///staking.svelte","webpack:///buttons.svelte","webpack:///../src/components/elements/input/validators/account.ts","webpack:///forms.svelte","webpack:///icons.svelte","webpack:///inputs.svelte","webpack:///trigger.svelte","webpack:///modals.svelte","webpack:///segments.svelte","webpack:///tx-follower.svelte","webpack:///nav.svelte","webpack:///../../../../node_modules/svelte/transition/index.mjs","webpack:///toast.svelte","webpack:///toasts.svelte","webpack:///app.svelte","webpack:///../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration();\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor() {\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes) {\n super();\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { stylesheet } = info;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n info.rules = {};\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape_attribute_value(value.toString())}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.47.0' }, detail), true));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n if (tag && typeof tag !== 'string') {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","export const SNOWPACK_PUBLIC_BRANCH = \"HEAD\";\nexport const SNOWPACK_PUBLIC_REV = \"ac2b23b\";\nexport const SNOWPACK_PUBLIC_VERSION = \"0.42.0\";\nexport const MODE = \"production\";\nexport const NODE_ENV = \"production\";\nexport const SSR = false;","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","import{getContext as C}from\"svelte\";import{writable as F}from\"svelte/store\";function p(e,a=!1){return e=e.slice(e.startsWith(\"/#\")?2:0,e.endsWith(\"/*\")?-2:void 0),e.startsWith(\"/\")||(e=\"/\"+e),e===\"/\"&&(e=\"\"),a&&!e.endsWith(\"/\")&&(e+=\"/\"),e}function d(e,a){e=p(e,!0),a=p(a,!0);let r=[],n={},t=!0,s=e.split(\"/\").map(o=>o.startsWith(\":\")?(r.push(o.slice(1)),\"([^\\\\/]+)\"):o).join(\"\\\\/\"),c=a.match(new RegExp(`^${s}$`));return c||(t=!1,c=a.match(new RegExp(`^${s}`))),c?(r.forEach((o,h)=>n[o]=c[h+1]),{exact:t,params:n,part:c[0].slice(0,-1)}):null}function x(e,a,r){if(r===\"\")return e;if(r[0]===\"/\")return r;let n=c=>c.split(\"/\").filter(o=>o!==\"\"),t=n(e),s=a?n(a):[];return\"/\"+s.map((c,o)=>t[o]).join(\"/\")+\"/\"+r}function m(e,a,r,n){let t=[a,\"data-\"+a].reduce((s,c)=>{let o=e.getAttribute(c);return r&&e.removeAttribute(c),o===null?s:o},!1);return!n&&t===\"\"?!0:t||n||!1}function S(e){let a=e.split(\"&\").map(r=>r.split(\"=\")).reduce((r,n)=>{let t=n[0];if(!t)return r;let s=n.length>1?n[n.length-1]:!0;return typeof s==\"string\"&&s.includes(\",\")&&(s=s.split(\",\")),r[t]===void 0?r[t]=[s]:r[t].push(s),r},{});return Object.entries(a).reduce((r,n)=>(r[n[0]]=n[1].length>1?n[1]:n[1][0],r),{})}function M(e){return Object.entries(e).map(([a,r])=>r?r===!0?a:`${a}=${Array.isArray(r)?r.join(\",\"):r}`:null).filter(a=>a).join(\"&\")}function w(e,a){return e?a+e:\"\"}function k(e){throw new Error(\"[Tinro] \"+e)}var i={HISTORY:1,HASH:2,MEMORY:3,OFF:4,run(e,a,r,n){return e===this.HISTORY?a&&a():e===this.HASH?r&&r():n&&n()},getDefault(){return!window||window.location.pathname===\"srcdoc\"?this.MEMORY:this.HISTORY}};import\"svelte/store\";var y,$,H,b=\"\",l=E();function E(){let e=i.getDefault(),a,r=c=>window.onhashchange=window.onpopstate=y=null,n=c=>a&&a(R(e)),t=c=>{c&&(e=c),r(),e!==i.OFF&&i.run(e,o=>window.onpopstate=n,o=>window.onhashchange=n)&&n()},s=c=>{let o=Object.assign(R(e),c);return o.path+w(M(o.query),\"?\")+w(o.hash,\"#\")};return{mode:t,get:c=>R(e),go(c,o){_(e,c,o),n()},start(c){a=c,t()},stop(){a=null,t(i.OFF)},set(c){this.go(s(c),!c.path)},methods(){return j(this)},base:c=>b=c}}function _(e,a,r){!r&&($=H);let n=t=>history[`${r?\"replace\":\"push\"}State`]({},\"\",t);i.run(e,t=>n(b+a),t=>n(`#${a}`),t=>y=a)}function R(e){let a=window.location,r=i.run(e,t=>(b?a.pathname.replace(b,\"\"):a.pathname)+a.search+a.hash,t=>String(a.hash.slice(1)||\"/\"),t=>y||\"/\"),n=r.match(/^([^?#]+)(?:\\?([^#]+))?(?:\\#(.+))?$/);return H=r,{url:r,from:$,path:n[1]||\"\",query:S(n[2]||\"\"),hash:n[3]||\"\"}}function j(e){let a=()=>e.get().query,r=c=>e.set({query:c}),n=c=>r(c(a())),t=()=>e.get().hash,s=c=>e.set({hash:c});return{hash:{get:t,set:s,clear:()=>s(\"\")},query:{replace:r,clear:()=>r(\"\"),get(c){return c?a()[c]:a()},set(c,o){n(h=>(h[c]=o,h))},delete(c){n(o=>(o[c]&&delete o[c],o))}}}}var f=T();function T(){let{subscribe:e}=F(l.get(),a=>{l.start(a);let r=P(l.go);return()=>{l.stop(),r()}});return{subscribe:e,goto:l.go,params:Q,meta:O,useHashNavigation:a=>l.mode(a?i.HASH:i.HISTORY),mode:{hash:()=>l.mode(i.HASH),history:()=>l.mode(i.HISTORY),memory:()=>l.mode(i.MEMORY)},base:l.base,location:l.methods()}}function Y(e){let a,r,n,t,s=()=>{a=m(e,\"href\").replace(/^\\/#|[?#].*$|\\/$/g,\"\"),r=m(e,\"exact\",!0),n=m(e,\"active-class\",!0,\"active\")},c=()=>{let o=d(a,t);o&&(o.exact&&r||!r)?e.classList.add(n):e.classList.remove(n)};return s(),{destroy:f.subscribe(o=>{t=o.path,c()}),update:()=>{s(),c()}}}function P(e){let a=r=>{let n=r.target.closest(\"a[href]\"),t=n&&m(n,\"target\",!1,\"_self\"),s=n&&m(n,\"tinro-ignore\"),c=r.ctrlKey||r.metaKey||r.altKey||r.shiftKey;if(t==\"_self\"&&!s&&!c&&n){let o=n.getAttribute(\"href\").replace(/^\\/#/,\"\");/^\\/\\/|^#|^[a-zA-Z]+:/.test(o)||(r.preventDefault(),e(o.startsWith(\"/\")?o:n.href.replace(window.location.origin,\"\")))}};return addEventListener(\"click\",a),()=>removeEventListener(\"click\",a)}function Q(){return C(\"tinro\").meta.params}import{hasContext as U,getContext as L,setContext as W,onMount as z,tick as D}from\"svelte\";import{writable as I}from\"svelte/store\";var g=\"tinro\",K=v({pattern:\"\",matched:!0});function q(e){let a=L(g)||K;(a.exact||a.fallback)&&k(`${e.fallback?\"\":``} can't be inside ${a.fallback?\"\":` with exact path`}`);let r=e.fallback?\"fallbacks\":\"childs\",n=I({}),t=v({fallback:e.fallback,parent:a,update(s){t.exact=!s.path.endsWith(\"/*\"),t.pattern=p(`${t.parent.pattern||\"\"}${s.path}`),t.redirect=s.redirect,t.firstmatch=s.firstmatch,t.breadcrumb=s.breadcrumb,t.match()},register:()=>(t.parent[r].add(t),async()=>{t.parent[r].delete(t),t.parent.activeChilds.delete(t),t.router.un&&t.router.un(),t.parent.match()}),show:()=>{e.onShow(),!t.fallback&&t.parent.activeChilds.add(t)},hide:()=>{e.onHide(),t.parent.activeChilds.delete(t)},match:async()=>{t.matched=!1;let{path:s,url:c,from:o,query:h}=t.router.location,u=d(t.pattern,s);if(!t.fallback&&u&&t.redirect&&(!t.exact||t.exact&&u.exact)){let A=x(s,t.parent.pattern,t.redirect);return f.goto(A,!0)}t.meta=u&&{from:o,url:c,query:h,match:u.part,pattern:t.pattern,breadcrumbs:t.parent.meta&&t.parent.meta.breadcrumbs.slice()||[],params:u.params,subscribe:n.subscribe},t.breadcrumb&&t.meta&&t.meta.breadcrumbs.push({name:t.breadcrumb,path:u.part}),n.set(t.meta),u&&!t.fallback&&(!t.exact||t.exact&&u.exact)&&(!t.parent.firstmatch||!t.parent.matched)?(e.onMeta(t.meta),t.parent.matched=!0,t.show()):t.hide(),u&&t.showFallbacks()}});return W(g,t),z(()=>t.register()),t}function O(){return U(g)?L(g).meta:k(\"meta() function must be run inside any `` child component only\")}function v(e){let a={router:{},exact:!1,pattern:null,meta:null,parent:null,fallback:!1,redirect:!1,firstmatch:!1,breadcrumb:null,matched:!1,childs:new Set,activeChilds:new Set,fallbacks:new Set,async showFallbacks(){if(!this.fallback&&(await D(),this.childs.size>0&&this.activeChilds.size==0||this.childs.size==0&&this.fallbacks.size>0)){let r=this;for(;r.fallbacks.size==0;)if(r=r.parent,!r)return;r&&r.fallbacks.forEach(n=>{if(n.redirect){let t=x(\"/\",n.parent.pattern,n.redirect);f.goto(t,!0)}else n.show()})}},start(){this.router.un||(this.router.un=f.subscribe(r=>{this.router.location=r,this.pattern!==null&&this.match()}))},match(){this.showFallbacks()}};return Object.assign(a,e),a.start(),a}export{Y as active,q as createRouteObject,O as meta,f as router};\n","\n\n{#if showContent}\n \n{/if}","/**\n * EOSIO Signing Request v2.4.0\n * https://github.com/greymass/eosio-signing-request\n *\n * @license\n * Copyright © 2021 Greymass Inc.\n * \n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the “Software”), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n * \n * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR\n * INTENDED FOR USE IN THE DESIGN, CONSTRUCTION, OPERATION OR\n * MAINTENANCE OF ANY MILITARY FACILITY.\n */\nimport { TypeAlias, Variant, Checksum256, isInstanceOf, UInt8, Struct, PermissionLevel, Action, Transaction, Name, TimePointSec, Signature, Serializer, Authority, Bytes, ABIEncoder, ABIDecoder, ABI, UInt16, UInt32 } from '@greymass/eosio';\nimport { __decorate } from 'tslib';\n\n/**\n * Base64u - URL-Safe Base64 variant no padding.\n * Based on https://gist.github.com/jonleighton/958841\n */\nconst baseCharset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nconst lookup = new Uint8Array(256);\nfor (let i = 0; i < 62; i++) {\n lookup[baseCharset.charCodeAt(i)] = i;\n}\n// support both urlsafe and standard base64\nlookup[43] = lookup[45] = 62;\nlookup[47] = lookup[95] = 63;\nfunction encode(data, urlSafe = true) {\n const byteLength = data.byteLength;\n const byteRemainder = byteLength % 3;\n const mainLength = byteLength - byteRemainder;\n const charset = baseCharset + (urlSafe ? '-_' : '+/');\n const parts = [];\n let a;\n let b;\n let c;\n let d;\n let chunk;\n // Main loop deals with bytes in chunks of 3\n for (let i = 0; i < mainLength; i += 3) {\n // Combine the three bytes into a single integer\n chunk = (data[i] << 16) | (data[i + 1] << 8) | data[i + 2];\n // Use bitmasks to extract 6-bit segments from the triplet\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n d = chunk & 63; // 63 = 2^6 - 1\n // Convert the raw binary segments to the appropriate ASCII encoding\n parts.push(charset[a] + charset[b] + charset[c] + charset[d]);\n }\n // Deal with the remaining bytes\n if (byteRemainder === 1) {\n chunk = data[mainLength];\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n // Set the 4 least significant bits to zero\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\n parts.push(charset[a] + charset[b]);\n }\n else if (byteRemainder === 2) {\n chunk = (data[mainLength] << 8) | data[mainLength + 1];\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n // Set the 2 least significant bits to zero\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\n parts.push(charset[a] + charset[b] + charset[c]);\n }\n return parts.join('');\n}\nfunction decode(input) {\n const byteLength = input.length * 0.75;\n const data = new Uint8Array(byteLength);\n let a;\n let b;\n let c;\n let d;\n let p = 0;\n for (let i = 0; i < input.length; i += 4) {\n a = lookup[input.charCodeAt(i)];\n b = lookup[input.charCodeAt(i + 1)];\n c = lookup[input.charCodeAt(i + 2)];\n d = lookup[input.charCodeAt(i + 3)];\n data[p++] = (a << 2) | (b >> 4);\n data[p++] = ((b & 15) << 4) | (c >> 2);\n data[p++] = ((c & 3) << 6) | (d & 63);\n }\n return data;\n}\n\nvar base64u = /*#__PURE__*/Object.freeze({\n __proto__: null,\n encode: encode,\n decode: decode\n});\n\n/** Chain ID aliases. */\nvar ChainName;\n(function (ChainName) {\n ChainName[ChainName[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n ChainName[ChainName[\"EOS\"] = 1] = \"EOS\";\n ChainName[ChainName[\"TELOS\"] = 2] = \"TELOS\";\n ChainName[ChainName[\"JUNGLE\"] = 3] = \"JUNGLE\";\n ChainName[ChainName[\"KYLIN\"] = 4] = \"KYLIN\";\n ChainName[ChainName[\"WORBLI\"] = 5] = \"WORBLI\";\n ChainName[ChainName[\"BOS\"] = 6] = \"BOS\";\n ChainName[ChainName[\"MEETONE\"] = 7] = \"MEETONE\";\n ChainName[ChainName[\"INSIGHTS\"] = 8] = \"INSIGHTS\";\n ChainName[ChainName[\"BEOS\"] = 9] = \"BEOS\";\n ChainName[ChainName[\"WAX\"] = 10] = \"WAX\";\n ChainName[ChainName[\"PROTON\"] = 11] = \"PROTON\";\n ChainName[ChainName[\"FIO\"] = 12] = \"FIO\";\n})(ChainName || (ChainName = {}));\nlet ChainId = class ChainId extends Checksum256 {\n static from(value) {\n if (isInstanceOf(value, this)) {\n return value;\n }\n if (typeof value === 'number') {\n value = ChainIdLookup.get(value);\n if (!value) {\n throw new Error('Unknown chain id alias');\n }\n }\n return super.from(value);\n }\n get chainVariant() {\n const name = this.chainName;\n if (name !== ChainName.UNKNOWN) {\n return ChainIdVariant.from(['chain_alias', name]);\n }\n return ChainIdVariant.from(this);\n }\n get chainName() {\n const cid = this.hexString;\n for (const [n, id] of ChainIdLookup) {\n if (id === cid) {\n return n;\n }\n }\n return ChainName.UNKNOWN;\n }\n};\nChainId = __decorate([\n TypeAlias('chain_id')\n], ChainId);\nlet ChainAlias = class ChainAlias extends UInt8 {\n};\nChainAlias = __decorate([\n TypeAlias('chain_alias')\n], ChainAlias);\nlet ChainIdVariant = class ChainIdVariant extends Variant {\n get chainId() {\n if (isInstanceOf(this.value, ChainId)) {\n return this.value;\n }\n return ChainId.from(Number(this.value.value));\n }\n};\nChainIdVariant = __decorate([\n Variant.type('variant_id', [ChainAlias, ChainId])\n], ChainIdVariant);\nconst ChainIdLookup = new Map([\n [ChainName.EOS, 'aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906'],\n [ChainName.TELOS, '4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11'],\n [ChainName.JUNGLE, 'e70aaab8997e1dfce58fbfac80cbbb8fecec7b99cf982a9444273cbc64c41473'],\n [ChainName.KYLIN, '5fff1dae8dc8e2fc4d5b23b2c7665c97f9e9d8edf2b6485a86ba311c25639191'],\n [ChainName.WORBLI, '73647cde120091e0a4b85bced2f3cfdb3041e266cbbe95cee59b73235a1b3b6f'],\n [ChainName.BOS, 'd5a3d18fbb3c084e3b1f3fa98c21014b5f3db536cc15d08f9f6479517c6a3d86'],\n [ChainName.MEETONE, 'cfe6486a83bad4962f232d48003b1824ab5665c36778141034d75e57b956e422'],\n [ChainName.INSIGHTS, 'b042025541e25a472bffde2d62edd457b7e70cee943412b1ea0f044f88591664'],\n [ChainName.BEOS, 'b912d19a6abd2b1b05611ae5be473355d64d95aeff0c09bedc8c166cd6468fe4'],\n [ChainName.WAX, '1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4'],\n [ChainName.PROTON, '384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0'],\n [ChainName.FIO, '21dcae42c0182200e93f954a074011f9048a7624c6fe81d3c9541a614a88bd1c'],\n]);\n\n/** SigningRequest ABI and typedefs. */\nvar RequestFlags_1;\nlet AccountName = class AccountName extends Name {\n};\nAccountName = __decorate([\n TypeAlias('account_name')\n], AccountName);\nlet PermissionName = class PermissionName extends Name {\n};\nPermissionName = __decorate([\n TypeAlias('permission_name')\n], PermissionName);\nlet IdentityV2 = class IdentityV2 extends Struct {\n};\n__decorate([\n Struct.field(PermissionLevel, { optional: true })\n], IdentityV2.prototype, \"permission\", void 0);\nIdentityV2 = __decorate([\n Struct.type('identity')\n], IdentityV2);\nlet IdentityV3 = class IdentityV3 extends Struct {\n};\n__decorate([\n Struct.field('name')\n], IdentityV3.prototype, \"scope\", void 0);\n__decorate([\n Struct.field(PermissionLevel, { optional: true })\n], IdentityV3.prototype, \"permission\", void 0);\nIdentityV3 = __decorate([\n Struct.type('identity')\n], IdentityV3);\nlet RequestVariantV2 = class RequestVariantV2 extends Variant {\n};\nRequestVariantV2 = __decorate([\n Variant.type('variant_req', [Action, { type: Action, array: true }, Transaction, IdentityV2])\n], RequestVariantV2);\nlet RequestVariantV3 = class RequestVariantV3 extends Variant {\n};\nRequestVariantV3 = __decorate([\n Variant.type('variant_req', [Action, { type: Action, array: true }, Transaction, IdentityV3])\n], RequestVariantV3);\nlet RequestFlags = RequestFlags_1 = class RequestFlags extends UInt8 {\n get broadcast() {\n return (Number(this) & RequestFlags_1.broadcast) !== 0;\n }\n set broadcast(enabled) {\n this.setFlag(RequestFlags_1.broadcast, enabled);\n }\n get background() {\n return (Number(this) & RequestFlags_1.background) !== 0;\n }\n set background(enabled) {\n this.setFlag(RequestFlags_1.background, enabled);\n }\n setFlag(flag, enabled) {\n if (enabled) {\n // TODO: implement bitwise operators in core, bn.js setbit does not work\n this.value = UInt8.from(Number(this) | flag).value;\n }\n else {\n this.value = UInt8.from(Number(this) & ~flag).value;\n }\n }\n};\nRequestFlags.broadcast = 1 << 0;\nRequestFlags.background = 1 << 1;\nRequestFlags = RequestFlags_1 = __decorate([\n TypeAlias('request_flags')\n], RequestFlags);\nlet InfoPair = class InfoPair extends Struct {\n};\n__decorate([\n Struct.field('string')\n], InfoPair.prototype, \"key\", void 0);\n__decorate([\n Struct.field('bytes')\n], InfoPair.prototype, \"value\", void 0);\nInfoPair = __decorate([\n Struct.type('info_pair')\n], InfoPair);\nlet RequestDataV2 = class RequestDataV2 extends Struct {\n};\n__decorate([\n Struct.field(ChainIdVariant)\n], RequestDataV2.prototype, \"chain_id\", void 0);\n__decorate([\n Struct.field(RequestVariantV2)\n], RequestDataV2.prototype, \"req\", void 0);\n__decorate([\n Struct.field(RequestFlags)\n], RequestDataV2.prototype, \"flags\", void 0);\n__decorate([\n Struct.field('string')\n], RequestDataV2.prototype, \"callback\", void 0);\n__decorate([\n Struct.field(InfoPair, { array: true })\n], RequestDataV2.prototype, \"info\", void 0);\nRequestDataV2 = __decorate([\n Struct.type('signing_request')\n], RequestDataV2);\nlet RequestDataV3 = class RequestDataV3 extends Struct {\n};\n__decorate([\n Struct.field(ChainIdVariant)\n], RequestDataV3.prototype, \"chain_id\", void 0);\n__decorate([\n Struct.field(RequestVariantV3)\n], RequestDataV3.prototype, \"req\", void 0);\n__decorate([\n Struct.field(RequestFlags)\n], RequestDataV3.prototype, \"flags\", void 0);\n__decorate([\n Struct.field('string')\n], RequestDataV3.prototype, \"callback\", void 0);\n__decorate([\n Struct.field(InfoPair, { array: true })\n], RequestDataV3.prototype, \"info\", void 0);\nRequestDataV3 = __decorate([\n Struct.type('signing_request')\n], RequestDataV3);\nlet RequestSignature = class RequestSignature extends Struct {\n};\n__decorate([\n Struct.field('name')\n], RequestSignature.prototype, \"signer\", void 0);\n__decorate([\n Struct.field('signature')\n], RequestSignature.prototype, \"signature\", void 0);\nRequestSignature = __decorate([\n Struct.type('request_signature')\n], RequestSignature);\n\nvar IdentityProof_1;\nlet IdentityProof = IdentityProof_1 = class IdentityProof extends Struct {\n static from(value) {\n if (isInstanceOf(value, IdentityProof_1)) {\n return value;\n }\n else if (typeof value === 'string') {\n return IdentityProof_1.fromString(value);\n }\n else {\n return super.from(value);\n }\n }\n /**\n * Create a new instance from an EOSIO authorization header string.\n * \"EOSIO \"\n */\n static fromString(string) {\n const parts = string.split(' ');\n if (parts.length !== 2 || parts[0] !== 'EOSIO') {\n throw new Error('Invalid IdentityProof string');\n }\n const data = decode(parts[1]);\n return Serializer.decode({ data, type: IdentityProof_1 });\n }\n /** Create a new instance from a callback payload. */\n static fromPayload(payload, options = {}) {\n const request = SigningRequest.from(payload.req, options);\n if (!(request.version >= 3 && request.isIdentity())) {\n throw new Error('Not an identity request');\n }\n return this.from({\n chainId: payload.cid || request.getChainId(),\n scope: request.getIdentityScope(),\n expiration: payload.ex,\n signer: { actor: payload.sa, permission: payload.sp },\n signature: payload.sig,\n });\n }\n /**\n * Transaction this proof resolves to.\n * @internal\n */\n get transaction() {\n const action = Action.from({\n account: '',\n name: 'identity',\n authorization: [this.signer],\n data: IdentityV3.from({ scope: this.scope, permission: this.signer }),\n });\n return Transaction.from({\n ref_block_num: 0,\n ref_block_prefix: 0,\n expiration: this.expiration,\n actions: [action],\n });\n }\n /**\n * Recover the public key that signed this proof.\n */\n recover() {\n return this.signature.recoverDigest(this.transaction.signingDigest(this.chainId));\n }\n /**\n * Verify that given authority signed this proof.\n * @param auth The accounts signing authority.\n * @param currentTime Time to verify expiry against, if unset will use system time.\n */\n verify(auth, currentTime) {\n const now = TimePointSec.from(currentTime || new Date()).toMilliseconds();\n return (now < this.expiration.toMilliseconds() &&\n Authority.from(auth).hasPermission(this.recover()));\n }\n /**\n * Encode the proof to an `EOSIO` auth header string.\n */\n toString() {\n const data = Serializer.encode({ object: this });\n return `EOSIO ${encode(data.array, false)}`;\n }\n};\n__decorate([\n Struct.field(ChainId)\n], IdentityProof.prototype, \"chainId\", void 0);\n__decorate([\n Struct.field(Name)\n], IdentityProof.prototype, \"scope\", void 0);\n__decorate([\n Struct.field(TimePointSec)\n], IdentityProof.prototype, \"expiration\", void 0);\n__decorate([\n Struct.field(PermissionLevel)\n], IdentityProof.prototype, \"signer\", void 0);\n__decorate([\n Struct.field(Signature)\n], IdentityProof.prototype, \"signature\", void 0);\nIdentityProof = IdentityProof_1 = __decorate([\n Struct.type('identity_proof')\n], IdentityProof);\n\n/**\n * EOSIO Signing Request (ESR).\n */\n/** Current supported protocol version, backwards compatible with version 2. */\nconst ProtocolVersion = 3;\n/**\n * The placeholder name: `............1` aka `uint64(1)`.\n * If used in action data will be resolved to current signer.\n * If used in as an authorization permission will be resolved to\n * the signers permission level.\n *\n * Example action:\n * ```\n * { account: \"eosio.token\",\n * name: \"transfer\",\n * authorization: [{actor: \"............1\", permission: \"............1\"}],\n * data: {\n * from: \"............1\",\n * to: \"bar\",\n * quantity: \"42.0000 EOS\",\n * memo: \"Don't panic\" }}\n * ```\n * When signed by `foo@active` would resolve to:\n * ```\n * { account: \"eosio.token\",\n * name: \"transfer\",\n * authorization: [{actor: \"foo\", permission: \"active\"}],\n * data: {\n * from: \"foo\",\n * to: \"bar\",\n * quantity: \"42.0000 EOS\",\n * memo: \"Don't panic\" }}\n * ```\n */\nconst PlaceholderName = Name.from('............1'); // aka uint64(1)\n/** Placeholder that will resolve to signer permission name. */\nconst PlaceholderPermission = Name.from('............2'); // aka uint64(2)\nconst PlaceholderAuth = PermissionLevel.from({\n actor: PlaceholderName,\n permission: PlaceholderPermission,\n});\nclass SigningRequest {\n /**\n * Create a new signing request.\n * Normally not used directly, see the `create` and `from` class methods.\n */\n constructor(version, data, zlib, abiProvider, signature) {\n if (data.flags.broadcast && data.req.variantName === 'identity') {\n throw new Error('Invalid request (identity request cannot be broadcast)');\n }\n this.version = version;\n this.data = data;\n this.zlib = zlib;\n this.abiProvider = abiProvider;\n this.signature = signature;\n }\n /** Return the identity ABI for given version. */\n static identityAbi(version) {\n const abi = Serializer.synthesize(this.identityType(version));\n abi.actions = [{ name: 'identity', type: 'identity', ricardian_contract: '' }];\n return abi;\n }\n /** Return the ABISerializableType identity type for given version. */\n static identityType(version) {\n return version === 2 ? IdentityV2 : IdentityV3;\n }\n /** Return the ABISerializableType storage type for given version. */\n static storageType(version) {\n return version === 2 ? RequestDataV2 : RequestDataV3;\n }\n /** Create a new signing request. */\n static async create(args, options = {}) {\n let actions;\n if (args.action) {\n actions = [args.action];\n }\n else if (args.actions) {\n actions = args.actions;\n }\n else if (args.transaction) {\n actions = args.transaction.actions || [];\n }\n else {\n actions = [];\n }\n const requiredAbis = actions\n .filter((action) => !Bytes.isBytes(action.data) &&\n action.data.constructor.abiName === undefined)\n .map((action) => Name.from(action.account));\n const abis = {};\n if (requiredAbis.length > 0) {\n const provider = options.abiProvider;\n if (!provider) {\n throw new Error('Missing abi provider');\n }\n const accountAbis = await Promise.all(requiredAbis.map((account) => provider.getAbi(account)));\n for (const [idx, abi] of accountAbis.entries()) {\n abis[requiredAbis[idx].toString()] = abi;\n }\n }\n return this.createSync(args, options, abis);\n }\n /**\n * Synchronously create a new signing request.\n * @throws If an un-encoded action with no abi def is encountered.\n */\n static createSync(args, options = {}, abis = {}) {\n let version = 2;\n const data = {};\n const encode = (action) => encodeAction(action, abis);\n // multi-chain requests requires version 3\n if (args.chainId === null) {\n version = 3;\n }\n // set the request data\n if (args.identity !== undefined) {\n if (args.identity.scope) {\n version = 3;\n }\n data.req = ['identity', this.identityType(version).from(args.identity)];\n }\n else if (args.action && !args.actions && !args.transaction) {\n data.req = ['action', encode(args.action)];\n }\n else if (args.actions && !args.action && !args.transaction) {\n if (args.actions.length === 1) {\n data.req = ['action', encode(args.actions[0])];\n }\n else {\n data.req = ['action[]', args.actions.map(encode)];\n }\n }\n else if (args.transaction && !args.action && !args.actions) {\n const tx = args.transaction;\n // set default values if missing\n if (tx.expiration === undefined) {\n tx.expiration = '1970-01-01T00:00:00.000';\n }\n if (tx.ref_block_num === undefined) {\n tx.ref_block_num = 0;\n }\n if (tx.ref_block_prefix === undefined) {\n tx.ref_block_prefix = 0;\n }\n if (tx.context_free_actions === undefined) {\n tx.context_free_actions = [];\n }\n if (tx.transaction_extensions === undefined) {\n tx.transaction_extensions = [];\n }\n if (tx.delay_sec === undefined) {\n tx.delay_sec = 0;\n }\n if (tx.max_cpu_usage_ms === undefined) {\n tx.max_cpu_usage_ms = 0;\n }\n if (tx.max_net_usage_words === undefined) {\n tx.max_net_usage_words = 0;\n }\n if (tx.actions === undefined) {\n tx.actions = [];\n }\n if (tx.context_free_actions === undefined) {\n tx.context_free_actions = [];\n }\n // encode actions if needed\n tx.actions = tx.actions.map(encode);\n data.req = ['transaction', tx];\n }\n else {\n throw new TypeError('Invalid arguments: Must have exactly one of action, actions or transaction');\n }\n // set the chain id\n if (args.chainId === null) {\n data.chain_id = ChainIdVariant.from(['chain_alias', 0]);\n }\n else {\n data.chain_id = ChainId.from(args.chainId || ChainName.EOS).chainVariant;\n }\n // request flags and callback\n const flags = RequestFlags.from(0);\n let callback = '';\n flags.broadcast = args.broadcast !== undefined ? args.broadcast : data.req[0] !== 'identity';\n if (typeof args.callback === 'string') {\n callback = args.callback;\n }\n else if (typeof args.callback === 'object') {\n callback = args.callback.url;\n flags.background = args.callback.background || false;\n }\n data.flags = flags;\n data.callback = callback;\n // info pairs\n data.info = [];\n if (typeof args.info === 'object') {\n for (const key in args.info) {\n const isOwn = Object.prototype.hasOwnProperty.call(args.info, key);\n if (isOwn) {\n let value = args.info[key];\n if (typeof value === 'string') {\n value = Bytes.from(value, 'utf8');\n }\n else if (!(value instanceof Bytes)) {\n value = Serializer.encode({ object: value });\n }\n data.info.push({ key, value });\n }\n }\n }\n if (args.chainIds && args.chainId === null) {\n const ids = args.chainIds.map((id) => ChainId.from(id).chainVariant);\n data.info.push({\n key: 'chain_ids',\n value: Serializer.encode({ object: ids, type: { type: ChainIdVariant, array: true } }),\n });\n }\n const req = new SigningRequest(version, this.storageType(version).from(data), options.zlib, options.abiProvider);\n // sign the request if given a signature provider\n if (options.signatureProvider) {\n req.sign(options.signatureProvider);\n }\n return req;\n }\n /** Creates an identity request. */\n static identity(args, options = {}) {\n let permission = {\n actor: args.account || PlaceholderName,\n permission: args.permission || PlaceholderPermission,\n };\n if (permission.actor === PlaceholderName &&\n permission.permission === PlaceholderPermission) {\n permission = undefined;\n }\n return this.createSync({\n ...args,\n identity: {\n permission,\n scope: args.scope,\n },\n broadcast: false,\n }, options);\n }\n /**\n * Create a request from a chain id and serialized transaction.\n * @param chainId The chain id where the transaction is valid.\n * @param serializedTransaction The serialized transaction.\n * @param options Creation options.\n */\n static fromTransaction(chainId, serializedTransaction, options = {}) {\n const id = ChainId.from(chainId);\n serializedTransaction = Bytes.from(serializedTransaction);\n const encoder = new ABIEncoder();\n encoder.writeByte(2); // header\n encoder.writeArray(Serializer.encode({ object: id.chainVariant }).array);\n encoder.writeByte(2); // transaction variant\n encoder.writeArray(Bytes.from(serializedTransaction).array);\n encoder.writeByte(RequestFlags.broadcast);\n encoder.writeByte(0); // callback\n encoder.writeByte(0); // info\n return SigningRequest.fromData(encoder.getData(), options);\n }\n /** Creates a signing request from encoded `esr:` uri string. */\n static from(uri, options = {}) {\n if (typeof uri !== 'string') {\n throw new Error('Invalid request uri');\n }\n const [scheme, path] = uri.split(':');\n if (scheme !== 'esr' && scheme !== 'web+esr') {\n throw new Error('Invalid scheme');\n }\n const data = decode(path.startsWith('//') ? path.slice(2) : path);\n return SigningRequest.fromData(data, options);\n }\n static fromData(data, options = {}) {\n data = Bytes.from(data);\n const header = data.array[0];\n const version = header & ~(1 << 7);\n if (version !== 2 && version !== 3) {\n throw new Error('Unsupported protocol version');\n }\n let payload = data.droppingFirst(1);\n if ((header & (1 << 7)) !== 0) {\n if (!options.zlib) {\n throw new Error('Compressed URI needs zlib');\n }\n payload = Bytes.from(options.zlib.inflateRaw(payload.array));\n }\n const decoder = new ABIDecoder(payload.array);\n const req = Serializer.decode({ data: decoder, type: this.storageType(version) });\n let sig;\n if (decoder.canRead()) {\n sig = Serializer.decode({ data: decoder, type: RequestSignature });\n }\n return new SigningRequest(version, req, options.zlib, options.abiProvider, sig);\n }\n /**\n * Sign the request, mutating.\n * @param signatureProvider The signature provider that provides a signature for the signer.\n */\n sign(signatureProvider) {\n const message = this.getSignatureDigest();\n this.signature = RequestSignature.from(signatureProvider.sign(message));\n }\n /**\n * Get the signature digest for this request.\n */\n getSignatureDigest() {\n // protocol version + utf8 \"request\"\n const prefix = [this.version, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74];\n return Checksum256.hash(Bytes.from(prefix).appending(this.getData()));\n }\n /**\n * Set the signature data for this request, mutating.\n * @param signer Account name of signer.\n * @param signature The signature string.\n */\n setSignature(signer, signature) {\n this.signature = RequestSignature.from({ signer, signature });\n }\n /**\n * Set the request callback, mutating.\n * @param url Where the callback should be sent.\n * @param background Whether the callback should be sent in the background.\n */\n setCallback(url, background) {\n this.data.callback = url;\n this.data.flags.background = background;\n }\n /**\n * Set broadcast flag.\n * @param broadcast Whether the transaction should be broadcast by receiver.\n */\n setBroadcast(broadcast) {\n this.data.flags.broadcast = broadcast;\n }\n /**\n * Encode this request into an `esr:` uri.\n * @argument compress Whether to compress the request data using zlib,\n * defaults to true if omitted and zlib is present;\n * otherwise false.\n * @argument slashes Whether add slashes after the protocol scheme, i.e. `esr://`.\n * Defaults to true.\n * @returns An esr uri string.\n */\n encode(compress, slashes) {\n const shouldCompress = compress !== undefined ? compress : this.zlib !== undefined;\n if (shouldCompress && this.zlib === undefined) {\n throw new Error('Need zlib to compress');\n }\n let header = this.version;\n const data = this.getData();\n const sigData = this.getSignatureData();\n let array = new Uint8Array(data.byteLength + sigData.byteLength);\n array.set(data, 0);\n array.set(sigData, data.byteLength);\n if (shouldCompress) {\n const deflated = this.zlib.deflateRaw(array);\n if (array.byteLength > deflated.byteLength) {\n header |= 1 << 7;\n array = deflated;\n }\n }\n const out = new Uint8Array(1 + array.byteLength);\n out[0] = header;\n out.set(array, 1);\n let scheme = 'esr:';\n if (slashes !== false) {\n scheme += '//';\n }\n return scheme + encode(out);\n }\n /** Get the request data without header or signature. */\n getData() {\n return Serializer.encode({ object: this.data }).array;\n }\n /** Get signature data, returns an empty array if request is not signed. */\n getSignatureData() {\n if (!this.signature) {\n return new Uint8Array(0);\n }\n return Serializer.encode({ object: this.signature }).array;\n }\n /** ABI definitions required to resolve request. */\n getRequiredAbis() {\n return this.getRawActions()\n .filter((action) => !isIdentity(action))\n .map((action) => action.account)\n .filter((value, index, self) => self.indexOf(value) === index);\n }\n /** Whether TaPoS values are required to resolve request. */\n requiresTapos() {\n const tx = this.getRawTransaction();\n return !this.isIdentity() && !hasTapos(tx);\n }\n /** Resolve required ABI definitions. */\n async fetchAbis(abiProvider) {\n const required = this.getRequiredAbis();\n if (required.length > 0) {\n const provider = abiProvider || this.abiProvider;\n if (!provider) {\n throw new Error('Missing ABI provider');\n }\n const abis = new Map();\n await Promise.all(required.map(async (account) => {\n abis.set(account.toString(), ABI.from(await provider.getAbi(account)));\n }));\n return abis;\n }\n else {\n return new Map();\n }\n }\n /**\n * Decode raw actions actions to object representations.\n * @param abis ABI defenitions required to decode all actions.\n * @param signer Placeholders in actions will be resolved to signer if set.\n */\n resolveActions(abis, signer) {\n return this.getRawActions().map((rawAction) => {\n let abi;\n if (isIdentity(rawAction)) {\n abi = this.constructor.identityAbi(this.version);\n }\n else {\n const rawAbi = abis.get(rawAction.account.toString());\n if (!rawAbi) {\n throw new Error(`Missing ABI definition for ${rawAction.account}`);\n }\n abi = ABI.from(rawAbi);\n }\n const type = abi.getActionType(rawAction.name);\n if (!type) {\n throw new Error(`Missing type for action ${rawAction.account}:${rawAction.name} in ABI`);\n }\n let data = rawAction.decodeData(abi);\n let authorization = rawAction.authorization;\n if (signer) {\n const signerPerm = PermissionLevel.from(signer);\n const resolve = (value) => {\n if (value instanceof Name) {\n if (value.equals(PlaceholderName)) {\n return signerPerm.actor;\n }\n else if (value.equals(PlaceholderPermission)) {\n return signerPerm.permission;\n }\n else {\n return value;\n }\n }\n else if (Array.isArray(value)) {\n return value.map(resolve);\n }\n else if (typeof value === 'object' && value !== null) {\n for (const key of Object.keys(value)) {\n value[key] = resolve(value[key]);\n }\n return value;\n }\n else {\n return value;\n }\n };\n data = resolve(data);\n authorization = authorization.map((auth) => {\n let { actor, permission } = auth;\n if (actor.equals(PlaceholderName)) {\n actor = signerPerm.actor;\n }\n if (permission.equals(PlaceholderPermission)) {\n permission = signerPerm.permission;\n }\n // backwards compatibility, actor placeholder will also resolve to permission when used in auth\n if (permission.equals(PlaceholderName)) {\n permission = signerPerm.permission;\n }\n return PermissionLevel.from({ actor, permission });\n });\n }\n return {\n ...rawAction,\n authorization,\n data,\n };\n });\n }\n resolveTransaction(abis, signer, ctx = {}) {\n const tx = this.getRawTransaction();\n if (!this.isIdentity() && !hasTapos(tx)) {\n if (ctx.expiration !== undefined &&\n ctx.ref_block_num !== undefined &&\n ctx.ref_block_prefix !== undefined) {\n tx.expiration = TimePointSec.from(ctx.expiration);\n tx.ref_block_num = UInt16.from(ctx.ref_block_num);\n tx.ref_block_prefix = UInt32.from(ctx.ref_block_prefix);\n }\n else if (ctx.block_num !== undefined &&\n ctx.ref_block_prefix !== undefined &&\n ctx.timestamp !== undefined) {\n tx.expiration = expirationTime(ctx.timestamp, ctx.expire_seconds);\n tx.ref_block_num = UInt16.from(ctx.block_num);\n tx.ref_block_prefix = UInt32.from(ctx.ref_block_prefix);\n }\n else {\n throw new Error('Invalid transaction context, need either a reference block or explicit TaPoS values');\n }\n }\n else if (this.isIdentity() && this.version > 2) {\n // From ESR version 3 all identity requests have expiration\n tx.expiration = ctx.expiration\n ? TimePointSec.from(ctx.expiration)\n : expirationTime(ctx.timestamp, ctx.expire_seconds);\n }\n const actions = this.resolveActions(abis, signer);\n // TODO: resolve context free actions\n const context_free_actions = tx.context_free_actions;\n return { ...tx, context_free_actions, actions };\n }\n resolve(abis, signer, ctx = {}) {\n const tx = this.resolveTransaction(abis, signer, ctx);\n const actions = tx.actions.map((action) => {\n let abi;\n if (isIdentity(action)) {\n abi = this.constructor.identityAbi(this.version);\n }\n else {\n abi = abis.get(action.account.toString());\n }\n if (!abi) {\n throw new Error(`Missing ABI definition for ${action.account}`);\n }\n const type = abi.getActionType(action.name);\n const data = Serializer.encode({ object: action.data, type, abi });\n return Action.from({ ...action, data });\n });\n const transaction = Transaction.from({ ...tx, actions });\n let chainId;\n if (this.isMultiChain()) {\n if (!ctx.chainId) {\n throw new Error('Missing chosen chain ID for multi-chain request');\n }\n chainId = ChainId.from(ctx.chainId);\n const ids = this.getChainIds();\n if (ids && !ids.some((id) => chainId.equals(id))) {\n throw new Error('Trying to resolve for chain ID not defined in request');\n }\n }\n else {\n chainId = this.getChainId();\n }\n return new ResolvedSigningRequest(this, PermissionLevel.from(signer), transaction, tx, chainId);\n }\n /**\n * Get the id of the chain where this request is valid.\n * @returns The 32-byte chain id as hex encoded string.\n */\n getChainId() {\n return this.data.chain_id.chainId;\n }\n /**\n * Chain IDs this request is valid for, only valid for multi chain requests. Value of `null` when `isMultiChain` is true denotes any chain.\n */\n getChainIds() {\n if (!this.isMultiChain()) {\n return null;\n }\n const ids = this.getInfoKey('chain_ids', { type: ChainIdVariant, array: true });\n if (ids) {\n return ids.map((id) => id.chainId);\n }\n return null;\n }\n /**\n * Set chain IDs this request is valid for, only considered for multi chain requests.\n */\n setChainIds(ids) {\n const value = ids.map((id) => ChainId.from(id).chainVariant);\n this.setInfoKey('chain_ids', value, { type: ChainIdVariant, array: true });\n }\n /**\n * True if chainId is set to chain alias `0` which indicates that the request is valid for any chain.\n */\n isMultiChain() {\n return (this.data.chain_id.variantIdx === 0 &&\n this.data.chain_id.value.equals(ChainName.UNKNOWN));\n }\n /** Return the actions in this request with action data encoded. */\n getRawActions() {\n const req = this.data.req;\n switch (req.variantName) {\n case 'action':\n return [req.value];\n case 'action[]':\n return req.value;\n case 'identity': {\n if (this.version === 2) {\n const id = req.value;\n let data = '0101000000000000000200000000000000'; // placeholder permission\n let authorization = [PlaceholderAuth];\n if (id.permission) {\n data = Serializer.encode({ object: id });\n authorization = [id.permission];\n }\n return [\n Action.from({\n account: '',\n name: 'identity',\n authorization,\n data,\n }),\n ];\n }\n else {\n // eslint-disable-next-line prefer-const\n let { scope, permission } = req.value;\n if (!permission) {\n permission = PlaceholderAuth;\n }\n const data = Serializer.encode({ object: { scope, permission }, type: IdentityV3 });\n return [\n Action.from({\n account: '',\n name: 'identity',\n authorization: [permission],\n data,\n }),\n ];\n }\n }\n case 'transaction':\n return req.value.actions;\n default:\n throw new Error('Invalid signing request data');\n }\n }\n /** Unresolved transaction. */\n getRawTransaction() {\n const req = this.data.req;\n switch (req.variantName) {\n case 'transaction':\n return Transaction.from({ ...req.value });\n case 'action':\n case 'action[]':\n case 'identity':\n return Transaction.from({\n actions: this.getRawActions(),\n context_free_actions: [],\n transaction_extensions: [],\n expiration: '1970-01-01T00:00:00.000',\n ref_block_num: 0,\n ref_block_prefix: 0,\n max_cpu_usage_ms: 0,\n max_net_usage_words: 0,\n delay_sec: 0,\n });\n default:\n throw new Error('Invalid signing request data');\n }\n }\n /** Whether the request is an identity request. */\n isIdentity() {\n return this.data.req.variantName === 'identity';\n }\n /** Whether the request should be broadcast by signer. */\n shouldBroadcast() {\n if (this.isIdentity()) {\n return false;\n }\n return this.data.flags.broadcast;\n }\n /**\n * Present if the request is an identity request and requests a specific account.\n * @note This returns `nil` unless a specific identity has been requested,\n * use `isIdentity` to check id requests.\n */\n getIdentity() {\n if (!this.isIdentity()) {\n return null;\n }\n const id = this.data.req.value;\n if (id.permission && !id.permission.actor.equals(PlaceholderName)) {\n return id.permission.actor;\n }\n return null;\n }\n /**\n * Present if the request is an identity request and requests a specific permission.\n * @note This returns `nil` unless a specific permission has been requested,\n * use `isIdentity` to check id requests.\n */\n getIdentityPermission() {\n if (!this.isIdentity()) {\n return null;\n }\n const id = this.data.req.value;\n if (id.permission && !id.permission.permission.equals(PlaceholderPermission)) {\n return id.permission.permission;\n }\n return null;\n }\n /**\n * Present if the request is an identity request and requests a specific permission.\n * @note This returns `nil` unless a specific permission has been requested,\n * use `isIdentity` to check id requests.\n */\n getIdentityScope() {\n if (!this.isIdentity() || this.version <= 2) {\n return null;\n }\n const id = this.data.req.value;\n return id.scope;\n }\n /** Get raw info dict */\n getRawInfo() {\n const rv = {};\n for (const { key, value } of this.data.info) {\n rv[key] = value;\n }\n return rv;\n }\n getRawInfoKey(key) {\n const pair = this.data.info.find((pair) => pair.key === key);\n if (pair) {\n return pair.value;\n }\n }\n setRawInfoKey(key, value) {\n let pair = this.data.info.find((pair) => pair.key === key);\n if (!pair) {\n pair = InfoPair.from({ key, value });\n this.data.info.push(pair);\n }\n else {\n pair.value = Bytes.from(value);\n }\n }\n /** Set a metadata key. */\n setInfoKey(key, object, type) {\n let data;\n if (typeof object === 'string' && !type) {\n // match old behavior where strings encode to raw utf8 as opposed to\n // eosio-abi encoded strings (varuint32 length prefix + utf8 bytes)\n data = Bytes.from(object, 'utf8');\n }\n else {\n data = Serializer.encode({ object, type });\n }\n this.setRawInfoKey(key, data);\n }\n getInfoKey(key, type) {\n const data = this.getRawInfoKey(key);\n if (data) {\n if (type) {\n return Serializer.decode({ data, type });\n }\n else {\n // assume utf8 string if no type is given\n return data.utf8String;\n }\n }\n }\n /** Return a deep copy of this request. */\n clone() {\n let signature;\n if (this.signature) {\n signature = RequestSignature.from(JSON.parse(JSON.stringify(this.signature)));\n }\n const RequestData = this.constructor.storageType(this.version);\n const data = RequestData.from(JSON.parse(JSON.stringify(this.data)));\n return new SigningRequest(this.version, data, this.zlib, this.abiProvider, signature);\n }\n // Convenience methods.\n toString() {\n return this.encode();\n }\n toJSON() {\n return this.encode();\n }\n}\nclass ResolvedSigningRequest {\n constructor(request, signer, transaction, resolvedTransaction, chainId) {\n this.request = request;\n this.signer = signer;\n this.transaction = transaction;\n this.resolvedTransaction = resolvedTransaction;\n this.chainId = chainId;\n }\n /** Recreate a resolved request from a callback payload. */\n static async fromPayload(payload, options = {}) {\n const request = SigningRequest.from(payload.req, options);\n const abis = await request.fetchAbis();\n return request.resolve(abis, { actor: payload.sa, permission: payload.sp }, {\n ref_block_num: payload.rbn,\n ref_block_prefix: payload.rid,\n expiration: payload.ex,\n chainId: payload.cid || request.getChainId(),\n });\n }\n get serializedTransaction() {\n return Serializer.encode({ object: this.transaction }).array;\n }\n get signingDigest() {\n return this.transaction.signingDigest(this.chainId);\n }\n get signingData() {\n return this.transaction.signingData(this.chainId);\n }\n getCallback(signatures, blockNum) {\n const { callback, flags } = this.request.data;\n if (!callback || callback.length === 0) {\n return null;\n }\n if (!signatures || signatures.length === 0) {\n throw new Error('Must have at least one signature to resolve callback');\n }\n const sigs = signatures.map((sig) => Signature.from(sig));\n const payload = {\n sig: String(sigs[0]),\n tx: String(this.transaction.id),\n rbn: String(this.transaction.ref_block_num),\n rid: String(this.transaction.ref_block_prefix),\n ex: String(this.transaction.expiration),\n req: this.request.encode(),\n sa: String(this.signer.actor),\n sp: String(this.signer.permission),\n cid: String(this.chainId),\n };\n for (const [n, sig] of sigs.slice(1).entries()) {\n payload[`sig${n}`] = String(sig);\n }\n if (blockNum) {\n payload.bn = String(UInt32.from(blockNum));\n }\n const url = callback.replace(/({{([a-z0-9]+)}})/g, (_1, _2, m) => {\n return payload[m] || '';\n });\n return {\n background: flags.background,\n payload,\n url,\n };\n }\n getIdentityProof(signature) {\n if (!this.request.isIdentity()) {\n throw new Error('Not a identity request');\n }\n return IdentityProof.from({\n chainId: this.chainId,\n scope: this.request.getIdentityScope(),\n expiration: this.transaction.expiration,\n signer: this.signer,\n signature,\n });\n }\n}\nfunction encodeAction(action, abis) {\n if (Bytes.isBytes(action.data) || action.data.constructor.abiName !== undefined) {\n return Action.from(action);\n }\n const abi = abis[String(Name.from(action.account))];\n if (!abi) {\n throw new Error(`Missing ABI for ${action.account}`);\n }\n return Action.from(action, abi);\n}\nfunction isIdentity(action) {\n const account = Name.from(action.account);\n const name = Name.from(action.name);\n return account.rawValue.equals(0) && name.equals('identity');\n}\nfunction hasTapos(tx) {\n return !(tx.expiration.equals(0) && tx.ref_block_num.equals(0) && tx.ref_block_prefix.equals(0));\n}\nfunction expirationTime(timestamp, expireSeconds = 60) {\n const ts = TimePointSec.from(timestamp || new Date());\n const exp = UInt32.from(expireSeconds);\n return TimePointSec.fromInteger(ts.value.adding(exp));\n}\n\nexport { AccountName, base64u as Base64u, ChainAlias, ChainId, ChainIdVariant, ChainName, IdentityProof, IdentityV2, IdentityV3, InfoPair, PermissionName, PlaceholderAuth, PlaceholderName, PlaceholderPermission, ProtocolVersion, RequestDataV2, RequestDataV3, RequestFlags, RequestSignature, RequestVariantV2, RequestVariantV3, ResolvedSigningRequest, SigningRequest };\n//# sourceMappingURL=esr.m.js.map\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","(function (global) {\n 'use strict';\n\n function fetchPonyfill(options) {\n var Promise = options && options.Promise || global.Promise;\n var XMLHttpRequest = options && options.XMLHttpRequest || global.XMLHttpRequest;\n\n return (function () {\n var globalThis = Object.create(global, {\n fetch: {\n value: undefined,\n writable: true\n }\n });\n\n (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.WHATWGFetch = {})));\n }(this, (function (exports) { 'use strict';\n\n var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : '';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = global.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n })));\n\n\n return {\n fetch: globalThis.fetch,\n Headers: globalThis.Headers,\n Request: globalThis.Request,\n Response: globalThis.Response,\n DOMException: globalThis.DOMException\n };\n }());\n }\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return fetchPonyfill;\n });\n } else if (typeof exports === 'object') {\n module.exports = fetchPonyfill;\n } else {\n global.fetchPonyfill = fetchPonyfill;\n }\n}(typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof global !== 'undefined' ? global : this));\n\n","/**\n * @greymass/miniaes v1.0.0\n * https://github.com/greymass/miniaes-js\n *\n * @license\n * Copyright (c) 2021 FFF00 Agents AB & Greymass Inc. All Rights Reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * 1. Redistribution of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * 2. Redistribution in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * 3. Neither the name of the copyright holder nor the names of its contributors\n * may be used to endorse or promote products derived from this software without\n * specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n * OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR INTENDED FOR USE\n * IN THE DESIGN, CONSTRUCTION, OPERATION OR MAINTENANCE OF ANY MILITARY FACILITY.\n */\n/* eslint-disable */\n/**\n * @file {@link http://asmjs.org Asm.js} implementation of the {@link https://en.wikipedia.org/wiki/Advanced_Encryption_Standard Advanced Encryption Standard}.\n * @author Artem S Vybornov \n * @license MIT\n */\n var AES_asm = function () {\n\n /**\n * Galois Field stuff init flag\n */\n var ginit_done = false;\n\n /**\n * Galois Field exponentiation and logarithm tables for 3 (the generator)\n */\n var gexp3, glog3;\n\n /**\n * Init Galois Field tables\n */\n function ginit() {\n gexp3 = [],\n glog3 = [];\n\n var a = 1, c, d;\n for (c = 0; c < 255; c++) {\n gexp3[c] = a;\n\n // Multiply by three\n d = a & 0x80, a <<= 1, a &= 255;\n if (d === 0x80) a ^= 0x1b;\n a ^= gexp3[c];\n\n // Set the log table value\n glog3[gexp3[c]] = c;\n }\n gexp3[255] = gexp3[0];\n glog3[0] = 0;\n\n ginit_done = true;\n }\n\n /**\n * Galois Field multiplication\n * @param {number} a\n * @param {number} b\n * @return {number}\n */\n function gmul(a, b) {\n var c = gexp3[(glog3[a] + glog3[b]) % 255];\n if (a === 0 || b === 0) c = 0;\n return c;\n }\n\n /**\n * Galois Field reciprocal\n * @param {number} a\n * @return {number}\n */\n function ginv(a) {\n var i = gexp3[255 - glog3[a]];\n if (a === 0) i = 0;\n return i;\n }\n\n /**\n * AES stuff init flag\n */\n var aes_init_done = false;\n\n /**\n * Encryption, Decryption, S-Box and KeyTransform tables\n *\n * @type {number[]}\n */\n var aes_sbox;\n\n /**\n * @type {number[]}\n */\n var aes_sinv;\n\n /**\n * @type {number[][]}\n */\n var aes_enc;\n\n /**\n * @type {number[][]}\n */\n var aes_dec;\n\n /**\n * Init AES tables\n */\n function aes_init() {\n if (!ginit_done) ginit();\n\n // Calculates AES S-Box value\n function _s(a) {\n var c, s, x;\n s = x = ginv(a);\n for (c = 0; c < 4; c++) {\n s = ((s << 1) | (s >>> 7)) & 255;\n x ^= s;\n }\n x ^= 99;\n return x;\n }\n\n // Tables\n aes_sbox = [],\n aes_sinv = [],\n aes_enc = [[], [], [], []],\n aes_dec = [[], [], [], []];\n\n for (var i = 0; i < 256; i++) {\n var s = _s(i);\n\n // S-Box and its inverse\n aes_sbox[i] = s;\n aes_sinv[s] = i;\n\n // Ecryption and Decryption tables\n aes_enc[0][i] = (gmul(2, s) << 24) | (s << 16) | (s << 8) | gmul(3, s);\n aes_dec[0][s] = (gmul(14, i) << 24) | (gmul(9, i) << 16) | (gmul(13, i) << 8) | gmul(11, i);\n // Rotate tables\n for (var t = 1; t < 4; t++) {\n aes_enc[t][i] = (aes_enc[t - 1][i] >>> 8) | (aes_enc[t - 1][i] << 24);\n aes_dec[t][s] = (aes_dec[t - 1][s] >>> 8) | (aes_dec[t - 1][s] << 24);\n }\n }\n\n aes_init_done = true;\n }\n\n /**\n * Asm.js module constructor.\n *\n *

\n * Heap buffer layout by offset:\n *

\n   * 0x0000   encryption key schedule\n   * 0x0400   decryption key schedule\n   * 0x0800   sbox\n   * 0x0c00   inv sbox\n   * 0x1000   encryption tables\n   * 0x2000   decryption tables\n   * 0x3000   reserved (future GCM multiplication lookup table)\n   * 0x4000   data\n   * 
\n * Don't touch anything before 0x400.\n *

\n *\n * @alias AES_asm\n * @class\n * @param foreign - ignored\n * @param buffer - heap buffer to link with\n * @type any\n */\n var wrapper = function (foreign, buffer) {\n // Init AES stuff for the first time\n if (!aes_init_done) aes_init();\n\n // Fill up AES tables\n var heap = new Uint32Array(buffer);\n heap.set(aes_sbox, 0x0800 >> 2);\n heap.set(aes_sinv, 0x0c00 >> 2);\n for (var i = 0; i < 4; i++) {\n heap.set(aes_enc[i], (0x1000 + 0x400 * i) >> 2);\n heap.set(aes_dec[i], (0x2000 + 0x400 * i) >> 2);\n }\n\n /**\n * Calculate AES key schedules.\n * @instance\n * @memberof AES_asm\n * @param {number} ks - key size, 4/6/8 (for 128/192/256-bit key correspondingly)\n * @param {number} k0 - key vector components\n * @param {number} k1 - key vector components\n * @param {number} k2 - key vector components\n * @param {number} k3 - key vector components\n * @param {number} k4 - key vector components\n * @param {number} k5 - key vector components\n * @param {number} k6 - key vector components\n * @param {number} k7 - key vector components\n */\n function set_key(ks, k0, k1, k2, k3, k4, k5, k6, k7) {\n var ekeys = heap.subarray(0x000, 60),\n dkeys = heap.subarray(0x100, 0x100 + 60);\n\n // Encryption key schedule\n ekeys.set([k0, k1, k2, k3, k4, k5, k6, k7]);\n for (var i = ks, rcon = 1; i < 4 * ks + 28; i++) {\n var k = ekeys[i - 1];\n if ((i % ks === 0) || (ks === 8 && i % ks === 4)) {\n k = aes_sbox[k >>> 24] << 24 ^ aes_sbox[k >>> 16 & 255] << 16 ^ aes_sbox[k >>> 8 & 255] << 8 ^ aes_sbox[k & 255];\n }\n if (i % ks === 0) {\n k = (k << 8) ^ (k >>> 24) ^ (rcon << 24);\n rcon = (rcon << 1) ^ ((rcon & 0x80) ? 0x1b : 0);\n }\n ekeys[i] = ekeys[i - ks] ^ k;\n }\n\n // Decryption key schedule\n for (var j = 0; j < i; j += 4) {\n for (var jj = 0; jj < 4; jj++) {\n var k = ekeys[i - (4 + j) + (4 - jj) % 4];\n if (j < 4 || j >= i - 4) {\n dkeys[j + jj] = k;\n } else {\n dkeys[j + jj] = aes_dec[0][aes_sbox[k >>> 24]]\n ^ aes_dec[1][aes_sbox[k >>> 16 & 255]]\n ^ aes_dec[2][aes_sbox[k >>> 8 & 255]]\n ^ aes_dec[3][aes_sbox[k & 255]];\n }\n }\n }\n\n // Set rounds number\n asm.set_rounds(ks + 5);\n }\n\n // create library object with necessary properties\n var stdlib = {Uint8Array: Uint8Array, Uint32Array: Uint32Array};\n\n var asm = function (stdlib, foreign, buffer) {\n \"use asm\";\n\n var S0 = 0, S1 = 0, S2 = 0, S3 = 0,\n I0 = 0, I1 = 0, I2 = 0, I3 = 0,\n N0 = 0, N1 = 0, N2 = 0, N3 = 0,\n M0 = 0, M1 = 0, M2 = 0, M3 = 0,\n H0 = 0, H1 = 0, H2 = 0, H3 = 0,\n R = 0;\n\n var HEAP = new stdlib.Uint32Array(buffer),\n DATA = new stdlib.Uint8Array(buffer);\n\n /**\n * AES core\n * @param {number} k - precomputed key schedule offset\n * @param {number} s - precomputed sbox table offset\n * @param {number} t - precomputed round table offset\n * @param {number} r - number of inner rounds to perform\n * @param {number} x0 - 128-bit input block vector\n * @param {number} x1 - 128-bit input block vector\n * @param {number} x2 - 128-bit input block vector\n * @param {number} x3 - 128-bit input block vector\n */\n function _core(k, s, t, r, x0, x1, x2, x3) {\n k = k | 0;\n s = s | 0;\n t = t | 0;\n r = r | 0;\n x0 = x0 | 0;\n x1 = x1 | 0;\n x2 = x2 | 0;\n x3 = x3 | 0;\n\n var t1 = 0, t2 = 0, t3 = 0,\n y0 = 0, y1 = 0, y2 = 0, y3 = 0,\n i = 0;\n\n t1 = t | 0x400, t2 = t | 0x800, t3 = t | 0xc00;\n\n // round 0\n x0 = x0 ^ HEAP[(k | 0) >> 2],\n x1 = x1 ^ HEAP[(k | 4) >> 2],\n x2 = x2 ^ HEAP[(k | 8) >> 2],\n x3 = x3 ^ HEAP[(k | 12) >> 2];\n\n // round 1..r\n for (i = 16; (i | 0) <= (r << 4); i = (i + 16) | 0) {\n y0 = HEAP[(t | x0 >> 22 & 1020) >> 2] ^ HEAP[(t1 | x1 >> 14 & 1020) >> 2] ^ HEAP[(t2 | x2 >> 6 & 1020) >> 2] ^ HEAP[(t3 | x3 << 2 & 1020) >> 2] ^ HEAP[(k | i | 0) >> 2],\n y1 = HEAP[(t | x1 >> 22 & 1020) >> 2] ^ HEAP[(t1 | x2 >> 14 & 1020) >> 2] ^ HEAP[(t2 | x3 >> 6 & 1020) >> 2] ^ HEAP[(t3 | x0 << 2 & 1020) >> 2] ^ HEAP[(k | i | 4) >> 2],\n y2 = HEAP[(t | x2 >> 22 & 1020) >> 2] ^ HEAP[(t1 | x3 >> 14 & 1020) >> 2] ^ HEAP[(t2 | x0 >> 6 & 1020) >> 2] ^ HEAP[(t3 | x1 << 2 & 1020) >> 2] ^ HEAP[(k | i | 8) >> 2],\n y3 = HEAP[(t | x3 >> 22 & 1020) >> 2] ^ HEAP[(t1 | x0 >> 14 & 1020) >> 2] ^ HEAP[(t2 | x1 >> 6 & 1020) >> 2] ^ HEAP[(t3 | x2 << 2 & 1020) >> 2] ^ HEAP[(k | i | 12) >> 2];\n x0 = y0, x1 = y1, x2 = y2, x3 = y3;\n }\n\n // final round\n S0 = HEAP[(s | x0 >> 22 & 1020) >> 2] << 24 ^ HEAP[(s | x1 >> 14 & 1020) >> 2] << 16 ^ HEAP[(s | x2 >> 6 & 1020) >> 2] << 8 ^ HEAP[(s | x3 << 2 & 1020) >> 2] ^ HEAP[(k | i | 0) >> 2],\n S1 = HEAP[(s | x1 >> 22 & 1020) >> 2] << 24 ^ HEAP[(s | x2 >> 14 & 1020) >> 2] << 16 ^ HEAP[(s | x3 >> 6 & 1020) >> 2] << 8 ^ HEAP[(s | x0 << 2 & 1020) >> 2] ^ HEAP[(k | i | 4) >> 2],\n S2 = HEAP[(s | x2 >> 22 & 1020) >> 2] << 24 ^ HEAP[(s | x3 >> 14 & 1020) >> 2] << 16 ^ HEAP[(s | x0 >> 6 & 1020) >> 2] << 8 ^ HEAP[(s | x1 << 2 & 1020) >> 2] ^ HEAP[(k | i | 8) >> 2],\n S3 = HEAP[(s | x3 >> 22 & 1020) >> 2] << 24 ^ HEAP[(s | x0 >> 14 & 1020) >> 2] << 16 ^ HEAP[(s | x1 >> 6 & 1020) >> 2] << 8 ^ HEAP[(s | x2 << 2 & 1020) >> 2] ^ HEAP[(k | i | 12) >> 2];\n }\n\n /**\n * ECB mode encryption\n * @param {number} x0 - 128-bit input block vector\n * @param {number} x1 - 128-bit input block vector\n * @param {number} x2 - 128-bit input block vector\n * @param {number} x3 - 128-bit input block vector\n */\n // function _ecb_enc(x0, x1, x2, x3) {\n // x0 = x0 | 0;\n // x1 = x1 | 0;\n // x2 = x2 | 0;\n // x3 = x3 | 0;\n\n // _core(\n // 0x0000, 0x0800, 0x1000,\n // R,\n // x0,\n // x1,\n // x2,\n // x3\n // );\n // }\n\n /**\n * ECB mode decryption\n * @param {number} x0 - 128-bit input block vector\n * @param {number} x1 - 128-bit input block vector\n * @param {number} x2 - 128-bit input block vector\n * @param {number} x3 - 128-bit input block vector\n */\n // function _ecb_dec(x0, x1, x2, x3) {\n // x0 = x0 | 0;\n // x1 = x1 | 0;\n // x2 = x2 | 0;\n // x3 = x3 | 0;\n\n // var t = 0;\n\n // _core(\n // 0x0400, 0x0c00, 0x2000,\n // R,\n // x0,\n // x3,\n // x2,\n // x1\n // );\n\n // t = S1, S1 = S3, S3 = t;\n // }\n\n\n /**\n * CBC mode encryption\n * @param {number} x0 - 128-bit input block vector\n * @param {number} x1 - 128-bit input block vector\n * @param {number} x2 - 128-bit input block vector\n * @param {number} x3 - 128-bit input block vector\n */\n function _cbc_enc(x0, x1, x2, x3) {\n x0 = x0 | 0;\n x1 = x1 | 0;\n x2 = x2 | 0;\n x3 = x3 | 0;\n\n _core(\n 0x0000, 0x0800, 0x1000,\n R,\n I0 ^ x0,\n I1 ^ x1,\n I2 ^ x2,\n I3 ^ x3\n );\n\n I0 = S0,\n I1 = S1,\n I2 = S2,\n I3 = S3;\n }\n\n /**\n * CBC mode decryption\n * @param {number} x0 - 128-bit input block vector\n * @param {number} x1 - 128-bit input block vector\n * @param {number} x2 - 128-bit input block vector\n * @param {number} x3 - 128-bit input block vector\n */\n function _cbc_dec(x0, x1, x2, x3) {\n x0 = x0 | 0;\n x1 = x1 | 0;\n x2 = x2 | 0;\n x3 = x3 | 0;\n\n var t = 0;\n\n _core(\n 0x0400, 0x0c00, 0x2000,\n R,\n x0,\n x3,\n x2,\n x1\n );\n\n t = S1, S1 = S3, S3 = t;\n\n S0 = S0 ^ I0,\n S1 = S1 ^ I1,\n S2 = S2 ^ I2,\n S3 = S3 ^ I3;\n\n I0 = x0,\n I1 = x1,\n I2 = x2,\n I3 = x3;\n }\n\n /**\n * CFB mode encryption\n * @param {number} x0 - 128-bit input block vector\n * @param {number} x1 - 128-bit input block vector\n * @param {number} x2 - 128-bit input block vector\n * @param {number} x3 - 128-bit input block vector\n */\n // function _cfb_enc(x0, x1, x2, x3) {\n // x0 = x0 | 0;\n // x1 = x1 | 0;\n // x2 = x2 | 0;\n // x3 = x3 | 0;\n\n // _core(\n // 0x0000, 0x0800, 0x1000,\n // R,\n // I0,\n // I1,\n // I2,\n // I3\n // );\n\n // I0 = S0 = S0 ^ x0,\n // I1 = S1 = S1 ^ x1,\n // I2 = S2 = S2 ^ x2,\n // I3 = S3 = S3 ^ x3;\n // }\n\n\n /**\n * CFB mode decryption\n * @param {number} x0 - 128-bit input block vector\n * @param {number} x1 - 128-bit input block vector\n * @param {number} x2 - 128-bit input block vector\n * @param {number} x3 - 128-bit input block vector\n */\n // function _cfb_dec(x0, x1, x2, x3) {\n // x0 = x0 | 0;\n // x1 = x1 | 0;\n // x2 = x2 | 0;\n // x3 = x3 | 0;\n\n // _core(\n // 0x0000, 0x0800, 0x1000,\n // R,\n // I0,\n // I1,\n // I2,\n // I3\n // );\n\n // S0 = S0 ^ x0,\n // S1 = S1 ^ x1,\n // S2 = S2 ^ x2,\n // S3 = S3 ^ x3;\n\n // I0 = x0,\n // I1 = x1,\n // I2 = x2,\n // I3 = x3;\n // }\n\n /**\n * OFB mode encryption / decryption\n * @param {number} x0 - 128-bit input block vector\n * @param {number} x1 - 128-bit input block vector\n * @param {number} x2 - 128-bit input block vector\n * @param {number} x3 - 128-bit input block vector\n */\n // function _ofb(x0, x1, x2, x3) {\n // x0 = x0 | 0;\n // x1 = x1 | 0;\n // x2 = x2 | 0;\n // x3 = x3 | 0;\n\n // _core(\n // 0x0000, 0x0800, 0x1000,\n // R,\n // I0,\n // I1,\n // I2,\n // I3\n // );\n\n // I0 = S0,\n // I1 = S1,\n // I2 = S2,\n // I3 = S3;\n\n // S0 = S0 ^ x0,\n // S1 = S1 ^ x1,\n // S2 = S2 ^ x2,\n // S3 = S3 ^ x3;\n // }\n\n /**\n * CTR mode encryption / decryption\n * @param {number} x0 - 128-bit input block vector\n * @param {number} x1 - 128-bit input block vector\n * @param {number} x2 - 128-bit input block vector\n * @param {number} x3 - 128-bit input block vector\n */\n // function _ctr(x0, x1, x2, x3) {\n // x0 = x0 | 0;\n // x1 = x1 | 0;\n // x2 = x2 | 0;\n // x3 = x3 | 0;\n\n // _core(\n // 0x0000, 0x0800, 0x1000,\n // R,\n // N0,\n // N1,\n // N2,\n // N3\n // );\n\n // N3 = (~M3 & N3) | M3 & (N3 + 1);\n // N2 = (~M2 & N2) | M2 & (N2 + ((N3 | 0) == 0));\n // N1 = (~M1 & N1) | M1 & (N1 + ((N2 | 0) == 0));\n // N0 = (~M0 & N0) | M0 & (N0 + ((N1 | 0) == 0));\n\n // S0 = S0 ^ x0;\n // S1 = S1 ^ x1;\n // S2 = S2 ^ x2;\n // S3 = S3 ^ x3;\n // }\n\n /**\n * GCM mode MAC calculation\n * @param {number} x0 - 128-bit input block vector\n * @param {number} x1 - 128-bit input block vector\n * @param {number} x2 - 128-bit input block vector\n * @param {number} x3 - 128-bit input block vector\n */\n function _gcm_mac(x0, x1, x2, x3) {\n x0 = x0 | 0;\n x1 = x1 | 0;\n x2 = x2 | 0;\n x3 = x3 | 0;\n\n var y0 = 0, y1 = 0, y2 = 0, y3 = 0,\n z0 = 0, z1 = 0, z2 = 0, z3 = 0,\n i = 0, c = 0;\n\n x0 = x0 ^ I0,\n x1 = x1 ^ I1,\n x2 = x2 ^ I2,\n x3 = x3 ^ I3;\n\n y0 = H0 | 0,\n y1 = H1 | 0,\n y2 = H2 | 0,\n y3 = H3 | 0;\n\n for (; (i | 0) < 128; i = (i + 1) | 0) {\n if (y0 >>> 31) {\n z0 = z0 ^ x0,\n z1 = z1 ^ x1,\n z2 = z2 ^ x2,\n z3 = z3 ^ x3;\n }\n\n y0 = (y0 << 1) | (y1 >>> 31),\n y1 = (y1 << 1) | (y2 >>> 31),\n y2 = (y2 << 1) | (y3 >>> 31),\n y3 = (y3 << 1);\n\n c = x3 & 1;\n\n x3 = (x3 >>> 1) | (x2 << 31),\n x2 = (x2 >>> 1) | (x1 << 31),\n x1 = (x1 >>> 1) | (x0 << 31),\n x0 = (x0 >>> 1);\n\n if (c) x0 = x0 ^ 0xe1000000;\n }\n\n I0 = z0,\n I1 = z1,\n I2 = z2,\n I3 = z3;\n }\n\n /**\n * Set the internal rounds number.\n * @instance\n * @memberof AES_asm\n * @param {number} r - number if inner AES rounds\n */\n function set_rounds(r) {\n r = r | 0;\n R = r;\n }\n\n /**\n * Populate the internal state of the module.\n * @instance\n * @memberof AES_asm\n * @param {number} s0 - state vector\n * @param {number} s1 - state vector\n * @param {number} s2 - state vector\n * @param {number} s3 - state vector\n */\n function set_state(s0, s1, s2, s3) {\n s0 = s0 | 0;\n s1 = s1 | 0;\n s2 = s2 | 0;\n s3 = s3 | 0;\n\n S0 = s0,\n S1 = s1,\n S2 = s2,\n S3 = s3;\n }\n\n /**\n * Populate the internal iv of the module.\n * @instance\n * @memberof AES_asm\n * @param {number} i0 - iv vector\n * @param {number} i1 - iv vector\n * @param {number} i2 - iv vector\n * @param {number} i3 - iv vector\n */\n function set_iv(i0, i1, i2, i3) {\n i0 = i0 | 0;\n i1 = i1 | 0;\n i2 = i2 | 0;\n i3 = i3 | 0;\n\n I0 = i0,\n I1 = i1,\n I2 = i2,\n I3 = i3;\n }\n\n /**\n * Set nonce for CTR-family modes.\n * @instance\n * @memberof AES_asm\n * @param {number} n0 - nonce vector\n * @param {number} n1 - nonce vector\n * @param {number} n2 - nonce vector\n * @param {number} n3 - nonce vector\n */\n function set_nonce(n0, n1, n2, n3) {\n n0 = n0 | 0;\n n1 = n1 | 0;\n n2 = n2 | 0;\n n3 = n3 | 0;\n\n N0 = n0,\n N1 = n1,\n N2 = n2,\n N3 = n3;\n }\n\n /**\n * Set counter mask for CTR-family modes.\n * @instance\n * @memberof AES_asm\n * @param {number} m0 - counter mask vector\n * @param {number} m1 - counter mask vector\n * @param {number} m2 - counter mask vector\n * @param {number} m3 - counter mask vector\n */\n function set_mask(m0, m1, m2, m3) {\n m0 = m0 | 0;\n m1 = m1 | 0;\n m2 = m2 | 0;\n m3 = m3 | 0;\n\n M0 = m0,\n M1 = m1,\n M2 = m2,\n M3 = m3;\n }\n\n /**\n * Set counter for CTR-family modes.\n * @instance\n * @memberof AES_asm\n * @param {number} c0 - counter vector\n * @param {number} c1 - counter vector\n * @param {number} c2 - counter vector\n * @param {number} c3 - counter vector\n */\n function set_counter(c0, c1, c2, c3) {\n c0 = c0 | 0;\n c1 = c1 | 0;\n c2 = c2 | 0;\n c3 = c3 | 0;\n\n N3 = (~M3 & N3) | M3 & c3,\n N2 = (~M2 & N2) | M2 & c2,\n N1 = (~M1 & N1) | M1 & c1,\n N0 = (~M0 & N0) | M0 & c0;\n }\n\n /**\n * Store the internal state vector into the heap.\n * @instance\n * @memberof AES_asm\n * @param {number} pos - offset where to put the data\n * @return {number} The number of bytes have been written into the heap, always 16.\n */\n function get_state(pos) {\n pos = pos | 0;\n\n if (pos & 15) return -1;\n\n DATA[pos | 0] = S0 >>> 24,\n DATA[pos | 1] = S0 >>> 16 & 255,\n DATA[pos | 2] = S0 >>> 8 & 255,\n DATA[pos | 3] = S0 & 255,\n DATA[pos | 4] = S1 >>> 24,\n DATA[pos | 5] = S1 >>> 16 & 255,\n DATA[pos | 6] = S1 >>> 8 & 255,\n DATA[pos | 7] = S1 & 255,\n DATA[pos | 8] = S2 >>> 24,\n DATA[pos | 9] = S2 >>> 16 & 255,\n DATA[pos | 10] = S2 >>> 8 & 255,\n DATA[pos | 11] = S2 & 255,\n DATA[pos | 12] = S3 >>> 24,\n DATA[pos | 13] = S3 >>> 16 & 255,\n DATA[pos | 14] = S3 >>> 8 & 255,\n DATA[pos | 15] = S3 & 255;\n\n return 16;\n }\n\n /**\n * Store the internal iv vector into the heap.\n * @instance\n * @memberof AES_asm\n * @param {number} pos - offset where to put the data\n * @return {number} The number of bytes have been written into the heap, always 16.\n */\n function get_iv(pos) {\n pos = pos | 0;\n\n if (pos & 15) return -1;\n\n DATA[pos | 0] = I0 >>> 24,\n DATA[pos | 1] = I0 >>> 16 & 255,\n DATA[pos | 2] = I0 >>> 8 & 255,\n DATA[pos | 3] = I0 & 255,\n DATA[pos | 4] = I1 >>> 24,\n DATA[pos | 5] = I1 >>> 16 & 255,\n DATA[pos | 6] = I1 >>> 8 & 255,\n DATA[pos | 7] = I1 & 255,\n DATA[pos | 8] = I2 >>> 24,\n DATA[pos | 9] = I2 >>> 16 & 255,\n DATA[pos | 10] = I2 >>> 8 & 255,\n DATA[pos | 11] = I2 & 255,\n DATA[pos | 12] = I3 >>> 24,\n DATA[pos | 13] = I3 >>> 16 & 255,\n DATA[pos | 14] = I3 >>> 8 & 255,\n DATA[pos | 15] = I3 & 255;\n\n return 16;\n }\n\n /**\n * GCM initialization.\n * @instance\n * @memberof AES_asm\n */\n // function gcm_init() {\n // _ecb_enc(0, 0, 0, 0);\n // H0 = S0,\n // H1 = S1,\n // H2 = S2,\n // H3 = S3;\n // }\n\n /**\n * Perform ciphering operation on the supplied data.\n * @instance\n * @memberof AES_asm\n * @param {number} mode - block cipher mode (see {@link AES_asm} mode constants)\n * @param {number} pos - offset of the data being processed\n * @param {number} len - length of the data being processed\n * @return {number} Actual amount of data have been processed.\n */\n function cipher(mode, pos, len) {\n mode = mode | 0;\n pos = pos | 0;\n len = len | 0;\n\n var ret = 0;\n\n if (pos & 15) return -1;\n\n while ((len | 0) >= 16) {\n _cipher_modes[mode & 7](\n DATA[pos | 0] << 24 | DATA[pos | 1] << 16 | DATA[pos | 2] << 8 | DATA[pos | 3],\n DATA[pos | 4] << 24 | DATA[pos | 5] << 16 | DATA[pos | 6] << 8 | DATA[pos | 7],\n DATA[pos | 8] << 24 | DATA[pos | 9] << 16 | DATA[pos | 10] << 8 | DATA[pos | 11],\n DATA[pos | 12] << 24 | DATA[pos | 13] << 16 | DATA[pos | 14] << 8 | DATA[pos | 15]\n );\n\n DATA[pos | 0] = S0 >>> 24,\n DATA[pos | 1] = S0 >>> 16 & 255,\n DATA[pos | 2] = S0 >>> 8 & 255,\n DATA[pos | 3] = S0 & 255,\n DATA[pos | 4] = S1 >>> 24,\n DATA[pos | 5] = S1 >>> 16 & 255,\n DATA[pos | 6] = S1 >>> 8 & 255,\n DATA[pos | 7] = S1 & 255,\n DATA[pos | 8] = S2 >>> 24,\n DATA[pos | 9] = S2 >>> 16 & 255,\n DATA[pos | 10] = S2 >>> 8 & 255,\n DATA[pos | 11] = S2 & 255,\n DATA[pos | 12] = S3 >>> 24,\n DATA[pos | 13] = S3 >>> 16 & 255,\n DATA[pos | 14] = S3 >>> 8 & 255,\n DATA[pos | 15] = S3 & 255;\n\n ret = (ret + 16) | 0,\n pos = (pos + 16) | 0,\n len = (len - 16) | 0;\n }\n\n return ret | 0;\n }\n\n /**\n * Calculates MAC of the supplied data.\n * @instance\n * @memberof AES_asm\n * @param {number} mode - block cipher mode (see {@link AES_asm} mode constants)\n * @param {number} pos - offset of the data being processed\n * @param {number} len - length of the data being processed\n * @return {number} Actual amount of data have been processed.\n */\n function mac(mode, pos, len) {\n mode = mode | 0;\n pos = pos | 0;\n len = len | 0;\n\n var ret = 0;\n\n if (pos & 15) return -1;\n\n while ((len | 0) >= 16) {\n _mac_modes[mode & 1](\n DATA[pos | 0] << 24 | DATA[pos | 1] << 16 | DATA[pos | 2] << 8 | DATA[pos | 3],\n DATA[pos | 4] << 24 | DATA[pos | 5] << 16 | DATA[pos | 6] << 8 | DATA[pos | 7],\n DATA[pos | 8] << 24 | DATA[pos | 9] << 16 | DATA[pos | 10] << 8 | DATA[pos | 11],\n DATA[pos | 12] << 24 | DATA[pos | 13] << 16 | DATA[pos | 14] << 8 | DATA[pos | 15]\n );\n\n ret = (ret + 16) | 0,\n pos = (pos + 16) | 0,\n len = (len - 16) | 0;\n }\n\n return ret | 0;\n }\n\n /**\n * AES cipher modes table (virual methods)\n */\n var _cipher_modes = [_cbc_enc, _cbc_enc, _cbc_enc, _cbc_dec, _cbc_dec, _cbc_dec, _cbc_dec, _cbc_dec];\n\n /**\n * AES MAC modes table (virual methods)\n */\n var _mac_modes = [_cbc_enc, _cbc_enc];\n\n /**\n * Asm.js module exports\n */\n return {\n set_rounds: set_rounds,\n set_state: set_state,\n set_iv: set_iv,\n set_nonce: set_nonce,\n set_mask: set_mask,\n set_counter: set_counter,\n get_state: get_state,\n get_iv: get_iv,\n // gcm_init: gcm_init,\n cipher: cipher,\n mac: mac,\n };\n }(stdlib, foreign, buffer);\n\n asm.set_key = set_key;\n\n return asm;\n };\n\n /**\n * AES enciphering mode constants\n * @enum {number}\n * @const\n */\n wrapper.ENC = {\n //ECB: 0,\n CBC: 2,\n //CFB: 4,\n //OFB: 6,\n // CTR: 7,\n },\n\n /**\n * AES deciphering mode constants\n * @enum {number}\n * @const\n */\n wrapper.DEC = {\n //ECB: 1,\n CBC: 3,\n //CFB: 5,\n //OFB: 6,\n // CTR: 7,\n },\n\n /**\n * AES MAC mode constants\n * @enum {number}\n * @const\n */\n wrapper.MAC = {\n CBC: 0,\n //GCM: 1,\n };\n\n /**\n * Heap data offset\n * @type {number}\n * @const\n */\n wrapper.HEAP_DATA = 0x4000;\n\n return wrapper;\n}();\n\nfunction _heap_init(heap, heapSize) {\n const size = heap ? heap.byteLength : heapSize || 65536;\n if (size & 0xfff || size <= 0)\n throw new Error('heap size must be a positive integer and a multiple of 4096');\n heap = heap || new Uint8Array(new ArrayBuffer(size));\n return heap;\n}\nfunction _heap_write(heap, hpos, data, dpos, dlen) {\n const hlen = heap.length - hpos;\n const wlen = hlen < dlen ? hlen : dlen;\n heap.set(data.subarray(dpos, dpos + wlen), hpos);\n return wlen;\n}\nfunction is_bytes(a) {\n return a instanceof Uint8Array;\n}\nfunction joinBytes(...arg) {\n const totalLength = arg.reduce((sum, curr) => sum + curr.length, 0);\n const ret = new Uint8Array(totalLength);\n let cursor = 0;\n for (let i = 0; i < arg.length; i++) {\n ret.set(arg[i], cursor);\n cursor += arg[i].length;\n }\n return ret;\n}\n\nclass AES {\n constructor(key, iv, padding = true, mode) {\n this.pos = 0;\n this.len = 0;\n this.mode = mode;\n // The AES \"worker\"\n this.heap = _heap_init().subarray(AES_asm.HEAP_DATA);\n this.asm = new AES_asm(null, this.heap.buffer);\n // The AES object state\n this.pos = 0;\n this.len = 0;\n // Key\n const keylen = key.length;\n if (keylen !== 16 && keylen !== 24 && keylen !== 32)\n throw new TypeError('illegal key size');\n const keyview = new DataView(key.buffer, key.byteOffset, key.byteLength);\n this.asm.set_key(keylen >> 2, keyview.getUint32(0), keyview.getUint32(4), keyview.getUint32(8), keyview.getUint32(12), keylen > 16 ? keyview.getUint32(16) : 0, keylen > 16 ? keyview.getUint32(20) : 0, keylen > 24 ? keyview.getUint32(24) : 0, keylen > 24 ? keyview.getUint32(28) : 0);\n // IV\n if (iv !== undefined) {\n if (iv.length !== 16)\n throw new TypeError('illegal iv size');\n const ivview = new DataView(iv.buffer, iv.byteOffset, iv.byteLength);\n this.asm.set_iv(ivview.getUint32(0), ivview.getUint32(4), ivview.getUint32(8), ivview.getUint32(12));\n }\n else {\n this.asm.set_iv(0, 0, 0, 0);\n }\n this.padding = padding;\n }\n AES_Encrypt_process(data) {\n if (!is_bytes(data))\n throw new TypeError(\"data isn't of expected type\");\n const asm = this.asm;\n const heap = this.heap;\n const amode = AES_asm.ENC[this.mode];\n const hpos = AES_asm.HEAP_DATA;\n let pos = this.pos;\n let len = this.len;\n let dpos = 0;\n let dlen = data.length || 0;\n let rpos = 0;\n const rlen = (len + dlen) & -16;\n let wlen = 0;\n const result = new Uint8Array(rlen);\n while (dlen > 0) {\n wlen = _heap_write(heap, pos + len, data, dpos, dlen);\n len += wlen;\n dpos += wlen;\n dlen -= wlen;\n wlen = asm.cipher(amode, hpos + pos, len);\n if (wlen)\n result.set(heap.subarray(pos, pos + wlen), rpos);\n rpos += wlen;\n if (wlen < len) {\n pos += wlen;\n len -= wlen;\n }\n else {\n pos = 0;\n len = 0;\n }\n }\n this.pos = pos;\n this.len = len;\n return result;\n }\n AES_Encrypt_finish() {\n const asm = this.asm;\n const heap = this.heap;\n const amode = AES_asm.ENC[this.mode];\n const hpos = AES_asm.HEAP_DATA;\n const pos = this.pos;\n let len = this.len;\n const plen = 16 - (len % 16);\n let rlen = len;\n // if (this.hasOwnProperty('padding')) {\n if (this.padding) {\n for (let p = 0; p < plen; ++p) {\n heap[pos + len + p] = plen;\n }\n len += plen;\n rlen = len;\n }\n else if (len % 16) {\n throw new TypeError('data length must be a multiple of the block size');\n }\n // } else {\n // len += plen\n // }\n const result = new Uint8Array(rlen);\n if (len)\n asm.cipher(amode, hpos + pos, len);\n if (rlen)\n result.set(heap.subarray(pos, pos + rlen));\n this.pos = 0;\n this.len = 0;\n return result;\n }\n AES_Decrypt_process(data) {\n if (!is_bytes(data))\n throw new TypeError(\"data isn't of expected type\");\n const asm = this.asm;\n const heap = this.heap;\n const amode = AES_asm.DEC[this.mode];\n const hpos = AES_asm.HEAP_DATA;\n let pos = this.pos;\n let len = this.len;\n let dpos = 0;\n let dlen = data.length || 0;\n let rpos = 0;\n let rlen = (len + dlen) & -16;\n let plen = 0;\n let wlen = 0;\n if (this.padding) {\n plen = len + dlen - rlen || 16;\n rlen -= plen;\n }\n const result = new Uint8Array(rlen);\n while (dlen > 0) {\n wlen = _heap_write(heap, pos + len, data, dpos, dlen);\n len += wlen;\n dpos += wlen;\n dlen -= wlen;\n wlen = asm.cipher(amode, hpos + pos, len - (!dlen ? plen : 0));\n if (wlen)\n result.set(heap.subarray(pos, pos + wlen), rpos);\n rpos += wlen;\n if (wlen < len) {\n pos += wlen;\n len -= wlen;\n }\n else {\n pos = 0;\n len = 0;\n }\n }\n this.pos = pos;\n this.len = len;\n return result;\n }\n AES_Decrypt_finish() {\n const asm = this.asm;\n const heap = this.heap;\n const amode = AES_asm.DEC[this.mode];\n const hpos = AES_asm.HEAP_DATA;\n const pos = this.pos;\n const len = this.len;\n let rlen = len;\n if (len > 0) {\n if (len % 16) {\n // if (this.hasOwnProperty('padding')) {\n throw new Error('data length must be a multiple of the block size');\n // } else {\n // len += 16 - (len % 16)\n // }\n }\n asm.cipher(amode, hpos + pos, len);\n if ( /*this.hasOwnProperty('padding') &&*/this.padding) {\n const pad = heap[pos + rlen - 1];\n if (pad < 1 || pad > 16 || pad > rlen)\n throw new Error('bad padding');\n let pcheck = 0;\n for (let i = pad; i > 1; i--)\n pcheck |= pad ^ heap[pos + rlen - i];\n if (pcheck)\n throw new Error('bad padding');\n rlen -= pad;\n }\n }\n const result = new Uint8Array(rlen);\n if (rlen > 0) {\n result.set(heap.subarray(pos, pos + rlen));\n }\n this.pos = 0;\n this.len = 0;\n return result;\n }\n}\n\nclass AES_CBC {\n constructor(key, iv, padding = true, aes) {\n this.aes = aes ? aes : new AES(key, iv, padding, 'CBC');\n }\n static encrypt(data, key, padding = true, iv) {\n return new AES_CBC(key, iv, padding).encrypt(data);\n }\n static decrypt(data, key, padding = true, iv) {\n return new AES_CBC(key, iv, padding).decrypt(data);\n }\n encrypt(data) {\n const r1 = this.aes.AES_Encrypt_process(data);\n const r2 = this.aes.AES_Encrypt_finish();\n return joinBytes(r1, r2);\n }\n decrypt(data) {\n const r1 = this.aes.AES_Decrypt_process(data);\n const r2 = this.aes.AES_Decrypt_finish();\n return joinBytes(r1, r2);\n }\n}\n\nexport { AES, AES_CBC };\n//# sourceMappingURL=miniaes.m.js.map\n","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket\n}\n\nmodule.exports = ws\n","/**\n * Anchor Link v3.4.1\n * https://github.com/greymass/anchor-link\n *\n * @license\n * Copyright (c) 2020 Greymass Inc. All Rights Reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * 1. Redistribution of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * 2. Redistribution in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * 3. Neither the name of the copyright holder nor the names of its contributors\n * may be used to endorse or promote products derived from this software without\n * specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n * OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR INTENDED FOR USE\n * IN THE DESIGN, CONSTRUCTION, OPERATION OR MAINTENANCE OF ANY MILITARY FACILITY.\n */\nimport zlib from 'pako';\nimport { Struct, UInt64, Checksum512, Serializer, Bytes, Checksum256, PermissionLevel, PublicKey, Name, PrivateKey, APIClient, Signature, SignedTransaction } from '@greymass/eosio';\nexport * from '@greymass/eosio';\nimport { ChainId, SigningRequest, ResolvedSigningRequest, PlaceholderName, PlaceholderPermission } from 'eosio-signing-request';\nexport * from 'eosio-signing-request';\nexport { ChainId, ChainName, IdentityProof } from 'eosio-signing-request';\nimport { __decorate } from 'tslib';\nimport makeFetch from 'fetch-ponyfill';\nimport { AES_CBC } from '@greymass/miniaes';\nimport { v4 } from 'uuid';\nimport WebSocket from 'isomorphic-ws';\n\n/**\n * Error that is thrown if a [[LinkTransport]] cancels a request.\n * @internal\n */\nclass CancelError extends Error {\n constructor(reason) {\n super(`User canceled request ${reason ? '(' + reason + ')' : ''}`);\n this.code = 'E_CANCEL';\n }\n}\n/**\n * Error that is thrown if an identity request fails to verify.\n * @internal\n */\nclass IdentityError extends Error {\n constructor(reason) {\n super(`Unable to verify identity ${reason ? '(' + reason + ')' : ''}`);\n this.code = 'E_IDENTITY';\n }\n}\n/**\n * Error originating from a [[LinkSession]].\n * @internal\n */\nclass SessionError extends Error {\n constructor(reason, code, session) {\n super(reason);\n this.code = code;\n this.session = session;\n }\n}\n\n/** @internal */\nvar LinkOptions;\n(function (LinkOptions) {\n /** @internal */\n LinkOptions.defaults = {\n service: 'https://cb.anchor.link',\n verifyProofs: false,\n encodeChainIds: true,\n };\n})(LinkOptions || (LinkOptions = {}));\n\nlet SealedMessage = class SealedMessage extends Struct {\n};\n__decorate([\n Struct.field('public_key')\n], SealedMessage.prototype, \"from\", void 0);\n__decorate([\n Struct.field('uint64')\n], SealedMessage.prototype, \"nonce\", void 0);\n__decorate([\n Struct.field('bytes')\n], SealedMessage.prototype, \"ciphertext\", void 0);\n__decorate([\n Struct.field('uint32')\n], SealedMessage.prototype, \"checksum\", void 0);\nSealedMessage = __decorate([\n Struct.type('sealed_message')\n], SealedMessage);\nlet LinkCreate = class LinkCreate extends Struct {\n};\n__decorate([\n Struct.field('name')\n], LinkCreate.prototype, \"session_name\", void 0);\n__decorate([\n Struct.field('public_key')\n], LinkCreate.prototype, \"request_key\", void 0);\n__decorate([\n Struct.field('string', { extension: true })\n], LinkCreate.prototype, \"user_agent\", void 0);\nLinkCreate = __decorate([\n Struct.type('link_create')\n], LinkCreate);\nlet LinkInfo = class LinkInfo extends Struct {\n};\n__decorate([\n Struct.field('time_point_sec')\n], LinkInfo.prototype, \"expiration\", void 0);\nLinkInfo = __decorate([\n Struct.type('link_info')\n], LinkInfo);\n\n/** @internal */\nconst fetch = makeFetch().fetch;\n/**\n * Encrypt a message using AES and shared secret derived from given keys.\n * @internal\n */\nfunction sealMessage(message, privateKey, publicKey, nonce) {\n const secret = privateKey.sharedSecret(publicKey);\n if (!nonce) {\n nonce = UInt64.random();\n }\n const key = Checksum512.hash(Serializer.encode({ object: nonce }).appending(secret.array));\n const cbc = new AES_CBC(key.array.slice(0, 32), key.array.slice(32, 48));\n const ciphertext = Bytes.from(cbc.encrypt(Bytes.from(message, 'utf8').array));\n const checksumView = new DataView(Checksum256.hash(key.array).array.buffer);\n const checksum = checksumView.getUint32(0, true);\n return SealedMessage.from({\n from: privateKey.toPublic(),\n nonce,\n ciphertext,\n checksum,\n });\n}\n/**\n * Extract session metadata from a callback payload and request.\n * @internal\n */\nfunction sessionMetadata(payload, request) {\n const metadata = {\n // backwards compat, can be removed next major release\n sameDevice: request.getRawInfo()['return_path'] !== undefined,\n };\n // append extra metadata from the signer\n if (payload.link_meta) {\n try {\n const parsed = JSON.parse(payload.link_meta);\n for (const key of Object.keys(parsed)) {\n // normalize key names to camelCase\n metadata[snakeToCamel(key)] = parsed[key];\n }\n }\n catch (error) {\n logWarn('Unable to parse link metadata', error, payload.link_meta);\n }\n }\n return metadata;\n}\n/**\n * Return PascalCase version of snake_case string.\n * @internal\n */\nfunction snakeToPascal(name) {\n return name\n .split('_')\n .map((v) => (v[0] ? v[0].toUpperCase() : '_') + v.slice(1))\n .join('');\n}\n/**\n * Return camelCase version of snake_case string.\n * @internal\n */\nfunction snakeToCamel(name) {\n const pascal = snakeToPascal(name);\n return pascal[0].toLowerCase() + pascal.slice(1);\n}\n/**\n * Print a warning message to console.\n * @internal\n **/\nfunction logWarn(...args) {\n // eslint-disable-next-line no-console\n console.warn('[anchor-link]', ...args);\n}\n\n/**\n * Type describing a link session that can create a eosjs compatible\n * signature provider and transact for a specific auth.\n */\nclass LinkSession {\n /** @internal */\n constructor() { } // eslint-disable-line @typescript-eslint/no-empty-function\n /**\n * Convenience, remove this session from associated [[Link]] storage if set.\n * Equivalent to:\n * ```ts\n * session.link.removeSession(session.identifier, session.auth, session.chainId)\n * ```\n */\n async remove() {\n if (this.link.storage) {\n await this.link.removeSession(this.identifier, this.auth, this.chainId);\n }\n }\n /** API client for the chain this session is valid on. */\n get client() {\n return this.link.getChain(this.chainId).client;\n }\n /** Restore a previously serialized session. */\n static restore(link, data) {\n switch (data.type) {\n case 'channel':\n return new LinkChannelSession(link, data.data, data.metadata);\n case 'fallback':\n return new LinkFallbackSession(link, data.data, data.metadata);\n default:\n throw new Error('Unable to restore, session data invalid');\n }\n }\n}\n/**\n * Link session that pushes requests over a channel.\n * @internal\n */\nclass LinkChannelSession extends LinkSession {\n constructor(link, data, metadata) {\n super();\n this.type = 'channel';\n this.timeout = 2 * 60 * 1000; // ms\n this.link = link;\n this.chainId = ChainId.from(data.chainId);\n this.auth = PermissionLevel.from(data.auth);\n this.publicKey = PublicKey.from(data.publicKey);\n this.identifier = Name.from(data.identifier);\n const privateKey = PrivateKey.from(data.requestKey);\n this.channelKey = PublicKey.from(data.channel.key);\n this.channelUrl = data.channel.url;\n this.channelName = data.channel.name;\n this.encrypt = (request) => {\n return sealMessage(request.encode(true, false), privateKey, this.channelKey);\n };\n this.metadata = {\n ...(metadata || {}),\n timeout: this.timeout,\n name: this.channelName,\n request_key: privateKey.toPublic(),\n };\n this.serialize = () => ({\n type: 'channel',\n data: {\n ...data,\n channel: {\n url: this.channelUrl,\n key: this.channelKey,\n name: this.channelName,\n },\n },\n metadata: this.metadata,\n });\n }\n onSuccess(request, result) {\n if (this.link.transport.onSuccess) {\n this.link.transport.onSuccess(request, result);\n }\n }\n onFailure(request, error) {\n if (this.link.transport.onFailure) {\n this.link.transport.onFailure(request, error);\n }\n }\n onRequest(request, cancel) {\n const info = LinkInfo.from({\n expiration: new Date(Date.now() + this.timeout),\n });\n if (this.link.transport.onSessionRequest) {\n this.link.transport.onSessionRequest(this, request, cancel);\n }\n const timer = setTimeout(() => {\n cancel(new SessionError('Wallet did not respond in time', 'E_TIMEOUT', this));\n }, this.timeout);\n request.setInfoKey('link', info);\n let payloadSent = false;\n const payload = Serializer.encode({ object: this.encrypt(request) });\n if (this.link.transport.sendSessionPayload) {\n try {\n payloadSent = this.link.transport.sendSessionPayload(payload, this);\n }\n catch (error) {\n logWarn('Unexpected error when transport tried to send session payload', error);\n }\n }\n if (payloadSent) {\n return;\n }\n fetch(this.channelUrl, {\n method: 'POST',\n headers: {\n 'X-Buoy-Soft-Wait': '10',\n },\n body: payload.array,\n })\n .then((response) => {\n if (Math.floor(response.status / 100) !== 2) {\n clearTimeout(timer);\n if (response.status === 202) {\n logWarn('Missing delivery ack from session channel');\n }\n cancel(new SessionError('Unable to push message', 'E_DELIVERY', this));\n }\n })\n .catch((error) => {\n clearTimeout(timer);\n cancel(new SessionError(`Unable to reach link service (${error.message || String(error)})`, 'E_DELIVERY', this));\n });\n }\n addLinkInfo(request) {\n const createInfo = LinkCreate.from({\n session_name: this.identifier,\n request_key: this.metadata.request_key,\n user_agent: this.link.getUserAgent(),\n });\n request.setInfoKey('link', createInfo);\n }\n prepare(request) {\n if (this.link.transport.prepare) {\n return this.link.transport.prepare(request, this);\n }\n return Promise.resolve(request);\n }\n showLoading() {\n if (this.link.transport.showLoading) {\n return this.link.transport.showLoading();\n }\n }\n recoverError(error, request) {\n if (this.link.transport.recoverError) {\n return this.link.transport.recoverError(error, request);\n }\n return false;\n }\n makeSignatureProvider() {\n return this.link.makeSignatureProvider([this.publicKey.toString()], this.chainId, this);\n }\n async transact(args, options) {\n const res = await this.link.transact(args, { ...options, chain: this.chainId }, this);\n // update session if callback payload contains new channel info\n if (res.payload.link_ch && res.payload.link_key && res.payload.link_name) {\n try {\n const metadata = {\n ...this.metadata,\n ...sessionMetadata(res.payload, res.resolved.request),\n };\n this.channelUrl = res.payload.link_ch;\n this.channelKey = PublicKey.from(res.payload.link_key);\n this.channelName = res.payload.link_name;\n metadata.name = res.payload.link_name;\n this.metadata = metadata;\n }\n catch (error) {\n logWarn('Unable to recover link session', error);\n }\n }\n return res;\n }\n}\n/**\n * Link session that sends every request over the transport.\n * @internal\n */\nclass LinkFallbackSession extends LinkSession {\n constructor(link, data, metadata) {\n super();\n this.type = 'fallback';\n this.link = link;\n this.auth = PermissionLevel.from(data.auth);\n this.publicKey = PublicKey.from(data.publicKey);\n this.chainId = ChainId.from(data.chainId);\n this.metadata = metadata || {};\n this.identifier = Name.from(data.identifier);\n this.serialize = () => ({\n type: this.type,\n data,\n metadata: this.metadata,\n });\n }\n onSuccess(request, result) {\n if (this.link.transport.onSuccess) {\n this.link.transport.onSuccess(request, result);\n }\n }\n onFailure(request, error) {\n if (this.link.transport.onFailure) {\n this.link.transport.onFailure(request, error);\n }\n }\n onRequest(request, cancel) {\n if (this.link.transport.onSessionRequest) {\n this.link.transport.onSessionRequest(this, request, cancel);\n }\n else {\n this.link.transport.onRequest(request, cancel);\n }\n }\n prepare(request) {\n if (this.link.transport.prepare) {\n return this.link.transport.prepare(request, this);\n }\n return Promise.resolve(request);\n }\n showLoading() {\n if (this.link.transport.showLoading) {\n return this.link.transport.showLoading();\n }\n }\n makeSignatureProvider() {\n return this.link.makeSignatureProvider([this.publicKey.toString()], this.chainId, this);\n }\n transact(args, options) {\n return this.link.transact(args, { ...options, chain: this.chainId }, this);\n }\n}\n\n/** @internal */\nclass BuoyCallbackService {\n constructor(address) {\n this.address = address.trim().replace(/\\/$/, '');\n }\n create() {\n const url = `${this.address}/${v4()}`;\n return new BuoyCallback(url);\n }\n}\n/** @internal */\nclass BuoyCallback {\n constructor(url) {\n this.url = url;\n this.ctx = {};\n }\n wait() {\n if (this.url.includes('hyperbuoy')) {\n return pollForCallback(this.url, this.ctx);\n }\n else {\n return waitForCallback(this.url, this.ctx);\n }\n }\n cancel() {\n if (this.ctx.cancel) {\n this.ctx.cancel();\n }\n }\n}\n/**\n * Connect to a WebSocket channel and wait for a message.\n * @internal\n */\nfunction waitForCallback(url, ctx) {\n return new Promise((resolve, reject) => {\n let active = true;\n let retries = 0;\n const socketUrl = url.replace(/^http/, 'ws');\n const handleResponse = (response) => {\n try {\n resolve(JSON.parse(response));\n }\n catch (error) {\n error.message = 'Unable to parse callback JSON: ' + error.message;\n reject(error);\n }\n };\n const connect = () => {\n const socket = new WebSocket(socketUrl);\n ctx.cancel = () => {\n active = false;\n if (socket.readyState === WebSocket.OPEN ||\n socket.readyState === WebSocket.CONNECTING) {\n socket.close();\n }\n };\n socket.onmessage = (event) => {\n active = false;\n if (socket.readyState === WebSocket.OPEN) {\n socket.close();\n }\n if (typeof Blob !== 'undefined' && event.data instanceof Blob) {\n const reader = new FileReader();\n reader.onload = () => {\n handleResponse(reader.result);\n };\n reader.onerror = (error) => {\n reject(error);\n };\n reader.readAsText(event.data);\n }\n else {\n if (typeof event.data === 'string') {\n handleResponse(event.data);\n }\n else {\n handleResponse(event.data.toString());\n }\n }\n };\n socket.onopen = () => {\n retries = 0;\n };\n socket.onclose = () => {\n if (active) {\n setTimeout(connect, backoff(retries++));\n }\n };\n };\n connect();\n });\n}\n/**\n * Long-poll for message.\n * @internal\n */\nasync function pollForCallback(url, ctx) {\n let active = true;\n ctx.cancel = () => {\n active = false;\n };\n while (active) {\n try {\n const res = await fetch(url);\n if (res.status === 408) {\n continue;\n }\n else if (res.status === 200) {\n return await res.json();\n }\n else {\n throw new Error(`HTTP ${res.status}: ${res.statusText}`);\n }\n }\n catch (error) {\n logWarn('Unexpected hyperbuoy error', error);\n }\n await sleep(1000);\n }\n return null;\n}\n/**\n * Exponential backoff function that caps off at 10s after 10 tries.\n * https://i.imgur.com/IrUDcJp.png\n * @internal\n */\nfunction backoff(tries) {\n return Math.min(Math.pow(tries * 10, 2), 10 * 1000);\n}\n/**\n * Return promise that resolves after given milliseconds.\n * @internal\n */\nfunction sleep(ms) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n}\n\n/**\n * Class representing a EOSIO chain.\n */\nclass LinkChain {\n /** @internal */\n constructor(chainId, clientOrUrl) {\n this.abiCache = new Map();\n this.pendingAbis = new Map();\n this.chainId = ChainId.from(chainId);\n this.client =\n typeof clientOrUrl === 'string' ? new APIClient({ url: clientOrUrl }) : clientOrUrl;\n }\n /**\n * Fetch the ABI for given account, cached.\n * @internal\n */\n async getAbi(account) {\n const key = String(account);\n let rv = this.abiCache.get(key);\n if (!rv) {\n let getAbi = this.pendingAbis.get(key);\n if (!getAbi) {\n getAbi = this.client.v1.chain.get_abi(account);\n this.pendingAbis.set(key, getAbi);\n }\n rv = (await getAbi).abi;\n this.pendingAbis.delete(key);\n if (rv) {\n this.abiCache.set(key, rv);\n }\n }\n return rv;\n }\n}\n/**\n * Anchor Link main class.\n *\n * @example\n *\n * ```ts\n * import AnchorLink from 'anchor-link'\n * import ConsoleTransport from 'anchor-link-console-transport'\n *\n * const link = new AnchorLink({\n * transport: new ConsoleTransport(),\n * chains: [\n * {\n * chainId: 'aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906',\n * nodeUrl: 'https://eos.greymass.com',\n * },\n * ],\n * })\n *\n * const result = await link.transact({actions: myActions})\n * ```\n */\nclass Link {\n /** Create a new link instance. */\n constructor(options) {\n if (typeof options !== 'object') {\n throw new TypeError('Missing options object');\n }\n if (!options.transport) {\n throw new TypeError('options.transport is required');\n }\n let chains = options.chains || [];\n if (options.chainId && options.client) {\n if (options.chains.length > 0) {\n throw new TypeError('options.chainId and options.client are deprecated and cannot be used together with options.chains');\n }\n chains = [{ chainId: options.chainId, nodeUrl: options.client }];\n }\n if (chains.length === 0) {\n throw new TypeError('options.chains is required');\n }\n this.chains = chains.map((chain) => {\n if (chain instanceof LinkChain) {\n return chain;\n }\n if (!chain.chainId) {\n throw new TypeError('options.chains[].chainId is required');\n }\n if (!chain.nodeUrl) {\n throw new TypeError('options.chains[].nodeUrl is required');\n }\n return new LinkChain(chain.chainId, chain.nodeUrl);\n });\n if (options.service === undefined || typeof options.service === 'string') {\n this.callbackService = new BuoyCallbackService(options.service || LinkOptions.defaults.service);\n }\n else {\n this.callbackService = options.service;\n }\n this.transport = options.transport;\n if (options.storage !== null) {\n this.storage = options.storage || this.transport.storage;\n }\n this.verifyProofs =\n options.verifyProofs !== undefined\n ? options.verifyProofs\n : LinkOptions.defaults.verifyProofs;\n this.encodeChainIds =\n options.encodeChainIds !== undefined\n ? options.encodeChainIds\n : LinkOptions.defaults.encodeChainIds;\n }\n /**\n * The APIClient instance for communicating with the node.\n * @note This returns the first APIClient when link is configured with multiple chains.\n */\n get client() {\n return this.chains[0].client;\n }\n /**\n * Return a [[LinkChain]] object for given chainId or chain reference.\n * @throws If this link instance has no configured chain for given reference.\n * @internal\n */\n getChain(chain) {\n if (chain instanceof LinkChain) {\n return chain;\n }\n if (typeof chain === 'number') {\n const rv = this.chains[chain];\n if (!rv) {\n throw new Error(`Invalid chain index: ${chain}`);\n }\n return rv;\n }\n const id = ChainId.from(chain);\n const rv = this.chains.find((c) => c.chainId.equals(id));\n if (!rv) {\n throw new Error(`Unsupported chain: ${id}`);\n }\n return rv;\n }\n /**\n * Create a SigningRequest instance configured for this link.\n * @internal\n */\n async createRequest(args, chain, transport) {\n const t = transport || this.transport;\n let request;\n if (chain || this.chains.length === 1) {\n const c = chain || this.chains[0];\n request = await SigningRequest.create({\n ...args,\n chainId: c.chainId,\n broadcast: false,\n }, { abiProvider: c, zlib });\n }\n else {\n // multi-chain request\n request = await SigningRequest.create({\n ...args,\n chainId: null,\n chainIds: this.encodeChainIds ? this.chains.map((c) => c.chainId) : undefined,\n broadcast: false,\n }, \n // abi's will be pulled from the first chain and assumed to be identical on all chains\n { abiProvider: this.chains[0], zlib });\n }\n if (t.prepare) {\n request = await t.prepare(request);\n }\n const callback = this.callbackService.create();\n request.setCallback(callback.url, true);\n return { request, callback };\n }\n /**\n * Send a SigningRequest instance using this link.\n * @internal\n */\n async sendRequest(request, callback, chain, transport, broadcast = false) {\n const t = transport || this.transport;\n try {\n const linkUrl = request.data.callback;\n if (linkUrl !== callback.url) {\n throw new Error('Invalid request callback');\n }\n if (request.data.flags.broadcast === true || request.data.flags.background === false) {\n throw new Error('Invalid request flags');\n }\n // wait for callback or user cancel\n let done = false;\n const cancel = new Promise((resolve, reject) => {\n t.onRequest(request, (reason) => {\n if (done) {\n // ignore any cancel calls once callbackResponse below has resolved\n return;\n }\n const error = typeof reason === 'string' ? new CancelError(reason) : reason;\n if (t.recoverError && t.recoverError(error, request) === true) {\n // transport was able to recover from the error\n return;\n }\n callback.cancel();\n reject(error);\n });\n });\n const callbackResponse = await Promise.race([callback.wait(), cancel]);\n done = true;\n if (typeof callbackResponse.rejected === 'string') {\n throw new CancelError(callbackResponse.rejected);\n }\n const payload = callbackResponse;\n const signer = PermissionLevel.from({\n actor: payload.sa,\n permission: payload.sp,\n });\n const signatures = Object.keys(payload)\n .filter((key) => key.startsWith('sig') && key !== 'sig0')\n .map((key) => Signature.from(payload[key]));\n let c;\n if (!chain && this.chains.length > 1) {\n if (!payload.cid) {\n throw new Error('Multi chain response payload must specify resolved chain id (cid)');\n }\n c = this.getChain(payload.cid);\n }\n else {\n c = chain || this.getChain(0);\n if (payload.cid && !c.chainId.equals(payload.cid)) {\n throw new Error('Got response for wrong chain id');\n }\n }\n // recreate transaction from request response\n const resolved = await ResolvedSigningRequest.fromPayload(payload, {\n zlib,\n abiProvider: c,\n });\n // prepend cosigner signature if present\n const cosignerSig = resolved.request.getInfoKey('cosig', {\n type: Signature,\n array: true,\n });\n if (cosignerSig) {\n signatures.unshift(...cosignerSig);\n }\n const result = {\n resolved,\n chain: c,\n transaction: resolved.transaction,\n resolvedTransaction: resolved.resolvedTransaction,\n signatures,\n payload,\n signer,\n };\n if (broadcast) {\n const signedTx = SignedTransaction.from({\n ...resolved.transaction,\n signatures,\n });\n const res = await c.client.v1.chain.push_transaction(signedTx);\n result.processed = res.processed;\n }\n if (t.onSuccess) {\n t.onSuccess(request, result);\n }\n return result;\n }\n catch (error) {\n if (t.onFailure) {\n t.onFailure(request, error);\n }\n throw error;\n }\n }\n /**\n * Sign and optionally broadcast a EOSIO transaction, action or actions.\n *\n * Example:\n *\n * ```ts\n * let result = await myLink.transact({transaction: myTx})\n * ```\n *\n * @param args The action, actions or transaction to use.\n * @param options Options for this transact call.\n * @param transport Transport override, for internal use.\n */\n async transact(args, options, transport) {\n const o = options || {};\n const t = transport || this.transport;\n const c = o.chain !== undefined ? this.getChain(o.chain) : undefined;\n const broadcast = o.broadcast !== false;\n const noModify = o.noModify !== undefined ? o.noModify : !broadcast;\n // Initialize the loading state of the transport\n if (t && t.showLoading) {\n t.showLoading();\n }\n // eosjs transact compat: upgrade to transaction if args have any header fields\n const anyArgs = args;\n if (args.actions &&\n (anyArgs.expiration ||\n anyArgs.ref_block_num ||\n anyArgs.ref_block_prefix ||\n anyArgs.max_net_usage_words ||\n anyArgs.max_cpu_usage_ms ||\n anyArgs.delay_sec)) {\n args = {\n transaction: {\n expiration: '1970-01-01T00:00:00',\n ref_block_num: 0,\n ref_block_prefix: 0,\n max_net_usage_words: 0,\n max_cpu_usage_ms: 0,\n delay_sec: 0,\n ...anyArgs,\n },\n };\n }\n const { request, callback } = await this.createRequest(args, c, t);\n if (noModify) {\n request.setInfoKey('no_modify', true, 'bool');\n }\n const result = await this.sendRequest(request, callback, c, t, broadcast);\n return result;\n }\n /**\n * Send an identity request and verify the identity proof if [[LinkOptions.verifyProofs]] is true.\n * @param args.scope The scope of the identity request.\n * @param args.requestPermission Optional request permission if the request is for a specific account or permission.\n * @param args.info Metadata to add to the request.\n * @note This is for advanced use-cases, you probably want to use [[Link.login]] instead.\n */\n async identify(args) {\n const { request, callback } = await this.createRequest({\n identity: { permission: args.requestPermission, scope: args.scope },\n info: args.info,\n });\n const res = await this.sendRequest(request, callback);\n if (!res.resolved.request.isIdentity()) {\n throw new IdentityError('Unexpected response');\n }\n let account;\n const proof = res.resolved.getIdentityProof(res.signatures[0]);\n if (this.verifyProofs) {\n account = await res.chain.client.v1.chain.get_account(res.signer.actor);\n if (!account) {\n throw new IdentityError(`Signature from unknown account: ${proof.signer.actor}`);\n }\n const accountPermission = account.permissions.find(({ perm_name }) => proof.signer.permission.equals(perm_name));\n if (!accountPermission) {\n throw new IdentityError(`${proof.signer.actor} signed for unknown permission: ${proof.signer.permission}`);\n }\n const proofValid = proof.verify(accountPermission.required_auth, account.head_block_time);\n if (!proofValid) {\n throw new IdentityError(`Invalid identify proof for: ${proof.signer}`);\n }\n }\n if (args.requestPermission) {\n const perm = PermissionLevel.from(args.requestPermission);\n if ((!perm.actor.equals(PlaceholderName) && !perm.actor.equals(proof.signer.actor)) ||\n (!perm.permission.equals(PlaceholderPermission) &&\n !perm.permission.equals(proof.signer.permission))) {\n throw new IdentityError(`Identity proof singed by ${proof.signer}, expected: ${formatAuth(perm)} `);\n }\n }\n return {\n ...res,\n account,\n proof,\n };\n }\n /**\n * Login and create a persistent session.\n * @param identifier The session identifier, an EOSIO name (`[a-z1-5]{1,12}`).\n * Should be set to the contract account if applicable.\n */\n async login(identifier) {\n const privateKey = PrivateKey.generate('K1');\n const requestKey = privateKey.toPublic();\n const createInfo = LinkCreate.from({\n session_name: identifier,\n request_key: requestKey,\n user_agent: this.getUserAgent(),\n });\n const res = await this.identify({\n scope: identifier,\n info: {\n link: createInfo,\n scope: identifier,\n },\n });\n const metadata = sessionMetadata(res.payload, res.resolved.request);\n const signerKey = res.proof.recover();\n let session;\n if (res.payload.link_ch && res.payload.link_key && res.payload.link_name) {\n session = new LinkChannelSession(this, {\n identifier,\n chainId: res.chain.chainId,\n auth: res.signer,\n publicKey: signerKey,\n channel: {\n url: res.payload.link_ch,\n key: res.payload.link_key,\n name: res.payload.link_name,\n },\n requestKey: privateKey,\n }, metadata);\n }\n else {\n session = new LinkFallbackSession(this, {\n identifier,\n chainId: res.chain.chainId,\n auth: res.signer,\n publicKey: signerKey,\n }, metadata);\n }\n await this.storeSession(session);\n return {\n ...res,\n session,\n };\n }\n /**\n * Restore previous session, use [[login]] to create a new session.\n * @param identifier The session identifier, must be same as what was used when creating the session with [[login]].\n * @param auth A specific session auth to restore, if omitted the most recently used session will be restored.\n * @param chainId If given function will only consider that specific chain when restoring session.\n * @returns A [[LinkSession]] instance or null if no session can be found.\n * @throws If no [[LinkStorage]] adapter is configured or there was an error retrieving the session data.\n **/\n async restoreSession(identifier, auth, chainId) {\n if (!this.storage) {\n throw new Error('Unable to restore session: No storage adapter configured');\n }\n let key;\n if (auth && chainId) {\n // both auth and chain id given, we can look up on specific key\n key = this.sessionKey(identifier, formatAuth(PermissionLevel.from(auth)), String(ChainId.from(chainId)));\n }\n else {\n // otherwise we use the session list to filter down to most recently used matching given params\n let list = await this.listSessions(identifier);\n if (auth) {\n list = list.filter((item) => item.auth.equals(auth));\n }\n if (chainId) {\n const id = ChainId.from(chainId);\n list = list.filter((item) => item.chainId.equals(id));\n }\n const latest = list[0];\n if (!latest) {\n return null;\n }\n key = this.sessionKey(identifier, formatAuth(latest.auth), String(latest.chainId));\n }\n const data = await this.storage.read(key);\n if (!data) {\n return null;\n }\n let sessionData;\n try {\n sessionData = JSON.parse(data);\n }\n catch (error) {\n throw new Error(`Unable to restore session: Stored JSON invalid (${error.message || String(error)})`);\n }\n const session = LinkSession.restore(this, sessionData);\n if (auth || chainId) {\n // update latest used\n await this.touchSession(identifier, session.auth, session.chainId);\n }\n return session;\n }\n /**\n * List stored session auths for given identifier.\n * The most recently used session is at the top (index 0).\n * @throws If no [[LinkStorage]] adapter is configured or there was an error retrieving the session list.\n **/\n async listSessions(identifier) {\n if (!this.storage) {\n throw new Error('Unable to list sessions: No storage adapter configured');\n }\n const key = this.sessionKey(identifier, 'list');\n let list;\n try {\n list = JSON.parse((await this.storage.read(key)) || '[]');\n }\n catch (error) {\n throw new Error(`Unable to list sessions: ${error.message || String(error)}`);\n }\n return list.map(({ auth, chainId }) => ({\n auth: PermissionLevel.from(auth),\n chainId: ChainId.from(chainId),\n }));\n }\n /**\n * Remove stored session for given identifier and auth.\n * @throws If no [[LinkStorage]] adapter is configured or there was an error removing the session data.\n */\n async removeSession(identifier, auth, chainId) {\n if (!this.storage) {\n throw new Error('Unable to remove session: No storage adapter configured');\n }\n const key = this.sessionKey(identifier, formatAuth(auth), String(chainId));\n await this.storage.remove(key);\n await this.touchSession(identifier, auth, chainId, true);\n }\n /**\n * Remove all stored sessions for given identifier.\n * @throws If no [[LinkStorage]] adapter is configured or there was an error removing the session data.\n */\n async clearSessions(identifier) {\n if (!this.storage) {\n throw new Error('Unable to clear sessions: No storage adapter configured');\n }\n for (const { auth, chainId } of await this.listSessions(identifier)) {\n await this.removeSession(identifier, auth, chainId);\n }\n }\n /**\n * Create an eosjs compatible signature provider using this link.\n * @param availableKeys Keys the created provider will claim to be able to sign for.\n * @param chain Chain to use when configured with multiple chains.\n * @param transport (internal) Transport override for this call.\n * @note We don't know what keys are available so those have to be provided,\n * to avoid this use [[LinkSession.makeSignatureProvider]] instead. Sessions can be created with [[Link.login]].\n */\n makeSignatureProvider(availableKeys, chain, transport) {\n return {\n getAvailableKeys: async () => availableKeys,\n sign: async (args) => {\n const t = transport || this.transport;\n const c = chain ? this.getChain(chain) : this.chains[0];\n let request = SigningRequest.fromTransaction(args.chainId, args.serializedTransaction, { abiProvider: c, zlib });\n const callback = this.callbackService.create();\n request.setCallback(callback.url, true);\n request.setBroadcast(false);\n if (t.prepare) {\n request = await t.prepare(request);\n }\n const { transaction, signatures } = await this.sendRequest(request, callback, c, t);\n const serializedTransaction = Serializer.encode({ object: transaction });\n return {\n ...args,\n serializedTransaction,\n signatures,\n };\n },\n };\n }\n /** Makes sure session is in storage list of sessions and moves it to top (most recently used). */\n async touchSession(identifier, auth, chainId, remove = false) {\n const list = await this.listSessions(identifier);\n const existing = list.findIndex((item) => item.auth.equals(auth) && item.chainId.equals(chainId));\n if (existing >= 0) {\n list.splice(existing, 1);\n }\n if (remove === false) {\n list.unshift({ auth, chainId });\n }\n const key = this.sessionKey(identifier, 'list');\n await this.storage.write(key, JSON.stringify(list));\n }\n /**\n * Makes sure session is in storage list of sessions and moves it to top (most recently used).\n * @internal\n */\n async storeSession(session) {\n if (this.storage) {\n const key = this.sessionKey(session.identifier, formatAuth(session.auth), String(session.chainId));\n const data = JSON.stringify(session.serialize());\n await this.storage.write(key, data);\n await this.touchSession(session.identifier, session.auth, session.chainId);\n }\n }\n /** Session storage key for identifier and suffix. */\n sessionKey(identifier, ...suffix) {\n return [String(Name.from(identifier)), ...suffix].join('-');\n }\n /**\n * Return user agent of this link.\n * @internal\n */\n getUserAgent() {\n let rv = `AnchorLink/${Link.version}`;\n if (this.transport.userAgent) {\n rv += ' ' + this.transport.userAgent();\n }\n return rv;\n }\n}\n/** Package version. */\nLink.version = '3.4.1'; // eslint-disable-line @typescript-eslint/no-inferrable-types\n/**\n * Format a EOSIO permission level in the format `actor@permission` taking placeholders into consideration.\n * @internal\n */\nfunction formatAuth(auth) {\n const a = PermissionLevel.from(auth);\n const actor = a.actor.equals(PlaceholderName) ? '' : String(a.actor);\n let permission;\n if (a.permission.equals(PlaceholderName) || a.permission.equals(PlaceholderPermission)) {\n permission = '';\n }\n else {\n permission = String(a.permission);\n }\n return `${actor}@${permission}`;\n}\n\n// export library\n\nexport { CancelError, IdentityError, Link, LinkChain, LinkChannelSession, LinkFallbackSession, LinkSession, SessionError, Link as default };\n//# sourceMappingURL=anchor-link.m.js.map\n","import {Asset, Name} from '@greymass/eosio'\nimport {ChainId} from 'anchor-link'\n\nconst branch = import.meta.env.SNOWPACK_PUBLIC_BRANCH || 'local'\nconst rev = import.meta.env.SNOWPACK_PUBLIC_REV || 'head'\nconst ver = import.meta.env.SNOWPACK_PUBLIC_VERSION || 'unknown'\n\n/** Only true in a production build. */\nexport const isRelease = branch === 'HEAD'\n\n/** App identifier, used for anchor link (session persistence). */\nexport const appId = !isRelease\n ? `w.${branch.replace(/[^1-5a-z]+/g, '').slice(0, 7)}.gm`\n : 'wallet.gm'\n\nexport const version = `${ver} (${branch}-${rev})`\nexport const releaseVersion = `Version ${ver}`\n\nexport enum ChainFeatures {\n /** eosio.namebid https://github.com/EOSIO/eosio.contracts/blob/master/contracts/eosio.system/src/name_bidding.cpp */\n BidName,\n /** eosio.buyram / eosio.buyrambytes https://github.com/EOSIO/eosio.contracts/blob/master/contracts/eosio.system/src/delegate_bandwidth.cpp#L43 */\n BuyRAM,\n /** FIO Bundled Transactions https://fio.wiki/knowledge-base/protocol/bundling-and-fees/ */\n FIOBundledFees,\n /** Fuel https://greymass.com/fuel */\n Fuel,\n /** eosio.powerup https://github.com/EOSIO/eosio.contracts/pull/397 */\n PowerUp,\n /** eosio.rentcpu / eosio.rentnet https://github.com/EOSIO/eosio.contracts/blob/master/contracts/eosio.system/src/powerup.cpp */\n REX,\n /** eosio.delegatebw https://github.com/EOSIO/eosio.contracts/blob/master/contracts/eosio.system/src/delegate_bandwidth.cpp#L372 */\n Staking,\n /** eosio.voteproducer https://github.com/EOSIO/eosio.contracts/blob/master/contracts/eosio.system/src/voting.cpp */\n VoteProducer,\n /** delphioracle https://github.com/eostitan/delphioracle */\n DelphiOracle,\n}\n\n// List of features involving resources\nexport const resourceFeatures = [\n ChainFeatures.Fuel,\n ChainFeatures.Staking,\n ChainFeatures.REX,\n ChainFeatures.PowerUp,\n]\n\n// Available Balance Providers\nexport enum BalanceProviders {\n // https://www.api.bloks.io/account/teamgreymass?type=getAccountTokens&coreSymbol=4,EOS\n Bloks,\n}\n\nexport interface ChainConfig {\n /** Short identifier. */\n id: string\n /** Display name. */\n name: string\n /** Chain Features */\n chainFeatures: Set\n /** Chain ID. */\n chainId: ChainId\n /** System Token Contract Name */\n coreTokenContract: Name\n /** System Token Symbol */\n coreTokenSymbol: Asset.Symbol\n /** System Token Transfer Action */\n coreTokenTransfer: Name\n /** Node URL to use. */\n nodeUrl: string\n /** True if network is a testnet. */\n testnet: boolean\n /** Account to use for resource sampling */\n resourceSampleAccount?: string\n /** The number of milliseconds to base sample prices on */\n resourceSampleMilliseconds?: number\n /** Bloks url */\n bloksUrl: string\n /** Available Balance Providers */\n balanceProviders?: Set\n}\n\n/** Supported chains. */\nexport const chains: ChainConfig[] = [\n {\n id: 'eos',\n chainFeatures: new Set([\n ChainFeatures.BidName,\n ChainFeatures.BuyRAM,\n ChainFeatures.Fuel,\n ChainFeatures.PowerUp,\n ChainFeatures.REX,\n ChainFeatures.Staking,\n ChainFeatures.VoteProducer,\n ChainFeatures.DelphiOracle,\n ]),\n chainId: ChainId.from('aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906'),\n coreTokenSymbol: Asset.Symbol.from('4,EOS'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'EOS',\n nodeUrl: 'https://eos.greymass.com',\n testnet: false,\n bloksUrl: 'https://bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'fio',\n chainFeatures: new Set([ChainFeatures.FIOBundledFees, ChainFeatures.VoteProducer]),\n chainId: ChainId.from('21dcae42c0182200e93f954a074011f9048a7624c6fe81d3c9541a614a88bd1c'),\n coreTokenSymbol: Asset.Symbol.from('9,FIO'),\n coreTokenContract: Name.from('fio.token'),\n coreTokenTransfer: Name.from('trnsfiopubky'),\n name: 'FIO',\n nodeUrl: 'https://fio.greymass.com',\n testnet: false,\n bloksUrl: 'https://fio.bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'fio-testnet',\n chainFeatures: new Set([ChainFeatures.FIOBundledFees, ChainFeatures.VoteProducer]),\n chainId: ChainId.from('b20901380af44ef59c5918439a1f9a41d83669020319a80574b804a5f95cbd7e'),\n coreTokenSymbol: Asset.Symbol.from('9,FIO'),\n coreTokenContract: Name.from('fio.token'),\n coreTokenTransfer: Name.from('trnsfiopubky'),\n name: 'FIO (Testnet)',\n nodeUrl: 'https://fiotestnet.greymass.com',\n testnet: true,\n bloksUrl: 'https://fio-test.bloks.io',\n },\n {\n id: 'jungle3',\n chainFeatures: new Set([\n ChainFeatures.BidName,\n ChainFeatures.BuyRAM,\n ChainFeatures.Fuel,\n ChainFeatures.PowerUp,\n ChainFeatures.REX,\n ChainFeatures.Staking,\n ChainFeatures.VoteProducer,\n ]),\n chainId: ChainId.from('2a02a0053e5a8cf73a56ba0fda11e4d92e0238a4a2aa74fccf46d5a910746840'),\n coreTokenSymbol: Asset.Symbol.from('4,EOS'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'Jungle 3 (Testnet)',\n nodeUrl: 'https://jungle3.greymass.com',\n testnet: true,\n bloksUrl: 'https://jungle3.bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'proton',\n chainFeatures: new Set([ChainFeatures.Staking, ChainFeatures.VoteProducer]),\n chainId: ChainId.from('384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0'),\n coreTokenSymbol: Asset.Symbol.from('4,XPR'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'Proton',\n nodeUrl: 'https://proton.greymass.com',\n testnet: false,\n bloksUrl: 'https://proton.bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'telos',\n chainFeatures: new Set([\n ChainFeatures.BidName,\n ChainFeatures.BuyRAM,\n ChainFeatures.Fuel,\n ChainFeatures.REX,\n ChainFeatures.Staking,\n ChainFeatures.VoteProducer,\n ]),\n chainId: ChainId.from('4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11'),\n coreTokenSymbol: Asset.Symbol.from('4,TLOS'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'Telos',\n nodeUrl: 'https://telos.greymass.com',\n resourceSampleAccount: 'greymassfuel',\n resourceSampleMilliseconds: 1000,\n testnet: false,\n bloksUrl: 'https://telos.bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'telos-testnet',\n chainFeatures: new Set([\n ChainFeatures.BidName,\n ChainFeatures.BuyRAM,\n ChainFeatures.Fuel,\n ChainFeatures.REX,\n ChainFeatures.Staking,\n ChainFeatures.VoteProducer,\n ]),\n chainId: ChainId.from('1eaa0824707c8c16bd25145493bf062aecddfeb56c736f6ba6397f3195f33c9f'),\n coreTokenSymbol: Asset.Symbol.from('4,TLOS'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'Telos (Testnet)',\n nodeUrl: 'https://testnet.telos.net',\n resourceSampleAccount: 'greymassfuel',\n resourceSampleMilliseconds: 1000,\n testnet: true,\n bloksUrl: 'https://telos-test.bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'wax',\n chainFeatures: new Set([\n ChainFeatures.BidName,\n ChainFeatures.BuyRAM,\n ChainFeatures.Fuel,\n ChainFeatures.Staking,\n ChainFeatures.VoteProducer,\n ChainFeatures.DelphiOracle,\n ]),\n chainId: ChainId.from('1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4'),\n coreTokenSymbol: Asset.Symbol.from('8,WAX'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'WAX',\n nodeUrl: 'https://wax.greymass.com',\n resourceSampleAccount: 'teamgreymass',\n testnet: false,\n bloksUrl: 'https://wax.bloks.io',\n },\n]\n\nexport function chainConfig(chainId: ChainId): ChainConfig {\n return chains.find((c) => c.chainId.equals(chainId))!\n}\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction));\n });\n }\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking)\n db.addEventListener('versionchange', () => blocking());\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","/**\n * svelte-result-store v1.1.0\n * https://github.com/greymass/svelte-result-store\n *\n * @license\n * Copyright (c) 2021 FFF00 Agents AB & Greymass Inc. All Rights Reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * 1. Redistribution of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * 2. Redistribution in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * 3. Neither the name of the copyright holder nor the names of its contributors\n * may be used to endorse or promote products derived from this software without\n * specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n * OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR INTENDED FOR USE\n * IN THE DESIGN, CONSTRUCTION, OPERATION OR MAINTENANCE OF ANY MILITARY FACILITY.\n */\nimport { writable as writable$1, derived as derived$1, readable as readable$1 } from 'svelte/store';\n\nclass ReadableResult {\n subscribe;\n constructor(resultStore) {\n this.subscribe = resultStore.subscribe;\n }\n /**\n * A store containing the value or undefined if there is an error.\n * Can also be undefined for async stores while the value is being resolved.\n */\n get value() {\n return {\n subscribe: (set) => this.subscribe((result) => {\n if (result.error === undefined) {\n set(result.value);\n }\n }),\n };\n }\n /**\n * A store always containing a value when the result is resolved.\n * @param value The value used in place of errors.\n */\n catch(handler) {\n return {\n subscribe: (set) => this.subscribe((result) => {\n if (result.error !== undefined) {\n const value = handler(result.error);\n if (value) {\n set(value);\n }\n }\n else if (result.value !== undefined) {\n set(result.value);\n }\n }),\n };\n }\n /** Transform the results to a new ReadableResult store. */\n map(transform) {\n const store = {\n subscribe: (set) => this.subscribe((result) => {\n if (result.error !== undefined || result.value !== undefined) {\n let newResult = {};\n try {\n newResult = transform(result);\n }\n catch (error) {\n newResult.error = error;\n }\n set(newResult);\n }\n }),\n };\n return new ReadableResult(store);\n }\n /** Transform the result value to a new ReadableResult store. */\n mapValue(transform) {\n const store = {\n subscribe: (set) => this.subscribe((result) => {\n if (result.value !== undefined) {\n let value;\n try {\n value = transform(result.value);\n }\n catch (error) {\n set({ error });\n return;\n }\n set({ value });\n }\n }),\n };\n return new ReadableResult(store);\n }\n /** Transform the results to a new ReadableResult store by flattening the returned readable. */\n flatMap(transform) {\n const store = {\n subscribe: (set) => this.subscribe((result) => {\n if (result.error !== undefined || result.value !== undefined) {\n let value;\n try {\n value = transform(result);\n }\n catch (error) {\n set({ error });\n return;\n }\n set({ value });\n }\n }),\n };\n return flatten(store);\n }\n /** Transform the result value to a new ReadableResult store by flattening the returned readable. */\n flatMapValue(transform) {\n const store = {\n subscribe: (set) => this.subscribe((result) => {\n if (result.value !== undefined) {\n let value;\n try {\n value = transform(result.value);\n }\n catch (error) {\n set({ error });\n return;\n }\n set({ value });\n }\n }),\n };\n return flatten(store);\n }\n /**\n * A store containing the error or undefined.\n */\n get error() {\n return {\n subscribe: (set) => this.subscribe((result) => {\n if (result.error !== undefined) {\n set(result.error);\n }\n }),\n };\n }\n /**\n * A store containing true if the readable has a result (a value or error), false otherwise.\n */\n get resolved() {\n return {\n subscribe: (set) => this.subscribe((result) => {\n set(result.error !== undefined || result.value !== undefined);\n }),\n };\n }\n /**\n * A promise that resolves or rejects on the first value or error.\n */\n get promise() {\n return new Promise((resolve, reject) => {\n const done = this.subscribe((result) => {\n if (result.error !== undefined) {\n reject(result.error);\n }\n else if (result.value !== undefined) {\n resolve(result.value);\n }\n if (result.error !== undefined || result.value !== undefined) {\n setTimeout(() => {\n done();\n }, 0);\n }\n });\n });\n }\n}\nclass WritableResult extends ReadableResult {\n set;\n update;\n constructor(resultStore) {\n super(resultStore);\n this.set = resultStore.set;\n this.update = resultStore.update;\n }\n updateValue(updater) {\n this.update((result) => ({ value: updater(result.value) }));\n }\n}\nfunction readable(...args) {\n return new ReadableResult(internalWritable(...args));\n}\nfunction writable(...args) {\n return new WritableResult(internalWritable(...args));\n}\nfunction derived(stores, fn) {\n const single = !Array.isArray(stores);\n const auto = fn.length < 2;\n const store = derived$1(stores, (storeValues, set) => {\n const results = single\n ? [storeValues]\n : storeValues;\n const error = results.find((r) => r.error !== undefined);\n if (error) {\n set(error);\n }\n else {\n const values = results.map((r) => r.value);\n if (values.every((v) => v !== undefined)) {\n try {\n const rv = fn(single ? values[0] : values, (value) => {\n set({ value });\n }, (error) => {\n set({ error });\n });\n if (rv instanceof Promise) {\n rv.then((value) => {\n set({ value });\n }).catch((error) => {\n set({ error });\n });\n }\n else if (auto) {\n set({ value: rv });\n }\n else {\n return rv;\n }\n }\n catch (error) {\n set({ error });\n }\n }\n else {\n set({});\n }\n }\n });\n return new ReadableResult(store);\n}\n/**\n * Takes nested readable and flattens it down to just one.\n * @param maxDepth Maximum recursion depth, default 10.\n */\nfunction flatten(store, maxDepth) {\n const max = maxDepth || 10;\n const result = {};\n const flat = readable$1(result, (set) => {\n const next = (d) => (r) => {\n if (r.error) {\n set({ error: r.error });\n }\n else {\n if (r.value && typeof r.value.subscribe === 'function' && d < max) {\n return subscribeCleanup(r.value, next(d + 1));\n }\n else {\n set(r);\n }\n }\n };\n return subscribeCleanup(store, next(0));\n });\n return new ReadableResult(flat);\n}\nfunction subscribeCleanup(store, run) {\n let cleanup = noop;\n const unsub = store.subscribe((v) => {\n cleanup();\n cleanup = run(v) || noop;\n });\n return () => {\n cleanup();\n unsub();\n };\n}\nfunction internalWritable(...args) {\n let start;\n let result = {};\n if (args.length === 2) {\n result = args[0];\n start = args[1];\n }\n else {\n start = typeof args[0] === 'function' ? args[0] : noop;\n result =\n typeof args[0] === 'object' &&\n (args[0].value !== undefined || args[0].error !== undefined)\n ? args[0]\n : {};\n }\n return writable$1(result, (setResult) => {\n try {\n const rv = start((value) => {\n setResult({ value });\n }, (error) => {\n setResult({ error });\n });\n if (rv instanceof Promise) {\n rv.then((value) => {\n if (value !== undefined) {\n setResult({ value });\n }\n }).catch((error) => {\n setResult({ error });\n });\n }\n else {\n return rv;\n }\n }\n catch (error) {\n setResult({ error });\n }\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() { }\n\nexport { ReadableResult, WritableResult, derived, flatten, readable, writable };\n//# sourceMappingURL=svelte-result-store.m.js.map\n","import type {DBSchema, StoreKey, StoreNames, StoreValue} from 'idb'\nimport {openDB} from 'idb'\nimport {readable, ReadableResult} from 'svelte-result-store'\n\nconst dbVersion = 3\n\ninterface WalletDB extends DBSchema {\n 'account-cache': {\n key: string // -\n value: {\n updated: Date // last fetched\n account: any // JSON encoded API.v1.AccountObject\n }\n indexes: {\n 'by-updated': Date\n }\n }\n preferences: {\n key: string\n value: any\n }\n 'price-ticker': {\n key: string\n value: {\n updated: Date\n data: any\n }\n indexes: {\n 'by-updated': Date\n }\n }\n}\n\nexport const dbPromise = openDB('wallet', dbVersion, {\n upgrade(db, version) {\n if (version < 1) {\n const accountCache = db.createObjectStore('account-cache')\n accountCache.createIndex('by-updated', 'updated', {unique: false})\n }\n if (version < 2) {\n db.createObjectStore('preferences')\n }\n if (version < 3) {\n const priceTicker = db.createObjectStore('price-ticker')\n priceTicker.createIndex('by-updated', 'updated', {unique: false})\n }\n },\n})\n\n/**\n * Cached data source, will return initial stale values up to maxAge and refresh every refreshInterval.\n * @note Load function must return a IDB compatible object (i.e. no core objects, pass them through Serializer.objectify)\n */\nexport function cachedRead<\n Names extends StoreNames,\n Value extends StoreValue\n>(args: {\n store: Names\n key: StoreKey\n load: () => Promise\n refreshInterval: number\n maxAge: number\n}): ReadableResult {\n return readable((set, error) => {\n const load = async () => {\n const db = await dbPromise\n const data = await args.load()\n db.put(args.store, {updated: new Date(), data} as Value, args.key).catch((error) => {\n console.warn(`Error caching ${args.store}:${args.key}`, error)\n })\n return data\n }\n const init = async () => {\n const db = await dbPromise\n const existing = await db.get(args.store, args.key)\n let value: Value['data'] | undefined\n if (existing && existing.updated && existing.data !== undefined) {\n const age = Date.now() - existing.updated.getTime()\n if (age < args.maxAge) {\n value = existing.data\n if (age > args.refreshInterval) {\n load().then(set).catch(error)\n }\n }\n }\n if (value === undefined) {\n value = await load()\n }\n set(value)\n }\n init().catch(error)\n const timer = setInterval(() => {\n load().then(set).catch(error)\n }, args.refreshInterval)\n return () => {\n clearInterval(timer)\n }\n })\n}\n","import {dbPromise} from './db'\nimport {ReadableObject} from './lib/readable-object'\n\n/** User preferences, persisted in user db. */\nexport class Preferences extends ReadableObject {\n static settings: Record\n\n /** Whether the side navigation bar is expanded. */\n @Setting({default: false}) expandNavbar!: boolean\n\n /** Whether the side navigation bar advanced section is expanded. */\n @Setting({default: false}) expandNavbarAdvanced!: boolean\n\n /** Dark mode override. */\n @Setting({default: null})\n darkmode!: boolean | null\n\n /** Preferences singleton. */\n static shared = new Preferences()\n\n // Settings DB Storage\n\n private storage: Record = {}\n\n write(key: string, value: any) {\n this.storage[key] = value\n this.didChange()\n this.save(key, value).catch((error) => {\n console.warn('Unable to save setting', error)\n })\n }\n\n read(key: string) {\n const setting = (this.constructor as typeof Preferences).settings[key]\n if (!setting) {\n throw new TypeError(`Unknown setting: ${key}`)\n }\n return this.storage[key] === undefined ? setting.default : this.storage[key]\n }\n\n async initStorage() {\n const db = await dbPromise\n let cursor = await db.transaction('preferences').store.openCursor()\n let found = false\n while (cursor) {\n found = true\n this.storage[cursor.key] = cursor.value\n cursor = await cursor.continue()\n }\n if (found) {\n this.didChange()\n }\n }\n\n private async save(key: string, value: any) {\n const db = await dbPromise\n await db.put('preferences', value, key)\n }\n}\n\nfunction Setting(args: {default: T}) {\n return (target: Preferences, name: string) => {\n const ctor = target.constructor as typeof Preferences\n if (!ctor.settings) ctor.settings = {}\n ctor.settings[name] = args\n function get(this: Preferences) {\n return this.read(name)\n }\n function set(this: Preferences, newValue: T) {\n this.write(name, newValue)\n }\n Object.defineProperty(target, name, {get, set})\n }\n}\n","import type {Readable} from 'svelte/store'\n\ntype Subscriber = (value: T) => void\n\n/**\n * Svelte store compatible object that can notify its subscribers it has changed.\n * Subclasses need to specify their own type due to limitations of the TypeScript type-system, for example:\n * ```\n * class MyReadable extends ReadableObject { .. }\n * ```\n */\nexport abstract class ReadableObject implements Readable {\n private subscribers: Subscriber[] = []\n\n /** Subscribe to changes of object. */\n subscribe(subscriber: Subscriber) {\n if (this.subscribers.length === 0 && this.subscriptionBecameActive) {\n this.subscriptionBecameActive()\n }\n this.subscribers.push(subscriber)\n subscriber(this as any)\n return () => {\n let idx = this.subscribers.indexOf(subscriber)\n if (idx !== -1) {\n this.subscribers.splice(idx, 1)\n }\n if (this.subscribers.length === 0 && this.subscriptionBecameInactive) {\n this.subscriptionBecameInactive()\n }\n }\n }\n\n /** Notify subscribers that object changed. */\n didChange() {\n for (const subscriber of this.subscribers) {\n subscriber(this as any)\n }\n }\n\n /** Called on first subscriber. */\n subscriptionBecameActive?(): void\n\n /** Called after when last subscriber unsubscribes. */\n subscriptionBecameInactive?(): void\n}\n","import {\n Asset,\n Float64,\n Int64,\n Name,\n Struct,\n TimePoint,\n TimePointSec,\n TypeAlias,\n UInt8,\n UInt16,\n UInt32,\n UInt64,\n} from 'anchor-link'\n\n@Struct.type('buyrambytes')\nexport class BuyRamBytes extends Struct {\n @Struct.field(Name) payer!: Name\n @Struct.field(Name) receiver!: Name\n @Struct.field(UInt32) bytes!: UInt32\n}\n\n@Struct.type('delegated_bandwidth')\nexport class DelegatedBandwidth extends Struct {\n @Struct.field(Name) from!: Name\n @Struct.field(Name) to!: Name\n @Struct.field(Asset) net_weight!: Asset\n @Struct.field(Asset) cpu_weight!: Asset\n}\n\n@Struct.type('delphioracledatapoint')\nexport class DelphiOracleDatapoint extends Struct {\n @Struct.field(UInt64) id!: UInt64\n @Struct.field(Name) owner!: Name\n @Struct.field(UInt64) value!: UInt64\n @Struct.field(UInt64) median!: UInt64\n @Struct.field(TimePoint) timestamp!: TimePoint\n}\n\n@TypeAlias('asset_type')\nexport class DelphiOracleAssetType extends UInt16 {\n // fiat=1,\n // cryptocurrency=2,\n // erc20_token=3,\n // eosio_token=4,\n // equity=5,\n // derivative=6,\n // other=7\n}\n\n@Struct.type('delphioraclepair')\nexport class DelphiOraclePair extends Struct {\n @Struct.field('bool') active!: boolean\n @Struct.field('bool') bounty_awarded!: boolean\n @Struct.field('bool') bounty_edited_by_custodians!: boolean\n @Struct.field(Name) proposer!: Name\n @Struct.field(Name) name!: Name\n @Struct.field(Asset) bounty_amount!: Asset\n @Struct.field(Name, {array: true}) approving_custodians!: Name[]\n @Struct.field(Name, {array: true}) approving_oracles!: Name[]\n @Struct.field(Asset.Symbol) base_symbol!: Asset.Symbol\n @Struct.field(DelphiOracleAssetType) base_type!: DelphiOracleAssetType\n @Struct.field(Name) base_contract!: Name\n @Struct.field(Asset.Symbol) quote_symbol!: Asset.Symbol\n @Struct.field(DelphiOracleAssetType) quote_type!: DelphiOracleAssetType\n @Struct.field(Name) quote_contract!: Name\n @Struct.field(UInt64) quoted_precision!: UInt64\n}\n\n@Struct.type('fiotransfer')\nexport class FIOTransfer extends Struct {\n @Struct.field('string') payee_public_key!: string\n @Struct.field('int64') amount!: Int64\n @Struct.field('int64') max_fee!: Int64\n @Struct.field('name') actor!: Name\n @Struct.field('string') tpid!: string\n}\n\n@Struct.type('powerup')\nexport class PowerUp extends Struct {\n @Struct.field('name') payer!: Name\n @Struct.field('name') receiver!: Name\n @Struct.field('uint32') days!: UInt32\n @Struct.field('int64') net_frac!: Int64\n @Struct.field('int64') cpu_frac!: Int64\n @Struct.field('asset') max_payment!: Asset\n}\n\n@Struct.type('powerupstateresource')\nexport class PowerUpStateResource extends Struct {\n @Struct.field('uint8') version!: UInt8\n @Struct.field('int64') weight!: Int64\n @Struct.field('int64') weight_ratio!: Int64\n @Struct.field('int64') assumed_stake_weight!: Int64\n @Struct.field('int64') initial_weight_ratio!: Int64\n @Struct.field('int64') target_weight_ratio!: Int64\n @Struct.field('time_point_sec') initial_timestamp!: TimePointSec\n @Struct.field('time_point_sec') target_timestamp!: TimePointSec\n @Struct.field('float64') exponent!: Float64\n @Struct.field('uint32') decay_secs!: UInt32\n @Struct.field('asset') min_price!: Asset\n @Struct.field('asset') max_price!: Asset\n @Struct.field('int64') utilization!: Int64\n @Struct.field('int64') adjusted_utilization!: Int64\n @Struct.field('time_point_sec') utilization_timestamp!: TimePointSec\n}\n\n@Struct.type('powerupstate')\nexport class PowerUpState extends Struct {\n @Struct.field('uint8') version!: UInt8\n @Struct.field(PowerUpStateResource) net!: PowerUpStateResource\n @Struct.field(PowerUpStateResource) cpu!: PowerUpStateResource\n @Struct.field('uint32') powerup_days!: UInt32\n @Struct.field('asset') min_powerup_fee!: Asset\n}\n\n@Struct.type('rexdeposit')\nexport class REXDeposit extends Struct {\n @Struct.field('name') owner!: Name\n @Struct.field('asset') amount!: Asset\n}\n\n@Struct.type('rexrentcpu')\nexport class REXRentCPU extends Struct {\n @Struct.field('name') from!: Name\n @Struct.field('name') receiver!: Name\n @Struct.field('asset') loan_payment!: Asset\n @Struct.field('asset') loan_fund!: Asset\n}\n\n@Struct.type('rexrentnet')\nexport class REXRentNET extends Struct {\n @Struct.field('name') from!: Name\n @Struct.field('name') receiver!: Name\n @Struct.field('asset') loan_payment!: Asset\n @Struct.field('asset') loan_fund!: Asset\n}\n\n@Struct.type('rexstate')\nexport class REXState extends Struct {\n @Struct.field('uint8') version!: UInt8\n @Struct.field('asset') total_lent!: Asset\n @Struct.field('asset') total_unlent!: Asset\n @Struct.field('asset') total_rent!: Asset\n @Struct.field('asset') total_lendable!: Asset\n @Struct.field('asset') total_rex!: Asset\n @Struct.field('asset') namebid_proceeds!: Asset\n @Struct.field('uint64') loan_num!: UInt64\n}\n\n@Struct.type('sellram')\nexport class Sellram extends Struct {\n @Struct.field(Name) account!: Name\n @Struct.field(Int64) bytes!: Int64\n}\n\n@Struct.type('stake')\nexport class Stake extends Struct {\n @Struct.field('name') from!: Name\n @Struct.field('name') receiver!: Name\n @Struct.field('asset') stake_net_quantity!: Asset\n @Struct.field('asset') stake_cpu_quantity!: Asset\n @Struct.field('bool') transfer!: boolean\n}\n\n@Struct.type('transfer')\nexport class Transfer extends Struct {\n @Struct.field('name') from!: Name\n @Struct.field('name') to!: Name\n @Struct.field('asset') quantity!: Asset\n @Struct.field('string') memo!: string\n}\n","import {APIClient, ChainId} from 'anchor-link'\nimport {ChainConfig, chains} from './config'\n\nconst clients = new Map()\n\n/**\n * Get a APIClient instance for given chain config or chain id.\n */\nexport function getClient(chainOrId: ChainConfig | ChainId): APIClient {\n let chain: ChainConfig\n if (chainOrId instanceof ChainId) {\n const id = String(chainOrId)\n chain = chains.find((cfg) => cfg.chainId.equals(id))!\n if (!chain) {\n throw new Error(`Unconfigured chain: ${id}`)\n }\n } else {\n chain = chainOrId\n }\n let client = clients.get(String(chain.chainId))\n if (!client) {\n client = new APIClient({url: chain.nodeUrl})\n clients.set(String(chain.chainId), client)\n }\n return client\n}\n","import {Serializer} from '@greymass/eosio'\nimport {readable, derived, flatten, ReadableResult} from 'svelte-result-store'\n\nimport {DelphiOracleDatapoint, DelphiOraclePair} from '~/abi-types'\nimport {getClient} from '~/api-client'\nimport {ChainConfig, ChainFeatures} from '~/config'\nimport {cachedRead} from '~/db'\n\n/** How often to update prices. */\nconst UPDATE_INTERVAL = 1 * 60 * 1000 // 1 minute\n/** How old price data can be displayed while it's updating in the background. */\nconst MAX_AGE = 2 * 60 * 60 * 1000 // 2 hours\n\n/** Loads available pairs from the oracle. */\nfunction getOraclePairs(chain: ChainConfig): ReadableResult {\n const client = getClient(chain)\n const pairs: ReadableResult = cachedRead({\n store: 'price-ticker',\n key: `${chain.id}-pairs`,\n load: async () => {\n let result = await client.v1.chain.get_table_rows({\n type: DelphiOraclePair,\n code: 'delphioracle',\n scope: 'delphioracle',\n table: 'pairs',\n limit: 500,\n })\n return Serializer.objectify(result.rows)\n },\n maxAge: 6.048e8, // 1 week\n refreshInterval: 8.64e7, // 1 day\n })\n return derived(pairs, ($pairs) => {\n return $pairs.map((p) => DelphiOraclePair.from(p)).filter((p) => p.active)\n })\n}\n\n/** Loads latest datapoint for given pair. */\nfunction getOracleDatapoint(\n chain: ChainConfig,\n pair: DelphiOraclePair\n): ReadableResult {\n const client = getClient(chain)\n const data = cachedRead({\n store: 'price-ticker',\n key: `${chain.id}-${pair.name}`,\n load: async () => {\n let result = await client.v1.chain.get_table_rows({\n type: DelphiOracleDatapoint,\n code: 'delphioracle',\n scope: `${pair.name}`,\n table: 'datapoints',\n limit: 1,\n })\n let latest = result.rows[0]\n if (!latest) {\n throw new Error(`No datapoints for ${pair.name} on ${chain.id}`)\n }\n return Serializer.objectify(latest)\n },\n maxAge: MAX_AGE,\n refreshInterval: UPDATE_INTERVAL,\n })\n return derived(data, ($data) => DelphiOracleDatapoint.from($data))\n}\n\nfunction bloksFallback(chain: ChainConfig, pairName?: string): ReadableResult {\n const chainName = chain.id\n return cachedRead({\n store: 'price-ticker',\n key: `${chainName}-fallback`,\n load: async () => {\n if (pairName) {\n throw new Error('Fallback only supports core symbol')\n }\n let url = 'https://www.api.bloks.io/ticker/banana'\n if (chainName !== 'eos') {\n url = `https://www.api.bloks.io/${chainName}/ticker/banana`\n }\n const response = await fetch(url)\n const data = await response.json()\n if (typeof data === 'number') {\n return data\n } else {\n throw new Error('Unexpected response from bloks')\n }\n },\n maxAge: MAX_AGE,\n refreshInterval: UPDATE_INTERVAL,\n })\n}\n\nconst tickerStores: Record> = {}\n\n/**\n * Latest price in USD for given chain and pair, if pair is omitted the chains core symbol is used.\n * @note Testnets will return zero for all pairs.\n */\nexport function priceTicker(chain: ChainConfig, pairName?: string): ReadableResult {\n const tickerName = `${chain.id}-${pairName || 'coresymbol'}`\n if (tickerStores[tickerName]) {\n return tickerStores[tickerName]\n }\n const pairs: ReadableResult = chain.chainFeatures.has(\n ChainFeatures.DelphiOracle\n )\n ? getOraclePairs(chain)\n : readable({value: []})\n const pair = derived(pairs, ($pairs) => {\n let pair: DelphiOraclePair | undefined\n if (!pairName) {\n // use core symbol for pair\n pair = $pairs.find(\n (p) => p.base_symbol.equals(chain.coreTokenSymbol) && p.quote_symbol.name === 'USD'\n )\n } else {\n pair = $pairs.find((p) => p.name.equals(pairName))\n }\n return pair || null\n })\n const datapoint = flatten(\n derived(pair, ($pair) => {\n if ($pair) {\n return getOracleDatapoint(chain, $pair)\n } else {\n return null\n }\n })\n )\n const ticker = flatten(\n derived([datapoint, pair], ([$datapoint, $pair]) => {\n if (chain.testnet) {\n // all prices are zero on testnets\n return 0\n } else if ($datapoint && $pair) {\n return (\n $datapoint.median.toNumber() / Math.pow(10, $pair.quoted_precision.toNumber())\n )\n } else {\n return bloksFallback(chain, pairName)\n }\n })\n )\n tickerStores[tickerName] = ticker\n return ticker\n}\n","import {API, Asset, Name, Serializer} from 'anchor-link'\nimport type {ChainId, NameType} from 'anchor-link'\nimport {get, writable} from 'svelte/store'\nimport type {Readable, Writable} from 'svelte/store'\n\nimport {getClient} from '~/api-client'\nimport {dbPromise} from '~/db'\nimport {activeSession} from '~/store'\nimport {chainConfig} from '~/config'\n\n/** How old a cached account is before we update it */\nconst maxAge = 60 * 1000 // ms\n\nexport const isLoading: Writable = writable(false)\n\nconst initialAccountResponse: AccountResponse = {\n stale: true,\n}\n\nexport const accountProvider: Writable = writable(initialAccountResponse, () => {\n // Update on a set interval\n const interval = setInterval(() => {\n const session = get(activeSession)\n if (session) {\n updateAccount(session.auth.actor, session.chainId)\n }\n }, 30000)\n\n // Subscribe to changes to the active session and update on change\n const unsubscribe = activeSession.subscribe((session) => {\n if (session) {\n updateAccount(session.auth.actor, session.chainId)\n }\n })\n\n return () => {\n unsubscribe()\n clearInterval(interval)\n }\n})\n\nexport async function updateAccount(name: Name, chainId: ChainId, refresh: boolean = false) {\n isLoading.set(true)\n loadAccount(\n name,\n chainId,\n async (v) => {\n if (!v.account?.core_liquid_balance) {\n const assets: Asset[] | void = await fetchBalance(name, chainId).catch((err) => {\n console.warn('Error fetching account balance:', err)\n })\n if (assets) {\n v.account!.core_liquid_balance = assets[0]!\n }\n }\n accountProvider.set(v)\n },\n refresh\n )\n isLoading.set(false)\n}\n\nfunction fetchBalance(name: Name, chainId: ChainId) {\n const chain = chainConfig(chainId)\n return getClient(chainId).v1.chain.get_currency_balance(chain.coreTokenContract, name)\n}\n\nexport interface AccountResponse {\n /** The account object for the requested account. */\n account?: API.v1.AccountObject\n /** Whether the account is being updated in the background. */\n stale: boolean\n /** Set if an error occurred while fetching the account. */\n error?: Error\n}\n\nfunction accountKey(name: Name, chainId: ChainId) {\n return `${chainId}-${name}`\n}\n\nexport async function storeAccount(account: API.v1.AccountObject, chainId: ChainId) {\n const db = await dbPromise\n await db.put(\n 'account-cache',\n {\n account: Serializer.objectify(account),\n updated: new Date(),\n },\n accountKey(account.account_name, chainId)\n )\n}\n\nexport async function loadAccount(\n name: Name,\n chainId: ChainId,\n set: (v: AccountResponse) => void,\n refresh = false\n) {\n const key = accountKey(name, chainId)\n let db = await dbPromise\n let row = await db.get('account-cache', key)\n let stale = true\n if (row) {\n const age = Date.now() - row.updated.getTime()\n stale = age > maxAge\n set({account: API.v1.AccountObject.from(row.account), stale})\n }\n if (stale || refresh) {\n const account = await getClient(chainId).v1.chain.get_account(name)\n await storeAccount(account, chainId)\n set({account: account, stale: false})\n }\n}\n\n/** Get an account, can be used to fetch other accounts than the logged in users. */\nexport function getAccount(\n name: NameType,\n chainId: ChainId,\n refresh = false\n): Readable {\n const store = writable({stale: true})\n loadAccount(Name.from(name), chainId, store.set, refresh).catch((error) => {\n console.warn(`Unable to load account ${name} on ${chainId}`, error)\n store.update((account) => ({...account, error}))\n })\n return store\n}\n","import type {Asset, LinkSession} from 'anchor-link'\nimport {derived, writable} from 'svelte/store'\nimport type {Readable} from 'svelte/store'\nimport type {SessionLike} from './auth'\nimport {ChainConfig, chainConfig, chains} from './config'\nimport {Preferences} from './preferences'\nimport {priceTicker} from './price-ticker'\nimport {accountProvider} from './stores/account-provider'\n\n/** Set to true when app initialization completes. */\nexport const appReady = writable(false)\n\n/** Active anchor link session, aka logged in user. */\nexport const activeSession = writable(undefined)\n\n/** Configuration of the currently selected blockchain */\nexport const activeBlockchain: Readable = derived(activeSession, (session) => {\n if (session) {\n return chainConfig(session.chainId)\n } else {\n return chains[0]\n }\n})\n\n/** Active price ticker for the currently selected blockchain */\nexport const activePriceTicker: Readable = derived(\n [activeBlockchain],\n ([$activeBlockchain], set) =>\n priceTicker($activeBlockchain).value.subscribe((v) => {\n if (v !== undefined) {\n set(v)\n }\n })\n)\n\n/** List of all available anchor link sessions. */\nexport const availableSessions = writable([])\n\n/** List of preferences. */\nexport const preferences = Preferences.shared\n\n/** Current logged in users account data. */\nexport const currentAccount = derived(\n accountProvider,\n ($accountProvider) => $accountProvider.account\n)\n\n/** Current system token balance of current logged in user. */\nexport const currentAccountBalance: Readable = derived(\n currentAccount,\n ($currentAccount) => {\n if ($currentAccount) {\n return $currentAccount.core_liquid_balance\n }\n }\n)\n\nconst systemDarkMode = writable(\n window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n)\nif (window.matchMedia) {\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (event) => {\n systemDarkMode.set(event.matches)\n })\n}\n\n/** If dark mode is enabled. */\nexport const darkMode = derived(\n [systemDarkMode, preferences],\n ([$systemDarkMode, $preferences]) => {\n if ($preferences.darkmode !== null) {\n return $preferences.darkmode\n } else {\n return $systemDarkMode\n }\n }\n)\n","/**\n * Anchor Link Browser Transport v3.3.0\n * https://github.com/greymass/anchor-link-browser-transport\n *\n * @license\n * Copyright (c) 2020 Greymass Inc. All Rights Reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * 1. Redistribution of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * 2. Redistribution in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * 3. Neither the name of the copyright holder nor the names of its contributors\n * may be used to endorse or promote products derived from this software without\n * specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n * OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR INTENDED FOR USE\n * IN THE DESIGN, CONSTRUCTION, OPERATION OR MAINTENANCE OF ANY MILITARY FACILITY.\n */\nimport { Signature, SigningRequest, PlaceholderName, Link, SessionError, Base64u, isInstanceOf, APIError } from 'anchor-link';\n\nvar styleText = `\n/* Anchor Link */\n\n.%prefix% * {\n box-sizing: border-box;\n line-height: 1;\n font-variant-numeric: tabular-nums;\n}\n\n.%prefix% {\n font-family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',\n Arial, sans-serif;\n font-size: 13px;\n background: rgba(0, 0, 0, 0.65);\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n z-index: 2147483647;\n display: none;\n align-items: center;\n justify-content: center;\n}\n\n.%prefix%-active {\n display: flex;\n}\n\n.%prefix%-inner {\n background: #EFF1F7;\n margin: 20px;\n padding-top: 50px;\n border-radius: 20px;\n box-shadow: 0px 4px 100px rgba(0, 0, 0, .5);\n width: 340px;\n position: relative;\n}\n\n.%prefix%-close {\n display: block;\n position: absolute;\n top: 11px;\n right: 16px;\n width: 28px;\n height: 28px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.57 12.1a.96.96 0 000 1.34c.37.36 1 .36 1.34 0L7 8.37l5.09 5.09c.36.35.97.35 1.34-.01a.96.96 0 000-1.34L8.34 7.01l5.08-5.08a.95.95 0 000-1.33.97.97 0 00-1.34-.01L6.99 5.68 1.91.59a.96.96 0 00-1.33 0 .97.97 0 00-.01 1.34l5.09 5.08-5.1 5.1z' fill='%23007AFF'/%3E%3C/svg%3E\");\n background-size: 14px;\n background-repeat: no-repeat;\n background-position: 50% 7px;\n border-radius: 100%;\n cursor: pointer;\n}\n\n.%prefix%-close:hover {\n background-color: white;\n}\n\n.%prefix%-version {\n position: absolute;\n top: 19px;\n left: 20px;\n cursor: help;\n color: #B8C0DA;\n opacity: 0.1;\n}\n\n.%prefix%-version:hover {\n opacity: 1;\n}\n\n.%prefix%-logo {\n width: 70px;\n height: 70px;\n margin: 0 auto;\n margin-top: -56px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M18.81 9.19h33.25V59.5H18.81z'/%3E%3Cpath d='M38.45 28.88h-6.9L35 21.77l3.45 7.1z' fill='%233650A2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M35 70a35 35 0 100-70 35 35 0 000 70zm2.36-55.4a2.62 2.62 0 00-4.72 0L21.9 36.75h5.84l1.7-3.5h11.13l1.7 3.5h5.83L37.36 14.6zM48.13 44.2h-5.26a7.76 7.76 0 01-5.24 7v-10.5a2.62 2.62 0 10-5.25 0v10.5a7.76 7.76 0 01-5.25-7h-5.25c.16 7.06 6 12.69 13.12 12.69 7.12 0 12.97-5.63 13.13-12.7z' fill='%233650A2'/%3E%3C/svg%3E\");\n}\n\n.%prefix%-logo.loading {\n border-radius: 100%;\n background-color: #3650A2;\n background-image: url(\"data:image/svg+xml,%3Csvg viewBox='0.5 0.5 45 45' xmlns='http://www.w3.org/2000/svg' stroke='%23fff'%3E%3Cg fill='none' fill-rule='evenodd' transform='translate(1 1)' stroke-width='2'%3E%3Ccircle cx='22' cy='22' r='6' stroke-opacity='0'%3E%3Canimate attributeName='r' begin='1.5s' dur='3s' values='6;22' calcMode='linear' repeatCount='indefinite' /%3E%3Canimate attributeName='stroke-opacity' begin='1.5s' dur='3s' values='1;0' calcMode='linear' repeatCount='indefinite' /%3E%3Canimate attributeName='stroke-width' begin='1.5s' dur='3s' values='2;0' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='22' cy='22' r='6' stroke-opacity='0'%3E%3Canimate attributeName='r' begin='3s' dur='3s' values='6;22' calcMode='linear' repeatCount='indefinite' /%3E%3Canimate attributeName='stroke-opacity' begin='3s' dur='3s' values='1;0' calcMode='linear' repeatCount='indefinite' /%3E%3Canimate attributeName='stroke-width' begin='3s' dur='3s' values='2;0' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='22' cy='22' r='8'%3E%3Canimate attributeName='r' begin='0s' dur='1.5s' values='6;1;2;3;4;5;6' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.%prefix%-logo.error {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70' fill='none'%3E%3Ccircle cx='35' cy='35' r='35' fill='%23fc3d39'/%3E%3Cpath fill-rule='evenodd' d='M32.88 17.614c.715-.403 1.522-.614 2.343-.614s1.628.212 2.343.614 1.314.983 1.74 1.685l.005.008 13.483 22.508.013.022c.417.722.638 1.541.64 2.375s-.214 1.654-.627 2.378-1.008 1.328-1.727 1.751-1.535.65-2.369.659h-.017-26.983c-.834-.009-1.651-.237-2.369-.659s-1.314-1.027-1.727-1.751-.629-1.544-.627-2.378.223-1.653.64-2.375l.013-.022L31.14 19.299c.426-.702 1.025-1.282 1.74-1.685zm2.343 2.569a1.59 1.59 0 0 0-1.359.763L20.392 43.438a1.59 1.59 0 0 0-.208.782c-.001.278.071.551.209.793a1.59 1.59 0 0 0 1.358.803h26.945a1.59 1.59 0 0 0 1.358-.803 1.59 1.59 0 0 0 .209-.793c-.001-.274-.073-.544-.208-.782L36.584 20.95c-.144-.236-.343-.428-.58-.561a1.59 1.59 0 0 0-.781-.205zm0 6.531a1.59 1.59 0 0 1 1.592 1.592v6.367a1.59 1.59 0 1 1-3.184 0v-6.367a1.59 1.59 0 0 1 1.592-1.592zm-1.592 14.326a1.59 1.59 0 0 1 1.592-1.592h.016a1.59 1.59 0 1 1 0 3.184h-.016a1.59 1.59 0 0 1-1.592-1.592z' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.%prefix%-logo.warning {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70' fill='none' %3E%3Ccircle cx='35' cy='35' r='35' fill='%23f8b826'/%3E%3Cpath d='M35 20c-8.284 0-15 6.716-15 15s6.716 15 15 15 15-6.716 15-15-6.716-15-15-15zM16.667 35c0-10.125 8.208-18.333 18.333-18.333S53.333 24.875 53.333 35 45.125 53.334 35 53.334 16.667 45.126 16.667 35zM35 26.667c.921 0 1.667.746 1.667 1.667V35A1.67 1.67 0 0 1 35 36.667c-.921 0-1.667-.746-1.667-1.667v-6.667c0-.921.746-1.667 1.667-1.667zm-1.667 15A1.67 1.67 0 0 1 35 40h.017c.921 0 1.667.746 1.667 1.667s-.746 1.667-1.667 1.667H35a1.67 1.67 0 0 1-1.667-1.667z' fill-rule='evenodd' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.%prefix%-logo.success {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 70 70'%3E%3Cdefs/%3E%3Ccircle cx='35' cy='35' r='35' fill='%233DC55D'/%3E%3Cpath fill='%23fff' d='M30.9 49.7a2 2 0 001.8-1L48 24.9c.3-.5.4-1 .4-1.4 0-1-.7-1.7-1.7-1.7-.8 0-1.2.3-1.6 1L30.8 45.4 23.5 36c-.5-.6-1-.9-1.6-.9-1 0-1.8.8-1.8 1.8 0 .4.2.9.6 1.3L29 48.7c.6.7 1.1 1 1.9 1z'/%3E%3C/svg%3E\");\n}\n\n.%prefix%-logo.fuel {\n background-image: url(\"data:image/svg+xml,%3Csvg width='70' height='70' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0)'%3E%3Cpath d='M69.23 30.31l-8.46-11a6.58 6.58 0 00-3.4-2.19L35.91 12.1a7.16 7.16 0 00-1.6-.16 7.73 7.73 0 00-2.18.28l-5.1 1.57a1.76 1.76 0 00-.17-1.4l-1.46-2.5a1.76 1.76 0 00-2.06-.8l-9.98 3.2a1.76 1.76 0 00-1.23 1.74l.13 3.39c.01.27.09.54.22.78l-2.28.7a5.85 5.85 0 00-3.24 2.7L.48 34.23a4.96 4.96 0 00.14 4.53l3.5 5.83a4.49 4.49 0 004.19 2.05l9.29-1.13a4.79 4.79 0 002.54 3.78l3.55 1.68a8.9 8.9 0 003.39.73h.27l8.06-.45c.26.04.5.13.73.28l8.02 8c1 .92 2.3 1.45 3.67 1.47.14 0 .28 0 .42-.03l6.6-.68a2.85 2.85 0 002.5-1.8c.36-1 .1-2.12-.73-3l-2.78-2.96 5.26-1.56a4.35 4.35 0 003-3.64l.41-4.29c.09-.42.26-.82.52-1.16l6-6.66a3.91 3.91 0 00.2-4.9z' fill='%23fff'/%3E%3Cpath d='M49.08 29.96a1.72 1.72 0 00-.92-2.25 1.72 1.72 0 00-1.3 3.17 1.7 1.7 0 002.22-.92zM27.54 26.41a1.02 1.02 0 001-1.23 1.02 1.02 0 00-1.85-.37 1.03 1.03 0 00.46 1.52c.12.05.25.08.39.08zM37.05 21.67a1.03 1.03 0 000-2.06 1.03 1.03 0 000 2.06zM21.54 35c-4.62 0-10.44 2.04-13.52 3.24a.68.68 0 00-.24.16.68.68 0 00-.18.53c.01.1.04.19.1.27l1.28 2.16c.07.1.17.2.28.25.11.06.24.08.37.07l9.15-1.13.45-.03a3.64 3.64 0 013.67 3.55v.3a.67.67 0 00.39.59l2.9 1.38c.42.16.86.26 1.3.28h.05l7.74-.45h.23c1.45.03 2.83.59 3.9 1.58l7.68 7.65c.1.06.22.1.35.12l1.67-.2c.06-.01.12-.03.16-.07a.32.32 0 00.1-.13.33.33 0 00-.03-.33l-.82-1.21a3.22 3.22 0 01-.01-4.58c.4-.4.9-.68 1.45-.82l6.47-1.92a.4.4 0 00.19-.13.41.41 0 00.08-.22l.35-3.53c.01-.06 0-.13-.02-.2a.41.41 0 00-.28-.24.37.37 0 00-.2.01c-2.27.62-6.27 1.6-8.73 1.6C37.4 43.53 29.68 35 21.54 35zm8.97 7.49a.8.8 0 01-.27.28c-.2.13-.45.19-.68.17a1.05 1.05 0 01-.77-1.62.73.73 0 01.28-.28 1.05 1.05 0 011.44 1.45zm17.6 3.72a.76.76 0 01-.27.28 1.05 1.05 0 01-1.17-1.73 1.05 1.05 0 011.32.13 1.04 1.04 0 01.13 1.32z' fill='%23F8B826'/%3E%3Cpath d='M21.54 35c-4.85 0-11.03 2.25-13.96 3.42a.29.29 0 00-.15.16c-.01.03-.02.07-.01.11 0 .04.01.07.03.1L9 41.38c.06.11.16.2.27.26.12.05.25.07.37.06l9.15-1.13c.15-.02.3-.02.46-.03a3.63 3.63 0 013.66 3.54l.02.56c0 .04.02.09.05.13.02.04.06.07.1.1l3.13 1.48c.41.16.85.26 1.3.28h.04l7.74-.45h.23c1.45.03 2.84.59 3.9 1.58l7.68 7.65c.1.06.23.1.35.12l2.22-.27-1.58-1.66c-.82-.88-.7-2.05-.4-3.13a3.28 3.28 0 012.3-2.27l6.71-2 .38-3.8.06-.58c-2.13.59-6.6 1.74-9.3 1.74C37.4 43.54 29.69 35 21.54 35zm8.89 7.62a.38.38 0 01-.07.07c-1.07.77-2.26-.42-1.49-1.5a.25.25 0 01.06-.07c1.08-.77 2.27.42 1.5 1.5zm17.6 3.72a.25.25 0 01-.06.06c-1.07.78-2.26-.42-1.49-1.5a.25.25 0 01.07-.06c1.07-.78 2.26.42 1.49 1.5z' fill='%23E99123'/%3E%3Cpath d='M47.53 34.9c-10.41 0-19.22-4.65-25.54-4.65-4.44 0-11.97 3.38-15.28 5.83a.55.55 0 00-.18.69l.35.78a.55.55 0 00.72.28c2.84-1.18 8.9-3.42 13.94-3.42 8.4 0 16.15 7.48 25.16 7.48 4 0 9.88-1.58 11.41-2.82.67-.7 2.86-3.32 4.4-4.93a.67.67 0 00.1-.8.67.67 0 00-.32-.28.65.65 0 00-.42-.03 64.85 64.85 0 01-14.34 1.86zm-.47 3.95c-.14.3-.38.55-.68.7a1.73 1.73 0 01-2.34-2.36c.14-.3.38-.55.68-.7a1.72 1.72 0 012.04.32 1.75 1.75 0 01.3 2.04z' fill='%23F8B826'/%3E%3Cpath d='M68.34 30.87l-8.46-11a5.52 5.52 0 00-2.77-1.78l-21.46-5.03a7.08 7.08 0 00-3.2.1l-7.55 2.3-.01.01h-.01l-.5-1.3v-.01l1.13-.4a.65.65 0 00.36-.93l-1.47-2.5a.64.64 0 00-.73-.27l-9.98 3.17a.64.64 0 00-.44.63l.13 3.39a.64.64 0 00.63.6c.07 0 .15-.02.22-.04l2.53-.91h.02l.44.87v.02l-6.7 2.05c-1.08.38-2 1.15-2.56 2.15L1.47 34.61a3.8 3.8 0 00.11 3.43l3.5 5.84a3.32 3.32 0 003.1 1.51l10.23-1.26a.2.2 0 01.2.04.2.2 0 01.06.08l.02.1.03.9a3.69 3.69 0 001.9 2.88l3.56 1.69c.98.42 2.05.63 3.12.61l8.06-.44c.58.02 1.13.23 1.57.6l8.03 8a4.38 4.38 0 003.18 1.12l6.6-.69c.77-.07 1.33-.46 1.55-1.07.23-.6.05-1.26-.48-1.82l-4.02-4.26-.01-.01v-.01l7-2.09a3.25 3.25 0 002.2-2.66l.43-4.3a4 4 0 01.8-1.81l6.01-6.67a2.76 2.76 0 00.12-3.45zM15.14 15.2l-.03-.51c0-.08.02-.16.06-.22.04-.07.1-.11.18-.14l7.73-2.5a.35.35 0 01.41.16l.13.23c.03.05.04.1.05.15 0 .05 0 .1-.02.14a.35.35 0 01-.08.13.38.38 0 01-.12.09L15.6 15.5a.34.34 0 01-.31-.04.36.36 0 01-.16-.27zm51.53 17.75l-6 6.66a5.95 5.95 0 00-1.32 3l-.42 4.3a1.22 1.22 0 01-.73.87l-7.32 2.17a1.8 1.8 0 00-1.34 2.28c.1.32.27.6.52.83l3.19 3.37a.4.4 0 01.09.43.42.42 0 01-.14.19.42.42 0 01-.21.08l-5.06.53c-.55 0-1.09-.19-1.51-.54l-8.03-8a4.62 4.62 0 00-3.14-1.2l-8.07.45c-.73.01-1.45-.13-2.12-.41l-3.56-1.7a1.4 1.4 0 01-.72-1.08l-.04-.9a2.35 2.35 0 00-.8-1.68 2.24 2.24 0 00-1.78-.53L7.92 43.32a1.32 1.32 0 01-1.07-.53l-3.49-5.82a1.78 1.78 0 01-.05-1.4L9.8 22.94c.32-.5.78-.89 1.33-1.1l21.94-6.67c.69-.18 1.42-.2 2.12-.07l21.46 5.02c.62.19 1.18.55 1.6 1.03l8.47 11c.08.11.12.25.12.4a.69.69 0 01-.16.39z' fill='%2329363F'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0'%3E%3Cpath fill='%23fff' transform='translate(0 9)' d='M0 0h70v52H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\n}\n\n.%prefix%-request {\n padding: 20px;\n border-radius: 20px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n background: white;\n}\n\n.%prefix%-info {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.%prefix%-title {\n color: #000000;\n font-size: 25px;\n margin-top: 14px;\n font-weight: 700;\n line-height: 30px;\n letter-spacing: 0.5px;\n}\n\n.%prefix%-subtitle {\n margin-top: 14px;\n color: #5C5C5C;\n text-align: center;\n line-height: 1.4;\n word-break: break-word;\n}\n\n.%prefix%-subtitle a {\n color: #000000;\n cursor: pointer;\n text-decoration: underline;\n}\n\n.%prefix%-manual {\n color: #007AFF;\n cursor: pointer;\n}\n\n.%prefix%-info hr {\n border: 0;\n height: 1px;\n width: 100%;\n background: #EFF1F7;\n margin: 24px 0 14px;\n}\n\n.%prefix%-uri {\n width: 100%;\n}\n\n.%prefix%-button {\n color: #007AFF;\n background: #EFF1F7;\n border: 1px solid #EFF1F7;\n text-decoration: none;\n font-size: 17px;\n flex-grow: 1;\n flex: 1;\n width: 100%;\n line-height: 1;\n padding: 20px 18px;\n border-radius: 12px;\n font-weight: 400;\n text-align: center;\n display: block;\n margin-top: 21px;\n cursor: pointer;\n}\n\n.%prefix%-button:hover {\n border: 1px solid #007AFF;\n}\n\n.%prefix%-qr {\n position: relative;\n margin-top: 21px;\n border: 4px solid #EFF1F7;\n padding: 11px;\n border-radius: 12px;\n background: #FFFFFF;\n transition: all 400ms ease-in-out;\n transform: scale(1) translateY(0);\n}\n\n.%prefix%-qr svg {\n width: 100%;\n display: block;\n cursor: zoom-in;\n shape-rendering: crispEdges;\n}\n\n.%prefix%-qr.zoom {\n transform: scale(2) translateY(-25px);\n border: 2px solid #1E89FE;\n box-sizing: border-box;\n box-shadow: 0px 4px 154px rgba(0, 0, 0, 0.35);\n border-radius: 10px;\n padding: 5px;\n z-index: 2147483647;\n}\n\n.%prefix%-qr.zoom svg {\n cursor: zoom-out;\n}\n\n.%prefix%-qr svg rect {\n fill: black;\n}\n\n.%prefix%-copy {\n position: absolute;\n bottom: -10px;\n left: 0px;\n width: 100%;\n color: green;\n text-align: center;\n opacity: 1;\n transition: all 200ms ease-in-out;\n transition-delay: 400ms;\n}\n\n.%prefix%-qr.zoom .%prefix%-copy {\n transition-delay: 0ms;\n background: transparent;\n opacity: 0;\n}\n\n.%prefix%-copy span,\n.%prefix%-copy a {\n display: inline-block;\n background: white;\n padding: 0 20px;\n color: #007AFF;\n cursor: pointer;\n text-decoration: none;\n}\n\n.%prefix%-copy span {\n display: none;\n color: #5C5C5C;\n cursor: default;\n}\n\n.%prefix%-copy.copied a {\n display: none;\n}\n\n.%prefix%-copy.copied span {\n display: inline-block;\n}\n\n.%prefix%-copy span:before,\n.%prefix%-copy a:before {\n content: '';\n display: inline-block;\n width: 26px;\n height: 16px;\n position: relative;\n top: 2px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' fill='none'%3E%3Cg clip-path='url(%23A)' stroke='%23157efa' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M13.83 6.5h-6c-.73 0-1.33.6-1.33 1.33v6c0 .74.6 1.34 1.33 1.34h6c.74 0 1.34-.6 1.34-1.34v-6c0-.73-.6-1.33-1.34-1.33z'/%3E%3Cpath d='M3.83 10.5h-.66a1.33 1.33 0 01-1.34-1.33v-6a1.33 1.33 0 011.34-1.34h6a1.33 1.33 0 011.33 1.34v.66' stroke-linecap='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='A'%3E%3Cpath fill='%23fff' transform='translate(.5 .5)' d='M0 0h16v16H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n}\n\n.%prefix%-copy span:before {\n background-image: url(\"data:image/svg+xml,%3Csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.33 4L6 11.33 2.67 8' stroke='%23157EFA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n top: 3.5px;\n}\n\n.%prefix%-footnote {\n text-align: center;\n width: 100%;\n position: absolute;\n bottom: -26px;\n left: 0;\n color: white;\n}\n\n.%prefix%-footnote a {\n color: white;\n text-decoration: underline;\n}\n\n.%prefix%-wskeepalive {\n display: none;\n}\n\n@media (prefers-color-scheme: dark) {\n .%prefix%-info hr,\n .%prefix%-inner {\n background: #262D43;\n color: white;\n }\n .%prefix%-request,\n .%prefix%-qr a,\n .%prefix%-qr span,\n .%prefix%-qr {\n background: #131B33;\n }\n .%prefix%-title {\n color: #FCFCFC;\n }\n .%prefix%-qr span,\n .%prefix%-subtitle {\n color: #B8C0DA;\n }\n .%prefix%-subtitle a {\n color: #FCFCFC;\n }\n .%prefix%-qr svg rect {\n fill: white;\n }\n .%prefix%-version {\n color: #546AAF;\n }\n .%prefix%-qr a,\n .%prefix%-manual,\n .%prefix%-button {\n color: #FCFCFC;\n }\n .%prefix%-button {\n background: #262D43;\n border: 1px solid #262D43;\n }\n .%prefix%-qr {\n border-color: #262D43;\n }\n .%prefix%-qr.zoom {\n border-color: #131B33;\n }\n .%prefix%-copy a:before {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' fill='none'%3E%3Cg clip-path='url(%23A)' stroke='%23fff' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M13.83 6.5h-6c-.73 0-1.33.6-1.33 1.33v6c0 .74.6 1.34 1.33 1.34h6c.74 0 1.34-.6 1.34-1.34v-6c0-.73-.6-1.33-1.34-1.33z'/%3E%3Cpath d='M3.83 10.5h-.66a1.33 1.33 0 01-1.34-1.33v-6a1.33 1.33 0 011.34-1.34h6a1.33 1.33 0 011.33 1.34v.66' stroke-linecap='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='A'%3E%3Cpath fill='%23fff' transform='translate(.5 .5)' d='M0 0h16v16H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\n }\n .%prefix%-copy span:before {\n background-image: url(\"data:image/svg+xml,%3Csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.33 4L6 11.33 2.67 8' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n }\n .%prefix%-button:hover {\n color: #FCFCFC;\n border: 1px solid #FCFCFC;\n background: #333A50;\n }\n .%prefix%-close {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.57 12.1a.96.96 0 000 1.34c.37.36 1 .36 1.34 0L7 8.37l5.09 5.09c.36.35.97.35 1.34-.01a.96.96 0 000-1.34L8.34 7.01l5.08-5.08a.95.95 0 000-1.33.97.97 0 00-1.34-.01L6.99 5.68 1.91.59a.96.96 0 00-1.33 0 .97.97 0 00-.01 1.34l5.09 5.08-5.1 5.1z' fill='%23FCFCFC'/%3E%3C/svg%3E\");\n }\n .%prefix%-close:hover {\n background-color: black;\n }\n}\n\n@media (max-height: 600px) { .%prefix%-inner { transform: scale(0.9); } }\n@media (max-height: 540px) { .%prefix%-inner { transform: scale(0.8); } }\n@media (max-height: 480px) { .%prefix%-inner { transform: scale(0.7); } }\n@media (max-height: 420px) { .%prefix%-inner { transform: scale(0.6); } }\n@media (max-height: 360px) { .%prefix%-inner { transform: scale(0.5); } }\n@media (max-height: 300px) { .%prefix%-inner { transform: scale(0.4); } }\n\n@media (max-width: 600px) and (orientation: portrait) {\n .%prefix%-qr.zoom {\n transform: scale(1.5) translateY(-25px);\n }\n}\n\n@media (max-width: 450px) and (orientation: portrait) {\n .%prefix%-qr.zoom {\n transform: scale(1.3) translateY(-25px);\n }\n}\n\n`;\n\nvar ErrorCorrectLevel = {\n L: 1,\n M: 0,\n Q: 3,\n H: 2,\n};\n\nvar Mode = {\n MODE_NUMBER: 1 << 0,\n MODE_ALPHA_NUM: 1 << 1,\n MODE_8BIT_BYTE: 1 << 2,\n MODE_KANJI: 1 << 3,\n};\n\nclass QR8bitByte {\n constructor(data) {\n this.mode = Mode.MODE_8BIT_BYTE;\n this.data = data;\n }\n getLength() {\n return this.data.length;\n }\n write(buffer) {\n for (let i = 0; i < this.data.length; i++) {\n // not JIS ...\n buffer.put(this.data.charCodeAt(i), 8);\n }\n }\n}\n\nclass QRBitBuffer {\n constructor() {\n this.buffer = [];\n this.length = 0;\n }\n get(index) {\n const bufIndex = Math.floor(index / 8);\n return ((this.buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1;\n }\n put(num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) == 1);\n }\n }\n getLengthInBits() {\n return this.length;\n }\n putBit(bit) {\n const bufIndex = Math.floor(this.length / 8);\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0);\n }\n if (bit) {\n this.buffer[bufIndex] |= 0x80 >>> this.length % 8;\n }\n this.length++;\n }\n}\n\nconst QRMath = {\n glog: function (n) {\n if (n < 1) {\n throw new Error('glog(' + n + ')');\n }\n return QRMath.LOG_TABLE[n];\n },\n gexp: function (n) {\n while (n < 0) {\n n += 255;\n }\n while (n >= 256) {\n n -= 255;\n }\n return QRMath.EXP_TABLE[n];\n },\n EXP_TABLE: new Array(256),\n LOG_TABLE: new Array(256),\n};\nfor (let i = 0; i < 8; i++) {\n QRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (let i = 8; i < 256; i++) {\n QRMath.EXP_TABLE[i] =\n QRMath.EXP_TABLE[i - 4] ^\n QRMath.EXP_TABLE[i - 5] ^\n QRMath.EXP_TABLE[i - 6] ^\n QRMath.EXP_TABLE[i - 8];\n}\nfor (let i = 0; i < 255; i++) {\n QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i;\n}\n\nclass QRPolynomial {\n constructor(num, shift) {\n if (num.length == undefined) {\n throw new Error(num.length + '/' + shift);\n }\n let offset = 0;\n while (offset < num.length && num[offset] == 0) {\n offset++;\n }\n this.num = new Array(num.length - offset + shift);\n for (let i = 0; i < num.length - offset; i++) {\n this.num[i] = num[i + offset];\n }\n }\n get(index) {\n return this.num[index];\n }\n getLength() {\n return this.num.length;\n }\n multiply(e) {\n const num = new Array(this.getLength() + e.getLength() - 1);\n for (let i = 0; i < this.getLength(); i++) {\n for (let j = 0; j < e.getLength(); j++) {\n num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j)));\n }\n }\n return new QRPolynomial(num, 0);\n }\n mod(e) {\n if (this.getLength() - e.getLength() < 0) {\n return this;\n }\n const ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0));\n const num = new Array(this.getLength());\n for (let i = 0; i < this.getLength(); i++) {\n num[i] = this.get(i);\n }\n for (let i = 0; i < e.getLength(); i++) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio);\n }\n // recursive call\n return new QRPolynomial(num, 0).mod(e);\n }\n}\n\n// ErrorCorrectLevel\nclass QRRSBlock {\n constructor(totalCount, dataCount) {\n this.totalCount = totalCount;\n this.dataCount = dataCount;\n }\n static getRSBlocks(typeNumber, errorCorrectLevel) {\n const rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n if (rsBlock == undefined) {\n throw new Error('bad rs block @ typeNumber:' +\n typeNumber +\n '/errorCorrectLevel:' +\n errorCorrectLevel);\n }\n const length = rsBlock.length / 3;\n const list = [];\n for (let i = 0; i < length; i++) {\n const count = rsBlock[i * 3 + 0];\n const totalCount = rsBlock[i * 3 + 1];\n const dataCount = rsBlock[i * 3 + 2];\n for (let j = 0; j < count; j++) {\n list.push(new QRRSBlock(totalCount, dataCount));\n }\n }\n return list;\n }\n static getRsBlockTable(typeNumber, errorCorrectLevel) {\n switch (errorCorrectLevel) {\n case ErrorCorrectLevel.L:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n case ErrorCorrectLevel.M:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n case ErrorCorrectLevel.Q:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n case ErrorCorrectLevel.H:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n default:\n return undefined;\n }\n }\n}\nQRRSBlock.RS_BLOCK_TABLE = [\n // L\n // M\n // Q\n // H\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12],\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16],\n];\n\nconst QRMaskPattern = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7,\n};\nconst QRUtil = {\n PATTERN_POSITION_TABLE: [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170],\n ],\n G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),\n getBCHTypeInfo: function (data) {\n let d = data << 10;\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n d ^= QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15));\n }\n return ((data << 10) | d) ^ QRUtil.G15_MASK;\n },\n getBCHTypeNumber: function (data) {\n let d = data << 12;\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n d ^= QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18));\n }\n return (data << 12) | d;\n },\n getBCHDigit: function (data) {\n let digit = 0;\n while (data != 0) {\n digit++;\n data >>>= 1;\n }\n return digit;\n },\n getPatternPosition: function (typeNumber) {\n return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n },\n getMask: function (maskPattern, i, j) {\n switch (maskPattern) {\n case QRMaskPattern.PATTERN000:\n return (i + j) % 2 == 0;\n case QRMaskPattern.PATTERN001:\n return i % 2 == 0;\n case QRMaskPattern.PATTERN010:\n return j % 3 == 0;\n case QRMaskPattern.PATTERN011:\n return (i + j) % 3 == 0;\n case QRMaskPattern.PATTERN100:\n return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0;\n case QRMaskPattern.PATTERN101:\n return ((i * j) % 2) + ((i * j) % 3) == 0;\n case QRMaskPattern.PATTERN110:\n return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0;\n case QRMaskPattern.PATTERN111:\n return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0;\n default:\n throw new Error('bad maskPattern:' + maskPattern);\n }\n },\n getErrorCorrectPolynomial: function (errorCorrectLength) {\n let a = new QRPolynomial([1], 0);\n for (let i = 0; i < errorCorrectLength; i++) {\n a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0));\n }\n return a;\n },\n getLengthInBits: function (mode, type) {\n if (1 <= type && type < 10) {\n // 1 - 9\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 10;\n case Mode.MODE_ALPHA_NUM:\n return 9;\n case Mode.MODE_8BIT_BYTE:\n return 8;\n case Mode.MODE_KANJI:\n return 8;\n default:\n throw new Error('mode:' + mode);\n }\n }\n else if (type < 27) {\n // 10 - 26\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 12;\n case Mode.MODE_ALPHA_NUM:\n return 11;\n case Mode.MODE_8BIT_BYTE:\n return 16;\n case Mode.MODE_KANJI:\n return 10;\n default:\n throw new Error('mode:' + mode);\n }\n }\n else if (type < 41) {\n // 27 - 40\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 14;\n case Mode.MODE_ALPHA_NUM:\n return 13;\n case Mode.MODE_8BIT_BYTE:\n return 16;\n case Mode.MODE_KANJI:\n return 12;\n default:\n throw new Error('mode:' + mode);\n }\n }\n else {\n throw new Error('type:' + type);\n }\n },\n getLostPoint: function (qrCode) {\n const moduleCount = qrCode.getModuleCount();\n let lostPoint = 0;\n // LEVEL1\n for (let row = 0; row < moduleCount; row++) {\n for (let col = 0; col < moduleCount; col++) {\n let sameCount = 0;\n const dark = qrCode.isDark(row, col);\n for (let r = -1; r <= 1; r++) {\n if (row + r < 0 || moduleCount <= row + r) {\n continue;\n }\n for (let c = -1; c <= 1; c++) {\n if (col + c < 0 || moduleCount <= col + c) {\n continue;\n }\n if (r == 0 && c == 0) {\n continue;\n }\n if (dark == qrCode.isDark(row + r, col + c)) {\n sameCount++;\n }\n }\n }\n if (sameCount > 5) {\n lostPoint += 3 + sameCount - 5;\n }\n }\n }\n // LEVEL2\n for (let row = 0; row < moduleCount - 1; row++) {\n for (let col = 0; col < moduleCount - 1; col++) {\n let count = 0;\n if (qrCode.isDark(row, col))\n count++;\n if (qrCode.isDark(row + 1, col))\n count++;\n if (qrCode.isDark(row, col + 1))\n count++;\n if (qrCode.isDark(row + 1, col + 1))\n count++;\n if (count == 0 || count == 4) {\n lostPoint += 3;\n }\n }\n }\n // LEVEL3\n for (let row = 0; row < moduleCount; row++) {\n for (let col = 0; col < moduleCount - 6; col++) {\n if (qrCode.isDark(row, col) &&\n !qrCode.isDark(row, col + 1) &&\n qrCode.isDark(row, col + 2) &&\n qrCode.isDark(row, col + 3) &&\n qrCode.isDark(row, col + 4) &&\n !qrCode.isDark(row, col + 5) &&\n qrCode.isDark(row, col + 6)) {\n lostPoint += 40;\n }\n }\n }\n for (let col = 0; col < moduleCount; col++) {\n for (let row = 0; row < moduleCount - 6; row++) {\n if (qrCode.isDark(row, col) &&\n !qrCode.isDark(row + 1, col) &&\n qrCode.isDark(row + 2, col) &&\n qrCode.isDark(row + 3, col) &&\n qrCode.isDark(row + 4, col) &&\n !qrCode.isDark(row + 5, col) &&\n qrCode.isDark(row + 6, col)) {\n lostPoint += 40;\n }\n }\n }\n // LEVEL4\n let darkCount = 0;\n for (let col = 0; col < moduleCount; col++) {\n for (let row = 0; row < moduleCount; row++) {\n if (qrCode.isDark(row, col)) {\n darkCount++;\n }\n }\n }\n const ratio = Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5;\n lostPoint += ratio * 10;\n return lostPoint;\n },\n};\n\nclass QRCode {\n constructor(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber;\n this.errorCorrectLevel = errorCorrectLevel;\n this.modules = null;\n this.moduleCount = 0;\n this.dataCache = null;\n this.dataList = [];\n }\n addData(data) {\n const newData = new QR8bitByte(data);\n this.dataList.push(newData);\n this.dataCache = null;\n }\n isDark(row, col) {\n if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n throw new Error(row + ',' + col);\n }\n return this.modules[row][col];\n }\n getModuleCount() {\n return this.moduleCount;\n }\n make() {\n // Calculate automatically typeNumber if provided is < 1\n if (this.typeNumber < 1) {\n let typeNumber = 1;\n for (typeNumber = 1; typeNumber < 40; typeNumber++) {\n const rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n const buffer = new QRBitBuffer();\n let totalDataCount = 0;\n for (let i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n for (let i = 0; i < this.dataList.length; i++) {\n const data = this.dataList[i];\n buffer.put(data.mode, 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));\n data.write(buffer);\n }\n if (buffer.getLengthInBits() <= totalDataCount * 8)\n break;\n }\n this.typeNumber = typeNumber;\n }\n this.makeImpl(false, this.getBestMaskPattern());\n }\n makeImpl(test, maskPattern) {\n this.moduleCount = this.typeNumber * 4 + 17;\n this.modules = new Array(this.moduleCount);\n for (let row = 0; row < this.moduleCount; row++) {\n this.modules[row] = new Array(this.moduleCount);\n for (let col = 0; col < this.moduleCount; col++) {\n this.modules[row][col] = null; //(col + row) % 3;\n }\n }\n this.setupPositionProbePattern(0, 0);\n this.setupPositionProbePattern(this.moduleCount - 7, 0);\n this.setupPositionProbePattern(0, this.moduleCount - 7);\n this.setupPositionAdjustPattern();\n this.setupTimingPattern();\n this.setupTypeInfo(test, maskPattern);\n if (this.typeNumber >= 7) {\n this.setupTypeNumber(test);\n }\n if (this.dataCache == null) {\n this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n }\n this.mapData(this.dataCache, maskPattern);\n }\n setupPositionProbePattern(row, col) {\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || this.moduleCount <= row + r)\n continue;\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || this.moduleCount <= col + c)\n continue;\n if ((0 <= r && r <= 6 && (c == 0 || c == 6)) ||\n (0 <= c && c <= 6 && (r == 0 || r == 6)) ||\n (2 <= r && r <= 4 && 2 <= c && c <= 4)) {\n this.modules[row + r][col + c] = true;\n }\n else {\n this.modules[row + r][col + c] = false;\n }\n }\n }\n }\n getBestMaskPattern() {\n let minLostPoint = 0;\n let pattern = 0;\n for (let i = 0; i < 8; i++) {\n this.makeImpl(true, i);\n const lostPoint = QRUtil.getLostPoint(this);\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint;\n pattern = i;\n }\n }\n return pattern;\n }\n setupTimingPattern() {\n for (let r = 8; r < this.moduleCount - 8; r++) {\n if (this.modules[r][6] != null) {\n continue;\n }\n this.modules[r][6] = r % 2 == 0;\n }\n for (let c = 8; c < this.moduleCount - 8; c++) {\n if (this.modules[6][c] != null) {\n continue;\n }\n this.modules[6][c] = c % 2 == 0;\n }\n }\n setupPositionAdjustPattern() {\n const pos = QRUtil.getPatternPosition(this.typeNumber);\n for (let i = 0; i < pos.length; i++) {\n for (let j = 0; j < pos.length; j++) {\n const row = pos[i];\n const col = pos[j];\n if (this.modules[row][col] != null) {\n continue;\n }\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) {\n this.modules[row + r][col + c] = true;\n }\n else {\n this.modules[row + r][col + c] = false;\n }\n }\n }\n }\n }\n }\n setupTypeNumber(test) {\n const bits = QRUtil.getBCHTypeNumber(this.typeNumber);\n for (let i = 0; i < 18; i++) {\n const mod = !test && ((bits >> i) & 1) == 1;\n this.modules[Math.floor(i / 3)][(i % 3) + this.moduleCount - 8 - 3] = mod;\n }\n for (let i = 0; i < 18; i++) {\n const mod = !test && ((bits >> i) & 1) == 1;\n this.modules[(i % 3) + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n }\n }\n setupTypeInfo(test, maskPattern) {\n const data = (this.errorCorrectLevel << 3) | maskPattern;\n const bits = QRUtil.getBCHTypeInfo(data);\n // vertical\n for (let i = 0; i < 15; i++) {\n const mod = !test && ((bits >> i) & 1) == 1;\n if (i < 6) {\n this.modules[i][8] = mod;\n }\n else if (i < 8) {\n this.modules[i + 1][8] = mod;\n }\n else {\n this.modules[this.moduleCount - 15 + i][8] = mod;\n }\n }\n // horizontal\n for (let i = 0; i < 15; i++) {\n const mod = !test && ((bits >> i) & 1) == 1;\n if (i < 8) {\n this.modules[8][this.moduleCount - i - 1] = mod;\n }\n else if (i < 9) {\n this.modules[8][15 - i - 1 + 1] = mod;\n }\n else {\n this.modules[8][15 - i - 1] = mod;\n }\n }\n // fixed module\n this.modules[this.moduleCount - 8][8] = !test;\n }\n mapData(data, maskPattern) {\n let inc = -1;\n let row = this.moduleCount - 1;\n let bitIndex = 7;\n let byteIndex = 0;\n for (let col = this.moduleCount - 1; col > 0; col -= 2) {\n if (col == 6)\n col--;\n for (;;) {\n for (let c = 0; c < 2; c++) {\n if (this.modules[row][col - c] == null) {\n let dark = false;\n if (byteIndex < data.length) {\n dark = ((data[byteIndex] >>> bitIndex) & 1) == 1;\n }\n const mask = QRUtil.getMask(maskPattern, row, col - c);\n if (mask) {\n dark = !dark;\n }\n this.modules[row][col - c] = dark;\n bitIndex--;\n if (bitIndex == -1) {\n byteIndex++;\n bitIndex = 7;\n }\n }\n }\n row += inc;\n if (row < 0 || this.moduleCount <= row) {\n row -= inc;\n inc = -inc;\n break;\n }\n }\n }\n }\n static createData(typeNumber, errorCorrectLevel, dataList) {\n const rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n const buffer = new QRBitBuffer();\n for (let i = 0; i < dataList.length; i++) {\n const data = dataList[i];\n buffer.put(data.mode, 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));\n data.write(buffer);\n }\n // calc num max data.\n let totalDataCount = 0;\n for (let i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw new Error('code length overflow. (' +\n buffer.getLengthInBits() +\n '>' +\n totalDataCount * 8 +\n ')');\n }\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4);\n }\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false);\n }\n // padding\n for (;;) {\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(QRCode.PAD0, 8);\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(QRCode.PAD1, 8);\n }\n return QRCode.createBytes(buffer, rsBlocks);\n }\n static createBytes(buffer, rsBlocks) {\n let offset = 0;\n let maxDcCount = 0;\n let maxEcCount = 0;\n const dcdata = new Array(rsBlocks.length);\n const ecdata = new Array(rsBlocks.length);\n for (let r = 0; r < rsBlocks.length; r++) {\n const dcCount = rsBlocks[r].dataCount;\n const ecCount = rsBlocks[r].totalCount - dcCount;\n maxDcCount = Math.max(maxDcCount, dcCount);\n maxEcCount = Math.max(maxEcCount, ecCount);\n dcdata[r] = new Array(dcCount);\n for (let i = 0; i < dcdata[r].length; i++) {\n dcdata[r][i] = 0xff & buffer.buffer[i + offset];\n }\n offset += dcCount;\n const rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n const rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);\n const modPoly = rawPoly.mod(rsPoly);\n ecdata[r] = new Array(rsPoly.getLength() - 1);\n for (let i = 0; i < ecdata[r].length; i++) {\n const modIndex = i + modPoly.getLength() - ecdata[r].length;\n ecdata[r][i] = modIndex >= 0 ? modPoly.get(modIndex) : 0;\n }\n }\n let totalCodeCount = 0;\n for (let i = 0; i < rsBlocks.length; i++) {\n totalCodeCount += rsBlocks[i].totalCount;\n }\n const data = new Array(totalCodeCount);\n let index = 0;\n for (let i = 0; i < maxDcCount; i++) {\n for (let r = 0; r < rsBlocks.length; r++) {\n if (i < dcdata[r].length) {\n data[index++] = dcdata[r][i];\n }\n }\n }\n for (let i = 0; i < maxEcCount; i++) {\n for (let r = 0; r < rsBlocks.length; r++) {\n if (i < ecdata[r].length) {\n data[index++] = ecdata[r][i];\n }\n }\n }\n return data;\n }\n}\nQRCode.PAD0 = 0xec;\nQRCode.PAD1 = 0x11;\n\n/**\n * Generate QR SVG\n * @author Johan Nordberg \n */\nfunction generate(text, level = 'L', version = -1) {\n const qr = new QRCode(version, ErrorCorrectLevel[level]);\n const rects = [];\n qr.addData(text);\n qr.make();\n const rows = qr.modules;\n const size = rows.length;\n for (const [y, row] of rows.entries()) {\n let rect;\n for (const [x, on] of row.entries()) {\n if (on) {\n if (!rect)\n rect = { x, y, width: 0, height: 1 };\n rect.width++;\n }\n else {\n if (rect && rect.width > 0) {\n rects.push(rect);\n }\n rect = undefined;\n }\n }\n if (rect && rect.width > 0) {\n rects.push(rect);\n }\n }\n const svg = [``];\n for (const { x, y, width, height } of rects) {\n svg.push(``);\n }\n svg.push('');\n return svg.join('');\n}\n\nasync function apiCall(url, body) {\n return (await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: body ? JSON.stringify(body) : undefined,\n })).json();\n}\nconst version = 'fuel/2';\n/** Return true if otherVersion is same or greater than current fuel version. */\nfunction compareVersion(otherVersion) {\n return parseVersion(otherVersion) >= parseVersion(version);\n}\nfunction parseVersion(string) {\n const parts = string.trim().split('/');\n if (parts.length === 2 && parts[0] === 'fuel') {\n return parseInt(parts[1]) || 0;\n }\n return -1;\n}\nasync function fuel(request, session, updatePrepareStatus, supportedChains, referrer) {\n assertEligible(request, session);\n updatePrepareStatus('Detecting if network resources are required.');\n const chainId = request.getChainId();\n const nodeUrl = supportedChains[String(chainId)];\n if (!nodeUrl) {\n throw new Error(`Blockchain not supported by this resource provider.`);\n }\n const result = await apiCall(nodeUrl + '/v1/resource_provider/request_transaction', {\n ref: referrer,\n request,\n signer: session.auth,\n });\n if (!result || !result.data) {\n throw new Error('Invalid response from resource provider.');\n }\n if (!result.data.signatures || !result.data.signatures[0]) {\n throw new Error('No signature returned from resource provider.');\n }\n if (result.code === 402 && !result.data.fee) {\n throw new Error('Resource provider returned a response indicating required payment, but provided no fee amount.');\n }\n // Clone the request for modification\n const cloned = request.clone();\n // Set the required fee onto the request for signature providers\n if (result.code === 402) {\n if (request.getInfoKey('no_fee')) {\n throw new Error('Fee required but sender opted out.');\n }\n cloned.setInfoKey('txfee', result.data.fee);\n }\n // If the fee costs exist, set them on the request for the signature provider to consume\n if (result.data.costs) {\n cloned.setInfoKey('txfeecpu', result.data.costs.cpu);\n cloned.setInfoKey('txfeenet', result.data.costs.net);\n cloned.setInfoKey('txfeeram', result.data.costs.ram);\n }\n // Set the cosigner signature onto the request for signature providers\n const signatures = result.data.signatures.map((s) => Signature.from(s));\n cloned.setInfoKey('cosig', signatures, { type: Signature, array: true });\n // Modify the request based on the response from the API\n cloned.data.req = (await SigningRequest.create({ transaction: { ...result.data.request[1] } }, { abiProvider: request.abiProvider })).data.req;\n return cloned;\n}\nfunction assertEligible(request, session) {\n if (request.getRawInfoKey('no_modify')) {\n throw new Error('Request cannot be modified.');\n }\n if (request.isIdentity()) {\n throw new Error('Identity requests cannot be co-signed.');\n }\n const firstAction = request.getRawActions()[0];\n if (!firstAction) {\n throw new Error('No actions in request.');\n }\n const firstAuthorizer = firstAction.authorization[0];\n if (!firstAction) {\n throw new Error('First authorization missing.');\n }\n if (!firstAuthorizer.actor.equals(session.auth.actor) &&\n !firstAuthorizer.actor.equals(PlaceholderName)) {\n throw new Error('Not first authorizer.');\n }\n}\n\nconst AbortPrepare = Symbol();\nconst SkipFee = Symbol();\nconst SkipToManual = Symbol();\nconst defaultSupportedChains = {\n aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906: 'https://eos.greymass.com',\n '2a02a0053e5a8cf73a56ba0fda11e4d92e0238a4a2aa74fccf46d5a910746840': 'https://jungle3.greymass.com',\n '4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11': 'https://telos.greymass.com',\n '1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4': 'https://wax.greymass.com',\n};\nclass Storage {\n constructor(keyPrefix) {\n this.keyPrefix = keyPrefix;\n }\n async write(key, data) {\n localStorage.setItem(this.storageKey(key), data);\n }\n async read(key) {\n return localStorage.getItem(this.storageKey(key));\n }\n async remove(key) {\n localStorage.removeItem(this.storageKey(key));\n }\n storageKey(key) {\n return `${this.keyPrefix}-${key}`;\n }\n}\nclass BrowserTransport {\n constructor(options = {}) {\n this.options = options;\n this.classPrefix = options.classPrefix || 'anchor-link';\n this.injectStyles = !(options.injectStyles === false);\n this.importantStyles = !(options.importantStyles === false);\n this.requestStatus = !(options.requestStatus === false);\n this.fuelEnabled = options.disableGreymassFuel !== true;\n this.fuelReferrer = options.fuelReferrer || 'teamgreymass';\n this.storage = new Storage(options.storagePrefix || 'anchor-link');\n this.supportedChains = options.supportedChains || defaultSupportedChains;\n this.showingManual = false;\n }\n closeModal() {\n this.hide();\n if (this.activeCancel) {\n this.activeRequest = undefined;\n this.activeCancel('Modal closed');\n this.activeCancel = undefined;\n }\n }\n setupElements() {\n this.showingManual = false;\n if (this.injectStyles && !this.styleEl) {\n this.styleEl = document.createElement('style');\n this.styleEl.type = 'text/css';\n let css = styleText.replace(/%prefix%/g, this.classPrefix);\n if (this.importantStyles) {\n css = css\n .split('\\n')\n .map((line) => line.replace(/;$/i, ' !important;'))\n .join('\\n');\n }\n this.styleEl.appendChild(document.createTextNode(css));\n document.head.appendChild(this.styleEl);\n }\n if (!this.containerEl) {\n this.containerEl = this.createEl();\n this.containerEl.className = this.classPrefix;\n this.containerEl.onclick = (event) => {\n if (event.target === this.containerEl) {\n event.stopPropagation();\n this.closeModal();\n }\n };\n document.body.appendChild(this.containerEl);\n }\n if (!this.requestEl) {\n const wrapper = this.createEl({ class: 'inner' });\n const closeButton = this.createEl({ class: 'close' });\n closeButton.onclick = (event) => {\n event.stopPropagation();\n this.closeModal();\n };\n this.requestEl = this.createEl({ class: 'request' });\n wrapper.appendChild(this.requestEl);\n wrapper.appendChild(closeButton);\n const version = this.createEl({\n class: 'version',\n text: `${BrowserTransport.version} (${Link.version})`,\n });\n version.onclick = (event) => {\n event.stopPropagation();\n window.open('https://github.com/greymass/anchor-link', '_blank');\n };\n wrapper.appendChild(version);\n this.containerEl.appendChild(wrapper);\n }\n }\n createEl(attrs) {\n if (!attrs)\n attrs = {};\n const el = document.createElement(attrs.tag || 'div');\n for (const attr of Object.keys(attrs)) {\n const value = attrs[attr];\n switch (attr) {\n case 'src':\n el.setAttribute(attr, value);\n break;\n case 'tag':\n break;\n case 'content':\n if (typeof value === 'string') {\n el.appendChild(document.createTextNode(value));\n }\n else {\n el.appendChild(value);\n }\n break;\n case 'text':\n el.appendChild(document.createTextNode(value));\n break;\n case 'class':\n el.className = `${this.classPrefix}-${value}`;\n break;\n default:\n el.setAttribute(attr, value);\n }\n }\n return el;\n }\n hide() {\n if (this.containerEl) {\n this.containerEl.classList.remove(`${this.classPrefix}-active`);\n }\n this.clearTimers();\n }\n show() {\n if (this.containerEl) {\n this.containerEl.classList.add(`${this.classPrefix}-active`);\n }\n }\n showDialog(args) {\n this.setupElements();\n const infoEl = this.createEl({ class: 'info' });\n const infoTitle = this.createEl({ class: 'title', tag: 'span', content: args.title });\n const infoSubtitle = this.createEl({\n class: 'subtitle',\n tag: 'span',\n content: args.subtitle,\n });\n infoEl.appendChild(infoTitle);\n infoEl.appendChild(infoSubtitle);\n const logoEl = this.createEl({ class: 'logo' });\n if (args.type) {\n logoEl.classList.add(args.type);\n }\n emptyElement(this.requestEl);\n this.requestEl.appendChild(logoEl);\n this.requestEl.appendChild(infoEl);\n if (args.content) {\n this.requestEl.appendChild(args.content);\n }\n if (args.action) {\n const buttonEl = this.createEl({ tag: 'a', class: 'button', text: args.action.text });\n buttonEl.addEventListener('click', (event) => {\n event.preventDefault();\n args.action.callback();\n });\n this.requestEl.appendChild(buttonEl);\n }\n if (args.footnote) {\n const footnoteEl = this.createEl({ class: 'footnote', content: args.footnote });\n this.requestEl.appendChild(footnoteEl);\n }\n this.show();\n }\n async displayRequest(request, title, subtitle, showFooter = true) {\n const sameDeviceRequest = request.clone();\n const returnUrl = generateReturnUrl();\n sameDeviceRequest.setInfoKey('same_device', true);\n sameDeviceRequest.setInfoKey('return_path', returnUrl);\n const sameDeviceUri = sameDeviceRequest.encode(true, false);\n const crossDeviceUri = request.encode(true, false);\n const qrEl = this.createEl({ class: 'qr' });\n try {\n qrEl.innerHTML = generate(crossDeviceUri);\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.warn('Unable to generate QR code', error);\n }\n const copyEl = this.createEl({ class: 'copy' });\n const copyA = this.createEl({ tag: 'a', text: 'Copy request link' });\n const copySpan = this.createEl({ tag: 'span', text: 'Link copied - Paste in Anchor' });\n copyEl.appendChild(copyA);\n copyEl.appendChild(copySpan);\n qrEl.appendChild(copyEl);\n copyA.addEventListener('click', (event) => {\n event.preventDefault();\n copyToClipboard(crossDeviceUri);\n copyEl.classList.add('copied');\n setTimeout(() => {\n copyEl.classList.remove('copied');\n }, 2000);\n });\n const svg = qrEl.querySelector('svg');\n if (svg) {\n svg.addEventListener('click', (event) => {\n event.preventDefault();\n qrEl.classList.toggle('zoom');\n });\n }\n const linkEl = this.createEl({ class: 'uri' });\n const linkA = this.createEl({\n tag: 'a',\n class: 'button',\n href: crossDeviceUri,\n text: 'Launch Anchor',\n });\n linkEl.appendChild(linkA);\n if (isFirefox() || isBrave()) {\n // this prevents firefox/brave from killing the websocket connection once the link is clicked\n const iframe = this.createEl({\n class: 'wskeepalive',\n src: 'about:blank',\n tag: 'iframe',\n });\n linkEl.appendChild(iframe);\n linkA.addEventListener('click', (event) => {\n event.preventDefault();\n iframe.setAttribute('src', sameDeviceUri);\n });\n }\n else {\n linkA.addEventListener('click', (event) => {\n event.preventDefault();\n window.location.href = sameDeviceUri;\n });\n }\n const content = this.createEl({ class: 'info' });\n content.appendChild(qrEl);\n content.appendChild(linkEl);\n let footnote;\n if (showFooter) {\n footnote = this.createEl({ text: \"Don't have Anchor yet? \" });\n const footnoteLink = this.createEl({\n tag: 'a',\n target: '_blank',\n href: 'https://greymass.com/anchor',\n text: 'Download now',\n });\n footnote.appendChild(footnoteLink);\n }\n this.showDialog({\n title,\n subtitle,\n footnote,\n content,\n });\n }\n async showLoading() {\n const status = this.createEl({\n tag: 'span',\n text: 'Preparing request...',\n });\n this.prepareStatusEl = status;\n this.showDialog({\n title: 'Loading',\n subtitle: status,\n type: 'loading',\n });\n }\n onRequest(request, cancel) {\n this.clearTimers();\n this.activeRequest = request;\n this.activeCancel = cancel;\n const title = request.isIdentity() ? 'Login' : 'Sign';\n const subtitle = 'Scan the QR-code with Anchor on another device or use the button to open it here.';\n this.displayRequest(request, title, subtitle).catch(cancel);\n }\n onSessionRequest(session, request, cancel) {\n if (session.metadata.sameDevice) {\n request.setInfoKey('return_path', generateReturnUrl());\n }\n if (session.type === 'fallback') {\n this.onRequest(request, cancel);\n if (session.metadata.sameDevice) {\n // trigger directly on a fallback same-device session\n window.location.href = request.encode();\n }\n return;\n }\n this.clearTimers();\n this.activeRequest = request;\n this.activeCancel = cancel;\n const timeout = session.metadata.timeout || 60 * 1000 * 2;\n const deviceName = session.metadata.name;\n let subtitle;\n if (deviceName && deviceName.length > 0) {\n subtitle = `Please open Anchor Wallet on “${deviceName}” to review and sign the transaction.`;\n }\n else {\n subtitle = 'Please review and sign the transaction in the linked wallet.';\n }\n const title = this.createEl({ tag: 'span', text: 'Sign' });\n const expires = new Date(Date.now() + timeout);\n const updateCountdown = () => {\n title.textContent = `Sign - ${countdownFormat(expires)}`;\n };\n this.countdownTimer = setInterval(updateCountdown, 200);\n updateCountdown();\n const content = this.createEl({ class: 'info' });\n const manualHr = this.createEl({ tag: 'hr' });\n const manualA = this.createEl({\n tag: 'a',\n text: 'Sign manually or with another device',\n class: 'manual',\n });\n manualA.addEventListener('click', (event) => {\n event.preventDefault();\n const error = new SessionError('Manual', 'E_TIMEOUT', session);\n error[SkipToManual] = true;\n cancel(error);\n });\n content.appendChild(manualHr);\n content.appendChild(manualA);\n this.showDialog({\n title,\n subtitle,\n content,\n });\n if (session.metadata.sameDevice) {\n if (session.metadata.launchUrl) {\n window.location.href = session.metadata.launchUrl;\n }\n else if (isAppleHandheld()) {\n window.location.href = 'anchor://link';\n }\n }\n }\n sendSessionPayload(payload, session) {\n if (!session.metadata.triggerUrl || !session.metadata.sameDevice) {\n // not same device or no trigger url supported\n return false;\n }\n if (payload.array.length > 700) {\n // url could be clipped by iOS\n return false;\n }\n window.location.href = session.metadata.triggerUrl.replace('%s', Base64u.encode(payload.array));\n return true;\n }\n clearTimers() {\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n if (this.countdownTimer) {\n clearTimeout(this.countdownTimer);\n this.countdownTimer = undefined;\n }\n }\n async showFee(request, fee) {\n this.activeRequest = request;\n const cancelPromise = new Promise((resolve, reject) => {\n this.activeCancel = (reason) => {\n let error;\n if (typeof reason === 'string') {\n error = new Error(reason);\n }\n else {\n error = reason;\n }\n error[AbortPrepare] = true;\n reject(error);\n };\n });\n const content = this.createEl({ class: 'info' });\n const feePart1 = this.createEl({\n tag: 'span',\n text: 'You can try to ',\n });\n const feeBypass = this.createEl({\n tag: 'a',\n text: 'proceed without the fee',\n });\n const feePart2 = this.createEl({\n tag: 'span',\n text: ' or accept the fee shown below to pay for these costs.',\n });\n const feeDescription = this.createEl({\n class: 'subtitle',\n tag: 'span',\n });\n feeDescription.appendChild(feePart1);\n feeDescription.appendChild(feeBypass);\n feeDescription.appendChild(feePart2);\n content.appendChild(feeDescription);\n const expireEl = this.createEl({\n tag: 'span',\n class: 'subtitle',\n text: 'Offer expires in --:--',\n });\n content.appendChild(expireEl);\n const expires = request.getRawTransaction().expiration.toDate();\n const expireTimer = setInterval(() => {\n expireEl.textContent = `Offer expires in ${countdownFormat(expires)}`;\n if (expires.getTime() < Date.now()) {\n this.activeCancel('Offer expired');\n }\n }, 200);\n const footnote = this.createEl({\n tag: 'span',\n text: 'Resources offered by ',\n });\n const footnoteLink = this.createEl({\n tag: 'a',\n target: '_blank',\n href: 'https://greymass.com/en/fuel',\n text: 'Greymass Fuel',\n });\n footnote.appendChild(footnoteLink);\n const skipPromise = waitForEvent(feeBypass, 'click').then(() => {\n const error = new Error('Skipped fee');\n error[SkipFee] = true;\n throw error;\n });\n const confirmPromise = new Promise((resolve) => {\n this.showDialog({\n title: 'Transaction Fee',\n subtitle: 'Your account lacks the network resources for this transaction and it cannot be covered for free.',\n type: 'fuel',\n content,\n action: {\n text: `Accept Fee of ${fee}`,\n callback: resolve,\n },\n footnote,\n });\n });\n await Promise.race([confirmPromise, skipPromise, cancelPromise]).finally(() => {\n clearInterval(expireTimer);\n });\n }\n showRecovery(request, session) {\n request.data.info = request.data.info.filter((pair) => pair.key !== 'return_path');\n if (session.type === 'channel') {\n const channelSession = session;\n if (channelSession.addLinkInfo) {\n channelSession.addLinkInfo(request);\n }\n }\n this.displayRequest(request, 'Sign manually', 'Want to sign with another device or didn’t get the signing request in your wallet, scan this QR or copy request and paste in app.', false);\n this.showingManual = true;\n }\n async prepare(request, session) {\n this.showLoading();\n if (!this.fuelEnabled || !session || request.isIdentity()) {\n // don't attempt to cosign id request or if we don't have a session attached\n return request;\n }\n if (typeof session.metadata.cosignerVersion === 'string' &&\n compareVersion(session.metadata.cosignerVersion)) {\n // if signer has cosigner, only attempt to cosign here if we have a newer version\n return request;\n }\n try {\n const result = fuel(request, session, (message) => {\n if (this.prepareStatusEl) {\n this.prepareStatusEl.textContent = message;\n }\n }, this.supportedChains, this.fuelReferrer);\n const timeout = new Promise((r) => setTimeout(r, 5000)).then(() => {\n throw new Error('API timeout after 5000ms');\n });\n const modified = await Promise.race([result, timeout]);\n const fee = modified.getInfoKey('txfee');\n if (fee) {\n await this.showFee(modified, String(fee));\n }\n return modified;\n }\n catch (error) {\n if (error[AbortPrepare]) {\n this.hide();\n throw error;\n }\n else {\n // eslint-disable-next-line no-console\n console.info(`Skipping resource provider: ${error.message || error}`);\n if (error[SkipFee]) {\n const modified = request.clone();\n modified.setInfoKey('no_fee', true, 'bool');\n return modified;\n }\n }\n }\n return request;\n }\n recoverError(error, request) {\n if (request === this.activeRequest &&\n (error['code'] === 'E_DELIVERY' || error['code'] === 'E_TIMEOUT') &&\n error['session']) {\n // recover from session errors by displaying a manual sign dialog\n if (this.showingManual) {\n // already showing recovery sign\n return true;\n }\n const session = error['session'];\n if (error[SkipToManual]) {\n this.showRecovery(request, session);\n return true;\n }\n const deviceName = session.metadata.name;\n let subtitle;\n if (deviceName && deviceName.length > 0) {\n subtitle = `Unable to deliver the request to “${deviceName}”.`;\n }\n else {\n subtitle = 'Unable to deliver the request to the linked wallet.';\n }\n subtitle += ` ${error.message}.`;\n this.showDialog({\n title: 'Unable to reach device',\n subtitle,\n type: 'warning',\n action: {\n text: 'Sign manually',\n callback: () => {\n this.showRecovery(request, session);\n },\n },\n });\n return true;\n }\n return false;\n }\n onSuccess(request) {\n if (request === this.activeRequest) {\n this.clearTimers();\n if (this.requestStatus) {\n this.showDialog({\n title: 'Success!',\n subtitle: request.isIdentity() ? 'Login completed.' : 'Transaction signed.',\n type: 'success',\n });\n this.closeTimer = setTimeout(() => {\n this.hide();\n }, 1.5 * 1000);\n }\n else {\n this.hide();\n }\n }\n }\n onFailure(request, error) {\n if (request === this.activeRequest && error['code'] !== 'E_CANCEL') {\n this.clearTimers();\n if (this.requestStatus) {\n let errorMessage;\n if (isInstanceOf(error, APIError)) {\n if (error.name === 'eosio_assert_message_exception') {\n errorMessage = error.details[0].message;\n }\n else if (error.details.length > 0) {\n errorMessage = error.details.map((d) => d.message).join('\\n');\n }\n else {\n errorMessage = error.message;\n }\n }\n else {\n errorMessage = error.message || String(error);\n }\n this.showDialog({\n title: 'Transaction Error',\n subtitle: errorMessage,\n type: 'error',\n });\n }\n else {\n this.hide();\n }\n }\n else {\n this.hide();\n }\n }\n userAgent() {\n return `BrowserTransport/${BrowserTransport.version} ${navigator.userAgent}`;\n }\n}\n/** Package version. */\nBrowserTransport.version = '3.3.0'; // replaced by build script\nfunction waitForEvent(element, eventName, timeout) {\n return new Promise((resolve, reject) => {\n const listener = (event) => {\n element.removeEventListener(eventName, listener);\n resolve(event);\n };\n element.addEventListener(eventName, listener);\n if (timeout) {\n setTimeout(() => {\n element.removeEventListener(eventName, listener);\n reject(new Error(`Timed out waiting for ${eventName}`));\n }, timeout);\n }\n });\n}\nfunction countdownFormat(date) {\n const timeLeft = date.getTime() - Date.now();\n if (timeLeft > 0) {\n return new Date(timeLeft).toISOString().substr(14, 5);\n }\n return '00:00';\n}\nfunction emptyElement(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n}\n/** Generate a return url that Anchor will redirect back to w/o reload. */\nfunction generateReturnUrl() {\n if (isChromeiOS()) {\n // google chrome on iOS will always open new tab so we just ask it to open again as a workaround\n return 'googlechrome://';\n }\n if (isFirefoxiOS()) {\n // same for firefox\n return 'firefox:://';\n }\n if (isAppleHandheld() && isBrave()) {\n // and brave ios\n return 'brave://';\n }\n if (isAppleHandheld()) {\n // return url with unique fragment required for iOS safari to trigger the return url\n const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let rv = window.location.href.split('#')[0] + '#';\n for (let i = 0; i < 8; i++) {\n rv += alphabet.charAt(Math.floor(Math.random() * alphabet.length));\n }\n return rv;\n }\n if (isAndroid() && isFirefox()) {\n return 'android-intent://org.mozilla.firefox';\n }\n if (isAndroid() && isEdge()) {\n return 'android-intent://com.microsoft.emmx';\n }\n if (isAndroid() && isOpera()) {\n return 'android-intent://com.opera.browser';\n }\n if (isAndroid() && isBrave()) {\n return 'android-intent://com.brave.browser';\n }\n if (isAndroid() && isAndroidWebView()) {\n return 'android-intent://webview';\n }\n if (isAndroid() && isChromeMobile()) {\n return 'android-intent://com.android.chrome';\n }\n return window.location.href;\n}\nfunction isAppleHandheld() {\n return /iP(ad|od|hone)/i.test(navigator.userAgent);\n}\nfunction isChromeiOS() {\n return /CriOS/.test(navigator.userAgent);\n}\nfunction isChromeMobile() {\n return /Chrome\\/[.0-9]* Mobile/i.test(navigator.userAgent);\n}\nfunction isFirefox() {\n return /Firefox/i.test(navigator.userAgent);\n}\nfunction isFirefoxiOS() {\n return /FxiOS/.test(navigator.userAgent);\n}\nfunction isOpera() {\n return /OPR/.test(navigator.userAgent) || /Opera/.test(navigator.userAgent);\n}\nfunction isEdge() {\n return /Edg/.test(navigator.userAgent);\n}\nfunction isBrave() {\n return navigator['brave'] && typeof navigator['brave'].isBrave === 'function';\n}\nfunction isAndroid() {\n return /Android/.test(navigator.userAgent);\n}\nfunction isAndroidWebView() {\n return /wv/.test(navigator.userAgent) || /Android.*AppleWebKit/.test(navigator.userAgent);\n}\nfunction copyToClipboard(text) {\n if (navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(text);\n }\n else {\n const el = document.createElement('textarea');\n try {\n el.setAttribute('contentEditable', '');\n el.value = text;\n document.body.appendChild(el);\n el.select();\n const range = document.createRange();\n range.selectNodeContents(el);\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n el.setSelectionRange(0, el.value.length);\n document.execCommand('copy');\n }\n finally {\n document.body.removeChild(el);\n }\n }\n}\n\nexport { BrowserTransport as default };\n//# sourceMappingURL=anchor-link-browser-transport.m.js.map\n","import {Link, ChainId, LinkSession, PermissionLevel} from 'anchor-link'\nimport Transport from 'anchor-link-browser-transport'\nimport {get} from 'svelte/store'\n\nimport {storeAccount} from './stores/account-provider'\nimport {getClient} from './api-client'\nimport {appId, chains} from './config'\nimport {activeSession, availableSessions} from './store'\n\nconst transport = new Transport({\n requestStatus: false,\n})\nconst link = new Link({\n chains: chains.map((chain) => ({chainId: chain.chainId, nodeUrl: getClient(chain)})),\n transport,\n})\n\n/** Anchor Link session object or identifier. */\nexport interface SessionLike {\n auth: PermissionLevel\n chainId: ChainId\n}\n\n/** Compare two session-ish objects. */\nexport function sessionEquals(a: SessionLike, b: SessionLike) {\n return a.auth.equals(b.auth) && a.chainId.equals(b.chainId)\n}\n\n/** Restore previous sessions. */\nexport async function init() {\n const list = await link.listSessions(appId)\n let session: LinkSession | null = null\n if (window.location.search.includes('auth=')) {\n // load active session from query string if present\n // prompt for login if an auth is requested but not available\n const qs = new URLSearchParams(window.location.search)\n const auth = PermissionLevel.from(qs.get('auth') || '')\n let chainId: ChainId | undefined\n if (qs.has('chain')) {\n chainId = ChainId.from(qs.get('chain') || '')\n }\n session = await link.restoreSession(appId, auth, chainId)\n const removeQuery = () => {\n if (window.history) {\n window.history.replaceState(null, '', window.location.pathname)\n }\n }\n if (!session) {\n return login().finally(removeQuery) // keep qs until after login so anchor redirects back correctly\n } else {\n removeQuery()\n }\n } else {\n session = await link.restoreSession(appId)\n }\n availableSessions.set(list)\n if (session) {\n activeSession.set(session)\n }\n}\n\n/** Create a new session. */\nexport async function login() {\n const result = await link.login(appId)\n if (result.account) {\n // populate account cache with the account returned by login so we don't need to re-fetch it\n storeAccount(result.account, result.session.chainId)\n }\n const list = await link.listSessions(appId)\n availableSessions.set(list)\n activeSession.set(result.session)\n}\n\n/** Remove existing session. */\nexport async function logout(id: SessionLike) {\n const session = await link.restoreSession(appId, id.auth, id.chainId)\n if (session) {\n await session.remove()\n const list = await link.listSessions(appId)\n let active = get(activeSession)\n if (active && sessionEquals(active, session)) {\n // update active session if we logged out from it\n if (list.length > 0) {\n activate(list[0])\n } else {\n activeSession.set(undefined)\n }\n }\n availableSessions.set(list)\n }\n}\n\n/** Set active session. */\nexport async function activate(id: SessionLike) {\n const session = await link.restoreSession(appId, id.auth, id.chainId)\n if (!session) {\n throw new Error('No such session')\n }\n activeSession.set(session)\n}\n","\n\n\n\n\n\n\n {#if icons}\n {@html (icons[name] || icons['help-circle']).toSvg()}\n {/if}\n\n","\n\n\n\n\n {#if style === 'effect'}\n \n {/if}\n \n Click me\n \n\n","\nText\n","import {writable} from 'svelte/store'\n\ntype Toast = {\n id: number\n dismissible: boolean\n timeout: number\n title?: string\n message: string\n}\n\nlet counter = 0\nexport const toasts = writable([])\n\nexport const dismissToast = (id: number) => {\n toasts.update((all) => all.filter((t) => t.id !== id))\n}\n\nexport const addToast = ({\n title,\n message,\n timeout = 3000,\n dismissible = true,\n}: {\n title?: string\n message: string\n timeout?: number\n dismissible?: boolean\n}) => {\n const id = counter++\n\n toasts.update((all) => [{id, title, message, timeout, dismissible}, ...all])\n\n setTimeout(() => dismissToast(id), timeout)\n}\n","\n\n\n\n{#if asLink}\n \n{:else}\n
\n \n
\n{/if}\n","\n\n\n\n
\n \n
\n","\n\n\n\n{#if $activeSession}\n
\n \n {#each $groupings as group}\n
\n
toggle(group.chainId)}>\n {group.name} ({group.sessions.length})\n \n
\n
    \n {#each group.sessions as session}\n
  • \n
    onSelect(session)}>\n \n
    \n
    onSelect(session)}>\n {session.auth.actor}\n
    \n
    logout(session)}>\n \n
    \n
  • \n {/each}\n
\n
\n {/each}\n
\n{:else}\n
\n \n
\n \n
\n

Supported blockchains

\n

\n {chains\n .filter((chain) => !chain.testnet)\n .map((chain) => chain.name)\n .join(', ')}\n

\n Login\n
\n
\n{/if}\n","\n\n\n\n\n","\n\n\n\n{#if $darkMode}\n setDarkMode(false, event)}>\n \n \n{:else}\n setDarkMode(true, event)}>\n \n \n{/if}\n","\n\n\n\n

\n {title}\n

\n

\n {subtitle}\n

\n","\n\n\n","\n\n\n\n\n \n \n \n \n \n\n","\n\n\n\n\n \n \n \n \n \n \n \n\n","\n\n\n\n\n","\n\n\n\n\n {#if !matches || open}\n {\n if (matches) {\n open = false\n } else {\n preferences.expandNavbar = false\n }\n }}\n />\n {/if}\n\n","\n\n\n\n\n {\n accountSidebar = false\n navigationSidebar = false\n }}\n />\n\n {#if displayNavigation && $activeSession}\n \n {/if}\n\n
\n \n {#if $$slots.submenu}\n
\n \n
\n {/if}\n \n
\n \n\n
\n
\n {#if title}\n
\n
\n
\n {/if}\n {#if $$slots.controls}\n
\n \n
\n {/if}\n
\n
\n \n
\n
\n\n","\n\n\n {#if !portion}\n \n {/if}\n \n \n \n \n \n \n \n \n \n \n \n\n","\n\n\n\n
\n \n
\n","import type {LinkSession} from 'anchor-link'\nimport {Asset} from 'anchor-link'\nimport {get, writable} from 'svelte/store'\nimport type {Writable} from 'svelte/store'\n\nimport {BalanceProviders, chainConfig} from '~/config'\nimport {activeSession} from '~/store'\nimport {makeTokenKey, Token} from '~/stores/tokens'\n\nimport {Balance, createBalanceFromToken} from '~/stores/balances'\n\ninterface RawTokenBalance {\n currency: string\n amount: number\n usd_value: number\n decimals: number\n contract: string\n metadata: {\n logo?: string\n }\n}\n\nexport const isLoading: Writable = writable(false)\n\ninterface BalancesProvider {\n balances: Balance[]\n tokens: Token[]\n}\n\nconst initialBalances: BalancesProvider = {\n balances: [],\n tokens: [],\n}\n\nexport const balancesProvider: Writable = writable(initialBalances, () => {\n // Update on a set interval\n const interval = setInterval(() => {\n const session = get(activeSession)\n if (session) {\n updateBalances(session)\n }\n }, 30000)\n\n // Subscribe to changes to the active session and update on change\n const unsubscribe = activeSession.subscribe((session) => {\n if (session) {\n updateBalances(session)\n }\n })\n\n return () => {\n unsubscribe()\n clearInterval(interval)\n }\n})\n\nexport async function updateBalances(session: LinkSession) {\n isLoading.set(true)\n const chain = chainConfig(session.chainId)\n const {Bloks} = BalanceProviders\n if (chain.balanceProviders?.has(Bloks)) {\n const data = await fetchData(session)\n const balances = parseTokenBalances(session, data)\n const tokens = parseTokens(session, data)\n balancesProvider.set({\n balances,\n tokens,\n })\n }\n isLoading.set(false)\n}\n\nasync function fetchData(session: LinkSession) {\n const chain = chainConfig(session.chainId)\n const apiUrl = `https://www.api.bloks.io${chain.id === 'eos' ? '' : `/${chain.id}`}/account/${\n session.auth.actor\n }?type=getAccountTokens&coreSymbol=${chain.coreTokenSymbol}`\n\n return await fetch(apiUrl)\n .then(async (response) => {\n const jsonBody =\n response &&\n (await response.json().catch((error) => {\n console.warn(\n 'An error occured while parsing the token balances response body:',\n {\n error,\n }\n )\n }))\n return jsonBody.tokens\n })\n .catch((error) => {\n console.warn('An error occured while fetching token balances:', {error})\n return []\n })\n}\n\nfunction parseTokenInfo(session: LinkSession, balance: RawTokenBalance): Token {\n const chain = chainConfig(session.chainId)\n const symbol: Asset.Symbol = Asset.Symbol.from(`${balance.decimals},${balance.currency}`)\n const key = makeTokenKey({\n chainId: chain.chainId,\n contract: balance.contract,\n name: symbol.name,\n })\n return {\n key,\n chainId: chain.chainId,\n contract: balance.contract,\n symbol: symbol,\n name: symbol.name,\n price: balance.usd_value / balance.amount,\n logo: balance.metadata?.logo,\n }\n}\n\nfunction parseTokens(session: LinkSession, balances: RawTokenBalance[]) {\n return balances.map((balance) => parseTokenInfo(session, balance))\n}\n\nfunction parseTokenBalances(session: LinkSession, balances: RawTokenBalance[]) {\n return balances.map((balance) => {\n const symbol: Asset.Symbol = Asset.Symbol.from(`${balance.decimals},${balance.currency}`)\n const token = parseTokenInfo(session, balance)\n const asset = Asset.from(balance.amount || 0, symbol)\n return createBalanceFromToken(session, token, asset)\n })\n}\n","import type {Asset} from 'anchor-link'\nimport type {ChainId, NameType} from 'anchor-link'\nimport {derived, get} from 'svelte/store'\nimport type {Readable} from 'svelte/store'\n\nimport {chainConfig} from '~/config'\nimport {activeBlockchain, activePriceTicker, activeSession} from '~/store'\nimport {balancesProvider} from './balances-provider'\n\nexport interface Token {\n key: string\n chainId: ChainId\n contract: NameType\n symbol: Asset.Symbol\n name: NameType\n price?: number\n logo?: string\n}\n\nexport interface TokenKeyParams {\n chainId: ChainId\n contract: NameType\n name: NameType\n}\n\nconst initialTokens: Token[] = []\n\nexport const tokens: Readable = derived(\n [activePriceTicker, activeSession, balancesProvider],\n ([$activePriceTicker, $activeSession, $balancesProvider], set) => {\n const records = []\n\n // Push any core balance information in from the current account\n if ($activeSession) {\n records.push(createTokenFromChainId($activeSession.chainId, $activePriceTicker))\n }\n\n // Push tokens in as received by the balance provider\n records.push(...$balancesProvider.tokens)\n\n set(records)\n },\n initialTokens\n)\n\nexport function makeTokenKey(token: TokenKeyParams): string {\n return [String(token.chainId), String(token.contract), String(token.name)]\n .join('-')\n .toLowerCase()\n}\n\nexport const systemTokenKey: Readable = derived(activeBlockchain, ($activeBlockchain) => {\n if ($activeBlockchain) {\n const params: TokenKeyParams = {\n chainId: $activeBlockchain.chainId,\n contract: $activeBlockchain.coreTokenContract,\n name: $activeBlockchain.coreTokenSymbol.name,\n }\n return makeTokenKey(params)\n }\n return ''\n})\n\nexport const systemToken: Readable = derived(\n activeBlockchain,\n ($activeBlockchain) => {\n if ($activeBlockchain) {\n return createTokenFromChainId($activeBlockchain.chainId)\n }\n }\n)\n\nexport function createTokenFromChainId(\n chainId: ChainId,\n price: number | undefined = undefined\n): Token {\n const chain = chainConfig(chainId)\n const token = {\n chainId: chainId,\n contract: chain.coreTokenContract,\n symbol: chain.coreTokenSymbol,\n name: chain.coreTokenSymbol.name,\n logo: `https://www.bloks.io/img/chains/${chain.coreTokenSymbol.name.toLowerCase()}.png`,\n price,\n }\n const record = {\n ...token,\n key: makeTokenKey(token),\n }\n return record\n}\n\nexport function getToken(key: string) {\n const existing = get(tokens)\n return existing.find((t) => t.key === key)\n}\n","import type {AccountName, ChainId, LinkSession, Name} from 'anchor-link'\nimport {Asset} from 'anchor-link'\nimport {derived} from 'svelte/store'\nimport type {Readable} from 'svelte/store'\n\nimport {activeBlockchain, activeSession, currentAccount} from '~/store'\nimport {createTokenFromChainId, makeTokenKey, Token} from '~/stores/tokens'\nimport {balancesProvider, updateBalances} from '~/stores/balances-provider'\nimport {updateAccount} from './account-provider'\n\nexport interface Balance {\n key: string\n chainId: ChainId\n account: Name\n tokenKey: string\n quantity: Asset\n}\n\nconst initialBalances: Balance[] = []\n\nexport const balances: Readable = derived(\n [activeSession, activeBlockchain, balancesProvider, currentAccount],\n ([$activeSession, $activeBlockchain, $balancesProvider, $currentAccount], set) => {\n const records = []\n // Push any core balance information in from the current account\n if ($activeSession && $currentAccount) {\n let coreBalance = $currentAccount.core_liquid_balance\n if (!coreBalance) {\n coreBalance = Asset.from(0, $activeBlockchain.coreTokenSymbol)\n }\n records.push(createBalanceFromCoreToken($activeSession, coreBalance))\n }\n // Push balances in as received by the balance provider\n records.push(...$balancesProvider.balances)\n set(records)\n },\n initialBalances\n)\n\nexport function makeBalanceKey(token: Token, account: AccountName): string {\n return [\n String(token.chainId),\n String(token.contract),\n String(token.symbol.name),\n String(account),\n ]\n .join('-')\n .toLowerCase()\n}\n\nexport function createBalanceFromCoreToken(session: LinkSession, balance: Asset): Balance {\n const token = createTokenFromChainId(session.chainId)\n return createBalanceFromToken(session, token, balance)\n}\n\nexport function createBalanceFromToken(\n session: LinkSession,\n token: Token,\n balance: Asset\n): Balance {\n const key = makeBalanceKey(token, session.auth.actor)\n const record: Balance = {\n key,\n chainId: session.chainId,\n account: session.auth.actor,\n tokenKey: makeTokenKey(token),\n quantity: balance,\n }\n return record\n}\n\nexport async function fetchBalances(session: LinkSession | undefined, refresh = false) {\n if (session) {\n // Refresh the sessions account data\n updateAccount(session.auth.actor, session.chainId, refresh)\n // Refresh balances from the balance provider\n updateBalances(session)\n }\n}\n\nexport const systemTokenBalance: Readable = derived(\n [activeBlockchain, balances],\n ([$activeBlockchain, $balances]) => {\n if ($activeBlockchain) {\n const token = createTokenFromChainId($activeBlockchain.chainId)\n\n return $balances.find((b) => b.tokenKey === token.key)\n }\n }\n)\n","/**\n * @greymass/eosio-resources v0.7.0\n * https://github.com/greymass/eosio-resources\n *\n * @license\n * Copyright (c) 2021 Greymass Inc. All Rights Reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * 1. Redistribution of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * 2. Redistribution in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * 3. Neither the name of the copyright holder nor the names of its contributors\n * may be used to endorse or promote products derived from this software without\n * specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n * OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR INTENDED FOR USE\n * IN THE DESIGN, CONSTRUCTION, OPERATION OR MAINTENANCE OF ANY MILITARY FACILITY.\n */\nimport { Struct, UInt64, UInt128, TimePointSec, Asset, APIClient, FetchProvider } from '@greymass/eosio';\nimport BN from 'bn.js';\nimport { __decorate } from 'tslib';\n\nclass PowerUpStateResource extends Struct {\n constructor() {\n super(...arguments);\n this.default_block_cpu_limit = UInt64.from(200000);\n this.default_block_net_limit = UInt64.from(1048576000);\n }\n // Get the current number of allocated units (shift from REX -> PowerUp)\n get allocated() {\n return 1 - Number(this.weight_ratio) / Number(this.target_weight_ratio) / 100;\n }\n // Get the current percentage of reserved units\n get reserved() {\n return Number(this.utilization) / Number(this.weight);\n }\n // Get the symbol definition for the token\n get symbol() {\n return this.min_price.symbol;\n }\n // Common casting for typed values to numbers\n cast() {\n return {\n adjusted_utilization: Number(this.adjusted_utilization),\n decay_secs: Number(this.decay_secs.value),\n exponent: Number(this.exponent),\n utilization: Number(this.utilization),\n utilization_timestamp: Number(this.utilization_timestamp.value),\n weight: Number(this.weight),\n weight_ratio: Number(this.weight_ratio),\n };\n }\n // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L358\n utilization_increase(sample, frac) {\n const { weight } = this;\n const frac128 = UInt128.from(frac);\n const utilization_increase = new BN(weight.value.mul(new BN(frac128.value))) / Math.pow(10, 15);\n return Math.ceil(utilization_increase);\n }\n // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L284-L298\n price_function(utilization) {\n const { exponent, weight } = this.cast();\n const max_price = this.max_price.value;\n const min_price = this.min_price.value;\n let price = min_price;\n const new_exponent = exponent - 1.0;\n if (new_exponent <= 0.0) {\n return max_price;\n }\n else {\n price += (max_price - min_price) * Math.pow(utilization / weight, new_exponent);\n }\n return price;\n }\n // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L274-L280\n price_integral_delta(start_utilization, end_utilization) {\n const { exponent, weight } = this.cast();\n const max_price = this.max_price.value;\n const min_price = this.min_price.value;\n const coefficient = (max_price - min_price) / exponent;\n const start_u = start_utilization / weight;\n const end_u = end_utilization / weight;\n const delta = min_price * end_u -\n min_price * start_u +\n coefficient * Math.pow(end_u, exponent) -\n coefficient * Math.pow(start_u, exponent);\n return delta;\n }\n // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L262-L315\n fee(utilization_increase, adjusted_utilization) {\n const { utilization, weight } = this.cast();\n let start_utilization = utilization;\n const end_utilization = start_utilization + utilization_increase;\n let fee = 0;\n if (start_utilization < adjusted_utilization) {\n fee +=\n (this.price_function(adjusted_utilization) *\n Math.min(utilization_increase, adjusted_utilization - start_utilization)) /\n weight;\n start_utilization = adjusted_utilization;\n }\n if (start_utilization < end_utilization) {\n fee += this.price_integral_delta(start_utilization, end_utilization);\n }\n return fee;\n }\n // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L105-L117\n determine_adjusted_utilization(options) {\n // Casting EOSIO types to usable formats for JS calculations\n const { decay_secs, utilization, utilization_timestamp } = this.cast();\n let { adjusted_utilization } = this.cast();\n // If utilization is less than adjusted, calculate real time value\n if (utilization < adjusted_utilization) {\n // Create now & adjust JS timestamp to match EOSIO timestamp values\n const ts = options && options.timestamp ? options.timestamp : new Date();\n const now = TimePointSec.from(ts).toMilliseconds() / 1000;\n const diff = adjusted_utilization - utilization;\n let delta = diff * Math.exp(-(now - utilization_timestamp) / decay_secs);\n delta = Math.min(Math.max(delta, 0), diff); // Clamp the delta\n adjusted_utilization = utilization + delta;\n }\n return adjusted_utilization;\n }\n}\n__decorate([\n Struct.field('uint8')\n], PowerUpStateResource.prototype, \"version\", void 0);\n__decorate([\n Struct.field('int64')\n], PowerUpStateResource.prototype, \"weight\", void 0);\n__decorate([\n Struct.field('int64')\n], PowerUpStateResource.prototype, \"weight_ratio\", void 0);\n__decorate([\n Struct.field('int64')\n], PowerUpStateResource.prototype, \"assumed_stake_weight\", void 0);\n__decorate([\n Struct.field('int64')\n], PowerUpStateResource.prototype, \"initial_weight_ratio\", void 0);\n__decorate([\n Struct.field('int64')\n], PowerUpStateResource.prototype, \"target_weight_ratio\", void 0);\n__decorate([\n Struct.field('time_point_sec')\n], PowerUpStateResource.prototype, \"initial_timestamp\", void 0);\n__decorate([\n Struct.field('time_point_sec')\n], PowerUpStateResource.prototype, \"target_timestamp\", void 0);\n__decorate([\n Struct.field('float64')\n], PowerUpStateResource.prototype, \"exponent\", void 0);\n__decorate([\n Struct.field('uint32')\n], PowerUpStateResource.prototype, \"decay_secs\", void 0);\n__decorate([\n Struct.field('asset')\n], PowerUpStateResource.prototype, \"min_price\", void 0);\n__decorate([\n Struct.field('asset')\n], PowerUpStateResource.prototype, \"max_price\", void 0);\n__decorate([\n Struct.field('int64')\n], PowerUpStateResource.prototype, \"utilization\", void 0);\n__decorate([\n Struct.field('int64')\n], PowerUpStateResource.prototype, \"adjusted_utilization\", void 0);\n__decorate([\n Struct.field('time_point_sec')\n], PowerUpStateResource.prototype, \"utilization_timestamp\", void 0);\n\nlet PowerUpStateResourceCPU = class PowerUpStateResourceCPU extends PowerUpStateResource {\n constructor() {\n super(...arguments);\n // Return smallest units per day, μs (microseconds)\n this.per_day = (options) => this.us_per_day(options);\n // Default frac generation by smallest unit type\n this.frac = (usage, us) => this.frac_by_us(usage, us);\n // Frac generation by ms (milliseconds)\n this.frac_by_ms = (usage, ms) => this.frac_by_us(usage, ms * 1000);\n // Price generation by smallest units, μs (microseconds)\n this.price_per = (usage, us = 1000, options) => this.price_per_us(usage, us, options);\n // Price generation by ms (milliseconds)\n this.price_per_ms = (usage, ms = 1, options) => this.price_per_us(usage, ms * 1000, options);\n }\n // Return ms (milliseconds) per day\n ms_per_day(options) {\n return this.us_per_day(options) / 1000;\n }\n // Return μs (microseconds) per day\n us_per_day(options) {\n const limit = options && options.virtual_block_cpu_limit\n ? options.virtual_block_cpu_limit\n : this.default_block_cpu_limit;\n return Number(limit) * 2 * 60 * 60 * 24;\n }\n // Convert weight to μs (microseconds)\n weight_to_us(sample, weight) {\n return Math.ceil((weight * Number(sample)) / BNPrecision);\n }\n // Convert μs (microseconds) to weight\n us_to_weight(sample, us) {\n return Math.floor((us / Number(sample)) * BNPrecision);\n }\n // Frac generation by μs (microseconds)\n frac_by_us(usage, us) {\n const { weight } = this.cast();\n const frac = this.us_to_weight(usage.cpu, us) / weight;\n return Math.floor(frac * Math.pow(10, 15));\n }\n // Price generation by μs (microseconds)\n price_per_us(usage, us = 1000, options) {\n // Determine the utilization increase by this action\n const frac = UInt128.from(this.frac(usage, us));\n const utilization_increase = this.utilization_increase(usage.cpu, frac);\n // Determine the adjusted utilization if needed\n const adjusted_utilization = this.determine_adjusted_utilization(options);\n // Derive the fee from the increase and utilization\n const fee = this.fee(utilization_increase, adjusted_utilization);\n // Force the fee up to the next highest value of precision\n const precision = Math.pow(10, 4);\n const value = Math.ceil(fee * precision) / precision;\n // Return the modified fee\n return value;\n }\n};\nPowerUpStateResourceCPU = __decorate([\n Struct.type('powerupstateresourcecpu')\n], PowerUpStateResourceCPU);\n\nlet PowerUpStateResourceNET = class PowerUpStateResourceNET extends PowerUpStateResource {\n constructor() {\n super(...arguments);\n // Return smallest units per day, bytes\n this.per_day = (options) => this.bytes_per_day(options);\n // Default frac generation by smallest unit type\n this.frac = (usage, bytes) => this.frac_by_bytes(usage, bytes);\n // Frac generation by kb\n this.frac_by_kb = (usage, kilobytes) => this.frac_by_bytes(usage, kilobytes * 1000);\n // Price generation by smallest units, bytes\n this.price_per = (usage, bytes = 1000, options) => this.price_per_byte(usage, bytes, options);\n // Price generation by kb\n this.price_per_kb = (usage, kilobytes = 1, options) => this.price_per_byte(usage, kilobytes * 1000, options);\n }\n // Return kb per day\n kb_per_day(options) {\n return this.bytes_per_day(options) / 1000;\n }\n // Return bytes per day\n bytes_per_day(options) {\n const limit = options && options.virtual_block_net_limit\n ? options.virtual_block_net_limit\n : this.default_block_net_limit;\n return Number(limit) * 2 * 60 * 60 * 24;\n }\n // Convert weight to bytes\n weight_to_bytes(sample, weight) {\n return Math.ceil((weight * Number(sample)) / BNPrecision);\n }\n // Convert bytes to weight\n bytes_to_weight(sample, bytes) {\n return Math.floor((bytes / Number(sample)) * BNPrecision);\n }\n // Frac generation by bytes\n frac_by_bytes(usage, bytes) {\n const { weight } = this.cast();\n const frac = this.bytes_to_weight(usage.net, bytes) / weight;\n return Math.floor(frac * Math.pow(10, 15));\n }\n // Price generation by bytes\n price_per_byte(usage, bytes = 1000, options) {\n // Determine the utilization increase by this action\n const frac = UInt128.from(this.frac(usage, bytes));\n const utilization_increase = this.utilization_increase(usage.net, frac);\n // Determine the adjusted utilization if needed\n const adjusted_utilization = this.determine_adjusted_utilization(options);\n // Derive the fee from the increase and utilization\n const fee = this.fee(utilization_increase, adjusted_utilization);\n // Force the fee up to the next highest value of precision\n const precision = Math.pow(10, 4);\n const value = Math.ceil(fee * precision) / precision;\n // Return the modified fee\n return value;\n }\n};\nPowerUpStateResourceNET = __decorate([\n Struct.type('powerupstateresourcenet')\n], PowerUpStateResourceNET);\n\nlet PowerUpState = class PowerUpState extends Struct {\n};\n__decorate([\n Struct.field('uint8')\n], PowerUpState.prototype, \"version\", void 0);\n__decorate([\n Struct.field(PowerUpStateResourceNET)\n], PowerUpState.prototype, \"net\", void 0);\n__decorate([\n Struct.field(PowerUpStateResourceCPU)\n], PowerUpState.prototype, \"cpu\", void 0);\n__decorate([\n Struct.field('uint32')\n], PowerUpState.prototype, \"powerup_days\", void 0);\n__decorate([\n Struct.field('asset')\n], PowerUpState.prototype, \"min_powerup_fee\", void 0);\nPowerUpState = __decorate([\n Struct.type('powerupstate')\n], PowerUpState);\nclass PowerUpAPI {\n constructor(parent) {\n this.parent = parent;\n }\n async get_state() {\n const response = await this.parent.api.v1.chain.get_table_rows({\n code: 'eosio',\n scope: '',\n table: 'powup.state',\n type: PowerUpState,\n });\n return response.rows[0];\n }\n}\n\nlet Connector = class Connector extends Struct {\n};\n__decorate([\n Struct.field('asset')\n], Connector.prototype, \"balance\", void 0);\n__decorate([\n Struct.field('float64')\n], Connector.prototype, \"weight\", void 0);\nConnector = __decorate([\n Struct.type('connector')\n], Connector);\nlet ExchangeState = class ExchangeState extends Struct {\n};\n__decorate([\n Struct.field('asset')\n], ExchangeState.prototype, \"supply\", void 0);\n__decorate([\n Struct.field(Connector)\n], ExchangeState.prototype, \"base\", void 0);\n__decorate([\n Struct.field(Connector)\n], ExchangeState.prototype, \"quote\", void 0);\nExchangeState = __decorate([\n Struct.type('exchange_state')\n], ExchangeState);\nlet RAMState = class RAMState extends ExchangeState {\n price_per(bytes) {\n const base = this.base.balance.units.toNumber();\n const quote = this.quote.balance.value;\n return this.get_input(base, quote, bytes);\n }\n price_per_kb(kilobytes) {\n return this.price_per(kilobytes * 1000);\n }\n // Derived from https://github.com/EOSIO/eosio.contracts/blob/f6578c45c83ec60826e6a1eeb9ee71de85abe976/contracts/eosio.system/src/exchange_state.cpp#L96\n get_input(base, quote, value) {\n const result = (quote * value) / (base - value);\n if (result < 0) {\n return 0;\n }\n return result;\n }\n};\nRAMState = __decorate([\n Struct.type('ramstate')\n], RAMState);\nclass RAMAPI {\n constructor(parent) {\n this.parent = parent;\n }\n async get_state() {\n const response = await this.parent.api.v1.chain.get_table_rows({\n code: 'eosio',\n scope: 'eosio',\n table: 'rammarket',\n type: RAMState,\n });\n return response.rows[0];\n }\n}\n\nlet REXState = class REXState extends Struct {\n get reserved() {\n return Number(this.total_lent.units) / Number(this.total_lendable.units);\n }\n get symbol() {\n return this.total_lent.symbol;\n }\n get precision() {\n return this.total_lent.symbol.precision;\n }\n get value() {\n const factor = 10 ** this.total_unlent.symbol.precision;\n return (Number(this.total_lent.units\n .adding(this.total_unlent.units)\n .dividing(this.total_rex.units.dividing(factor))) / factor);\n }\n price_per(sample, unit = 1000) {\n // Sample token units\n const tokens = Asset.fromUnits(10000, this.symbol);\n // Spending 1 EOS (10000 units) on REX gives this many tokens\n const bancor = Number(tokens.units) / (this.total_rent.value / this.total_unlent.value);\n // The ratio of the number of tokens received vs the sampled values\n const unitPrice = bancor * (Number(sample.cpu) / BNPrecision);\n // The token units spent per unit\n const perunit = Number(tokens.units) / unitPrice;\n // Multiply the per unit cost by the units requested\n const cost = perunit * unit;\n // Converting to an Asset\n return cost / Math.pow(10, this.precision);\n }\n};\n__decorate([\n Struct.field('uint8')\n], REXState.prototype, \"version\", void 0);\n__decorate([\n Struct.field('asset')\n], REXState.prototype, \"total_lent\", void 0);\n__decorate([\n Struct.field('asset')\n], REXState.prototype, \"total_unlent\", void 0);\n__decorate([\n Struct.field('asset')\n], REXState.prototype, \"total_rent\", void 0);\n__decorate([\n Struct.field('asset')\n], REXState.prototype, \"total_lendable\", void 0);\n__decorate([\n Struct.field('asset')\n], REXState.prototype, \"total_rex\", void 0);\n__decorate([\n Struct.field('asset')\n], REXState.prototype, \"namebid_proceeds\", void 0);\n__decorate([\n Struct.field('uint64')\n], REXState.prototype, \"loan_num\", void 0);\nREXState = __decorate([\n Struct.type('rexstate')\n], REXState);\nclass REXAPI {\n constructor(parent) {\n this.parent = parent;\n }\n async get_state() {\n const response = await this.parent.api.v1.chain.get_table_rows({\n code: 'eosio',\n scope: 'eosio',\n table: 'rexpool',\n type: REXState,\n });\n return response.rows[0];\n }\n}\n\nconst BNPrecision = new BN(1000 * 1000);\nclass Resources {\n constructor(options) {\n // the account to use when sampling usage\n this.sampleAccount = 'b1';\n // token precision/symbol\n this.symbol = '4,EOS';\n this.v1 = {\n powerup: new PowerUpAPI(this),\n ram: new RAMAPI(this),\n rex: new REXAPI(this),\n };\n // Allow overriding of the sample account name\n if (options.sampleAccount) {\n this.sampleAccount = options.sampleAccount;\n }\n // Allow overriding of the system token symbol\n if (options.symbol) {\n this.symbol = options.symbol;\n }\n // Allow variations on how to specify the API configuration\n if (options.api) {\n this.api = options.api;\n }\n else if (options.url) {\n this.api = new APIClient({ provider: new FetchProvider(options.url, options) });\n }\n else {\n throw new Error('Missing url or api client');\n }\n }\n async getSampledUsage() {\n const account = await this.api.v1.chain.get_account(this.sampleAccount);\n const us = UInt128.from(account.cpu_limit.max.value.mul(BNPrecision));\n const byte = UInt128.from(account.net_limit.max.value.mul(BNPrecision));\n const cpu_weight = UInt128.from(account.cpu_weight.value);\n const net_weight = UInt128.from(account.net_weight.value);\n return {\n account,\n cpu: divCeil(us.value, cpu_weight.value),\n net: divCeil(byte.value, net_weight.value),\n };\n }\n}\nResources.__className = 'Resources';\nfunction divCeil(num, den) {\n let v = num.div(den);\n const zero = new BN(0);\n const one = new BN(1);\n if (num.mod(den).gt(zero)) {\n v = v.sub(one);\n }\n return UInt128.from(v);\n}\n\nexport { BNPrecision, Connector, ExchangeState, PowerUpAPI, PowerUpState, RAMAPI, RAMState, REXAPI, REXState, Resources };\n//# sourceMappingURL=eosio-resources.m.js.map\n","import {derived, Readable} from 'svelte/store'\nimport {API, Asset} from '@greymass/eosio'\nimport {Resources, SampleUsage, PowerUpState, RAMState, REXState} from '@greymass/eosio-resources'\nimport {activeBlockchain} from '~/store'\n\nimport {getClient} from '../../api-client'\nimport {ChainConfig, ChainFeatures, resourceFeatures} from '~/config'\n\nconst getResourceClient = (chain: ChainConfig) => {\n const api = getClient(chain)\n const options: any = {api}\n if (chain.resourceSampleAccount) {\n options.sampleAccount = chain.resourceSampleAccount\n }\n return new Resources(options)\n}\n\nexport const getSampleUsage = async (set: (v: any) => void, chain: ChainConfig) =>\n getResourceClient(chain)\n .getSampledUsage()\n .then((v) => set(v))\n .catch((e) => {\n // TODO: We should probably have some sort of error catcher for stuff like this?\n console.error(e)\n // Set to undefined, which is the same as uninitialized\n set(undefined)\n })\n\n// The AccountResponse representation of the sample account\nexport const sampleUsage: Readable = derived(\n [activeBlockchain],\n ([$activeBlockchain], set) => {\n if (\n $activeBlockchain &&\n Array.from($activeBlockchain.chainFeatures).some((r) => resourceFeatures.includes(r))\n ) {\n getSampleUsage(set, $activeBlockchain)\n const interval = setInterval(() => getSampleUsage(set, $activeBlockchain), 30000)\n return () => {\n clearInterval(interval)\n }\n }\n }\n)\n\nexport const getInfo = async (set: (v: any) => void, chain: ChainConfig) =>\n getClient(chain)\n .v1.chain.get_info()\n .then((result) => set(result))\n .catch((e) => {\n // TODO: We should probably have some sort of error catcher for stuff like this?\n console.error(e)\n // Set to undefined, which is the same as uninitialized\n set(undefined)\n })\n\nexport const info: Readable = derived(\n [activeBlockchain],\n ([$activeBlockchain], set) => {\n if ($activeBlockchain) {\n getInfo(set, $activeBlockchain)\n }\n }\n)\n\nexport const getPowerUpState = async (set: (v: any) => void, chain: ChainConfig) =>\n getResourceClient(chain)\n .v1.powerup.get_state()\n .then((result) => set(result))\n .catch((e) => {\n // TODO: We should probably have some sort of error catcher for stuff like this?\n console.error(e)\n // Set to undefined, which is the same as uninitialized\n set(undefined)\n })\n\n// The state of the PowerUp system\nexport const statePowerUp: Readable = derived(\n [activeBlockchain],\n ([$activeBlockchain], set) => {\n if ($activeBlockchain && $activeBlockchain.chainFeatures.has(ChainFeatures.PowerUp)) {\n getPowerUpState(set, $activeBlockchain)\n const interval = setInterval(() => getPowerUpState(set, $activeBlockchain), 30000)\n return () => {\n clearInterval(interval)\n }\n }\n }\n)\n\n// Rent 1ms of the networks CPU\nexport const msToRent: Readable = derived(activeBlockchain, ($activeBlockchain) => {\n if ($activeBlockchain.resourceSampleMilliseconds) {\n return $activeBlockchain.resourceSampleMilliseconds\n }\n return 1\n})\n\nexport const powerupPrice = derived(\n [msToRent, sampleUsage, statePowerUp, info],\n ([$msToRent, $sampleUsage, $statePowerUp, $info]) => {\n if ($msToRent && $sampleUsage && $statePowerUp) {\n return Asset.from(\n $statePowerUp.cpu.price_per_ms($sampleUsage, $msToRent, $info),\n '4,EOS'\n )\n }\n return Asset.from(0, '4,EOS')\n }\n)\n\nexport const stakingPrice = derived(\n [activeBlockchain, msToRent, sampleUsage],\n ([$activeBlockchain, $msToRent, $sampleUsage]) => {\n if ($msToRent && $sampleUsage) {\n const {account} = $sampleUsage\n const cpu_weight = Number(account.total_resources.cpu_weight.units)\n const cpu_limit = Number(account.cpu_limit.max.value)\n let price = cpu_weight / cpu_limit\n if ($activeBlockchain.resourceSampleMilliseconds) {\n price *= $activeBlockchain.resourceSampleMilliseconds\n }\n return Asset.fromUnits(price, $activeBlockchain.coreTokenSymbol)\n }\n return Asset.from(0, $activeBlockchain.coreTokenSymbol)\n }\n)\n\nexport const getREXState = async (set: (v: any) => void, chain: ChainConfig) =>\n getResourceClient(chain)\n .v1.rex.get_state()\n .then((result) => set(result))\n .catch((e) => {\n // TODO: We should probably have some sort of error catcher for stuff like this?\n console.error(e)\n // Set to undefined, which is the same as uninitialized\n set(undefined)\n })\n\n// The state of the REX system\nexport const stateREX: Readable = derived(\n [activeBlockchain],\n ([$activeBlockchain], set) => {\n if ($activeBlockchain && $activeBlockchain.chainFeatures.has(ChainFeatures.REX)) {\n getREXState(set, $activeBlockchain)\n const interval = setInterval(() => getREXState(set, $activeBlockchain), 30000)\n return () => {\n clearInterval(interval)\n }\n }\n }\n)\n\n// The price of CPU in the REX system\nexport const rexPrice = derived(\n [msToRent, sampleUsage, stateREX],\n ([$msToRent, $sampleUsage, $stateREX]) => {\n if ($msToRent && $sampleUsage && $stateREX) {\n return Asset.from($stateREX.price_per($sampleUsage, $msToRent * 30000), '4,EOS')\n }\n return Asset.from(0, '4,EOS')\n }\n)\n\n// The state of the REX system\nexport const stateRAM: Readable = derived(\n [activeBlockchain],\n ([$activeBlockchain], set) => {\n if ($activeBlockchain && $activeBlockchain.chainFeatures.has(ChainFeatures.BuyRAM)) {\n getRAMState(set, $activeBlockchain)\n const interval = setInterval(() => getRAMState(set, $activeBlockchain), 30000)\n return () => {\n clearInterval(interval)\n }\n }\n }\n)\n\nexport const getRAMState = async (set: (v: any) => void, chain: ChainConfig) =>\n getResourceClient(chain)\n .v1.ram.get_state()\n .then((result) => set(result))\n .catch((e) => {\n // TODO: We should probably have some sort of error catcher for stuff like this?\n console.error(e)\n // Set to undefined, which is the same as uninitialized\n set(undefined)\n })\n","\n\n\n\n
\n \n
\n","\n\n{altToUse}\n","\n\n\n\n{#if src}\n {name}\n{/if}\n","\n\n\n\n
\n
Token
\n
Balance
\n
Price
\n
Value
\n
\n
\n","\n\n\n\n
{int}
\n
\n {#if dec}\n .{dec}\n {/if}\n
\n","\n\n\n\n{#if $token && balance}\n
\n
\n
\n
\n \n
\n
\n
\n \n {#if name}\n {name}\n {:else if $token}\n {$token.name}\n {:else}\n {balance.quantity.symbol.name}\n {/if}\n \n
\n {#if balance.quantity}\n \n {/if}\n
\n {#if $token.price}\n {fiatFormat($token.price, 4)}\n {/if}\n
\n
\n {#if $token.price}\n {fiatFormat($token.price * balance.quantity.value, 2)}\n {/if}\n
\n
\n
\n {#if transferable}\n \n {/if}\n
\n
\n \n
\n
\n
\n
\n
\n {#if $token.price}\n
\n
Value
\n
\n {fiatFormat($token.price * balance.quantity.value)}\n
\n
\n
\n
Price
\n
{fiatFormat($token.price)}
\n
\n {/if}\n
\n {#if transferable}\n \n {/if}\n
\n
\n{/if}\n","\n\n\n\n
\n \n {#if $systemTokenBalance}\n \n {/if}\n {#if $stakedBalance && $systemToken}\n \n {/if}\n {#if $rexBalance && $systemToken}\n \n {/if}\n {#if $records}\n {#each $records as balance}\n \n {/each}\n {/if}\n
\n","import {derived, writable} from 'svelte/store'\nimport type {Readable, Writable} from 'svelte/store'\nimport type {TinroRouteMeta} from 'tinro'\n\nimport {ABIDef, APIClient, PermissionLevel, TransactionHeader} from 'anchor-link'\nimport {AbiMap, ResolvedTransaction, SigningRequest} from 'eosio-signing-request'\n\nimport {ChainConfig, chainConfig} from '~/config'\nimport {activeSession} from '~/store'\n\nimport zlib from 'pako'\nimport {getClient} from '~/api-client'\n\n// The current route being passed in from the component\nexport let currentRoute = writable(undefined)\n\n// The chain configuration that matches the current request\nexport let currentChain: Writable = writable(undefined)\nlet currentChainConfig: ChainConfig | undefined\ncurrentChain.subscribe((value) => (currentChainConfig = value))\n\n// The API client to fulfill the request\nexport let apiClient: Readable = derived(currentChain, ($currentChain) => {\n if ($currentChain) {\n return getClient($currentChain.chainId)\n }\n})\n\n// The ABI Provider derived from the API Client to resolve requests\nexport let abiProvider: Readable = derived(apiClient, ($apiClient) => {\n if ($apiClient) {\n return {\n getAbi: async (account: any) => {\n return (await $apiClient.v1.chain.get_abi(account)).abi as ABIDef\n },\n }\n }\n})\n\n// The currently loaded request, derived from the current route\nexport const currentRequest: Readable = derived(\n currentRoute,\n ($currentRoute) => {\n if ($currentRoute) {\n return SigningRequest.from(`esr:${$currentRoute.params.payload}`, {\n zlib,\n })\n }\n }\n)\n\n// Set the current chain based on the current request\ncurrentRequest.subscribe((request) => {\n if (request) {\n const id = request.getChainId()\n if (!currentChainConfig || !currentChainConfig.chainId.equals(id)) {\n currentChain.set(chainConfig(id))\n }\n }\n})\n\n// The ABIs required for the current request\nexport const abis: Readable = derived(\n [abiProvider, currentRequest],\n ([$abiProvider, $currentRequest], set) => {\n if ($currentRequest && currentChainConfig) {\n $currentRequest.fetchAbis($abiProvider).then((abis) => set(abis))\n }\n }\n)\n\n// Whether or not this is a multichain request\nexport const multichain: Readable = derived(currentRequest, ($currentRequest) => {\n if ($currentRequest) {\n return $currentRequest.isMultiChain()\n }\n return false\n})\n\n// The current transaction resolved from the current request\nexport const currentTransaction: Readable = derived(\n [abis, activeSession, apiClient, currentRequest],\n ([$abis, $activeSession, $apiClient, $currentRequest], set) => {\n if ($apiClient && $abis && $currentRequest) {\n // Create a dummy permission level for resolution without an active session\n let auth: PermissionLevel = PermissionLevel.from({\n actor: 'test',\n permission: 'active',\n })\n // If an active session exists, use it instead\n if ($activeSession) {\n auth = $activeSession.auth\n }\n // Resolve the transaction for the interface to display\n $apiClient.v1.chain.get_info().then((info: any) => {\n const header: TransactionHeader = info.getTransactionHeader()\n set($currentRequest.resolveTransaction($abis, auth, header))\n })\n }\n return undefined\n }\n)\n","import {derived} from 'svelte/store'\nimport type {Readable} from 'svelte/store'\nimport type {AnyAction} from 'anchor-link'\n\nimport {currentTransaction} from './request'\n\nconst templates = [\n {\n name: 'newaccount',\n actions: ['eosio::newaccount', 'eosio::buyrambytes'],\n },\n]\n\nexport const currentTemplate: Readable = derived(\n currentTransaction,\n ($currentTransaction: any) => {\n if ($currentTransaction) {\n const actions = $currentTransaction.actions.map(\n (action: AnyAction) => `${action.account}::${action.name}`\n )\n const matching = templates.find(\n (template) => JSON.stringify(template.actions) === JSON.stringify(actions)\n )\n if (matching) {\n return matching.name\n }\n return 'default'\n }\n return 'loading'\n }\n)\n","\n\n\n\n
\n {#if QrCode}\n \n {/if}\n \n
\n","\n\n\n\n
\n \n\n {#if $chain && $session}\n {#if $chain.chainId.equals($session.chainId)}\n \n {:else}\n

Switch to an account on {$chain.name} to sign this transaction.

\n {/if}\n {/if}\n\n {#if $transaction}\n \n
{JSON.stringify($transaction, null, 4)}
\n
\n {/if}\n
\n","\n\n\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

Loading Request...

\n
\n","import {derived} from 'svelte/store'\nimport type {Readable} from 'svelte/store'\n\nimport {Resources, RAMState} from '@greymass/eosio-resources'\n\nimport {apiClient} from './request'\n\nexport let resourceClient: Readable = derived(apiClient, ($apiClient) => {\n if ($apiClient) {\n return new Resources({api: $apiClient})\n }\n})\n\nexport const stateRAM: Readable = derived(\n [resourceClient],\n ([$resourceClient], set) => {\n if ($resourceClient) {\n $resourceClient.v1.ram\n .get_state()\n .then((result) => set(result))\n .catch((e) => {\n // TODO: We should probably have some sort of error catcher for stuff like this?\n console.error(e)\n // Set to undefined, which is the same as uninitialized\n set(undefined)\n })\n }\n }\n)\n","\n\n\n\n{#if loading}\n \n{:else if $accountExists === true}\n
This account was already created!
\n{:else}\n
\n \n\n
\n

Account Creation Request

\n

Someone has requested the creation of a new account.

\n
\n\n
    \n {#if newaccount}\n
  • \n EOSIO Network\n {String($chain.name)}\n
  • \n {/if}\n {#if newaccount}\n
  • \n Account Name\n {String(newaccount.data.name)}\n
  • \n {/if}\n {#if buyram}\n
  • \n Purchase RAM\n {String(buyram.data.bytes)} bytes\n
  • \n {/if}\n
\n\n
\n {#if $chain}\n {#if $session}\n {#if $chain.chainId.equals($session.chainId)}\n
\n
\n{/if}\n","import {writable} from 'svelte/store'\n\nimport type {Asset, Name, PublicKey} from '@greymass/eosio'\n\nexport const enum Step {\n Token,\n Recipient,\n Amount,\n Confirm,\n Memo,\n Sending,\n Sent,\n Failed,\n Receive,\n}\n\nexport interface TransferData {\n step: Step\n backStep?: Step\n tokenKey?: string\n quantity?: Asset\n displaySuccessTx?: string\n memo?: string\n toAccount?: Name | undefined\n toAddress?: PublicKey | undefined\n}\n\nexport const transferData = writable({step: Step.Recipient})\n","import {writable, get} from 'svelte/store'\nimport {Asset, UInt64, LinkSession} from 'anchor-link'\nimport type {ChainConfig} from '~/config'\nimport {activeBlockchain, activeSession} from '~/store'\n\nlet interval: any\n\nexport const txFee = writable(undefined)\n\nexport function syncTxFee() {\n interval = setInterval(() => {\n fetchTxFee().catch((error) => {\n console.warn('An error occured while fetching FIO tx fee amount', error)\n })\n }, 15 * 60 * 1000)\n}\n\nexport function stopSyncTxFee() {\n clearInterval(interval)\n}\n\nexport async function fetchTxFee() {\n const session: LinkSession | undefined = get(activeSession)\n const blockchain: ChainConfig = get(activeBlockchain)\n\n let fee: Asset | undefined\n\n if (blockchain.id === 'fio') {\n const fees = await session?.client.v1.chain.get_table_rows({\n code: 'fio.fee',\n table: 'fiofees',\n scope: 'fio.fee',\n key_type: 'i64',\n index_position: 'primary',\n lower_bound: UInt64.from(5),\n upper_bound: UInt64.from(5),\n limit: 1,\n })\n\n fee = Asset.fromUnits(fees?.rows[0].suf_amount || 0, blockchain.coreTokenSymbol)\n }\n\n txFee.set(fee)\n}\n","\n\n\n\n
\n \n\n","\n\n
\n","import {AnyAction, APIClient, BlockTimestamp, Checksum256, Struct, UInt32} from '@greymass/eosio'\nimport {readable, ReadableResult} from 'svelte-result-store'\n\nimport {getClient} from '~/api-client'\nimport type {ChainConfig} from '~/config'\n\nexport interface TransactionStatus {\n status: 'pending' | 'executed' | 'irreversible'\n info?: TransactionInfo\n block_num?: UInt32\n block_time?: BlockTimestamp\n until_irreversible?: number\n}\n\nexport function followTransaction(id: Checksum256, chain: ChainConfig) {\n const client = getClient(chain)\n const ctx: PollContext = {interval: 10 * 1000}\n const tx = pollStore(null, () => getTransaction(id, client), ctx)\n return tx.map((result) => {\n if (result.value) {\n const {last_irreversible_block, block_num, trx: info, block_time} = result.value\n const until_irreversible = Math.max(\n 0,\n Number(block_num) - Number(last_irreversible_block)\n )\n const irreversible = until_irreversible === 0\n if (irreversible) {\n // stop polling once we have an irreversible transaction\n ctx.stop!()\n }\n return {\n value: {\n block_num,\n block_time,\n until_irreversible,\n info,\n status: irreversible ? 'irreversible' : info.receipt.status,\n },\n }\n }\n // unable to find tx, could try to parse the error here but our light api is\n // not consistent with nodeos api so it's a bit of a pain. for now assume any\n // error is a transaction not found\n return {\n value: {\n status: 'pending',\n },\n }\n })\n}\n\nexport function exporerUrl(id: Checksum256, chain: ChainConfig) {\n return `${chain.bloksUrl}/transaction/${id}`\n}\n\ninterface PollContext {\n interval: number\n stop?: () => void\n}\n\nfunction pollStore(initial: T, fn: () => Promise, ctx: PollContext): ReadableResult {\n return readable({value: initial}, (set, error) => {\n let running = true\n let timer: any\n const run = () => {\n const start = Date.now()\n fn()\n .then(set)\n .catch(error)\n .finally(() => {\n if (running) {\n const delta = Date.now() - start\n timer = setTimeout(run, Math.max(0, ctx.interval - delta))\n }\n })\n }\n run()\n ctx.stop = () => {\n running = false\n clearTimeout(timer)\n }\n return ctx.stop\n })\n}\n\n// FUTURE: this should be part of cores default api interfaces\ninterface TransactionTrace {}\ninterface TransactionReceipt {\n cpu_usage_us: number\n net_usage_words: number\n status: string\n}\ninterface TransactionInfo {\n receipt: TransactionReceipt\n trx: {\n actions: AnyAction[]\n context_free_actions: AnyAction[]\n context_free_data: []\n delay_sec: number\n expiration: string\n max_cpu_usage_ms: number\n max_net_usage_words: number\n ref_block_num: number\n ref_block_prefix: number\n signatures: string[]\n }\n}\n@Struct.type('get_transaction_response')\nclass GetTransactionResponse extends Struct {\n @Struct.field(Checksum256) id!: Checksum256\n @Struct.field(UInt32) block_num!: UInt32\n @Struct.field(BlockTimestamp) block_time!: BlockTimestamp\n @Struct.field(UInt32) last_irreversible_block!: UInt32\n @Struct.field('any?') traces?: TransactionTrace[]\n @Struct.field('any') trx!: TransactionInfo\n}\n\nasync function getTransaction(id: Checksum256, client: APIClient) {\n return client.call({\n path: '/v1/history/get_transaction',\n params: {traces: false, id},\n responseType: GetTransactionResponse,\n })\n}\n","\n\n\n\n
\n
\n Status\n \n {status.status}\n {#if status.status == 'executed'}\n     irreversible in ~{Math.ceil(countdown / 5) * 5 || 5}s\n {/if}\n \n
\n {#if status.block_num}\n
\n Block Number\n \n {bnFormatter.format(Number(status.block_num))}\n \n
\n {/if}\n {#if status.block_time}\n
\n Block Time\n \n {dateFormatter.format(status.block_time.toDate())}\n \n
\n {/if}\n {#if status.info}\n
\n Resource Usage\n \n CPU {(status.info.receipt.cpu_usage_us / 1000).toFixed(2)}ms\n \n     NET {status.info.receipt.net_usage_words * 8} bytes\n \n
\n {/if}\n
\n","\n\n\n\n
\n    {JSON.stringify(status, null, 4)}\n
\n","\n\n\n\n{#if $transaction_id}\n \n{:else if error}\n \n
\n \n

Transaction Failed

\n

{errorMessage}

\n
\n
\n {#if retryCallback}\n
\n
\n{:else}\n
\n \n \n{/if}\n","\n\n\n\n
\n \n
\n","\n\n\n\n\n","\n\n\n\n{#if !!errorMessage}\n
\n

\n {errorMessage}\n

\n
\n{/if}\n","\n\n\n\n
\n \n \n
\n","\n\n\n\n\n","export function validatePresence(value: string) {\n if (value.length === 0) {\n throw {\n valid: false,\n message: undefined,\n }\n }\n}\n","import {PublicKey} from 'anchor-link'\n\nexport function validatePublicKey(value: string) {\n try {\n PublicKey.from(value)\n } catch (error) {\n throw {\n valid: false,\n message: 'Invalid public key.',\n }\n }\n}\n","\n\n\n\n\n","\n\n\n\n
\n {#if balance && token}\n
\n To\n {#if $activeBlockchain && $activeBlockchain.id === 'fio'}\n \n {:else}\n \n {/if}\n \n {#if loading}\n \n {/if}\n {#if $transferData.backStep}\n Done\n {:else}\n Next\n {/if}\n \n \n {:else}\n No balance for this token to send!\n {/if}\n
\n","import {Asset} from '@greymass/eosio'\n\nexport function validateBalance(value: string, balance: Asset) {\n const {units} = Asset.from(Number(value), balance.symbol)\n if (Number(units) > Number(balance.units)) {\n throw {\n valid: false,\n message: 'Insufficient funds available.',\n }\n }\n}\n\nexport function validateIsNumber(value: string, symbol: Asset.Symbol) {\n const {units} = Asset.from(Number(value), symbol)\n const unitsAreNotNumber = isNaN(Number(units))\n\n if (unitsAreNotNumber) {\n throw {\n valid: false,\n message: 'Should be a number.',\n }\n }\n}\n\nexport function validateNonZero(value: string, symbol: Asset.Symbol) {\n const asset = Asset.from(Number(value), symbol)\n const isLessThanZero = asset.value <= 0\n\n if (isLessThanZero) {\n throw {\n valid: false,\n message: 'Should be greater than zero.',\n }\n }\n}\n","\n\n\n\n\n","\n\n\n\n{#if $display}\n
\n
\n {#if header}\n
\n

\n {header}\n

\n
\n {/if}\n
\n \n
\n {#if !hideCloseButton}\n
\n \n
\n {/if}\n
\n{/if}\n","\n\n\n\n\n
($displayModal = false)} class=\"close-button\">\n \n
\n

Select Token

\n
\n \n \n
\n \n \n \n \n \n\n {#if filteredTokens.length > 0}\n {#each filteredTokens as token}\n \n \n \n {/each}\n {:else}\n \n \n \n {/if}\n
Token Balance
\n changeToken(token)}\n {token}\n isTableRow\n />\n
\n

No tokens found...

\n
\n
\n
\n\n ($displayModal = true)} token={selectedToken} />\n","\n\n\n\n
\n {#if $balance}\n
\n Token\n
\n \n
\n Amount\n \n
\n {#if token && token.price}\n
≈ $ {(Number(amount) * token.price).toFixed(2)} USD
\n {/if}\n
\n Entire Balance\n
\n
\n \n {/if}\n \n {#if $transferData.backStep}\n Done\n {:else}\n Continue\n {/if}\n \n
\n","\n\n\n\n
\n \n
\n","\n\n\n\n
\n \n
\n","\n\n\n\n\n
\n

{header}

\n {#if subheader}\n

{subheader}

\n {/if}\n
\n\n
\n \n
\n {#if changeStep}\n \n {/if}\n
\n","\n\n\n\n\n {toAddress.toLegacyString($activeBlockchain?.coreTokenSymbol.name)}\n\n","\n\n\n {toAccount}\n\n","\n\n\n\n\n
\n \n \n \n {quantity}\n
\n {#if usd}\n
≈ $ {usd} USD
\n {/if}\n
\n","\n\n\n\n\n {txFee}\n\n\n\n {total}\n\n","\n\n\n\n\n{#if $transferData.toAddress}\n \n{/if}\n{#if $transferData.toAccount}\n \n{/if}\n{#if $transferData.quantity}\n \n{/if}\n{#if $transferData.quantity && $txFee}\n \n{/if}\n{#if $activeBlockchain && $activeBlockchain.id !== 'fio'}\n
\n Memo (Optional)\n
\n
\n \n
\n{/if}\n\n","\n\n\n\n\n