{"version":3,"file":"js/dist/main.79bade478b85621aada2.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:///../../../../node_modules/svelte/motion/index.mjs","webpack:///button.svelte","webpack:///text.svelte","webpack:///login.svelte","webpack:///segment.svelte","webpack:///list.svelte","webpack:///sidebar.svelte","webpack:///header.svelte","webpack:///media-query.svelte","webpack:///content.svelte","webpack:///index.svelte","webpack:///page.svelte","webpack:///group.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:///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:///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:///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 = \"b2af281\";\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","import { writable } from '../store/index.mjs';\nimport { now, loop, assign } from '../internal/index.mjs';\nimport { linear } from '../easing/index.mjs';\n\nfunction is_date(obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n}\n\nfunction tick_spring(ctx, last_value, current_value, target_value) {\n if (typeof current_value === 'number' || is_date(current_value)) {\n // @ts-ignore\n const delta = target_value - current_value;\n // @ts-ignore\n const velocity = (current_value - last_value) / (ctx.dt || 1 / 60); // guard div by 0\n const spring = ctx.opts.stiffness * delta;\n const damper = ctx.opts.damping * velocity;\n const acceleration = (spring - damper) * ctx.inv_mass;\n const d = (velocity + acceleration) * ctx.dt;\n if (Math.abs(d) < ctx.opts.precision && Math.abs(delta) < ctx.opts.precision) {\n return target_value; // settled\n }\n else {\n ctx.settled = false; // signal loop to keep ticking\n // @ts-ignore\n return is_date(current_value) ?\n new Date(current_value.getTime() + d) : current_value + d;\n }\n }\n else if (Array.isArray(current_value)) {\n // @ts-ignore\n return current_value.map((_, i) => tick_spring(ctx, last_value[i], current_value[i], target_value[i]));\n }\n else if (typeof current_value === 'object') {\n const next_value = {};\n for (const k in current_value) {\n // @ts-ignore\n next_value[k] = tick_spring(ctx, last_value[k], current_value[k], target_value[k]);\n }\n // @ts-ignore\n return next_value;\n }\n else {\n throw new Error(`Cannot spring ${typeof current_value} values`);\n }\n}\nfunction spring(value, opts = {}) {\n const store = writable(value);\n const { stiffness = 0.15, damping = 0.8, precision = 0.01 } = opts;\n let last_time;\n let task;\n let current_token;\n let last_value = value;\n let target_value = value;\n let inv_mass = 1;\n let inv_mass_recovery_rate = 0;\n let cancel_task = false;\n function set(new_value, opts = {}) {\n target_value = new_value;\n const token = current_token = {};\n if (value == null || opts.hard || (spring.stiffness >= 1 && spring.damping >= 1)) {\n cancel_task = true; // cancel any running animation\n last_time = now();\n last_value = new_value;\n store.set(value = target_value);\n return Promise.resolve();\n }\n else if (opts.soft) {\n const rate = opts.soft === true ? .5 : +opts.soft;\n inv_mass_recovery_rate = 1 / (rate * 60);\n inv_mass = 0; // infinite mass, unaffected by spring forces\n }\n if (!task) {\n last_time = now();\n cancel_task = false;\n task = loop(now => {\n if (cancel_task) {\n cancel_task = false;\n task = null;\n return false;\n }\n inv_mass = Math.min(inv_mass + inv_mass_recovery_rate, 1);\n const ctx = {\n inv_mass,\n opts: spring,\n settled: true,\n dt: (now - last_time) * 60 / 1000\n };\n const next_value = tick_spring(ctx, last_value, value, target_value);\n last_time = now;\n last_value = value;\n store.set(value = next_value);\n if (ctx.settled) {\n task = null;\n }\n return !ctx.settled;\n });\n }\n return new Promise(fulfil => {\n task.promise.then(() => {\n if (token === current_token)\n fulfil();\n });\n });\n }\n const spring = {\n set,\n update: (fn, opts) => set(fn(target_value, value), opts),\n subscribe: store.subscribe,\n stiffness,\n damping,\n precision\n };\n return spring;\n}\n\nfunction get_interpolator(a, b) {\n if (a === b || a !== a)\n return () => a;\n const type = typeof a;\n if (type !== typeof b || Array.isArray(a) !== Array.isArray(b)) {\n throw new Error('Cannot interpolate values of different type');\n }\n if (Array.isArray(a)) {\n const arr = b.map((bi, i) => {\n return get_interpolator(a[i], bi);\n });\n return t => arr.map(fn => fn(t));\n }\n if (type === 'object') {\n if (!a || !b)\n throw new Error('Object cannot be null');\n if (is_date(a) && is_date(b)) {\n a = a.getTime();\n b = b.getTime();\n const delta = b - a;\n return t => new Date(a + t * delta);\n }\n const keys = Object.keys(b);\n const interpolators = {};\n keys.forEach(key => {\n interpolators[key] = get_interpolator(a[key], b[key]);\n });\n return t => {\n const result = {};\n keys.forEach(key => {\n result[key] = interpolators[key](t);\n });\n return result;\n };\n }\n if (type === 'number') {\n const delta = b - a;\n return t => a + t * delta;\n }\n throw new Error(`Cannot interpolate ${type} values`);\n}\nfunction tweened(value, defaults = {}) {\n const store = writable(value);\n let task;\n let target_value = value;\n function set(new_value, opts) {\n if (value == null) {\n store.set(value = new_value);\n return Promise.resolve();\n }\n target_value = new_value;\n let previous_task = task;\n let started = false;\n let { delay = 0, duration = 400, easing = linear, interpolate = get_interpolator } = assign(assign({}, defaults), opts);\n if (duration === 0) {\n if (previous_task) {\n previous_task.abort();\n previous_task = null;\n }\n store.set(value = target_value);\n return Promise.resolve();\n }\n const start = now() + delay;\n let fn;\n task = loop(now => {\n if (now < start)\n return true;\n if (!started) {\n fn = interpolate(value, new_value);\n if (typeof duration === 'function')\n duration = duration(value, new_value);\n started = true;\n }\n if (previous_task) {\n previous_task.abort();\n previous_task = null;\n }\n const elapsed = now - start;\n if (elapsed > duration) {\n store.set(value = new_value);\n return false;\n }\n // @ts-ignore\n store.set(value = fn(easing(elapsed / duration)));\n return true;\n });\n return task.promise;\n }\n return {\n set,\n update: (fn, opts) => set(fn(target_value, value), opts),\n subscribe: store.subscribe\n };\n}\n\nexport { spring, tweened };\n","\n\n\n\n\n {#if !isDisabled}\n \n {/if}\n \n Click me\n \n\n","\nText\n","\n\n\n\n
\n \n {#if error}\n

Unable to login: {error.message}

\n {/if}\n
\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

\n {title}\n

\n

\n {subtitle}\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\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{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 {/if}\n {:else}\n

\n To approve this request, either scan the QR code above with a compatible\n wallet or use the button below to manually sign this request with Anchor.\n

\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 {/if}\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\n\n {toAccount}\n\n","\n\n\n\n\n {quantity}\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