{"version":3,"file":"index.058ea033.js","sources":["../../vite/modulepreload-polyfill","../../src/util/belt.ts","../../src/util/dom.ts","../../src/state/path.ts","../../src/state/manager.ts","../../src/state/router.ts","../../src/asset/action/copy.svg?raw","../../src/ui/Address.svelte","../../src/ui/Field.svelte","../../src/asset/vendor/logo.svg?raw","../../src/asset/nav/drop-down.svg?raw","../../src/asset/nav/checked-circle.svg?raw","../../src/ui/Put.svelte","../../src/objects/_core.ts","../../src/objects/account.ts","../../src/objects/chain.ts","../../src/objects/contact.ts","../../src/objects/holding.ts","../../src/objects/icon.ts","../../src/objects/tag.ts","../../src/objects/family.ts","../../src/objects/token.ts","../../src/objects/ibct.ts","../../src/type/snip20.ts","../../src/objects/txn.ts","../../src/objects/nft.ts","../../src/objects/network.ts","../../src/objects/contract.ts","../../src/objects/site.ts","../../src/sim/data.ts","../../src/ui/Close.svelte","../../src/asset/action/add-small.svg?raw","../../src/ui/OverlaySelect.svelte","../../src/ui/Row.svelte","../../src/ui/Pfp.svelte","../../src/ui/Header.svelte","../../src/asset/action/send.svg?raw","../../src/asset/action/recv.svg?raw","../../src/ui/StarSelect.svelte","../../src/ui/AssetSelect.svelte","../../src/ui/AmountInput.svelte","../../src/asset/nav/checked.svg?raw","../../src/asset/nav/unchecked.svg?raw","../../src/ui/CheckboxField.svelte","../../src/ui/InlineContactSelection.svelte","../../src/ui/InlineTokenAmount.svelte","../../src/screen/Execute.svelte","../../src/screen/Send.svelte","../../src/screen/TokenEdit.svelte","../../src/screen/DeadEnd.svelte","../../src/ui/Info.svelte","../../src/ui/PopupReceive.svelte","../../src/screen/Holdings.svelte","../../src/screen/TokenHoldingView.svelte","../../src/ui/HoldingsList.svelte","../../src/ui/IconEditor.svelte","../../src/ui/MnemonicTable.svelte","../../src/asset/nav/expand.svg?raw","../../src/asset/nav/tokens.svg?raw","../../src/asset/nav/history.svg?raw","../../src/asset/nav/nfts.svg?raw","../../src/asset/nav/menu.svg?raw","../../src/ui/Nav.svelte","../../src/asset/action/add.svg?raw","../../src/asset/action/wrap.svg?raw","../../src/asset/action/unwrap.svg?raw","../../src/ui/Portrait.svelte","../../src/ui/Progress.svelte","../../src/ui/RecipientSelectItem.svelte","../../src/ui/RecipientSelectSelection.svelte","../../src/ui/RecipientSelect.svelte","../../src/ui/Screen.svelte","../../src/ui/SenderSelect.svelte","../../src/asset/action/edit-small.svg?raw","../../src/ui/SubHeader.svelte","../../src/ui/PopupTagsSelect.svelte","../../src/ui/Tags.svelte","../../src/asset/nav/more-vert.svg?raw","../../src/screen/TxnView.svelte","../../src/ui/TxnList.svelte","../../src/screen/ContactEdit.svelte","../../src/screen/ContactView.svelte","../../src/ui/ContactList.svelte","../../src/screen/Contacts.svelte","../../src/screen/NetworkEdit.svelte","../../src/screen/Networks.svelte","../../src/screen/InitCreateEdit.svelte","../../src/screen/InitCreateVerify.svelte","../../src/screen/InitCreate.svelte","../../src/screen/Init.svelte","../../src/screen/Locked.svelte","../../src/screen/Welcome.svelte","../../src/screen/AccountEdit.svelte","../../src/screen/AccountView.svelte","../../src/screen/NftView.svelte","../../src/ui/GenericRow.svelte","../../src/screen/Search.svelte","../../src/screen/AccountCreate.svelte","../../src/screen/Accounts.svelte","../../src/ui/Collapsable.svelte","../../src/ui/GalleryCollection.svelte","../../src/screen/Gallery.svelte","../../src/screen/History.svelte","../../src/screen/Sites.svelte","../../src/screen/Mvp_No.svelte","../../src/screen/Mvp_3.svelte","../../src/screen/Mvp_2.svelte","../../src/asset/vendor/starshell-title-large.svg?raw","../../src/screen/Mvp_1.svelte","../../src/app.ts","../../src/ui/SideMenu.svelte","../../src/ui/Overscroll.svelte","../../src/ui/Popup.svelte","../../src/asset/vendor/starshell-title.svg?raw","../../src/ui/VendorMenu.svelte","../../src/component/System.svelte","../../src/component/Simulator.svelte","../../src/main.ts"],"sourcesContent":["const p = function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n};__VITE_IS_MODERN__&&p();","\ntype ReduceParameters = Parameters['reduce']>;\n\nexport const F_NOOP = () => {};\n\nexport function fold(a_in: ValueType[], f_fold: (z_value: ValueType) => Record): Record {\n\tconst h_out = {};\n\tfor(const z_each of a_in) {\n\t\tObject.assign(h_out, f_fold(z_each));\n\t}\n\treturn h_out;\n}\n\nexport const ode = Object.entries;\n\nexport function oder<\n\tOutType extends any,\n\tValueType extends any,\n>(h_thing: Record, f_reduce: ReduceParameters[0], w_init: OutType): OutType {\n\treturn ode(h_thing).reduce(f_reduce, w_init) as OutType;\n}\n\n/**\n * Reduce object entries to array via concatenation\n */\nexport function oderac<\n\tOutType extends any,\n\tValueType extends any,\n>(h_thing: Record, f_concat: (si_key: string, w_value: ValueType) => OutType, b_add_undefs=false): OutType[] {\n\treturn ode(h_thing).reduce((a_out, [si_key, w_value]) => {\n\t\treturn [\n\t\t\t...a_out,\n\t\t\tf_concat(si_key, w_value),\n\t\t];\n\t}, [] as OutType[]);\n}\n\n/**\n * Reduce object entries to array via flattening\n */\nexport function oderaf<\n\tOutType extends any,\n\tValueType extends any,\n>(h_thing: Record, f_concat: (si_key: string, w_value: ValueType) => OutType[]): OutType[] {\n\treturn ode(h_thing).reduce((a_out, [si_key, w_value]) => [\n\t\t...a_out,\n\t\t...f_concat(si_key, w_value),\n\t], [] as OutType[]);\n}\n\n/**\n * Reduce object entries to object via mapping\n */\nexport function oderom<\n\tOutType extends any,\n\tValueType extends any,\n>(h_thing: Record, f_concat: (si_key: string, w_value: ValueType) => Record): Record {\n\treturn ode(h_thing).reduce((h_out, [si_key, w_value]) => ({\n\t\t...h_out,\n\t\t...f_concat(si_key, w_value),\n\t}), {} as Record);\n}\n\nexport function timeout(xt_wait: number): Promise {\n\treturn new Promise((fk_resolve) => {\n\t\tsetTimeout(() => {\n\t\t\tfk_resolve();\n\t\t}, xt_wait);\n\t});\n};\n\nexport function forever(): Promise {\n\treturn new Promise(() => {});\n}\n\nexport function microtask(): Promise {\n\treturn new Promise((fk_resolve) => {\n\t\tqueueMicrotask(() => {\n\t\t\tfk_resolve();\n\t\t});\n\t});\n}\n\nexport const proper = (s: string) => s[0].toUpperCase() + s.slice(1);\n\n\nexport function shuffle(a_items: T[]): T[] {\n\tlet i_item = a_items.length;\n\n\twhile(i_item > 0) {\n\t\tconst i_swap = Math.floor(Math.random() * i_item--);\n\t\tconst w_item = a_items[i_item];\n\t\ta_items[i_item] = a_items[i_swap];\n\t\ta_items[i_swap] = w_item;\n\t}\n\n\treturn a_items;\n}\n\n\nexport function objects_might_differ(h_a: Record, h_b: Record) {\n\tconst a_keys_a = Object.keys(h_a);\n\tconst a_keys_b = Object.keys(h_b);\n\n\tconst nl_keys = a_keys_a.length;\n\n\tif(nl_keys !== a_keys_b.length) return true;\n\n\tfor(const si_key in h_a) {\n\t\tif(h_b[si_key] !== h_a[si_key]) return true;\n\t}\n\n\treturn false;\n}\n\n\nexport class Killables {\n\tprotected _as_intervals = new Set();\n\tprotected _as_timeouts = new Set();\n\n\tconstructor() {\n\n\t}\n\n\taddInterval(fk_action: VoidFunction, xtl_interval: number): number {\n\t\tconst i_handle = window.setInterval(fk_action, xtl_interval);\n\n\t\tthis._as_intervals.add(i_handle);\n\n\t\treturn i_handle;\n\t}\n\n\taddTimeout(fk_action: VoidFunction, xtl_timeout: number): number {\n\t\tconst i_handle = window.setTimeout(() => {\n\t\t\t// auto-delete\n\t\t\tthis.delTimeout(i_handle);\n\n\t\t\t// call action\n\t\t\tfk_action();\n\t\t}, xtl_timeout);\n\n\t\tthis._as_timeouts.add(i_handle);\n\n\t\treturn i_handle;\n\t}\n\n\tdelInterval(i_handle: number): void {\n\t\twindow.clearInterval(i_handle);\n\n\t\tthis._as_intervals.delete(i_handle);\n\t}\n\n\tdelTimeout(i_handle: number): void {\n\t\twindow.clearTimeout(i_handle);\n\n\t\tthis._as_timeouts.delete(i_handle);\n\t}\n\n\tkillAll(): void {\n\t\tfor(const i_handle of this._as_intervals) {\n\t\t\tthis.delInterval(i_handle);\n\t\t}\n\n\t\tfor(const i_handle of this._as_timeouts) {\n\t\t\tthis.delTimeout(i_handle);\n\t\t}\n\t}\n}\n\n","import { ode } from './belt';\nimport type { JsonValue } from './types';\n\ntype Hash = Record;\n\ntype Split = S extends `${infer T}${D}${infer U}` ? [T, ...Split] : [S];\n\ntype TakeLast = V extends []\n\t? never\n\t: V extends [string]\n\t\t? V[0]\n\t\t: V extends [string, ...infer R]\n\t\t\t? TakeLast\n\t\t\t: never;\n\ntype TrimLeft = V extends ` ${infer R}` ? TrimLeft : V;\n\ntype TrimRight = V extends `${infer R} ` ? TrimRight : V;\n\ntype Trim = TrimLeft>;\n\ntype StripModifier = V extends `${infer L}${M}${infer A}` ? L : V;\n\ntype StripModifiers = StripModifier<\n\tStripModifier<\n\t\tStripModifier<\n\t\t\tStripModifier, '#'\n\t\t>,\n\t'['>,\n':'>;\n\ntype TakeLastAfterToken = StripModifiers<\n\tTakeLast<\n\t\tSplit<\n\t\t\tTrim, T\n\t\t>\n\t>\n>;\n\ntype GetLastElementName = TakeLastAfterToken<\n\tTakeLastAfterToken,\n\t'>'\n>;\n\ntype GetEachElementName = V extends []\n\t? L\n\t: V extends [string]\n\t\t? [...L, GetLastElementName]\n\t\t: V extends [string, ...infer R]\n\t\t\t? GetEachElementName]>\n\t\t\t: [];\n\ntype GetElementNames = GetEachElementName>;\n\ntype ElementByName = V extends keyof HTMLElementTagNameMap\n\t? HTMLElementTagNameMap[V]\n\t: V extends keyof SVGElementTagNameMap\n\t\t? SVGElementTagNameMap[V]\n\t\t: Element;\n\ntype MatchEachElement = V extends []\n\t? L\n\t: V extends [string]\n\t\t? L | ElementByName\n\t\t: V extends [string, ...infer R]\n\t\t\t? MatchEachElement>\n\t\t\t: L;\n\ntype QueryResult = MatchEachElement>;\n\nexport const qs = (dm_node: ParentNode | HTMLElement, sq_selector: T): QueryResult => dm_node.querySelector(sq_selector) as QueryResult;\n\nexport const qsa = (dm_node: ParentNode | HTMLElement, sq_selector: T): QueryResult[] => Array.prototype.slice.call(dm_node.querySelectorAll(sq_selector), 0);\n\nexport function dd(\n\ts_tag: string,\n\th_attrs: Record = {},\n\ta_children: (Element | string)[] = [],\n): T {\n\tconst dm_node = document.createElement(s_tag);\n\n\tfor(const si_attr in h_attrs) {\n\t\tdm_node.setAttribute(si_attr, h_attrs[si_attr]+'');\n\t}\n\n\tfor(const w_child of a_children) {\n\t\tdm_node.append(w_child);\n\t}\n\n\treturn dm_node as T;\n}\n\n\nconst S_UUID_V4 = 'xxxxxxxx_xxxx_4xxx_yxxx_xxxxxxxxxxxx';\nconst R_UUID_V4 = /[xy]/g;\n\nexport const uuid_v4 = crypto.randomUUID? () => crypto.randomUUID(): (): string => {\n\tlet dt_now = Date.now();\n\tif('undefined' !== typeof performance) dt_now += performance.now();\n\treturn S_UUID_V4.replace(R_UUID_V4, (s) => {\n\t\tconst x_r = (dt_now + (Math.random()*16)) % 16 | 0;\n\t\tdt_now = Math.floor(dt_now / 16);\n\t\treturn ('x' === s? x_r: ((x_r & 0x3) | 0x8)).toString(16);\n\t});\n};\n\nexport function read_cookie(): Record {\n\treturn document.cookie.split(';').reduce((h_out, s_cookie) => {\n\t\tconst a_split = s_cookie.trim().split('=');\n\t\treturn {\n\t\t\t...h_out,\n\t\t\t[a_split[0]]: a_split.slice(1).join('='),\n\t\t};\n\t}, {});\n}\n\nexport function read_cookie_json(si_key: string): T | null {\n\tconst h_cookie = read_cookie();\n\n\tif(!(si_key in h_cookie)) return null;\n\n\tlet w_value: JsonValue;\n\ttry {\n\t\tw_value = JSON.parse(h_cookie[si_key]);\n\t}\n\tcatch(e_parse) {\n\t\tconsole.error(`failed to parse cookie JSON value associated with key '${si_key}'`);\n\t\tdelete_cookie(si_key);\n\t}\n\n\treturn w_value as T;\n}\n\nexport function write_cookie(h_cookie: Record, xt_expires: number) {\n\tconst h_serialize: Record = {};\n\n\tfor(const [si_key, z_value] of ode(h_cookie)) {\n\t\tif('string' === typeof z_value) {\n\t\t\th_serialize[si_key] = z_value;\n\t\t}\n\t\telse if(null === z_value || 'undefined' === typeof z_value) {\n\t\t\tdelete_cookie(si_key);\n\t\t}\n\t\telse {\n\t\t\th_serialize[si_key] = JSON.stringify(z_value);\n\t\t}\n\t}\n\n\tdocument.cookie = Object.entries({\n\t\t...h_serialize,\n\t\t'max-age': ''+xt_expires,\n\t})\n\t\t.map(([si_key, s_value]) => `${si_key}=${s_value}`)\n\t\t.join('; ');\n}\n\nexport function delete_cookie(si_cookie: string) {\n\treturn write_cookie({\n\t\t[si_cookie]: '',\n\t}, 0);\n}","import type { Plural } from \"#/util/types\";\n\nexport const P_WISPR_ROOT = 'wispr://root/';\n\nexport type WisprPath = `/${string}`;\n\nexport type WisprUri<\n\tsr_path extends string=string,\n> = `wispr://root/${sr_path}`;\n\nexport type WisprRef = WisprPath | WisprUri;\n\n\nconst R_AFTER_PATH = /[?#].*$/;\n\nconst R_WISPR_ORIGIN = /^wispr:\\/\\/root\\//;\n\nexport function wispr_path(sx_ref: WisprRef): WisprPath {\n\treturn sx_ref.replace(R_WISPR_ORIGIN, '/').replace(R_AFTER_PATH, '') as WisprPath;\n}\n\n\nexport type WisprResUri<\n\ts_class extends string,\n> = `${typeof P_WISPR_ROOT}${Plural}/${string}/`;\n\n\nconst R_PARSE_PATH_CHAIN = /^\\/(\\w+)\\/([^/?#:]+)(.*)$/;\n\nexport function parse_path_pair(sr_path: string, si_key: string): [string, string] {\n\tconst m_chain = R_PARSE_PATH_CHAIN.exec(sr_path);\n\n\tif(!m_chain) throw new Error(`Failed to parse ${si_key} from path: <${sr_path}>`);\n\t\n\tif(si_key !== m_chain[1]) throw new Error(`Mismatched pair key: '${si_key}' !== '${m_chain[1]}'`);\n\n\treturn [m_chain[2], m_chain[3]];\n}\n\n","import { ThreadId } from '#/app';\nimport { objects_might_differ, ode } from '#/util/belt';\nimport { dd, qsa } from '#/util/dom';\nimport type { Hash } from '#/util/types';\nimport type {\n\tSvelteComponent,\n} from 'svelte';\n\nimport {\n\tderived,\n\twritable,\n\ttype Readable,\n\ttype Writable,\n} from 'svelte/store';\n\nimport {\n\twispr_path,\n\ttype WisprPath,\n\ttype WisprRef,\n} from './path';\n\nimport type {\n\tRouter,\n\tWisprScreen,\n} from './router';\n\n\nexport interface WritableSync extends Writable {\n\tget(): T;\n}\n\nexport function writableSync(w_value: T): Writable & {get(): T} {\n\tconst yw_original = writable(w_value);\n\n\treturn Object.assign(Object.create(yw_original), {\n\t\tset(w_set: T) {\n\t\t\tw_value = w_set;\n\t\t\treturn yw_original.set(w_set);\n\t\t},\n\t\tget(): T {\n\t\t\treturn w_value;\n\t\t},\n\t});\n}\n\nexport interface DerivedSync extends Readable {\n\tget(): T;\n}\n\nexport function derivedSync<\n\tT,\n\tyw_src extends WritableSync,\n>(yw_src: yw_src, f_transform: (w_value: T) => T): Readable & {get(): T} {\n\tif(Array.isArray(yw_src)) {\n\t\treturn Object.assign(Object.create(derived(yw_src, f_transform)), {\n\t\t\tget(): T {\n\t\t\t\treturn f_transform(yw_src);\n\t\t\t},\n\t\t});\n\t}\n\telse {\n\t\treturn Object.assign(Object.create(derived(yw_src, f_transform)), {\n\t\t\tget(): T {\n\t\t\t\treturn f_transform(yw_src.get());\n\t\t\t},\n\t\t});\n\t}\n}\n\ntype UnknownObject = Record;\n\nlet c_states = 0;\n\nexport class State {\n\tprotected _sr_path: WisprPath;\n\tprotected _sx_pattern: WisprPath;\n\tprotected _yc_component: SvelteComponent;\n\tprotected _gc_props: UnknownObject;\n\n\tprotected _dm_state: HTMLElement;\n\tprotected _i_state = c_states++;\n\n\tconstructor(sr_path: WisprRef, yc_component: SvelteComponent, sx_pattern: WisprPath, gc_props: UnknownObject, dm_state: HTMLElement) {\n\t\tthis._sr_path = wispr_path(sr_path);\n\t\tthis._sx_pattern = sx_pattern || this._sr_path;\n\t\tthis._yc_component = yc_component;\n\t\tthis._gc_props = gc_props;\n\t\tthis._dm_state = dm_state;\n\t}\n\n\tget id(): number {\n\t\treturn this._i_state;\n\t}\n\n\tget path(): WisprPath {\n\t\treturn this._sr_path;\n\t}\n\n\tget pattern(): WisprPath {\n\t\treturn this._sx_pattern;\n\t}\n\n\tget component(): SvelteComponent {\n\t\treturn this._yc_component;\n\t}\n\n\tget props(): UnknownObject {\n\t\treturn this._gc_props;\n\t}\n\n\tget dom(): HTMLElement {\n\t\treturn this._dm_state;\n\t}\n}\n\nexport class StateThread {\n\t// protected _k_state_0: State;\n\tprotected _a_history: State[] = [];\n\n\tprotected _dm_thread: HTMLElement;\n\n\tprotected _gc_default: NewStateConfig;\n\n\tconstructor(si_thread: ThreadId, gc_default: NewStateConfig) {\n\t\tthis._gc_default = gc_default;\n\t\t\n\t\tthis._dm_thread = dd('div', {\n\t\t\tclass: 'thread',\n\t\t\t'data-thread-id': si_thread,\n\t\t\tstyle: `z-index: 100;`,\n\t\t});\n\n\t\t// this._k_state_0 = k_state_0;\n\n\t\t// this._a_history = [\n\t\t// \tthis._k_state_0,\n\t\t// ];\n\t}\n\n\tget default(): NewStateConfig {\n\t\treturn this._gc_default;\n\t}\n\n\tget history(): State[] {\n\t\treturn this._a_history;\n\t}\n\n\tget state(): State {\n\t\treturn this._a_history[0];\n\t}\n\n\tget dom(): HTMLElement {\n\t\treturn this._dm_thread;\n\t}\n\n\treset(ks_new: State, b_keep_top=false) {\n\t\t// ref history\n\t\tconst a_history = this._a_history;\n\n\t\t// // keep top is enabled; grab src style\n\t\t// const d_style = b_keep_top? a_history[0].dom.style: null;\n\n\t\t// drop all stale states in history\n\t\tfor(let i_state=b_keep_top? 1: 0; i_state {path: WisprPath, params: {}});\n\tscreen: WisprScreen;\n\tprops: {};\n\tpattern?: WisprPath;\n}\n\nnamespace Hooks {\n\texport interface Push {\n\t\t(this: StateManager, ks_src: State, ks_dst: State): void | Promise;\n\t}\n\n\texport interface Pop {\n\t\t(this: StateManager, ks_src: State, ks_dst: State, b_bypass?: boolean): void | Promise;\n\t}\n\n\texport interface Arrive {\n\t\t(this: StateManager, ks_src: State, k_dst: State, si_thread_src: string, s_transition: string): void | Promise;\n\t}\n}\n\ninterface ThreadSpawn {\n\t(h_params: Hash): NewStateConfig;\n}\n\nexport interface ManagerConfig {\n\tcontainer: HTMLElement;\n\trouter: Router;\n\tthreads: {default: ThreadSpawn} & Record;\n\n\tpush?: Hooks.Push;\n\tpop?: Hooks.Pop;\n\tarrive?: Hooks.Arrive;\n}\n\nconst F_NOOP = () => {};\n\nfunction string_or_call<\n\ts_value extends string,\n>(z_value: s_value | ((...args: any[]) => s_value), ...a_args: any[]) {\n\treturn 'string' === typeof z_value? z_value: z_value(...a_args);\n}\n\nfunction set_zindex_relatively(dm_src: HTMLElement, dm_dst: HTMLElement, n_order: number) {\n\tconst iz_src = +dm_src.style.zIndex;\n\tconst iz_dst = iz_src + n_order;\n\tdm_src.style.zIndex = iz_src+'';\n\tdm_dst.style.zIndex = iz_dst+'';\n}\n\nexport class StateManager {\n\tprotected _h_threads: Partial> = {};\n\tprotected _h_thread_spawners: Record;\n\tprotected _dm_threads!: HTMLElement;\n\tprotected _k_router: Router;\n\n\tprotected _dm_buffer = dd('div');\n\n\tprotected _gc_manager: ManagerConfig;\n\n\tprotected _f_push: Hooks.Push;\n\tprotected _f_pop: Hooks.Pop;\n\tprotected _f_arrive: Hooks.Arrive;\n\n\tprotected _si_thread: ThreadId = ThreadId.DEFAULT;\n\n\tprotected _c_thread_z = 200;\n\n\tconstructor(gc_manager: ManagerConfig) {\n\t\t// save config\n\t\tthis._gc_manager = gc_manager;\n\n\t\t// save thread container dom\n\t\tthis._dm_threads = gc_manager.container;\n\n\t\t// save router\n\t\tthis._k_router = gc_manager.router;\n\n\t\t// save hooks\n\t\tthis._f_push = gc_manager.push || F_NOOP as Hooks.Push;\n\t\tthis._f_pop = gc_manager.pop || F_NOOP as Hooks.Pop;\n\t\tthis._f_arrive = gc_manager.arrive || F_NOOP as Hooks.Arrive;\n\n\t\t// set thread spawners\n\t\tthis._h_thread_spawners = gc_manager.threads;\n\n\t\t// create new thread\n\t\tthis._new_thread(ThreadId.DEFAULT);\n\t}\n\n\t_new_thread(si_thread: ThreadId, h_params: Hash={}): StateThread {\n\t\t// create new thread\n\t\tconst kt_new = new StateThread(si_thread, this._h_thread_spawners[si_thread](h_params));\n\t\t\n\t\t// save to threads\n\t\tthis._h_threads[si_thread] = kt_new;\n\n\t\t// append thread to container\n\t\tthis._dm_threads.appendChild(kt_new.dom);\n\n\t\t// make new state from default and merge params\n\t\tconst ks_default = this._new_state({\n\t\t\t...kt_new.default,\n\t\t\tprops: {\n\t\t\t\t...kt_new.default.props,\n\t\t\t\t...h_params,\n\t\t\t},\n\t\t});\n\n\t\t// push to history\n\t\tkt_new.push(ks_default);\n\n\t\t// return new thread\n\t\treturn kt_new;\n\t}\n\n\talter_thread(si_thread: ThreadId, h_params: Hash={}): boolean {\n\t\t// ref current thread\n\t\tconst kt_src = this.thread;\n\n\t\t// ref previous state\n\t\tlet ks_src = this.state;\n\n\t\t// lookup existing thread\n\t\tlet kt_dst = this._h_threads[si_thread];\n\n\t\t// thread change\n\t\tif(si_thread !== this._si_thread) {\n\t\t\t// prev thread\n\t\t\tconst si_thread_prev = this._si_thread;\n\n\t\t\t// no existing thread; create new one\n\t\t\tif(!kt_dst) {\n\t\t\t\tthis._new_thread(si_thread, h_params)\n\t\t\t}\n\t\t\t// params differ\n\t\t\telse if(objects_might_differ(kt_dst.default.props, h_params)) {\n\t\t\t\t// create new state\n\t\t\t\tconst ks_dst = this._new_state({\n\t\t\t\t\t...kt_dst.default,\n\t\t\t\t\tprops: h_params,\n\t\t\t\t});\n\n\t\t\t\t// reset thread history\n\t\t\t\tkt_dst.reset(ks_dst, true);\n\n\t\t\t\t// place incoming state below\n\t\t\t\tset_zindex_relatively(ks_src.dom, ks_dst.dom, -1);\n\t\t\t}\n\n\t\t\t// update thread\n\t\t\tthis._si_thread = si_thread;\n\n\t\t\t// place thread in front\n\t\t\tthis.thread.show()\n\t\t\tthis.thread.dom.style.zIndex = (this._c_thread_z++)+'';\n\n\t\t\t// arrive\n\t\t\tthis._arrive(ks_src, si_thread_prev, 'thread').then(() => {\n\t\t\t\t// // hide previous thread\n\t\t\t\t// if(kt_dst && kt_src && kt_src !== kt_dst) {\n\t\t\t\t// \t// debugger;\n\t\t\t\t// \t// kt_src.hide();\n\t\t\t\t// }\n\t\t\t});\n\n\t\t\treturn true;\n\t\t}\n\t\t// // same thread\n\t\t// else {\n\t\t// \t// thread default is previous in history\n\t\t// \tdebugger;\n\t\t// \tconsole.info(k_thread?.default.path);\n\t\t// }\n\n\t\treturn false;\n\t}\n\n\tprotected get thread(): StateThread {\n\t\treturn this._h_threads[this._si_thread]!;\n\t}\n\n\tget history(): State[] {\n\t\treturn this.thread.history\n\t}\n\n\tget state(): State {\n\t\treturn this.thread.state;\n\t}\n\n\tprotected get container(): HTMLElement {\n\t\treturn this._dm_threads;\n\t}\n\n\tget location(): string {\n\t\treturn this.state.path;\n\t}\n\n\trestart() {\n\t\tthis.goto(this.thread.default, true);\n\t}\n\n\treset_all_threads() {\n\t\tfor(const [si_thread, kt_each] of ode(this._h_threads)) {\n\t\t\tconst ks_default = this._new_state(kt_each.default);\n\t\t\tkt_each.reset(ks_default);\n\t\t}\n\t}\n\n\tspawn_component(dc_spawn: WisprScreen, gc_props: {}={}) {\n\t\tconst yc_spawn = new dc_spawn({\n\t\t\ttarget: this._dm_buffer,\n\t\t\tprops: {\n\t\t\t\t...gc_props,\n\t\t\t},\n\t\t});\n\n\t\treturn yc_spawn;\n\t}\n\n\tprotected _new_state(gc_state: NewStateConfig): State {\n\t\t// spawn component\n\t\tconst yc_spawn = this.spawn_component(gc_state.screen, gc_state.props);\n\n\t\t// fetch dom\n\t\tconst dm_state = this._dm_buffer.firstElementChild as HTMLElement;\n\t\tif(!dm_state) {\n\t\t\tthrow new Error(`No DOM element was created during component spawning using: ${JSON.stringify(gc_state)}`);\n\t\t}\n\n\t\t// reset buffer\n\t\tthis._dm_buffer = dd('div');\n\n\t\t// build path\n\t\tlet gc_params = {};\n\t\tlet sr_path = gc_state.path;\n\n\t\tif('function' === typeof sr_path) {\n\t\t\t({\n\t\t\t\tparams: gc_params,\n\t\t\t\tpath: sr_path,\n\t\t\t} = sr_path(yc_spawn));\n\t\t}\n\n\t\t// return new state\n\t\treturn new State(sr_path, yc_spawn, gc_state.pattern || sr_path, {...gc_state.props, ...gc_params}, dm_state);\n\t}\n\n\tprotected async _arrive(k_previous: State, si_thread_prev='', s_transition=''): Promise {\n\t\t// arrive callback\n\t\tawait this._f_arrive(k_previous, this.state, si_thread_prev, s_transition);\n\n\t\t// // destroy previous component\n\t\t// k_previous.component.$destroy();\n\t}\n\n\tpush(gc_state: NewStateConfig): State {\n\t\t// ref previous state\n\t\tconst ks_old = this.state;\n\n\t\t// create state\n\t\tconst ks_new = this._new_state(gc_state);\n\n\t\t// push to front of history stack\n\t\tthis.thread.push(ks_new);\n\n\t\t// call hooks\n\t\tthis._f_push(ks_old, ks_new);\n\t\tthis._arrive(ks_old, '', 'push');\n\n\t\t// return new state\n\t\treturn ks_new;\n\t}\n\n\tgoto(gc_state: NewStateConfig, b_force=false): State {\n\t\t// ref previous state\n\t\tconst ks_src = this.state;\n\n\t\t// ref current thread history\n\t\tconst a_history = this.history;\n\n\t\t// make new state\n\t\tconst ks_dst = this._new_state(gc_state);\n\n\t\t// reuse previous item in thread\n\t\tif(!b_force && a_history[1] && ks_dst.path === a_history[1].path) {\n\t\t\t// destroy the new component\n\t\t\tks_dst.component.$destroy();\n\n\t\t\t// pop original\n\t\t\treturn this.pop();\n\t\t}\n\t\t// jump\n\t\telse {\n\t\t\t// destroy all components further back in the stack\n\t\t\tthis.thread.reset(ks_dst, true);\n\n\t\t\t// move dead\n\t\t\tset_zindex_relatively(ks_dst.dom, ks_src.dom, +1);\n\n\t\t\t// call hook\n\t\t\tthis._arrive(ks_src, '', 'goto').then(() => {\n\t\t\t\ttry {\n\t\t\t\t\tks_src.component.$destroy();\n\t\t\t\t}\n\t\t\t\tcatch(e_destroy) {\n\t\t\t\t\tconsole.warn(`Failed to destroy stale component belonging to State: ${ks_src.pattern}`);\n\t\t\t\t\tks_src.dom.remove();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// return new sate\n\t\t\treturn ks_dst;\n\t\t}\n\t}\n\n\tpop(b_bypass_animation: boolean=false): State {\n\t\t// too short\n\t\tif(this.history.length < 2) {\n\t\t\tthrow new Error(`Failed to pop empty history`);\n\t\t}\n\n\t\t// pop from front of stack\n\t\tconst ks_src = this.history.shift()!;\n\n\t\t// // empty history\n\t\t// if(!ks_src) {\n\t\t// \tthrow new Error(`Failed to pop empty history`);\n\t\t// }\n\n\t\t// call hooks\n\t\tthis._f_pop(ks_src, this.state, b_bypass_animation);\n\t\tthis._arrive(ks_src, '', b_bypass_animation? 'pop.bypass': 'pop').then(() => {\n\t\t\ttry {\n\t\t\t\tks_src.component.$destroy();\n\t\t\t}\n\t\t\tcatch(e_destroy) {\n\t\t\t\tconsole.error(`Failed to destroy stale component belonging to State: ${ks_src.pattern}`);\n\t\t\t}\n\t\t});\n\n\t\t// return old state\n\t\treturn ks_src;\n\t}\n}\n","import type {\n\tHash,\n} from \"#/util/types\";\n\nimport {\n\tP_WISPR_ROOT,\n\ttype WisprPath,\n\ttype WisprRef,\n\ttype WisprUri,\n} from \"./path\";\n\n\nexport enum ResourceType {\n\tOBJECT = 'object',\n\tSCREEN = 'screen',\n}\n\nexport interface WisprObject {\n\n}\n\nexport type WisprScreen<\n\tParams extends {}={},\n\tEvents extends {}={},\n\tSlots extends {}={},\n> = SvelteComponentConstructor<\n\tSvelte2TsxComponent,\n\tSvelte2TsxComponentConstructorParameters\n>;\n\n\nexport interface AnyResource {\n\ttype: ResourceType;\n};\n\nexport interface ObjectResource extends AnyResource {\n\ttype: ResourceType.OBJECT;\n\tobject: WisprObject;\n}\n\nexport interface ScreenResource extends AnyResource {\n\ttype: ResourceType.SCREEN;\n\tscreen: WisprScreen;\n}\n\nexport type Resource = ObjectResource | ScreenResource;\n\n\ntype RouteDescriptor = {\n\t[x: WisprPath]: RouteDescriptor;\n} & {\n\t// '?'?(h_params: Hash): undefined | null | WisprRef;\n\t'='?(h_params: Hash): undefined | null | WisprRef;\n\t$?: WisprScreen;\n\t_?: WisprObject;\n};\n\nexport interface Problem {\n\turl: URL;\n\tbase: WisprUri;\n\tpath: WisprPath;\n\tpattern: WisprPath;\n\tparams: Hash;\n}\n\nexport interface Resolution<\n\tdc_resource extends Resource=Resource,\n> extends Problem {\n\tresource: dc_resource;\n}\n\nexport type ResolutionAttempt = null | Resolution;\n\n\ninterface RoutePattern {\n\tid: string;\n\tpath: string | RegExp;\n\tnode: Router;\n}\n\n\nconst R_PATTERN_QUERY = /^(.+?)(?:\\?(.*))?$/;\nconst R_EXACT_PATH = /^\\/([\\w-.]*)$/;\nconst R_PATTERN_PATH = /^\\/(?:\\{((\\w+Id)|(\\w+Num))\\})$/;\n\n// interface RouterNode {\n// \t'?'?(h_params: Hash): undefined | null | string;\n// \t'='?(h_params: Hash): undefined | null | string;\n// \t_?: WisprObject,\n// \t$?: WisprScreen,\n// }\n\nconst R_PATH_PART_0 = /^\\/([^/?#:]+)(.*)$/;\n\ninterface RouterConfig {\n\tdescriptor: RouteDescriptor;\n\tparent: Router | null;\n\tpattern: string;\n}\n\nexport class Router {\n\tstatic parse(h_node: RouteDescriptor, k_parent: Router|null=null, sx_pattern: string=''): Router {\n\t\t// const k_route = new Router(h_node, k_root, a_path_parts);\n\t\tconst k_route = new Router({\n\t\t\tdescriptor: h_node,\n\t\t\tparent: k_parent,\n\t\t\tpattern: sx_pattern,\n\t\t});\n\n\t\tdelete h_node._;\n\t\tdelete h_node.$;\n\t\t// delete h_node['?'];\n\t\tdelete h_node['='];\n\n\t\tfor(const sx_route in h_node) {\n\t\t\tk_route.add(sx_route, h_node[sx_route as WisprPath]);\n\t\t}\n\n\t\treturn k_route;\n\t}\n\n\tprotected _k_parent: Router | null;\n\tprotected _sx_pattern: string;\n\n\tprotected _g_object?: WisprObject;\n\tprotected _dc_screen?: WisprScreen;\n\n\tprotected _f_redirect?: (h_params: Hash) => undefined | null | WisprRef;\n\n\tprotected _a_routes: RoutePattern[] = [];\n\tprotected _r_router: RegExp = /^\\b$/;\n\n\tprotected _hm_rmap: Map = new Map();\n\n\n\tconstructor(gc_router: RouterConfig) {\n\t\t// save parent\n\t\tthis._k_parent = gc_router.parent;\n\n\t\t// save pattern\n\t\tthis._sx_pattern = gc_router.pattern;\n\n\t\t// ref descriptor\n\t\tconst h_desc = gc_router.descriptor;\n\n\t\t// object pair\n\t\tconst g_object = this._g_object = h_desc._;\n\n\t\t// screen pair\n\t\tconst dc_screen = this._dc_screen = h_desc.$;\n\n\t\t// redirect pair\n\t\tthis._f_redirect = h_desc[\"=\"];\n\n\t\t// screen is present\n\t\tif(dc_screen) {\n\t\t\tconst hm_rmap = this.root._hm_rmap;\n\t\t\tconst a_locations = hm_rmap.get(dc_screen);\n\n\t\t\tif(a_locations) {\n\t\t\t\ta_locations.push(this);\n\t\t\t}\n\t\t\telse {\n\t\t\t\thm_rmap.set(dc_screen, [this]);\n\t\t\t}\n\t\t}\n\t}\n\n\tget parent(): Router | null {\n\t\treturn this._k_parent;\n\t}\n\n\tget root(): Router {\n\t\treturn null === this._k_parent? this: this._k_parent.root;\n\t}\n\n\tget part_pattern(): string {\n\t\treturn this._sx_pattern;\n\t}\n\n\tget path_pattern(): string {\n\t\tif(!this._k_parent) {\n\t\t\treturn '';\n\t\t}\n\t\t// else if('/' === this.part_pattern) {\n\t\t// \treturn this._k_parent.path_pattern;\n\t\t// }\n\t\telse {\n\t\t\treturn `${this._k_parent.path_pattern}${this.part_pattern}`;\n\t\t}\n\t}\n\n\tlookup_screen(dc_screen: WisprScreen): Router {\n\t\tconst a_routers = this.root._hm_rmap.get(dc_screen);\n\n\t\tif(!a_routers?.length) {\n\t\t\tthrow new Error(`Failed to locate screen in router: ${dc_screen.name}`);\n\t\t}\n\t\telse if(a_routers.length > 1) {\n\t\t\tthrow new Error(`More than one path corresponds to screen: ${dc_screen.name}`);\n\t\t}\n\n\t\treturn a_routers[0];\n\t}\n\n\treverse_resolve(h_params: Hash): WisprPath {\n\t\t// root; exit\n\t\tif(!this.parent) {\n\t\t\treturn '/';\n\t\t}\n\n\t\t// ref pattern\n\t\tconst sx_pattern = this.path_pattern;\n\n\t\t// rebuild path\n\t\tconst a_build = [];\n\n\t\t// each part\n\t\tconst a_parts = sx_pattern.split(/(?=\\/)/g);\n\t\tfor(const s_part of a_parts) {\n\t\t\t// pattern\n\t\t\tconst m_pattern = R_PATTERN_PATH.exec(s_part);\n\t\t\tif(m_pattern) {\n\t\t\t\t// ref part id\n\t\t\t\tconst si_part = m_pattern[1];\n\n\t\t\t\t// lookup value\n\t\t\t\tconst z_value = h_params[si_part];\n\n\t\t\t\t// invalid\n\t\t\t\tif(!z_value || 'string' !== typeof z_value) {\n\t\t\t\t\tthrow new Error(`Invalid param value supplied for ${si_part} which should be a non-empty string but instead got: ${z_value}`);\n\t\t\t\t}\n\n\t\t\t\t// push to build\n\t\t\t\ta_build.push(z_value)\n\t\t\t}\n\t\t\t// not pattern\n\t\t\telse {\n\t\t\t\tconst m_exact = R_EXACT_PATH.exec(s_part);\n\t\t\t\tif(m_exact && m_exact[1]) {\n\t\t\t\t\t// push as-is\n\t\t\t\t\ta_build.push(m_exact[1]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdebugger;\n\t\t\t\t\tthrow new Error(`Failed to resolve internal route path pattern`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// output\n\t\treturn `/${a_build.join('/')}`;\n\t}\n\n\tprotected get resource(): null | Resource {\n\t\t// object\n\t\tif(this._g_object) {\n\t\t\treturn {\n\t\t\t\ttype: ResourceType.OBJECT,\n\t\t\t\tobject: this._g_object,\n\t\t\t};\n\t\t}\n\t\t// screen\n\t\telse if(this._dc_screen) {\n\t\t\treturn {\n\t\t\t\ttype: ResourceType.SCREEN,\n\t\t\t\tscreen: this._dc_screen,\n\t\t\t};\n\t\t}\n\t\t// no resource\n\t\telse {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprotected _thru(g_route: RoutePattern, sr_rest: string, g_problem: Problem, sr_part: string, sx_part: string): ResolutionAttempt {\n\t// a_parts: string[], h_params: Hash, du_resource: URL, part: string): null | Resolution {\n\n\t\t// end of route\n\t\tif(!R_PATH_PART_0.test(sr_rest)) {\n\t\t\t// update problem\n\t\t\t// @ts-expect-error template type concat\n\t\t\tg_problem.path += sr_part;\n\t\t\t// @ts-expect-error template type concat\n\t\t\tg_problem.pattern += sx_part;\n\n\t\t\t// redirect\n\t\t\tif(this._f_redirect) {\n\t\t\t\tconst p_new = this._f_redirect(g_problem.params);\n\n\t\t\t\tif(p_new) {\n\t\t\t\t\treturn this.root.resolve(p_new);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// fetch resource\n\t\t\tconst g_resource = g_route.node.resource;\n\n\t\t\t// unroutable\n\t\t\tif(!g_resource) return null;\n\n\t\t\t// resolve\n\t\t\treturn {\n\t\t\t\t...g_problem,\n\t\t\t\tresource: g_resource,\n\t\t\t};\n\t\t}\n\t\t// more\n\t\telse {\n\t\t\t// update problem\n\t\t\t// @ts-expect-error template type concat\n\t\t\tg_problem.path += `${sr_part}/`;\n\t\t\t// @ts-expect-error template type concat\n\t\t\tg_problem.pattern += `${sx_part}/`;\n\n\t\t\treturn g_route.node._route(sr_rest, g_problem);\n\t\t}\n\t}\n\n\tresolve(sr_ref: WisprRef, p_base: WisprUri=P_WISPR_ROOT): ResolutionAttempt {\n\t\t// attempt to parse URL\n\t\tlet du_resource!: URL;\n\t\ttry {\n\t\t\tdu_resource = new URL(sr_ref, p_base);\n\t\t}\n\t\tcatch(e_parse) {\n\t\t\tconsole.error(`Invalid URL reference: <${sr_ref}> using base IRI <${p_base}>`);\n\t\t\treturn null;\n\t\t}\n\n\t\t// must be wispr wallet\n\t\tif('wispr:' !== du_resource.protocol) return null;\n\n\t\t// destructure url\n\t\tconst {\n\t\t\tpathname: p_path,\n\t\t\tsearchParams: du_params,\n\t\t} = du_resource;\n\n\t\t// invalid path\n\t\tif(!p_path.startsWith('//root/')) return null;\n\n\t\t// split path into parts\n\t\tconst sr_path = '/'+p_path.replace(/^\\/\\/root\\/|\\/+$/g, '');\n\n\t\t// convert params into object\n\t\tconst h_params = Object.fromEntries(du_params.entries());\n\n\t\t// route\n\t\treturn this._route(sr_path, {\n\t\t\turl: du_resource,\n\t\t\tbase: p_base,\n\t\t\tpath: '/',\n\t\t\tpattern: '/',\n\t\t\tparams: h_params,\n\t\t});\n\t}\n\n\tprotected _route(sr_path: string, g_problem: Problem): ResolutionAttempt {\n\t\t// first path part\n\t\tconst m_part_0 = R_PATH_PART_0.exec(sr_path);\n\n\t\t// nothing\n\t\tif(!m_part_0) return null;\n\n\t\t// deref strings\n\t\tconst [, s_part_0, sr_rest] = m_part_0;\n\n\t\t// each route\n\t\tfor(const g_route of this._a_routes) {\n\t\t\t// ref route path\n\t\t\tconst z_path = g_route.path;\n\n\t\t\t// exact path part\n\t\t\tif('string' === typeof z_path) {\n\t\t\t\t// matched\n\t\t\t\tif(z_path === s_part_0) {\n\t\t\t\t\treturn this._thru(g_route, sr_rest, g_problem, s_part_0, s_part_0); // a_parts, h_params, du_resource, s_part_0);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// path pattern\n\t\t\telse if(z_path instanceof RegExp) {\n\t\t\t\t// matched\n\t\t\t\tif(z_path.test(s_part_0)) {\n\t\t\t\t\t// bind value to id\n\t\t\t\t\tg_problem.params[g_route.id] = s_part_0;\n\n\t\t\t\t\treturn this._thru(g_route, sr_rest, g_problem, s_part_0, `{${g_route.id}}`); // a_parts, h_params, du_resource, `{${g_route.id}}`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// nothing matched\n\t\treturn null;\n\t}\n\n\n\tadd(sx_pattern: string, h_node: RouteDescriptor) {\n\t\t// parse query from end\n\t\tconst m_query = R_PATTERN_QUERY.exec(sx_pattern);\n\n\t\t// failed to match\n\t\tif(!m_query) {\n\t\t\tdebugger\n\t\t\tthrow new SyntaxError(`Invalid path pattern ${sx_pattern}`);\n\t\t}\n\n\t\t// destructure\n\t\tconst [, sx_part, sx_query] = m_query;\n\n\t\t// query is present\n\t\tlet h_query = null;\n\t\tif(sx_query) {\n\t\t\th_query = Object.fromEntries(new URLSearchParams(sx_query).entries());\n\t\t}\n\n\t\t// ref routes\n\t\tconst a_routes = this._a_routes;\n\n\t\t// prep route\n\t\tlet si_route = '';\n\t\tlet w_path: string | RegExp;\n\n\n\t\t// parse pattern\n\t\tconst m_pattern = R_PATTERN_PATH.exec(sx_part);\n\t\tif(m_pattern) {\n\t\t\t// destructure\n\t\t\tconst [, , s_id, s_num] = m_pattern;\n\n\t\t\t// id pattern\n\t\t\tif(s_id) {\n\t\t\t\tsi_route = s_id;\n\t\t\t\tw_path = /^[\\w-]+$/;\n\t\t\t}\n\t\t\t// none?\n\t\t\telse {\n\t\t\t\tthrow new SyntaxError(`Failed to capture any groups in Route`);\n\t\t\t}\n\t\t}\n\t\t// not pattern\n\t\telse {\n\t\t\t// parse exact\n\t\t\tconst m_exact = R_EXACT_PATH.exec(sx_part);\n\t\t\tif(m_exact) {\n\t\t\t\tsi_route = w_path = m_exact[1];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdebugger;\n\t\t\t\tthrow new SyntaxError(`Invalid path pattern ${sx_pattern}`);\n\t\t\t}\n\t\t}\n\n\t\t// construct child\n\t\tconst k_child = Router.parse(h_node, this, sx_part);\n\n\t\t// push route\n\t\ta_routes.push({\n\t\t\tid: si_route,\n\t\t\tpath: w_path,\n\t\t\tnode: k_child,\n\t\t});\n\t}\n}\n","export default \"\\n\\t\\n\\t\\n\\n\"","\n\n\n\n copy(): void 0}>\n\t{#if prefix}\n\t\t\n\t\t\t{prefix}\n\t\t\n\t{/if}\n\t\n\t\t{address}\n\t\n\t\n\t\t{address}\n\t\n\n\t{#if copyable}\n\t\t\n\t\t\t{@html SX_COPY}\n\t\t\n\n\t\t\n\t\t\tCopied!\n\t\t\n\t{/if}\n\n","\n\n\n\n
\n\t
\n\t\t\n\t
\n\n\t
\n\t\t\n\t
\n\n\t\n
","export default \"\\n\\n\\n\\n\\n\\t.st0{opacity:0.55;}\\n\\t.st1{fill:#242424;}\\n\\t.st2{fill:#171717;}\\n\\t.st3{opacity:0.4902;}\\n\\t.st4{fill:#CCAD6E;}\\n\\t.st5{opacity:0.44;}\\n\\t.st6{opacity:0.39;}\\n\\t.st7{opacity:0.34;}\\n\\t.st8{opacity:0.29;}\\n\\t.st9{opacity:0.24;}\\n\\t.st10{opacity:0.19;}\\n\\t.st11{opacity:0.09;}\\n\\t.st12{opacity:0.04;}\\n\\t.st13{fill:url(#SVGID_1_);}\\n\\t.st14{fill:url(#SVGID_00000126306700761089135860000012096794764953100418_);}\\n\\n\\n\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\n\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\n\\n\\t\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\n\\n\\n\"","export default \"\\n\\t\\n\\t\\n\\n\"","export default \"\\n\\n\\n\\n\"","\n\n\n","import type {\n\tWisprUri,\n\tWisprResUri,\n} from '#/state/path';\n\nimport type {\n\tType,\n} from 'ts-toolbelt/out/Any/_api';\nimport type { Chain } from './chain';\nimport type { Contact } from './contact';\nimport type { Family } from './family';\n\nexport type Color = Type;\n\nexport enum ClassType {\n\tUNKNOWN = 'unknown',\n\n\t// set of chains which share a common address space, such that user accounts are translatable across members\n\tFAMILY = 'family',\n\n\t// specific blockchain\n\tCHAIN = 'chain',\n\n\t// configuration for how to communicate with chain\n\tNETWORK = 'network',\n\n\t// \n\tACCOUNT = 'account',\n\n\t// pubkey associated with distinct family 'member'\n\tCONTACT = 'contact',\n\n\t// on-chain resource that only exists this chain\n\tCONTRACT = 'contract',\n\n\t// addressable asset associated with distinct chain\n\tTOKEN = 'token',\n\n\t// asset holdings\n\tHOLDING = 'holding',\n\n\t// site connection\n\tSITE = 'site',\n\n\tTAG = 'tag',\n\tICON = 'icon',\n\t\n\tIBCT = 'ibct',\n\tSNIP721 = 'snip721',\n\tTXN = 'txn',\n\tOTHER = 'other',\n}\n\n\nexport enum SearchScoreType {\n\tEXACT_ADDR = 0,\n\tEXACT_LABEL = 1,\n\tEXACT_SYMBOL = 2,\n\tSTARTS_ADDR = 10,\n\tSTARTS_LABEL = 11,\n\tSTARTS_SYMBOL = 12,\n\tNONE = 100,\n}\n\nexport interface SearchScore {\n\ttype: SearchScoreType;\n\tscore: number;\n}\n\nexport class SearchScore {\n\tstatic exact_label() {\n\t\treturn {\n\t\t\ttype: SearchScoreType.EXACT_LABEL,\n\t\t\tscore: 1,\n\t\t};\n\t}\n\n\tstatic type(i_type: SearchScoreType, x_score=1): SearchScore {\n\t\treturn {\n\t\t\ttype: i_type,\n\t\t\tscore: x_score,\n\t\t};\n\t}\n}\n\nexport interface SearchConfig {\n\t// account?: \n}\n\nexport interface Searchable {\n\t// search(s_search: string, gc_search: SearchConfig): SearchScore;\n\n\tget label(): string;\n\n\tget detail(): string;\n}\n\n\nexport interface Thing<\n\ts_path extends string=string,\n> {\n\tclass: ClassType;\n\tiri: WisprUri<`${s_path}/`>;\n\tlabel?: string;\n}\n\n\nexport class Definable<\n\tg_def extends Thing=Thing,\n> implements Searchable {\n\tprotected _g_def: g_def;\n\n\tconstructor(g_def: g_def) {\n\t\tthis._g_def = g_def;\n\t}\n\n\tget def(): g_def {\n\t\treturn this._g_def;\n\t}\n\n\tsearch(s_search: string, gc_search: SearchConfig): SearchScore {\n\t\tconst g_def = this._g_def;\n\n\t\tconst s_label = g_def.label?.toLocaleLowerCase();\n\t\tif(s_label) {\n\t\t\tif(s_search === s_label) {\n\t\t\t\treturn SearchScore.exact_label();\n\t\t\t}\n\t\t\telse if(s_label.startsWith(s_search)) {\n\t\t\t\treturn SearchScore.type(SearchScoreType.STARTS_LABEL);\n\t\t\t}\n\t\t\t// else if(s_label)\n\n\t\t}\n\t\treturn {\n\t\t\ttype: SearchScoreType.NONE,\n\t\t\tscore: 0,\n\t\t};\n\t}\n\n\tget label() {\n\t\treturn this._g_def.label || '';\n\t}\n\n\tget detail() {\n\t\treturn '';\n\t}\n}\n\nexport enum AddressType {\n\tUNKNOWN = 0,\n\tPERSON = 1,\n\tCONTRACT = 2,\n}\n\n\nexport abstract class Addressable<\n\tg_def extends Thing=Thing,\n> extends Definable {\n\tabstract address(k_chain: Chain): string;\n\n\tabstract get label(): string;\n\n\tabstract get type(): AddressType;\n}\n\nexport type IntraChain<\n\ts_class extends string,\n> = `chains/${string}/${s_class}`;\n\n\n\nexport interface Labelable<\n\ts_path extends string=string,\n> extends Thing {\n\tlabel: string;\n}\n\n\n\nexport type TagRef = WisprResUri;\n\nexport interface TagDef extends Labelable<`tags/${string}`> {\n\tclass: ClassType.TAG,\n\tcolor: string;\n}\n\nexport interface TagConfig {\n\tid: string;\n\tlabel: string;\n\tcolor: string;\n}\n\n// export interface Tag extends Thing<`tags/${string}`> {\n// \tclass: ClassType.TAG,\n// \tlabel: string;\n// \tcolor: Color;\n// }\n\nexport class TagDef {\n\tstatic fromConfig(gc_tag: TagConfig): TagDef {\n\t\treturn {\n\t\t\tclass: ClassType.TAG,\n\t\t\tiri: Tag.refFromId(gc_tag.id),\n\t\t\tlabel: gc_tag.label,\n\t\t\tcolor: gc_tag.color,\n\t\t};\n\t}\n}\n\nexport class Tag extends Definable {\n\tstatic fromDef(gd_tag: TagDef) {\n\t\treturn new Tag(gd_tag);\n\t}\n\n\tstatic refFromId(si_tag: string): TagRef {\n\t\treturn `wispr://root/tags/${si_tag}/`;\n\t}\n}\n\n\nexport interface TagRefable<\n\ts_path extends string=string,\n> extends Labelable {\n\ttagRefs: TagRef[];\n}\n\n\n\n// export class Taggable<\n// \tg_def extends Thing=Thing,\n// > extends Definable {\n// \tget tags(): Tag[] {\n\n// \t}\n// }\n","import {\n\tClassType,\n\tDefinable,\n\ttype SearchConfig,\n} from './_core';\n\nimport type {\n\tWisprResUri,\n} from '#/state/path';\n\nimport type { Icon } from './icon';\nimport { uuid_v4 } from '#/util/dom';\nimport type { Chain } from './chain';\nimport type { Holding } from './holding';\nimport { oderac, oderaf } from '#/util/belt';\nimport { H_CHAINS } from '#/sim/data';\n\n\ntype AccountRef = WisprResUri;\n\ninterface AccountDef extends Icon.Refable<`accounts/${string}`> {\n\tclass: ClassType.ACCOUNT,\n\tid: string;\n\tpubkey: string;\n}\n\ninterface AccountConfig {\n\tid?: string;\n\tlabel: string;\n\tpubkey: string;\n\ticonRef?: Icon.Ref,\n}\n\nclass AccountDef {\n\tstatic fromConfig(gc_account: AccountConfig): AccountDef {\n\t\tconst si_account = gc_account.id || uuid_v4();\n\n\t\treturn {\n\t\t\tclass: ClassType.ACCOUNT,\n\t\t\tid: si_account,\n\t\t\tpubkey: gc_account.pubkey,\n\t\t\tiri: `wispr://root/accounts/${si_account}/`,\n\t\t\tlabel: gc_account.label,\n\t\t\ticonRef: gc_account.iconRef as Icon.Ref,\n\t\t\ttagRefs: [],\n\t\t};\n\t};\n}\n\nexport class Account extends Definable {\n\tstatic refFromId(si_account: string): AccountRef {\n\t\treturn `wispr://root/accounts/${si_account}/`;\n\t}\n\n\tget aggregator(): boolean {\n\t\treturn '*' === this._g_def.id;\n\t}\n\n\tget label(): string {\n\t\treturn this.aggregator? 'All accounts': `${this.def.label} - #${this.def.id}`;\n\t}\n\n\taddress(k_chain: Chain): string {\n\t\tif(!k_chain) debugger;\n\t\treturn this.aggregator? '*': `${k_chain.def.bechPrefix}1${this._g_def.pubkey}`;\n\t}\n\n\tholdings(H_HOLDINGS: Record, k_chain: Chain | null=null): Holding[] {\n\t\tif(k_chain) {\n\t\t\treturn oderaf(H_HOLDINGS, (p_holding, k_holding) => {\n\t\t\t\tif(this.address(k_chain) === k_holding.def.holderAddr) {\n\t\t\t\t\treturn [k_holding];\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t});\t\n\t\t}\n\n\t\treturn oderaf(H_HOLDINGS, (p_holding, k_holding) => {\n\t\t\treturn oderaf(H_CHAINS, (p_chain, k_chain) => {\n\t\t\t\tif(this.address(k_chain) === k_holding.def.holderAddr) {\n\t\t\t\t\treturn [k_holding];\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t});\n\t\t});\n\t}\n\n\t// search(s_search: string, gc_search: SearchConfig) {\n\t// \tif(s_search)\n\t// \treturn {\n\t// \t\ttype: \n\t// \t};\n\t// }\n}\n\nexport namespace Account {\n\texport type Ref = AccountRef;\n\texport type Def = AccountDef;\n\texport const Def = AccountDef;\n\texport type Config = AccountConfig;\n}\n\n","import {\n\tClassType,\n\tDefinable,\n} from './_core';\n\nimport {\n\ttype WisprRef,\n\ttype WisprResUri,\n\tparse_path_pair,\n\twispr_path,\n} from '#/state/path';\n\nimport {\n\tIcon,\n\tToken,\n\tFamily,\n} from '#/objects';\n\nimport type { Plural } from '#/util/types';\n\ntype ChainRef = Family.MemberRef;\n\ntype ChainPath = `${Family.Path}/chains/${string}`;\n\ninterface ChainDef extends Icon.Refable {\n\tclass: ClassType.CHAIN,\n\tid: string;\n\trpc: string;\n\trest: string;\n\tbechPrefix: string;\n\tfamilyRef: Family.Ref;\n};\n\n\ninterface ChainConfig {\n\tid: string;\n\tlabel: string;\n\ticonRef: Icon.Ref;\n\tbechPrefix?: string;\n\tfamilyRef: Family.Ref;\n};\n\nclass ChainDef {\n\tstatic fromConfig(gc_chain: ChainConfig): ChainDef {\n\t\tconst p_family = gc_chain.familyRef;\n\n\t\treturn {\n\t\t\tclass: ClassType.CHAIN,\n\t\t\tiri: Chain.refFromFamilyId(p_family, gc_chain.id),\n\t\t\tfamilyRef: p_family,\n\t\t\tid: gc_chain.id,\n\t\t\tlabel: gc_chain.label,\n\t\t\trpc: '',\n\t\t\trest: '',\n\t\t\ticonRef: gc_chain.iconRef || Icon.BLANK.def.iri,\n\t\t\tbechPrefix: gc_chain.bechPrefix || gc_chain.id.split('-')[0],\n\t\t\ttagRefs: [],\n\t\t};\n\t}\n\n\tstatic parseRef(sr_ref: WisprRef): ChainParam {\n\t\tconst {\n\t\t\tfamilyId: si_family,\n\t\t\trest: sr_path,\n\t\t} = Family.Def.parseRef(sr_ref);\n\n\t\tconst a_parsed = parse_path_pair(sr_path, 'chains');\n\t\n\t\treturn {\n\t\t\tfamilyId: si_family,\n\t\t\tchainId: a_parsed[0],\n\t\t\trest: a_parsed[1],\n\t\t};\n\t}\n}\n\nconst RT_BECH_DATA = /^[a-zA-HJ-NP-Z0-9]{38}$/;\n\nexport class Chain extends Definable {\n\tstatic refFromFamilyId(p_family: Family.Ref, si_chain: string): ChainRef {\n\t\treturn `${p_family}chains/${si_chain}/`;\n\t}\n\n\tverifyAddressLegitimacy(s_address: string) {\n\t\tconst s_prefix = this._g_def.bechPrefix+'1';\n\t\treturn s_address.startsWith(s_prefix) && RT_BECH_DATA.test(s_address.slice(s_prefix.length));\n\t}\n\n\tnative(H_TOKENS: Record): Token {\n\t\treturn H_TOKENS[Token.refFromChainAddr(this.def.iri, '.native')]\n\t}\n}\n\ninterface ChainParam extends Family.Param {\n\tchainId: string;\n}\n\nexport namespace Chain {\n\texport type Ref = ChainRef;\n\texport type Def = ChainDef;\n\texport const Def = ChainDef;\n\texport type Config = ChainConfig;\n\n\texport type Path = ChainPath;\n\n\texport type Param = ChainParam;\n\n\texport type MemberRef<\n\t\ts_path extends string=string,\n\t> = `${ChainRef}${Plural}/${string}/`;\n\n\texport interface Resource<\n\t\ts_path extends string=string,\n\t> extends Icon.Refable<`${ChainPath}/${s_path}`> {\n\t\tchainRef: Ref;\n\t}\n\n\texport interface Asset<\n\t\ts_path extends string=string,\n\t> extends Resource {\n\t\taddress: string;\n\t}\n\n}\n","import {\n\tAddressable,\n\tAddressType,\n\tClassType,\n\tDefinable,\n} from './_core';\n\nimport {\n\ttype Tag,\n\ttype Chain,\n\ttype Txn,\n\tIcon,\n} from '#/objects';\nimport type { Family } from './family';\n\ntype ContactRef = Family.MemberRef;\n\nenum ContactType {\n\tUNKNOWN = 0,\n\tPERSON = 1,\n\tCONTRACT = 2,\n}\n\ntype ContactPath = `${Family.Path}/contacts/${string}`;\n\ninterface ContactDef extends Icon.Refable {\n\tclass: ClassType.CONTACT,\n\ttype: ContactType;\n\tfamilyRef: Family.Ref;\n\tpubkey: string;\n\tlocked: boolean;\n}\n\ninterface ContactConfig {\n\tlabel: string;\n\tpubkey: string;\n\tfamilyRef: Family.Ref;\n\ttagRefs?: Tag.Ref[],\n\ticonRef?: Icon.Ref;\n\ttype?: ContactType;\n\tlocked?: boolean;\n}\n\nclass ContactDef {\n\tstatic fromConfig(gc_contact: ContactConfig): ContactDef {\n\t\treturn {\n\t\t\t...gc_contact,\n\t\t\ticonRef: gc_contact.iconRef as Icon.Ref,\n\t\t\t// || Icon.Def.BLANK.iri,\n\t\t\ttagRefs: gc_contact.tagRefs || [],\n\t\t\tiri: Contact.refFromFamilyPubkey(gc_contact.familyRef, gc_contact.pubkey),\n\t\t\ttype: gc_contact.type || ContactType.UNKNOWN,\n\t\t\tclass: ClassType.CONTACT,\n\t\t\tlocked: gc_contact.locked || false,\n\t\t};\n\t}\n}\n\n\n\nexport class Contact extends Addressable {\n\tstatic refFromFamilyPubkey(p_family: Family.Ref, s_pubkey: string): ContactRef {\n\t\treturn `${p_family}contacts/${s_pubkey}/`;\n\t}\n\n\tprotected _a_history: Txn.Bankish[] = [];\n\n\tget history(): Txn.Bankish[] {\n\t\treturn this._a_history;\n\t}\n\n\taddress(k_chain: Chain): string {\n\t\treturn `${k_chain.def.bechPrefix}1${this._g_def.pubkey}`;\n\t}\n\n\tget label(): string {\n\t\treturn this._g_def.label;\n\t}\n\n\tget type(): AddressType {\n\t\treturn AddressType.PERSON;\n\t}\n\n\tget familyRef(): Family.Ref {\n\t\treturn this._g_def.familyRef;\n\t}\n}\n\nexport namespace Contact {\n\texport type Ref = ContactRef;\n\n\texport type Def = ContactDef;\n\texport const Def = ContactDef;\n\n\texport type Path = ContactPath;\n\n\texport type Config = ContactConfig;\n\n\texport type Type = ContactType;\n\texport const Type = ContactType;\n}\n","import BigNumber from 'bignumber.js';\n\nimport {\n\ttype Thing,\n\tClassType,\n\tDefinable,\n} from './_core';\n\nimport type {\n\tWisprResUri, WisprUri,\n} from '#/state/path';\n\nimport type { Token } from './token';\n\ntype HoldingPath = `${Token.Path}/holdings/${string}`;\n\ntype HoldingRef = Token.MemberRef;\n\nexport interface HoldingDef extends Token.Member<`holdings/${string}`> {\n\tbalance: bigint;\n\ttokenRef: Token.Ref;\n\tholderAddr: string;\n}\n\nexport interface HoldingConfig {\n\tbalance: bigint;\n\ttokenRef: Token.Ref;\n\tholderAddr?: string;\n}\n\nexport class HoldingDef {\n\tstatic fromConfig(gc_holding: HoldingConfig): HoldingDef {\n\t\tconst si_holder = gc_holding.holderAddr || '*';\n\n\t\treturn {\n\t\t\tclass: ClassType.HOLDING,\n\t\t\tiri: Holding.refFromTokenAccount(gc_holding.tokenRef, si_holder),\n\t\t\ttokenRef: gc_holding.tokenRef,\n\t\t\tholderAddr: si_holder,\n\t\t\tbalance: gc_holding.balance,\n\t\t};\n\t}\n}\n\nexport class Holding extends Definable {\n\tstatic refFromTokenAccount(p_token: Token.Ref, sa_holder: string): HoldingRef {\n\t\treturn `${p_token}holdings/${sa_holder}/`;\n\t}\n\n\tstatic usdSum(a_holdings: Holding[], H_TOKENS: Record, H_VERSUS_USD: Record): number {\n\t\treturn a_holdings.reduce((x_usd, k_holding) => x_usd + k_holding.toUsd(H_TOKENS, H_VERSUS_USD), 0);\n\t}\n\n\ttoken(H_TOKENS: Record): Token {\n\t\treturn H_TOKENS[this._g_def.tokenRef];\n\t}\n\n\tapprox(H_TOKENS: Record): number {\n\t\treturn this.token(H_TOKENS).approx(this._g_def.balance);\n\t}\n\n\tget humanReadableBalance(): string {\n\t\tconst xg_balance = this._g_def.balance;\n\t\treturn xg_balance.toLocaleString();\n\t}\n\n\ttoUsd(H_TOKENS: Record, H_VERSUS_USD: Record): number {\n\t\tif(!H_VERSUS_USD[this._g_def.tokenRef]?.value) return 0;\n\t\treturn H_VERSUS_USD[this._g_def.tokenRef].value * this.approx(H_TOKENS);\n\t}\n\n\tamount(H_TOKENS: Record): BigNumber {\n\t\treturn (new BigNumber(this._g_def.balance+'')).shiftedBy(-this.token(H_TOKENS).def.decimals);\n\t}\n}\n\nexport namespace Holding {\n\texport type Ref = HoldingRef;\n\texport type Def = HoldingDef;\n\texport const Def = HoldingDef;\n\texport type Config = HoldingConfig;\n}","import {\n\ttype Thing,\n\tClassType,\n\tDefinable,\n} from './_core';\n\nimport type {\n\tWisprResUri,\n} from '#/state/path';\n\nimport type { Tag } from './tag';\n\nimport {\n\tdd,\n\tuuid_v4,\n} from '#/util/dom';\nimport { H_ADDRESS_TO_TOKEN, H_ICONS } from '#/sim/data';\n\ntype IconRef = WisprResUri;\n\nenum IconType {\n\tBLANK = 0,\n\tIMAGE = 1,\n\tHTML = 2,\n\tPAIR = 3,\n\tCOMPOSITE = 4,\n}\n\ninterface IconDef extends Thing<`icons/${string}`> {\n\tclass: ClassType.ICON,\n\ttype: IconType;\n\tdata: string;\n\textra?: {\n\t\tattributes?: {},\n\t};\n}\n\ninterface IconConfig {\n\ttype: IconType;\n\tiri: IconRef;\n\tdata: string;\n\textra?: IconExtra;\n}\n\nexport interface IconExtra {\n\tattributes?: Record;\n}\n\n\nfunction refFromFile(sr_file: string): IconRef {\n\treturn `wispr://root/icons/.${sr_file}/`;\n}\n\nfunction refFromUuid(): IconRef {\n\treturn `wispr://root/icons/.transient/${uuid_v4()}/`;\n}\n\nclass IconDef {\n\tstatic BLANK = IconDef.fromFile('blank.svg');\n\n\tstatic fromFile(sr_file: string): IconDef {\n\t\treturn IconDef.fromConfig({\n\t\t\ttype: IconType.IMAGE,\n\t\t\tdata: `/asset/${sr_file}`,\n\t\t\tiri: refFromFile(sr_file),\n\t\t});\n\t}\n\n\tstatic fromConfig(gc_icon: IconConfig): IconDef {\n\t\treturn {\n\t\t\tclass: ClassType.ICON,\n\t\t\t...gc_icon,\n\t\t};\n\t}\n\n\tstatic fromPair(sa_icon_a: string, sa_icon_b: string): IconDef {\n\t\treturn {\n\t\t\tclass: ClassType.ICON,\n\t\t\ttype: IconType.PAIR,\n\t\t\tdata: [sa_icon_a, sa_icon_b].join('\\n'),\n\t\t\tiri: refFromFile(`pair/${sa_icon_a}/${sa_icon_b}`),\n\t\t};\n\t}\n\n\tstatic fromComposite(p_icon_bg: IconRef, p_icon_fg: IconRef): IconDef {\n\t\treturn {\n\t\t\tclass: ClassType.ICON,\n\t\t\ttype: IconType.COMPOSITE,\n\t\t\tdata: [p_icon_bg, p_icon_fg].join('\\n'),\n\t\t\tiri: refFromFile(`composite/${p_icon_bg}/${p_icon_fg}`),\n\t\t};\n\t}\n}\n\n\nexport class Icon extends Definable {\n\tstatic BLANK = new Icon(IconDef.BLANK);\n\n\tstatic refFromFile = refFromFile;\n\n\tstatic refFromUuid = refFromUuid;\n\n\tstatic none() {\n\t\treturn {\n\t\t\tiri: 'wispr://root/icons/.none/',\n\t\t\tclass: ClassType.ICON,\n\t\t\tpath: '',\n\t\t};\n\t}\n\n\t// static fromPath(sx_path: string) {\n\t// \treturn new Icon(IconDef.fromConfig({\n\t// \t\ttype: IconType.,\n\t// \t\tdata: sx_path,\n\t// \t}));\n\t// }\n\n\tstatic fromHtml(sx_html: string, g_attributes: Record={}) {\n\t\treturn new Icon(IconDef.fromConfig({\n\t\t\ttype: IconType.HTML,\n\t\t\tiri: Icon.refFromUuid(),\n\t\t\tdata: sx_html,\n\t\t\textra: {\n\t\t\t\tattributes: g_attributes || {},\n\t\t\t},\n\t\t}));\n\t}\n\n\tprotected _xc_type = IconType.BLANK;\n\tprotected _sx_data = '';\n\tprotected _g_extra: IconExtra;\n\n\tget isHtml(): boolean {\n\t\treturn IconType.HTML === this._xc_type;\n\t}\n\n\tconstructor(g_def: IconDef) {\n\t\tsuper(g_def);\n\n\t\tthis._xc_type = g_def.type;\n\t\tthis._sx_data = g_def.data;\n\t\tthis._g_extra = g_def.extra || {};\n\t}\n\n\trender(): HTMLElement {\n\t\tswitch(this._xc_type) {\n\t\t\tcase IconType.IMAGE: {\n\t\t\t\treturn dd('img', {\n\t\t\t\t\tsrc: this._sx_data,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tcase IconType.HTML: {\n\t\t\t\tconst dm_dummy = document.createElement('span');\n\t\t\t\tdm_dummy.innerHTML = this._sx_data;\n\t\t\t\tconst dm_icon = dm_dummy.firstElementChild as HTMLElement;\n\t\t\t\tconst h_attrs = this._g_extra?.attributes || {};\n\t\t\t\tfor(const si_attr in h_attrs) {\n\t\t\t\t\tdm_icon.setAttribute(si_attr, h_attrs[si_attr]);\n\t\t\t\t}\n\t\t\t\treturn dm_icon;\n\t\t\t}\n\n\t\t\tcase IconType.PAIR: {\n\t\t\t\tconst [sa_icon_a, sa_icon_b] = this._sx_data.split(/\\n/g) as IconRef[];\n\t\t\t\tconst k_icon_a = H_ICONS[H_ADDRESS_TO_TOKEN[sa_icon_a].def.iconRef];\n\t\t\t\tconst k_icon_b = H_ICONS[H_ADDRESS_TO_TOKEN[sa_icon_b].def.iconRef];\n\n\t\t\t\treturn dd('span', {\n\t\t\t\t\tclass: 'group',\n\t\t\t\t}, [\n\t\t\t\t\tdd('span', {\n\t\t\t\t\t\tclass: 'platform',\n\t\t\t\t\t}, [\n\t\t\t\t\t\t// dd('img', {\n\t\t\t\t\t\t// \tsrc: `/asset/token/secretswap.svg`,\n\t\t\t\t\t\t// }),\n\t\t\t\t\t]),\n\n\t\t\t\t\tdd('span', {\n\t\t\t\t\t\tclass: 'pair',\n\t\t\t\t\t}, [\n\t\t\t\t\t\tk_icon_a.render(),\n\t\t\t\t\t\tk_icon_b.render(),\n\t\t\t\t\t]),\n\t\t\t\t]);\n\n\t\t\t\t// const dm_icon = dm_dummy.firstElementChild as HTMLElement;\n\t\t\t\t// const h_attrs = this._g_extra?.attributes || {};\n\t\t\t\t// for(const si_attr in h_attrs) {\n\t\t\t\t// \tdm_icon.setAttribute(si_attr, h_attrs[si_attr]);\n\t\t\t\t// }\n\n\t\t\t\t// return dm_pair;\n\t\t\t}\n\n\t\t\tcase IconType.COMPOSITE: {\n\t\t\t\tconst [p_icon_bg, p_icon_fg] = this._sx_data.split(/\\n/g) as IconRef[];\n\t\t\t\tconst k_icon_bg = H_ICONS[p_icon_bg];\n\t\t\t\tconst k_icon_fg = H_ICONS[p_icon_fg];\n\n\t\t\t\treturn dd('span', {\n\t\t\t\t\tclass: 'group',\n\t\t\t\t}, [\n\t\t\t\t\tdd('span', {\n\t\t\t\t\t\tclass: 'platform',\n\t\t\t\t\t}, [\n\t\t\t\t\t\tk_icon_bg.render(),\n\t\t\t\t\t]),\n\n\t\t\t\t\tdd('span', {\n\t\t\t\t\t\tclass: 'foreground',\n\t\t\t\t\t}, [\n\t\t\t\t\t\tk_icon_fg.render(),\n\t\t\t\t\t]),\n\t\t\t\t]);\n\t\t\t}\n\t\t}\n\n\t\treturn document.createElement('span');\n\t}\n\n\ttoHtml() {\n\t\tswitch(this._xc_type) {\n\t\t\tcase IconType.IMAGE: {\n\t\t\t\treturn ``\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport namespace Icon {\n\texport type Ref = IconRef;\n\n\texport type Type = IconType;\n\n\texport type Def = IconDef;\n\n\texport type Config = IconConfig;\n\n\texport const Def = IconDef;\n\n\texport type Extra = IconExtra;\n\n\texport interface Refable<\n\t\ts_path extends string=string,\n\t> extends Tag.Refable {\n\t\ticonRef: Ref;\n\t}\n}\n","import {\n\ttype TagRef,\n\ttype TagDef,\n\ttype TagConfig,\n\ttype TagRefable,\n\tTag as TagClass,\n\tTagDef as TagDefClass,\n} from './_core';\n\nexport class Tag extends TagClass {}\n\nexport namespace Tag {\n\texport type Ref = TagRef;\n\texport type Def = TagDef;\n\texport const Def = TagDefClass;\n\texport type Config = TagConfig;\n\texport type Refable = TagRefable;\n}\n","\nimport {\n\tClassType,\n\tDefinable,\n} from './_core';\n\nimport {\n\tparse_path_pair,\n\twispr_path,\n\ttype WisprRef,\n\ttype WisprResUri,\n} from '#/state/path';\n\nimport { Icon } from './icon';\nimport type { Plural } from '#/util/types';\n\ntype FamilyRef = WisprResUri;\n\ntype FamilyPath = `families/${string}`;\n\ninterface FamilyDef extends Icon.Refable {\n\tclass: ClassType.FAMILY,\n\tid: string;\n};\n\n\ninterface FamilyConfig {\n\tid: string;\n\tlabel: string;\n\ticonRef?: Icon.Ref;\n}\n\nclass FamilyDef {\n\tstatic fromConfig(gc_family: FamilyConfig): FamilyDef {\n\t\treturn {\n\t\t\tclass: ClassType.FAMILY,\n\t\t\tiri: Family.refFromId(gc_family.id),\n\t\t\tid: gc_family.id,\n\t\t\tlabel: gc_family.label,\n\t\t\ticonRef: gc_family.iconRef || Icon.BLANK.def.iri,\n\t\t\ttagRefs: [],\n\t\t};\n\t}\n\n\tstatic parseRef(sr_ref: WisprRef): FamilyParam {\n\t\tconst [si_family, s_rest] = parse_path_pair(wispr_path(sr_ref), 'families');\n\n\t\treturn {\n\t\t\tfamilyId: si_family,\n\t\t\trest: s_rest,\n\t\t};\n\t}\n}\n\n\nexport class Family extends Definable {\n\tstatic refFromId(si_family: string): FamilyRef {\n\t\treturn `wispr://root/families/${si_family}/`;\n\t}\n}\n\ninterface FamilyParam {\n\tfamilyId: string;\n\trest: string;\n}\n\nexport namespace Family {\n\texport type Ref = FamilyRef;\n\texport type Def = FamilyDef;\n\texport const Def = FamilyDef;\n\texport type Config = FamilyConfig;\n\n\texport type Param = FamilyParam;\n\texport type Path = FamilyPath;\n\n\texport type MemberRef<\n\t\ts_path extends string=string,\n\t> = `${FamilyRef}${Plural}/${string}/`;\n\n\texport interface Member<\n\t\ts_path extends string=string,\n\t> extends Icon.Refable<`${FamilyPath}/${s_path}`> {\n\n\t}\n}\n","import {\n\ttype IntraChain,\n\tClassType,\n\tDefinable,\n\ttype Thing,\n\tAddressable,\n\tAddressType,\n} from './_core';\n\nimport {\n\ttype WisprResUri,\n\tparse_path_pair,\n} from '#/state/path';\n\nimport { Chain } from './chain';\nimport type { Icon } from './icon';\nimport type { Tag } from './tag';\nimport BigNumber from 'bignumber.js';\nimport type { Ibct } from './ibct';\nimport type { Type } from 'ts-toolbelt/out/Any/Type';\nimport type { Plural } from '#/util/types';\nimport { Family } from './family';\nimport type { Hash } from '#/util/types';\nimport type { Snip20 } from '#/type/snip20';\n\n\ntype TokenRef = Chain.MemberRef;\n\ntype TokenPath = `${Chain.Path}/tokens/${string}`;\n\ninterface TokenDef extends Chain.Asset<`tokens/${string}`> {\n\tclass: ClassType.TOKEN,\n\tsymbol: string;\n\tdecimals: number;\n\tnative: boolean;\n\tdata: Hash;\n\tallowances: Snip20.Allowance[],\n}\n\ninterface TokenConfig {\n\tsymbol: string;\n\tlabel: string;\n\taddress: string,\n\tdecimals: number;\n\tchainRef: Chain.Ref;\n\ticonRef: Icon.Ref;\n\tallowances?: Snip20.Allowance[],\n\ttagRefs?: Tag.Ref[];\n\tnative?: boolean;\n\tdata?: Hash;\n}\n\ninterface TokenParam extends Chain.Param {\n\ttokenId: string;\n}\n\nclass TokenDef {\n\tstatic fromConfig(gc_token: TokenConfig): TokenDef {\n\t\treturn {\n\t\t\t...gc_token,\n\t\t\tnative: gc_token.native || false,\n\t\t\ttagRefs: gc_token.tagRefs || [],\n\t\t\tiri: Token.refFromChainAddr(gc_token.chainRef, gc_token.address),\n\t\t\tclass: ClassType.TOKEN,\n\t\t\tdata: gc_token.data || {},\n\t\t\tallowances: gc_token.allowances || [],\n\t\t};\n\t}\n}\n\ntype TokenDenom = Type;\n\nexport class Token extends Addressable {\n\tstatic refFromChainAddr(p_chain: Chain.Ref, si_addr: string): TokenRef {\n\t\treturn `${p_chain}tokens/${si_addr}/`;\n\t}\n\n\tstatic parseRef(sr_ref: TokenRef): TokenParam {\n\t\tconst {\n\t\t\tfamilyId: si_family,\n\t\t\tchainId: si_chain,\n\t\t\trest: sr_path,\n\t\t} = Chain.Def.parseRef(sr_ref);\n\n\t\tconst a_parsed = parse_path_pair(sr_path, 'tokens');\n\t\n\t\treturn {\n\t\t\tfamilyId: si_family,\n\t\t\tchainId: si_chain,\n\t\t\ttokenId: a_parsed[0],\n\t\t\trest: a_parsed[1],\n\t\t};\n\t}\n\n\tprotected _k_ibct: null | Ibct = null;\n\n\tapprox(xg_amount: bigint): number {\n\t\treturn new BigNumber(xg_amount+'').shiftedBy(-this.def.decimals).toNumber();\n\t}\n\n\tdenomFromString(s_amount: string): TokenDenom {\n\t\treturn new BigNumber(s_amount).shiftedBy(this._g_def.decimals).toString() as TokenDenom;\n\t}\n\n\tset ibct(k_ibct: null | Ibct) {\n\t\tif(!k_ibct) {\n\t\t\tthrow new Error(`Not allowed to set null Ibct`);\n\t\t}\n\t\telse if(this._k_ibct && k_ibct !== this._k_ibct) {\n\t\t\tthrow new Error(`Ibct already set on token <${this.def.iri}>`);\n\t\t}\n\n\t\tthis._k_ibct = k_ibct;\n\t}\n\n\tget ibct(): null | Ibct {\n\t\treturn this._k_ibct;\n\t}\n\n\tget label(): string {\n\t\treturn this._g_def.label;\n\t}\n\n\taddress(k_chain: Chain): string {\n\t\treturn this._g_def.chainRef === k_chain.def.iri? this._g_def.address: '';\n\t}\n\n\tget type(): AddressType {\n\t\treturn AddressType.CONTRACT;\n\t}\n\n\tget familyRef(): Family.Ref {\n\t\treturn Family.refFromId('cosmos-sdk');\n\t}\n}\n\nexport namespace Token {\n\texport type Ref = TokenRef;\n\texport type Def = TokenDef;\n\texport const Def = TokenDef;\n\texport type Config = TokenConfig;\n\texport type Param = TokenParam;\n\n\texport type Denom = TokenDenom;\n\n\texport type Path = TokenPath;\n\n\texport type MemberRef<\n\t\ts_path extends string=string,\n\t> = `${TokenRef}${Plural}/${string}/`;\n\n\texport interface Member<\n\t\ts_path extends string=string,\n\t> extends Thing<`${TokenPath}/${s_path}`> {\n\t}\n}\n","import {\n\ttype IntraChain,\n\tClassType,\n\tDefinable,\n\ttype Labelable,\n\ttype Thing,\n} from './_core';\n\nimport type {\n\tWisprResUri,\n} from '#/state/path';\n\nimport type { Chain } from './chain';\nimport { Token } from './token';\nimport type { Icon } from './icon';\nimport type { Tag } from './tag';\n\ntype IbctPath = `${Token.Path}/ibcts/${string}`;\n\ntype IbctRef = Token.MemberRef; // `${WisprResUri>}ibct/`;\n\ninterface IbctDef extends Token.Member<`ibcts/${string}`> {\n\tclass: ClassType.IBCT,\n\thomeTokenRef: Token.Ref;\n\tcolonies: Record;\n}\n\ninterface IbctConfig {\n\thomeTokenRef: Token.Ref;\n\tcolonies: Record;\n}\n\n// export interface TokenParam extends Chain.Param {\n// \ttokenId: string;\n// }\n\nclass IbctDef {\n\tstatic fromConfig(gc_ibct: IbctConfig): IbctDef {\n\t\treturn {\n\t\t\t...gc_ibct,\n\t\t\tcolonies: gc_ibct.colonies || {},\n\t\t\tiri: Ibct.refFromHomeToken(gc_ibct.homeTokenRef),\n\t\t\tclass: ClassType.IBCT,\n\t\t};\n\t}\n}\n\n\nexport class Ibct extends Definable {\n\tstatic refFromHomeToken(p_token: Token.Ref): IbctRef {\n\t\treturn `${p_token}ibcts/.default/` as IbctRef;\n\t}\n\n\tstatic parseRef(sr_ref: IbctRef) {\n\t\tconst {\n\t\t\tchainId: si_chain,\n\t\t\ttokenId: si_token,\n\t\t\trest: sr_path,\n\t\t} = Token.parseRef(sr_ref);\n\n\t\t// const a_parsed = parse_path_pair(sr_path, 'ibct');\n\t\n\t\treturn {\n\t\t\tchainId: si_chain,\n\t\t\ttokenId: si_token,\n\t\t\trest: sr_path\n\t\t};\n\t}\n}\n\nexport namespace Ibct {\n\texport type Ref = IbctRef;\n\texport type Def = IbctDef;\n\texport const Def = IbctDef;\n\texport type Config = IbctConfig;\n\t// export type Param = IbctParam;\n}\n","import type { JsonObject } from \"#/util/types\";\n\nconst RT_INTEGER = /^[0-9]+$/;\n\nexport namespace Snip20 {\n\tinterface _Msg extends JsonObject {\n\t\tpadding?: string;\n\t}\n\n\texport interface Transfer extends _Msg {\n\t\ttransfer: {\n\t\t\trecipient: string;\n\t\t\tamount: string;\n\t\t};\n\t}\n\n\texport interface Send extends _Msg {\n\t\tsend: {\n\t\t\trecipient: string;\n\t\t\tamount: string;\n\t\t\tmsg?: string;\n\t\t};\n\t}\n\n\texport interface RegisterReceive extends _Msg {\n\t\tcode_hash: string;\n\t}\n\n\texport interface CreateViewingKey extends _Msg {\n\t\tentropy: string;\n\t}\n\n\texport interface SetViewingKey extends _Msg {\n\t\tkey: string;\n\t}\n\n\texport type Message = Transfer | Send | RegisterReceive | CreateViewingKey | SetViewingKey;\n\n\texport function isNonEmptyString(z_data: any): z_data is string {\n\t\treturn z_data && 'string' === typeof z_data;\n\t}\n\n\texport function isRecipient(z_data: any): z_data is string {\n\t\treturn z_data && 'string' === typeof z_data;\n\t}\n\n\texport function isInteger(z_data: any): z_data is `${number}` {\n\t\treturn z_data && 'string' === typeof z_data && RT_INTEGER.test(z_data);\n\t}\n\n\texport function isTransfer(z_data: JsonObject): z_data is Transfer {\n\t\tif(z_data && 'object' == typeof z_data.transfer) {\n\t\t\tif(1 === Object.keys(z_data).length) {\n\t\t\t\tconst z_transfer = z_data.transfer as JsonObject;\n\t\t\t\tif(isRecipient(z_transfer.recipient) && isInteger(z_transfer.amount)) {\n\t\t\t\t\tif('string' === typeof z_transfer.padding) {\n\t\t\t\t\t\treturn 3 === Object.keys(z_transfer).length;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\treturn 2 === Object.keys(z_transfer).length;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\texport interface TransferEvent extends JsonObject {\n\t\tid?: string;\n\t\tfrom: string;\n\t\tsender: string;\n\t\treceiver: string;\n\t\tcoins: {\n\t\t\tdenom: string;\n\t\t\tamount: string;\n\t\t};\n\t}\n\n\texport interface Allowance extends JsonObject {\n\t\tspender: string;\n\t\tamount: string;\n\t\texpiration?: null | number;\n\t}\n}","import type {\n\tMerge,\n} from 'ts-toolbelt/out/Object/Merge';\n\nimport type {\n\tWisprResUri,\n} from '#/state/path';\n\nimport {\n\tClassType,\n\tDefinable,\n\ttype Thing,\n} from './_core';\n\nimport {\n\tChain,\n\tToken,\n} from '#/objects';\n\nimport type { JsonObject } from '#/util/types';\nimport { Snip20 } from '#/type/snip20';\nimport { H_CHAINS, K_DEFAULT_CHAIN } from '#/sim/data';\n\ntype TxnRef = `${WisprResUri}txns/${string}/`;\n\nenum TxnType {\n\tUNKN = 'unknown',\n\tSEND = 'send',\n\tRECV = 'receive',\n\tCOMP = 'compute',\n\tSNIP20_XFER = 'snip-20:transfer',\n}\n\ninterface TxnDef extends Thing<`chains/${string}/txns/${string}`> {\n\tclass: ClassType.TXN,\n\ttxnId: string;\n\taddress: string;\n\tchainRef: Chain.Ref;\n\ttype: TxnType;\n\tdata: JsonObject;\n\tamount: bigint;\n\ttimestamp: number;\n\ttokenRef: Token.Ref;\n\tpending?: boolean;\n}\n\ntype TxnConfig = {\n\ttoken: Token;\n\ttxnId: string;\n\ttimestamp: number;\n\tpending?: boolean;\n\ttype?: TxnType;\n\tdata?: JsonObject;\n} | {\n\ttxnId: string;\n\taddress: string;\n\ttimestamp: number;\n\tchainRef: Chain.Ref;\n\ttype?: TxnType;\n\tdata?: JsonObject;\n\tamount?: bigint;\n}\n\nclass TxnDef {\n\tstatic fromConfig(gc_txn: TxnConfig): TxnDef {\n\t\tlet h_def = {\n\t\t\t...gc_txn,\n\t\t};\n\n\t\tif('token' in gc_txn) {\n\t\t\tconst k_token = gc_txn.token;\n\t\t\tObject.assign(h_def, {\n\t\t\t\ttokenRef: k_token.def.iri,\n\t\t\t\taddress: k_token.def.address,\n\t\t\t\tchainRef: k_token.def.chainRef,\n\t\t\t\tamount: 0,\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tObject.assign(h_def, {\n\t\t\t\tamount: gc_txn.amount || 0n,\n\t\t\t\tdata: gc_txn.data || {},\n\t\t\t\ttype: gc_txn.type || TxnType.UNKN,\n\t\t\t\tiri: Txn.refFromChainTxnId(gc_txn.chainRef, gc_txn.txnId),\n\t\t\t\tclass: ClassType.TXN,\n\t\t\t\ttokenRef: Token.refFromChainAddr(K_DEFAULT_CHAIN.def.iri, '.native'),\n\t\t\t});\n\t\t}\n\n\t\treturn h_def as TxnDef;\n\t}\n}\n\nenum TxnBankishType {\n\tSEND = 'send',\n\tRECV = 'receive',\n}\n\ninterface TxnBankish {\n\ttype: TxnBankishType;\n\tamount: bigint;\n\taddress: string;\n\tproxy?: string;\n}\n\ninterface TxnEvent extends JsonObject {\n\tid?: string;\n\tfrom: string;\n\tsender: string;\n\treceiver: string;\n\tcoins: {\n\t\tdenom: string;\n\t\tamount: string;\n\t};\n}\n\nexport class Txn extends Definable {\n\tstatic refFromChainTxnId(p_chain: string, si_txn: string): TxnRef {\n\t\treturn `${p_chain}txns/${si_txn}/` as TxnRef;\n\t}\n\n\tsnip20(): null | TxnEvent {\n\t\tconst z_data = this._g_def.data;\n\t\tif(z_data) {\n\t\t\t// if(Snip20.isTransfer(z_data)) {\n\t\t\t\t// return z_data;\n\t\t\t// }\n\t\t\treturn z_data as TxnEvent;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\ttoken(H_TOKENS: Record): Token {\n\t\treturn H_TOKENS[this._g_def.tokenRef];\n\t}\n\n\tbankish(sa_owner: string): null | TxnBankish {\n\t\tconst z_data = this._g_def.data;\n\n\t\tswitch(this._g_def.type) {\n\t\t\tcase TxnType.SEND: {\n\t\t\t\treturn {\n\t\t\t\t\ttype: TxnBankishType.SEND,\n\t\t\t\t\tamount: this._g_def.amount,\n\t\t\t\t\taddress: this._g_def.address,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tcase TxnType.RECV: {\n\t\t\t\treturn {\n\t\t\t\t\ttype: TxnBankishType.RECV,\n\t\t\t\t\tamount: this._g_def.amount,\n\t\t\t\t\taddress: this._g_def.address,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tcase TxnType.SNIP20_XFER: {\n\t\t\t\tconst g_xfer = z_data as Snip20.TransferEvent;\n\t\t\t\tif(!g_xfer) debugger;\n\t\t\t\tconst xg_amount = BigInt(g_xfer.coins.amount);\n\t\t\t\tif(sa_owner === g_xfer.receiver) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: TxnBankishType.RECV,\n\t\t\t\t\t\tamount: xg_amount,\n\t\t\t\t\t\taddress: g_xfer.from,\n\t\t\t\t\t\tproxy: g_xfer.sender,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: TxnBankishType.SEND,\n\t\t\t\t\t\tamount: xg_amount,\n\t\t\t\t\t\taddress: g_xfer.receiver,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tdate(): string {\n\t\tconst dt_when = new Date(this._g_def.timestamp);\n\t\t\n\t\treturn dt_when.toLocaleDateString('en-US', {\n\t\t\tmonth: 'short',\n\t\t\tday: 'numeric',\n\t\t\tyear: dt_when.getFullYear() !== (new Date()).getFullYear()? 'numeric': void 0,\n\t\t});\n\t}\n}\n\nexport namespace Txn {\n\texport type Ref = TxnRef;\n\n\texport type Def = TxnDef;\n\texport const Def = TxnDef;\n\n\texport type Type = TxnType;\n\texport const Type = TxnType;\n\n\texport type Event = TxnEvent;\n\n\texport type BankishType = TxnBankishType;\n\texport const BankishType = TxnBankishType;\n\texport type Bankish = TxnBankish;\n\n\texport type Snip20Msg = JsonObject & {\n\t\t[k in Key]: Merge;\n\t}\n\n\texport type Snip20Msg_Transfer = Snip20Msg<'transfer', {\n\t\trecipient: string;\n\t\tamount: Token.Denom;\n\t}>;\n\n\texport type Snip20Msg_Send = Snip20Msg<'send', {\n\t\trecipient: string;\n\t\tamount: Token.Denom;\n\t\tmsg: string;\n\t}>;\n\n\texport type Snip20Msg_RegisterReceive = Snip20Msg<'register_receive', {\n\t\tcode_hash: string;\n\t}>;\n\n\texport interface Snip20Config extends JsonObject {\n\t\ttransfer?: {\n\t\t\trecipient: string;\n\t\t\tamount: Token.Denom;\n\t\t};\n\t}\n\n}\n","import {\n\ttype IntraChain,\n\tClassType,\n\tDefinable,\n} from './_core';\n\nimport type {\n\tWisprResUri,\n} from '#/state/path';\n\nimport type { Chain } from './chain';\nimport type { Icon } from './icon';\nimport type { Tag } from './tag';\nimport BigNumber from 'bignumber.js';\nimport type { Ibct } from './ibct';\nimport type { Type } from 'ts-toolbelt/out/Any/Type';\nimport type { Hash } from 'crypto';\nimport type { JsonObject, JsonValue } from '#/util/types';\n\n\ntype NftRef = Chain.MemberRef;\n\ntype MetadataStruct = Partial<{\n\tname: string;\n\tdescription: string;\n\timage: string;\n\timage_data: string;\n\texternal_url: string;\n\tbackground_color: string;\n\tanimatino_url: string;\n\tyoutube_url: string;\n\tattributes: JsonObject[];\n\tmedia: JsonObject[];\n\tprotected_attirbutes: string[];\n}>;\n\ninterface NftDef extends Chain.Asset<`snip721s/${string}`> {\n\tclass: ClassType.SNIP721,\n\n\tid: string;\n\tautoLabel: string;\n\timage: string;\n\tsymbol: string;\n\towner: string;\n\textension: JsonValue;\n}\n\ninterface NftConfig {\n\tid: string;\n\tlabel: string;\n\tautoLabel: string;\n\timage: string;\n\towner: string;\n\taddress: string,\n\tsymbol?: string;\n\textension?: JsonValue;\n\tchainRef: Chain.Ref;\n\ticonRef: Icon.Ref;\n\ttagRefs?: Tag.Ref[];\n}\n\nexport interface NftParam extends Chain.Param {\n\ttokenId: string;\n}\n\nclass NftDef implements Icon.Refable {\n\tstatic fromConfig(gc_nft: NftConfig): NftDef {\n\t\treturn {\n\t\t\t...gc_nft,\n\t\t\tsymbol: gc_nft.symbol || '',\n\t\t\textension: gc_nft.extension || {},\n\t\t\ttagRefs: gc_nft.tagRefs || [],\n\t\t\tiri: Nft.refFromChainOwnerAddrId(gc_nft.chainRef, gc_nft.owner, gc_nft.address, gc_nft.id),\n\t\t\tclass: ClassType.SNIP721,\n\t\t};\n\t}\n}\n\n\nexport class Nft extends Definable {\n\tstatic refFromChainOwnerAddrId(p_chain: Chain.Ref, sa_owner: string, si_addr: string, s_id: string): NftRef {\n\t\treturn `${p_chain}snip721s/${si_addr}/${s_id}/${sa_owner}/` as NftRef;\n\t}\n\n\t// static parseRef(sr_ref: NftRef) {\n\t// \tconst {\n\t// \t\tchainId: si_chain,\n\t// \t\trest: sr_path,\n\t// \t} = Chain.Def.parseRef(sr_ref);\n\n\t// \tconst a_parsed = parse_path_pair(sr_path, 'tokens');\n\t\n\t// \treturn {\n\t// \t\tchainId: si_chain,\n\t// \t\ttokenId: a_parsed[0],\n\t// \t\trest: a_parsed[1],\n\t// \t};\n\t// }\n}\n\nexport namespace Nft {\n\texport type Ref = NftRef;\n\texport type Def = NftDef;\n\texport const Def = NftDef;\n\texport type Config = NftConfig;\n\texport type Param = NftParam;\n}\n","import {\n\tClassType,\n\tDefinable,\n} from './_core';\n\nimport {\n\tIcon,\n\tFamily,\n\tChain,\n} from '#/objects';\n\ntype NetworkRef = Chain.MemberRef;\n\ntype NetworkPath = `families/${string}/chains/${string}/networks/${string}`;\n\ninterface NetworkDef extends Icon.Refable {\n\tclass: ClassType.NETWORK,\n\tid: string;\n\trpc: string;\n\trest: string;\n\tchainRef: Chain.Ref;\n};\n\n\ninterface NetworkConfig {\n\tid: string;\n\tfamily?: string;\n\tchain?: string;\n\tchainRef?: Chain.Ref;\n\tlabel: string;\n\ticonRef?: Icon.Ref;\n}\n\nclass NetworkDef {\n\tstatic fromConfig(gc_network: NetworkConfig): NetworkDef {\n\t\tconst p_chain = gc_network.chainRef || Chain.refFromFamilyId(Family.refFromId(gc_network.family!) || '.orphan', gc_network.chain!);\n\n\t\treturn {\n\t\t\tclass: ClassType.NETWORK,\n\t\t\tiri: Network.refFromChainId(p_chain, gc_network.id),\n\t\t\tchainRef: p_chain,\n\t\t\tid: gc_network.id,\n\t\t\tlabel: gc_network.label,\n\t\t\trpc: '',\n\t\t\trest: '',\n\t\t\ticonRef: gc_network.iconRef || Icon.BLANK.def.iri,\n\t\t\ttagRefs: [],\n\t\t};\n\t}\n\n\t// static parseRef(sr_ref: WisprRef): ChainParam {\n\t// \tconst [si_chain, s_rest] = parse_path_pair(wispr_path(sr_ref), 'chains');\n\n\t// \treturn {\n\t// \t\tchainId: si_chain,\n\t// \t\trest: s_rest,\n\t// \t};\n\t// }\n}\n\nexport class Network extends Definable {\n\tstatic refFromChainId(p_chain: Chain.Ref, si_network: string): NetworkRef {\n\t\treturn `${p_chain}networks/${si_network}/`;\n\t}\n}\n\n\nexport namespace Network {\n\texport type Ref = NetworkRef;\n\texport type Def = NetworkDef;\n\texport const Def = NetworkDef;\n\texport type Config = NetworkConfig;\n\n\t// export interface Resource<\n\t// \ts_path extends string=string,\n\t// > extends Icon.Refable<`${NetworkPath}/${s_path}`> {\n\t// \taddress: string;\n\t// \tchainRef: Ref;\n\t// }\n}\n","import {\n\tAddressable,\n\tAddressType,\n\tClassType,\n\tDefinable,\n} from './_core';\n\nimport {\n\ttype Tag,\n\ttype Chain,\n\ttype Txn,\n\tIcon,\n\tContact,\n} from '#/objects';\n\n\ntype ContractPath = `${Chain.Path}/contracts/${string}`;\n\t\ntype ContractRef = Chain.MemberRef;\n\ninterface ContractDef extends Chain.Asset<`contracts/${string}`> {\n\tclass: ClassType.CONTRACT,\n\ttype: Contact.Type;\n\tchainRef: Chain.Ref;\n\tcodeHash: string;\n}\n\ninterface ContractConfig {\n\tlabel: string;\n\taddress: string;\n\tcodeHash: string;\n\tchainRef: Chain.Ref;\n\ttagRefs?: Tag.Ref[],\n\ticonRef?: Icon.Ref;\n\ttype?: Contact.Type;\n}\n\nclass ContractDef {\n\tstatic fromConfig(gc_contact: ContractConfig): ContractDef {\n\t\treturn {\n\t\t\t...gc_contact,\n\t\t\ticonRef: gc_contact.iconRef as Icon.Ref,\n\t\t\t// || Icon.Def.BLANK.iri,\n\t\t\ttagRefs: gc_contact.tagRefs || [],\n\t\t\tiri: Contract.refFromChainAddr(gc_contact.chainRef, gc_contact.address),\n\t\t\ttype: gc_contact.type || Contact.Type.CONTRACT,\n\t\t\tclass: ClassType.CONTRACT,\n\t\t};\n\t}\n}\n\n\n\nexport class Contract extends Addressable {\n\tstatic refFromChainAddr(p_chain: Chain.Ref, sa_addr: string): ContractRef {\n\t\treturn `${p_chain}contracts/${sa_addr}/`;\n\t}\n\n\tprotected _a_history: Txn.Bankish[] = [];\n\n\tget history(): Txn.Bankish[] {\n\t\treturn this._a_history;\n\t}\n\n\taddress(k_chain: Chain): string {\n\t\treturn k_chain.def.iri === this._g_def.chainRef? this._g_def.address: '';\n\t}\n\n\tget label(): string {\n\t\treturn this._g_def.label;\n\t}\n\n\tget type(): AddressType {\n\t\treturn AddressType.CONTRACT;\n\t}\n}\n\nexport namespace Contract {\n\texport type Ref = ContractRef;\n\n\texport type Def = ContractDef;\n\texport const Def = ContractDef;\n\n\texport type Path = ContractPath;\n\n\texport type Config = ContractConfig;\n}\n","\nimport {\n\tClassType,\n\tDefinable,\n} from './_core';\n\nimport {\n\tparse_path_pair,\n\twispr_path,\n\ttype WisprRef,\n\ttype WisprResUri,\n} from '#/state/path';\n\nimport { Icon } from './icon';\nimport type { Plural } from '#/util/types';\n\ntype SiteRef = WisprResUri;\n\ntype SitePath = `sites/${string}`;\n\ninterface SiteDef extends Icon.Refable {\n\tclass: ClassType.SITE,\n\tdomain: string;\n};\n\n\ninterface SiteConfig {\n\tdomain: string;\n\tlabel: string;\n\ticonRef?: Icon.Ref;\n}\n\nclass SiteDef {\n\tstatic fromConfig(gc_site: SiteConfig): SiteDef {\n\t\treturn {\n\t\t\tclass: ClassType.SITE,\n\t\t\tiri: Site.refFromDomain(gc_site.domain),\n\t\t\tdomain: gc_site.domain,\n\t\t\tlabel: gc_site.label,\n\t\t\ticonRef: gc_site.iconRef || Icon.BLANK.def.iri,\n\t\t\ttagRefs: [],\n\t\t};\n\t}\n\n\tstatic parseRef(sr_ref: WisprRef): SiteParam {\n\t\tconst [si_site, s_rest] = parse_path_pair(wispr_path(sr_ref), 'sites');\n\n\t\treturn {\n\t\t\tfamilyId: si_site,\n\t\t\trest: s_rest,\n\t\t};\n\t}\n}\n\n\nexport class Site extends Definable {\n\tstatic refFromDomain(p_domain: string): SiteRef {\n\t\treturn `wispr://root/sites/${p_domain}/`;\n\t}\n}\n\ninterface SiteParam {\n\tfamilyId: string;\n\trest: string;\n}\n\nexport namespace Site {\n\texport type Ref = SiteRef;\n\texport type Def = SiteDef;\n\texport const Def = SiteDef;\n\texport type Config = SiteConfig;\n\n\texport type Param = SiteParam;\n\texport type Path = SitePath;\n\n\texport type MemberRef<\n\t\ts_path extends string=string,\n\t> = `${SiteRef}${Plural}/${string}/`;\n\n\texport interface Member<\n\t\ts_path extends string=string,\n\t> extends Icon.Refable<`${SitePath}/${s_path}`> {\n\n\t}\n}\n","import { fold, ode, oderac, oderom } from \"#/util/belt\";\n\nimport {\n\tAccount,\n\tChain,\n\tIcon,\n\tTag,\n\tToken,\n\tHolding,\n\tContact,\n\tTxn,\n\tFamily,\n} from \"#/objects\";\n\nimport { Ibct } from \"#/objects/ibct\";\nimport type { Hash } from \"#/util/types\";\nimport type { WisprUri } from \"#/state/path\";\nimport type { ClassType, Searchable, Thing } from \"#/objects/_core\";\nimport { Nft } from \"#/objects/nft\";\nimport type { Has } from \"ts-toolbelt/out/Union/Has\";\nimport { Network } from \"#/objects/network\";\nimport { Contract } from \"#/objects/contract\";\nimport { uuid_v4 } from \"#/util/dom\";\nimport { Site } from \"#/objects/site\";\n\nexport interface SearchItem extends Thing {\n\tclass: ClassType;\n\tiri: WisprUri<`${string}/`>;\n\tlabel: string;\n\tdetail: string;\n}\n\nexport const A_SEARCHABLE: SearchItem[] = [];\n\nexport const H_THINGS = {} as Record;\n\n\nexport const H_ICONS: Record = {\n\t[Icon.refFromFile('blank.svg')]: new Icon(Icon.Def.fromFile('blank.svg')),\n};\n// = oderom({\n// \thouse: {\n// \t\t'mars.png': {},\n// \t},\n// \ttoken: {\n// \t\t// 'secret.svg': {},\n// \t\t// 'luna.svg': {},\n// \t\t// 'monero.svg': {},\n// \t\t// 'tether.svg': {},\n// \t\t// 'usd-coin': {},\n// \t\t// 'wrapped-bitcoin.svg': {},\n// \t\t// 'atom.svg': {},\n// \t\t// 'bnb_binance.svg': {},\n// \t\t// 'doge_binance.svg': {},\n// \t\t// 'eth_ethereum.svg': {},\n// \t\t// 'scrt.svg': {},\n// \t\t// 'sefi.svg': {},\n// \t\t// 'sienna.svg': {},\n// \t\t// 'sscrt.svg': {},\n// \t\t// 'usdc_binance.svg': {},\n// \t\t// 'usdc_ethereum.svg': {},\n// \t\t// 'akash.svg': {},\n// \t\t// 'dvpn.png': {},\n// \t\t// 'iris.svg': {},\n// \t\t// 'juno.svg': {},\n// \t\t// 'osmosis.svg': {},\n// \t\t// 'regen.png': {},\n// \t\t// 'shade.png': {},\n// \t},\n// }, (sr_folder: string, h_files: Hash) => {\n// \treturn oderom(h_files, (sr_file: string) => {\n// \t\tconst gd_icon = Icon.Def.fromFile(`${sr_folder}/${sr_file}`);\n\n// \t\treturn {\n// \t\t\t[gd_icon.iri]: new Icon(gd_icon),\n// \t\t};\n// \t})\n// });\n\n\nexport const A_HOUSES = [\n\t'mars',\n\t'minerva',\n\t'apollo',\n\t'ceres',\n\t'diana',\n];\n\nfor(const s_house of A_HOUSES) {\n\tconst gd_icon = Icon.Def.fromFile(`house/${s_house}.png`);\n\tH_ICONS[gd_icon.iri] = new Icon(gd_icon);\n}\n\n\nexport const H_ACCOUNTS: Record = fold([\n\t{\n\t\tid: '*',\n\t\tlabel: 'All accounts',\n\t\taddress: '*',\n\t},\n\t{\n\t\tid: '1',\n\t\tlabel: 'Mars',\n\t\tpubkey: '0mtm48ul5mcgjj4hm0a4j3td4l5pt590erl3k9',\n\t\timage: 'house/mars.png',\n\t},\n\t{\n\t\tid: '2',\n\t\tlabel: 'Minerva',\n\t\tpubkey: 'aqfw3gmp6h9e2ggtpmm7q245dwnyjggq7n32ag',\n\t\timage: 'house/minerva.png',\n\t},\n\t{\n\t\tid: '3',\n\t\tlabel: 'Apollo',\n\t\tpubkey: 'aqfw3gmp6h9e2ggtpmm7q245dwnyjggq7n32az',\n\t\timage: 'house/apollo.png',\n\t},\n], (gc_account) => {\n\tconst p_icon = gc_account.image? Icon.refFromFile(gc_account.image): '' as Icon.Ref;\n\n\tconst gd_account = Account.Def.fromConfig({\n\t\t...gc_account as Account.Config,\n\t\ticonRef: p_icon,\n\t});\n\n\tA_SEARCHABLE.push({\n\t\tiri: gd_account.iri,\n\t\tclass: gd_account.class,\n\t\tlabel: gd_account.label,\n\t\tdetail: gd_account.pubkey,\n\t});\n\n\treturn {\n\t\t[gd_account.iri]: new Account(gd_account),\n\t};\n});\n\nexport const K_DEFAULT_ACCOUNT = Object.values(H_ACCOUNTS)[1];\nexport const S_ACCOUNT_PUBKEY = K_DEFAULT_ACCOUNT.def.pubkey;\n\nexport const H_FAMILIES = oderom({\n\t'cosmos-sdk': {\n\t\tlabel: 'Cosmos SDK',\n\t},\n}, (si_family, gc_family) => {\n\tconst gd_family = Family.Def.fromConfig({\n\t\t...gc_family,\n\t\tid: si_family,\n\t});\n\n\treturn {\n\t\t[gd_family.iri]: new Family(gd_family),\n\t};\n});\n\nexport const H_CHAINS: Record = oderom({\n\t'cosmos-sdk': {\n\t\tsecret: {\n\t\t\tiri: `wispr://root/chains/secret-4/`,\n\t\t\tlabel: 'Secret Network',\n\t\t\tid: 'secret-4',\n\t\t\trpc: '',\n\t\t\trest: '',\n\t\t\ttagRefs: [],\n\t\t\ticon: 'secret.svg',\n\t\t},\n\t\tcosmos: {\n\t\t\tiri: `wispr://root/chains/cosmos-4/`,\n\t\t\tlabel: 'Cosmos Hub',\n\t\t\tid: 'cosmos-4',\n\t\t\trpc: '',\n\t\t\trest: '',\n\t\t\ttagRefs: [],\n\t\t\ticon: 'atom.svg',\n\t\t},\n\t\t// terra: {\n\t\t// \tiri: `wispr://root/chains/columbus-5/`,\n\t\t// \tlabel: 'Terra',\n\t\t// \tid: 'columbus-5',\n\t\t// \trpc: '',\n\t\t// \trest: '',\n\t\t// \ttagRefs: [],\n\t\t// \ticon: 'luna.svg',\n\t\t// },\n\t\t// akash: {\n\t\t// \tiri: `wispr://root/chains/akash-5/`,\n\t\t// \tlabel: 'Sentinel',\n\t\t// \tid: 'sentinelhub-5',\n\t\t// \trpc: '',\n\t\t// \trest: '',\n\t\t// \ttagRefs: [],\n\t\t// \ticon: 'dvpn.png',\n\t\t// \tbechPrefix: 'sent',\n\t\t// },\n\t\t// osmosis: {\n\t\t// \tiri: `wispr://root/chains/osmosis-1/`,\n\t\t// \tlabel: 'Osmosis',\n\t\t// \tid: 'osmosis-5',\n\t\t// \trpc: '',\n\t\t// \trest: '',\n\t\t// \ttagRefs: [],\n\t\t// \ticon: 'osmosis.svg',\n\t\t// \tbechPrefix: 'osmo',\n\t\t// },\n\t\t// kava: {\n\t\t// \tiri: `wispr://root/chains/kava-2/`,\n\t\t// \tlabel: 'Kava',\n\t\t// \tid: 'kava-2',\n\t\t// \trpc: '',\n\t\t// \trest: '',\n\t\t// \ttagRefs: [],\n\t\t// \ticon: 'kava.svg',\n\t\t// },\n\t\t// juno: {\n\t\t// \tiri: `wispr://root/chains/juno-1/`,\n\t\t// \tlabel: 'Juno',\n\t\t// \tid: 'juno-1',\n\t\t// \trpc: '',\n\t\t// \trest: '',\n\t\t// \ttagRefs: [],\n\t\t// \ticon: 'juno.svg',\n\t\t// },\n\t},\n}, (si_family, h_chains) => {\n\tconst p_family = Family.refFromId(si_family);\n\n\treturn oderom(h_chains, (si_alias, gc_chain) => {\n\t\tconst gd_chain = Chain.Def.fromConfig({\n\t\t\t...gc_chain,\n\t\t\tbechPrefix: (gc_chain as {bechPrefix?:string}).bechPrefix || si_alias,\n\t\t\tfamilyRef: p_family,\n\t\t\ticonRef: gc_chain.icon? Icon.refFromFile(`token/${gc_chain.icon}`): Icon.BLANK.def.iri,\n\t\t});\n\n\t\tA_SEARCHABLE.push({\n\t\t\tiri: gd_chain.iri,\n\t\t\tclass: gd_chain.class,\n\t\t\tlabel: gd_chain.label,\n\t\t\tdetail: gd_chain.id,\n\t\t});\n\n\t\treturn {\n\t\t\t[gd_chain.iri]: new Chain(gd_chain),\n\t\t};\n\t});\n});\n\n\nconst H_FAMILY_NETWORKS = {\n\t'cosmos-sdk': {\n\t\tdefault: {\n\t\t\tlabel: 'Default Provider',\n\t\t},\n\t},\n} as Hash>;\n\nexport const H_NETWORKS = oderom({\n\t'cosmos-sdk': {\n\t\t'secret-4': {\n\t\t\tstarshell: {\n\t\t\t\tlabel: 'StarShell Priority',\n\t\t\t\t// overlay: 'site/starshell.png',\n\t\t\t},\n\t\t\tfigment: {\n\t\t\t\tlabel: 'Figment',\n\t\t\t\t// overlay: 'site/figment.png',\n\t\t\t},\n\t\t},\n\t\t'cosmos-4': {},\n\t},\n}, (si_family, h_chains) => {\n\tconst p_family = Family.refFromId(si_family);\n\tconst h_inherits = H_FAMILY_NETWORKS[si_family];\n\n\treturn oderom({\n\t\t...h_chains,\n\t}, (si_chain, h_networks) => {\n\t\tconst p_chain = Chain.refFromFamilyId(p_family, si_chain);\n\n\t\tconst f_mk_network = (si_network: string, gc_network: {label:string, overlay?:string}) => {\n\t\t\tlet p_icon: Icon.Ref;\n\t\t\tif(gc_network.overlay) {\n\t\t\t\tconst gd_icon_fg = Icon.Def.fromFile(gc_network.overlay);\n\t\t\t\tH_ICONS[gd_icon_fg.iri] = new Icon(gd_icon_fg);\n\n\t\t\t\tconst gd_icon_comp = Icon.Def.fromComposite(H_CHAINS[p_chain].def.iconRef, gd_icon_fg.iri);\n\t\t\t\tp_icon = gd_icon_comp.iri;\n\t\t\t\tH_ICONS[p_icon] = new Icon(gd_icon_comp);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tp_icon = H_CHAINS[p_chain].def.iconRef;\n\t\t\t}\n\t\t\t\n\t\t\tconst gd_network = Network.Def.fromConfig({\n\t\t\t\t...gc_network,\n\t\t\t\tid: si_network,\n\t\t\t\tchainRef: p_chain,\n\t\t\t\ticonRef: p_icon,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\t[gd_network.iri]: new Network(gd_network),\n\t\t\t};\n\t\t};\n\n\t\treturn {\n\t\t\t...oderom(h_inherits || {}, f_mk_network),\n\t\t\t...oderom(h_networks, f_mk_network),\n\t\t};\n\t});\n});\n\nexport const K_DEFAULT_CHAIN = Object.values(H_CHAINS)[0];\nexport const SA_ACCOUNT_DEFAULT = K_DEFAULT_ACCOUNT.address(K_DEFAULT_CHAIN);\n\nexport const H_TAGS: Record = oderom({\n\t// 1: {\n\t// \tlabel: 'Pink',\n\t// \tcolor: '#D500F9',\n\t// },\n\t1: {\n\t\tlabel: 'Speculative',\n\t\tcolor: '#D500F9',\n\t},\n\t// 2: {\n\t// \tlabel: 'Purple',\n\t// \tcolor: '#C51162',\n\t// },\n\t2: {\n\t\tlabel: 'Space Enthusiast',\n\t\tcolor: '#C51162',\n\t},\n\t// 3: {\n\t// \tlabel: 'Red',\n\t// \tcolor: '#FF4D21',\n\t// },\n\t3: {\n\t\tlabel: 'Meme Lord',\n\t\tcolor: '#FF4D21',\n\t},\n\t// 4: {\n\t// \tlabel: 'Orange',\n\t// \tcolor: '#FF8622',\n\t// },\n\t4: {\n\t\tlabel: 'Governance',\n\t\tcolor: '#FF8622',\n\t},\n\t// 5: {\n\t// \tlabel: 'Yellow',\n\t// \tcolor: '#EEB521',\n\t// },\n\t// 5: {\n\t// \tlabel: 'Crypto OG',\n\t// \tcolor: '#EEB521',\n\t// },\n\t5: {\n\t\tlabel: 'BSC',\n\t\tcolor: '#EEB521',\n\t},\n\t// 6: {\n\t// \tlabel: 'Grass',\n\t// \tcolor: '#7E9E24',\n\t// },\n\t6: {\n\t\tlabel: 'Sellable',\n\t\tcolor: '#7E9E24',\n\t},\n\t// 7: {\n\t// \tlabel: 'Green',\n\t// \tcolor: '#3A6F16',\n\t// },\n\t7: {\n\t\tlabel: 'DeFi',\n\t\tcolor: '#3A6F16',\n\t},\n\t// 8: {\n\t// \tlabel: 'Teal',\n\t// \tcolor: '#009688',\n\t// },\n\t8: {\n\t\tlabel: 'Stablecoin',\n\t\tcolor: '#009688',\n\t},\n\t// 9: {\n\t// \tlabel: 'Blue',\n\t// \tcolor: '#1976D2',\n\t// },\n\t9: {\n\t\tlabel: 'IBC',\n\t\tcolor: '#1976D2',\n\t},\n\t// 10: {\n\t// \tlabel: 'Violet',\n\t// \tcolor: '#6200EA',\n\t// },\n\t10: {\n\t\tlabel: 'Crypto OG',\n\t\tcolor: '#6200EA',\n\t},\n\t// 11: {\n\t// \tlabel: 'Gray',\n\t// \tcolor: '#607D8B',\n\t// },\n\t11: {\n\t\tlabel: 'Business',\n\t\tcolor: '#607D8B',\n\t},\n\t// 12: {\n\t// \tlabel: 'Brown',\n\t// \tcolor: '#795548',\n\t// },\n\t12: {\n\t\tlabel: 'Ethereum',\n\t\tcolor: '#795548',\n\t},\n\t13: {\n\t\tlabel: 'White',\n\t\tcolor: '#FFFFFF',\n\t},\n}, (si_tag: string, gc_tag) => {\n\tconst gd_tag = Tag.Def.fromConfig({\n\t\t...gc_tag,\n\t\tid: si_tag,\n\t});\n\n\treturn {\n\t\t[gd_tag.iri]: new Tag(gd_tag),\n\t}\n});\n\ninterface SimTokenConfig {\n\tlabel: string;\n\taddress: string;\n\ticon: string;\n\ttags?: number[];\n\tdecimals?: number;\n\tdata?: Hash;\n}\n\nexport const H_TOKENS: Record = oderom({\n\t'cosmos-sdk': {\n\t\t'secret-4': {\n\t\t\tSCRT: {\n\t\t\t\tlabel: 'Secret',\n\t\t\t\taddress: '.native',\n\t\t\t\ticon: 'secret.svg',\n\t\t\t\ttags: [],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'secret',\n\t\t\t\t},\n\t\t\t},\n\t\t\tsSCRT: {\n\t\t\t\tlabel: 'Secret Secret',\n\t\t\t\taddress: 'secret1k0jntykt7e4g3y88ltc60czgjuqdy4c9e8fzek',\n\t\t\t\ticon: 'sscrt.svg',\n\t\t\t\ttags: [],\n\t\t\t\tallowances: [\n\t\t\t\t\t{\n\t\t\t\t\t\tspender: 'secret1drm0dwvewjyy0rhrrw485q4f5dnfm6j25zgfe5',\n\t\t\t\t\t\tamount: '340282366920938463463374607431768211454',\n\t\t\t\t\t\texpiration: null,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'secret',\n\t\t\t\t},\n\t\t\t},\n\t\t\tsUSDC: {\n\t\t\t\tlabel: 'Secret USD Coin',\n\t\t\t\taddress: 'secret1h6z05y90gwm4sqxzhz4pkyp36cna9xtp7q0urv',\n\t\t\t\ticon: 'usdc_ethereum.svg',\n\t\t\t\ttags: [8, 11],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'usd-coin',\n\t\t\t\t},\n\t\t\t\tallowances: [\n\t\t\t\t\t{\n\t\t\t\t\t\tspender: 'secret14cxq26u8f9zpd09a72uznwz7kew9yc085d08hy',\n\t\t\t\t\t\tamount: '340282366920938463463374607431768211454',\n\t\t\t\t\t\texpiration: null,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tSEFI: {\n\t\t\t\tlabel: 'Secret Finance',\n\t\t\t\taddress: 'secret15l9cqgz5uezgydrglaak5ahfac69kmx2qpd6xt',\n\t\t\t\ticon: 'sefi.svg',\n\t\t\t\ttags: [4, 7],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'secret-finance',\n\t\t\t\t},\n\t\t\t\tallowances: [\n\t\t\t\t\t{\n\t\t\t\t\t\tspender: 'secret1p9nyn4qenwxxzg2j9c3nsqfr9dd09xkne55qjm',\n\t\t\t\t\t\tamount: '340282366920938463463374607431768211454',\n\t\t\t\t\t\texpiration: null,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tspender: 'secret14cxq26u8f9zpd09a72uznwz7kew9yc085d08hy',\n\t\t\t\t\t\tamount: '340282366920938463463374607431768211454',\n\t\t\t\t\t\texpiration: null,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tSHD: {\n\t\t\t\tlabel: 'Shade Protocol',\n\t\t\t\taddress: 'secret1qfql357amn448duf5gvp9gr48sxx9tsnhupu3d',\n\t\t\t\ticon: 'shade.png',\n\t\t\t\ttags: [4, 7],\n\t\t\t\tallowances: [\n\t\t\t\t\t{\n\t\t\t\t\t\tspender: 'secret1drm0dwvewjyy0rhrrw485q4f5dnfm6j25zgfe5',\n\t\t\t\t\t\tamount: '340282366920938463463374607431768211454',\n\t\t\t\t\t\texpiration: null,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'shade-protocol',\n\t\t\t\t}\n\t\t\t},\n\t\t\tSIENNA: {\n\t\t\t\tlabel: 'Sienna',\n\t\t\t\taddress: 'secret1rgm2m5t530tdzyd99775n6vzumxa5luxcllml4',\n\t\t\t\ticon: 'sienna.svg',\n\t\t\t\ttags: [4, 7],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'sienna',\n\t\t\t\t},\n\t\t\t},\n\t\t\tsATOM: {\n\t\t\t\tlabel: 'Secret Cosmos',\n\t\t\t\taddress: 'secret14mzwd0ps5q277l20ly2q3aetqe3ev4m4260gf4',\n\t\t\t\ticon: 'atom.svg',\n\t\t\t\ttags: [1, 9],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'cosmos',\n\t\t\t\t},\n\t\t\t\tallowances: [\n\t\t\t\t\t{\n\t\t\t\t\t\tspender: 'secret1p9nyn4qenwxxzg2j9c3nsqfr9dd09xkne55qjm',\n\t\t\t\t\t\tamount: '340282366920938463463374607431768211454',\n\t\t\t\t\t\texpiration: null,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t'sBNB(BSC)': {\n\t\t\t\tlabel: 'Secret Binance Coin (BSC)',\n\t\t\t\taddress: 'secret1tact8rxxrvynk4pwukydnle4l0pdmj0sq9j9d5',\n\t\t\t\ticon: 'bnb_binance.svg',\n\t\t\t\ttags: [5],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'bnb',\n\t\t\t\t},\n\t\t\t},\n\t\t\tsETH: {\n\t\t\t\tlabel: 'Secret Ether',\n\t\t\t\taddress: 'secret1wuzzjsdhthpvuyeeyhfq2ftsn3mvwf9rxy6ykw',\n\t\t\t\ticon: 'eth_ethereum.svg',\n\t\t\t\tdecimals: 18,\n\t\t\t\ttags: [1, 12],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'ethereum',\n\t\t\t\t},\n\t\t\t},\n\t\t\t'sDOGE(BSC)': {\n\t\t\t\tlabel: 'Secret Dogecoin',\n\t\t\t\taddress: 'secret16nqax7x66z4efpu3y0kssdfnhg93va0h20yjre',\n\t\t\t\ticon: 'doge_binance.svg',\n\t\t\t\ttags: [1, 3, 5],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'dogecoin',\n\t\t\t\t},\n\t\t\t},\n\t\t\tsWBTC: {\n\t\t\t\tlabel: 'Secret Wrapped Bitcoin',\n\t\t\t\taddress: 'secret1g7jfnxmxkjgqdts9wlmn238mrzxz5r92zwqv4a',\n\t\t\t\ticon: 'wrapped-bitcoin.svg',\n\t\t\t\tdecimals: 8,\n\t\t\t\ttags: [10, 12],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'wrapped-bitcoin',\n\t\t\t\t},\n\t\t\t},\n\t\t\tXMR: {\n\t\t\t\tlabel: 'Secret Monero',\n\t\t\t\taddress: 'secret19ungtd2c7srftqdwgq0dspwvrw63dhu79qxv88',\n\t\t\t\ticon: 'monero.svg',\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'monero',\n\t\t\t\t},\n\t\t\t},\n\t\t\tsLUNA: {\n\t\t\t\tlabel: 'Secret Terra',\n\t\t\t\taddress: 'secret1ra7avvjh9fhr7dtr3djutugwj59ptctsrakyyw',\n\t\t\t\ticon: 'luna.svg',\n\t\t\t\ttags: [1, 9],\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'terra-luna',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t'SHD-SSCRT': {\n\t\t\t\tlabel: 'SHD-sSCRT Swap LP',\n\t\t\t\taddress: 'secret1drm0dwvewjyy0rhrrw485q4f5dnfm6j25zgfe5',\n\t\t\t\ticon: '',\n\t\t\t\ttags: [7],\n\t\t\t\tdata: {\n\t\t\t\t\tsienna_type: 'swap',\n\t\t\t\t\tdefi_pair_1: 'secret1qfql357amn448duf5gvp9gr48sxx9tsnhupu3d',\n\t\t\t\t\tdefi_pair_2: 'secret1k0jntykt7e4g3y88ltc60czgjuqdy4c9e8fzek',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t'LP-SEFI-SUSDC': {\n\t\t\t\tlabel: 'SEFI-sUSDC Swap LP',\n\t\t\t\taddress: 'secret1mm7df4ygxwlfg0l70jrrkshlhtp8vv5n7hj9rr',\n\t\t\t\ticon: '',\n\t\t\t\ttags: [7],\n\t\t\t\tdata: {\n\t\t\t\t\tsecretswap_type: 'swap',\n\t\t\t\t\tdefi_pair_1: 'secret15l9cqgz5uezgydrglaak5ahfac69kmx2qpd6xt',\n\t\t\t\t\tdefi_pair_2: 'secret1h6z05y90gwm4sqxzhz4pkyp36cna9xtp7q0urv',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t'SPYSEFIUSDC-3': {\n\t\t\t\tlabel: 'SEFI-sUSDC Yield Pool',\n\t\t\t\taddress: 'secret16ahwz30chht7wg926tfaj07563hkmemad4nnzm',\n\t\t\t\ticon: '',\n\t\t\t\ttags: [7],\n\t\t\t\tdata: {\n\t\t\t\t\tsecretswap_type: 'yield',\n\t\t\t\t\tdefi_pair_1: 'secret15l9cqgz5uezgydrglaak5ahfac69kmx2qpd6xt',\n\t\t\t\t\tdefi_pair_2: 'secret1h6z05y90gwm4sqxzhz4pkyp36cna9xtp7q0urv',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t'LP-SEFI-SATOM': {\n\t\t\t\tlabel: 'SEFI-sATOM Swap LP',\n\t\t\t\taddress: 'secret1w8l6c4fgc4nj2nwxadpmza4kt44xzd72pjn29u',\n\t\t\t\ticon: '',\n\t\t\t\ttags: [7],\n\t\t\t\tdata: {\n\t\t\t\t\tsecretswap_type: 'swap',\n\t\t\t\t\tdefi_pair_1: 'secret15l9cqgz5uezgydrglaak5ahfac69kmx2qpd6xt',\n\t\t\t\t\tdefi_pair_2: 'secret14mzwd0ps5q277l20ly2q3aetqe3ev4m4260gf4',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t'SPYSEFIATOM-3': {\n\t\t\t\tlabel: 'SEFI-sATOM Yield Pool',\n\t\t\t\taddress: 'secret1ga4yptznzm6ycrru3d02g6596cs7wgkugv9pmc',\n\t\t\t\ticon: '',\n\t\t\t\ttags: [7],\n\t\t\t\tdata: {\n\t\t\t\t\tsecretswap_type: 'yield',\n\t\t\t\t\tdefi_pair_1: 'secret15l9cqgz5uezgydrglaak5ahfac69kmx2qpd6xt',\n\t\t\t\t\tdefi_pair_2: 'secret14mzwd0ps5q277l20ly2q3aetqe3ev4m4260gf4',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tS2MVPR: {\n\t\t\t\tlabel: 'StarShell MVP Reward',\n\t\t\t\taddress: 'secret1st4rsh311rew4rd70kenst4rsh311rew4rd70k',\n\t\t\t\ticon: 's2mvpr.png',\n\t\t\t\ttags: [],\n\t\t\t\tdata: {},\n\t\t\t\tdecimals: 1,\n\t\t\t},\n\t\t},\n\n\t\t'cosmos-4': {\n\t\t\tATOM: {\n\t\t\t\tlabel: 'Cosmos',\n\t\t\t\taddress: '.native',\n\t\t\t\ticon: 'atom.svg',\n\t\t\t\tdata: {\n\t\t\t\t\tcoingecko_id: 'cosmos',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t// 'columbus-5': {\n\t\t// \tLUNA: {\n\t\t// \t\tlabel: 'Terra',\n\t\t// \t\taddress: '.native',\n\t\t// \t\ticon: 'luna.svg',\n\t\t// \t\tdata: {\n\t\t// \t\t\tcoingecko_id: 'cosmos',\n\t\t// \t\t},\n\t\t// \t},\n\t\t// },\n\n\t\t// 'sentinelhub-5': {\n\t\t// \tDVPN: {\n\t\t// \t\tlabel: 'Sentinel',\n\t\t// \t\taddress: '.native',\n\t\t// \t\ticon: 'dvpn.png',\n\t\t// \t\ttags: [],\n\t\t// \t\tdata: {\n\t\t// \t\t\tcoingecko_id: 'sentinel',\n\t\t// \t\t},\n\t\t// \t},\n\t\t// },\n\t\t\n\t\t// 'osmosis-5': {\n\t\t// \tOSMO: {\n\t\t// \t\tlabel: 'Osmosis',\n\t\t// \t\taddress: '.native',\n\t\t// \t\ticon: 'osmosis.svg',\n\t\t// \t\ttags: [],\n\t\t// \t\tdata: {\n\t\t// \t\t\tcoingecko_id: 'osmosis',\n\t\t// \t\t},\n\t\t// \t},\n\t\t// },\n\n\t\t// 'kava-2': {\n\t\t// \tKAVA: {\n\t\t// \t\tlabel: 'Kava',\n\t\t// \t\taddress: '.native',\n\t\t// \t\ticon: 'kava.svg',\n\t\t// \t\ttags: [],\n\t\t// \t\tdata: {\n\t\t// \t\t\tcoingecko_id: 'kava',\n\t\t// \t\t},\n\t\t// \t},\n\t\t// },\n\t\t\n\t\t// 'juno-1': {\n\t\t// \tJUNO: {\n\t\t// \t\tlabel: 'Juno',\n\t\t// \t\taddress: '.native',\n\t\t// \t\ticon: 'juno.svg',\n\t\t// \t\ttags: [],\n\t\t// \t\tdata: {\n\t\t// \t\t\tcoingecko_id: 'juno-network',\n\t\t// \t\t},\n\t\t// \t},\n\t\t// },\n\t},\n} as Hash>>, (si_family, h_chains) => {\n\tconst p_family = Family.refFromId('cosmos-sdk');\n\n\treturn oderom(h_chains, (si_chain, h_tokens) => {\n\t\tconst p_chain = Chain.refFromFamilyId(p_family, si_chain);\n\n\t\treturn oderom(h_tokens, (si_symbol, gc_token) => {\n\t\t\tlet gd_icon; \n\t\t\t\n\t\t\tif(gc_token.icon) {\n\t\t\t\tgd_icon = Icon.Def.fromFile(`token/${gc_token.icon}`);\n\t\t\t}\n\t\t\telse if(gc_token.data?.defi_pair_1) {\n\t\t\t\tgd_icon = Icon.Def.fromPair(gc_token.data.defi_pair_1, gc_token.data.defi_pair_2);\n\t\t\t}\n\n\t\t\tif(gd_icon) {\n\t\t\t\tH_ICONS[gd_icon.iri] = new Icon(gd_icon);\n\t\t\t}\n\n\t\t\tconst gd_token = Token.Def.fromConfig({\n\t\t\t\tchainRef: p_chain,\n\t\t\t\ticonRef: gd_icon?.iri || Icon.Def.BLANK.iri,\n\t\t\t\tdecimals: gc_token.decimals || 6,\n\t\t\t\tnative: '.native' === gc_token.address,\n\t\t\t\tsymbol: si_symbol,\n\t\t\t\ttagRefs: (gc_token.tags || []).map(i_tag => Tag.refFromId(i_tag+'')),\n\t\t\t\t...gc_token,\n\t\t\t});\n\n\t\t\tA_SEARCHABLE.push({\n\t\t\t\tiri: gd_token.iri,\n\t\t\t\tclass: gd_token.class,\n\t\t\t\tlabel: gd_token.label,\n\t\t\t\tdetail: gd_token.symbol,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\t[gd_token.iri]: new Token(gd_token),\n\t\t\t}\n\t\t});\n\t});\n});\n\n\ninterface NftConfig {\n\tid: string;\n\timage: string;\n\tattributes: Hash;\n\tlabel?: string;\n\ttags?: number[];\n}\n\ninterface CollectionConfig {\n\ttitle: string;\n\taddress: string;\n\towned: NftConfig[];\n\tplural?: string;\n}\n\ninterface Collection {\n\tlabel: string;\n\tchainRef: Chain.Ref;\n}\n\nexport const H_ADDR_TO_COLLECTION: Hash = {};\n\nexport const H_OWNER_TO_COLLECTIONS: Record> = {};\n\nexport const H_NFTS = oderom({\n\t'cosmos-sdk': {\n\t\t'secret-4': {\n\t\t\t'1': {\n\t\t\t\tspawn: {\n\t\t\t\t\ttitle: 'Spawn',\n\t\t\t\t\tplural: 'Spawn',\n\t\t\t\t\taddress: 'secret10mtm48ul5mcgjj4hm0a4j3td4l5pt590erl3k9',\n\t\t\t\t\towned: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Scorpiotyrannus',\n\t\t\t\t\t\t\tid: '17',\n\t\t\t\t\t\t\timage: 'spawn-1.png',\n\t\t\t\t\t\t\tattributes: {},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Dracodon',\n\t\t\t\t\t\t\tid: '206',\n\t\t\t\t\t\t\timage: 'spawn-2.png',\n\t\t\t\t\t\t\tattributes: {},\n\t\t\t\t\t\t\ttags: [6],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: '311',\n\t\t\t\t\t\t\timage: 'spawn-3.png',\n\t\t\t\t\t\t\tattributes: {},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\n\t\t\t\tanons: {\n\t\t\t\t\ttitle: 'Anon',\n\t\t\t\t\taddress: 'secret1xx4fp7qgkyxdk9elrzd8v5p7gj28lvxprwl9lw',\n\t\t\t\t\towned: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: '69',\n\t\t\t\t\t\t\timage: 'anon-69.png',\n\t\t\t\t\t\t\tlabel: 'Party',\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tBackground: 'Green',\n\t\t\t\t\t\t\t\t'Base Person': 'Beige',\n\t\t\t\t\t\t\t\tHead: 'Womens 2',\n\t\t\t\t\t\t\t\tClothes: 'Hawaiin Shirt - Bananas',\n\t\t\t\t\t\t\t\tEars: 'Earpiece',\n\t\t\t\t\t\t\t\tMouth: 'Vape',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttags: [6],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: '420',\n\t\t\t\t\t\t\timage: 'anon-420.png',\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tBackground: 'Green',\n\t\t\t\t\t\t\t\t'Base Person': 'Beige',\n\t\t\t\t\t\t\t\tHead: 'Womens 2',\n\t\t\t\t\t\t\t\tClothes: 'Hawaiin Shirt - Bananas',\n\t\t\t\t\t\t\t\tEars: 'Earpiece',\n\t\t\t\t\t\t\t\tMouth: 'Vape',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: '477',\n\t\t\t\t\t\t\timage: 'anon-477.png',\n\t\t\t\t\t\t\tlabel: 'Homie',\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tBackground: 'Green',\n\t\t\t\t\t\t\t\t'Base Person': 'Beige',\n\t\t\t\t\t\t\t\tHead: 'Womens 2',\n\t\t\t\t\t\t\t\tClothes: 'Hawaiin Shirt - Bananas',\n\t\t\t\t\t\t\t\tEars: 'Earpiece',\n\t\t\t\t\t\t\t\tMouth: 'Vape',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: '551',\n\t\t\t\t\t\t\tlabel: 'Dad',\n\t\t\t\t\t\t\timage: 'anon-551.png',\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tBackground: 'Green',\n\t\t\t\t\t\t\t\t'Base Person': 'Beige',\n\t\t\t\t\t\t\t\tHead: 'Womens 2',\n\t\t\t\t\t\t\t\tClothes: 'Hawaiin Shirt - Bananas',\n\t\t\t\t\t\t\t\tEars: 'Earpiece',\n\t\t\t\t\t\t\t\tMouth: 'Vape',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: '580',\n\t\t\t\t\t\t\timage: 'anon-580.png',\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tBackground: 'Green',\n\t\t\t\t\t\t\t\t'Base Person': 'Beige',\n\t\t\t\t\t\t\t\tHead: 'Womens 2',\n\t\t\t\t\t\t\t\tClothes: 'Hawaiin Shirt - Bananas',\n\t\t\t\t\t\t\t\tEars: 'Earpiece',\n\t\t\t\t\t\t\t\tMouth: 'Vape',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttags: [6],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\n\t\t\t\tkersoness: {\n\t\t\t\t\ttitle: 'kersoness art',\n\t\t\t\t\tplural: 'kersoness art',\n\t\t\t\t\taddress: 'secret1gdu5ftzfp658l3p2xt5kjmyfj7qd3d6pn529y2',\n\t\t\t\t\towned: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: '24 Full body',\n\t\t\t\t\t\t\tid: '1644282900826_6adc8',\n\t\t\t\t\t\t\timage: 'kersoness-anon-74.jpeg',\n\t\t\t\t\t\t\tattributes: {},\n\t\t\t\t\t\t\ttags: [6],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: '133 Full body',\n\t\t\t\t\t\t\tid: '1643776349128_e39c7',\n\t\t\t\t\t\t\timage: 'kersoness-anon-133.jpeg',\n\t\t\t\t\t\t\tattributes: {},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: '293 Full body',\n\t\t\t\t\t\t\tid: '1644282900826_6adc5',\n\t\t\t\t\t\t\timage: 'kersoness-anon-293.jpeg',\n\t\t\t\t\t\t\tattributes: {},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}, (si_family: string, h_chains: Hash>>) => {\n\tconst p_family = Family.refFromId(si_family);\n\n\treturn oderom(h_chains, (si_chain: string, h_accounts: Hash>) => {\n\t\tconst p_chain = Chain.refFromFamilyId(p_family, si_chain);\n\n\t\treturn oderom(h_accounts, (si_account, h_collections: Hash) => {\n\t\t\tconst p_account = Account.refFromId(si_account);\n\n\t\t\tconst h_colls = H_OWNER_TO_COLLECTIONS[p_account] = {};\n\n\t\t\treturn oderom(h_collections, (si_collection: string, g_collection: CollectionConfig) => {\n\n\t\t\t\tH_ADDR_TO_COLLECTION[g_collection.address] = {\n\t\t\t\t\tlabel: (g_collection as any).plural || g_collection.title+'s',\n\t\t\t\t\tchainRef: p_chain,\n\t\t\t\t};\n\n\t\t\t\treturn fold(g_collection.owned, (gc_nft: NftConfig) => {\n\t\t\t\t\tconst gd_icon = Icon.Def.fromFile(`nft/${gc_nft.image}`);\n\n\t\t\t\t\tH_ICONS[gd_icon.iri] = new Icon(gd_icon);\n\n\t\t\t\t\tconst gd_nft = Nft.Def.fromConfig({\n\t\t\t\t\t\tid: gc_nft.id,\n\t\t\t\t\t\timage: `/asset/nft/${gc_nft.image}`,\n\t\t\t\t\t\ticonRef: gd_icon.iri,\n\t\t\t\t\t\tlabel: gc_nft.label || '',\n\t\t\t\t\t\tautoLabel: `${g_collection.title} #${gc_nft.id}`,\n\t\t\t\t\t\taddress: g_collection.address,\n\t\t\t\t\t\textension: gc_nft.attributes,\n\t\t\t\t\t\tchainRef: p_chain,\n\t\t\t\t\t\ttagRefs: (gc_nft.tags || []).map(i_tag => Tag.refFromId(i_tag+'')),\n\t\t\t\t\t\towner: H_ACCOUNTS[p_account].address(H_CHAINS[p_chain]),\n\t\t\t\t\t});\n\n\t\t\t\t\tA_SEARCHABLE.push({\n\t\t\t\t\t\tiri: gd_nft.iri,\n\t\t\t\t\t\tclass: gd_nft.class,\n\t\t\t\t\t\tlabel: gd_nft.label,\n\t\t\t\t\t\tdetail: si_collection,\n\t\t\t\t\t});\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t[gd_nft.iri]: new Nft(gd_nft),\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n});\n\nexport const H_SYMBOL_TO_TOKEN = oderom(H_TOKENS, (p_token: string, k_token: Token) => ({\n\t[k_token.def.symbol]: p_token as Token.Ref,\n}));\n\nexport const H_ADDRESS_TO_TOKEN = oderom(H_TOKENS, (p_token: string, k_token: Token) => {\n\tif(k_token.def.address !== '.native') {\n\t\treturn {\n\t\t\t[k_token.def.address]: k_token,\n\t\t};\n\t}\n\n\treturn {};\n});\n\nexport const H_IBCTS: Record = [\n\t{\n\t\tchainId: 'secret-4',\n\t\tcolonies: {\n\t\t\t'secret-4': 'sSCRT',\n\t\t},\n\t},\n\t{\n\t\tchainId: 'cosmos-4',\n\t\tcolonies: {\n\t\t\t'secret-4': 'sATOM',\n\t\t},\n\t},\n\t// {\n\t// \tchainId: 'columbus-5',\n\t// \tcolonies: {\n\t// \t\t'secret-4': 'sLUNA',\n\t// \t},\n\t// },\n].reduce((h_out, gc_ibct) => {\n\tconst p_family = Family.refFromId('cosmos-sdk');\n\tconst p_chain = Chain.refFromFamilyId(p_family, gc_ibct.chainId);\n\tconst p_native = Token.refFromChainAddr(p_chain, '.native');\n\n\tconst gd_ibct = Ibct.Def.fromConfig({\n\t\thomeTokenRef: p_native,\n\t\tcolonies: oderom(gc_ibct.colonies, (si_chain, s_symbol) => ({\n\t\t\t[`wispr://root/chains/${si_chain}/`]: H_SYMBOL_TO_TOKEN[s_symbol],\n\t\t})),\n\t});\n\n\tconst k_ibct = new Ibct(gd_ibct);\n\n\tfor(const [, p_token] of ode(gd_ibct.colonies)) {\n\t\tif(p_token in H_TOKENS) {\n\t\t\tH_TOKENS[p_token].ibct = k_ibct;\n\t\t}\n\t\telse {\n\t\t\tdebugger;\n\t\t}\n\t}\n\n\treturn {\n\t\t...h_out,\n\t\t[gd_ibct.iri]: k_ibct,\n\t};\n}, {});\n\n\n// export const H_COLONIES = oderom(H_IBCTS, (p_ibct, k_ibct) => {\n// \tconst h_colonies = k_ibct.def.colonies;\n// \tconst h_out: Record = {};\n// \tdebugger;\n// \tfor(const p_chain in h_colonies) {\n// \t\th_out[h_colonies[p_chain as Chain.Ref]] = k_ibct;\n// \t}\n// \treturn h_out;\n// });\n\n\nexport const H_HOLDINGS: Record = oderom({\n\t'1': {\n\t\t'cosmos-sdk': {\n\t\t\t'secret-4': {\n\t\t\t\tSCRT: 3_937_316_225n,\n\t\t\t\tsSCRT: 4_486_991_125n,\n\t\t\t\tsUSDC: 7_105_250_000n,\n\t\t\t\tSEFI: 251_626_134_221n,\n\t\t\t\tSHD: 11_519_015n,\n\t\t\t\tSIENNA: 127_450_300n,\n\t\t\t\tsATOM: 208_751_225n,\n\t\t\t\t'sBNB(BSC)': 9_200_125n,\n\t\t\t\tsETH: 17_215_325_221_004_889_213n,\n\t\t\t\t'sDOGE(BSC)': 69_420_000_000n,\n\t\t\t\tsWBTC: 1_211_452_66n,\n\t\t\t\tXMR: 39_450_627n,\n\t\t\t\tsLUNA: 10_801_150n,\n\n\t\t\t\t'LP-SEFI-SUSDC': 0n,\n\t\t\t\t'LP-SEFI-SATOM': 0n,\n\t\t\t\t'SPYSEFIUSDC-3': 16_065_546_394n,\n\t\t\t\t'SPYSEFIATOM-3': 2_422_013_726n,\n\n\t\t\t\t...'7' === localStorage.task && {\n\t\t\t\t\t'S2MVPR': 10n,\n\t\t\t\t},\n\t\t\t},\n\t\t\t// 'cosmos-4': {\n\t\t\t// \tATOM: 117_541_220n,\n\t\t\t// },\n\t\t\t// 'columbus-5': {\n\t\t\t// \tLUNA: 1_256_000n,\n\t\t\t// },\n\t\t\t// 'sentinelhub-5': {\n\t\t\t// \t// dvpn\n\t\t\t// },\n\t\t\t// id: 'osmosis-5',\n\t\t\t// id: 'kava-2',\n\t\t\t// id: 'juno-1',\n\t\t},\n\t},\n\t'2': {\n\t\t'cosmos-sdk': {\n\t\t\t'secret-4': {\n\t\t\t\tSCRT: 200_000_000n,\n\t\t\t},\n\t\t\t'cosmos-4': {\n\t\t\t\tATOM: 3_456_178_190n,\n\t\t\t},\n\t\t},\n\t},\n}, (si_account, h_accounts: Hash>>) => {\n\tconst k_account = H_ACCOUNTS[Account.refFromId(si_account)];\n\n\treturn oderom(h_accounts, (si_family, h_chains) => {\n\t\tconst p_family = Family.refFromId(si_family);\n\n\t\treturn oderom(h_chains, (si_chain, h_tokens) => {\n\t\t\tconst p_chain = Chain.refFromFamilyId(p_family, si_chain);\n\n\t\t\treturn oderom(h_tokens, (si_symbol: string, xg_holding: bigint) => {\n\t\t\t\tconst gd_holding = Holding.Def.fromConfig({\n\t\t\t\t\ttokenRef: H_SYMBOL_TO_TOKEN[si_symbol],\n\t\t\t\t\t// chainRef: p_chain,\n\t\t\t\t\t// familyRef: p_family,\n\t\t\t\t\tholderAddr: k_account.address(H_CHAINS[p_chain]),\n\t\t\t\t\tbalance: xg_holding,\n\t\t\t\t});\n\n\t\t\t\tconst gd_all = Holding.Def.fromConfig({\n\t\t\t\t\ttokenRef: H_SYMBOL_TO_TOKEN[si_symbol],\n\t\t\t\t\tholderAddr: '*',\n\t\t\t\t\tbalance: xg_holding,\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn {\n\t\t\t\t\t[gd_holding.iri]: new Holding(gd_holding),\n\t\t\t\t\t[gd_all.iri]: new Holding(gd_all),\n\t\t\t\t};\n\t\t\t});\n\t\t})\n\t});\n});\n\nfor(const [p_account, k_account] of ode(H_ACCOUNTS)) {\n\tfor(const [p_chain, k_chain] of ode(H_CHAINS)) {\n\t\tconst kt_native = k_chain.native(H_TOKENS);\n\t\tconst p_token = kt_native.def.iri;\n\t\tconst sa_holder = k_account.address(k_chain);\n\n\t\tconst p_holding = Holding.refFromTokenAccount(p_token, sa_holder);\n\n\t\tif(!(p_holding in H_HOLDINGS)) {\n\t\t\tconst gd_holding = Holding.Def.fromConfig({\n\t\t\t\ttokenRef: p_token,\n\t\t\t\tholderAddr: sa_holder,\n\t\t\t\tbalance: 0n,\n\t\t\t});\n\t\t\n\t\t\tH_HOLDINGS[p_holding] = new Holding(gd_holding);\n\t\t}\n\t}\n}\n\n\nasync function reload() {\n\tconst h_cg_inv: Hash = {};\n\tconst a_cg_ids: string[] = [];\n\n\tconst h_ss_yields: Hash = {};\n\tconst h_ss_swaps: Hash = {};\n\n\tObject.values(H_TOKENS).forEach((k_token) => {\n\t\tconst {\n\t\t\tcoingecko_id: si_coingecko,\n\t\t\tsecretswap_type: si_secretswap,\n\t\t\tdefi_pair_1: sa_pair_1,\n\t\t\tdefi_pair_2: sa_pair_2,\n\t\t} = k_token.def.data;\n\n\t\tif(si_coingecko) {\n\t\t\tconst a_tokens = h_cg_inv[si_coingecko] = h_cg_inv[si_coingecko] || [];\n\t\t\ta_tokens.push(k_token);\n\t\t\ta_cg_ids.push(si_coingecko);\n\t\t}\n\t\telse if('yield' === si_secretswap) {\n\t\t\th_ss_yields[k_token.def.address] = k_token;\n\t\t}\n\t\telse if('swap' === si_secretswap) {\n\t\t\th_ss_swaps[k_token.def.address] = k_token;\n\t\t}\n\t});\n\n\t// coingecko\n\t{\n\t\tconst h_params = {\n\t\t\tids: a_cg_ids.join(','),\n\t\t\tvs_currencies: 'usd',\n\t\t};\n\n\t\tconst s_params = new URLSearchParams(ode(h_params));\n\n\t\tconst d_fetch = await fetch(`https://api.coingecko.com/api/v3/simple/price?${s_params}`, {\n\t\t\tmethod: 'GET',\n\t\t\tmode: 'cors',\n\t\t\t// cache: 'no-store',\n\t\t});\n\n\t\tconst h_prices = await d_fetch.json();\n\n\t\tfor(const si_token in h_prices) {\n\t\t\tfor(const k_token of h_cg_inv[si_token]) {\n\t\t\t\tconst p_token = k_token.def.iri;\n\t\t\t\tconst g_versus = H_VERSUS_USD[p_token] = H_VERSUS_USD[p_token] || {tokenRef:p_token};\n\t\t\t\tg_versus.value = h_prices[si_token].usd;\n\t\t\t}\n\t\t}\n\t}\n\n\t// secretswap\n\t{\n\t\t\n\t\tconst d_fetch = await fetch(`https://api-bridge-mainnet.azurewebsites.net/rewards/?page=0&size=1000`, {\n\t\t\tmethod: 'GET',\n\t\t\tmode: 'cors',\n\t\t\t// cache: 'no-store',\n\t\t});\n\n\t\tconst h_state = await d_fetch.json();\n\n\t\tfor(const g_pool of h_state.pools) {\n\t\t\tconst k_token_pool = h_ss_yields[g_pool.pool_address];\n\t\t\tif(k_token_pool) {\n\t\t\t\tconst p_token = k_token_pool.def.iri;\n\t\t\t\tconst g_versus = H_VERSUS_USD[p_token] = H_VERSUS_USD[p_token] || {tokenRef:p_token};\n\t\t\t\tg_versus.value = +g_pool.inc_token.price;\n\t\t\t}\n\n\t\t\tconst k_token_swap = H_ADDRESS_TO_TOKEN[g_pool.inc_token.address];\n\t\t\tif(k_token_swap) {\n\t\t\t\tconst p_token = k_token_swap.def.iri;\n\t\t\t\tconst g_versus = H_VERSUS_USD[p_token] = H_VERSUS_USD[p_token] || {tokenRef:p_token};\n\t\t\t\tg_versus.value = +g_pool.inc_token.price;\n\t\t\t}\n\t\t}\n\t}\n}\n\n// usd prices\nreload();\n\nexport const H_VERSUS_USD: Record = oderom({\n\tSCRT: 5.34,\n\tsSCRT: 5.34,\n\tsUSDC: 1,\n\tSHD: 51.12,\n\tSEFI: 0.0358225,\n\tSIENNA: 7.18,\n\tsATOM: 27.43,\n\t'sBNB(BSC)': 378.26,\n\tsETH: 2833.75,\n\t'sDOGE(BSC)': 0.140679,\n\tsWBTC: 41628.69,\n\tXMR: 170.92,\n\tsLUNA: 57.6,\n\t'SPYSEFIUSDC-3': 0.404941980930085,\n\t'SPYSEFISATOM': 1.8008429208421266,\n\t'LP-SEFI-SUSDC': 0,\n\t'LP-SEFI-SATOM': 0,\n\t'S2MVPR': 0,\n}, (si_symbol: string, x_usd: number) => ({\n\t[H_SYMBOL_TO_TOKEN[si_symbol]]: {\n\t\ttokenRef: H_SYMBOL_TO_TOKEN[si_symbol],\n\t\tvalue: x_usd,\n\t},\n}));\n\n// export enum TxnType {\n// \tNONE = 0,\n// \tSENT = 1,\n// \tRECV = 2,\n// }\n\n// export interface Txn {\n// \ttype: TxnType;\n// \ttoken: Token;\n// \tamount: bigint;\n// \taddress: string;\n// }\n\n\nexport const H_CONTACTS = fold([\n\t{\n\t\tlabel: 'Nick Szabo',\n\t\tpubkey: '4mtm48ul51fkjj4hm0a4j3d4l5pt590erl4jz1',\n\t\ttags: [10],\n\t},\n\t{\n\t\tlabel: 'Satoshi Nakamoto',\n\t\tpubkey: '93fw3gmp6h9e2ggtpmm7q2fkwnyjggq7n32669',\n\t\timage: 'satoshi-nakamoto.jpeg',\n\t\ttags: [10],\n\t},\n\t{\n\t\tlabel: 'Wei Dai',\n\t\tpubkey: 'z2h347n4v32r9sw07un6darjwnl2c7kqgcu215',\n\t\ttags: [10],\n\t},\n\t{\n\t\tlabel: 'Hal Finney',\n\t\tpubkey: 'd5223gmp6h9e2ggtpmm7q245wnyjggqx11798s',\n\t\ttags: [10],\n\t},\n\t{\n\t\tlabel: 'Elon Musk',\n\t\tpubkey: '72d1860jwy0zq686zcaejl0s0c3axwgxa7j1ff',\n\t\timage: 'elon-musk.jpeg',\n\t\ttags: [2, 3],\n\t},\n\t{\n\t\tlabel: 'Carl Sagan',\n\t\tpubkey: '89aa860jwy0zq686zcaejlx0c3axwgwgx192a7',\n\t\timage: 'carl-sagan.png',\n\t\ttags: [2],\n\t},\n\t{\n\t\tlabel: 'Edward Snowden',\n\t\tpubkey: 'ff1j7axgwxa3c0s0ljeacz686qz0ywj0681d27',\n\t\ttags: [],\n\t},\n], (gc_contact) => {\n\tconst p_family = Family.refFromId('cosmos-sdk');\n\n\tlet p_icon = '' as Icon.Ref;\n\tif(gc_contact.image) {\n\t\tconst gd_icon = Icon.Def.fromFile(`contact/${gc_contact.image}`);\n\t\tp_icon = gd_icon.iri;\n\n\t\tH_ICONS[p_icon] = new Icon(gd_icon);\n\t}\n\n\tconst gd_contact = Contact.Def.fromConfig({\n\t\t...gc_contact,\n\t\tfamilyRef: p_family,\n\t\ttagRefs: gc_contact.tags.map(i_tag => Tag.refFromId(i_tag+'')),\n\t\ttype: Contact.Type.PERSON,\n\t\ticonRef: p_icon,\n\t});\n\n\n\tA_SEARCHABLE.push({\n\t\tiri: gd_contact.iri,\n\t\tclass: gd_contact.class,\n\t\tlabel: gd_contact.label,\n\t\tdetail: gd_contact.pubkey,\n\t});\n\n\treturn {\n\t\t[gd_contact.iri]: new Contact(gd_contact),\n\t};\n});\n\nexport const H_CONTRACTS = oderom({\n\t'secret1drm0dwvewjyy0rhrrw485q4f5dnfm6j25zgfe5': {\n\t\ticon: 'sienna.png',\n\t\tdata: {\n\t\t\tdomain: 'app.sienna.network',\n\t\t},\n\t},\n\n\t'secret14cxq26u8f9zpd09a72uznwz7kew9yc085d08hy': {\n\t\ticon: 'secretswap.png',\n\t\tdata: {\n\t\t\tdomain: 'app.secretswap.net',\n\t\t},\n\t},\n\n\t'secret1p9nyn4qenwxxzg2j9c3nsqfr9dd09xkne55qjm': {\n\t\ticon: 'secretswap.png',\n\t\tdata: {\n\t\t\tdomain: 'app.secretswap.net',\n\t\t},\n\t},\n}, (sa_contract, gc_contract) => {\n\tconst p_family = Family.refFromId('cosmos-sdk');\n\tconst p_chain = K_DEFAULT_CHAIN.def.iri;\n\n\tlet p_icon = '' as Icon.Ref;\n\tif(gc_contract.icon) {\n\t\tconst gd_icon = Icon.Def.fromFile(`site/${gc_contract.icon}`);\n\t\tp_icon = gd_icon.iri;\n\n\t\tH_ICONS[p_icon] = new Icon(gd_icon);\n\t}\n\n\tconst gd_contract = Contract.Def.fromConfig({\n\t\t...gc_contract,\n\t\tlabel: gc_contract.data.domain,\n\t\taddress: sa_contract,\n\t\tcodeHash: '0',\n\t\tchainRef: p_chain,\n\t\ttagRefs: ((gc_contract as {tags?:number[]}).tags || []).map(i_tag => Tag.refFromId(i_tag+'')),\n\t\ticonRef: p_icon,\n\t});\n\n\tA_SEARCHABLE.push({\n\t\tiri: gd_contract.iri,\n\t\tclass: gd_contract.class,\n\t\tlabel: gd_contract.label,\n\t\tdetail: sa_contract,\n\t});\n\n\treturn {\n\t\t[gd_contract.iri]: new Contract(gd_contract),\n\t};\n});\n\nexport const H_ADDR_TO_CONTACT: Record = oderom(H_CONTACTS, (_, k_contact) => oderom(H_CHAINS, (p_chain, k_chain) => {\n\treturn {\n\t\t[k_contact.address(k_chain)]: k_contact,\n\t};\n}));\n\nexport const H_ADDR_TO_CONTRACT: Record = oderom(H_CONTRACTS, (_, k_contract) => ({\n\t[k_contract.def.address]: k_contract,\n}));\n\n\nexport const H_SITES = oderom({\n\t'app.secretswap.net': {\n\t\tlabel: 'SecretSwap',\n\t\ticon: 'site/secretswap.png',\n\t},\n\t'app.sienna.network': {\n\t\tlabel: 'Sienna',\n\t\ticon: 'site/sienna.png',\n\t},\n\t'bridge.scrt.network': {\n\t\tlabel: 'Secret Network Bridge',\n\t\ticon: 'site/scrt.png',\n\t},\n}, (p_domain, gc_site) => {\n\tconst gd_icon = Icon.Def.fromFile(gc_site.icon);\n\tH_ICONS[gd_icon.iri] = new Icon(gd_icon);\n\n\tconst gd_site = Site.Def.fromConfig({\n\t\t...gc_site,\n\t\tdomain: p_domain,\n\t\ticonRef: gd_icon.iri,\n\t});\n\t\n\n\tA_SEARCHABLE.push({\n\t\tiri: gd_site.iri,\n\t\tclass: gd_site.class,\n\t\tlabel: gd_site.label,\n\t\tdetail: p_domain,\n\t});\n\n\treturn {\n\t\t[gd_site.iri]: new Site(gd_site),\n\t};\n});\n\n// ({\n// \t[k_contact.def.address]: k_contact,\n// }));\n\nconst A_UNLISTED = [\n\t'secret10mtm48ul5mcgjj4hm0a4j3td4l5pt590erl3k9',\n\t'secret1aqfw3gmp6h9e2ggtpmm7q245dwnyjggq7n32ag',\n\t'secret1dfdv860jwy0zq686zcaejl0s0c3axwgxy6xcc0',\n\t'secret1w9h347n4v32r9sw07un6datrjwnl2c7kqgucm6',\n];\n\nfunction mulberry32(i_seed: number) {\n\treturn {\n\t\trand() {\n\t\t\tlet x_t = i_seed += 0x6D2B79F5;\n\t\t\tx_t ^= x_t + Math.imul(x_t ^ x_t >>> 7, x_t | 61);\n\t\t\tx_t = Math.imul(x_t ^ x_t >>> 15, x_t | 1);\n\t\t\treturn ((x_t ^ x_t >>> 14) >>> 0) / 4294967296;\n\t\t},\n\t\trange(x_lo: number, x_hi: number) {\n\t\t\treturn (this.rand() * (x_hi - x_lo)) + x_lo;\n\t\t},\n\t\tirange(n_lo: number, n_hi: number) {\n\t\t\treturn Math.round(this.range(n_lo, n_hi));\n\t\t}\n\t}\n}\n\n\nfunction hash_string(s_in: string) {\n\tif(!s_in) return 0;\n\tlet xc_hash = 0;\n\tfor(let i_chr=0, nl_chrs=s_in.length; i_chr 0.5;\n\n\t\tconst sa_other = k_prng.rand() < 0.7\n\t\t\t? A_UNLISTED[k_prng.irange(0, A_UNLISTED.length-1)]\n\t\t\t: A_CONTACTS[k_prng.irange(0, A_CONTACTS.length-1)].address(K_DEFAULT_CHAIN);\n\n\t\tif(k_token.def.native) {\n\t\t\ta_txns.unshift(new Txn(Txn.Def.fromConfig({\n\t\t\t\tchainRef: k_token.def.chainRef,\n\t\t\t\ttype: b_send? Txn.Type.SEND: Txn.Type.RECV,\n\t\t\t\t// token: k_token,\n\t\t\t\tamount: xg_amount,\n\t\t\t\taddress: sa_other,\n\t\t\t\ttxnId: uuid_v4(),\n\t\t\t\ttimestamp: xt_when,\n\t\t\t})));\n\t\t}\n\t\telse {\n\t\t\ta_txns.unshift(new Txn(Txn.Def.fromConfig({\n\t\t\t\ttype: Txn.Type.SNIP20_XFER,\n\t\t\t\ttoken: k_token,\n\t\t\t\tdata: {\n\t\t\t\t\tid: '',\n\t\t\t\t\tcoins: {\n\t\t\t\t\t\tdenom: '',\n\t\t\t\t\t\tamount: xg_amount+'',\n\t\t\t\t\t},\n\t\t\t\t\t...b_send\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\tfrom: sa_owner,\n\t\t\t\t\t\t\tsender: sa_owner,\n\t\t\t\t\t\t\treceiver: sa_other,\n\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\tfrom: sa_other,\n\t\t\t\t\t\t\tsender: sa_other,\n\t\t\t\t\t\t\treceiver: sa_owner,\n\t\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\taddress: sa_other,\n\t\t\t\ttxnId: uuid_v4(),\n\t\t\t\ttimestamp: xt_when,\n\t\t\t})));\n\t\t}\n\n\t\txt_when += k_prng.range(XT_DAYS, 9*XT_DAYS);\n\t}\n\n\treturn a_txns;\n}\n\nexport const H_TXNS: Record = oderom(H_TOKENS, (p_token, k_token) => ({\n\t[p_token]: buildTxnHistory(k_token, SA_ACCOUNT_DEFAULT),\n}));\n\nfor(const p_token in H_TXNS) {\n\tconst a_txns = H_TXNS[p_token as Token.Ref];\n\tfor(const k_txn of a_txns) {\n\t\tA_TXNS.push(k_txn);\n\n\t\tconst g_bankish = k_txn.bankish(SA_ACCOUNT_DEFAULT);\n\t\tif(g_bankish) {\n\t\t\tconst p_addr = g_bankish.address;\n\n\t\t\t// contact\n\t\t\tif(p_addr in H_ADDR_TO_CONTACT) {\n\t\t\t\tconst k_contact = H_ADDR_TO_CONTACT[p_addr];\n\t\t\t\tk_contact.history.push(g_bankish);\n\t\t\t}\n\t\t}\n\t}\n}\n\n\nconst D_INTL_USD = new Intl.NumberFormat('en-US', {\n\tstyle: 'currency',\n\tcurrency:'USD',\n\tcurrencyDisplay: 'symbol',\n});\n\nconst D_INTL_USD_LT1 = new Intl.NumberFormat('en-US', {\n\tstyle: 'currency',\n\tcurrency:'USD',\n\tcurrencyDisplay: 'symbol',\n\tminimumFractionDigits: 2,\n\tmaximumFractionDigits: 5,\n});\n\nconst A_NUMERIC_GT1 = [\n\t{\n\t\torder: 1e21,\n\t\tsuffix: 'sept',\n\t\tmetric: 'yotta',\n\t\tm: 'Y',\n\t},\n\t{\n\t\torder: 1e21,\n\t\tsuffix: 'sext',\n\t\tmetric: 'zetta',\n\t\tm: 'Z',\n\t},\n\t{\n\t\torder: 1e18,\n\t\tsuffix: 'quint',\n\t\tmetric: 'exa',\n\t\tm: 'E',\n\t},\n\t{\n\t\torder: 1e15,\n\t\tsuffix: 'quad',\n\t\tmetric: 'peta',\n\t\tm: 'P',\n\t},\n\t{\n\t\torder: 1e12,\n\t\tsuffix: 'tril',\n\t\tmetric: 'terra',\n\t\tm: 'T',\n\t},\n\t{\n\t\torder: 1e9,\n\t\tsuffix: 'bil',\n\t\tmetric: 'giga',\n\t\tm: 'G',\n\t},\n\t{\n\t\torder: 1e6,\n\t\tsuffix: 'mil',\n\t\tmetric: 'mega',\n\t\tm: 'M',\n\t},\n];\nconst A_NUMERIC_LT1 = [\n\t{\n\t\torder: 1e-24,\n\t\tsuffix: 'septh',\n\t\tmetric: 'yocto',\n\t\tm: 'y',\n\t},\n\t{\n\t\torder: 1e-21,\n\t\tsuffix: 'sexth',\n\t\tmetric: 'zepto',\n\t\tm: 'z',\n\t},\n\t{\n\t\torder: 1e-18,\n\t\tsuffix: 'quinth',\n\t\tmetric: 'atto',\n\t\tm: 'a',\n\t},\n\t{\n\t\torder: 1e-15,\n\t\tsuffix: 'quadth',\n\t\tmetric: 'femto',\n\t\tm: 'f',\n\t},\n\t{\n\t\torder: 1e-12,\n\t\tsuffix: 'trilth',\n\t\tmetric: 'pico',\n\t\tm: 'p',\n\t},\n\t{\n\t\torder: 1e-9,\n\t\tsuffix: 'bilth',\n\t\tmetric: 'nano',\n\t\tm: 'n',\n\t},\n\t{\n\t\torder: 1e-6,\n\t\tsuffix: 'milth',\n\t\tmetric: 'mirco',\n\t\tm: 'μ',\n\t},\n\t{\n\t\torder: 1e-3,\n\t\tsuffix: 'thsth',\n\t\tmetric: 'milli',\n\t\tm: 'm',\n\t},\n];\n\nconst D_INTL_AMOUNT_LT1 = new Intl.NumberFormat('en-US', {\n\tnotation: 'standard',\n\tmaximumSignificantDigits: 6,\n});\n\nconst D_INTL_AMOUNT_GT1 = new Intl.NumberFormat('en-US', {\n\tnotation: 'standard',\n\tmaximumFractionDigits: 3,\n});\n\nconst D_INTL_AMOUNT_GT1E3 = new Intl.NumberFormat('en-US', {\n\tnotation: 'standard',\n\tmaximumSignificantDigits: 6,\n});\n\nconst D_INTL_AMOUNT_I1E3 = new Intl.NumberFormat('en-US', {\n\tnotation: 'standard',\n\tmaximumSignificantDigits: 4,\n});\n\nexport function format_amount(x_amount: number, b_shorter=false): string {\n\t// if(b_shorter) debugger;\n\n\t// zero\n\tif(0 === x_amount) return '0';\n\n\t// left side of deimcal\n\tif(x_amount >= 1e6) {\n\t\tfor(const gc_abbr of A_NUMERIC_GT1) {\n\t\t\tif(x_amount >= gc_abbr.order) {\n\t\t\t\treturn (x_amount / (gc_abbr.order / 1e3)).toPrecision(3)+' '+gc_abbr.suffix;\n\t\t\t}\n\t\t}\n\t}\n\t// right side of decimal\n\telse if(x_amount < 1) {\n\t\tfor(const gc_abbr of A_NUMERIC_LT1) {\n\t\t\tif(x_amount <= gc_abbr.order) {\n\t\t\t\treturn (x_amount * (gc_abbr.order * 1e3)).toPrecision(3)+' '+gc_abbr.metric;\n\t\t\t}\n\t\t}\n\n\t\t// less than 1\n\t\treturn D_INTL_AMOUNT_LT1.format(x_amount);\n\t}\n\t\n\t// between 1k and 1M\n\tif(x_amount >= 1e3) {\n\t\t// make thousands shorter\n\t\tif(b_shorter) {\n\t\t\treturn D_INTL_AMOUNT_I1E3.format(x_amount / 1e3)+' k';\n\t\t}\n\n\t\treturn D_INTL_AMOUNT_GT1E3.format(x_amount)\n\t}\n\n\t// greater than 1\n\treturn D_INTL_AMOUNT_GT1.format(x_amount);\n}\n\nexport function format_fiat(x_amount: number, b_omit_sign=false, n_decimals=2): string {\n\tconst s_formatted = x_amount < 1? D_INTL_USD_LT1.format(x_amount): D_INTL_USD.format(x_amount);\n\n\treturn b_omit_sign? s_formatted.replace(/^[$]/, ''): s_formatted;\n}\n\n/**\n * returns the fiat equivalent of the given token amount\n */\nexport function amount_to_fiat(x_amount: number, k_token: Token, b_omit_sign=false): string {\n\treturn format_fiat(H_VERSUS_USD[k_token.def.iri].value * x_amount, b_omit_sign);\n}\n\n\nconsole.log({\n\tH_ACCOUNTS,\n\tH_CHAINS,\n\tH_CONTACTS,\n\tH_FAMILIES,\n\tH_HOLDINGS,\n\tH_IBCTS,\n\tH_NETWORKS,\n\tH_NFTS,\n\tH_TAGS,\n\tH_TOKENS,\n\tH_TXNS,\n});\n","\n\n\n\n
\n\t{@html SX_CLOSE}\n
\n","export default \"\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\"","\n\n\n\n
{\n\t\tb_showing = false;\n\t\topen = false;\n\t}}\n>\n\t
\n\t\t
\n\t\t\t

\n\t\t\t\t{title}\n\t\t\t

\n\n\t\t\t\n\t\t
\n\n\t\t
\n\t\t\t\n\t\t
\n\t
\n
","\n\n\n\n
\n\t
\n\t\t{#if k_icon || $$slots.icon}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\n\t\t\t\n\t\t{/if}\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{#if lockIcon}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
\n\t\t\t\t{#if address || symbol || detail || a_tags.length || $$slots.detail}\n\t\t\t\t\t
\n\t\n\t\t\t\t\t\t{#if detail || symbol || $$slots.detail}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{prefix}{detail || symbol}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{:else if address}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
\n\t\t\t\t{/if}\n\t\t\t
\n\n\t\t\t\n\t\t\t\t{#if $$slots.status}\n\t\t\t\t\t\n\t\t\t\t{:else if amount}\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t{#if fiat}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{fiat}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t{/if}\n\t\t\t\t{/if}\n\t\t\t
\n\t\t
\n\t\t{#if $$slots.right}\n\t\t\t\n\t\t{/if}\n\t
\n\n\t
\n\t\t{#if a_tags.length || $$slots.tags}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t{/if}\n\t
\n
\n","\n\n\n\n\n\t{#if k_icon}\n\t\t\n\t{:else}\n\t\t\n\t\t\t{name[0] || ''}\n\t\t\n\t{/if}\n","\n\n\n\n
\n\t
\n\t\t{#if pops}\n\t\t\t pop()}>\n\t\t\t\t\n\t\t\t\n\t\t{:else if !closes && !plain}\n\t\t\t\n\t\t{/if}\n\n\t\t\n\t\t\t
\n\t\t\t\t{#if name}\n\t\t\t\t\t\n\t\t\t\t\t\t{name}\n\t\t\t\t\t\n\t\t\t\t\t{#if symbol}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t- {symbol}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t{/if}\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t{subname}\n\t\t\t
\n\t\t
\n\n\t\t\n\t\t\t{#if network}\n\t\t\t\t {\n\t\t\t\t\td_event.stopPropagation();\n\t\t\t\t\t$yw_overlay_network = !$yw_overlay_network\n\t\t\t\t}}>\n\t\t\t\t\t\n\n\t\t\t\t\t{#key $yw_chain}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/key}\n\t\t\t\t\n\n\t\t\t\t{#if $yw_overlay_network}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#each ode(H_CHAINS) as [p_chain, k_chain]}\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t$yw_chain = k_chain;\n\t\t\t\t\t\t\t\t\t\t$yw_overlay_network = false;\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{#if $yw_chain.def.iri === p_chain}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{@html SX_CHECKED}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t{/if}\n\t\t\t{/if}\n\n\t\t\t{#if account}\n\t\t\t\t {\n\t\t\t\t\td_event.stopPropagation();\n\t\t\t\t\t$yw_overlay_account = !$yw_overlay_account;\n\t\t\t\t}}>\n\t\t\t\t\t{#key $yw_account}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/key}\n\n\t\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t{#if $yw_overlay_account}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if Object.keys(H_ACCOUNTS).length > 2}\n\t\t\t\t\t\t\t\t c_sum + (k_account.aggregator? 0: Holding.usdSum(k_account.holdings(H_HOLDINGS, $yw_chain), H_TOKENS, H_VERSUS_USD)), 0))}\n\t\t\t\t\t\t\t\t\ton:click={() => {\n\t\t\t\t\t\t\t\t\t\tconst p_account_all = Account.refFromId('*');\n\t\t\t\t\t\t\t\t\t\t$yw_account = H_ACCOUNTS[p_account_all];\n\t\t\t\t\t\t\t\t\t\t$yw_overlay_account = false;\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{#if $yw_account.def.iri === Account.refFromId('*')}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{@html SX_CHECKED}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tA\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\n\t\t\t\t\t\t\t{#each ode(H_ACCOUNTS).filter(([,k]) => !k.aggregator) as [p_account, k_account]}\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t$yw_account = k_account;\n\t\t\t\t\t\t\t\t\t\t$yw_overlay_account = false;\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{#if $yw_account.def.iri === p_account}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{@html SX_CHECKED}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t{/if}\n\t\t\t{/if}\n\n\t\t\t{#if closes}\n\t\t\t\t dispatch('close')} />\n\t\t\t{/if}\n\t\t\n\t
\n\n\t{#if search}\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t{@html SX_SEARCH}\n\t\t\t\n\t\t
\n\t{/if}\n
\n","export default \"\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\"","export default \"\\n\\t\\n\\t\\n\\t\\n\\t\\n\\n\"","\n\n\n\n
\n\t\n\t\t\n\t\t\t{@html checked? SX_CHECKED: SX_UNCHECKED}\n\t\t\n\t\n\n\t{#if $$slots.default}\n\t\t\n\t{/if}\n","\n\n\n\n{#if contact}\n\t
\n\t\t\n\t\t\t{#key contact}\n\t\t\t\t\n\t\t\t{/key}\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{contact.def.label}\n\t\t\t\n\n\t\t\t
\n\t\t\n\t
\n{:else if address}\n\t\n\t\t
\n\t\n{:else if item && item.isCreator}\n\t\n\t\t
\n\t\n{/if}","\n\n\n\n
\n\t
\n\t\t{s_hr_denom} {token.def.symbol}\n\t
\n\n\t
\n\t\t{amount_to_fiat(token.approx(xg_amount), token)}\n\t
\n
\n","\n\n\n\n\n\t {\n\t\t\tpop();\n\t\t\tpop();\n\t\t}}\n\t/>\n\n\t\t\n\n\t\n\t\t\n\t\t\t\n\t\t\t\tDetails\n\t\t\t\n\n\t\t\t\n\t\t\t\tData\n\t\t\t\n\t\t\n\n\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{$yw_account.label}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{$yw_asset_send? amount_to_fiat($yw_holding_send?.approx(H_TOKENS) || 0, $yw_asset_send): '??'}\n\t\t\t\t\n\t\t\t\n\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t0.03 SCRT\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t={amount_to_fiat(0.03, $yw_chain.native(H_TOKENS))}\n\t\t\t\t\n\t\t\t\n\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t{#each a_msgs as g_msg, i_msg}\n\t\t\t\t\t{@const g_semexec = g_msg.semantics}\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{i_msg+1}.\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{proper(g_msg.semantics.type)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{g_contract.title}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t- {g_contract.subtitle}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{#each ode(g_semexec.fields) as [si_field, g_field]}\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t
\n\t\t\t\t{/each}\n\t\t\t\n\n\t\t\t{#if g_snip20.recipient}\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{g_snip20.recipient}\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t{$yw_holding_send?.toUsd(H_TOKENS, H_VERSUS_USD) || '??'}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t{/if}\n\n\t\t\t{#if g_snip20.amount}\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{g_snip20.amount}\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t={$yw_holding_send?.amount}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t{/if}\n\n\n\t\t
\n\n\n\t\t\n\t\t\t

\n\t\t\t\tNot yet available in beta.\n\t\t\t

\n\t\t\t
\n\t\t\t

\n\t\t\t\tThis screen has not yet been implemented. Please continue exploring the beta.\n\t\t\t

\n\t\t
\n\t
\n\n\t
\n\t\t\n\n\t\t\n\t
\n
","\n\n\n\n\n\n {\n\td_submit.preventDefault();\n\tsubmit();\n}}>\n\t
\n\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t{@html g_address_type.icon}\n\t\t\t\n\t\t\t\n\t\t\t\t{g_address_type.text}\n\t\t\t\n\t\t\n\n\t\t{#if b_new_address}\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\tSave to contacts\n\t\t\t\t\n\t\t\t
\n\t\t{/if}\n\t
\n\n\t{#if b_new_address && b_checked_save_contact}\n\t\t\n\t\t\t\n\n\t\t\t{#if s_err_new_contact}\n\t\t\t\t\n\t\t\t\t\t{s_err_new_contact}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\n\t{/if}\n\n\t
\n\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\t\t{#if $yw_asset_send}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tBalance\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{s_balance} {$yw_asset_send.def.symbol}\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t use_max()}>USE MAX\n\t\t\t\t\n\t\t\t{/if}\n\t\t\n\t\n\n\t
\n\n\t\n\t\t
\n\t\t\t{x_fee} SCRT\n\t\t
\n\n\t\t
\n\t\t\t{amount_to_fiat(x_fee, $yw_chain.native(H_TOKENS))}\n\t\t
\n\n\t\t\n\t\t\t
\n\t\t\t\tSet fee manually\n\t\t\t\t\n\t\t\t\t\t{@html SX_INFO}\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t
\n\n\n\t
\n\n\t
\n\t\t
b_memo_expanded = !b_memo_expanded}>\n\t\t\t\n\t\t\t\t{@html SX_DROPDOWN}\n\t\t\t\n\t\t\t\n\t\t\t\tAdd memo\n\t\t\t\n\n\t\t\t{#if b_memo_expanded}\n\t\t\t\t\n\t\t\t\t\tCaution: Memos are NOT private\n\t\t\t\t\n\t\t\t{/if}\n\t\t
\n\n\t\t{#if b_memo_expanded}\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t{/if}\n\t
\n\n\t
\n\t\t\n\n\t\t\n\t
\n","\n\n\n\n submit()}>\n\t\n\n\t\n\t\t\n\t\n\n\t\n\t\t\n\n\t\t{#if s_err_name}\n\t\t\t\n\t\t\t\t{s_err_name}\n\t\t\t\n\t\t{/if}\n\t\n\n\t\n\t\t\n\n\t\t{#if s_err_symbol}\n\t\t\t\n\t\t\t\t{s_err_symbol}\n\t\t\t\n\t\t{/if}\n\t\n\n\t\n\t\t\n\t\t\t
\n\t\t\n\t\n\n\t\n\t\t\n\t\n\n\t
\n\n\t

\n\t\t{token? 'Edit': 'Add'} Tags\n\t

\n\n\t\n\n\t
\n\t\t\n\n\t\t\n\t
\n","\n\n\n\n\n\t
\n\n\t

\n\t\tNothing to see here!\n\t

\n\n\t

\n\t\tThis screen has not yet been implemented.\n\t

\n\n\t

\n\t\tPlease continue exploring the beta.\n\t

\n\n\t
\n\t\t\n\t\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t
\n","\n\n\n\n
\n\t\n\t\t\n\t\n\t{#if copyable}\n\t\t\n\t\t\t{@html SX_COPY}\n\t\t\n\t{/if}\n
","\n\n\n\n\n

\n\tReceive\n

\n\n $yw_popup = null} />\n\n\n\t\n\n\n\n\t\n\n\n\n\t
\n\n\n\n
\n\n
\n\tScan QR code to receive to this address\n
","\n\n\n\n\t
\n\t\t\n\n\t\t\n\t
\n\n\t H_TAGS[p])}\n\t\tactions={{\n\t\t\tsend: {\n\t\t\t\tlabel: 'Send',\n\t\t\t\ttrigger() {\n\t\t\t\t\tpush_screen(Send, {\n\t\t\t\t\t\tfrom: $yw_account,\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t},\n\t\t\trecv: {\n\t\t\t\tlabel: 'Receive',\n\t\t\t\ttrigger() {\n\t\t\t\t\t$yw_popup_account = $yw_account;\n\t\t\t\t\t$yw_popup = PopupReceive;\n\t\t\t\t},\n\t\t\t},\n\t\t\tadd: {\n\t\t\t\tlabel: 'Add Token',\n\t\t\t\ttrigger() {\n\t\t\t\t\tpush_screen(DeadEnd);\n\t\t\t\t},\n\t\t\t},\n\t\t}}\n\t/>\n\n\t{#key a_holdings}\n\t\t\n\t{/key}\n\n
\n","\n\n\n\n\n\t
\n\t\t\n\n\t\t\n\t
\n\n\t H_TAGS[p])}\n\t/>\n\n\t
\n\n\t\t{#if k_ibct_native}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tStake\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tEarn up to 24% per year\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t{:else if $yw_chain.def.id.startsWith('secret-')}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tAllowances ({gd_token.allowances.length})\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tAccounts allowed to spend this token\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t{#each a_allowances as g_allowance, i_allowance}\n\t\t\t\t\t push_screen(DeadEnd)}\n\t\t\t\t\t\trootStyle={i_allowance === a_allowances.length-1? 'border-bottom: none;': ''}\n\t\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t
\n\t\t{/if}\n\n\t\t{#each a_history as k_txn}\n\t\t\t{@const g_bankish = k_txn.bankish($yw_account.address($yw_chain))}\n\t\t\t{@const gd_txn = k_txn.def}\n\t\t\t{@const g_detail = detail_bankish(g_bankish)}\n\n\t\t\t{#if g_bankish}\n\t\t\t\t push_screen(DeadEnd)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t{#if g_detail.icon}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{@html g_detail.icon}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if g_detail.name}\n\t\t\t\t\t\t\t{g_detail.name}\n\t\t\t\t\t\t{:else if g_bankish.address}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{:else}\n\t\t\t\t push_screen(DeadEnd)}\n\t\t\t\t/>\n\t\t\t{/if}\n\t\t{/each}\n\t
\n
","\n\n\n\n
\n\t{#each a_holdings as k_holding}\n\t\t{@const {def:gd_token} = H_TOKENS[k_holding.def.tokenRef]}\n\n\t\t push_screen(TokenHoldingView, {\n\t\t\t\tholding: k_holding,\n\t\t\t})}\n\t\t>\n\t\t\n\t{/each}\n
\n","\n\n\n\n
\n\t
\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\tNotice:\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tUploaded icons will be resized to be square. Only JPG & PNG files less than 1MB allowed.\n\t\t\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t
push_screen(DeadEnd)}>\n\t\t\t\t\t\n\t\t\t\t\t\t{@html SX_IMAGE}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tUpload Icon\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n
\n","\n\n\n\n\n
\n\t{#each a_words as _, i_iter}\n\t\t{@const i_word = i_iter % 2? 12+((i_iter+1)/2): 1+(i_iter/2)}\n\t\t\n\t\t\t{i_word}.\n\t\t\n\t\t\n\t\t\t{a_words[i_word-1]}\n\t\t\n\t{/each}\n
\n","export default \"\\n\\t\\n\\t\\n\\n\"","export default \"\\n\\t\\n\\t\\n\\n\"","export default \"\\n\\t\\n\\t\\n\\n\"","export default \"\\n\\t\\n\\t\\n\\n\"","export default \"\\n\\t\\n\\t\\n\\n\"","\n\n\n\n","export default \"\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\"","export default \"\\n\\t\\n\\t\\n\\n\"","export default \"\\n\\t\\n\\t\\n\\n\"","\n\n\n\n\n\n\n
\n\t{#if pfpIcon || $$slots.pfp}\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t{/if}\n\t
\n\t\t\n\t\t\t{title}\n\t\t\n\t\t{#if info}\n\t\t\t\n\t\t\t\t{@html SX_INFO}\n\t\t\t\n\t\t{/if}\n\t
\n\t{#if subtitle || $$slots.subtitle}\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{subtitle}\n\t\t\t\t\n\t\t\t\n\t\t
\n\t{/if}\n\n\t\n\n\t{#if actions}\n\t\t
\n\t\t\t{#each ode(actions) as [si_action, gc_action]}\n\t\t\t\t gc_action.trigger()}>\n\t\t\t\t\t\n\t\t\t\t\t\t{@html H_ACTION_ICONS[si_action]}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{gc_action.label}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{/each}\n\t\t
\n\t{/if}\n\n\t\n
","\n\n\n\n\n
0}>\n\t
\n
\n\n
0}>\n\tStep {$yw_progress[0] || $yw_progress[1]} of {$yw_progress[1]}\n
","\n\n\n\n\n
\n\t\n
\n","\n\n\n\n\n
\n\t\n
","\n\n\n\n\n\n
\n\t\n\n\t\t{#if s_err_name}\n\t\t\t\n\t\t\t\t{s_err_name}\n\t\t\t\n\t\t{/if}\n\t\n\n\t\n\t\t autofill_address()}\n\t\t>\n\n\t\t{#if s_err_address}\n\t\t\t\n\t\t\t\t{s_err_address}\n\t\t\t\n\t\t{/if}\n\t\n\n\t\n\t\t\n\t\n\n\t
\n\n\t

\n\t\t{contact? 'Edit': 'Add'} Tags\n\t

\n\n\t\n\n\t
\n\t\t\n\n\t\t\n\t
\n","\n\n\n\n\n\n\t
\n\t
\n\n\t H_TAGS[p_tag])}\n\t>\n\t\t\n\t\t\t{#if H_ICONS[contact.def.iconRef]}\n\t\t\t\t\n\t\t\t{:else}\n\t\t\t\t\n\t\t\t\t\t{contact.def.label[0]}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\n\n\t\t\n\t\t\t
\n\t\t\n\t\n\n\n\t\n\n\t\n\n\n","\n\n\n\n
\n\t{#each a_list as k_addr}\n\t\t{@const gd_contact = k_addr.def}\n\n\t\t {\n\t\t\t\tif(!hm_events.get(d_event)?.cancelMenu) {\n\t\t\t\t\tpush_screen(ContactView, {\n\t\t\t\t\t\tcontact: k_addr,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\t{#if H_ICONS[gd_contact.iconRef]}\n\t\t\t\t\t\n\t\t\t\t{:else}\n\t\t\t\t\t\n\t\t\t\t\t\t{gd_contact.label[0]}\n\t\t\t\t\t\n\t\t\t\t{/if}\n\t\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\t H_TAGS[p])}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t{@html SX_PERSONAL}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{@html SX_DOTS}\n\t\t\t\t\n\n\t\t\t\t{#if si_overlay === k_addr.def.iri}\n\t\t\t\t\t\n\t\t\t\t\t\t{#each a_overlay_actions as g_action}\n\t\t\t\t\t\t\t
g_action.click(k_addr)}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{@html g_action.icon}\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{g_action.label}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t
\n\t\t\t\t{/if}\n\t\t\t
\n\t\t\n\t{/each}\n
","\n\n\n\n\n\t
\n\t
\n\n\t push_screen(ContactEdit)}\n\t\tbuttons={['Export']}\n\t/>\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\tAll\n\t\t\t\n\n\t\t\t\n\t\t\t\tHumans\n\t\t\t\n\n\t\t\t\n\t\t\t\tContracts\n\t\t\t\n\t\t\n\n\n\t\t\n\t\t\n\t\t\t\n\t\t\n\n\n\t\t\n\t\t\n\t\t\t {\n\t\t\t\treturn Contact.Type.PERSON === k_contact.def.type\n\t\t\t}} />\n\t\t\n\n\t\t\n\t\t\n\t\t\n\t\t\t {\n\t\t\t\t\treturn Contact.Type.CONTRACT === k_contact.def.type\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\n\t\n\n
","\n\n\n\n\n\n\t
\n\t
\n\n\t\n\t\n\n\n\n
","\n\n\n\n\n\t
\n\t\t\n\n\t\t\n\t
\n\n\t\n\n\t\n\n\t
\n\t\t{#each a_networks as g_network}\n\t\t\t push_screen(NetworkEdit, {\n\t\t\t\t\tnetwork: g_network.object,\n\t\t\t\t})}\n\t\t\t>\n\t\t{/each}\n\t
\n\n
","\n\n dm_finish?.click()}\n>\n\t

\n\t\tEdit Account\n\t

\n\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\t\t
\n\t\t\n\t\n\n\t\n\t\t\n\t\n\n\t
\n\t\t finish()}\n\t\t>\n\t\t\tFinish\n\t\t\n\t
\n\n","\n\n\n\n\n\t

\n\t\tVerify mnemonic\n\t

\n\n\t\n\n\t\n\n\t{#if !b_complete}\n\t\t

\n\t\t\tClick the correct word at position:\n\t\t

\n\t{:else}\n\t\t

\n\t\t\tAll done!\n\t\t

\n\t{/if}\n\n\t
\n\t\t{#each a_challenge as s_challenge, i_cell}\n\t\t\t answer(s_challenge, i_cell)}\n\t\t\t\tclass:hint={s_challenge === a_mnemonic[i_current]}\n\t\t\t\tclass:flashing={false}\n\t\t\t>\n\t\t\t\t{i_current+1}.\n\t\t\t\t{s_challenge}\n\t\t\t\n\t\t{/each}\n\t
\n\n\t
\n\t\t\n\n\t\t\n\t
\n
","\n\n\n\n\n\t

\n\t\tYou do NOT need to write this down. You will receive clues on the next screen.\n\t

\n\n\t

\n\t\tWrite down your recovery phrase\n\t

\n\n\t

\n\t\tWrite down this secret recovery phrase on paper and keep it in a safe place. Do not store it digitally! The recovery phrase is used to generate all accounts that are stored on your device. You can view your phrase again later in Settings > Security & Privacy.\n\t

\n\n\t\n\n\t
\n\t\t\n\n\t\t\n\t
\n
","\n\n\n\n\n\n\t

\n\t\tCreate or import an account\n\t

\n\n\t

\n\t\tIn order to send and receive digital assets, your device needs to keep a secret and cryptographically secure account.\n\t

\n\t\t\n\t\n\n\t
\n\t\t\n\n\t\t\n\n\t\t\n\n\t\t\n\t
\n\n\t
\n\t\tBy proceeding, you agree to the Terms & Conditions.\n\t
\n
","\n\n\n\n\t\n","\n\n\n\n\n\n\t

\n\t\tPasswords will auto-fill. {window.innerWidth <= 500? 'Tap this dialog to dismiss.': ''}\n\t

\n\n\t
\n\t\t\n\t\t

\n\t\t\t
\n\t\t\t\tWelcome to\n\t\t\t
\n\t\t\t

\n\t\t\t\tSTARSHELL\n\t\t\t

\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\n\t\t

\n\t\t\tCreate a password for this machine to be able to import your existing account or create a new one.\n\t\t

\n\t
\n\n\t
\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t
\n
","\n\n\n\t

\n\t\t{account? 'Edit': 'New'} account\n\t

\n\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n\n\t\n\n\t\n\t\t\n\t\t\t
\n\t\t\n\t\n\n\t\n\t\t\n\t\n\n\t
\n\t\t\n\n\t\t\n\t
\n","\n\n\n\t
\n\n\t\n\t\t\n\t\t\t{#if H_ICONS[account.def.iconRef]}\n\t\t\t\t\n\t\t\t{:else}\n\t\t\t\t\n\t\t\t\t\t{account.def.label[0]}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\n\n\t\t\n\t\t\t
\n\t\t\n\t\n\n","\n\n\n\n\n\t
\n\n\t
\n\t\t\n\t
\n\t\n\t
\n\t\t{nft.def.autoLabel} - \n\t\t\"{nft.def.label}\"\n\t
\n","\n\n\n\n open()}\n>\n\t\n\t\t\n\t\n","\n\n\n\n\n
\n\t\n\t\t
search(d_event.detail)}\n\t\t/>\n\n\t\t

\n\t\t\tDisclaimer: \n\t\t\tThis temporary search interface does not represent the look and function of the actual search interface currently under development for beta.\n\t\t\t\n\t\t

\n\n\t\t
\n\t\t\t{#key a_results}\n\t\t\t\t{#each a_results as g_result}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/key}\n\t\t
\n\t\n
\n","\n\n\n\n\n\t
\n\t
\n\n\t
\n\n\t

\n\t\tCreate a new account, import an existing one, or connect to a hardwarware wallet.\n\t

\n\n\t
\n\t\t\n\n\t\t\n\n\t\t\n\t
\n
","\n\n\n\n\n\t
\n\t
\n\n\t push_screen(AccountCreate)}\n\t/>\n\n\t
\n\t\t{#each a_accounts as k_account}\n\t\t\t{@const gd_account = k_account.def}\n\t\t\t push_screen(AccountView, {\n\t\t\t\t\taccount: k_account,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\tStarShell - m/44'/118'/0'/0/{+(gd_account.id)-1}\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t{/each}\n\t
\n
","\n\n\n\n\n
\n\t
expanded = !expanded}>\n\t\t\n\t\t\t{@html SX_DROPDOWN}\n\t\t\n\t\t\n\t\t\t{title}\n\t\t\n\t\n\t
\n\n\t{#if expanded}\n\t\t\n\t{/if}\n
\n","\n\n\n\n\n\n\t\n\n\t
\n\t\t{#each a_nfts as k_nft}\n\t\t\t push_screen(DeadEnd)}>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t#{k_nft.def.id}\n\t\t\t\t\n\n\t\t\t\t H_TAGS[p])}>\n\t\t\t\t\t\n\t\t\t\t\t\t{k_nft.def.label}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t{/each}\n\n\t\t{#each a_nfts.slice(0, (3 - (a_nfts.length % 3)) % 3) as _}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t{/each}\n\t
\n
\n","\n\n\n\n\n\t
\n\t\t\n\n\t\t\n\t
\n\n\t
\n\t\t{#each a_collections as [sa_collection, g_collection]}\n\t\t\t\n\t\t{/each}\n\n\t\t{#if !a_collections.length}\n\t\t\t

No NFTs yet

\n\t\t{/if}\n\t
\n\n
\n","\n\n\n\n\n\t
\n\t\t\n\n\t\t\n\t
\n\n\t\n\n\t

\n\t\tDisclaimer: \n\t\tThis temporary history interface does not represent the look and function of the actual history interface currently under development for beta.\n\t

\n\n\t\n\t\n\n\t\n
\n","\n\n\n\n\n\t
\n\t
\n\n\t\n\n\t
\n\t\t{#each Object.values(H_SITES) as k_site}\n\t\t\t{@const gd_site = k_site.def}\n\t\t\t push_screen(DeadEnd)}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t4 allowanced tokens\n\t\t\t\t\n\t\t\t\n\t\t{/each}\n\t
\n
","\n\n\n\n\n\t
\n\t\t\n\t
\n\n\t

\n\t\tOk, no worries.\n\t

\n\n\t

\n\t\tThanks for stopping by!\n\t

\n\n\n\t
\n\t\t\n\t
\n
","\n\n\n\n\n\t
\n\t\t\n\t
\n\n\t

\n\t\tWith hundreds of beta testers, it can be difficult to process everyone's feedback.\n\t

\n\n\t

\n\t\tTherefore, we are asking every tester to allow anonymous usage data reporting.\n\t

\n\n\t

\n\t\tKeep in mind, this app is prepopulated with dummy data and is not actually connected to any blockchain network, testnet, or otherwise.\n\t

\n\n\t
\n\t\t\n\n\t\t\n\t
\n
","\n\n\n\n\n\t
\n\t\t\n\t
\n\n\t

\n\t\tTo help us measure how well the UI is working, we're going to give you a few tasks, such as \"send crypto to this address\", or \"find this transaction\", and so on.\n\t

\n\n\t

\n\t\tOnce testing is complete, you will be free to explore the rest of the app and give us written feedback.\n\t

\n\n\t
\n\t\t\n\t
\n
","export default \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\"","\n\n\n\n\n\t
\n\t\t\n\t
\n\n\t
\n\t\t{@html SX_TITLE}\n\t
\n\n\t
{@html ' '}
\n\n\t
\n\t\t
Welcome to the beta program.
\n\t\t
Thank for you being a tester!
\n\t
\n\n\t

\n\t\tThe app you are about to test is what is called an \"MVP\". Our goal is to make sure the UI is intuitive for new users, and that things work the way you'd expect them to.\n\t

\n\n\t
\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t
\n
","import type {\n\tSvelteComponent,\n} from 'svelte';\n\nimport {\n\ttype Writable,\n\tderived,\n\twritable,\n} from 'svelte/store';\n\nimport {\n\tState,\n\tStateThread,\n\tStateManager,\n\twritableSync,\n\tderivedSync,\n\ttype NewStateConfig,\n} from '#/state/manager';\n\nimport type {\n\tWisprRef,\n\tWisprUri,\n} from '#/state/path';\n\nimport {\n\tResourceType,\n\ttype WisprObject,\n\ttype WisprScreen,\n\ttype ScreenResource,\n\ttype ObjectResource,\n\tRouter,\n\ttype Resolution,\n} from '#/state/router';\n\nimport Contacts from '#/screen/Contacts.svelte';\nimport ContactView from '#/screen/ContactView.svelte';\nimport ContactEdit from '#/screen/ContactEdit.svelte';\n\nimport Chains from '#/screen/Networks.svelte';\nimport ChainView from '#/screen/ChainView.svelte';\nimport ChainEdit from '#/screen/ChainEdit.svelte';\n\nimport Init from '#/screen/Init.svelte';\nimport InitCreate from '#/screen/InitCreate.svelte';\nimport InitCreateVerify from '#/screen/InitCreateVerify.svelte';\nimport InitCreateEdit from '#/screen/InitCreateEdit.svelte';\nimport Locked from '#/screen/Locked.svelte';\nimport Welcome from '#/screen/Welcome.svelte';\nimport Holdings from '#/screen/Holdings.svelte';\nimport TokenHoldingView from '#/screen/TokenHoldingView.svelte';\nimport Search from '#/screen/Search.svelte';\nimport Send from '#/screen/Send.svelte';\nimport Execute from '#/screen/Execute.svelte';\nimport Accounts from '#/screen/Accounts.svelte';\nimport Networks from '#/screen/Networks.svelte';\nimport NetworkEdit from '#/screen/NetworkEdit.svelte';\nimport TokenEdit from '#/screen/TokenEdit.svelte';\nimport Gallery from '#/screen/Gallery.svelte';\nimport History from '#/screen/History.svelte';\nimport NftView from '#/screen/NftView.svelte';\nimport AccountCreate from '#/screen/AccountCreate.svelte';\nimport AccountEdit from '#/screen/AccountEdit.svelte';\nimport AccountView from '#/screen/AccountView.svelte';\nimport Sites from '#/screen/Sites.svelte';\nimport DeadEnd from '#/screen/DeadEnd.svelte';\nimport TxnView from './screen/TxnView.svelte';\n\nimport type { Hash } from '#/util/types';\n\n\nimport { ode, oderom } from './util/belt';\nimport type { WisprPath } from './state/path';\nimport { Account, Chain, Holding, Network, Token } from './objects';\nimport { H_CHAINS, H_FAMILIES, H_HOLDINGS, H_TOKENS, K_DEFAULT_ACCOUNT, type SearchItem } from './sim/data';\nimport type Fuse from 'fuse.js';\nimport type { Searchable } from './objects/_core';\n\nimport Mvp_1 from './screen/Mvp_1.svelte';\nimport Mvp_2 from './screen/Mvp_2.svelte';\nimport Mvp_3 from './screen/Mvp_3.svelte';\nimport Mvp_NoSvelte from './screen/Mvp_No.svelte';\n\nexport const XP_APP_WIDTH = 360;\nexport const XP_APP_HEIGHT = 640;\n\nexport enum ThreadId {\n\tDEFAULT='default',\n\tSEARCH='search',\n\tINIT='init',\n\tTOKENS='tokens',\n\tNFTS='nfts',\n\tCONTACTS='contacts',\n\tHISTORY='history',\n\tNETWORKS='networks',\n\tACCOUNTS='accounts',\n\tTAGS='tags',\n\tSITES='sites',\n}\n\nexport const H_THREADS = {\n\t[ThreadId.DEFAULT]: Locked,\n\t[ThreadId.SEARCH]: Search,\n\t[ThreadId.TOKENS]: Holdings,\n\t[ThreadId.INIT]: Welcome,\n\t[ThreadId.NFTS]: Gallery,\n\t[ThreadId.CONTACTS]: Contacts,\n\t[ThreadId.HISTORY]: History,\n\t[ThreadId.NETWORKS]: Networks,\n\t[ThreadId.ACCOUNTS]: Accounts,\n\t// [ThreadId.Tags]: Tags,\n\t[ThreadId.SITES]: Sites,\n} as const;\n\nexport const yw_screen_dom = writableSync(null!);\n\nexport const yw_path = writableSync('');\n\nexport const yw_pattern = writableSync('');\n\nexport const yw_thread_id = writableSync(ThreadId.DEFAULT)\n\nexport const yw_notifications = writableSync>([]);\n\nexport const yw_nav_collapsed = writable(false);\n\nexport const yw_nav_visible = writableSync(false);\n\nexport const yw_progress = writableSync([0, 0] as [number, number]);\n\nexport const yw_uri = derivedSync(yw_path, $yw => `wispr://root/${$yw}`);\n\nexport const yw_path_parts = derivedSync(yw_path, $yw => ($yw as string).split('/'));\n\nexport const yw_family = writableSync(Object.values(H_FAMILIES)[0]);\n\nexport const yw_chain = writableSync(Object.values(H_CHAINS)[0]);\n\nexport const yw_search = writable('');\n\nexport const yw_cancel_search = writableSync(() => {});\n\nexport const yw_fuse = writable>();\n\nexport const yw_asset_send = writableSync(null);\n\nexport const yw_account = writableSync(K_DEFAULT_ACCOUNT);\n\nexport const yw_params = writableSync({\n\tfamilyId: yw_family.get()?.def.id || '.default',\n\tchainId: yw_chain.get()?.def.id || '*',\n\taccountId: yw_account.get().def.id,\n});\n\nexport const yw_task = writableSync(0);\n\n// export const yw_params = derivedSync([yw_family, yw_chain, yw_account], ([$yw_fam, $yw_chn, $yw_acc]) => ({\n// \tfamilyId: $yw_fam?.def.id || '.default',\n// \tchainId: $yw_chn?.def.id || '*',\n// \taccountId: $yw_acc.def.id,\n// }));\n\nexport const yw_help = writableSync([] as HTMLElement[]);\n\nexport const yw_header_props = writableSync({} as Hash);\n\nexport const yw_exitting_dom = writableSync(null!);\n\nexport const yw_menu_expanded = writableSync(false);\n\nexport const yw_vendor_menu = writableSync(false);\n\nexport const yw_overscroll_pct = writableSync(0);\n\nexport const yw_popup = writableSync(null);\n\nexport const yw_popup_account = writableSync(null);\n\nexport const yw_popup_context = writableSync | null>(null);\n\nexport const yw_blur = writableSync(false);\nexport const yw_overlay_account = writableSync(false);\nexport const yw_overlay_network = writableSync(false);\n\nexport const yw_holding_send = derived([yw_asset_send, yw_account, yw_chain], ([$yw_asset, $yw_acc, $yw_ch]) => {\n\tif($yw_asset && $yw_acc) {\n\t\tconst p_token = $yw_asset.def.iri;\n\t\tconst sa_holder = $yw_acc.address($yw_ch);\n\t\tconst p_holding = Holding.refFromTokenAccount(p_token, sa_holder);\n\t\treturn H_HOLDINGS[p_holding];\n\t}\n\n\treturn null;\n});\n\n\nexport const hm_arrivals: WeakMap = new Map();\nexport function arrival(dm_screen: HTMLElement, fk_arrive: VoidFunction) {\n\thm_arrivals.set(dm_screen, fk_arrive);\n}\n\nexport const K_ROUTER = Router.parse({\n\t'=': () => '/mvp/1',\n\n\t'/locked': {\n\t\t$: Locked,\n\n\t\t// '/unlocked': {\n\t\t// \t'=': () => '/chains/.default/holdings/.default',\n\t\t// },\n\t},\n\n\t'/mvp': {\n\t\t'/1':{\n\t\t\t$: Mvp_1,\n\t\t},\n\n\t\t'/2':{\n\t\t\t$: Mvp_2,\n\t\t},\n\n\t\t'/3':{\n\t\t\t$: Mvp_3,\n\t\t},\n\n\t\t'/no': {\n\t\t\t$: Mvp_NoSvelte,\n\t\t}\n\t},\n\n\t'/dead-end': {\n\t\t$: DeadEnd,\n\t},\n\n\t'/search': {\n\t\t$: Search,\n\t},\n\n\t'/welcome': {\n\t\t$: Welcome,\n\t},\n\n\t'/init': {\n\t\t$: Init,\n\n\t\t'/create': {\n\t\t\t$: InitCreate,\n\n\t\t\t'/verify': {\n\t\t\t\t$: InitCreateVerify,\n\t\t\t},\n\n\t\t\t'/edit': {\n\t\t\t\t$: InitCreateEdit,\n\t\t\t},\n\t\t},\n\t},\n\n\t'/networks': {\n\t\t$: Networks,\n\n\t\t// '/view': {\n\t\t// \t$: ChainView,\n\t\t// },\n\n\t\t'/edit': {\n\t\t\t$: NetworkEdit,\n\t\t},\n\t},\n\n\t'/families': {\n\n\t\t'/{familyId}': {\n\n\t\t\t'/contacts': {\n\t\t\t\t$: Contacts,\n\n\t\t\t\t'/{contactId}': {\n\t\t\t\t\t// _: Contact,\n\n\t\t\t\t\t'/view': {\n\t\t\t\t\t\t$: ContactView,\n\t\t\t\t\t},\n\t\t\t\t\t'/edit': {\n\t\t\t\t\t\t$: ContactEdit,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t'/chains': {\n\t\t\t\t// $: Chains,\n\n\t\t\t\t'/{chainId}': {\n\t\t\t\t\t// _: Chain,\n\n\t\t\t\t\t'/view': {\n\t\t\t\t\t\t$: ChainView,\n\t\t\t\t\t},\n\t\t\t\t\t'/edit': {\n\t\t\t\t\t\t$: ChainEdit,\n\t\t\t\t\t},\n\n\t\t\t\t\t'/holdings': {\n\t\t\t\t\t\t// '?'(h_params: Hash) {\n\t\t\t\t\t\t// \tif('.default' === h_params.accountId) {\n\t\t\t\t\t\t// \t\treturn `/chains/${h_params.chainId}/holdings/${Object.values(H_ACCOUNTS)[0].def.id}`;\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t// },\n\n\t\t\t\t\t\t'/{accountId}': {\n\t\t\t\t\t\t\t$: Holdings,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\n\t\t\t\t\t'/tokens?account=*': {\n\t\t\t\t\t\t// $: \n\n\t\t\t\t\t\t'/{tokenId}': {\n\t\t\t\t\t\t\t// _: Token,\n\n\t\t\t\t\t\t\t'/holdings': {\n\t\t\t\t\t\t\t\t'/{accountId}': {\n\t\t\t\t\t\t\t\t\t// _: Holding,\n\n\t\t\t\t\t\t\t\t\t'/view': {\n\t\t\t\t\t\t\t\t\t\t$: TokenHoldingView,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t// '/view?account=*': {\n\t\t\t\t\t\t\t// \t$: TokenView,\n\t\t\t\t\t\t\t// },\n\n\t\t\t\t\t\t\t'/edit?account': {\n\t\t\t\t\t\t\t\t$: TokenEdit,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\n\t\t\t\t\t'/gallery': {\n\t\t\t\t\t\t'/{accountId}': {\n\t\t\t\t\t\t\t$: Gallery,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\n\t\t\t\t\t'/nfts?account=*': {\n\t\t\t\t\t\t'/{minterId}': {\n\t\t\t\t\t\t\t'/{tokenId}': {\n\t\t\t\t\t\t\t\t'/{accountId}': {\n\t\t\t\t\t\t\t\t\t'/view': {\n\t\t\t\t\t\t\t\t\t\t$: NftView,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\n\t\t\t\t\t'/txns': {\n\t\t\t\t\t\t'/view': {\n\t\t\t\t\t\t\t$: TxnView,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\t'/accounts': {\n\t\t$: Accounts,\n\n\t\t'/create': {\n\t\t\t$: AccountCreate,\n\t\t},\n\t\t\n\t\t'/{accountId}': {\n\t\t\t// _: Account,\n\n\t\t\t'/view': {\n\t\t\t\t$: AccountView,\n\t\t\t},\n\t\t\t'/edit': {\n\t\t\t\t$: AccountEdit,\n\t\t\t}\n\t\t},\n\t},\n\n\t'/sites': {\n\t\t$: Sites,\n\t},\n\n\t'/send': {\n\t\t$: Send,\n\t},\n\n\t'/execute': {\n\t\t$: Execute,\n\t},\n\n\t'/history': {\n\t\t$: History,\n\t},\n});\n\n\nexport function resolve(sr_ref: WisprRef): Resolution {\n\t// base iri\n\tconst p_base = yw_uri.get() as WisprUri;\n\n\t// attempt\n\tconst g_attempt = K_ROUTER.resolve(sr_ref, p_base);\n\n\t// failed\n\tif(!g_attempt) {\n\t\tthrow new Error(`Failed to resolve ref: <${sr_ref}> using base IRI <${p_base}>`);\n\t}\n\t\n\treturn g_attempt;\n}\n\nexport function resolve_to_screen(sr_ref: WisprRef): Resolution {\n\tconst g_resolved = resolve(sr_ref);\n\n\t// not a screen\n\tif(ResourceType.SCREEN !== g_resolved.resource.type) {\n\t\tthrow new Error(`Refusing to resolve non-screen resource type <${g_resolved.path}>`);\n\t}\n\telse {\n\t\treturn g_resolved as Resolution;\n\t}\n}\n\nfunction new_state_from_ref(sr_ref: WisprRef): NewStateConfig {\n\t// resolve ref\n\tconst {\n\t\tpath: sr_path,\n\t\tpattern: sx_pattern,\n\t\tresource: {screen: dc_screen},\n\t\tparams: h_params,\n\t} = resolve_to_screen(sr_ref);\n\n\t// update stores\n\tyw_path.set(sr_path);\n\tyw_pattern.set(sx_pattern)\n\n\t// return new state config\n\treturn {\n\t\tpath: () => sr_path,\n\t\tpattern: sx_pattern,\n\t\tprops: h_params,\n\t\tscreen: dc_screen,\n\t};\n}\n\nexport function push_ref(sr_ref: WisprRef): State {\n\t// push and return state\n\treturn K_STATE_MANAGER.push(new_state_from_ref(sr_ref));\n}\n\nfunction new_state_from_screen<\n\tParams extends {},\n\tEvents extends {},\n\tSlots extends {},\n\tScreen extends WisprScreen,\n>(dc_screen: Screen, h_params?: Params, h_events?: Events, h_slots?: Slots): NewStateConfig {\n\t// locate router node corresponding to screen\n\tconst k_node = K_ROUTER.lookup_screen(dc_screen as unknown as WisprScreen);\n\t\n\t// fetch its pattern\n\tconst sx_pattern = k_node.path_pattern as WisprPath;\n\n\t// normalize props\n\tconst gc_props = {\n\t\t...yw_params.get(),\n\t\t...h_params,\n\t};\n\n\t// push and return state\n\treturn {\n\t\tpath: (yc_component: SvelteComponent) => {\n\t\t\t// reverse compute props from component instance\n\t\t\tconst h_props: Hash = {};\n\t\t\tlet w_node = yc_component;\n\t\t\twhile(Object !== w_node.constructor) {\n\t\t\t\tfor(const si_key of Object.getOwnPropertyNames(w_node)) {\n\t\t\t\t\tif('$' !== si_key[0] && si_key.endsWith('Id') && 'string' === typeof yc_component[si_key] && !(si_key in h_props)) {\n\t\t\t\t\t\th_props[si_key] = yc_component[si_key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tw_node = Object.getPrototypeOf(w_node);\n\t\t\t}\n\n\t\t\tconst gc_params = {\n\t\t\t\t...gc_props,\n\t\t\t\t...h_props,\n\t\t\t};\n\n\t\t\t// resolve to path\n\t\t\tconst sr_path = k_node.reverse_resolve(gc_params);\n\n\t\t\t// update stores\n\t\t\tyw_path.set(sr_path);\n\t\t\tyw_pattern.set(sx_pattern);\n\n\t\t\treturn {\n\t\t\t\tpath: sr_path,\n\t\t\t\tparams: gc_params,\n\t\t\t};\n\t\t},\n\t\tpattern: sx_pattern,\n\t\tprops: gc_props,\n\t\tscreen: dc_screen as unknown as WisprScreen,\n\t};\n}\n\nwindow.onpopstate = function(d_event) {\n\tpop(true);\n};\n\nexport function push_screen<\n\tParams extends {},\n\tEvents extends {},\n\tSlots extends {},\n\tScreen extends WisprScreen,\n>(dc_screen: Screen, h_params?: Params, h_events?: Events, h_slots?: Slots) {\n\thistory.pushState(null, '', location.href);\n\n\treturn K_STATE_MANAGER.push(new_state_from_screen(dc_screen, h_params, h_events, h_slots));\n}\n\nexport function pop(b_bypass_animation=false) {\n\treturn K_STATE_MANAGER.pop(b_bypass_animation);\n}\n\nexport function restart() {\n\treturn K_STATE_MANAGER.restart();\n}\n\nexport function goto_ref(sr_ref: WisprRef): State {\n\t// goto and return state\n\treturn K_STATE_MANAGER.goto(new_state_from_ref(sr_ref));\n}\n\nexport function goto_screen<\n\tParams extends {},\n\tEvents extends {},\n\tSlots extends {},\n\tScreen extends WisprScreen,\n>(dc_screen: Screen, h_params?: Params, h_events?: Events, h_slots?: Slots): State {\n\treturn K_STATE_MANAGER.goto(new_state_from_screen(dc_screen, h_params, h_events, h_slots));\n}\n\nexport function peak(): undefined | State {\n\t// ref current thread history\n\tconst a_history = K_STATE_MANAGER.history\n\n\t// previous item in thread\n\treturn a_history[1];\n}\n\nlet K_STATE_MANAGER!: StateManager;\n\n\n// subscribe to account changes\nlet k_account_prev: Account | null = null;\nyw_account.subscribe((k_account) => {\n\tif(k_account !== k_account_prev && k_account_prev) {\n\t\tif(K_STATE_MANAGER) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tK_STATE_MANAGER.reset_all_threads();\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\tk_account_prev = k_account;\n});\n\n// subscribe to network changes\nlet k_chain_prev: Chain | null = null;\nyw_chain.subscribe((k_chain) => {\n\tif(k_chain !== k_chain_prev && k_chain_prev) {\n\t\tif(K_STATE_MANAGER) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tK_STATE_MANAGER.reset_all_threads();\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\tk_chain_prev = k_chain;\n});\n\nexport function reset_all() {\n\tK_STATE_MANAGER.reset_all_threads();\n}\n\n\n// subscribe to thread changes\nyw_thread_id.subscribe((si_thread) => {\n\t// notify state manager\n\tif(K_STATE_MANAGER) {\n\t\tconst b_altered = K_STATE_MANAGER.alter_thread(si_thread, yw_params.get());\n\n\t\tif(b_altered) {\n\t\t\tconst {\n\t\t\t\tpath: sr_path,\n\t\t\t\tpattern: sx_pattern,\n\t\t\t} = K_STATE_MANAGER.state;\n\n\t\t\tyw_path.set(sr_path);\n\t\t\tyw_pattern.set(sx_pattern);\n\t\t}\n\t}\n});\n\nexport function initialize(k_manager: StateManager) {\n\tK_STATE_MANAGER = k_manager;\n}\n\n\n","\n\n\n\n\n\t
$yw_menu_expanded = false}\n\t/>\n\n\t
\n\t\t
$yw_menu_expanded = false}>\n\t\t\t{@html SX_CLOSE}\n\t\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
    \n\t\t\t\t\t{#each A_SESSION_ITEMS as g_item}\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{g_item.label}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t{/each}\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t
    \n\t\t\t\t\t{#each A_ITEMS as g_item}\n\t\t\t\t\t\t
  • g_item.click()}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{g_item.label}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t{/each}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n
","\n\n\n\n\n\n\n\t\n\n\t\n\n\t\n\n\t\n\t\n\t\n","\n\n\n\n
$yw_popup = null}>\n\t
d_event.stopPropagation()}>\n\t\t\n\t
\n
\n","export default \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\"","\n\n\n\n\n\t
$yw_vendor_menu = false}\n\t/>\n\n\t
\n\t\t
$yw_vendor_menu = false}>\n\t\t\t{@html SX_CLOSE}\n\t\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{@html SX_TITLE}\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\tv0.0.1\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tNetwork Status\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\tOnline\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tCurrent Block\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t#{n_block}\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tAverage Block Time\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t{(xt_bt / 1000).toFixed(2)} seconds\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\n\n\t\t\t
\n\t\t
\n\t
\n
","\n\n\n\n\n\n
\n\t
\n\t
\n\t
\n\t
\n\t\n\n\t\n\t\n\t
\n","\n\n\n\n\n\n
\n\t\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t
\n
\n\n\n
\n\t{#each a_inspects as g_inspect}\n\t\t\n\t\t\t{g_inspect.key}\n\t\t\n\t\t\n\t\t\t{g_inspect.value}\n\t\t\n\t{/each}\n
\n\n
{\n\tb_show_help = !b_show_help;\n}}>\n\t

\n\t\t{#if $yw_task < 9}\n\t\t\t

Beta testing closed

\n\n\t\t\t

\n\t\t\t\tThe period for beta testing has ended. However, we will keep the demo available for a bit longer -- so feel free to play around with the UI!\n\t\t\t

\n\n\t\t\t\n\t\t{:else if $yw_task > 0 && $yw_task < 8}\n\t\t\t
\n\t\t\t\tTask {$yw_task} of 7\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t{#if Tasks.ACCOUNT === $yw_task}\n\t\t\t\t\t

\n\t\t\t\t\t\tCreate a new wallet account.\n\t\t\t\t\t

\n\t\t\t\t{:else if Tasks.RECEIVE === $yw_task}\n\t\t\t\t\t

\n\t\t\t\t\t\tA friend wants to send you some tokens. To be able to receive them, find your public address and copy it to your clipboard.\n\t\t\t\t\t

\n\t\t\t\t{:else if Tasks.SEND === $yw_task}\n\t\t\t\t\t

\n\t\t\t\t\t\tSend 100 sUSDC to your friend, Satoshi Nakamoto, who is already in your contacts.\n\t\t\t\t\t

\n\t\t\t\t{:else if Tasks.NEW_CONTACT === $yw_task}\n\t\t\t\t\t

\n\t\t\t\t\t\tAdd a new contact.\n\t\t\t\t\t

\n\t\t\t\t{:else if Tasks.VERIFY === $yw_task}\n\t\t\t\t\t

\n\t\t\t\t\t\tCheck your ATOM balance on the Cosmos chain in your account named \"Minerva\".\n\t\t\t\t\t

\n\t\t\t\t{:else if Tasks.ADD_TAG === $yw_task}\n\t\t\t\t\t

\n\t\t\t\t\t\tAdd a tag to one of your accounts.\n\t\t\t\t\t

\n\t\t\t\t{:else if Tasks.REWARD === $yw_task}\n\t\t\t\t\t

\n\t\t\t\t\t\tSend 1 StarShell MVP Reward token (S2MVPR) to your REAL Secret Network address!\n\t\t\t\t\t

\n\n\t\t\t\t\t

\n\t\t\t\t\t\tWe want to show our appreciation to you for taking some time to participate in the beta program.\n\t\t\t\t\t\tComplete this task if you want to be eligible for some future airdrop or whitelisting.\n\t\t\t\t\t\tPlease note, there is no guarantee you will receive anything.\n\t\t\t\t\t

\n\n\t\t\t\t\t

\n\t\t\t\t\t\tIf you'd rather not provide your address, you can $yw_task += 1}>skip this step.\n\t\t\t\t\t

\n\t\t\t\t{:else}\n\t\t\t\t\t...\n\t\t\t\t{/if}\n\t\t\t
\n\n\t\t\t{#if !b_recording}\n\t\t\t\t\n\t\t\t{/if}\n\t\t{:else if $yw_task === 8}\n\t\t\t

All done!

\n\n\t\t\t

\n\t\t\t\tYou've reached the end of user testing. Feel free to play around with the UI.\n\t\t\t

\n\n\t\t\t\n\t\t{:else if $yw_task < 0}\n\t\t\t
\n\t\t\t\tTask {-$yw_task} of 7\n\t\t\t
\n\n\t\t\t

Well done!

\n\n\t\t\t

\n\t\t\t\tYou successfully completed the task.\n\t\t\t

\n\n\t\t\t\n\t\t{/if}\n\n\n\t\t{#if b_admin}\n\t\t\t{#each a_files as g_file}\n\t\t\t\t\n\t\t\t{/each}\n\t\t{/if}\n\t

\n\t\n\t
\n\n\t
\n\n\t
 
\n
","import App from './component/App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {},\n});\n\nexport default app;\n"],"names":["F_NOOP","Tag","TagClass","TagDefClass","SX_ADD","SX_CHECKED","SXP_ROBOT","SX_EDIT","SX_SEND","p_high","SX_TITLE","Mvp_NoSvelte"],"mappings":"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}