{"version":3,"file":"js/dist/main.2960691fc1b127b3126b.js","mappings":"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","sources":["webpack:///../../../../node_modules/eosio-signing-request/lib/esr.m.js","webpack:///../../../../node_modules/svelte/internal/index.mjs","webpack:///./_snowpack/env.js","webpack:///../../../../node_modules/svelte/store/index.mjs","webpack:///../../../node_modules/tinro/dist/tinro_lib.js","webpack:///../../../node_modules/tinro/cmp/Route.svelte","webpack:///../src/config.ts","webpack:///../../../node_modules/idb/build/esm/wrap-idb-value.js","webpack:///../../../node_modules/idb/build/esm/index.js","webpack:///../../../node_modules/svelte-result-store/lib/svelte-result-store.m.js","webpack:///../src/db.ts","webpack:///../src/preferences.ts","webpack:///../src/lib/readable-object.ts","webpack:///../src/abi-types.ts","webpack:///../src/api-client.ts","webpack:///../src/price-ticker.ts","webpack:///../src/stores/account-provider.ts","webpack:///../src/store.ts","webpack:///../../../node_modules/anchor-link-browser-transport/lib/anchor-link-browser-transport.m.js","webpack:///../src/auth.ts","webpack:///icon.svelte","webpack:///button.svelte","webpack:///text.svelte","webpack:///../src/stores/toast.ts","webpack:///login.svelte","webpack:///segment.svelte","webpack:///list.svelte","webpack:///sidebar.svelte","webpack:///mode.svelte","webpack:///header.svelte","webpack:///media-query.svelte","webpack:///logo.svelte","webpack:///unicove.svelte","webpack:///content.svelte","webpack:///index.svelte","webpack:///page.svelte","webpack:///features.svelte","webpack:///unicove-animated.svelte","webpack:///../src/stores/balances-provider.ts","webpack:///../src/stores/tokens.ts","webpack:///../src/stores/balances.ts","webpack:///../../../../node_modules/@greymass/eosio-resources/lib/eosio-resources.m.js","webpack:///../src/pages/resources/resources.ts","webpack:///group.svelte","webpack:///image.svelte","webpack:///token.svelte","webpack:///headerrow.svelte","webpack:///number.svelte","webpack:///row.svelte","webpack:///table.svelte","webpack:///../src/pages/request/request.ts","webpack:///../src/pages/request/template.ts","webpack:///qrcode.svelte","webpack:///default.svelte","webpack:///loading.svelte","webpack:///../src/pages/request/resources.ts","webpack:///newaccount.svelte","webpack:///../src/pages/transfer/transfer.ts","webpack:///../src/pages/transfer/fio.ts","webpack:///form.svelte","webpack:///card.svelte","webpack:///../src/components/tx-follower/utils.ts","webpack:///summary.svelte","webpack:///advanced.svelte","webpack:///transaction.svelte","webpack:///label.svelte","webpack:///input.svelte","webpack:///errorMessage.svelte","webpack:///labelled.svelte","webpack:///lookup.svelte","webpack:///../src/components/elements/input/validators/presence.ts","webpack:///../src/components/elements/input/validators/publicKey.ts","webpack:///publicKey.svelte","webpack:///recipient.svelte","webpack:///../src/components/elements/input/validators/asset.ts","webpack:///asset.svelte","webpack:///modal.svelte","webpack:///selector.svelte","webpack:///amount.svelte","webpack:///container.svelte","webpack:///change.svelte","webpack:///completed.svelte","webpack:///address.svelte","webpack:///account.svelte","webpack:///quantity.svelte","webpack:///fee.svelte","webpack:///confirm.svelte","webpack:///clipboard.svelte","webpack:///receive.svelte","webpack:///memo.svelte","webpack:///sending.svelte","webpack:///main.svelte","webpack:///../../../../node_modules/svelte/motion/index.mjs","webpack:///../../../../node_modules/svelte/easing/index.mjs","webpack:///gauge.svelte","webpack:///cpu.svelte","webpack:///net.svelte","webpack:///ram.svelte","webpack:///prices.svelte","webpack:///balance.svelte","webpack:///rambuy.svelte","webpack:///buy.svelte","webpack:///ramsell.svelte","webpack:///sell.svelte","webpack:///progress.svelte","webpack:///fuel.svelte","webpack:///powerup.svelte","webpack:///rex.svelte","webpack:///staking.svelte","webpack:///buttons.svelte","webpack:///../src/components/elements/input/validators/account.ts","webpack:///forms.svelte","webpack:///icons.svelte","webpack:///inputs.svelte","webpack:///trigger.svelte","webpack:///modals.svelte","webpack:///segments.svelte","webpack:///tx-follower.svelte","webpack:///nav.svelte","webpack:///../../../../node_modules/svelte/transition/index.mjs","webpack:///toast.svelte","webpack:///toasts.svelte","webpack:///app.svelte","webpack:///../src/main.ts"],"sourcesContent":["/**\n * EOSIO Signing Request v2.2.2\n * https://github.com/greymass/eosio-signing-request\n *\n * @license\n * Copyright © 2021 Greymass Inc.\n * \n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the “Software”), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n * \n * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR\n * INTENDED FOR USE IN THE DESIGN, CONSTRUCTION, OPERATION OR\n * MAINTENANCE OF ANY MILITARY FACILITY.\n */\nimport { Checksum256, isInstanceOf, TypeAlias, UInt8, Variant, Name, Struct, PermissionLevel, Action, Transaction, Serializer, TimePointSec, Authority, Signature, Bytes, ABIEncoder, ABIDecoder, ABI, UInt16, UInt32 } from '@greymass/eosio';\nimport { __decorate } from 'tslib';\n\n/**\n * Base64u - URL-Safe Base64 variant no padding.\n * Based on https://gist.github.com/jonleighton/958841\n */\nconst baseCharset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nconst lookup = new Uint8Array(256);\nfor (let i = 0; i < 62; i++) {\n lookup[baseCharset.charCodeAt(i)] = i;\n}\n// support both urlsafe and standard base64\nlookup[43] = lookup[45] = 62;\nlookup[47] = lookup[95] = 63;\nfunction encode(data, urlSafe = true) {\n const byteLength = data.byteLength;\n const byteRemainder = byteLength % 3;\n const mainLength = byteLength - byteRemainder;\n const charset = baseCharset + (urlSafe ? '-_' : '+/');\n const parts = [];\n let a;\n let b;\n let c;\n let d;\n let chunk;\n // Main loop deals with bytes in chunks of 3\n for (let i = 0; i < mainLength; i += 3) {\n // Combine the three bytes into a single integer\n chunk = (data[i] << 16) | (data[i + 1] << 8) | data[i + 2];\n // Use bitmasks to extract 6-bit segments from the triplet\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n d = chunk & 63; // 63 = 2^6 - 1\n // Convert the raw binary segments to the appropriate ASCII encoding\n parts.push(charset[a] + charset[b] + charset[c] + charset[d]);\n }\n // Deal with the remaining bytes\n if (byteRemainder === 1) {\n chunk = data[mainLength];\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n // Set the 4 least significant bits to zero\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\n parts.push(charset[a] + charset[b]);\n }\n else if (byteRemainder === 2) {\n chunk = (data[mainLength] << 8) | data[mainLength + 1];\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n // Set the 2 least significant bits to zero\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\n parts.push(charset[a] + charset[b] + charset[c]);\n }\n return parts.join('');\n}\nfunction decode(input) {\n const byteLength = input.length * 0.75;\n const data = new Uint8Array(byteLength);\n let a;\n let b;\n let c;\n let d;\n let p = 0;\n for (let i = 0; i < input.length; i += 4) {\n a = lookup[input.charCodeAt(i)];\n b = lookup[input.charCodeAt(i + 1)];\n c = lookup[input.charCodeAt(i + 2)];\n d = lookup[input.charCodeAt(i + 3)];\n data[p++] = (a << 2) | (b >> 4);\n data[p++] = ((b & 15) << 4) | (c >> 2);\n data[p++] = ((c & 3) << 6) | (d & 63);\n }\n return data;\n}\n\nvar base64u = /*#__PURE__*/Object.freeze({\n __proto__: null,\n encode: encode,\n decode: decode\n});\n\n/** Chain ID aliases. */\nvar ChainName;\n(function (ChainName) {\n ChainName[ChainName[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n ChainName[ChainName[\"EOS\"] = 1] = \"EOS\";\n ChainName[ChainName[\"TELOS\"] = 2] = \"TELOS\";\n ChainName[ChainName[\"JUNGLE\"] = 3] = \"JUNGLE\";\n ChainName[ChainName[\"KYLIN\"] = 4] = \"KYLIN\";\n ChainName[ChainName[\"WORBLI\"] = 5] = \"WORBLI\";\n ChainName[ChainName[\"BOS\"] = 6] = \"BOS\";\n ChainName[ChainName[\"MEETONE\"] = 7] = \"MEETONE\";\n ChainName[ChainName[\"INSIGHTS\"] = 8] = \"INSIGHTS\";\n ChainName[ChainName[\"BEOS\"] = 9] = \"BEOS\";\n ChainName[ChainName[\"WAX\"] = 10] = \"WAX\";\n ChainName[ChainName[\"PROTON\"] = 11] = \"PROTON\";\n ChainName[ChainName[\"FIO\"] = 12] = \"FIO\";\n})(ChainName || (ChainName = {}));\nlet ChainId = class ChainId extends Checksum256 {\n static from(value) {\n if (isInstanceOf(value, this)) {\n return value;\n }\n if (typeof value === 'number') {\n value = ChainIdLookup.get(value);\n if (!value) {\n throw new Error('Unknown chain id alias');\n }\n }\n return super.from(value);\n }\n get chainVariant() {\n const name = this.chainName;\n if (name !== ChainName.UNKNOWN) {\n return ChainIdVariant.from(['chain_alias', name]);\n }\n return ChainIdVariant.from(this);\n }\n get chainName() {\n const cid = this.hexString;\n for (const [n, id] of ChainIdLookup) {\n if (id === cid) {\n return n;\n }\n }\n return ChainName.UNKNOWN;\n }\n};\nChainId = __decorate([\n TypeAlias('chain_id')\n], ChainId);\nlet ChainAlias = class ChainAlias extends UInt8 {\n};\nChainAlias = __decorate([\n TypeAlias('chain_alias')\n], ChainAlias);\nlet ChainIdVariant = class ChainIdVariant extends Variant {\n get chainId() {\n if (isInstanceOf(this.value, ChainId)) {\n return this.value;\n }\n return ChainId.from(Number(this.value.value));\n }\n};\nChainIdVariant = __decorate([\n Variant.type('variant_id', [ChainAlias, ChainId])\n], ChainIdVariant);\nconst ChainIdLookup = new Map([\n [ChainName.EOS, 'aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906'],\n [ChainName.TELOS, '4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11'],\n [ChainName.JUNGLE, 'e70aaab8997e1dfce58fbfac80cbbb8fecec7b99cf982a9444273cbc64c41473'],\n [ChainName.KYLIN, '5fff1dae8dc8e2fc4d5b23b2c7665c97f9e9d8edf2b6485a86ba311c25639191'],\n [ChainName.WORBLI, '73647cde120091e0a4b85bced2f3cfdb3041e266cbbe95cee59b73235a1b3b6f'],\n [ChainName.BOS, 'd5a3d18fbb3c084e3b1f3fa98c21014b5f3db536cc15d08f9f6479517c6a3d86'],\n [ChainName.MEETONE, 'cfe6486a83bad4962f232d48003b1824ab5665c36778141034d75e57b956e422'],\n [ChainName.INSIGHTS, 'b042025541e25a472bffde2d62edd457b7e70cee943412b1ea0f044f88591664'],\n [ChainName.BEOS, 'b912d19a6abd2b1b05611ae5be473355d64d95aeff0c09bedc8c166cd6468fe4'],\n [ChainName.WAX, '1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4'],\n [ChainName.PROTON, '384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0'],\n [ChainName.FIO, '21dcae42c0182200e93f954a074011f9048a7624c6fe81d3c9541a614a88bd1c'],\n]);\n\n/** SigningRequest ABI and typedefs. */\nvar RequestFlags_1;\nlet AccountName = class AccountName extends Name {\n};\nAccountName = __decorate([\n TypeAlias('account_name')\n], AccountName);\nlet PermissionName = class PermissionName extends Name {\n};\nPermissionName = __decorate([\n TypeAlias('permission_name')\n], PermissionName);\nlet IdentityV2 = class IdentityV2 extends Struct {\n};\n__decorate([\n Struct.field(PermissionLevel, { optional: true })\n], IdentityV2.prototype, \"permission\", void 0);\nIdentityV2 = __decorate([\n Struct.type('identity')\n], IdentityV2);\nlet IdentityV3 = class IdentityV3 extends Struct {\n};\n__decorate([\n Struct.field('name')\n], IdentityV3.prototype, \"scope\", void 0);\n__decorate([\n Struct.field(PermissionLevel, { optional: true })\n], IdentityV3.prototype, \"permission\", void 0);\nIdentityV3 = __decorate([\n Struct.type('identity')\n], IdentityV3);\nlet RequestVariantV2 = class RequestVariantV2 extends Variant {\n};\nRequestVariantV2 = __decorate([\n Variant.type('variant_req', [Action, { type: Action, array: true }, Transaction, IdentityV2])\n], RequestVariantV2);\nlet RequestVariantV3 = class RequestVariantV3 extends Variant {\n};\nRequestVariantV3 = __decorate([\n Variant.type('variant_req', [Action, { type: Action, array: true }, Transaction, IdentityV3])\n], RequestVariantV3);\nlet RequestFlags = RequestFlags_1 = class RequestFlags extends UInt8 {\n get broadcast() {\n return (Number(this) & RequestFlags_1.broadcast) !== 0;\n }\n set broadcast(enabled) {\n this.setFlag(RequestFlags_1.broadcast, enabled);\n }\n get background() {\n return (Number(this) & RequestFlags_1.background) !== 0;\n }\n set background(enabled) {\n this.setFlag(RequestFlags_1.background, enabled);\n }\n setFlag(flag, enabled) {\n if (enabled) {\n // TODO: implement bitwise operators in core, bn.js setbit does not work\n this.value = UInt8.from(Number(this) | flag).value;\n }\n else {\n this.value.imaskn(flag);\n }\n }\n};\nRequestFlags.broadcast = 1 << 0;\nRequestFlags.background = 1 << 1;\nRequestFlags = RequestFlags_1 = __decorate([\n TypeAlias('request_flags')\n], RequestFlags);\nlet InfoPair = class InfoPair extends Struct {\n};\n__decorate([\n Struct.field('string')\n], InfoPair.prototype, \"key\", void 0);\n__decorate([\n Struct.field('bytes')\n], InfoPair.prototype, \"value\", void 0);\nInfoPair = __decorate([\n Struct.type('info_pair')\n], InfoPair);\nlet RequestDataV2 = class RequestDataV2 extends Struct {\n};\n__decorate([\n Struct.field(ChainIdVariant)\n], RequestDataV2.prototype, \"chain_id\", void 0);\n__decorate([\n Struct.field(RequestVariantV2)\n], RequestDataV2.prototype, \"req\", void 0);\n__decorate([\n Struct.field(RequestFlags)\n], RequestDataV2.prototype, \"flags\", void 0);\n__decorate([\n Struct.field('string')\n], RequestDataV2.prototype, \"callback\", void 0);\n__decorate([\n Struct.field(InfoPair, { array: true })\n], RequestDataV2.prototype, \"info\", void 0);\nRequestDataV2 = __decorate([\n Struct.type('signing_request')\n], RequestDataV2);\nlet RequestDataV3 = class RequestDataV3 extends Struct {\n};\n__decorate([\n Struct.field(ChainIdVariant)\n], RequestDataV3.prototype, \"chain_id\", void 0);\n__decorate([\n Struct.field(RequestVariantV3)\n], RequestDataV3.prototype, \"req\", void 0);\n__decorate([\n Struct.field(RequestFlags)\n], RequestDataV3.prototype, \"flags\", void 0);\n__decorate([\n Struct.field('string')\n], RequestDataV3.prototype, \"callback\", void 0);\n__decorate([\n Struct.field(InfoPair, { array: true })\n], RequestDataV3.prototype, \"info\", void 0);\nRequestDataV3 = __decorate([\n Struct.type('signing_request')\n], RequestDataV3);\nlet RequestSignature = class RequestSignature extends Struct {\n};\n__decorate([\n Struct.field('name')\n], RequestSignature.prototype, \"signer\", void 0);\n__decorate([\n Struct.field('signature')\n], RequestSignature.prototype, \"signature\", void 0);\nRequestSignature = __decorate([\n Struct.type('request_signature')\n], RequestSignature);\n\nvar IdentityProof_1;\nlet IdentityProof = IdentityProof_1 = class IdentityProof extends Struct {\n static from(value) {\n if (isInstanceOf(value, IdentityProof_1)) {\n return value;\n }\n else if (typeof value === 'string') {\n return IdentityProof_1.fromString(value);\n }\n else {\n return super.from(value);\n }\n }\n /**\n * Create a new instance from an EOSIO authorization header string.\n * \"EOSIO \"\n */\n static fromString(string) {\n const parts = string.split(' ');\n if (parts.length !== 2 || parts[0] !== 'EOSIO') {\n throw new Error('Invalid IdentityProof string');\n }\n const data = decode(parts[1]);\n return Serializer.decode({ data, type: IdentityProof_1 });\n }\n /** Create a new instance from a callback payload. */\n static fromPayload(payload, options = {}) {\n const request = SigningRequest.from(payload.req, options);\n if (!(request.version >= 3 && request.isIdentity())) {\n throw new Error('Not an identity request');\n }\n return this.from({\n chainId: payload.cid || request.getChainId(),\n scope: request.getIdentityScope(),\n expiration: payload.ex,\n signer: { actor: payload.sa, permission: payload.sp },\n signature: payload.sig,\n });\n }\n /**\n * Transaction this proof resolves to.\n * @internal\n */\n get transaction() {\n const action = Action.from({\n account: '',\n name: 'identity',\n authorization: [this.signer],\n data: IdentityV3.from({ scope: this.scope, permission: this.signer }),\n });\n return Transaction.from({\n ref_block_num: 0,\n ref_block_prefix: 0,\n expiration: this.expiration,\n actions: [action],\n });\n }\n /**\n * Recover the public key that signed this proof.\n */\n recover() {\n return this.signature.recoverDigest(this.transaction.signingDigest(this.chainId));\n }\n /**\n * Verify that given authority signed this proof.\n * @param auth The accounts signing authority.\n * @param currentTime Time to verify expiry against, if unset will use system time.\n */\n verify(auth, currentTime) {\n const now = TimePointSec.from(currentTime || new Date()).toMilliseconds();\n return (now < this.expiration.toMilliseconds() &&\n Authority.from(auth).hasPermission(this.recover()));\n }\n /**\n * Encode the proof to an `EOSIO` auth header string.\n */\n toString() {\n const data = Serializer.encode({ object: this });\n return `EOSIO ${encode(data.array, false)}`;\n }\n};\n__decorate([\n Struct.field(ChainId)\n], IdentityProof.prototype, \"chainId\", void 0);\n__decorate([\n Struct.field(Name)\n], IdentityProof.prototype, \"scope\", void 0);\n__decorate([\n Struct.field(TimePointSec)\n], IdentityProof.prototype, \"expiration\", void 0);\n__decorate([\n Struct.field(PermissionLevel)\n], IdentityProof.prototype, \"signer\", void 0);\n__decorate([\n Struct.field(Signature)\n], IdentityProof.prototype, \"signature\", void 0);\nIdentityProof = IdentityProof_1 = __decorate([\n Struct.type('identity_proof')\n], IdentityProof);\n\n/**\n * EOSIO Signing Request (ESR).\n */\n/** Current supported protocol version, backwards compatible with version 2. */\nconst ProtocolVersion = 3;\n/**\n * The placeholder name: `............1` aka `uint64(1)`.\n * If used in action data will be resolved to current signer.\n * If used in as an authorization permission will be resolved to\n * the signers permission level.\n *\n * Example action:\n * ```\n * { account: \"eosio.token\",\n * name: \"transfer\",\n * authorization: [{actor: \"............1\", permission: \"............1\"}],\n * data: {\n * from: \"............1\",\n * to: \"bar\",\n * quantity: \"42.0000 EOS\",\n * memo: \"Don't panic\" }}\n * ```\n * When signed by `foo@active` would resolve to:\n * ```\n * { account: \"eosio.token\",\n * name: \"transfer\",\n * authorization: [{actor: \"foo\", permission: \"active\"}],\n * data: {\n * from: \"foo\",\n * to: \"bar\",\n * quantity: \"42.0000 EOS\",\n * memo: \"Don't panic\" }}\n * ```\n */\nconst PlaceholderName = Name.from('............1'); // aka uint64(1)\n/** Placeholder that will resolve to signer permission name. */\nconst PlaceholderPermission = Name.from('............2'); // aka uint64(2)\nconst PlaceholderAuth = PermissionLevel.from({\n actor: PlaceholderName,\n permission: PlaceholderPermission,\n});\nclass SigningRequest {\n /**\n * Create a new signing request.\n * Normally not used directly, see the `create` and `from` class methods.\n */\n constructor(version, data, zlib, abiProvider, signature) {\n if (data.flags.broadcast && data.req.variantName === 'identity') {\n throw new Error('Invalid request (identity request cannot be broadcast)');\n }\n this.version = version;\n this.data = data;\n this.zlib = zlib;\n this.abiProvider = abiProvider;\n this.signature = signature;\n }\n /** Return the identity ABI for given version. */\n static identityAbi(version) {\n const abi = Serializer.synthesize(this.identityType(version));\n abi.actions = [{ name: 'identity', type: 'identity', ricardian_contract: '' }];\n return abi;\n }\n /** Return the ABISerializableType identity type for given version. */\n static identityType(version) {\n return version === 2 ? IdentityV2 : IdentityV3;\n }\n /** Return the ABISerializableType storage type for given version. */\n static storageType(version) {\n return version === 2 ? RequestDataV2 : RequestDataV3;\n }\n /** Create a new signing request. */\n static async create(args, options = {}) {\n let actions;\n if (args.action) {\n actions = [args.action];\n }\n else if (args.actions) {\n actions = args.actions;\n }\n else if (args.transaction) {\n actions = args.transaction.actions || [];\n }\n else {\n actions = [];\n }\n const requiredAbis = actions\n .filter((action) => !Bytes.isBytes(action.data) &&\n action.data.constructor.abiName === undefined)\n .map((action) => Name.from(action.account));\n const abis = {};\n if (requiredAbis.length > 0) {\n const provider = options.abiProvider;\n if (!provider) {\n throw new Error('Missing abi provider');\n }\n const accountAbis = await Promise.all(requiredAbis.map((account) => provider.getAbi(account)));\n for (const [idx, abi] of accountAbis.entries()) {\n abis[requiredAbis[idx].toString()] = abi;\n }\n }\n return this.createSync(args, options, abis);\n }\n /**\n * Synchronously create a new signing request.\n * @throws If an un-encoded action with no abi def is encountered.\n */\n static createSync(args, options = {}, abis = {}) {\n let version = 2;\n const data = {};\n const encode = (action) => encodeAction(action, abis);\n // multi-chain requests requires version 3\n if (args.chainId === null) {\n version = 3;\n }\n // set the request data\n if (args.identity !== undefined) {\n if (args.identity.scope) {\n version = 3;\n }\n data.req = ['identity', this.identityType(version).from(args.identity)];\n }\n else if (args.action && !args.actions && !args.transaction) {\n data.req = ['action', encode(args.action)];\n }\n else if (args.actions && !args.action && !args.transaction) {\n if (args.actions.length === 1) {\n data.req = ['action', encode(args.actions[0])];\n }\n else {\n data.req = ['action[]', args.actions.map(encode)];\n }\n }\n else if (args.transaction && !args.action && !args.actions) {\n const tx = args.transaction;\n // set default values if missing\n if (tx.expiration === undefined) {\n tx.expiration = '1970-01-01T00:00:00.000';\n }\n if (tx.ref_block_num === undefined) {\n tx.ref_block_num = 0;\n }\n if (tx.ref_block_prefix === undefined) {\n tx.ref_block_prefix = 0;\n }\n if (tx.context_free_actions === undefined) {\n tx.context_free_actions = [];\n }\n if (tx.transaction_extensions === undefined) {\n tx.transaction_extensions = [];\n }\n if (tx.delay_sec === undefined) {\n tx.delay_sec = 0;\n }\n if (tx.max_cpu_usage_ms === undefined) {\n tx.max_cpu_usage_ms = 0;\n }\n if (tx.max_net_usage_words === undefined) {\n tx.max_net_usage_words = 0;\n }\n if (tx.actions === undefined) {\n tx.actions = [];\n }\n if (tx.context_free_actions === undefined) {\n tx.context_free_actions = [];\n }\n // encode actions if needed\n tx.actions = tx.actions.map(encode);\n data.req = ['transaction', tx];\n }\n else {\n throw new TypeError('Invalid arguments: Must have exactly one of action, actions or transaction');\n }\n // set the chain id\n if (args.chainId === null) {\n data.chain_id = ChainIdVariant.from(['chain_alias', 0]);\n }\n else {\n data.chain_id = ChainId.from(args.chainId || ChainName.EOS).chainVariant;\n }\n // request flags and callback\n const flags = RequestFlags.from(0);\n let callback = '';\n flags.broadcast = args.broadcast !== undefined ? args.broadcast : data.req[0] !== 'identity';\n if (typeof args.callback === 'string') {\n callback = args.callback;\n }\n else if (typeof args.callback === 'object') {\n callback = args.callback.url;\n flags.background = args.callback.background || false;\n }\n data.flags = flags;\n data.callback = callback;\n // info pairs\n data.info = [];\n if (typeof args.info === 'object') {\n for (const key in args.info) {\n const isOwn = Object.prototype.hasOwnProperty.call(args.info, key);\n if (isOwn) {\n let value = args.info[key];\n if (typeof value === 'string') {\n value = Bytes.from(value, 'utf8');\n }\n else if (!(value instanceof Bytes)) {\n value = Serializer.encode({ object: value });\n }\n data.info.push({ key, value });\n }\n }\n }\n if (args.chainIds && args.chainId === null) {\n const ids = args.chainIds.map((id) => ChainId.from(id).chainVariant);\n data.info.push({\n key: 'chain_ids',\n value: Serializer.encode({ object: ids, type: { type: ChainIdVariant, array: true } }),\n });\n }\n const req = new SigningRequest(version, this.storageType(version).from(data), options.zlib, options.abiProvider);\n // sign the request if given a signature provider\n if (options.signatureProvider) {\n req.sign(options.signatureProvider);\n }\n return req;\n }\n /** Creates an identity request. */\n static identity(args, options = {}) {\n let permission = {\n actor: args.account || PlaceholderName,\n permission: args.permission || PlaceholderPermission,\n };\n if (permission.actor === PlaceholderName &&\n permission.permission === PlaceholderPermission) {\n permission = undefined;\n }\n return this.createSync({\n ...args,\n identity: {\n permission,\n scope: args.scope,\n },\n broadcast: false,\n }, options);\n }\n /**\n * Create a request from a chain id and serialized transaction.\n * @param chainId The chain id where the transaction is valid.\n * @param serializedTransaction The serialized transaction.\n * @param options Creation options.\n */\n static fromTransaction(chainId, serializedTransaction, options = {}) {\n const id = ChainId.from(chainId);\n serializedTransaction = Bytes.from(serializedTransaction);\n const encoder = new ABIEncoder();\n encoder.writeByte(2); // header\n encoder.writeArray(Serializer.encode({ object: id.chainVariant }).array);\n encoder.writeByte(2); // transaction variant\n encoder.writeArray(Bytes.from(serializedTransaction).array);\n encoder.writeByte(RequestFlags.broadcast);\n encoder.writeByte(0); // callback\n encoder.writeByte(0); // info\n return SigningRequest.fromData(encoder.getData(), options);\n }\n /** Creates a signing request from encoded `esr:` uri string. */\n static from(uri, options = {}) {\n if (typeof uri !== 'string') {\n throw new Error('Invalid request uri');\n }\n const [scheme, path] = uri.split(':');\n if (scheme !== 'esr' && scheme !== 'web+esr') {\n throw new Error('Invalid scheme');\n }\n const data = decode(path.startsWith('//') ? path.slice(2) : path);\n return SigningRequest.fromData(data, options);\n }\n static fromData(data, options = {}) {\n data = Bytes.from(data);\n const header = data.array[0];\n const version = header & ~(1 << 7);\n if (version !== 2 && version !== 3) {\n throw new Error('Unsupported protocol version');\n }\n let payload = data.droppingFirst(1);\n if ((header & (1 << 7)) !== 0) {\n if (!options.zlib) {\n throw new Error('Compressed URI needs zlib');\n }\n payload = Bytes.from(options.zlib.inflateRaw(payload.array));\n }\n const decoder = new ABIDecoder(payload.array);\n const req = Serializer.decode({ data: decoder, type: this.storageType(version) });\n let sig;\n if (decoder.canRead()) {\n sig = Serializer.decode({ data: decoder, type: RequestSignature });\n }\n return new SigningRequest(version, req, options.zlib, options.abiProvider, sig);\n }\n /**\n * Sign the request, mutating.\n * @param signatureProvider The signature provider that provides a signature for the signer.\n */\n sign(signatureProvider) {\n const message = this.getSignatureDigest();\n this.signature = RequestSignature.from(signatureProvider.sign(message));\n }\n /**\n * Get the signature digest for this request.\n */\n getSignatureDigest() {\n // protocol version + utf8 \"request\"\n const prefix = [this.version, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74];\n return Checksum256.hash(Bytes.from(prefix).appending(this.getData()));\n }\n /**\n * Set the signature data for this request, mutating.\n * @param signer Account name of signer.\n * @param signature The signature string.\n */\n setSignature(signer, signature) {\n this.signature = RequestSignature.from({ signer, signature });\n }\n /**\n * Set the request callback, mutating.\n * @param url Where the callback should be sent.\n * @param background Whether the callback should be sent in the background.\n */\n setCallback(url, background) {\n this.data.callback = url;\n this.data.flags.background = background;\n }\n /**\n * Set broadcast flag.\n * @param broadcast Whether the transaction should be broadcast by receiver.\n */\n setBroadcast(broadcast) {\n this.data.flags.broadcast = broadcast;\n }\n /**\n * Encode this request into an `esr:` uri.\n * @argument compress Whether to compress the request data using zlib,\n * defaults to true if omitted and zlib is present;\n * otherwise false.\n * @argument slashes Whether add slashes after the protocol scheme, i.e. `esr://`.\n * Defaults to true.\n * @returns An esr uri string.\n */\n encode(compress, slashes) {\n const shouldCompress = compress !== undefined ? compress : this.zlib !== undefined;\n if (shouldCompress && this.zlib === undefined) {\n throw new Error('Need zlib to compress');\n }\n let header = this.version;\n const data = this.getData();\n const sigData = this.getSignatureData();\n let array = new Uint8Array(data.byteLength + sigData.byteLength);\n array.set(data, 0);\n array.set(sigData, data.byteLength);\n if (shouldCompress) {\n const deflated = this.zlib.deflateRaw(array);\n if (array.byteLength > deflated.byteLength) {\n header |= 1 << 7;\n array = deflated;\n }\n }\n const out = new Uint8Array(1 + array.byteLength);\n out[0] = header;\n out.set(array, 1);\n let scheme = 'esr:';\n if (slashes !== false) {\n scheme += '//';\n }\n return scheme + encode(out);\n }\n /** Get the request data without header or signature. */\n getData() {\n return Serializer.encode({ object: this.data }).array;\n }\n /** Get signature data, returns an empty array if request is not signed. */\n getSignatureData() {\n if (!this.signature) {\n return new Uint8Array(0);\n }\n return Serializer.encode({ object: this.signature }).array;\n }\n /** ABI definitions required to resolve request. */\n getRequiredAbis() {\n return this.getRawActions()\n .filter((action) => !isIdentity(action))\n .map((action) => action.account)\n .filter((value, index, self) => self.indexOf(value) === index);\n }\n /** Whether TaPoS values are required to resolve request. */\n requiresTapos() {\n const tx = this.getRawTransaction();\n return !this.isIdentity() && !hasTapos(tx);\n }\n /** Resolve required ABI definitions. */\n async fetchAbis(abiProvider) {\n const required = this.getRequiredAbis();\n if (required.length > 0) {\n const provider = abiProvider || this.abiProvider;\n if (!provider) {\n throw new Error('Missing ABI provider');\n }\n const abis = new Map();\n await Promise.all(required.map(async (account) => {\n abis.set(account.toString(), ABI.from(await provider.getAbi(account)));\n }));\n return abis;\n }\n else {\n return new Map();\n }\n }\n /**\n * Decode raw actions actions to object representations.\n * @param abis ABI defenitions required to decode all actions.\n * @param signer Placeholders in actions will be resolved to signer if set.\n */\n resolveActions(abis, signer) {\n return this.getRawActions().map((rawAction) => {\n let abi;\n if (isIdentity(rawAction)) {\n abi = this.constructor.identityAbi(this.version);\n }\n else {\n const rawAbi = abis.get(rawAction.account.toString());\n if (!rawAbi) {\n throw new Error(`Missing ABI definition for ${rawAction.account}`);\n }\n abi = ABI.from(rawAbi);\n }\n const type = abi.getActionType(rawAction.name);\n if (!type) {\n throw new Error(`Missing type for action ${rawAction.account}:${rawAction.name} in ABI`);\n }\n let data = rawAction.decodeData(abi);\n let authorization = rawAction.authorization;\n if (signer) {\n const signerPerm = PermissionLevel.from(signer);\n const resolve = (value) => {\n if (value instanceof Name) {\n if (value.equals(PlaceholderName)) {\n return signerPerm.actor;\n }\n else if (value.equals(PlaceholderPermission)) {\n return signerPerm.permission;\n }\n else {\n return value;\n }\n }\n else if (Array.isArray(value)) {\n return value.map(resolve);\n }\n else if (typeof value === 'object' && value !== null) {\n for (const key of Object.keys(value)) {\n value[key] = resolve(value[key]);\n }\n return value;\n }\n else {\n return value;\n }\n };\n data = resolve(data);\n authorization = authorization.map((auth) => {\n let { actor, permission } = auth;\n if (actor.equals(PlaceholderName)) {\n actor = signerPerm.actor;\n }\n if (permission.equals(PlaceholderPermission)) {\n permission = signerPerm.permission;\n }\n // backwards compatibility, actor placeholder will also resolve to permission when used in auth\n if (permission.equals(PlaceholderName)) {\n permission = signerPerm.permission;\n }\n return PermissionLevel.from({ actor, permission });\n });\n }\n return {\n ...rawAction,\n authorization,\n data,\n };\n });\n }\n resolveTransaction(abis, signer, ctx = {}) {\n const tx = this.getRawTransaction();\n if (!this.isIdentity() && !hasTapos(tx)) {\n if (ctx.expiration !== undefined &&\n ctx.ref_block_num !== undefined &&\n ctx.ref_block_prefix !== undefined) {\n tx.expiration = TimePointSec.from(ctx.expiration);\n tx.ref_block_num = UInt16.from(ctx.ref_block_num);\n tx.ref_block_prefix = UInt32.from(ctx.ref_block_prefix);\n }\n else if (ctx.block_num !== undefined &&\n ctx.ref_block_prefix !== undefined &&\n ctx.timestamp !== undefined) {\n tx.expiration = expirationTime(ctx.timestamp, ctx.expire_seconds);\n tx.ref_block_num = UInt16.from(ctx.block_num);\n tx.ref_block_prefix = UInt32.from(ctx.ref_block_prefix);\n }\n else {\n throw new Error('Invalid transaction context, need either a reference block or explicit TaPoS values');\n }\n }\n else if (this.isIdentity() && this.version > 2) {\n // From ESR version 3 all identity requests have expiration\n tx.expiration = ctx.expiration\n ? TimePointSec.from(ctx.expiration)\n : expirationTime(ctx.timestamp, ctx.expire_seconds);\n }\n const actions = this.resolveActions(abis, signer);\n // TODO: resolve context free actions\n const context_free_actions = tx.context_free_actions;\n return { ...tx, context_free_actions, actions };\n }\n resolve(abis, signer, ctx = {}) {\n const tx = this.resolveTransaction(abis, signer, ctx);\n const actions = tx.actions.map((action) => {\n let abi;\n if (isIdentity(action)) {\n abi = this.constructor.identityAbi(this.version);\n }\n else {\n abi = abis.get(action.account.toString());\n }\n if (!abi) {\n throw new Error(`Missing ABI definition for ${action.account}`);\n }\n const type = abi.getActionType(action.name);\n const data = Serializer.encode({ object: action.data, type, abi });\n return Action.from({ ...action, data });\n });\n const transaction = Transaction.from({ ...tx, actions });\n let chainId;\n if (this.isMultiChain()) {\n if (!ctx.chainId) {\n throw new Error('Missing chosen chain ID for multi-chain request');\n }\n chainId = ChainId.from(ctx.chainId);\n const ids = this.getChainIds();\n if (ids && !ids.some((id) => chainId.equals(id))) {\n throw new Error('Trying to resolve for chain ID not defined in request');\n }\n }\n else {\n chainId = this.getChainId();\n }\n return new ResolvedSigningRequest(this, PermissionLevel.from(signer), transaction, tx, chainId);\n }\n /**\n * Get the id of the chain where this request is valid.\n * @returns The 32-byte chain id as hex encoded string.\n */\n getChainId() {\n return this.data.chain_id.chainId;\n }\n /**\n * Chain IDs this request is valid for, only valid for multi chain requests. Value of `null` when `isMultiChain` is true denotes any chain.\n */\n getChainIds() {\n if (!this.isMultiChain()) {\n return null;\n }\n const ids = this.getInfoKey('chain_ids', { type: ChainIdVariant, array: true });\n if (ids) {\n return ids.map((id) => id.chainId);\n }\n return null;\n }\n /**\n * Set chain IDs this request is valid for, only considered for multi chain requests.\n */\n setChainIds(ids) {\n const value = ids.map((id) => ChainId.from(id).chainVariant);\n this.setInfoKey('chain_ids', value, { type: ChainIdVariant, array: true });\n }\n /**\n * True if chainId is set to chain alias `0` which indicates that the request is valid for any chain.\n */\n isMultiChain() {\n return (this.data.chain_id.variantIdx === 0 &&\n this.data.chain_id.value.equals(ChainName.UNKNOWN));\n }\n /** Return the actions in this request with action data encoded. */\n getRawActions() {\n const req = this.data.req;\n switch (req.variantName) {\n case 'action':\n return [req.value];\n case 'action[]':\n return req.value;\n case 'identity': {\n if (this.version === 2) {\n const id = req.value;\n let data = '0101000000000000000200000000000000'; // placeholder permission\n let authorization = [PlaceholderAuth];\n if (id.permission) {\n data = Serializer.encode({ object: id });\n authorization = [id.permission];\n }\n return [\n Action.from({\n account: '',\n name: 'identity',\n authorization,\n data,\n }),\n ];\n }\n else {\n // eslint-disable-next-line prefer-const\n let { scope, permission } = req.value;\n if (!permission) {\n permission = PlaceholderAuth;\n }\n const data = Serializer.encode({ object: { scope, permission }, type: IdentityV3 });\n return [\n Action.from({\n account: '',\n name: 'identity',\n authorization: [permission],\n data,\n }),\n ];\n }\n }\n case 'transaction':\n return req.value.actions;\n default:\n throw new Error('Invalid signing request data');\n }\n }\n /** Unresolved transaction. */\n getRawTransaction() {\n const req = this.data.req;\n switch (req.variantName) {\n case 'transaction':\n return Transaction.from({ ...req.value });\n case 'action':\n case 'action[]':\n case 'identity':\n return Transaction.from({\n actions: this.getRawActions(),\n context_free_actions: [],\n transaction_extensions: [],\n expiration: '1970-01-01T00:00:00.000',\n ref_block_num: 0,\n ref_block_prefix: 0,\n max_cpu_usage_ms: 0,\n max_net_usage_words: 0,\n delay_sec: 0,\n });\n default:\n throw new Error('Invalid signing request data');\n }\n }\n /** Whether the request is an identity request. */\n isIdentity() {\n return this.data.req.variantName === 'identity';\n }\n /** Whether the request should be broadcast by signer. */\n shouldBroadcast() {\n if (this.isIdentity()) {\n return false;\n }\n return this.data.flags.broadcast;\n }\n /**\n * Present if the request is an identity request and requests a specific account.\n * @note This returns `nil` unless a specific identity has been requested,\n * use `isIdentity` to check id requests.\n */\n getIdentity() {\n if (!this.isIdentity()) {\n return null;\n }\n const id = this.data.req.value;\n if (id.permission && !id.permission.actor.equals(PlaceholderName)) {\n return id.permission.actor;\n }\n return null;\n }\n /**\n * Present if the request is an identity request and requests a specific permission.\n * @note This returns `nil` unless a specific permission has been requested,\n * use `isIdentity` to check id requests.\n */\n getIdentityPermission() {\n if (!this.isIdentity()) {\n return null;\n }\n const id = this.data.req.value;\n if (id.permission && !id.permission.permission.equals(PlaceholderPermission)) {\n return id.permission.permission;\n }\n return null;\n }\n /**\n * Present if the request is an identity request and requests a specific permission.\n * @note This returns `nil` unless a specific permission has been requested,\n * use `isIdentity` to check id requests.\n */\n getIdentityScope() {\n if (!this.isIdentity() || this.version <= 2) {\n return null;\n }\n const id = this.data.req.value;\n return id.scope;\n }\n /** Get raw info dict */\n getRawInfo() {\n const rv = {};\n for (const { key, value } of this.data.info) {\n rv[key] = value;\n }\n return rv;\n }\n getRawInfoKey(key) {\n const pair = this.data.info.find((pair) => pair.key === key);\n if (pair) {\n return pair.value;\n }\n }\n setRawInfoKey(key, value) {\n let pair = this.data.info.find((pair) => pair.key === key);\n if (!pair) {\n pair = InfoPair.from({ key, value });\n this.data.info.push(pair);\n }\n else {\n pair.value = Bytes.from(value);\n }\n }\n /** Set a metadata key. */\n setInfoKey(key, object, type) {\n let data;\n if (typeof object === 'string' && !type) {\n // match old behavior where strings encode to raw utf8 as opposed to\n // eosio-abi encoded strings (varuint32 length prefix + utf8 bytes)\n data = Bytes.from(object, 'utf8');\n }\n else {\n data = Serializer.encode({ object, type });\n }\n this.setRawInfoKey(key, data);\n }\n getInfoKey(key, type) {\n const data = this.getRawInfoKey(key);\n if (data) {\n if (type) {\n return Serializer.decode({ data, type });\n }\n else {\n // assume utf8 string if no type is given\n return data.utf8String;\n }\n }\n }\n /** Return a deep copy of this request. */\n clone() {\n let signature;\n if (this.signature) {\n signature = RequestSignature.from(JSON.parse(JSON.stringify(this.signature)));\n }\n const RequestData = this.constructor.storageType(this.version);\n const data = RequestData.from(JSON.parse(JSON.stringify(this.data)));\n return new SigningRequest(this.version, data, this.zlib, this.abiProvider, signature);\n }\n // Convenience methods.\n toString() {\n return this.encode();\n }\n toJSON() {\n return this.encode();\n }\n}\nclass ResolvedSigningRequest {\n constructor(request, signer, transaction, resolvedTransaction, chainId) {\n this.request = request;\n this.signer = signer;\n this.transaction = transaction;\n this.resolvedTransaction = resolvedTransaction;\n this.chainId = chainId;\n }\n /** Recreate a resolved request from a callback payload. */\n static async fromPayload(payload, options = {}) {\n const request = SigningRequest.from(payload.req, options);\n const abis = await request.fetchAbis();\n return request.resolve(abis, { actor: payload.sa, permission: payload.sp }, {\n ref_block_num: payload.rbn,\n ref_block_prefix: payload.rid,\n expiration: payload.ex,\n chainId: payload.cid || request.getChainId(),\n });\n }\n get serializedTransaction() {\n return Serializer.encode({ object: this.transaction }).array;\n }\n get signingDigest() {\n return this.transaction.signingDigest(this.chainId);\n }\n getCallback(signatures, blockNum) {\n const { callback, flags } = this.request.data;\n if (!callback || callback.length === 0) {\n return null;\n }\n if (!signatures || signatures.length === 0) {\n throw new Error('Must have at least one signature to resolve callback');\n }\n const sigs = signatures.map((sig) => Signature.from(sig));\n const payload = {\n sig: String(sigs[0]),\n tx: String(this.transaction.id),\n rbn: String(this.transaction.ref_block_num),\n rid: String(this.transaction.ref_block_prefix),\n ex: String(this.transaction.expiration),\n req: this.request.encode(),\n sa: String(this.signer.actor),\n sp: String(this.signer.permission),\n cid: String(this.chainId),\n };\n for (const [n, sig] of sigs.slice(1).entries()) {\n payload[`sig${n}`] = String(sig);\n }\n if (blockNum) {\n payload.bn = String(UInt32.from(blockNum));\n }\n const url = callback.replace(/({{([a-z0-9]+)}})/g, (_1, _2, m) => {\n return payload[m] || '';\n });\n return {\n background: flags.background,\n payload,\n url,\n };\n }\n getIdentityProof(signature) {\n if (!this.request.isIdentity()) {\n throw new Error('Not a identity request');\n }\n return IdentityProof.from({\n chainId: this.chainId,\n scope: this.request.getIdentityScope(),\n expiration: this.transaction.expiration,\n signer: this.signer,\n signature,\n });\n }\n}\nfunction encodeAction(action, abis) {\n if (Bytes.isBytes(action.data) || action.data.constructor.abiName !== undefined) {\n return Action.from(action);\n }\n const abi = abis[String(Name.from(action.account))];\n if (!abi) {\n throw new Error(`Missing ABI for ${action.account}`);\n }\n return Action.from(action, abi);\n}\nfunction isIdentity(action) {\n const account = Name.from(action.account);\n const name = Name.from(action.name);\n return account.rawValue.equals(0) && name.equals('identity');\n}\nfunction hasTapos(tx) {\n return !(tx.expiration.equals(0) && tx.ref_block_num.equals(0) && tx.ref_block_prefix.equals(0));\n}\nfunction expirationTime(timestamp, expireSeconds = 60) {\n const ts = TimePointSec.from(timestamp || new Date());\n const exp = UInt32.from(expireSeconds);\n return TimePointSec.fromInteger(ts.value.adding(exp));\n}\n\nexport { AccountName, base64u as Base64u, ChainAlias, ChainId, ChainIdVariant, ChainName, IdentityProof, IdentityV2, IdentityV3, InfoPair, PermissionName, PlaceholderAuth, PlaceholderName, PlaceholderPermission, ProtocolVersion, RequestDataV2, RequestDataV3, RequestFlags, RequestSignature, RequestVariantV2, RequestVariantV3, ResolvedSigningRequest, SigningRequest };\n//# sourceMappingURL=esr.m.js.map\n","function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root.host) {\n return root;\n }\n return document;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element(nodes, name, attributes, svg) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => svg ? svg_element(name) : element(name));\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration();\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor() {\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes) {\n super();\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : context || []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : options.context || []),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.42.1' }, detail), true));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","export const SNOWPACK_PUBLIC_BRANCH = \"HEAD\";\nexport const SNOWPACK_PUBLIC_REV = \"3d404d7\";\nexport const SNOWPACK_PUBLIC_VERSION = \"0.1.0\";\nexport const MODE = \"production\";\nexport const NODE_ENV = \"production\";\nexport const SSR = false;","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","import{getContext as A}from\"svelte\";import{writable as C}from\"svelte/store\";function p(e,a=!1){return e=e.slice(e.startsWith(\"/#\")?2:0,e.endsWith(\"/*\")?-2:void 0),e.startsWith(\"/\")||(e=\"/\"+e),e===\"/\"&&(e=\"\"),a&&!e.endsWith(\"/\")&&(e+=\"/\"),e}function d(e,a){e=p(e,!0),a=p(a,!0);let r=[],n={},t=!0,s=e.split(\"/\").map(c=>c.startsWith(\":\")?(r.push(c.slice(1)),\"([^\\\\/]+)\"):c).join(\"\\\\/\"),o=a.match(new RegExp(`^${s}$`));return o||(t=!1,o=a.match(new RegExp(`^${s}`))),o?(r.forEach((c,h)=>n[c]=o[h+1]),{exact:t,params:n,part:o[0].slice(0,-1)}):null}function g(e,a,r){if(r===\"\")return e;if(r[0]===\"/\")return r;let n=o=>o.split(\"/\").filter(c=>c!==\"\"),t=n(e),s=a?n(a):[];return\"/\"+s.map((o,c)=>t[c]).join(\"/\")+\"/\"+r}function m(e,a,r,n){let t=[a,\"data-\"+a].reduce((s,o)=>{let c=e.getAttribute(o);return r&&e.removeAttribute(o),c===null?s:c},!1);return!n&&t===\"\"?!0:t||n||!1}function O(e){let a=e.split(\"&\").map(r=>r.split(\"=\")).reduce((r,n)=>{let t=n[0];if(!t)return r;let s=n.length>1?n[n.length-1]:!0;return typeof s==\"string\"&&s.includes(\",\")&&(s=s.split(\",\")),r[t]===void 0?r[t]=[s]:r[t].push(s),r},{});return Object.entries(a).reduce((r,n)=>(r[n[0]]=n[1].length>1?n[1]:n[1][0],r),{})}function S(e){return Object.entries(e).map(([a,r])=>r?r===!0?a:`${a}=${Array.isArray(r)?r.join(\",\"):r}`:null).filter(a=>a).join(\"&\")}function x(e,a){return e?a+e:\"\"}function w(e){throw new Error(\"[Tinro] \"+e)}var i={HISTORY:1,HASH:2,MEMORY:3,OFF:4,run(e,a,r,n){return e===this.HISTORY?a&&a():e===this.HASH?r&&r():n&&n()},getDefault(){return!window||window.location.pathname===\"srcdoc\"?this.MEMORY:this.HISTORY}};var k,v,M,l=E();function E(){let e=i.getDefault(),a,r=o=>window.onhashchange=window.onpopstate=k=null,n=o=>a&&a(R(e)),t=o=>{o&&(e=o),r(),e!==i.OFF&&i.run(e,c=>window.onpopstate=n,c=>window.onhashchange=n)&&n()},s=o=>{let c=Object.assign(R(e),o);return c.path+x(S(c.query),\"?\")+x(c.hash,\"#\")};return{mode:t,get:o=>R(e),go(o,c){L(e,o,c),n()},start(o){a=o,t()},stop(){a=null,t(i.OFF)},set(o){this.go(s(o),!o.path)},methods(){return _(this)}}}function L(e,a,r){!r&&(v=M);let n=t=>history[`${r?\"replace\":\"push\"}State`]({},\"\",t);i.run(e,t=>n(a),t=>n(`#${a}`),t=>k=a)}function R(e){let a=window.location,r=i.run(e,t=>a.pathname+a.search+a.hash,t=>String(a.hash.slice(1)||\"/\"),t=>k||\"/\"),n=r.match(/^([^?#]+)(?:\\?([^#]+))?(?:\\#(.+))?$/);return M=r,{url:r,from:v,path:n[1]||\"\",query:O(n[2]||\"\"),hash:n[3]||\"\"}}function _(e){let a=()=>e.get().query,r=o=>e.set({query:o}),n=o=>r(o(a())),t=()=>e.get().hash,s=o=>e.set({hash:o});return{hash:{get:t,set:s,clear:()=>s(\"\")},query:{replace:r,clear:()=>r(\"\"),get(o){return o?a()[o]:a()},set(o,c){n(h=>(h[o]=c,h))},delete(o){n(c=>(c[o]&&delete c[o],c))}}}}var f=F();function F(){let{subscribe:e}=C(l.get(),a=>{l.start(a);let r=Y(l.go);return()=>{l.stop(),r()}});return{subscribe:e,goto:l.go,params:P,meta:y,useHashNavigation:a=>l.mode(a?i.HASH:i.HISTORY),mode:{hash:()=>l.mode(i.HASH),history:()=>l.mode(i.HISTORY),memory:()=>l.mode(i.MEMORY)},location:l.methods()}}function T(e){let a=m(e,\"href\"),r=m(e,\"exact\",!0),n=m(e,\"active-class\",!0,\"active\");return{destroy:f.subscribe(t=>{let s=d(a,t.path);s&&(s.exact&&r||!r)?e.classList.add(n):e.classList.remove(n)})}}function Y(e){let a=r=>{let n=r.target.closest(\"a[href]\"),t=n&&m(n,\"target\",!1,\"_self\"),s=n&&m(n,\"tinro-ignore\"),o=r.ctrlKey||r.metaKey||r.altKey||r.shiftKey;if(t==\"_self\"&&!s&&!o&&n){let c=n.getAttribute(\"href\").replace(/^\\/#/,\"\");/^\\/\\/|^[a-zA-Z]+:/.test(c)||(r.preventDefault(),e(c.startsWith(\"/\")?c:n.href.replace(window.location.origin,\"\")))}};return addEventListener(\"click\",a),()=>removeEventListener(\"click\",a)}function P(){return A(\"tinro\").meta.params}import{hasContext as Q,getContext as H,setContext as U,onMount as W,tick as z}from\"svelte\";import{writable as D}from\"svelte/store\";var b=\"tinro\",I=j({pattern:\"\",matched:!0});function K(e){let a=H(b)||I;(a.exact||a.fallback)&&w(`${e.fallback?\"\":``} can't be inside ${a.fallback?\"\":` with exact path`}`);let r=e.fallback?\"fallbacks\":\"childs\",n=D({}),t=j({fallback:e.fallback,parent:a,update(s){t.exact=!s.path.endsWith(\"/*\"),t.pattern=p(`${t.parent.pattern||\"\"}${s.path}`),t.redirect=s.redirect,t.firstmatch=s.firstmatch,t.breadcrumb=s.breadcrumb,t.match()},register:()=>(t.parent[r].add(t),()=>{t.parent[r].delete(t),t.router.un&&t.router.un()}),show:()=>{e.onShow(),!t.fallback&&t.parent.activeChilds.add(t)},hide:()=>{e.onHide(),!t.fallback&&t.parent.activeChilds.delete(t)},match:async()=>{t.matched=!1;let{path:s,url:o,from:c,query:h}=t.router.location,u=d(t.pattern,s);if(!t.fallback&&u&&t.redirect&&(!t.exact||t.exact&&u.exact)){let $=g(s,t.parent.pattern,t.redirect);return f.goto($,!0)}t.meta=u&&{from:c,url:o,query:h,match:u.part,pattern:t.pattern,breadcrumbs:t.parent.meta&&t.parent.meta.breadcrumbs.slice()||[],params:u.params,subscribe:n.subscribe},t.breadcrumb&&t.meta&&t.meta.breadcrumbs.push({name:t.breadcrumb,path:u.part}),n.set(t.meta),u&&!t.fallback&&(!t.exact||t.exact&&u.exact)&&(!t.parent.firstmatch||!t.parent.matched)?(e.onMeta(t.meta),t.parent.matched=!0,t.show()):t.hide(),u&&t.showFallbacks()}});return U(b,t),W(()=>t.register()),t}function y(){return Q(b)?H(b).meta:w(\"meta() function must be run inside any `` child component only\")}function j(e){let a={router:{},exact:!1,pattern:null,meta:null,parent:null,fallback:!1,redirect:!1,firstmatch:!1,breadcrumb:null,matched:!1,childs:new Set,activeChilds:new Set,fallbacks:new Set,async showFallbacks(){if(!this.fallback&&(await z(),this.childs.size>0&&this.activeChilds.size==0||this.childs.size==0&&this.fallbacks.size>0)){let r=this;for(;r.fallbacks.size==0;)if(r=r.parent,!r)return;r&&r.fallbacks.forEach(n=>{if(n.redirect){let t=g(\"/\",n.parent.pattern,n.redirect);f.goto(t,!0)}else n.show()})}},start(){this.router.un||(this.router.un=f.subscribe(r=>{this.router.location=r,this.pattern!==null&&this.match()}))},match(){this.showFallbacks()}};return Object.assign(a,e),a.start(),a}export{T as active,K as createRouteObject,y as meta,f as router};\n","\n\n{#if showContent}\n \n{/if}","import {Asset, Name} from '@greymass/eosio'\nimport {ChainId} from 'anchor-link'\n\nconst branch = import.meta.env.SNOWPACK_PUBLIC_BRANCH || 'local'\nconst rev = import.meta.env.SNOWPACK_PUBLIC_REV || 'head'\nconst ver = import.meta.env.SNOWPACK_PUBLIC_VERSION || 'unknown'\n\n/** Only true in a production build. */\nexport const isRelease = branch === 'HEAD'\n\n/** App identifier, used for anchor link (session persistence). */\nexport const appId = !isRelease\n ? `w.${branch.replace(/[^1-5a-z]+/g, '').slice(0, 7)}.gm`\n : 'wallet.gm'\n\nexport const version = `${ver} (${branch}-${rev})`\nexport const releaseVersion = `Version ${ver}`\n\nexport enum ChainFeatures {\n /** eosio.namebid https://github.com/EOSIO/eosio.contracts/blob/master/contracts/eosio.system/src/name_bidding.cpp */\n BidName,\n /** eosio.buyram / eosio.buyrambytes https://github.com/EOSIO/eosio.contracts/blob/master/contracts/eosio.system/src/delegate_bandwidth.cpp#L43 */\n BuyRAM,\n /** FIO Bundled Transactions https://fio.wiki/knowledge-base/protocol/bundling-and-fees/ */\n FIOBundledFees,\n /** Fuel https://greymass.com/fuel */\n Fuel,\n /** eosio.powerup https://github.com/EOSIO/eosio.contracts/pull/397 */\n PowerUp,\n /** eosio.rentcpu / eosio.rentnet https://github.com/EOSIO/eosio.contracts/blob/master/contracts/eosio.system/src/powerup.cpp */\n REX,\n /** eosio.delegatebw https://github.com/EOSIO/eosio.contracts/blob/master/contracts/eosio.system/src/delegate_bandwidth.cpp#L372 */\n Staking,\n /** eosio.voteproducer https://github.com/EOSIO/eosio.contracts/blob/master/contracts/eosio.system/src/voting.cpp */\n VoteProducer,\n /** delphioracle https://github.com/eostitan/delphioracle */\n DelphiOracle,\n}\n\n// List of features involving resources\nexport const resourceFeatures = [\n ChainFeatures.Fuel,\n ChainFeatures.Staking,\n ChainFeatures.REX,\n ChainFeatures.PowerUp,\n]\n\n// Available Balance Providers\nexport enum BalanceProviders {\n // https://www.api.bloks.io/account/teamgreymass?type=getAccountTokens&coreSymbol=4,EOS\n Bloks,\n}\n\nexport interface ChainConfig {\n /** Short identifier. */\n id: string\n /** Display name. */\n name: string\n /** Chain Features */\n chainFeatures: Set\n /** Chain ID. */\n chainId: ChainId\n /** System Token Contract Name */\n coreTokenContract: Name\n /** System Token Symbol */\n coreTokenSymbol: Asset.Symbol\n /** System Token Transfer Action */\n coreTokenTransfer: Name\n /** Node URL to use. */\n nodeUrl: string\n /** True if network is a testnet. */\n testnet: boolean\n /** Account to use for resource sampling */\n resourceSampleAccount?: string\n /** The number of milliseconds to base sample prices on */\n resourceSampleMilliseconds?: number\n /** Bloks url */\n bloksUrl: string\n /** Available Balance Providers */\n balanceProviders?: Set\n}\n\n/** Supported chains. */\nexport const chains: ChainConfig[] = [\n {\n id: 'eos',\n chainFeatures: new Set([\n ChainFeatures.BidName,\n ChainFeatures.BuyRAM,\n ChainFeatures.Fuel,\n ChainFeatures.PowerUp,\n ChainFeatures.REX,\n ChainFeatures.Staking,\n ChainFeatures.VoteProducer,\n ChainFeatures.DelphiOracle,\n ]),\n chainId: ChainId.from('aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906'),\n coreTokenSymbol: Asset.Symbol.from('4,EOS'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'EOS',\n nodeUrl: 'https://eos.greymass.com',\n testnet: false,\n bloksUrl: 'https://bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'fio',\n chainFeatures: new Set([ChainFeatures.FIOBundledFees, ChainFeatures.VoteProducer]),\n chainId: ChainId.from('21dcae42c0182200e93f954a074011f9048a7624c6fe81d3c9541a614a88bd1c'),\n coreTokenSymbol: Asset.Symbol.from('9,FIO'),\n coreTokenContract: Name.from('fio.token'),\n coreTokenTransfer: Name.from('trnsfiopubky'),\n name: 'FIO',\n nodeUrl: 'https://fio.greymass.com',\n testnet: false,\n bloksUrl: 'https://fio.bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'fio-testnet',\n chainFeatures: new Set([ChainFeatures.FIOBundledFees, ChainFeatures.VoteProducer]),\n chainId: ChainId.from('b20901380af44ef59c5918439a1f9a41d83669020319a80574b804a5f95cbd7e'),\n coreTokenSymbol: Asset.Symbol.from('9,FIO'),\n coreTokenContract: Name.from('fio.token'),\n coreTokenTransfer: Name.from('trnsfiopubky'),\n name: 'FIO (Testnet)',\n nodeUrl: 'https://fiotestnet.greymass.com',\n testnet: true,\n bloksUrl: 'https://fio-test.bloks.io',\n },\n {\n id: 'jungle3',\n chainFeatures: new Set([\n ChainFeatures.BidName,\n ChainFeatures.BuyRAM,\n ChainFeatures.Fuel,\n ChainFeatures.PowerUp,\n ChainFeatures.REX,\n ChainFeatures.Staking,\n ChainFeatures.VoteProducer,\n ]),\n chainId: ChainId.from('2a02a0053e5a8cf73a56ba0fda11e4d92e0238a4a2aa74fccf46d5a910746840'),\n coreTokenSymbol: Asset.Symbol.from('4,EOS'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'Jungle 3 (Testnet)',\n nodeUrl: 'https://jungle3.greymass.com',\n testnet: true,\n bloksUrl: 'https://jungle3.bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'proton',\n chainFeatures: new Set([ChainFeatures.Staking, ChainFeatures.VoteProducer]),\n chainId: ChainId.from('384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0'),\n coreTokenSymbol: Asset.Symbol.from('4,XPR'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'Proton',\n nodeUrl: 'https://proton.greymass.com',\n testnet: false,\n bloksUrl: 'https://proton.bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'telos',\n chainFeatures: new Set([\n ChainFeatures.BidName,\n ChainFeatures.BuyRAM,\n ChainFeatures.Fuel,\n ChainFeatures.REX,\n ChainFeatures.Staking,\n ChainFeatures.VoteProducer,\n ]),\n chainId: ChainId.from('4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11'),\n coreTokenSymbol: Asset.Symbol.from('4,TLOS'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'Telos',\n nodeUrl: 'https://telos.greymass.com',\n resourceSampleAccount: 'greymassfuel',\n resourceSampleMilliseconds: 1000,\n testnet: false,\n bloksUrl: 'https://telos.bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'telos-testnet',\n chainFeatures: new Set([\n ChainFeatures.BidName,\n ChainFeatures.BuyRAM,\n ChainFeatures.Fuel,\n ChainFeatures.REX,\n ChainFeatures.Staking,\n ChainFeatures.VoteProducer,\n ]),\n chainId: ChainId.from('1eaa0824707c8c16bd25145493bf062aecddfeb56c736f6ba6397f3195f33c9f'),\n coreTokenSymbol: Asset.Symbol.from('4,TLOS'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'Telos (Testnet)',\n nodeUrl: 'https://testnet.telos.net',\n resourceSampleAccount: 'greymassfuel',\n resourceSampleMilliseconds: 1000,\n testnet: true,\n bloksUrl: 'https://telos-test.bloks.io',\n balanceProviders: new Set([BalanceProviders.Bloks]),\n },\n {\n id: 'wax',\n chainFeatures: new Set([\n ChainFeatures.BidName,\n ChainFeatures.BuyRAM,\n ChainFeatures.Fuel,\n ChainFeatures.Staking,\n ChainFeatures.VoteProducer,\n ChainFeatures.DelphiOracle,\n ]),\n chainId: ChainId.from('1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4'),\n coreTokenSymbol: Asset.Symbol.from('8,WAX'),\n coreTokenContract: Name.from('eosio.token'),\n coreTokenTransfer: Name.from('transfer'),\n name: 'WAX',\n nodeUrl: 'https://wax.greymass.com',\n resourceSampleAccount: 'teamgreymass',\n testnet: false,\n bloksUrl: 'https://wax.bloks.io',\n },\n]\n\nexport function chainConfig(chainId: ChainId): ChainConfig {\n return chains.find((c) => c.chainId.equals(chainId))!\n}\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction));\n });\n }\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking)\n db.addEventListener('versionchange', () => blocking());\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","/**\n * svelte-result-store v1.1.0\n * https://github.com/greymass/svelte-result-store\n *\n * @license\n * Copyright (c) 2021 FFF00 Agents AB & Greymass Inc. All Rights Reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * 1. Redistribution of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * 2. Redistribution in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * 3. Neither the name of the copyright holder nor the names of its contributors\n * may be used to endorse or promote products derived from this software without\n * specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n * OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR INTENDED FOR USE\n * IN THE DESIGN, CONSTRUCTION, OPERATION OR MAINTENANCE OF ANY MILITARY FACILITY.\n */\nimport { writable as writable$1, derived as derived$1, readable as readable$1 } from 'svelte/store';\n\nclass ReadableResult {\n subscribe;\n constructor(resultStore) {\n this.subscribe = resultStore.subscribe;\n }\n /**\n * A store containing the value or undefined if there is an error.\n * Can also be undefined for async stores while the value is being resolved.\n */\n get value() {\n return {\n subscribe: (set) => this.subscribe((result) => {\n if (result.error === undefined) {\n set(result.value);\n }\n }),\n };\n }\n /**\n * A store always containing a value when the result is resolved.\n * @param value The value used in place of errors.\n */\n catch(handler) {\n return {\n subscribe: (set) => this.subscribe((result) => {\n if (result.error !== undefined) {\n const value = handler(result.error);\n if (value) {\n set(value);\n }\n }\n else if (result.value !== undefined) {\n set(result.value);\n }\n }),\n };\n }\n /** Transform the results to a new ReadableResult store. */\n map(transform) {\n const store = {\n subscribe: (set) => this.subscribe((result) => {\n if (result.error !== undefined || result.value !== undefined) {\n let newResult = {};\n try {\n newResult = transform(result);\n }\n catch (error) {\n newResult.error = error;\n }\n set(newResult);\n }\n }),\n };\n return new ReadableResult(store);\n }\n /** Transform the result value to a new ReadableResult store. */\n mapValue(transform) {\n const store = {\n subscribe: (set) => this.subscribe((result) => {\n if (result.value !== undefined) {\n let value;\n try {\n value = transform(result.value);\n }\n catch (error) {\n set({ error });\n return;\n }\n set({ value });\n }\n }),\n };\n return new ReadableResult(store);\n }\n /** Transform the results to a new ReadableResult store by flattening the returned readable. */\n flatMap(transform) {\n const store = {\n subscribe: (set) => this.subscribe((result) => {\n if (result.error !== undefined || result.value !== undefined) {\n let value;\n try {\n value = transform(result);\n }\n catch (error) {\n set({ error });\n return;\n }\n set({ value });\n }\n }),\n };\n return flatten(store);\n }\n /** Transform the result value to a new ReadableResult store by flattening the returned readable. */\n flatMapValue(transform) {\n const store = {\n subscribe: (set) => this.subscribe((result) => {\n if (result.value !== undefined) {\n let value;\n try {\n value = transform(result.value);\n }\n catch (error) {\n set({ error });\n return;\n }\n set({ value });\n }\n }),\n };\n return flatten(store);\n }\n /**\n * A store containing the error or undefined.\n */\n get error() {\n return {\n subscribe: (set) => this.subscribe((result) => {\n if (result.error !== undefined) {\n set(result.error);\n }\n }),\n };\n }\n /**\n * A store containing true if the readable has a result (a value or error), false otherwise.\n */\n get resolved() {\n return {\n subscribe: (set) => this.subscribe((result) => {\n set(result.error !== undefined || result.value !== undefined);\n }),\n };\n }\n /**\n * A promise that resolves or rejects on the first value or error.\n */\n get promise() {\n return new Promise((resolve, reject) => {\n const done = this.subscribe((result) => {\n if (result.error !== undefined) {\n reject(result.error);\n }\n else if (result.value !== undefined) {\n resolve(result.value);\n }\n if (result.error !== undefined || result.value !== undefined) {\n setTimeout(() => {\n done();\n }, 0);\n }\n });\n });\n }\n}\nclass WritableResult extends ReadableResult {\n set;\n update;\n constructor(resultStore) {\n super(resultStore);\n this.set = resultStore.set;\n this.update = resultStore.update;\n }\n updateValue(updater) {\n this.update((result) => ({ value: updater(result.value) }));\n }\n}\nfunction readable(...args) {\n return new ReadableResult(internalWritable(...args));\n}\nfunction writable(...args) {\n return new WritableResult(internalWritable(...args));\n}\nfunction derived(stores, fn) {\n const single = !Array.isArray(stores);\n const auto = fn.length < 2;\n const store = derived$1(stores, (storeValues, set) => {\n const results = single\n ? [storeValues]\n : storeValues;\n const error = results.find((r) => r.error !== undefined);\n if (error) {\n set(error);\n }\n else {\n const values = results.map((r) => r.value);\n if (values.every((v) => v !== undefined)) {\n try {\n const rv = fn(single ? values[0] : values, (value) => {\n set({ value });\n }, (error) => {\n set({ error });\n });\n if (rv instanceof Promise) {\n rv.then((value) => {\n set({ value });\n }).catch((error) => {\n set({ error });\n });\n }\n else if (auto) {\n set({ value: rv });\n }\n else {\n return rv;\n }\n }\n catch (error) {\n set({ error });\n }\n }\n else {\n set({});\n }\n }\n });\n return new ReadableResult(store);\n}\n/**\n * Takes nested readable and flattens it down to just one.\n * @param maxDepth Maximum recursion depth, default 10.\n */\nfunction flatten(store, maxDepth) {\n const max = maxDepth || 10;\n const result = {};\n const flat = readable$1(result, (set) => {\n const next = (d) => (r) => {\n if (r.error) {\n set({ error: r.error });\n }\n else {\n if (r.value && typeof r.value.subscribe === 'function' && d < max) {\n return subscribeCleanup(r.value, next(d + 1));\n }\n else {\n set(r);\n }\n }\n };\n return subscribeCleanup(store, next(0));\n });\n return new ReadableResult(flat);\n}\nfunction subscribeCleanup(store, run) {\n let cleanup = noop;\n const unsub = store.subscribe((v) => {\n cleanup();\n cleanup = run(v) || noop;\n });\n return () => {\n cleanup();\n unsub();\n };\n}\nfunction internalWritable(...args) {\n let start;\n let result = {};\n if (args.length === 2) {\n result = args[0];\n start = args[1];\n }\n else {\n start = typeof args[0] === 'function' ? args[0] : noop;\n result =\n typeof args[0] === 'object' &&\n (args[0].value !== undefined || args[0].error !== undefined)\n ? args[0]\n : {};\n }\n return writable$1(result, (setResult) => {\n try {\n const rv = start((value) => {\n setResult({ value });\n }, (error) => {\n setResult({ error });\n });\n if (rv instanceof Promise) {\n rv.then((value) => {\n if (value !== undefined) {\n setResult({ value });\n }\n }).catch((error) => {\n setResult({ error });\n });\n }\n else {\n return rv;\n }\n }\n catch (error) {\n setResult({ error });\n }\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() { }\n\nexport { ReadableResult, WritableResult, derived, flatten, readable, writable };\n//# sourceMappingURL=svelte-result-store.m.js.map\n","import type {DBSchema, StoreKey, StoreNames, StoreValue} from 'idb'\nimport {openDB} from 'idb'\nimport {readable, ReadableResult} from 'svelte-result-store'\n\nconst dbVersion = 3\n\ninterface WalletDB extends DBSchema {\n 'account-cache': {\n key: string // -\n value: {\n updated: Date // last fetched\n account: any // JSON encoded API.v1.AccountObject\n }\n indexes: {\n 'by-updated': Date\n }\n }\n preferences: {\n key: string\n value: any\n }\n 'price-ticker': {\n key: string\n value: {\n updated: Date\n data: any\n }\n indexes: {\n 'by-updated': Date\n }\n }\n}\n\nexport const dbPromise = openDB('wallet', dbVersion, {\n upgrade(db, version) {\n if (version < 1) {\n const accountCache = db.createObjectStore('account-cache')\n accountCache.createIndex('by-updated', 'updated', {unique: false})\n }\n if (version < 2) {\n db.createObjectStore('preferences')\n }\n if (version < 3) {\n const priceTicker = db.createObjectStore('price-ticker')\n priceTicker.createIndex('by-updated', 'updated', {unique: false})\n }\n },\n})\n\n/**\n * Cached data source, will return initial stale values up to maxAge and refresh every refreshInterval.\n * @note Load function must return a IDB compatible object (i.e. no core objects, pass them through Serializer.objectify)\n */\nexport function cachedRead<\n Names extends StoreNames,\n Value extends StoreValue\n>(args: {\n store: Names\n key: StoreKey\n load: () => Promise\n refreshInterval: number\n maxAge: number\n}): ReadableResult {\n return readable((set, error) => {\n const load = async () => {\n const db = await dbPromise\n const data = await args.load()\n db.put(args.store, {updated: new Date(), data} as Value, args.key).catch((error) => {\n console.warn(`Error caching ${args.store}:${args.key}`, error)\n })\n return data\n }\n const init = async () => {\n const db = await dbPromise\n const existing = await db.get(args.store, args.key)\n let value: Value['data'] | undefined\n if (existing && existing.updated && existing.data !== undefined) {\n const age = Date.now() - existing.updated.getTime()\n if (age < args.maxAge) {\n value = existing.data\n if (age > args.refreshInterval) {\n load().then(set).catch(error)\n }\n }\n }\n if (value === undefined) {\n value = await load()\n }\n set(value)\n }\n init().catch(error)\n const timer = setInterval(() => {\n load().then(set).catch(error)\n }, args.refreshInterval)\n return () => {\n clearInterval(timer)\n }\n })\n}\n","import {dbPromise} from './db'\nimport {ReadableObject} from './lib/readable-object'\n\n/** User preferences, persisted in user db. */\nexport class Preferences extends ReadableObject {\n static settings: Record\n\n /** Whether the side navigation bar is expanded. */\n @Setting({default: false}) expandNavbar!: boolean\n\n /** Whether the side navigation bar advanced section is expanded. */\n @Setting({default: false}) expandNavbarAdvanced!: boolean\n\n /** Dark mode override. */\n @Setting({default: null})\n darkmode!: boolean | null\n\n /** Preferences singleton. */\n static shared = new Preferences()\n\n // Settings DB Storage\n\n private storage: Record = {}\n\n write(key: string, value: any) {\n this.storage[key] = value\n this.didChange()\n this.save(key, value).catch((error) => {\n console.warn('Unable to save setting', error)\n })\n }\n\n read(key: string) {\n const setting = (this.constructor as typeof Preferences).settings[key]\n if (!setting) {\n throw new TypeError(`Unknown setting: ${key}`)\n }\n return this.storage[key] === undefined ? setting.default : this.storage[key]\n }\n\n async initStorage() {\n const db = await dbPromise\n let cursor = await db.transaction('preferences').store.openCursor()\n let found = false\n while (cursor) {\n found = true\n this.storage[cursor.key] = cursor.value\n cursor = await cursor.continue()\n }\n if (found) {\n this.didChange()\n }\n }\n\n private async save(key: string, value: any) {\n const db = await dbPromise\n await db.put('preferences', value, key)\n }\n}\n\nfunction Setting(args: {default: T}) {\n return (target: Preferences, name: string) => {\n const ctor = target.constructor as typeof Preferences\n if (!ctor.settings) ctor.settings = {}\n ctor.settings[name] = args\n function get(this: Preferences) {\n return this.read(name)\n }\n function set(this: Preferences, newValue: T) {\n this.write(name, newValue)\n }\n Object.defineProperty(target, name, {get, set})\n }\n}\n","import type {Readable} from 'svelte/store'\n\ntype Subscriber = (value: T) => void\n\n/**\n * Svelte store compatible object that can notify its subscribers it has changed.\n * Subclasses need to specify their own type due to limitations of the TypeScript type-system, for example:\n * ```\n * class MyReadable extends ReadableObject { .. }\n * ```\n */\nexport abstract class ReadableObject implements Readable {\n private subscribers: Subscriber[] = []\n\n /** Subscribe to changes of object. */\n subscribe(subscriber: Subscriber) {\n if (this.subscribers.length === 0 && this.subscriptionBecameActive) {\n this.subscriptionBecameActive()\n }\n this.subscribers.push(subscriber)\n subscriber(this as any)\n return () => {\n let idx = this.subscribers.indexOf(subscriber)\n if (idx !== -1) {\n this.subscribers.splice(idx, 1)\n }\n if (this.subscribers.length === 0 && this.subscriptionBecameInactive) {\n this.subscriptionBecameInactive()\n }\n }\n }\n\n /** Notify subscribers that object changed. */\n didChange() {\n for (const subscriber of this.subscribers) {\n subscriber(this as any)\n }\n }\n\n /** Called on first subscriber. */\n subscriptionBecameActive?(): void\n\n /** Called after when last subscriber unsubscribes. */\n subscriptionBecameInactive?(): void\n}\n","import {\n Asset,\n Float64,\n Int64,\n Name,\n Struct,\n TimePoint,\n TimePointSec,\n TypeAlias,\n UInt8,\n UInt16,\n UInt32,\n UInt64,\n} from 'anchor-link'\n\n@Struct.type('buyrambytes')\nexport class BuyRamBytes extends Struct {\n @Struct.field(Name) payer!: Name\n @Struct.field(Name) receiver!: Name\n @Struct.field(UInt32) bytes!: UInt32\n}\n\n@Struct.type('delegated_bandwidth')\nexport class DelegatedBandwidth extends Struct {\n @Struct.field(Name) from!: Name\n @Struct.field(Name) to!: Name\n @Struct.field(Asset) net_weight!: Asset\n @Struct.field(Asset) cpu_weight!: Asset\n}\n\n@Struct.type('delphioracledatapoint')\nexport class DelphiOracleDatapoint extends Struct {\n @Struct.field(UInt64) id!: UInt64\n @Struct.field(Name) owner!: Name\n @Struct.field(UInt64) value!: UInt64\n @Struct.field(UInt64) median!: UInt64\n @Struct.field(TimePoint) timestamp!: TimePoint\n}\n\n@TypeAlias('asset_type')\nexport class DelphiOracleAssetType extends UInt16 {\n // fiat=1,\n // cryptocurrency=2,\n // erc20_token=3,\n // eosio_token=4,\n // equity=5,\n // derivative=6,\n // other=7\n}\n\n@Struct.type('delphioraclepair')\nexport class DelphiOraclePair extends Struct {\n @Struct.field('bool') active!: boolean\n @Struct.field('bool') bounty_awarded!: boolean\n @Struct.field('bool') bounty_edited_by_custodians!: boolean\n @Struct.field(Name) proposer!: Name\n @Struct.field(Name) name!: Name\n @Struct.field(Asset) bounty_amount!: Asset\n @Struct.field(Name, {array: true}) approving_custodians!: Name[]\n @Struct.field(Name, {array: true}) approving_oracles!: Name[]\n @Struct.field(Asset.Symbol) base_symbol!: Asset.Symbol\n @Struct.field(DelphiOracleAssetType) base_type!: DelphiOracleAssetType\n @Struct.field(Name) base_contract!: Name\n @Struct.field(Asset.Symbol) quote_symbol!: Asset.Symbol\n @Struct.field(DelphiOracleAssetType) quote_type!: DelphiOracleAssetType\n @Struct.field(Name) quote_contract!: Name\n @Struct.field(UInt64) quoted_precision!: UInt64\n}\n\n@Struct.type('fiotransfer')\nexport class FIOTransfer extends Struct {\n @Struct.field('string') payee_public_key!: string\n @Struct.field('int64') amount!: Int64\n @Struct.field('int64') max_fee!: Int64\n @Struct.field('name') actor!: Name\n @Struct.field('string') tpid!: string\n}\n\n@Struct.type('powerup')\nexport class PowerUp extends Struct {\n @Struct.field('name') payer!: Name\n @Struct.field('name') receiver!: Name\n @Struct.field('uint32') days!: UInt32\n @Struct.field('int64') net_frac!: Int64\n @Struct.field('int64') cpu_frac!: Int64\n @Struct.field('asset') max_payment!: Asset\n}\n\n@Struct.type('powerupstateresource')\nexport class PowerUpStateResource extends Struct {\n @Struct.field('uint8') version!: UInt8\n @Struct.field('int64') weight!: Int64\n @Struct.field('int64') weight_ratio!: Int64\n @Struct.field('int64') assumed_stake_weight!: Int64\n @Struct.field('int64') initial_weight_ratio!: Int64\n @Struct.field('int64') target_weight_ratio!: Int64\n @Struct.field('time_point_sec') initial_timestamp!: TimePointSec\n @Struct.field('time_point_sec') target_timestamp!: TimePointSec\n @Struct.field('float64') exponent!: Float64\n @Struct.field('uint32') decay_secs!: UInt32\n @Struct.field('asset') min_price!: Asset\n @Struct.field('asset') max_price!: Asset\n @Struct.field('int64') utilization!: Int64\n @Struct.field('int64') adjusted_utilization!: Int64\n @Struct.field('time_point_sec') utilization_timestamp!: TimePointSec\n}\n\n@Struct.type('powerupstate')\nexport class PowerUpState extends Struct {\n @Struct.field('uint8') version!: UInt8\n @Struct.field(PowerUpStateResource) net!: PowerUpStateResource\n @Struct.field(PowerUpStateResource) cpu!: PowerUpStateResource\n @Struct.field('uint32') powerup_days!: UInt32\n @Struct.field('asset') min_powerup_fee!: Asset\n}\n\n@Struct.type('rexdeposit')\nexport class REXDeposit extends Struct {\n @Struct.field('name') owner!: Name\n @Struct.field('asset') amount!: Asset\n}\n\n@Struct.type('rexrentcpu')\nexport class REXRentCPU extends Struct {\n @Struct.field('name') from!: Name\n @Struct.field('name') receiver!: Name\n @Struct.field('asset') loan_payment!: Asset\n @Struct.field('asset') loan_fund!: Asset\n}\n\n@Struct.type('rexrentnet')\nexport class REXRentNET extends Struct {\n @Struct.field('name') from!: Name\n @Struct.field('name') receiver!: Name\n @Struct.field('asset') loan_payment!: Asset\n @Struct.field('asset') loan_fund!: Asset\n}\n\n@Struct.type('rexstate')\nexport class REXState extends Struct {\n @Struct.field('uint8') version!: UInt8\n @Struct.field('asset') total_lent!: Asset\n @Struct.field('asset') total_unlent!: Asset\n @Struct.field('asset') total_rent!: Asset\n @Struct.field('asset') total_lendable!: Asset\n @Struct.field('asset') total_rex!: Asset\n @Struct.field('asset') namebid_proceeds!: Asset\n @Struct.field('uint64') loan_num!: UInt64\n}\n\n@Struct.type('sellram')\nexport class Sellram extends Struct {\n @Struct.field(Name) account!: Name\n @Struct.field(Int64) bytes!: Int64\n}\n\n@Struct.type('stake')\nexport class Stake extends Struct {\n @Struct.field('name') from!: Name\n @Struct.field('name') receiver!: Name\n @Struct.field('asset') stake_net_quantity!: Asset\n @Struct.field('asset') stake_cpu_quantity!: Asset\n @Struct.field('bool') transfer!: boolean\n}\n\n@Struct.type('transfer')\nexport class Transfer extends Struct {\n @Struct.field('name') from!: Name\n @Struct.field('name') to!: Name\n @Struct.field('asset') quantity!: Asset\n @Struct.field('string') memo!: string\n}\n","import {APIClient, ChainId} from 'anchor-link'\nimport {ChainConfig, chains} from './config'\n\nconst clients = new Map()\n\n/**\n * Get a APIClient instance for given chain config or chain id.\n */\nexport function getClient(chainOrId: ChainConfig | ChainId): APIClient {\n let chain: ChainConfig\n if (chainOrId instanceof ChainId) {\n const id = String(chainOrId)\n chain = chains.find((cfg) => cfg.chainId.equals(id))!\n if (!chain) {\n throw new Error(`Unconfigured chain: ${id}`)\n }\n } else {\n chain = chainOrId\n }\n let client = clients.get(String(chain.chainId))\n if (!client) {\n client = new APIClient({url: chain.nodeUrl})\n clients.set(String(chain.chainId), client)\n }\n return client\n}\n","import {Serializer} from '@greymass/eosio'\nimport {readable, derived, flatten, ReadableResult} from 'svelte-result-store'\n\nimport {DelphiOracleDatapoint, DelphiOraclePair} from '~/abi-types'\nimport {getClient} from '~/api-client'\nimport {ChainConfig, ChainFeatures} from '~/config'\nimport {cachedRead} from '~/db'\n\n/** How often to update prices. */\nconst UPDATE_INTERVAL = 1 * 60 * 1000 // 1 minute\n/** How old price data can be displayed while it's updating in the background. */\nconst MAX_AGE = 2 * 60 * 60 * 1000 // 2 hours\n\n/** Loads available pairs from the oracle. */\nfunction getOraclePairs(chain: ChainConfig): ReadableResult {\n const client = getClient(chain)\n const pairs: ReadableResult = cachedRead({\n store: 'price-ticker',\n key: `${chain.id}-pairs`,\n load: async () => {\n let result = await client.v1.chain.get_table_rows({\n type: DelphiOraclePair,\n code: 'delphioracle',\n scope: 'delphioracle',\n table: 'pairs',\n limit: 500,\n })\n return Serializer.objectify(result.rows)\n },\n maxAge: 6.048e8, // 1 week\n refreshInterval: 8.64e7, // 1 day\n })\n return derived(pairs, ($pairs) => {\n return $pairs.map((p) => DelphiOraclePair.from(p)).filter((p) => p.active)\n })\n}\n\n/** Loads latest datapoint for given pair. */\nfunction getOracleDatapoint(\n chain: ChainConfig,\n pair: DelphiOraclePair\n): ReadableResult {\n const client = getClient(chain)\n const data = cachedRead({\n store: 'price-ticker',\n key: `${chain.id}-${pair.name}`,\n load: async () => {\n let result = await client.v1.chain.get_table_rows({\n type: DelphiOracleDatapoint,\n code: 'delphioracle',\n scope: `${pair.name}`,\n table: 'datapoints',\n limit: 1,\n })\n let latest = result.rows[0]\n if (!latest) {\n throw new Error(`No datapoints for ${pair.name} on ${chain.id}`)\n }\n return Serializer.objectify(latest)\n },\n maxAge: MAX_AGE,\n refreshInterval: UPDATE_INTERVAL,\n })\n return derived(data, ($data) => DelphiOracleDatapoint.from($data))\n}\n\nfunction bloksFallback(chain: ChainConfig, pairName?: string): ReadableResult {\n const chainName = chain.id\n return cachedRead({\n store: 'price-ticker',\n key: `${chainName}-fallback`,\n load: async () => {\n if (pairName) {\n throw new Error('Fallback only supports core symbol')\n }\n let url = 'https://www.api.bloks.io/ticker/banana'\n if (chainName !== 'eos') {\n url = `https://www.api.bloks.io/${chainName}/ticker/banana`\n }\n const response = await fetch(url)\n const data = await response.json()\n if (typeof data === 'number') {\n return data\n } else {\n throw new Error('Unexpected response from bloks')\n }\n },\n maxAge: MAX_AGE,\n refreshInterval: UPDATE_INTERVAL,\n })\n}\n\nconst tickerStores: Record> = {}\n\n/**\n * Latest price in USD for given chain and pair, if pair is omitted the chains core symbol is used.\n * @note Testnets will return zero for all pairs.\n */\nexport function priceTicker(chain: ChainConfig, pairName?: string): ReadableResult {\n const tickerName = `${chain.id}-${pairName || 'coresymbol'}`\n if (tickerStores[tickerName]) {\n return tickerStores[tickerName]\n }\n const pairs: ReadableResult = chain.chainFeatures.has(\n ChainFeatures.DelphiOracle\n )\n ? getOraclePairs(chain)\n : readable({value: []})\n const pair = derived(pairs, ($pairs) => {\n let pair: DelphiOraclePair | undefined\n if (!pairName) {\n // use core symbol for pair\n pair = $pairs.find(\n (p) => p.base_symbol.equals(chain.coreTokenSymbol) && p.quote_symbol.name === 'USD'\n )\n } else {\n pair = $pairs.find((p) => p.name.equals(pairName))\n }\n return pair || null\n })\n const datapoint = flatten(\n derived(pair, ($pair) => {\n if ($pair) {\n return getOracleDatapoint(chain, $pair)\n } else {\n return null\n }\n })\n )\n const ticker = flatten(\n derived([datapoint, pair], ([$datapoint, $pair]) => {\n if (chain.testnet) {\n // all prices are zero on testnets\n return 0\n } else if ($datapoint && $pair) {\n return (\n $datapoint.median.toNumber() / Math.pow(10, $pair.quoted_precision.toNumber())\n )\n } else {\n return bloksFallback(chain, pairName)\n }\n })\n )\n tickerStores[tickerName] = ticker\n return ticker\n}\n","import {API, Asset, Name, Serializer} from 'anchor-link'\nimport type {ChainId, NameType} from 'anchor-link'\nimport {get, writable} from 'svelte/store'\nimport type {Readable, Writable} from 'svelte/store'\n\nimport {getClient} from '~/api-client'\nimport {dbPromise} from '~/db'\nimport {activeSession} from '~/store'\nimport {chainConfig} from '~/config'\n\n/** How old a cached account is before we update it */\nconst maxAge = 60 * 1000 // ms\n\nexport const isLoading: Writable = writable(false)\n\nconst initialAccountResponse: AccountResponse = {\n stale: true,\n}\n\nexport const accountProvider: Writable = writable(initialAccountResponse, () => {\n // Update on a set interval\n const interval = setInterval(() => {\n const session = get(activeSession)\n if (session) {\n updateAccount(session.auth.actor, session.chainId)\n }\n }, 30000)\n\n // Subscribe to changes to the active session and update on change\n const unsubscribe = activeSession.subscribe((session) => {\n if (session) {\n updateAccount(session.auth.actor, session.chainId)\n }\n })\n\n return () => {\n unsubscribe()\n clearInterval(interval)\n }\n})\n\nexport async function updateAccount(name: Name, chainId: ChainId, refresh: boolean = false) {\n isLoading.set(true)\n loadAccount(\n name,\n chainId,\n async (v) => {\n if (!v.account?.core_liquid_balance) {\n const assets: Asset[] | void = await fetchBalance(name, chainId).catch((err) => {\n console.warn('Error fetching account balance:', err)\n })\n if (assets) {\n v.account!.core_liquid_balance = assets[0]!\n }\n }\n accountProvider.set(v)\n },\n refresh\n )\n isLoading.set(false)\n}\n\nfunction fetchBalance(name: Name, chainId: ChainId) {\n const chain = chainConfig(chainId)\n return getClient(chainId).v1.chain.get_currency_balance(chain.coreTokenContract, name)\n}\n\nexport interface AccountResponse {\n /** The account object for the requested account. */\n account?: API.v1.AccountObject\n /** Whether the account is being updated in the background. */\n stale: boolean\n /** Set if an error occurred while fetching the account. */\n error?: Error\n}\n\nfunction accountKey(name: Name, chainId: ChainId) {\n return `${chainId}-${name}`\n}\n\nexport async function storeAccount(account: API.v1.AccountObject, chainId: ChainId) {\n const db = await dbPromise\n await db.put(\n 'account-cache',\n {\n account: Serializer.objectify(account),\n updated: new Date(),\n },\n accountKey(account.account_name, chainId)\n )\n}\n\nexport async function loadAccount(\n name: Name,\n chainId: ChainId,\n set: (v: AccountResponse) => void,\n refresh = false\n) {\n const key = accountKey(name, chainId)\n let db = await dbPromise\n let row = await db.get('account-cache', key)\n let stale = true\n if (row) {\n const age = Date.now() - row.updated.getTime()\n stale = age > maxAge\n set({account: API.v1.AccountObject.from(row.account), stale})\n }\n if (stale || refresh) {\n const account = await getClient(chainId).v1.chain.get_account(name)\n await storeAccount(account, chainId)\n set({account: account, stale: false})\n }\n}\n\n/** Get an account, can be used to fetch other accounts than the logged in users. */\nexport function getAccount(\n name: NameType,\n chainId: ChainId,\n refresh = false\n): Readable {\n const store = writable({stale: true})\n loadAccount(Name.from(name), chainId, store.set, refresh).catch((error) => {\n console.warn(`Unable to load account ${name} on ${chainId}`, error)\n store.update((account) => ({...account, error}))\n })\n return store\n}\n","import type {Asset, LinkSession} from 'anchor-link'\nimport {derived, writable} from 'svelte/store'\nimport type {Readable} from 'svelte/store'\nimport type {SessionLike} from './auth'\nimport {ChainConfig, chainConfig, chains} from './config'\nimport {Preferences} from './preferences'\nimport {priceTicker} from './price-ticker'\nimport {accountProvider} from './stores/account-provider'\n\n/** Set to true when app initialization completes. */\nexport const appReady = writable(false)\n\n/** Active anchor link session, aka logged in user. */\nexport const activeSession = writable(undefined)\n\n/** Configuration of the currently selected blockchain */\nexport const activeBlockchain: Readable = derived(activeSession, (session) => {\n if (session) {\n return chainConfig(session.chainId)\n } else {\n return chains[0]\n }\n})\n\n/** Active price ticker for the currently selected blockchain */\nexport const activePriceTicker: Readable = derived(\n [activeBlockchain],\n ([$activeBlockchain], set) =>\n priceTicker($activeBlockchain).value.subscribe((v) => {\n if (v !== undefined) {\n set(v)\n }\n })\n)\n\n/** List of all available anchor link sessions. */\nexport const availableSessions = writable([])\n\n/** List of preferences. */\nexport const preferences = Preferences.shared\n\n/** Current logged in users account data. */\nexport const currentAccount = derived(\n accountProvider,\n ($accountProvider) => $accountProvider.account\n)\n\n/** Current system token balance of current logged in user. */\nexport const currentAccountBalance: Readable = derived(\n currentAccount,\n ($currentAccount) => {\n if ($currentAccount) {\n return $currentAccount.core_liquid_balance\n }\n }\n)\n\nconst systemDarkMode = writable(\n window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n)\nif (window.matchMedia) {\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (event) => {\n systemDarkMode.set(event.matches)\n })\n}\n\n/** If dark mode is enabled. */\nexport const darkMode = derived(\n [systemDarkMode, preferences],\n ([$systemDarkMode, $preferences]) => {\n if ($preferences.darkmode !== null) {\n return $preferences.darkmode\n } else {\n return $systemDarkMode\n }\n }\n)\n","/**\n * Anchor Link Browser Transport v3.2.4\n * https://github.com/greymass/anchor-link-browser-transport\n *\n * @license\n * Copyright (c) 2020 Greymass Inc. All Rights Reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * 1. Redistribution of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * 2. Redistribution in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * 3. Neither the name of the copyright holder nor the names of its contributors\n * may be used to endorse or promote products derived from this software without\n * specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n * OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR INTENDED FOR USE\n * IN THE DESIGN, CONSTRUCTION, OPERATION OR MAINTENANCE OF ANY MILITARY FACILITY.\n */\nimport { Signature, SigningRequest, PlaceholderName, Link, SessionError, Base64u, isInstanceOf, APIError } from 'anchor-link';\n\nvar styleText = `\n/* Anchor Link */\n\n.%prefix% * {\n box-sizing: border-box;\n line-height: 1;\n font-variant-numeric: tabular-nums;\n}\n\n.%prefix% {\n font-family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',\n Arial, sans-serif;\n font-size: 13px;\n background: rgba(0, 0, 0, 0.65);\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n z-index: 2147483647;\n display: none;\n align-items: center;\n justify-content: center;\n}\n\n.%prefix%-active {\n display: flex;\n}\n\n.%prefix%-inner {\n background: #EFF1F7;\n margin: 20px;\n padding-top: 50px;\n border-radius: 20px;\n box-shadow: 0px 4px 100px rgba(0, 0, 0, .5);\n width: 340px;\n position: relative;\n}\n\n.%prefix%-close {\n display: block;\n position: absolute;\n top: 11px;\n right: 16px;\n width: 28px;\n height: 28px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.57 12.1a.96.96 0 000 1.34c.37.36 1 .36 1.34 0L7 8.37l5.09 5.09c.36.35.97.35 1.34-.01a.96.96 0 000-1.34L8.34 7.01l5.08-5.08a.95.95 0 000-1.33.97.97 0 00-1.34-.01L6.99 5.68 1.91.59a.96.96 0 00-1.33 0 .97.97 0 00-.01 1.34l5.09 5.08-5.1 5.1z' fill='%23007AFF'/%3E%3C/svg%3E\");\n background-size: 14px;\n background-repeat: no-repeat;\n background-position: 50% 7px;\n border-radius: 100%;\n cursor: pointer;\n}\n\n.%prefix%-close:hover {\n background-color: white;\n}\n\n.%prefix%-version {\n position: absolute;\n top: 19px;\n left: 20px;\n cursor: help;\n color: #B8C0DA;\n opacity: 0.1;\n}\n\n.%prefix%-version:hover {\n opacity: 1;\n}\n\n.%prefix%-logo {\n width: 70px;\n height: 70px;\n margin: 0 auto;\n margin-top: -56px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M18.81 9.19h33.25V59.5H18.81z'/%3E%3Cpath d='M38.45 28.88h-6.9L35 21.77l3.45 7.1z' fill='%233650A2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M35 70a35 35 0 100-70 35 35 0 000 70zm2.36-55.4a2.62 2.62 0 00-4.72 0L21.9 36.75h5.84l1.7-3.5h11.13l1.7 3.5h5.83L37.36 14.6zM48.13 44.2h-5.26a7.76 7.76 0 01-5.24 7v-10.5a2.62 2.62 0 10-5.25 0v10.5a7.76 7.76 0 01-5.25-7h-5.25c.16 7.06 6 12.69 13.12 12.69 7.12 0 12.97-5.63 13.13-12.7z' fill='%233650A2'/%3E%3C/svg%3E\");\n}\n\n.%prefix%-logo.loading {\n border-radius: 100%;\n background-color: #3650A2;\n background-image: url(\"data:image/svg+xml,%3Csvg viewBox='0.5 0.5 45 45' xmlns='http://www.w3.org/2000/svg' stroke='%23fff'%3E%3Cg fill='none' fill-rule='evenodd' transform='translate(1 1)' stroke-width='2'%3E%3Ccircle cx='22' cy='22' r='6' stroke-opacity='0'%3E%3Canimate attributeName='r' begin='1.5s' dur='3s' values='6;22' calcMode='linear' repeatCount='indefinite' /%3E%3Canimate attributeName='stroke-opacity' begin='1.5s' dur='3s' values='1;0' calcMode='linear' repeatCount='indefinite' /%3E%3Canimate attributeName='stroke-width' begin='1.5s' dur='3s' values='2;0' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='22' cy='22' r='6' stroke-opacity='0'%3E%3Canimate attributeName='r' begin='3s' dur='3s' values='6;22' calcMode='linear' repeatCount='indefinite' /%3E%3Canimate attributeName='stroke-opacity' begin='3s' dur='3s' values='1;0' calcMode='linear' repeatCount='indefinite' /%3E%3Canimate attributeName='stroke-width' begin='3s' dur='3s' values='2;0' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3Ccircle cx='22' cy='22' r='8'%3E%3Canimate attributeName='r' begin='0s' dur='1.5s' values='6;1;2;3;4;5;6' calcMode='linear' repeatCount='indefinite' /%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.%prefix%-logo.error {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70' fill='none'%3E%3Ccircle cx='35' cy='35' r='35' fill='%23fc3d39'/%3E%3Cpath fill-rule='evenodd' d='M32.88 17.614c.715-.403 1.522-.614 2.343-.614s1.628.212 2.343.614 1.314.983 1.74 1.685l.005.008 13.483 22.508.013.022c.417.722.638 1.541.64 2.375s-.214 1.654-.627 2.378-1.008 1.328-1.727 1.751-1.535.65-2.369.659h-.017-26.983c-.834-.009-1.651-.237-2.369-.659s-1.314-1.027-1.727-1.751-.629-1.544-.627-2.378.223-1.653.64-2.375l.013-.022L31.14 19.299c.426-.702 1.025-1.282 1.74-1.685zm2.343 2.569a1.59 1.59 0 0 0-1.359.763L20.392 43.438a1.59 1.59 0 0 0-.208.782c-.001.278.071.551.209.793a1.59 1.59 0 0 0 1.358.803h26.945a1.59 1.59 0 0 0 1.358-.803 1.59 1.59 0 0 0 .209-.793c-.001-.274-.073-.544-.208-.782L36.584 20.95c-.144-.236-.343-.428-.58-.561a1.59 1.59 0 0 0-.781-.205zm0 6.531a1.59 1.59 0 0 1 1.592 1.592v6.367a1.59 1.59 0 1 1-3.184 0v-6.367a1.59 1.59 0 0 1 1.592-1.592zm-1.592 14.326a1.59 1.59 0 0 1 1.592-1.592h.016a1.59 1.59 0 1 1 0 3.184h-.016a1.59 1.59 0 0 1-1.592-1.592z' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.%prefix%-logo.warning {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70' fill='none' %3E%3Ccircle cx='35' cy='35' r='35' fill='%23f8b826'/%3E%3Cpath d='M35 20c-8.284 0-15 6.716-15 15s6.716 15 15 15 15-6.716 15-15-6.716-15-15-15zM16.667 35c0-10.125 8.208-18.333 18.333-18.333S53.333 24.875 53.333 35 45.125 53.334 35 53.334 16.667 45.126 16.667 35zM35 26.667c.921 0 1.667.746 1.667 1.667V35A1.67 1.67 0 0 1 35 36.667c-.921 0-1.667-.746-1.667-1.667v-6.667c0-.921.746-1.667 1.667-1.667zm-1.667 15A1.67 1.67 0 0 1 35 40h.017c.921 0 1.667.746 1.667 1.667s-.746 1.667-1.667 1.667H35a1.67 1.67 0 0 1-1.667-1.667z' fill-rule='evenodd' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.%prefix%-logo.success {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 70 70'%3E%3Cdefs/%3E%3Ccircle cx='35' cy='35' r='35' fill='%233DC55D'/%3E%3Cpath fill='%23fff' d='M30.9 49.7a2 2 0 001.8-1L48 24.9c.3-.5.4-1 .4-1.4 0-1-.7-1.7-1.7-1.7-.8 0-1.2.3-1.6 1L30.8 45.4 23.5 36c-.5-.6-1-.9-1.6-.9-1 0-1.8.8-1.8 1.8 0 .4.2.9.6 1.3L29 48.7c.6.7 1.1 1 1.9 1z'/%3E%3C/svg%3E\");\n}\n\n.%prefix%-logo.fuel {\n background-image: url(\"data:image/svg+xml,%3Csvg width='70' height='70' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0)'%3E%3Cpath d='M69.23 30.31l-8.46-11a6.58 6.58 0 00-3.4-2.19L35.91 12.1a7.16 7.16 0 00-1.6-.16 7.73 7.73 0 00-2.18.28l-5.1 1.57a1.76 1.76 0 00-.17-1.4l-1.46-2.5a1.76 1.76 0 00-2.06-.8l-9.98 3.2a1.76 1.76 0 00-1.23 1.74l.13 3.39c.01.27.09.54.22.78l-2.28.7a5.85 5.85 0 00-3.24 2.7L.48 34.23a4.96 4.96 0 00.14 4.53l3.5 5.83a4.49 4.49 0 004.19 2.05l9.29-1.13a4.79 4.79 0 002.54 3.78l3.55 1.68a8.9 8.9 0 003.39.73h.27l8.06-.45c.26.04.5.13.73.28l8.02 8c1 .92 2.3 1.45 3.67 1.47.14 0 .28 0 .42-.03l6.6-.68a2.85 2.85 0 002.5-1.8c.36-1 .1-2.12-.73-3l-2.78-2.96 5.26-1.56a4.35 4.35 0 003-3.64l.41-4.29c.09-.42.26-.82.52-1.16l6-6.66a3.91 3.91 0 00.2-4.9z' fill='%23fff'/%3E%3Cpath d='M49.08 29.96a1.72 1.72 0 00-.92-2.25 1.72 1.72 0 00-1.3 3.17 1.7 1.7 0 002.22-.92zM27.54 26.41a1.02 1.02 0 001-1.23 1.02 1.02 0 00-1.85-.37 1.03 1.03 0 00.46 1.52c.12.05.25.08.39.08zM37.05 21.67a1.03 1.03 0 000-2.06 1.03 1.03 0 000 2.06zM21.54 35c-4.62 0-10.44 2.04-13.52 3.24a.68.68 0 00-.24.16.68.68 0 00-.18.53c.01.1.04.19.1.27l1.28 2.16c.07.1.17.2.28.25.11.06.24.08.37.07l9.15-1.13.45-.03a3.64 3.64 0 013.67 3.55v.3a.67.67 0 00.39.59l2.9 1.38c.42.16.86.26 1.3.28h.05l7.74-.45h.23c1.45.03 2.83.59 3.9 1.58l7.68 7.65c.1.06.22.1.35.12l1.67-.2c.06-.01.12-.03.16-.07a.32.32 0 00.1-.13.33.33 0 00-.03-.33l-.82-1.21a3.22 3.22 0 01-.01-4.58c.4-.4.9-.68 1.45-.82l6.47-1.92a.4.4 0 00.19-.13.41.41 0 00.08-.22l.35-3.53c.01-.06 0-.13-.02-.2a.41.41 0 00-.28-.24.37.37 0 00-.2.01c-2.27.62-6.27 1.6-8.73 1.6C37.4 43.53 29.68 35 21.54 35zm8.97 7.49a.8.8 0 01-.27.28c-.2.13-.45.19-.68.17a1.05 1.05 0 01-.77-1.62.73.73 0 01.28-.28 1.05 1.05 0 011.44 1.45zm17.6 3.72a.76.76 0 01-.27.28 1.05 1.05 0 01-1.17-1.73 1.05 1.05 0 011.32.13 1.04 1.04 0 01.13 1.32z' fill='%23F8B826'/%3E%3Cpath d='M21.54 35c-4.85 0-11.03 2.25-13.96 3.42a.29.29 0 00-.15.16c-.01.03-.02.07-.01.11 0 .04.01.07.03.1L9 41.38c.06.11.16.2.27.26.12.05.25.07.37.06l9.15-1.13c.15-.02.3-.02.46-.03a3.63 3.63 0 013.66 3.54l.02.56c0 .04.02.09.05.13.02.04.06.07.1.1l3.13 1.48c.41.16.85.26 1.3.28h.04l7.74-.45h.23c1.45.03 2.84.59 3.9 1.58l7.68 7.65c.1.06.23.1.35.12l2.22-.27-1.58-1.66c-.82-.88-.7-2.05-.4-3.13a3.28 3.28 0 012.3-2.27l6.71-2 .38-3.8.06-.58c-2.13.59-6.6 1.74-9.3 1.74C37.4 43.54 29.69 35 21.54 35zm8.89 7.62a.38.38 0 01-.07.07c-1.07.77-2.26-.42-1.49-1.5a.25.25 0 01.06-.07c1.08-.77 2.27.42 1.5 1.5zm17.6 3.72a.25.25 0 01-.06.06c-1.07.78-2.26-.42-1.49-1.5a.25.25 0 01.07-.06c1.07-.78 2.26.42 1.49 1.5z' fill='%23E99123'/%3E%3Cpath d='M47.53 34.9c-10.41 0-19.22-4.65-25.54-4.65-4.44 0-11.97 3.38-15.28 5.83a.55.55 0 00-.18.69l.35.78a.55.55 0 00.72.28c2.84-1.18 8.9-3.42 13.94-3.42 8.4 0 16.15 7.48 25.16 7.48 4 0 9.88-1.58 11.41-2.82.67-.7 2.86-3.32 4.4-4.93a.67.67 0 00.1-.8.67.67 0 00-.32-.28.65.65 0 00-.42-.03 64.85 64.85 0 01-14.34 1.86zm-.47 3.95c-.14.3-.38.55-.68.7a1.73 1.73 0 01-2.34-2.36c.14-.3.38-.55.68-.7a1.72 1.72 0 012.04.32 1.75 1.75 0 01.3 2.04z' fill='%23F8B826'/%3E%3Cpath d='M68.34 30.87l-8.46-11a5.52 5.52 0 00-2.77-1.78l-21.46-5.03a7.08 7.08 0 00-3.2.1l-7.55 2.3-.01.01h-.01l-.5-1.3v-.01l1.13-.4a.65.65 0 00.36-.93l-1.47-2.5a.64.64 0 00-.73-.27l-9.98 3.17a.64.64 0 00-.44.63l.13 3.39a.64.64 0 00.63.6c.07 0 .15-.02.22-.04l2.53-.91h.02l.44.87v.02l-6.7 2.05c-1.08.38-2 1.15-2.56 2.15L1.47 34.61a3.8 3.8 0 00.11 3.43l3.5 5.84a3.32 3.32 0 003.1 1.51l10.23-1.26a.2.2 0 01.2.04.2.2 0 01.06.08l.02.1.03.9a3.69 3.69 0 001.9 2.88l3.56 1.69c.98.42 2.05.63 3.12.61l8.06-.44c.58.02 1.13.23 1.57.6l8.03 8a4.38 4.38 0 003.18 1.12l6.6-.69c.77-.07 1.33-.46 1.55-1.07.23-.6.05-1.26-.48-1.82l-4.02-4.26-.01-.01v-.01l7-2.09a3.25 3.25 0 002.2-2.66l.43-4.3a4 4 0 01.8-1.81l6.01-6.67a2.76 2.76 0 00.12-3.45zM15.14 15.2l-.03-.51c0-.08.02-.16.06-.22.04-.07.1-.11.18-.14l7.73-2.5a.35.35 0 01.41.16l.13.23c.03.05.04.1.05.15 0 .05 0 .1-.02.14a.35.35 0 01-.08.13.38.38 0 01-.12.09L15.6 15.5a.34.34 0 01-.31-.04.36.36 0 01-.16-.27zm51.53 17.75l-6 6.66a5.95 5.95 0 00-1.32 3l-.42 4.3a1.22 1.22 0 01-.73.87l-7.32 2.17a1.8 1.8 0 00-1.34 2.28c.1.32.27.6.52.83l3.19 3.37a.4.4 0 01.09.43.42.42 0 01-.14.19.42.42 0 01-.21.08l-5.06.53c-.55 0-1.09-.19-1.51-.54l-8.03-8a4.62 4.62 0 00-3.14-1.2l-8.07.45c-.73.01-1.45-.13-2.12-.41l-3.56-1.7a1.4 1.4 0 01-.72-1.08l-.04-.9a2.35 2.35 0 00-.8-1.68 2.24 2.24 0 00-1.78-.53L7.92 43.32a1.32 1.32 0 01-1.07-.53l-3.49-5.82a1.78 1.78 0 01-.05-1.4L9.8 22.94c.32-.5.78-.89 1.33-1.1l21.94-6.67c.69-.18 1.42-.2 2.12-.07l21.46 5.02c.62.19 1.18.55 1.6 1.03l8.47 11c.08.11.12.25.12.4a.69.69 0 01-.16.39z' fill='%2329363F'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0'%3E%3Cpath fill='%23fff' transform='translate(0 9)' d='M0 0h70v52H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\n}\n\n.%prefix%-request {\n padding: 20px;\n border-radius: 20px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n background: white;\n}\n\n.%prefix%-info {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.%prefix%-title {\n color: #000000;\n font-size: 25px;\n margin-top: 14px;\n font-weight: 700;\n line-height: 30px;\n letter-spacing: 0.5px;\n}\n\n.%prefix%-subtitle {\n margin-top: 14px;\n color: #5C5C5C;\n text-align: center;\n line-height: 1.4;\n word-break: break-word;\n}\n\n.%prefix%-subtitle a {\n color: #000000;\n cursor: pointer;\n text-decoration: underline;\n}\n\n.%prefix%-manual {\n color: #007AFF;\n cursor: pointer;\n}\n\n.%prefix%-info hr {\n border: 0;\n height: 1px;\n width: 100%;\n background: #EFF1F7;\n margin: 24px 0 14px;\n}\n\n.%prefix%-uri {\n width: 100%;\n}\n\n.%prefix%-button {\n color: #007AFF;\n background: #EFF1F7;\n border: 1px solid #EFF1F7;\n text-decoration: none;\n font-size: 17px;\n flex-grow: 1;\n flex: 1;\n width: 100%;\n line-height: 1;\n padding: 20px 18px;\n border-radius: 12px;\n font-weight: 400;\n text-align: center;\n display: block;\n margin-top: 21px;\n cursor: pointer;\n}\n\n.%prefix%-button:hover {\n border: 1px solid #007AFF;\n}\n\n.%prefix%-qr {\n position: relative;\n margin-top: 21px;\n border: 4px solid #EFF1F7;\n padding: 11px;\n border-radius: 12px;\n background: #FFFFFF;\n transition: all 400ms ease-in-out;\n transform: scale(1) translateY(0);\n}\n\n.%prefix%-qr svg {\n width: 100%;\n display: block;\n cursor: zoom-in;\n shape-rendering: crispEdges;\n}\n\n.%prefix%-qr.zoom {\n transform: scale(2) translateY(-25px);\n border: 2px solid #1E89FE;\n box-sizing: border-box;\n box-shadow: 0px 4px 154px rgba(0, 0, 0, 0.35);\n border-radius: 10px;\n padding: 5px;\n z-index: 2147483647;\n}\n\n.%prefix%-qr.zoom svg {\n cursor: zoom-out;\n}\n\n.%prefix%-qr svg rect {\n fill: black;\n}\n\n.%prefix%-copy {\n position: absolute;\n bottom: -10px;\n left: 0px;\n width: 100%;\n color: green;\n text-align: center;\n opacity: 1;\n transition: all 200ms ease-in-out;\n transition-delay: 400ms;\n}\n\n.%prefix%-qr.zoom .%prefix%-copy {\n transition-delay: 0ms;\n background: transparent;\n opacity: 0;\n}\n\n.%prefix%-copy span,\n.%prefix%-copy a {\n display: inline-block;\n background: white;\n padding: 0 20px;\n color: #007AFF;\n cursor: pointer;\n text-decoration: none;\n}\n\n.%prefix%-copy span {\n display: none;\n color: #5C5C5C;\n cursor: default;\n}\n\n.%prefix%-copy.copied a {\n display: none;\n}\n\n.%prefix%-copy.copied span {\n display: inline-block;\n}\n\n.%prefix%-copy span:before,\n.%prefix%-copy a:before {\n content: '';\n display: inline-block;\n width: 26px;\n height: 16px;\n position: relative;\n top: 2px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' fill='none'%3E%3Cg clip-path='url(%23A)' stroke='%23157efa' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M13.83 6.5h-6c-.73 0-1.33.6-1.33 1.33v6c0 .74.6 1.34 1.33 1.34h6c.74 0 1.34-.6 1.34-1.34v-6c0-.73-.6-1.33-1.34-1.33z'/%3E%3Cpath d='M3.83 10.5h-.66a1.33 1.33 0 01-1.34-1.33v-6a1.33 1.33 0 011.34-1.34h6a1.33 1.33 0 011.33 1.34v.66' stroke-linecap='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='A'%3E%3Cpath fill='%23fff' transform='translate(.5 .5)' d='M0 0h16v16H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n}\n\n.%prefix%-copy span:before {\n background-image: url(\"data:image/svg+xml,%3Csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.33 4L6 11.33 2.67 8' stroke='%23157EFA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n top: 3.5px;\n}\n\n.%prefix%-footnote {\n text-align: center;\n width: 100%;\n position: absolute;\n bottom: -26px;\n left: 0;\n color: white;\n}\n\n.%prefix%-footnote a {\n color: white;\n text-decoration: underline;\n}\n\n.%prefix%-wskeepalive {\n display: none;\n}\n\n@media (prefers-color-scheme: dark) {\n .%prefix%-info hr,\n .%prefix%-inner {\n background: #262D43;\n color: white;\n }\n .%prefix%-request,\n .%prefix%-qr a,\n .%prefix%-qr span,\n .%prefix%-qr {\n background: #131B33;\n }\n .%prefix%-title {\n color: #FCFCFC;\n }\n .%prefix%-qr span,\n .%prefix%-subtitle {\n color: #B8C0DA;\n }\n .%prefix%-subtitle a {\n color: #FCFCFC;\n }\n .%prefix%-qr svg rect {\n fill: white;\n }\n .%prefix%-version {\n color: #546AAF;\n }\n .%prefix%-qr a,\n .%prefix%-manual,\n .%prefix%-button {\n color: #FCFCFC;\n }\n .%prefix%-button {\n background: #262D43;\n border: 1px solid #262D43;\n }\n .%prefix%-qr {\n border-color: #262D43;\n }\n .%prefix%-qr.zoom {\n border-color: #131B33;\n }\n .%prefix%-copy a:before {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' fill='none'%3E%3Cg clip-path='url(%23A)' stroke='%23fff' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M13.83 6.5h-6c-.73 0-1.33.6-1.33 1.33v6c0 .74.6 1.34 1.33 1.34h6c.74 0 1.34-.6 1.34-1.34v-6c0-.73-.6-1.33-1.34-1.33z'/%3E%3Cpath d='M3.83 10.5h-.66a1.33 1.33 0 01-1.34-1.33v-6a1.33 1.33 0 011.34-1.34h6a1.33 1.33 0 011.33 1.34v.66' stroke-linecap='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='A'%3E%3Cpath fill='%23fff' transform='translate(.5 .5)' d='M0 0h16v16H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\n }\n .%prefix%-copy span:before {\n background-image: url(\"data:image/svg+xml,%3Csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.33 4L6 11.33 2.67 8' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n }\n .%prefix%-button:hover {\n color: #FCFCFC;\n border: 1px solid #FCFCFC;\n background: #333A50;\n }\n .%prefix%-close {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.57 12.1a.96.96 0 000 1.34c.37.36 1 .36 1.34 0L7 8.37l5.09 5.09c.36.35.97.35 1.34-.01a.96.96 0 000-1.34L8.34 7.01l5.08-5.08a.95.95 0 000-1.33.97.97 0 00-1.34-.01L6.99 5.68 1.91.59a.96.96 0 00-1.33 0 .97.97 0 00-.01 1.34l5.09 5.08-5.1 5.1z' fill='%23FCFCFC'/%3E%3C/svg%3E\");\n }\n .%prefix%-close:hover {\n background-color: black;\n }\n}\n\n@media (max-height: 600px) { .%prefix%-inner { transform: scale(0.9); } }\n@media (max-height: 540px) { .%prefix%-inner { transform: scale(0.8); } }\n@media (max-height: 480px) { .%prefix%-inner { transform: scale(0.7); } }\n@media (max-height: 420px) { .%prefix%-inner { transform: scale(0.6); } }\n@media (max-height: 360px) { .%prefix%-inner { transform: scale(0.5); } }\n@media (max-height: 300px) { .%prefix%-inner { transform: scale(0.4); } }\n\n@media (max-width: 600px) and (orientation: portrait) {\n .%prefix%-qr.zoom {\n transform: scale(1.5) translateY(-25px);\n }\n}\n\n@media (max-width: 450px) and (orientation: portrait) {\n .%prefix%-qr.zoom {\n transform: scale(1.3) translateY(-25px);\n }\n}\n\n`;\n\nvar ErrorCorrectLevel = {\n L: 1,\n M: 0,\n Q: 3,\n H: 2,\n};\n\nvar Mode = {\n MODE_NUMBER: 1 << 0,\n MODE_ALPHA_NUM: 1 << 1,\n MODE_8BIT_BYTE: 1 << 2,\n MODE_KANJI: 1 << 3,\n};\n\nclass QR8bitByte {\n constructor(data) {\n this.mode = Mode.MODE_8BIT_BYTE;\n this.data = data;\n }\n getLength() {\n return this.data.length;\n }\n write(buffer) {\n for (let i = 0; i < this.data.length; i++) {\n // not JIS ...\n buffer.put(this.data.charCodeAt(i), 8);\n }\n }\n}\n\nclass QRBitBuffer {\n constructor() {\n this.buffer = [];\n this.length = 0;\n }\n get(index) {\n const bufIndex = Math.floor(index / 8);\n return ((this.buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1;\n }\n put(num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) == 1);\n }\n }\n getLengthInBits() {\n return this.length;\n }\n putBit(bit) {\n const bufIndex = Math.floor(this.length / 8);\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0);\n }\n if (bit) {\n this.buffer[bufIndex] |= 0x80 >>> this.length % 8;\n }\n this.length++;\n }\n}\n\nconst QRMath = {\n glog: function (n) {\n if (n < 1) {\n throw new Error('glog(' + n + ')');\n }\n return QRMath.LOG_TABLE[n];\n },\n gexp: function (n) {\n while (n < 0) {\n n += 255;\n }\n while (n >= 256) {\n n -= 255;\n }\n return QRMath.EXP_TABLE[n];\n },\n EXP_TABLE: new Array(256),\n LOG_TABLE: new Array(256),\n};\nfor (let i = 0; i < 8; i++) {\n QRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (let i = 8; i < 256; i++) {\n QRMath.EXP_TABLE[i] =\n QRMath.EXP_TABLE[i - 4] ^\n QRMath.EXP_TABLE[i - 5] ^\n QRMath.EXP_TABLE[i - 6] ^\n QRMath.EXP_TABLE[i - 8];\n}\nfor (let i = 0; i < 255; i++) {\n QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i;\n}\n\nclass QRPolynomial {\n constructor(num, shift) {\n if (num.length == undefined) {\n throw new Error(num.length + '/' + shift);\n }\n let offset = 0;\n while (offset < num.length && num[offset] == 0) {\n offset++;\n }\n this.num = new Array(num.length - offset + shift);\n for (let i = 0; i < num.length - offset; i++) {\n this.num[i] = num[i + offset];\n }\n }\n get(index) {\n return this.num[index];\n }\n getLength() {\n return this.num.length;\n }\n multiply(e) {\n const num = new Array(this.getLength() + e.getLength() - 1);\n for (let i = 0; i < this.getLength(); i++) {\n for (let j = 0; j < e.getLength(); j++) {\n num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j)));\n }\n }\n return new QRPolynomial(num, 0);\n }\n mod(e) {\n if (this.getLength() - e.getLength() < 0) {\n return this;\n }\n const ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0));\n const num = new Array(this.getLength());\n for (let i = 0; i < this.getLength(); i++) {\n num[i] = this.get(i);\n }\n for (let i = 0; i < e.getLength(); i++) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio);\n }\n // recursive call\n return new QRPolynomial(num, 0).mod(e);\n }\n}\n\n// ErrorCorrectLevel\nclass QRRSBlock {\n constructor(totalCount, dataCount) {\n this.totalCount = totalCount;\n this.dataCount = dataCount;\n }\n static getRSBlocks(typeNumber, errorCorrectLevel) {\n const rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n if (rsBlock == undefined) {\n throw new Error('bad rs block @ typeNumber:' +\n typeNumber +\n '/errorCorrectLevel:' +\n errorCorrectLevel);\n }\n const length = rsBlock.length / 3;\n const list = [];\n for (let i = 0; i < length; i++) {\n const count = rsBlock[i * 3 + 0];\n const totalCount = rsBlock[i * 3 + 1];\n const dataCount = rsBlock[i * 3 + 2];\n for (let j = 0; j < count; j++) {\n list.push(new QRRSBlock(totalCount, dataCount));\n }\n }\n return list;\n }\n static getRsBlockTable(typeNumber, errorCorrectLevel) {\n switch (errorCorrectLevel) {\n case ErrorCorrectLevel.L:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n case ErrorCorrectLevel.M:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n case ErrorCorrectLevel.Q:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n case ErrorCorrectLevel.H:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n default:\n return undefined;\n }\n }\n}\nQRRSBlock.RS_BLOCK_TABLE = [\n // L\n // M\n // Q\n // H\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12],\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16],\n];\n\nconst QRMaskPattern = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7,\n};\nconst QRUtil = {\n PATTERN_POSITION_TABLE: [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170],\n ],\n G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),\n getBCHTypeInfo: function (data) {\n let d = data << 10;\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n d ^= QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15));\n }\n return ((data << 10) | d) ^ QRUtil.G15_MASK;\n },\n getBCHTypeNumber: function (data) {\n let d = data << 12;\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n d ^= QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18));\n }\n return (data << 12) | d;\n },\n getBCHDigit: function (data) {\n let digit = 0;\n while (data != 0) {\n digit++;\n data >>>= 1;\n }\n return digit;\n },\n getPatternPosition: function (typeNumber) {\n return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n },\n getMask: function (maskPattern, i, j) {\n switch (maskPattern) {\n case QRMaskPattern.PATTERN000:\n return (i + j) % 2 == 0;\n case QRMaskPattern.PATTERN001:\n return i % 2 == 0;\n case QRMaskPattern.PATTERN010:\n return j % 3 == 0;\n case QRMaskPattern.PATTERN011:\n return (i + j) % 3 == 0;\n case QRMaskPattern.PATTERN100:\n return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0;\n case QRMaskPattern.PATTERN101:\n return ((i * j) % 2) + ((i * j) % 3) == 0;\n case QRMaskPattern.PATTERN110:\n return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0;\n case QRMaskPattern.PATTERN111:\n return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0;\n default:\n throw new Error('bad maskPattern:' + maskPattern);\n }\n },\n getErrorCorrectPolynomial: function (errorCorrectLength) {\n let a = new QRPolynomial([1], 0);\n for (let i = 0; i < errorCorrectLength; i++) {\n a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0));\n }\n return a;\n },\n getLengthInBits: function (mode, type) {\n if (1 <= type && type < 10) {\n // 1 - 9\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 10;\n case Mode.MODE_ALPHA_NUM:\n return 9;\n case Mode.MODE_8BIT_BYTE:\n return 8;\n case Mode.MODE_KANJI:\n return 8;\n default:\n throw new Error('mode:' + mode);\n }\n }\n else if (type < 27) {\n // 10 - 26\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 12;\n case Mode.MODE_ALPHA_NUM:\n return 11;\n case Mode.MODE_8BIT_BYTE:\n return 16;\n case Mode.MODE_KANJI:\n return 10;\n default:\n throw new Error('mode:' + mode);\n }\n }\n else if (type < 41) {\n // 27 - 40\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 14;\n case Mode.MODE_ALPHA_NUM:\n return 13;\n case Mode.MODE_8BIT_BYTE:\n return 16;\n case Mode.MODE_KANJI:\n return 12;\n default:\n throw new Error('mode:' + mode);\n }\n }\n else {\n throw new Error('type:' + type);\n }\n },\n getLostPoint: function (qrCode) {\n const moduleCount = qrCode.getModuleCount();\n let lostPoint = 0;\n // LEVEL1\n for (let row = 0; row < moduleCount; row++) {\n for (let col = 0; col < moduleCount; col++) {\n let sameCount = 0;\n const dark = qrCode.isDark(row, col);\n for (let r = -1; r <= 1; r++) {\n if (row + r < 0 || moduleCount <= row + r) {\n continue;\n }\n for (let c = -1; c <= 1; c++) {\n if (col + c < 0 || moduleCount <= col + c) {\n continue;\n }\n if (r == 0 && c == 0) {\n continue;\n }\n if (dark == qrCode.isDark(row + r, col + c)) {\n sameCount++;\n }\n }\n }\n if (sameCount > 5) {\n lostPoint += 3 + sameCount - 5;\n }\n }\n }\n // LEVEL2\n for (let row = 0; row < moduleCount - 1; row++) {\n for (let col = 0; col < moduleCount - 1; col++) {\n let count = 0;\n if (qrCode.isDark(row, col))\n count++;\n if (qrCode.isDark(row + 1, col))\n count++;\n if (qrCode.isDark(row, col + 1))\n count++;\n if (qrCode.isDark(row + 1, col + 1))\n count++;\n if (count == 0 || count == 4) {\n lostPoint += 3;\n }\n }\n }\n // LEVEL3\n for (let row = 0; row < moduleCount; row++) {\n for (let col = 0; col < moduleCount - 6; col++) {\n if (qrCode.isDark(row, col) &&\n !qrCode.isDark(row, col + 1) &&\n qrCode.isDark(row, col + 2) &&\n qrCode.isDark(row, col + 3) &&\n qrCode.isDark(row, col + 4) &&\n !qrCode.isDark(row, col + 5) &&\n qrCode.isDark(row, col + 6)) {\n lostPoint += 40;\n }\n }\n }\n for (let col = 0; col < moduleCount; col++) {\n for (let row = 0; row < moduleCount - 6; row++) {\n if (qrCode.isDark(row, col) &&\n !qrCode.isDark(row + 1, col) &&\n qrCode.isDark(row + 2, col) &&\n qrCode.isDark(row + 3, col) &&\n qrCode.isDark(row + 4, col) &&\n !qrCode.isDark(row + 5, col) &&\n qrCode.isDark(row + 6, col)) {\n lostPoint += 40;\n }\n }\n }\n // LEVEL4\n let darkCount = 0;\n for (let col = 0; col < moduleCount; col++) {\n for (let row = 0; row < moduleCount; row++) {\n if (qrCode.isDark(row, col)) {\n darkCount++;\n }\n }\n }\n const ratio = Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5;\n lostPoint += ratio * 10;\n return lostPoint;\n },\n};\n\nclass QRCode {\n constructor(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber;\n this.errorCorrectLevel = errorCorrectLevel;\n this.modules = null;\n this.moduleCount = 0;\n this.dataCache = null;\n this.dataList = [];\n }\n addData(data) {\n const newData = new QR8bitByte(data);\n this.dataList.push(newData);\n this.dataCache = null;\n }\n isDark(row, col) {\n if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n throw new Error(row + ',' + col);\n }\n return this.modules[row][col];\n }\n getModuleCount() {\n return this.moduleCount;\n }\n make() {\n // Calculate automatically typeNumber if provided is < 1\n if (this.typeNumber < 1) {\n let typeNumber = 1;\n for (typeNumber = 1; typeNumber < 40; typeNumber++) {\n const rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n const buffer = new QRBitBuffer();\n let totalDataCount = 0;\n for (let i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n for (let i = 0; i < this.dataList.length; i++) {\n const data = this.dataList[i];\n buffer.put(data.mode, 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));\n data.write(buffer);\n }\n if (buffer.getLengthInBits() <= totalDataCount * 8)\n break;\n }\n this.typeNumber = typeNumber;\n }\n this.makeImpl(false, this.getBestMaskPattern());\n }\n makeImpl(test, maskPattern) {\n this.moduleCount = this.typeNumber * 4 + 17;\n this.modules = new Array(this.moduleCount);\n for (let row = 0; row < this.moduleCount; row++) {\n this.modules[row] = new Array(this.moduleCount);\n for (let col = 0; col < this.moduleCount; col++) {\n this.modules[row][col] = null; //(col + row) % 3;\n }\n }\n this.setupPositionProbePattern(0, 0);\n this.setupPositionProbePattern(this.moduleCount - 7, 0);\n this.setupPositionProbePattern(0, this.moduleCount - 7);\n this.setupPositionAdjustPattern();\n this.setupTimingPattern();\n this.setupTypeInfo(test, maskPattern);\n if (this.typeNumber >= 7) {\n this.setupTypeNumber(test);\n }\n if (this.dataCache == null) {\n this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n }\n this.mapData(this.dataCache, maskPattern);\n }\n setupPositionProbePattern(row, col) {\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || this.moduleCount <= row + r)\n continue;\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || this.moduleCount <= col + c)\n continue;\n if ((0 <= r && r <= 6 && (c == 0 || c == 6)) ||\n (0 <= c && c <= 6 && (r == 0 || r == 6)) ||\n (2 <= r && r <= 4 && 2 <= c && c <= 4)) {\n this.modules[row + r][col + c] = true;\n }\n else {\n this.modules[row + r][col + c] = false;\n }\n }\n }\n }\n getBestMaskPattern() {\n let minLostPoint = 0;\n let pattern = 0;\n for (let i = 0; i < 8; i++) {\n this.makeImpl(true, i);\n const lostPoint = QRUtil.getLostPoint(this);\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint;\n pattern = i;\n }\n }\n return pattern;\n }\n setupTimingPattern() {\n for (let r = 8; r < this.moduleCount - 8; r++) {\n if (this.modules[r][6] != null) {\n continue;\n }\n this.modules[r][6] = r % 2 == 0;\n }\n for (let c = 8; c < this.moduleCount - 8; c++) {\n if (this.modules[6][c] != null) {\n continue;\n }\n this.modules[6][c] = c % 2 == 0;\n }\n }\n setupPositionAdjustPattern() {\n const pos = QRUtil.getPatternPosition(this.typeNumber);\n for (let i = 0; i < pos.length; i++) {\n for (let j = 0; j < pos.length; j++) {\n const row = pos[i];\n const col = pos[j];\n if (this.modules[row][col] != null) {\n continue;\n }\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) {\n this.modules[row + r][col + c] = true;\n }\n else {\n this.modules[row + r][col + c] = false;\n }\n }\n }\n }\n }\n }\n setupTypeNumber(test) {\n const bits = QRUtil.getBCHTypeNumber(this.typeNumber);\n for (let i = 0; i < 18; i++) {\n const mod = !test && ((bits >> i) & 1) == 1;\n this.modules[Math.floor(i / 3)][(i % 3) + this.moduleCount - 8 - 3] = mod;\n }\n for (let i = 0; i < 18; i++) {\n const mod = !test && ((bits >> i) & 1) == 1;\n this.modules[(i % 3) + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n }\n }\n setupTypeInfo(test, maskPattern) {\n const data = (this.errorCorrectLevel << 3) | maskPattern;\n const bits = QRUtil.getBCHTypeInfo(data);\n // vertical\n for (let i = 0; i < 15; i++) {\n const mod = !test && ((bits >> i) & 1) == 1;\n if (i < 6) {\n this.modules[i][8] = mod;\n }\n else if (i < 8) {\n this.modules[i + 1][8] = mod;\n }\n else {\n this.modules[this.moduleCount - 15 + i][8] = mod;\n }\n }\n // horizontal\n for (let i = 0; i < 15; i++) {\n const mod = !test && ((bits >> i) & 1) == 1;\n if (i < 8) {\n this.modules[8][this.moduleCount - i - 1] = mod;\n }\n else if (i < 9) {\n this.modules[8][15 - i - 1 + 1] = mod;\n }\n else {\n this.modules[8][15 - i - 1] = mod;\n }\n }\n // fixed module\n this.modules[this.moduleCount - 8][8] = !test;\n }\n mapData(data, maskPattern) {\n let inc = -1;\n let row = this.moduleCount - 1;\n let bitIndex = 7;\n let byteIndex = 0;\n for (let col = this.moduleCount - 1; col > 0; col -= 2) {\n if (col == 6)\n col--;\n for (;;) {\n for (let c = 0; c < 2; c++) {\n if (this.modules[row][col - c] == null) {\n let dark = false;\n if (byteIndex < data.length) {\n dark = ((data[byteIndex] >>> bitIndex) & 1) == 1;\n }\n const mask = QRUtil.getMask(maskPattern, row, col - c);\n if (mask) {\n dark = !dark;\n }\n this.modules[row][col - c] = dark;\n bitIndex--;\n if (bitIndex == -1) {\n byteIndex++;\n bitIndex = 7;\n }\n }\n }\n row += inc;\n if (row < 0 || this.moduleCount <= row) {\n row -= inc;\n inc = -inc;\n break;\n }\n }\n }\n }\n static createData(typeNumber, errorCorrectLevel, dataList) {\n const rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n const buffer = new QRBitBuffer();\n for (let i = 0; i < dataList.length; i++) {\n const data = dataList[i];\n buffer.put(data.mode, 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));\n data.write(buffer);\n }\n // calc num max data.\n let totalDataCount = 0;\n for (let i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw new Error('code length overflow. (' +\n buffer.getLengthInBits() +\n '>' +\n totalDataCount * 8 +\n ')');\n }\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4);\n }\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false);\n }\n // padding\n for (;;) {\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(QRCode.PAD0, 8);\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(QRCode.PAD1, 8);\n }\n return QRCode.createBytes(buffer, rsBlocks);\n }\n static createBytes(buffer, rsBlocks) {\n let offset = 0;\n let maxDcCount = 0;\n let maxEcCount = 0;\n const dcdata = new Array(rsBlocks.length);\n const ecdata = new Array(rsBlocks.length);\n for (let r = 0; r < rsBlocks.length; r++) {\n const dcCount = rsBlocks[r].dataCount;\n const ecCount = rsBlocks[r].totalCount - dcCount;\n maxDcCount = Math.max(maxDcCount, dcCount);\n maxEcCount = Math.max(maxEcCount, ecCount);\n dcdata[r] = new Array(dcCount);\n for (let i = 0; i < dcdata[r].length; i++) {\n dcdata[r][i] = 0xff & buffer.buffer[i + offset];\n }\n offset += dcCount;\n const rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n const rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);\n const modPoly = rawPoly.mod(rsPoly);\n ecdata[r] = new Array(rsPoly.getLength() - 1);\n for (let i = 0; i < ecdata[r].length; i++) {\n const modIndex = i + modPoly.getLength() - ecdata[r].length;\n ecdata[r][i] = modIndex >= 0 ? modPoly.get(modIndex) : 0;\n }\n }\n let totalCodeCount = 0;\n for (let i = 0; i < rsBlocks.length; i++) {\n totalCodeCount += rsBlocks[i].totalCount;\n }\n const data = new Array(totalCodeCount);\n let index = 0;\n for (let i = 0; i < maxDcCount; i++) {\n for (let r = 0; r < rsBlocks.length; r++) {\n if (i < dcdata[r].length) {\n data[index++] = dcdata[r][i];\n }\n }\n }\n for (let i = 0; i < maxEcCount; i++) {\n for (let r = 0; r < rsBlocks.length; r++) {\n if (i < ecdata[r].length) {\n data[index++] = ecdata[r][i];\n }\n }\n }\n return data;\n }\n}\nQRCode.PAD0 = 0xec;\nQRCode.PAD1 = 0x11;\n\n/**\n * Generate QR SVG\n * @author Johan Nordberg \n */\nfunction generate(text, level = 'L', version = -1) {\n const qr = new QRCode(version, ErrorCorrectLevel[level]);\n const rects = [];\n qr.addData(text);\n qr.make();\n const rows = qr.modules;\n const size = rows.length;\n for (const [y, row] of rows.entries()) {\n let rect;\n for (const [x, on] of row.entries()) {\n if (on) {\n if (!rect)\n rect = { x, y, width: 0, height: 1 };\n rect.width++;\n }\n else {\n if (rect && rect.width > 0) {\n rects.push(rect);\n }\n rect = undefined;\n }\n }\n if (rect && rect.width > 0) {\n rects.push(rect);\n }\n }\n const svg = [``];\n for (const { x, y, width, height } of rects) {\n svg.push(``);\n }\n svg.push('');\n return svg.join('');\n}\n\nasync function apiCall(url, body) {\n return (await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: body ? JSON.stringify(body) : undefined,\n })).json();\n}\nconst version = 'fuel/2';\n/** Return true if otherVersion is same or greater than current fuel version. */\nfunction compareVersion(otherVersion) {\n return parseVersion(otherVersion) >= parseVersion(version);\n}\nfunction parseVersion(string) {\n const parts = string.trim().split('/');\n if (parts.length === 2 && parts[0] === 'fuel') {\n return parseInt(parts[1]) || 0;\n }\n return -1;\n}\nasync function fuel(request, session, updatePrepareStatus, supportedChains, referrer) {\n assertEligible(request, session);\n updatePrepareStatus('Detecting if network resources are required.');\n const chainId = request.getChainId();\n const nodeUrl = supportedChains[String(chainId)];\n if (!nodeUrl) {\n throw new Error(`Blockchain not supported by this resource provider.`);\n }\n const result = await apiCall(nodeUrl + '/v1/resource_provider/request_transaction', {\n ref: referrer,\n request,\n signer: session.auth,\n });\n if (!result || !result.data) {\n throw new Error('Invalid response from resource provider.');\n }\n if (!result.data.signatures || !result.data.signatures[0]) {\n throw new Error('No signature returned from resource provider.');\n }\n if (result.code === 402 && !result.data.fee) {\n throw new Error('Resource provider returned a response indicating required payment, but provided no fee amount.');\n }\n // Clone the request for modification\n const cloned = request.clone();\n // Set the required fee onto the request for signature providers\n if (result.code === 402) {\n if (request.getInfoKey('no_fee')) {\n throw new Error('Fee required but sender opted out.');\n }\n cloned.setInfoKey('txfee', result.data.fee);\n }\n // If the fee costs exist, set them on the request for the signature provider to consume\n if (result.data.costs) {\n cloned.setInfoKey('txfeecpu', result.data.costs.cpu);\n cloned.setInfoKey('txfeenet', result.data.costs.net);\n cloned.setInfoKey('txfeeram', result.data.costs.ram);\n }\n // Set the cosigner signature onto the request for signature providers\n const signatures = result.data.signatures.map((s) => Signature.from(s));\n cloned.setInfoKey('cosig', signatures, { type: Signature, array: true });\n // Modify the request based on the response from the API\n cloned.data.req = (await SigningRequest.create({ transaction: { ...result.data.request[1] } }, { abiProvider: request.abiProvider })).data.req;\n return cloned;\n}\nfunction assertEligible(request, session) {\n if (request.getRawInfoKey('no_modify')) {\n throw new Error('Request cannot be modified.');\n }\n if (request.isIdentity()) {\n throw new Error('Identity requests cannot be co-signed.');\n }\n const firstAction = request.getRawActions()[0];\n if (!firstAction) {\n throw new Error('No actions in request.');\n }\n const firstAuthorizer = firstAction.authorization[0];\n if (!firstAction) {\n throw new Error('First authorization missing.');\n }\n if (!firstAuthorizer.actor.equals(session.auth.actor) &&\n !firstAuthorizer.actor.equals(PlaceholderName)) {\n throw new Error('Not first authorizer.');\n }\n}\n\nconst AbortPrepare = Symbol();\nconst SkipFee = Symbol();\nconst SkipToManual = Symbol();\nconst defaultSupportedChains = {\n aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906: 'https://eos.greymass.com',\n '2a02a0053e5a8cf73a56ba0fda11e4d92e0238a4a2aa74fccf46d5a910746840': 'https://jungle3.greymass.com',\n '4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11': 'https://telos.greymass.com',\n '1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4': 'https://wax.greymass.com',\n};\nclass Storage {\n constructor(keyPrefix) {\n this.keyPrefix = keyPrefix;\n }\n async write(key, data) {\n localStorage.setItem(this.storageKey(key), data);\n }\n async read(key) {\n return localStorage.getItem(this.storageKey(key));\n }\n async remove(key) {\n localStorage.removeItem(this.storageKey(key));\n }\n storageKey(key) {\n return `${this.keyPrefix}-${key}`;\n }\n}\nclass BrowserTransport {\n constructor(options = {}) {\n this.options = options;\n this.classPrefix = options.classPrefix || 'anchor-link';\n this.injectStyles = !(options.injectStyles === false);\n this.importantStyles = !(options.importantStyles === false);\n this.requestStatus = !(options.requestStatus === false);\n this.fuelEnabled = options.disableGreymassFuel !== true;\n this.fuelReferrer = options.fuelReferrer || 'teamgreymass';\n this.storage = new Storage(options.storagePrefix || 'anchor-link');\n this.supportedChains = options.supportedChains || defaultSupportedChains;\n this.showingManual = false;\n }\n closeModal() {\n this.hide();\n if (this.activeCancel) {\n this.activeRequest = undefined;\n this.activeCancel('Modal closed');\n this.activeCancel = undefined;\n }\n }\n setupElements() {\n this.showingManual = false;\n if (this.injectStyles && !this.styleEl) {\n this.styleEl = document.createElement('style');\n this.styleEl.type = 'text/css';\n let css = styleText.replace(/%prefix%/g, this.classPrefix);\n if (this.importantStyles) {\n css = css\n .split('\\n')\n .map((line) => line.replace(/;$/i, ' !important;'))\n .join('\\n');\n }\n this.styleEl.appendChild(document.createTextNode(css));\n document.head.appendChild(this.styleEl);\n }\n if (!this.containerEl) {\n this.containerEl = this.createEl();\n this.containerEl.className = this.classPrefix;\n this.containerEl.onclick = (event) => {\n if (event.target === this.containerEl) {\n event.stopPropagation();\n this.closeModal();\n }\n };\n document.body.appendChild(this.containerEl);\n }\n if (!this.requestEl) {\n const wrapper = this.createEl({ class: 'inner' });\n const closeButton = this.createEl({ class: 'close' });\n closeButton.onclick = (event) => {\n event.stopPropagation();\n this.closeModal();\n };\n this.requestEl = this.createEl({ class: 'request' });\n wrapper.appendChild(this.requestEl);\n wrapper.appendChild(closeButton);\n const version = this.createEl({\n class: 'version',\n text: `${BrowserTransport.version} (${Link.version})`,\n });\n version.onclick = (event) => {\n event.stopPropagation();\n window.open('https://github.com/greymass/anchor-link', '_blank');\n };\n wrapper.appendChild(version);\n this.containerEl.appendChild(wrapper);\n }\n }\n createEl(attrs) {\n if (!attrs)\n attrs = {};\n const el = document.createElement(attrs.tag || 'div');\n for (const attr of Object.keys(attrs)) {\n const value = attrs[attr];\n switch (attr) {\n case 'src':\n el.setAttribute(attr, value);\n break;\n case 'tag':\n break;\n case 'content':\n if (typeof value === 'string') {\n el.appendChild(document.createTextNode(value));\n }\n else {\n el.appendChild(value);\n }\n break;\n case 'text':\n el.appendChild(document.createTextNode(value));\n break;\n case 'class':\n el.className = `${this.classPrefix}-${value}`;\n break;\n default:\n el.setAttribute(attr, value);\n }\n }\n return el;\n }\n hide() {\n if (this.containerEl) {\n this.containerEl.classList.remove(`${this.classPrefix}-active`);\n }\n this.clearTimers();\n }\n show() {\n if (this.containerEl) {\n this.containerEl.classList.add(`${this.classPrefix}-active`);\n }\n }\n showDialog(args) {\n this.setupElements();\n const infoEl = this.createEl({ class: 'info' });\n const infoTitle = this.createEl({ class: 'title', tag: 'span', content: args.title });\n const infoSubtitle = this.createEl({\n class: 'subtitle',\n tag: 'span',\n content: args.subtitle,\n });\n infoEl.appendChild(infoTitle);\n infoEl.appendChild(infoSubtitle);\n const logoEl = this.createEl({ class: 'logo' });\n if (args.type) {\n logoEl.classList.add(args.type);\n }\n emptyElement(this.requestEl);\n this.requestEl.appendChild(logoEl);\n this.requestEl.appendChild(infoEl);\n if (args.content) {\n this.requestEl.appendChild(args.content);\n }\n if (args.action) {\n const buttonEl = this.createEl({ tag: 'a', class: 'button', text: args.action.text });\n buttonEl.addEventListener('click', (event) => {\n event.preventDefault();\n args.action.callback();\n });\n this.requestEl.appendChild(buttonEl);\n }\n if (args.footnote) {\n const footnoteEl = this.createEl({ class: 'footnote', content: args.footnote });\n this.requestEl.appendChild(footnoteEl);\n }\n this.show();\n }\n async displayRequest(request, title, subtitle, showFooter = true) {\n const sameDeviceRequest = request.clone();\n const returnUrl = generateReturnUrl();\n sameDeviceRequest.setInfoKey('same_device', true);\n sameDeviceRequest.setInfoKey('return_path', returnUrl);\n const sameDeviceUri = sameDeviceRequest.encode(true, false);\n const crossDeviceUri = request.encode(true, false);\n const qrEl = this.createEl({ class: 'qr' });\n try {\n qrEl.innerHTML = generate(crossDeviceUri);\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.warn('Unable to generate QR code', error);\n }\n const copyEl = this.createEl({ class: 'copy' });\n const copyA = this.createEl({ tag: 'a', text: 'Copy request link' });\n const copySpan = this.createEl({ tag: 'span', text: 'Link copied - Paste in Anchor' });\n copyEl.appendChild(copyA);\n copyEl.appendChild(copySpan);\n qrEl.appendChild(copyEl);\n copyA.addEventListener('click', (event) => {\n event.preventDefault();\n copyToClipboard(crossDeviceUri);\n copyEl.classList.add('copied');\n setTimeout(() => {\n copyEl.classList.remove('copied');\n }, 2000);\n });\n const svg = qrEl.querySelector('svg');\n if (svg) {\n svg.addEventListener('click', (event) => {\n event.preventDefault();\n qrEl.classList.toggle('zoom');\n });\n }\n const linkEl = this.createEl({ class: 'uri' });\n const linkA = this.createEl({\n tag: 'a',\n class: 'button',\n href: crossDeviceUri,\n text: 'Launch Anchor',\n });\n linkEl.appendChild(linkA);\n if (isFirefox() || isBrave()) {\n // this prevents firefox/brave from killing the websocket connection once the link is clicked\n const iframe = this.createEl({\n class: 'wskeepalive',\n src: 'about:blank',\n tag: 'iframe',\n });\n linkEl.appendChild(iframe);\n linkA.addEventListener('click', (event) => {\n event.preventDefault();\n iframe.setAttribute('src', sameDeviceUri);\n });\n }\n else {\n linkA.addEventListener('click', (event) => {\n event.preventDefault();\n window.location.href = sameDeviceUri;\n });\n }\n const content = this.createEl({ class: 'info' });\n content.appendChild(qrEl);\n content.appendChild(linkEl);\n let footnote;\n if (showFooter) {\n footnote = this.createEl({ text: \"Don't have Anchor yet? \" });\n const footnoteLink = this.createEl({\n tag: 'a',\n target: '_blank',\n href: 'https://greymass.com/anchor',\n text: 'Download now',\n });\n footnote.appendChild(footnoteLink);\n }\n this.showDialog({\n title,\n subtitle,\n footnote,\n content,\n });\n }\n async showLoading() {\n const status = this.createEl({\n tag: 'span',\n text: 'Preparing request...',\n });\n this.prepareStatusEl = status;\n this.showDialog({\n title: 'Loading',\n subtitle: status,\n type: 'loading',\n });\n }\n onRequest(request, cancel) {\n this.activeRequest = request;\n this.activeCancel = cancel;\n const title = request.isIdentity() ? 'Login' : 'Sign';\n const subtitle = 'Scan the QR-code with Anchor on another device or use the button to open it here.';\n this.displayRequest(request, title, subtitle).catch(cancel);\n }\n onSessionRequest(session, request, cancel) {\n if (session.metadata.sameDevice) {\n request.setInfoKey('return_path', generateReturnUrl());\n }\n if (session.type === 'fallback') {\n this.onRequest(request, cancel);\n if (session.metadata.sameDevice) {\n // trigger directly on a fallback same-device session\n window.location.href = request.encode();\n }\n return;\n }\n this.activeRequest = request;\n this.activeCancel = cancel;\n const timeout = session.metadata.timeout || 60 * 1000 * 2;\n const deviceName = session.metadata.name;\n let subtitle;\n if (deviceName && deviceName.length > 0) {\n subtitle = `Please open Anchor Wallet on “${deviceName}” to review and sign the transaction.`;\n }\n else {\n subtitle = 'Please review and sign the transaction in the linked wallet.';\n }\n const title = this.createEl({ tag: 'span', text: 'Sign' });\n const expires = new Date(Date.now() + timeout);\n const updateCountdown = () => {\n title.textContent = `Sign - ${countdownFormat(expires)}`;\n };\n this.countdownTimer = setInterval(updateCountdown, 200);\n updateCountdown();\n const content = this.createEl({ class: 'info' });\n const manualHr = this.createEl({ tag: 'hr' });\n const manualA = this.createEl({\n tag: 'a',\n text: 'Sign manually or with another device',\n class: 'manual',\n });\n manualA.addEventListener('click', (event) => {\n event.preventDefault();\n const error = new SessionError('Manual', 'E_TIMEOUT', session);\n error[SkipToManual] = true;\n cancel(error);\n });\n content.appendChild(manualHr);\n content.appendChild(manualA);\n this.showDialog({\n title,\n subtitle,\n content,\n });\n if (session.metadata.sameDevice) {\n if (session.metadata.launchUrl) {\n window.location.href = session.metadata.launchUrl;\n }\n else if (isAppleHandheld()) {\n window.location.href = 'anchor://link';\n }\n }\n }\n sendSessionPayload(payload, session) {\n if (!session.metadata.triggerUrl || !session.metadata.sameDevice) {\n // not same device or no trigger url supported\n return false;\n }\n if (payload.array.length > 700) {\n // url could be clipped by iOS\n return false;\n }\n window.location.href = session.metadata.triggerUrl.replace('%s', Base64u.encode(payload.array));\n return true;\n }\n clearTimers() {\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n if (this.countdownTimer) {\n clearTimeout(this.countdownTimer);\n this.countdownTimer = undefined;\n }\n }\n async showFee(request, fee) {\n this.activeRequest = request;\n const cancelPromise = new Promise((resolve, reject) => {\n this.activeCancel = (reason) => {\n let error;\n if (typeof reason === 'string') {\n error = new Error(reason);\n }\n else {\n error = reason;\n }\n error[AbortPrepare] = true;\n reject(error);\n };\n });\n const content = this.createEl({ class: 'info' });\n const feePart1 = this.createEl({\n tag: 'span',\n text: 'You can try to ',\n });\n const feeBypass = this.createEl({\n tag: 'a',\n text: 'proceed without the fee',\n });\n const feePart2 = this.createEl({\n tag: 'span',\n text: ' or accept the fee shown below to pay for these costs.',\n });\n const feeDescription = this.createEl({\n class: 'subtitle',\n tag: 'span',\n });\n feeDescription.appendChild(feePart1);\n feeDescription.appendChild(feeBypass);\n feeDescription.appendChild(feePart2);\n content.appendChild(feeDescription);\n const expireEl = this.createEl({\n tag: 'span',\n class: 'subtitle',\n text: 'Offer expires in --:--',\n });\n content.appendChild(expireEl);\n const expires = request.getRawTransaction().expiration.toDate();\n const expireTimer = setInterval(() => {\n expireEl.textContent = `Offer expires in ${countdownFormat(expires)}`;\n if (expires.getTime() < Date.now()) {\n this.activeCancel('Offer expired');\n }\n }, 200);\n const footnote = this.createEl({\n tag: 'span',\n text: 'Resources offered by ',\n });\n const footnoteLink = this.createEl({\n tag: 'a',\n target: '_blank',\n href: 'https://greymass.com/en/fuel',\n text: 'Greymass Fuel',\n });\n footnote.appendChild(footnoteLink);\n const skipPromise = waitForEvent(feeBypass, 'click').then(() => {\n const error = new Error('Skipped fee');\n error[SkipFee] = true;\n throw error;\n });\n const confirmPromise = new Promise((resolve) => {\n this.showDialog({\n title: 'Transaction Fee',\n subtitle: 'Your account lacks the network resources for this transaction and it cannot be covered for free.',\n type: 'fuel',\n content,\n action: {\n text: `Accept Fee of ${fee}`,\n callback: resolve,\n },\n footnote,\n });\n });\n await Promise.race([confirmPromise, skipPromise, cancelPromise]).finally(() => {\n clearInterval(expireTimer);\n });\n }\n showRecovery(request, session) {\n request.data.info = request.data.info.filter((pair) => pair.key !== 'return_path');\n if (session.type === 'channel') {\n const channelSession = session;\n if (channelSession.addLinkInfo) {\n channelSession.addLinkInfo(request);\n }\n }\n this.displayRequest(request, 'Sign manually', 'Want to sign with another device or didn’t get the signing request in your wallet, scan this QR or copy request and paste in app.', false);\n this.showingManual = true;\n }\n async prepare(request, session) {\n this.showLoading();\n if (!this.fuelEnabled || !session || request.isIdentity()) {\n // don't attempt to cosign id request or if we don't have a session attached\n return request;\n }\n if (typeof session.metadata.cosignerVersion === 'string' &&\n compareVersion(session.metadata.cosignerVersion)) {\n // if signer has cosigner, only attempt to cosign here if we have a newer version\n return request;\n }\n try {\n const result = fuel(request, session, (message) => {\n if (this.prepareStatusEl) {\n this.prepareStatusEl.textContent = message;\n }\n }, this.supportedChains, this.fuelReferrer);\n const timeout = new Promise((r) => setTimeout(r, 5000)).then(() => {\n throw new Error('API timeout after 5000ms');\n });\n const modified = await Promise.race([result, timeout]);\n const fee = modified.getInfoKey('txfee');\n if (fee) {\n await this.showFee(modified, String(fee));\n }\n return modified;\n }\n catch (error) {\n if (error[AbortPrepare]) {\n this.hide();\n throw error;\n }\n else {\n // eslint-disable-next-line no-console\n console.info(`Skipping resource provider: ${error.message || error}`);\n if (error[SkipFee]) {\n const modified = request.clone();\n modified.setInfoKey('no_fee', true, 'bool');\n return modified;\n }\n }\n }\n return request;\n }\n recoverError(error, request) {\n if (request === this.activeRequest &&\n (error['code'] === 'E_DELIVERY' || error['code'] === 'E_TIMEOUT') &&\n error['session']) {\n // recover from session errors by displaying a manual sign dialog\n if (this.showingManual) {\n // already showing recovery sign\n return true;\n }\n const session = error['session'];\n if (error[SkipToManual]) {\n this.showRecovery(request, session);\n return true;\n }\n const deviceName = session.metadata.name;\n let subtitle;\n if (deviceName && deviceName.length > 0) {\n subtitle = `Unable to deliver the request to “${deviceName}”.`;\n }\n else {\n subtitle = 'Unable to deliver the request to the linked wallet.';\n }\n subtitle += ` ${error.message}.`;\n this.showDialog({\n title: 'Unable to reach device',\n subtitle,\n type: 'warning',\n action: {\n text: 'Sign manually',\n callback: () => {\n this.showRecovery(request, session);\n },\n },\n });\n return true;\n }\n return false;\n }\n onSuccess(request) {\n if (request === this.activeRequest) {\n this.clearTimers();\n if (this.requestStatus) {\n this.showDialog({\n title: 'Success!',\n subtitle: request.isIdentity() ? 'Login completed.' : 'Transaction signed.',\n type: 'success',\n });\n this.closeTimer = setTimeout(() => {\n this.hide();\n }, 1.5 * 1000);\n }\n else {\n this.hide();\n }\n }\n }\n onFailure(request, error) {\n if (request === this.activeRequest && error['code'] !== 'E_CANCEL') {\n this.clearTimers();\n if (this.requestStatus) {\n let errorMessage;\n if (isInstanceOf(error, APIError)) {\n if (error.name === 'eosio_assert_message_exception') {\n errorMessage = error.details[0].message;\n }\n else if (error.details.length > 0) {\n errorMessage = error.details.map((d) => d.message).join('\\n');\n }\n else {\n errorMessage = error.message;\n }\n }\n else {\n errorMessage = error.message || String(error);\n }\n this.showDialog({\n title: 'Transaction Error',\n subtitle: errorMessage,\n type: 'error',\n });\n }\n else {\n this.hide();\n }\n }\n else {\n this.hide();\n }\n }\n userAgent() {\n return `BrowserTransport/${BrowserTransport.version} ${navigator.userAgent}`;\n }\n}\n/** Package version. */\nBrowserTransport.version = '3.2.4'; // replaced by build script\nfunction waitForEvent(element, eventName, timeout) {\n return new Promise((resolve, reject) => {\n const listener = (event) => {\n element.removeEventListener(eventName, listener);\n resolve(event);\n };\n element.addEventListener(eventName, listener);\n if (timeout) {\n setTimeout(() => {\n element.removeEventListener(eventName, listener);\n reject(new Error(`Timed out waiting for ${eventName}`));\n }, timeout);\n }\n });\n}\nfunction countdownFormat(date) {\n const timeLeft = date.getTime() - Date.now();\n if (timeLeft > 0) {\n return new Date(timeLeft).toISOString().substr(14, 5);\n }\n return '00:00';\n}\nfunction emptyElement(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n}\n/** Generate a return url that Anchor will redirect back to w/o reload. */\nfunction generateReturnUrl() {\n if (isChromeiOS()) {\n // google chrome on iOS will always open new tab so we just ask it to open again as a workaround\n return 'googlechrome://';\n }\n if (isFirefoxiOS()) {\n // same for firefox\n return 'firefox:://';\n }\n if (isAppleHandheld() && isBrave()) {\n // and brave ios\n return 'brave://';\n }\n if (isAppleHandheld()) {\n // return url with unique fragment required for iOS safari to trigger the return url\n const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let rv = window.location.href.split('#')[0] + '#';\n for (let i = 0; i < 8; i++) {\n rv += alphabet.charAt(Math.floor(Math.random() * alphabet.length));\n }\n return rv;\n }\n if (isAndroid() && isFirefox()) {\n return 'android-intent://org.mozilla.firefox';\n }\n if (isAndroid() && isEdge()) {\n return 'android-intent://com.microsoft.emmx';\n }\n if (isAndroid() && isOpera()) {\n return 'android-intent://com.opera.browser';\n }\n if (isAndroid() && isBrave()) {\n return 'android-intent://com.brave.browser';\n }\n if (isAndroid() && isAndroidWebView()) {\n return 'android-intent://webview';\n }\n if (isAndroid() && isChromeMobile()) {\n return 'android-intent://com.android.chrome';\n }\n return window.location.href;\n}\nfunction isAppleHandheld() {\n return /iP(ad|od|hone)/i.test(navigator.userAgent);\n}\nfunction isChromeiOS() {\n return /CriOS/.test(navigator.userAgent);\n}\nfunction isChromeMobile() {\n return /Chrome\\/[.0-9]* Mobile/i.test(navigator.userAgent);\n}\nfunction isFirefox() {\n return /Firefox/i.test(navigator.userAgent);\n}\nfunction isFirefoxiOS() {\n return /FxiOS/.test(navigator.userAgent);\n}\nfunction isOpera() {\n return /OPR/.test(navigator.userAgent) || /Opera/.test(navigator.userAgent);\n}\nfunction isEdge() {\n return /Edg/.test(navigator.userAgent);\n}\nfunction isBrave() {\n return navigator['brave'] && typeof navigator['brave'].isBrave === 'function';\n}\nfunction isAndroid() {\n return /Android/.test(navigator.userAgent);\n}\nfunction isAndroidWebView() {\n return /wv/.test(navigator.userAgent);\n}\nfunction copyToClipboard(text) {\n if (navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(text);\n }\n else {\n const el = document.createElement('textarea');\n try {\n el.setAttribute('contentEditable', '');\n el.value = text;\n document.body.appendChild(el);\n el.select();\n const range = document.createRange();\n range.selectNodeContents(el);\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n el.setSelectionRange(0, el.value.length);\n document.execCommand('copy');\n }\n finally {\n document.body.removeChild(el);\n }\n }\n}\n\nexport default BrowserTransport;\n//# sourceMappingURL=anchor-link-browser-transport.m.js.map\n","import {Link, ChainId, LinkSession, PermissionLevel} from 'anchor-link'\nimport Transport from 'anchor-link-browser-transport'\nimport {get} from 'svelte/store'\n\nimport {storeAccount} from './stores/account-provider'\nimport {getClient} from './api-client'\nimport {appId, chains} from './config'\nimport {activeSession, availableSessions} from './store'\n\nconst transport = new Transport({\n requestStatus: false,\n})\nconst link = new Link({\n chains: chains.map((chain) => ({chainId: chain.chainId, nodeUrl: getClient(chain)})),\n transport,\n})\n\n/** Anchor Link session object or identifier. */\nexport interface SessionLike {\n auth: PermissionLevel\n chainId: ChainId\n}\n\n/** Compare two session-ish objects. */\nexport function sessionEquals(a: SessionLike, b: SessionLike) {\n return a.auth.equals(b.auth) && a.chainId.equals(b.chainId)\n}\n\n/** Restore previous sessions. */\nexport async function init() {\n const list = await link.listSessions(appId)\n let session: LinkSession | null = null\n if (window.location.search.includes('auth=')) {\n // load active session from query string if present\n // prompt for login if an auth is requested but not available\n const qs = new URLSearchParams(window.location.search)\n const auth = PermissionLevel.from(qs.get('auth') || '')\n let chainId: ChainId | undefined\n if (qs.has('chain')) {\n chainId = ChainId.from(qs.get('chain') || '')\n }\n session = await link.restoreSession(appId, auth, chainId)\n const removeQuery = () => {\n if (window.history) {\n window.history.replaceState(null, '', window.location.pathname)\n }\n }\n if (!session) {\n return login().finally(removeQuery) // keep qs until after login so anchor redirects back correctly\n } else {\n removeQuery()\n }\n } else {\n session = await link.restoreSession(appId)\n }\n availableSessions.set(list)\n if (session) {\n activeSession.set(session)\n }\n}\n\n/** Create a new session. */\nexport async function login() {\n const result = await link.login(appId)\n if (result.account) {\n // populate account cache with the account returned by login so we don't need to re-fetch it\n storeAccount(result.account, result.session.chainId)\n }\n const list = await link.listSessions(appId)\n availableSessions.set(list)\n activeSession.set(result.session)\n}\n\n/** Remove existing session. */\nexport async function logout(id: SessionLike) {\n const session = await link.restoreSession(appId, id.auth, id.chainId)\n if (session) {\n await session.remove()\n const list = await link.listSessions(appId)\n let active = get(activeSession)\n if (active && sessionEquals(active, session)) {\n // update active session if we logged out from it\n if (list.length > 0) {\n activate(list[0])\n } else {\n activeSession.set(undefined)\n }\n }\n availableSessions.set(list)\n }\n}\n\n/** Set active session. */\nexport async function activate(id: SessionLike) {\n const session = await link.restoreSession(appId, id.auth, id.chainId)\n if (!session) {\n throw new Error('No such session')\n }\n activeSession.set(session)\n}\n","\n\n\n\n\n\n\n {#if icons}\n {@html (icons[name] || icons['help-circle']).toSvg()}\n {/if}\n\n","\n\n\n\n\n {#if style === 'effect'}\n \n {/if}\n \n Click me\n \n\n","\nText\n","import {writable} from 'svelte/store'\n\ntype Toast = {\n id: number\n dismissible: boolean\n timeout: number\n title?: string\n message: string\n}\n\nlet counter = 0\nexport const toasts = writable([])\n\nexport const dismissToast = (id: number) => {\n toasts.update((all) => all.filter((t) => t.id !== id))\n}\n\nexport const addToast = ({\n title,\n message,\n timeout = 3000,\n dismissible = true,\n}: {\n title?: string\n message: string\n timeout?: number\n dismissible?: boolean\n}) => {\n const id = counter++\n\n toasts.update((all) => [{id, title, message, timeout, dismissible}, ...all])\n\n setTimeout(() => dismissToast(id), timeout)\n}\n","\n\n\n\n{#if asLink}\n \n{:else}\n
\n \n
\n{/if}\n","\n\n\n\n
\n \n
\n","\n\n\n\n{#if $activeSession}\n
\n \n {#each $groupings as group}\n
\n
toggle(group.chainId)}>\n {group.name} ({group.sessions.length})\n \n
\n
    \n {#each group.sessions as session}\n
  • \n
    onSelect(session)}>\n \n
    \n
    onSelect(session)}>\n {session.auth.actor}\n
    \n
    logout(session)}>\n \n
    \n
  • \n {/each}\n
\n
\n {/each}\n
\n{:else}\n
\n \n
\n \n
\n

Supported blockchains

\n

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

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

\n {title}\n

\n

\n {subtitle}\n

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

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

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

Loading Request...

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

Account Creation Request

\n

Someone has requested the creation of a new account.

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

Transaction Failed

\n

{errorMessage}

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

\n {errorMessage}\n

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

\n {header}\n

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

Select Token

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

No tokens found...

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

{header}

\n {#if subheader}\n

{subheader}

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