diff --git a/packages/ethereum-wallets/dist/cjs/core/src/index.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/index.d.ts deleted file mode 100644 index 18e086590..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/index.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type { WalletSelector, WalletSelectorParams, WalletSelectorEvents, WalletSelectorStore, } from "./lib/wallet-selector.types"; -export { setupWalletSelector } from "./lib/wallet-selector.js"; -export type { Network, NetworkId } from "./lib/options.types"; -export type { Subscription, StorageService, JsonStorageService, EventEmitterService, } from "./lib/services"; -export { EventEmitter } from "./lib/services"; -export type { Optional } from "./lib/utils.types"; -export type { WalletSelectorState, ContractState, ModuleState, AccountState, } from "./lib/store.types"; -export type { WalletModuleFactory, WalletModule, WalletBehaviourFactory, WalletBehaviourOptions, Wallet, WalletType, WalletMetadata, WalletEvents, SignInParams, BrowserWalletMetadata, BrowserWalletBehaviour, BrowserWallet, InjectedWalletMetadata, InjectedWalletBehaviour, InjectedWallet, InstantLinkWalletMetadata, InstantLinkWalletBehaviour, InstantLinkWallet, HardwareWalletMetadata, HardwareWalletSignInParams, HardwareWalletBehaviour, HardwareWallet, HardwareWalletAccount, BridgeWalletMetadata, BridgeWalletBehaviour, BridgeWallet, VerifiedOwner, VerifyOwnerParams, Account, Transaction, Action, ActionType, CreateAccountAction, DeployContractAction, FunctionCallAction, TransferAction, StakeAction, AddKeyAction, DeleteKeyAction, DeleteAccountAction, AddKeyPermission, AccountImportData, SignedMessage, SignMessageParams, } from "./lib/wallet"; -export type { FinalExecutionOutcome } from "@near-js/types"; -export { waitFor, getActiveAccount, isCurrentBrowserSupported, verifyFullKeyBelongsToUser, verifySignature, serializeNep413, } from "./lib/helpers"; -export { translate, allowOnlyLanguage } from "./lib/translate/translate"; -export { mockWallet } from './lib/testUtils'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/index.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/index.d.ts.map deleted file mode 100644 index f98229043..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,EACN,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/index.js b/packages/ethereum-wallets/dist/cjs/core/src/index.js deleted file mode 100644 index cfb828bf8..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/index.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.mockWallet = exports.allowOnlyLanguage = exports.translate = exports.serializeNep413 = exports.verifySignature = exports.verifyFullKeyBelongsToUser = exports.isCurrentBrowserSupported = exports.getActiveAccount = exports.waitFor = exports.EventEmitter = exports.setupWalletSelector = void 0; -var wallet_selector_js_1 = require("./lib/wallet-selector.js"); -Object.defineProperty(exports, "setupWalletSelector", { enumerable: true, get: function () { return wallet_selector_js_1.setupWalletSelector; } }); -var services_1 = require("./lib/services"); -Object.defineProperty(exports, "EventEmitter", { enumerable: true, get: function () { return services_1.EventEmitter; } }); -var helpers_1 = require("./lib/helpers"); -Object.defineProperty(exports, "waitFor", { enumerable: true, get: function () { return helpers_1.waitFor; } }); -Object.defineProperty(exports, "getActiveAccount", { enumerable: true, get: function () { return helpers_1.getActiveAccount; } }); -Object.defineProperty(exports, "isCurrentBrowserSupported", { enumerable: true, get: function () { return helpers_1.isCurrentBrowserSupported; } }); -Object.defineProperty(exports, "verifyFullKeyBelongsToUser", { enumerable: true, get: function () { return helpers_1.verifyFullKeyBelongsToUser; } }); -Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return helpers_1.verifySignature; } }); -Object.defineProperty(exports, "serializeNep413", { enumerable: true, get: function () { return helpers_1.serializeNep413; } }); -var translate_1 = require("./lib/translate/translate"); -Object.defineProperty(exports, "translate", { enumerable: true, get: function () { return translate_1.translate; } }); -Object.defineProperty(exports, "allowOnlyLanguage", { enumerable: true, get: function () { return translate_1.allowOnlyLanguage; } }); -var testUtils_1 = require("./lib/testUtils"); -Object.defineProperty(exports, "mockWallet", { enumerable: true, get: function () { return testUtils_1.mockWallet; } }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/constants.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/constants.d.ts deleted file mode 100644 index ea8f9e98c..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/constants.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export declare const PACKAGE_NAME = "near-wallet-selector"; -export declare const RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -export declare const REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -export declare const REMEMBER_RECENT_WALLETS_STATE: { - ENABLED: string; - DISABLED: string; -}; -export declare const CONTRACT = "contract"; -export declare const PENDING_CONTRACT = "contract:pending"; -export declare const SELECTED_WALLET_ID = "selectedWalletId"; -export declare const PENDING_SELECTED_WALLET_ID = "selectedWalletId:pending"; -//# sourceMappingURL=constants.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/constants.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/constants.d.ts.map deleted file mode 100644 index 30185737c..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/constants.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,yBAAyB,CAAC;AACnD,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,0BAA0B,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/constants.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/constants.js deleted file mode 100644 index 50899a58d..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/constants.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PENDING_SELECTED_WALLET_ID = exports.SELECTED_WALLET_ID = exports.PENDING_CONTRACT = exports.CONTRACT = exports.REMEMBER_RECENT_WALLETS_STATE = exports.REMEMBER_RECENT_WALLETS = exports.RECENTLY_SIGNED_IN_WALLETS = exports.PACKAGE_NAME = void 0; -exports.PACKAGE_NAME = "near-wallet-selector"; -exports.RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -exports.REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -exports.REMEMBER_RECENT_WALLETS_STATE = { - ENABLED: "enabled", - DISABLED: "disabled", -}; -exports.CONTRACT = "contract"; -exports.PENDING_CONTRACT = "contract:pending"; -exports.SELECTED_WALLET_ID = `selectedWalletId`; -exports.PENDING_SELECTED_WALLET_ID = `selectedWalletId:pending`; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/detect-browser.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/detect-browser.d.ts deleted file mode 100644 index 6c6f4c418..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/detect-browser.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Browser = "aol" | "edge" | "edge-ios" | "yandexbrowser" | "kakaotalk" | "samsung" | "silk" | "miui" | "beaker" | "edge-chromium" | "chrome" | "chromium-webview" | "phantomjs" | "crios" | "firefox" | "fxios" | "opera-mini" | "opera" | "pie" | "netfront" | "ie" | "bb10" | "android" | "ios" | "safari" | "facebook" | "instagram" | "ios-webview" | "curl" | "searchbot"; -export declare const isCurrentBrowserSupported: (supportedBrowser: Array) => boolean; -//# sourceMappingURL=detect-browser.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/detect-browser.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/detect-browser.d.ts.map deleted file mode 100644 index 656e85614..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/detect-browser.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"detect-browser.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/detect-browser.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GACf,KAAK,GACL,MAAM,GACN,UAAU,GACV,eAAe,GACf,WAAW,GACX,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,OAAO,GACP,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO,GACP,KAAK,GACL,UAAU,GACV,IAAI,GACJ,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,UAAU,GACV,WAAW,GACX,aAAa,GACb,MAAM,GACN,WAAW,CAAC;AAoEhB,eAAO,MAAM,yBAAyB,qBAClB,KAAK,CAAC,OAAO,CAAC,KAC/B,OAeF,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/detect-browser.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/detect-browser.js deleted file mode 100644 index a03402ab2..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/detect-browser.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; -/* eslint-disable no-useless-escape */ -// https://github.com/DamonOehlman/detect-browser/blob/master/src/index.ts -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isCurrentBrowserSupported = void 0; -const SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/; -const userAgentRules = [ - ["aol", /AOLShield\/([0-9\._]+)/], - ["edge", /Edge\/([0-9\._]+)/], - ["edge-ios", /EdgiOS\/([0-9\._]+)/], - ["yandexbrowser", /YaBrowser\/([0-9\._]+)/], - ["kakaotalk", /KAKAOTALK\s([0-9\.]+)/], - ["samsung", /SamsungBrowser\/([0-9\.]+)/], - ["silk", /\bSilk\/([0-9._-]+)\b/], - ["miui", /MiuiBrowser\/([0-9\.]+)$/], - ["beaker", /BeakerBrowser\/([0-9\.]+)/], - ["edge-chromium", /EdgA?\/([0-9\.]+)/], - [ - "chromium-webview", - /(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/, - ], - ["chrome", /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/], - ["phantomjs", /PhantomJS\/([0-9\.]+)(:?\s|$)/], - ["crios", /CriOS\/([0-9\.]+)(:?\s|$)/], - ["firefox", /Firefox\/([0-9\.]+)(?:\s|$)/], - ["fxios", /FxiOS\/([0-9\.]+)/], - ["opera-mini", /Opera Mini.*Version\/([0-9\.]+)/], - ["opera", /Opera\/([0-9\.]+)(?:\s|$)/], - ["opera", /OPR\/([0-9\.]+)(:?\s|$)/], - ["pie", /^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/], - [ - "pie", - /^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/, - ], - ["netfront", /^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/], - ["ie", /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/], - ["ie", /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/], - ["ie", /MSIE\s(7\.0)/], - ["bb10", /BB10;\sTouch.*Version\/([0-9\.]+)/], - ["android", /Android\s([0-9\.]+)/], - ["ios", /Version\/([0-9\._]+).*Mobile.*Safari.*/], - ["safari", /Version\/([0-9\._]+).*Safari/], - ["facebook", /FB[AS]V\/([0-9\.]+)/], - ["instagram", /Instagram\s([0-9\.]+)/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Mobile/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Gecko\)$/], - ["curl", /^curl\/([0-9\.]+)$/], - ["searchbot", SEARCHBOX_UA_REGEX], -]; -const matchUserAgent = (ua) => { - return (ua !== "" && - userAgentRules.reduce((matched, [browser, regex]) => { - if (matched) { - return matched; - } - const uaMatch = regex.exec(ua); - return !!uaMatch && [browser, uaMatch]; - }, false)); -}; -const isCurrentBrowserSupported = (supportedBrowser) => { - if (typeof navigator === "undefined") { - return false; - } - const matchedRule = matchUserAgent(navigator.userAgent); - if (!matchedRule) { - return false; - } - const [name] = matchedRule; - if (name === "searchbot") { - return false; - } - return !!supportedBrowser.find((item) => item === name); -}; -exports.isCurrentBrowserSupported = isCurrentBrowserSupported; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts deleted file mode 100644 index 6741ffe8c..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { AccountState, WalletSelectorState } from "../store.types"; -export declare const getActiveAccount: (state: WalletSelectorState) => AccountState | null; -//# sourceMappingURL=getActiveAccount.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts.map deleted file mode 100644 index 69c3c7609..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"getActiveAccount.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/getActiveAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,eAAO,MAAM,gBAAgB,UACpB,mBAAmB,KACzB,YAAY,GAAG,IAEjB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/getActiveAccount.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/getActiveAccount.js deleted file mode 100644 index 0da744cc5..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/getActiveAccount.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getActiveAccount = void 0; -const getActiveAccount = (state) => { - return state.accounts.find((account) => account.active) || null; -}; -exports.getActiveAccount = getActiveAccount; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/index.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/index.d.ts deleted file mode 100644 index 78cea0fee..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./waitFor"; -export * from "./getActiveAccount"; -export * from "./detect-browser"; -export * from "./verify-signature/verify-signature"; -export * from "./verify-signature/payload"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/index.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/index.d.ts.map deleted file mode 100644 index e1ce0874b..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/index.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/index.js deleted file mode 100644 index eb80ab43a..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/index.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./waitFor"), exports); -__exportStar(require("./getActiveAccount"), exports); -__exportStar(require("./detect-browser"), exports); -__exportStar(require("./verify-signature/verify-signature"), exports); -__exportStar(require("./verify-signature/payload"), exports); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts deleted file mode 100644 index 207d814af..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Schema } from "borsh"; -import type { SignMessageParams } from "../../wallet"; -export interface Payload { - message: string; - nonce: Buffer; - recipient: string; - tag?: number; - callbackUrl?: string; -} -export declare const createPayload: (data: SignMessageParams) => Payload; -export declare const payloadSchema: Schema; -export declare const serializeNep413: (signMessageParams: SignMessageParams) => Buffer; -//# sourceMappingURL=payload.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts.map deleted file mode 100644 index 43755b9b9..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAY,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,eAAO,MAAM,aAAa,SAAU,iBAAiB,KAAG,OAUvD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAe3B,CAAC;AAaF,eAAO,MAAM,eAAe,sBAAuB,iBAAiB,KAAG,MAGtE,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/payload.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/payload.js deleted file mode 100644 index 5655fd8cd..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/payload.js +++ /dev/null @@ -1,102 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.serializeNep413 = exports.payloadSchema = exports.createPayload = void 0; -const borsh_1 = require("borsh"); -const createPayload = (data) => { - return { - message: data.message, - nonce: data.nonce, - recipient: data.recipient, - // The tag's value is a hardcoded value as per - // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) - tag: 2147484061, // NEP413 tag - callbackUrl: data.callbackUrl || undefined, - }; -}; -exports.createPayload = createPayload; -exports.payloadSchema = { - struct: { - tag: "u32", - message: "string", - nonce: { - array: { - type: "u8", - len: 32 - } - }, // Assuming this is a 32-byte buffer - recipient: "string", - callbackUrl: { - option: "string" - }, - } -}; -// const payloadSchema: Schema = { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], // Assuming this is a 32-byte buffer -// ["recipient", "string"], -// ["callbackUrl", { kind: "option", type: "string" }], -// ], -// }; -const serializeNep413 = (signMessageParams) => { - const payload = (0, exports.createPayload)(signMessageParams); - return Buffer.from((0, borsh_1.serialize)(exports.payloadSchema, payload)); -}; -exports.serializeNep413 = serializeNep413; -// export const serializeNep413 = (signMessageParams: SignMessageParams): Buffer => { -// const payload = createPayload(signMessageParams); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; -// import type { SignMessageParams } from "../../wallet"; -// import { serialize } from "borsh"; -// -// export class Payload { -// tag: number; -// message: string; -// nonce: Buffer; -// recipient: string; -// callbackUrl?: string; -// -// constructor(data: SignMessageParams) { -// // The tag's value is a hardcoded value as per -// // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) -// this.tag = 2147484061; -// this.message = data.message; -// this.nonce = data.nonce; -// this.recipient = data.recipient; -// if (data.callbackUrl) { -// this.callbackUrl = data.callbackUrl; -// } -// } -// } -// -// export const payloadSchema = new Map([ -// [ -// Payload, -// { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], -// ["recipient", "string"], -// [ -// "callbackUrl", -// { -// kind: "option", -// type: "string", -// }, -// ], -// ], -// }, -// ], -// ]); -// -// export const serializeNep413 = ( -// signMessageParams: SignMessageParams -// ): Buffer => { -// const payload = new Payload({ ...signMessageParams }); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts deleted file mode 100644 index 45cd3629b..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { VerifyFullKeyBelongsToUserParams, VerifySignatureParams } from "./verify-signature.types"; -export declare const verifySignature: ({ publicKey, signature, message, nonce, recipient, callbackUrl, }: VerifySignatureParams) => boolean; -export declare const verifyFullKeyBelongsToUser: ({ publicKey, accountId, network, }: VerifyFullKeyBelongsToUserParams) => Promise; -//# sourceMappingURL=verify-signature.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map deleted file mode 100644 index 6e0eeae8d..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gCAAgC,EAChC,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAOlC,eAAO,MAAM,eAAe,sEAOzB,qBAAqB,YAkBvB,CAAC;AAiBF,eAAO,MAAM,0BAA0B,uCAIpC,gCAAgC,qBAQlC,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.js deleted file mode 100644 index 5d00297d2..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.verifyFullKeyBelongsToUser = exports.verifySignature = void 0; -const borsh_1 = require("borsh"); -const js_sha256_1 = require("js-sha256"); -const payload_1 = require("./payload"); -const crypto_1 = require("../../../../../../../near-api-js/packages/crypto"); -// import {KeyType, PublicKey, publicKeyFrom} from "@near-js/crypto"; -const providers_1 = require("@near-js/providers"); -const verifySignature = ({ publicKey, signature, message, nonce, recipient, callbackUrl, }) => { - // Reconstruct the payload that was **actually signed** - const payload = { message, nonce, recipient, callbackUrl }; - // Serialize payload based on payloadSchema - const borshPayload = (0, borsh_1.serialize)(payload_1.payloadSchema, payload); - // Hash the payload as in the NEP0413 referenced example - // https://github.com/near/NEPs/blob/master/neps/nep-0413.md#references - // https://github.com/gagdiez/near-login/blob/main/authenticate/wallet-authenticate.js#L21 - const hashedPayload = Uint8Array.from(js_sha256_1.sha256.array(borshPayload)); - // Convert real signature to buffer base64 - const realSignature = Buffer.from(signature, "base64"); - const pk = (0, crypto_1.publicKeyFrom)(publicKey); - // Verify the signature - return pk.verify(hashedPayload, realSignature); -}; -exports.verifySignature = verifySignature; -const fetchAllUserKeys = async ({ accountId, network, publicKey, }) => { - const provider = new providers_1.JsonRpcProvider({ url: network.nodeUrl }); - const key = await provider.query({ - request_type: "view_access_key", - account_id: accountId, - finality: "final", - public_key: publicKey, - }); - return key; -}; -const verifyFullKeyBelongsToUser = async ({ publicKey, accountId, network, }) => { - const { permission } = await fetchAllUserKeys({ - accountId, - network, - publicKey, - }); - return permission === "FullAccess"; -}; -exports.verifyFullKeyBelongsToUser = verifyFullKeyBelongsToUser; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts deleted file mode 100644 index 50312b798..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Network } from "../../options.types"; -import { KeyType } from "@near-js/crypto"; -export interface IPublicKey { - keyType: KeyType; - data: Uint8Array; -} -export interface VerifySignatureParams { - publicKey: IPublicKey; - signature: string; - message: string; - nonce: Buffer; - recipient: string; - callbackUrl?: string; -} -export interface VerifyFullKeyBelongsToUserParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -export interface ViewAccessKeyParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -//# sourceMappingURL=verify-signature.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map deleted file mode 100644 index ad3eabbdf..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/waitFor.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/waitFor.d.ts deleted file mode 100644 index c73405a42..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/waitFor.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export declare const waitFor: (cb: () => boolean, opts?: { - timeout?: number; - interval?: number; -}) => Promise; -//# sourceMappingURL=waitFor.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/waitFor.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/waitFor.d.ts.map deleted file mode 100644 index 01d36b6d7..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/waitFor.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"waitFor.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/waitFor.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,OAAO,OACd,MAAM,OAAO,SACX;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,qBAU9C,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/waitFor.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/waitFor.js deleted file mode 100644 index 8d37d4cef..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/helpers/waitFor.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.waitFor = void 0; -const wait = (ms) => { - return new Promise((resolve) => setTimeout(resolve, ms)); -}; -const poll = async (cb, interval, remaining) => { - const result = cb(); - if (result) { - return result; - } - if (!remaining) { - throw new Error("Exceeded timeout"); - } - return wait(interval).then(() => poll(cb, interval, remaining - 1)); -}; -const waitFor = async (cb, opts = {}) => { - const { timeout = 100, interval = 50 } = opts; - return Promise.race([ - wait(timeout).then(() => { - throw new Error("Exceeded timeout"); - }), - poll(cb, interval, Math.floor(timeout / interval)), - ]); -}; -exports.waitFor = waitFor; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/ar.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/ar.json deleted file mode 100644 index ebe6801b2..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/ar.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "صل محفظتك", - "whatIsAWallet": "ما هي المحفظة؟", - "secureAndManage": "تأمين وإدارة الممتلكات الرقمية الخاصة بك", - "safelyStore": "قم بتخزين و ارسال عملاتك و أصولك الرقمية بأمان", - "logInToAny": "سجل الدخول إلى أي تطبيق يستخدم نير", - "noNeedToCreate": ".لا داعي لإنشاء حساب جديد. فقط قم بتوصيل محفظتك وانطلق", - "getAWallet": "احصل على محفظة", - "useAWallet": "استخدم محفظة لتأمين وإدارة أصول نير الخاصة بك، وادخل لأي تطبيق يستخدم نير دون الحاجة إلى اسم المستخدم وكلمةالمرور", - "connectionFailed": "اتصال فاشل", - "connectionSuccessful": "اتصال ناجح", - "rememberWallet": "تذكر المحافظ", - "connected": "متصل", - "connectingTo": "جاري الاتصال ب", - "connectingMessage": { - "injected": "وافق على الاتصال في نافذة الإضافة", - "browser": "وافق على الاتصال في المحفظة بعد إعادة توجيه", - "hardware": "وافق على الاتصال في جهاز ليدجر", - "bridge": "وافق على الاتصال في المحفظة" - } - }, - "ledger": { - "connectWithLedger": "اتصل مع ليدجر", - "makeSureYourLedger": "تأكد أن ليدجر متصل بأمان, و أن تطبيق نير مفتوح في جهازك", - "continue": "تابع", - "specifyHDPath": "حدد مسار الحساب", - "enterYourPreferredHDPath": "أدخل مسار الحساب المفضل، ثم ابحث عن كل الحسابات النشطة", - "scan": "مسح", - "retry": "أعد المحاولة", - "ledgerIsNotAvailable": "ليدجر غير متوفر", - "accessDeniedToUseLedgerDevice": "تم رفض الاتصال بليدجر", - "noAccountsFound": "لم يتم العثور على أي حسابات", - "selectYourAccounts": "حدد حساباتك", - "connecting1Account": "جاري الاتصال بحساب واحد", - "cantFindAnyAccount": "لا يمكن العثور على أي حساب مرتبط بهذا ليدجر الرجاء إنشاء حساب نير جديد على", - "orConnectAnAnotherLedger": "او اربط جهاز ليدجر آخر", - "connecting": "جاري الاتصال", - "ofAccounts": "من الحسابات", - "failedToAutomatically": "فشل في الاتصال بالحساب تلقائيا. يرجى الاتصال بالحساب يدويا", - "overviewTheListOfAuthorized": "لائحة الحسابات المصرح بها, أكمل تسجيل الدخول بالنقر على الزر أدناه", - "finish": "إنهاء" - }, - "install": { - "youllNeedToInstall": "ستحتاج لتثبيت", - "toContinueAfterInstalling": "للاستكمال. بعد التثبيت", - "refreshThePage": "قم بتحديث الصفحة", - "open": "افتح" - }, - "qr": { - "copiedToClipboard": "تم النسخ", - "failedToCopy": "فشل النسخ", - "scanWithYourMobile": "امسح بجهازك المحمول", - "copyToClipboard": "نسخ", - "preferTheOfficial": "تفضل الحوار الرسمي ل", - "open": "فتح" - }, - "walletTypes": { - "hardware": "محفظة الأجهزة", - "browser": "محفظة المتصفح", - "injected": "ملحق المحفظة", - "bridge": "محفظة الجسر", - "mobile": "محفظة الجوال", - "instant-link": "محفظة الرابط الفوري" - }, - "exportAccounts": { - "afterDecide": "بعد اتخاذ قرار بشأن محفظة، يمكنك اختيار الحسابات التي تريد نقلها.", - "chooseAWallet": "اختر محفظة", - "disclaimer": "لن تتمكن من نقل الحسابات التي لم يتم تمويلها أو استخدامها على NEAR.", - "selectAWallet": "اختر محفظة تناسب احتياجاتك وتدعم حساباتك المتصلة.", - "selectYourAccounts": "حدد حساباتك", - "transferYourAccounts": "نقل حساباتك", - "warning": "لا تدعم تصدير الحسابات في الوقت الحالي. يرجى اختيار محفظة أخرى.", - "complete": { - "button": "أكمل", - "descOne": "سيتم توجيهك الآن إلى المحفظة التي اخترتها لإكمال النقل.", - "descTwo": "بمجرد إكمال جزء الاستيراد من العملية من المحفظة المحددة، اضغط على الزر لإكمال عملية النقل.", - "startOverButton": "ابدأ من جديد", - "title": "أكمل النقل" - }, - "getPassphrase": { - "button": "تابع", - "checkLabel": "لقد قمت بنسخ أو كتابة كلمة المرور", - "desc": "ستحتاج إلى إدخال هذه الكلمة السرية عند بدء تصدير حساباتك إلى محفظة مختلفة.", - "label": "انقر لنسخ", - "title": "انسخ كلمة المرور المؤقتة", - "transferButton": "نقل الحسابات" - }, - "selectAccounts": { - "button": "تابع", - "deselectAll": "إلغاء تحديد الكل", - "error": "الحساب غير موجود", - "noBalance": "الحساب غير ممول", - "selectAll": "تحديد الكل", - "title": "حدد الحسابات لنقلها", - "unavailable": "النقل غير متاح", - "warningLedger": "دعم Ledger مطلوب" - }, - "walletTypes": { - "bridge": "محفظة الجسر", - "browser": "محفظة المتصفح", - "hardware": "محفظة الأجهزة", - "injected": "ملحق المحفظة", - "mobile": "محفظة الجوال" - } - } - }, - "component": { - "clickToCopy": { - "label": "تم النسخ", - "tooltip": "انقر لنسخ" - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/bg.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/bg.json deleted file mode 100644 index 5fd192bad..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/bg.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Свържете вашия Портфейл", - "whatIsAWallet": "Какво е Портфейл?", - "secureAndManage": "Защитете и управлявайте дигиталните си активи", - "safelyStore": "Съхранявайте и прехвърляйте безопасно вашите крипто и NFT.", - "logInToAny": "Използвайте всяко приложение на NEAR", - "noNeedToCreate": "Няма нужда да създавате нови профили. Свържете портфейла си и сте готови!", - "getAWallet": "Създайте Портфейл", - "useAWallet": "Използвайте портфейла, за да защитите и управлявате активите си на NEAR както и да използвате всяко приложение на NEAR без нужда от потребителски имена и пароли.", - "connectionFailed": "Свързването неуспешно", - "connectionSuccessful": "Свързването успешно", - "rememberWallet": "Запази портфейлите", - "connected": "Свързан", - "connectingTo": "Свързване към", - "connectingMessage": { - "injected": "Потвърдете свързването в прозореца на разширението", - "browser": "Потвърдете свързването в портфейла след пренасочването", - "hardware": "Потвърдете свързването в хардуерния портфейл", - "bridge": "Потвърдете връзката в портфейла" - } - }, - "ledger": { - "connectWithLedger": "Свържете се с Ledger", - "makeSureYourLedger": "Уверете се, че вашият Ledger е свързан и че приложението NEAR е отворено нa него.", - "continue": "Продължете", - "specifyHDPath": "Посочете HD път", - "enterYourPreferredHDPath": "Въведете предпочитания HD път, след което сканирайте за активни акаунти.", - "scan": "Сканирайте", - "retry": "Опитайте отново", - "ledgerIsNotAvailable": "Ledger устройството не е достъпно", - "accessDeniedToUseLedgerDevice": "Достъпът за използване на Ledger е отказан", - "noAccountsFound": "Няма намерени профили", - "selectYourAccounts": "Изберете вашите профили", - "connecting1Account": "Свързване на 1 профил", - "cantFindAnyAccount": "Няма намерени профили, съврзани с този Ledger. Моля, създайте нов NEAR профил на", - "orConnectAnAnotherLedger": "или свържете друг Ledger.", - "connecting": "Свързване", - "ofAccounts": "от профили", - "failedToAutomatically": "Автоматичното намиране на профила не бе успешно. Въведете го ръчно:", - "overviewTheListOfAuthorized": "Прегледайте списъка с упълномощени профили, завършете влизането, като щракнете върху бутона по-долу..", - "finish": "Завършете" - }, - "install": { - "youllNeedToInstall": "Ще трябва да инсталирате", - "toContinueAfterInstalling": "за да продължите. След инсталиране", - "refreshThePage": "презаредете страницата.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано в клипборда", - "failedToCopy": "Неуспешно копиране в клипборда", - "scanWithYourMobile": " Сканирайте с мобилното си устройство", - "copyToClipboard": " Копирайте в клипборда", - "preferTheOfficial": "Предпочитан език за кореспонденция", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардуерен портфейл", - "browser": "Портфейл в браузъра", - "injected": "Разширение на портфейл", - "bridge": "Мостов портфейл", - "mobile": "Мобилен портфейл", - "instant-link": "Мигновен портфейл" - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/en.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/en.json deleted file mode 100644 index ec6ae2981..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/en.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Connect Your Wallet", - "whatIsAWallet": "What is a Wallet?", - "secureAndManage": "Secure & Manage Your Digital Assets", - "safelyStore": "Safely store and transfer your crypto and NFTs.", - "logInToAny": "Log In to Any NEAR App", - "noNeedToCreate": "No need to create new accounts or credentials. Connect your wallet and you are good to go!", - "getAWallet": "Get a Wallet", - "useAWallet": "Use a wallet to secure and manage your NEAR assets, and to log in to any NEAR app without the need for usernames and passwords.", - "connectionFailed": "Connection Failed", - "connectionSuccessful": "Connection Successful", - "rememberWallet": "Remember wallets", - "connected": "Connected", - "connectingTo": "Connecting to", - "connectingMessage": { - "injected": "Confirm the connection in the extension window", - "browser": "Confirm the connection in the wallet after redirect", - "hardware": "Confirm the connection in the ledger device", - "bridge": "Confirm the connection in the wallet" - } - }, - "ledger": { - "connectWithLedger": "Connect with Ledger", - "makeSureYourLedger": "Make sure your Ledger is connected securely, and that the NEAR app is open on your device", - "continue": "Continue", - "specifyHDPath": "Specify HD Path", - "enterYourPreferredHDPath": "Enter your preferred HD path, then scan for any active accounts.", - "scan": "Scan", - "retry": "Retry", - "ledgerIsNotAvailable": "Ledger is not available", - "accessDeniedToUseLedgerDevice": "Access denied to use Ledger device", - "noAccountsFound": "No Accounts Found", - "selectYourAccounts": "Select Your Accounts", - "connecting1Account": "Connecting 1 Account", - "cantFindAnyAccount": "Can't find any account associated with this Ledger. Please create a new NEAR account on", - "orConnectAnAnotherLedger": "or connect an another Ledger.", - "connecting": "Connecting", - "ofAccounts": "of Accounts", - "failedToAutomatically": "Failed to automatically find account id. Provide it manually:", - "overviewTheListOfAuthorized": "Overview the list of authorized account(s), complete sign in by clicking the button below.", - "finish": "Finish" - }, - "install": { - "youllNeedToInstall": "You'll need to install", - "toContinueAfterInstalling": "to continue. After installing", - "refreshThePage": "refresh the page.", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "Copied to clipboard", - "failedToCopy": "Failed to copy to clipboard", - "scanWithYourMobile": "Scan with Your Mobile Device", - "copyToClipboard": " Copy to clipboard", - "preferTheOfficial": "Prefer the official dialogue of", - "open": "Open" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Choose a Wallet", - "transferYourAccounts": "Transfer Your Accounts", - "selectAWallet": "Select a wallet that fits your needs and supports your connected accounts.", - "selectYourAccounts": "Select Your Accounts", - "afterDecide": "After you decide on a wallet, you can select which accounts you want to transfer.", - "disclaimer": "You won’t be able to transfer accounts that have never been funded or used on NEAR.", - "warning": "does not support account export at this time. Please select another wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Select Accounts to Transfer", - "button": "Continue", - "deselectAll": "Deselect All", - "selectAll": "Select All", - "unavailable": "Transfer Unavailable", - "error": "Account does not exist", - "warningLedger": "Ledger support required", - "noBalance": "Account not funded" - }, - "getPassphrase": { - "title": "Copy Temporary Password", - "desc": "You’ll need to enter this password when you begin exporting your accounts to a different wallet.", - "button": "Continue", - "transferButton": "Transfer Accounts", - "label": "Click to Copy", - "checkLabel": "I copied or wrote down the password" - }, - "complete": { - "title": "Complete the Transfer", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Once import part of process is completed from selected wallet, press button to complete the transfer process.", - "startOverButton": "Start Over", - "button": "Complete" - } - } - }, - "component": { - "clickToCopy": { - "label": "Copied", - "tooltip": "Click to copy" - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/es.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/es.json deleted file mode 100644 index 34f9ef864..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/es.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Conecta Tu Billetera", - "whatIsAWallet": "¿Que es una Billetera?", - "secureAndManage": "Resguarda y Administrar Tus Activos Digitales", - "safelyStore": "Almacena de forma segura y transfiere tus cryptos y NFT's", - "logInToAny": "Inicie sesión en Cualquier Aplicacion NEAR", - "noNeedToCreate": "No es necesario crear nuevas cuentas o credenciales, ¡Conecta tu billetera y listo!", - "getAWallet": "Obten una Billetera", - "useAWallet": "Usa tu Billetera para resguardar y administrar tus activos en NEAR, e Iniciar sesión en cualquier aplicacion NEAR sin la necesidad de nombres de usuarios y contraseñas", - "connectionFailed": "Conexión Fallida", - "connectionSuccessful": "Conexión Existosa", - "rememberWallet": "Recordar las carteras", - "connected": "Conectado", - "connectingTo": "Conectando a ", - "connectingMessage": { - "injected": "Confirme la conexión en la ventana de extensión", - "browser": "Confirme la conexión en la billetera después de la redirección", - "hardware": "Confirme la conexión en el dispositivo de libro mayor", - "bridge": "Confirmar la conexión en la billetera" - } - }, - "ledger": { - "connectWithLedger": "Conectar con Ledger", - "makeSureYourLedger": "Asegúrese de que su ledger está conectada de forma segura y que la aplicacion NEAR esté abierta en su dispositivo", - "continue": "Continuar", - "specifyHDPath": "Especifique la ruta HD", - "enterYourPreferredHDPath": "Ingrese su ruta HD prerida,y luego busque cualquier cuenta activa.", - "scan": "Escanear", - "retry": "Reintentar", - "ledgerIsNotAvailable": "El Ledger no está disponible", - "accessDeniedToUseLedgerDevice": "Acceso denegado para usar el dispositivo ledger", - "noAccountsFound": "No se encontraron cuentas", - "selectYourAccounts": "Selecciona tus cuentas", - "connecting1Account": "Conectando a 1 cuenta", - "cantFindAnyAccount": "No se pudo encontrar ninguna cuenta asociada con este ledger,Por favor crea una nueva cuenta en NEAR", - "orConnectAnAnotherLedger": "o conecta otro ledger", - "connecting": "Conectando", - "ofAccounts": "de Cuentas", - "failedToAutomatically": "No se pudo encontrar automaticamente el id de la cuenta,Ingresalo manualmente:", - "overviewTheListOfAuthorized": "Revise la lista de las cuentas autorizadas,Complete el inicio de sesión haciedo click a countinuacion.", - "finish": "Finalizar" - }, - "install": { - "youllNeedToInstall": "Tendrás que instalar", - "toContinueAfterInstalling": "Para continuar, Despues de instalar", - "refreshThePage": "Recarga la pagina", - "open": "Abrir" - }, - "qr": { - "copiedToClipboard": "Copiado al Portapapeles", - "failedToCopy": "Falló la copia al Portapapeles", - "scanWithYourMobile": "Busca con tu dispositivo movil", - "copyToClipboard": " Copiar al Portapapeles", - "preferTheOfficial": "¿Prefires el diálogo oficial de", - "open": "Abrir" - }, - "walletTypes": { - "hardware": "Cartera de Hardware", - "browser": "Cartera de Navegador", - "injected": "Extensión de Cartera", - "bridge": "Cartera de Puente", - "mobile": "Cartera Móvil", - "instant-link": "Cartera Instantánea" - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/hi.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/hi.json deleted file mode 100644 index c8c5866ef..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/hi.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "अपना वॉलेट (Wallet) कनेक्ट करें।", - "whatIsAWallet": "वॉलेट क्या है?", - "secureAndManage": "सुरक्षित और प्रबंधित करें।", - "safelyStore": "अपनी क्रिप्टोकरेंसी और एनएफटी को सुरक्षित रूप से स्टोर और ट्रांसफर करें।", - "logInToAny": "NEAR पर किसी भी ऐप में साइन इन करें।", - "noNeedToCreate": "नए खाते या लॉगिन बनाने की आवश्यकता नहीं है। अपना वॉलेट(NEAR Wallet)कनेक्ट करें और आरंभ करें।", - "getAWallet": "एक वॉलेट बनाएँ।", - "useAWallet": "अपनी NEAR संपत्तियों को सुरक्षित और प्रबंधित करने के लिए वॉलेट का उपयोग करें और किसी भी NEAR ऐप (app) में लॉग इन करें, किसी उपयोगकर्ता (user) नाम और पासवर्ड की आवश्यकता नहीं है।", - "connectionFailed": "कनेक्शन विफल|", - "connectionSuccessful": "कनेक्शन सफल|", - "rememberWallet": "वॉलेटों को याद रखें", - "connected": "वॉलेट जुड़ गया|", - "connectingTo": "वॉलेट जुड़ रहा हे|", - "connectingMessage": { - "injected": "एक्सटेंशन विंडो में कनेक्शन की पुष्टि करें|", - "browser": "रीडायरेक्ट होने के बाद वॉलेट में कनेक्शन की पुष्टि करें|", - "hardware": "कोल्ड वॉलेट के साथ कनेक्शन की पुष्टि करें|" - } - }, - "ledger": { - "connectWithLedger": "लेजर(Ledger)वॉलेट कनेक्ट करें|", - "makeSureYourLedger": "सुनिश्चित करें कि आपका लेजर सुरक्षित रूप से जुड़ा हुआ है और NEAR ऐप आपके डिवाइस (Device)पर पहले से ही खुला है|", - "continue": "जारी रखे|", - "specifyHDPath": "हार्ड डिस्क(Hard Disk)पथ(Path)निर्धारित करे|", - "enterYourPreferredHDPath": "अपना एचडी पथ दर्ज करें, फिर सक्रिय खातों के लिए स्कैन करें|", - "scan": "स्कैन करे|", - "retry": "दोबारा प्रयास करे|", - "ledgerIsNotAvailable": "लेजर उपलब्ध नहीं है|", - "accessDeniedToUseLedgerDevice": "लेजर डिवाइस का उपयोग करने के लिए प्रवेश निषेध|", - "noAccountsFound": "खाता नहीं मिला|", - "selectYourAccounts": "अपने खाते चुनें|", - "connecting1Account": "एक खाता कनेक्ट हो रहा है|", - "cantFindAnyAccount": "इस लेजर से जुड़ा कोई खाता नहीं मिला। कृपया एक नया NEAR खाता बनाएँ|", - "orConnectAnAnotherLedger": "अथवा दूसरे लेजर वॉलेट से कनेक्ट करें।", - "connecting": "जुड़ रहा हे|", - "ofAccounts": "खाता अब जुड़ा नहीं हे|", - "failedToAutomatically": "खाता आईडी स्वचालित रूप से खोजने में असमर्थ। मैन्युअल (Manuall) रूप से कोशिश करें|", - "overviewTheListOfAuthorized": "अवलोकन अधिकृत की सूची, नीचे दिए गए बटन पर क्लिक करके लॉगिन पूरा करें।", - "finish": "समाप्त|" - }, - "install": { - "youllNeedToInstall": "आपको इंस्टॉल करना होगा|", - "toContinueAfterInstalling": "इंस्टॉल करने के बाद जारी रखे|", - "refreshThePage": "पुन: लोड करें।", - "open": "खोले|" - }, - "qr": { - "copiedToClipboard": "क्लिपबोर्ड(Clipboard)पर कॉपी किया गया|", - "failedToCopy": "क्लिपबोर्ड पर कॉपी करना विफल रहा|", - "scanWithYourMobile": "अपने फोन (Mobile)से स्कैन करें|", - "copyToClipboard": " क्लिपबोर्ड पर कॉपी करें|", - "preferTheOfficial": "आधिकारिक संवाद को प्राथमिकता दें|", - "open": "खोले|" - }, - "walletTypes": { - "hardware": "हार्डवेयर वॉलेट", - "browser": "ब्राउज़र वॉलेट", - "injected": "वॉलेट एक्सटेंशन", - "bridge": "ब्रिज वॉलेट", - "mobile": "मोबाइल वॉलेट", - "instant-link": "इंस्टेंट वॉलेट" - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/hr.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/hr.json deleted file mode 100644 index 1a6cc0967..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/hr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Spojite crypto novčanik!", - "whatIsAWallet": "Što je to crypto novčanik?", - "secureAndManage": "Osigurajte i upravljajte svojom digitalnom imovinom.", - "safelyStore": "Sigurno pohranite i prebacite svoj crypto i NFT-eve.", - "logInToAny": " Prijavite se u bilo koju NEAR aplikaciju", - "noNeedToCreate": "Nema potrebe za stvaranjem novih naloga ili korisničkih podataka. Spojite svoj crypto novčanik i spremni ste!", - "getAWallet": "Otvorite crypto novčanik", - "useAWallet": "Koristite crypto novčanik da biste osigurali i upravljali svojom NEAR imovinom, te se prijavite u bilo koju NEAR aplikaciju bez korisničkog imena i lozinke.", - "connectionFailed": "Neuspješno povezivanje.", - "connectionSuccessful": "Uspješno povezivanje.", - "rememberWallet": "Zapamti novčanike", - "connected": "Povezano.", - "connectingTo": "Povezivanje u tijeku", - "connectingMessage": { - "injected": "Potvrdite vezu u eksternom prozoru", - "browser": "Nakon redirekcije, potvrdite vezu u novčaniku", - "hardware": "Potvrdite vezu sa novčanikom", - "bridge": "Potvrdite vezu u novčaniku" - } - }, - "ledger": { - "connectWithLedger": "Povežite se hardverskim novčanikom", - "makeSureYourLedger": "Osigurajte sigurnu vezu s hardverskim novčanikom, te da je NEAR aplikacija otvorena na vašem uređaju", - "continue": "Nastavite", - "specifyHDPath": "Specificirajte HD putanju", - "enterYourPreferredHDPath": "Upišite preferiranu HD putanju, zatim skenirajte aktivne naloge", - "scan": "Skenirajte", - "retry": "Pokušajte ponovno", - "ledgerIsNotAvailable": "Hardverski novčanik nije dostupan.", - "accessDeniedToUseLedgerDevice": "Odbijen pristup za korištenjem hardverskog novčanika", - "noAccountsFound": "Nalozi nisu pronađeni", - "selectYourAccounts": "Odaberite svoje naloge", - "connecting1Account": "Povezivanje 1 naloga", - "cantFindAnyAccount": "Nije moguće pronaći niti jedan nalog povezan s ovim hardverskim novčanikom. Molimo vas, kreirajte novi NEAR nalog", - "orConnectAnAnotherLedger": "Ili povežite drugi hardverski novčanik.", - "connecting": "Povezivanje", - "ofAccounts": "naloga", - "failedToAutomatically": "Neuspješno automatsko pronalaženje ID naloga. Unesite ručno:", - "overviewTheListOfAuthorized": "Pregledajte popis odobrenih naloga, završite prijavu pritiskom na niže prikazani gumb.", - "finish": "Završite" - }, - "install": { - "youllNeedToInstall": " Potrebno je instalirati modal", - "toContinueAfterInstalling": "za nastavak. Nakon instalacije", - "refreshThePage": "osvježite stranicu.", - "open": "Otvorite QR modal" - }, - "qr": { - "copiedToClipboard": "Kopirano u međuspremnik", - "failedToCopy": "Neupsješno kopiranje u međuspremnik", - "scanWithYourMobile": "Skenirajte svojim mobilnim uređajem", - "copyToClipboard": " Kopirajte u međuspremnik", - "preferTheOfficial": "Odaberite službeni dijalog", - "open": "Otvorite" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Odaberi Wallet", - "transferYourAccounts": "Prenesi svoje naloge", - "selectAWallet": "Odaberite wallet koji odgovara vašim potrebama i podržava vaše povezane naloge.", - "selectYourAccounts": "Odaberi svoje naloge", - "afterDecide": "Nakon što odlučite koji wallet koristite, možete odabrati koje račune želite prebaciti.", - "disclaimer": "Nećete moći prebaciti naloge koji nisu nikada bili korišteni na NEAR-u.", - "warning": "ne podržava izvoz naloga u ovom trenutku. Molimo odaberite drugi wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Odaberi naloge za prijenos", - "button": "Generiraj lozinku", - "deselectAll": "Makni odabir sa svih", - "selectAll": "Odaberi sve", - "unavailable": "Prijenos nije dostupan", - "error": "Nalog ne postoji", - "warningLedger": "Potrebna ledger podrška", - "noBalance": "Nalog nema sredstava" - }, - "getPassphrase": { - "title": "Kopiraj privremenu lozinku", - "desc": "Bit će potrebno unijeti ovu lozinku na početku izvoza naloga na drugi wallet.", - "button": "Nastavi", - "label": "Klikni za kopiju", - "checkLabel": "Kopirao sam ili zapisao lozinku" - }, - "complete": { - "title": "Završi prijenos", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Kada je unos s odabranog walleta završen, pritisnite gumb da biste završili prijenos.", - "button": "Završi" - } - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/ko.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/ko.json deleted file mode 100644 index e5c20d2d6..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/ko.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "지갑 연결하기", - "whatIsAWallet": "지갑은 무슨 역할을 하나요?", - "secureAndManage": "당신의 디지털 자산을 보호하고 관리합니다.", - "safelyStore": "암호화폐와 NFT를 안전하게 저장하고 전송할 수 있습니다.", - "logInToAny": "NEAR App에 로그인합니다.", - "noNeedToCreate": "새로운 계정이나 비밀번호를 만들 필요 없이 지갑을 연결한 후 바로 사용할 수 있습니다.", - "getAWallet": "지갑 가져오기", - "useAWallet": "지갑을 사용하여 NEAR 자산을 보호·관리하고, 아이디와 비밀번호 없이 NEAR 앱에 로그인할 수 있습니다.", - "connectionFailed": "연결 실패", - "connectionSuccessful": "연결 성공", - "rememberWallet": "지갑들 기억하기", - "connected": "Connected", - "connectingTo": "연결 중: ", - "connectingMessage": { - "injected": "익스텐션 창에서 연결을 확인하세요", - "browser": "리다이렉트 된 지갑에서 연결을 확인하세요", - "hardware": "Ledger 기기에서 연결을 확인하세요", - "bridge": "지갑에서 연결 확인" - } - }, - "ledger": { - "connectWithLedger": "Ledger 연결하기", - "makeSureYourLedger": "Ledger가 안전하게 연결되어 있고, NEAR 앱이 열려 있는 지 확인하세요", - "continue": "계속하기", - "specifyHDPath": "HD Path 지정하기", - "enterYourPreferredHDPath": "원하는 HD Path를 선택하고, 활성화된 계정이 있는 지 검색하세요", - "scan": "검색", - "retry": "다시 시도", - "ledgerIsNotAvailable": "Ledger를 사용할 수 없습니다", - "accessDeniedToUseLedgerDevice": "Ledger 기기 접근 권한이 거부되었습니다", - "noAccountsFound": "계정을 찾을 수 없습니다", - "selectYourAccounts": "계정 선택하기", - "connecting1Account": "하나의 계정에 연결", - "cantFindAnyAccount": "Ledger와 연결된 계정을 찾을 수 없습니다. 새로운 계정을 생성하거나 ", - "orConnectAnAnotherLedger": "다른 Ledger를 연결하세요", - "connecting": "계정 연결하기: ", - "ofAccounts": "개 계정을 찾았습니다", - "failedToAutomatically": "계정 ID를 찾지 못했습니다. 수동으로 입력해주세요.", - "overviewTheListOfAuthorized": "인증된 계정 목록을 확인한 후 아래 버튼을 클릭하여 로그인을 완료하세요", - "finish": "완료" - }, - "walletTypes": { - "hardware": "하드웨어 지갑", - "browser": "브라우저 지갑", - "injected": "지갑 확장", - "bridge": "브리지 지갑", - "mobile": "모바일 지갑", - "instant-link": "인스턴트 지갑" - }, - "install": { - "youllNeedToInstall": "다음 확장 프로그램을 설치해주세요:", - "toContinueAfterInstalling": ". 설치 완료 후 페이지 새로 고침이 필요합니다. ", - "refreshThePage": "새로 고침", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "클립보드에 복사 완료", - "failedToCopy": "클립보드에 복사 실패", - "scanWithYourMobile": "모바일 장치를 사용하여 스캔해주세요", - "copyToClipboard": " 클립보드에 복사하기", - "preferTheOfficial": "다음 프로그램에서 제공하는 공식 프로세스를 선호하십니까: ", - "open": "Open" - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/mk.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/mk.json deleted file mode 100644 index f75e74659..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/mk.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Поврзете го вашиот новчаник!", - "whatIsAWallet": "Што е новчаник?", - "secureAndManage": "Заштитете ги и управувајте со вашите дигитални средства.", - "safelyStore": "Безбедно складирајте и извршувајте трансакции со вашите крипто и NFT.", - "logInToAny": "Најавете се на која било NEAR апликација", - "noNeedToCreate": "Нема потреба да креирате нови сметки или ингеренции. Поврзете го вашиот паричник и сте подготвени!", - "getAWallet": "Направете новчаник", - "useAWallet": "Користете паричник за да ги заштитите и управувате вашите NEAR средства и да се најавите на која било NEAR апликација без потреба од кориснички имиња и лозинки.", - "connectionFailed": "Поврзувањето не беше успешно.", - "connectionSuccessful": "Успешно поврзување.", - "rememberWallet": "Запомни паричници", - "connected": "Поврзано.", - "connectingTo": "Поврзување со", - "connectingMessage": { - "injected": "Потврдете го поврзувањето во екстерниот прозорец", - "browser": "По преусмерувањето, потврдете го поврзувањето од новчаниокт", - "hardware": "Потврдете го поврзувањето со ладен новчаник", - "bridge": "Потврдете ја врската во новчаникот" - } - }, - "ledger": { - "connectWithLedger": "Поврзете се со Леџер", - "makeSureYourLedger": "Осигурајте се дека вашиот Леџер е поврзан безбедно, и дека NEAR апликацијата е отворена на вашиот уред", - "continue": "Продолжете", - "specifyHDPath": "Наведете ХД локација", - "enterYourPreferredHDPath": "Внесете ја вашата преферирана ХД локација, а потоа скенирајте да ги најдете активните сметки.", - "scan": "Скенирајте", - "retry": "Обидете се повторно", - "ledgerIsNotAvailable": "Леџерот не е достапен.", - "accessDeniedToUseLedgerDevice": "Пристапот за користење на Леџер уред е одбиен", - "noAccountsFound": "Нема најдени сметки", - "selectYourAccounts": "Изберете ги вашите сметки", - "connecting1Account": "Поврзување на една сметка", - "cantFindAnyAccount": "Не се најдени сметки поврзани со овој Леџер. Ве молиме креирајте нова NEAR сметка ", - "orConnectAnAnotherLedger": "или поврзете друг Леџер.", - "connecting": "Поврзување", - "ofAccounts": "на сметки", - "failedToAutomatically": "Неуспешно автоматско барање на ИД на сметката. Внесете го рачно:", - "overviewTheListOfAuthorized": "Преглед на листата на овластени сметки, завршете се најавата со кликнување на копчето подолу.", - "finish": "Завршете" - }, - "install": { - "youllNeedToInstall": "Треба да инсталирате", - "toContinueAfterInstalling": "за да продолжите. По инсталирањето", - "refreshThePage": "Освежете ја страната.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано на клипбордот", - "failedToCopy": "Неуспешно копирање на клипборд", - "scanWithYourMobile": "Скенирајте со вашиот телефонски уред", - "copyToClipboard": "Копирајте на клипборд", - "preferTheOfficial": "Преферирајте официјален диалог на", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник", - "instant-link": "Инстант паричник" - }, - "exportAccounts": { - "chooseAWallet": "Одберете паричник", - "transferYourAccounts": "Префрлете ги вашите кориснички сметки", - "selectAWallet": "Изберетен новчаник кој ги задоволува вашите баранња и ги поддржува вашите поврзани кориснички сметки.", - "selectYourAccounts": "Изберете ги вашите кориснички сметки", - "afterDecide": "Одкако ќе изберете новчаник, можете да изберете кои кориснички сметки сакате да ги префрлите.", - "disclaimer": "Не можете да прфрлате кориснички сметки кои никогаш не биле надополнати или користени на NEAR.", - "warning": "не поддржува извезување на кориснички сметки во овој момент. Ве молиме изберете друг новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник" - }, - "selectAccounts": { - "title": "Изберете ги корисничките сметки за да ги префрлите.", - "button": "Добијте лозинка", - "deselectAll": "Отселектирајте се", - "selectAll": "Изберете се", - "unavailable": "Трансферот е недостапен", - "error": "Корисничката сметка не постои", - "warningLedger": "Потребна е поддршка од Леџер", - "noBalance": "Сметката не е финансирана" - }, - "getPassphrase": { - "title": "Копирајте ја привремената лозинка", - "desc": "Ќе треба да ја внесете оваа лозинка кога ќе започнете да ги извезувате вашите сметки на друг новчаник.", - "button": "Продолжете", - "label": "Кликнете за да копирате", - "checkLabel": "Ја копирав или запишав лозинката" - }, - "complete": { - "title": "Завршете го преносот", - "descOne": "Сега ќе бидете пренасочени на избраниот новчаник за завршување на преносот.", - "descTwo": "Откако ќе заврши увозот од избраниот новчаник, притиснете го копчето за да го завршите преносот.", - "button": "Завршете" - } - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/sl.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/sl.json deleted file mode 100644 index 20b795b9a..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/sl.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Povežite svojo denarnico!", - "whatIsAWallet": "Kaj je denarnica?", - "secureAndManage": "Zavarujte in upravljajte svoja digitalna sredstva.", - "safelyStore": "Varno shranjujte in prenašajte svoje kriptovalute in NFTje.", - "logInToAny": "Prijavite se v katero koli aplikacijo na NEAR", - "noNeedToCreate": "Ni vam treba ustvarjati novih računov. Povežite svojo denarnico in začnite!", - "getAWallet": "Ustvarite denarnico", - "useAWallet": "Uporabite denarnico, da bi zavarovali in upravljali s svoja NEAR digitalna sredstva, in se prijavite v katero koli aplikacijo ekosistema NEAR", - "connectionFailed": "Povezava ni bila uspešna.", - "connectionSuccessful": "Povezava je bila uspešna.", - "rememberWallet": "Zapomni si denarnice", - "connected": "Vaša denarnica je povezana.", - "connectingTo": "Povezovanje z", - "connectingMessage": { - "injected": "Potrdite povezavo v oknu razširitve", - "browser": "Po preusmeritvi potrdite povezavo v denarnici", - "hardware": "Potrdite povezavo s hladno denarnico", - "bridge": "Potrdite povezavo v denarnici" - } - }, - "ledger": { - "connectWithLedger": "Povežite se z Ledger", - "makeSureYourLedger": "Prepričajte se, da je vaš Ledger varno povezan in da je aplikacija NEAR odprta v vaši napravi", - "continue": "Nadaljuj", - "specifyHDPath": "Določite HD pot", - "enterYourPreferredHDPath": "Vnesite želeno HD pot, nato poiščite vse aktivne račune.", - "scan": "Skenirajte", - "retry": "Poskusite znova", - "ledgerIsNotAvailable": "Ledger ni na voljo", - "accessDeniedToUseLedgerDevice": "Dostop za uporabo naprave Ledger zavrnjen", - "noAccountsFound": "Ni najdenih računov", - "selectYourAccounts": "Izberite Vaši računi", - "connecting1Account": "Povezovanje enega računa", - "cantFindAnyAccount": "Ni mogoče najti nobenega računa, povezanega s tem Ledgerjem. Ustvarite nov NEAR račun ", - "orConnectAnAnotherLedger": "ali povežite drug Ledger..", - "connecting": "Povezovanje", - "ofAccounts": "računov", - "failedToAutomatically": "ID-ja računa ni bilo mogoče samodejno najti. Zagotovite ga ročno:", - "overviewTheListOfAuthorized": "Oglejte si seznam pooblaščenih računov, dokončajte prijavo s klikom na spodnji gumb.", - "finish": "Končajte" - }, - "install": { - "youllNeedToInstall": "Morali ga boste namestiti", - "toContinueAfterInstalling": "nadaljevati. Po namestitvi", - "refreshThePage": "Osvežite stran.", - "open": "Odprite" - }, - "qr": { - "copiedToClipboard": "Kopirano v podložni mapi", - "failedToCopy": "Kopiranje v podložni mapi ni uspelo", - "scanWithYourMobile": "Skenirajte s svojo mobilno napravo", - "copyToClipboard": " Kopirajte v podložni mapi", - "preferTheOfficial": "Preferirajte uradno pogovorno okno", - "open": "Odprite" - }, - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica", - "instant-link": "Takojšnja denarnica" - }, - "exportAccounts": { - "chooseAWallet": "Izberite denarnico", - "transferYourAccounts": "Prenesite svoje račune", - "selectAWallet": "Izberite denarnico, ki ustreza vašim potrebam in podpira vaše povezane račune.", - "selectYourAccounts": "Izberite vaši računi", - "afterDecide": "Ko se odločite za denarnico, lahko izberete, katere račune želite prenesti.", - "disclaimer": "Ne boste mogli prenesti Računov, ki nikoli niso bili financirani ali uporabljeni na NEAR.", - "warning": "trenutno ne podpira izvoza računa. Izberite drugo denarnico", - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica" - }, - "selectAccounts": { - "title": "Izberite računi za prenos.", - "button": "Pridobite geslo", - "deselectAll": "Prekliči izbiro vseh", - "selectAll": "Izberi vse", - "unavailable": "Prenos ni na voljo", - "error": "Račun ne obstaja", - "warningLedger": "Potrebna je podpora za Ledger", - "noBalance": "Račun ni financiran" - }, - "getPassphrase": { - "title": "Kopiraj začasno geslo", - "desc": "To geslo boste morali vnesti, ko boste začeli izvažati svoje račune v drugo denarnico.", - "button": "Nadaljujte", - "label": "Kliknite za kopiranje", - "checkLabel": "Geslo sem kopiral ali zapisal" - }, - "complete": { - "title": "Dokončajte prenos", - "descOne": "Zdaj boste preusmerjeni v denarnico, ki ste jo izbrali za dokončanje prenosa.", - "descTwo": "Ko je uvozni del postopka končan iz izbrane denarnice, pritisnite gumb za dokončanje postopka prenosa.", - "button": "Končajte" - } - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/sr.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/sr.json deleted file mode 100644 index 094c75982..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/sr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Повежите свој новчаник!", - "whatIsAWallet": "Шта је новчаник?", - "secureAndManage": "Обезбедите и управљајте својом дигиталном имовином.", - "safelyStore": "Безбедно чувајте и преносите своје криптовалуте и NFT.", - "logInToAny": "Пријавите се на било коју апликацију NEAR", - "noNeedToCreate": "Нема потребе да креирате нове налоге или акредитиве. Повежите новчаник и спремни стe!", - "getAWallet": "Набавите новчаник", - "useAWallet": "Користите новчаник да обезбедите и управљате својим NEAR средствима и да се пријавите у било коју апликацију NEAR без потребе за корисничким именима и лозинкама.", - "connectionFailed": "Веза није успостављена.", - "connectionSuccessful": "Веза је успела.", - "rememberWallet": "Запамти новчанике", - "connected": "Повезан.", - "connectingTo": "Повезивање на", - "connectingMessage": { - "injected": "Потврдите везу у спољном прозору", - "browser": "Након преусмеравања, потврдите везу у новчанику", - "hardware": "Потврдите везу са хладним новчаником", - "bridge": "Потврдите везу са новчаником" - } - }, - "ledger": { - "connectWithLedger": "Повежите се са Ledger", - "makeSureYourLedger": "Уверите се да је ваш Ledger безбедно повезан и да је апликација NEAR отворена на вашем уређају", - "continue": "Настави", - "specifyHDPath": "Наведите ХД путању", - "enterYourPreferredHDPath": "Унесите жељену жељену ХД путању, а затим скенирајте све активне налоге.", - "scan": "Скенирајте", - "retry": "Покушај поново", - "ledgerIsNotAvailable": "Ledger није доступан.", - "accessDeniedToUseLedgerDevice": "Приступ је одбијен за коришћење Ledger уређаја", - "noAccountsFound": "Наlози нису пронађени", - "selectYourAccounts": "Изаберите Ваш наlог", - "connecting1Account": "Повезати 1 наlог", - "cantFindAnyAccount": "Није могуће пронаћи ниједан наlог повезан са овим Ledger-ом. Направите нови NEAR наlог", - "orConnectAnAnotherLedger": "или повежите други Ledger.", - "connecting": "Повезивање", - "ofAccounts": "наlога", - "failedToAutomatically": "Аутоматско проналажење ID-a наlога није успело. Наведите га ручно:", - "overviewTheListOfAuthorized": "Прегледајте листу овлашћених рачуна, завршите пријаву кликом на дугме испод.", - "finish": "Заврши" - }, - "install": { - "youllNeedToInstall": "Мораћете да инсталирате", - "toContinueAfterInstalling": "за наставак. Након инсталирања", - "refreshThePage": "поново учитати страницу.", - "open": "Отвори" - }, - "qr": { - "copiedToClipboard": "Копирано у међуспремник", - "failedToCopy": "Копирање у међуспремник није успело", - "scanWithYourMobile": "Скенирајте помоћу мобилног уређаја", - "copyToClipboard": " Копирај у међуспремник", - "preferTheOfficial": "Преферирате званични дијалог од", - "open": "Отвори" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник", - "instant-link": "Инстант новчаник" - }, - "exportAccounts": { - "chooseAWallet": "Изаберите новчаник", - "transferYourAccounts": "Пренесите своје налоге", - "selectAWallet": "Изаберите новчаник који одговара вашим потребама и који подржава ваше повезане налоге.", - "selectYourAccounts": "Изаберите ваше налоге", - "afterDecide": "Након што се одлучите за новчаник, можете изабрати које налоге желите да пренесете.", - "disclaimer": "Нећете моћи да пренесете налоге који никада нису били финансирани или коришћени на NEAR.", - "warning": "тренутно не подржава извоз налога. Изаберите други новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник" - }, - "selectAccounts": { - "title": "Изаберите налоге за пренос.", - "button": "Добијте приступну фразу", - "deselectAll": "Поништите избор", - "selectAll": "Изаберите све", - "unavailable": "Трансфер није доступан", - "error": "Налог не постоји", - "warningLedger": "Потребна подршка за Ledger", - "noBalance": "Налог није финансиран" - }, - "getPassphrase": { - "title": "Копирај привремену лозинку", - "desc": "Мораћете да унесете ову лозинку када почнете да извозите своје налоге у други новчаник.", - "button": "Наставите", - "label": "Кликните да бисте копирали", - "checkLabel": "Копирао сам или записао лозинку" - }, - "complete": { - "title": "Довршите трансфер", - "descOne": "Сада ћете бити преусмерени на новчаник који сте изабрали да завршите трансфер.", - "descTwo": "Када се део процеса увоза заврши из изабраног новчаника, притисните дугме да завршите процес преноса.", - "button": "Завршите" - } - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/vi.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/vi.json deleted file mode 100644 index 025d762e7..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/vi.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Kết nối ví của bạn", - "whatIsAWallet": "Ví là gì?", - "secureAndManage": "Bảo mật & Quản lý tài sản số của bạn", - "safelyStore": "Lưu trữ và chuyển tiền điện tử và NFT của bạn một cách an toàn.", - "logInToAny": "Đăng nhập vào bất kỳ ứng dụng trên NEAR", - "noNeedToCreate": "Không cần tạo tài khoản hoặc thông tin đăng nhập mới. Kết nối ví của bạn và bắt đầu!", - "getAWallet": "Tạo Ví", - "useAWallet": "Sử dụng ví để bảo mật và quản lý tài sản trên NEAR của bạn và đăng nhập vào bất kỳ ứng dụng NEAR nào, không cần tên người dùng và mật khẩu.", - "connectionFailed": "Kết nối thất bại", - "connectionSuccessful": "Kết nối thành công", - "rememberWallet": "Ghi nhớ lựa chọn ví", - "connected": "Đã kết nối", - "connectingTo": "Đang kết nối tới", - "connectingMessage": { - "injected": "Xác nhận kết nối trong cửa sổ tiện ích mở rộng", - "browser": "Xác nhận kết nối trong ví sau khi được chuyển hướng", - "hardware": "Xác nhận kết nối với ví lạnh", - "bridge": "Xác nhận kết nối trong ví" - } - }, - "ledger": { - "connectWithLedger": "Kết nối ví Ledger", - "makeSureYourLedger": "Đảm bảo Ledger của bạn được kết nối an toàn và ứng dụng NEAR đang mở sẵn trên thiết bị", - "continue": "Tiếp tục", - "specifyHDPath": "Chỉ định HD Path", - "enterYourPreferredHDPath": "Nhập HD Path của bạn, sau đó quét tìm các tài khoản hoạt động", - "scan": "Quét", - "retry": "Thử lại", - "ledgerIsNotAvailable": "Ledger không khả dụng", - "accessDeniedToUseLedgerDevice": "Truy cập Ledger bị từ chối", - "noAccountsFound": "Không tìm thấy tài khoản", - "selectYourAccounts": "Chọn tài khoản của bạn", - "connecting1Account": "Đang kết nối 1 tài khoản", - "cantFindAnyAccount": "Không thể tìm thấy bất kỳ tài khoản nào được liên kết với Ledger này. Vui lòng tạo một tài khoản NEAR mới", - "orConnectAnAnotherLedger": "hoặc kết nối với ví Ledger khác.", - "connecting": "Đang kết nối", - "ofAccounts": "của tài khoản", - "failedToAutomatically": "Không thể tự động tìm id tài khoản. Nhập thủ công:", - "overviewTheListOfAuthorized": "Tổng quan danh sách các tài khoản được ủy quyền, hoàn tất đăng nhập bằng cách bấm vào nút bên dưới.", - "finish": "Hoàn thành" - }, - "install": { - "youllNeedToInstall": "Bạn sẽ cần cài đặt", - "toContinueAfterInstalling": "để bắt đầu. Sau khi cài đặt xong", - "refreshThePage": "Tải lại trang.", - "open": "Mở" - }, - "qr": { - "copiedToClipboard": "Đã sao chép vào bảng ghi tạm", - "failedToCopy": "Sao chép vào bảng ghi tạm thất bại", - "scanWithYourMobile": "Quét với điện thoại của bạn", - "copyToClipboard": " Sao chép vào bảng ghi tạm", - "preferTheOfficial": "Dialogue chính thức của", - "open": "Mở" - }, - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile", - "instant-link": "Ví tức thì" - }, - "exportAccounts": { - "chooseAWallet": "Chọn ví", - "transferYourAccounts": "Chuyển tài khoản", - "selectAWallet": "Chọn ví phù hợp với nhu cầu của bạn, ví được chọn cần hỗ trợ các tài khoản đang sử dụng.", - "selectYourAccounts": "Chọn tài khoản", - "afterDecide": "Sau khi chọn được tài khoản bạn có chuyển.", - "disclaimer": "Bạn không thể chuyển tài khoản nếu tài khoản đó chưa được nhận tiền hoặc chưa phát sinh giao dịch trên NEAR.", - "warning": "không hỗ trợ xuất tài khoản. Vui lòng chọn ví khác.", - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile" - }, - "selectAccounts": { - "title": "Chọn tài khoản để chuyển", - "button": "Lấy cụm mật khẩu", - "deselectAll": "Bỏ chọn tất cả", - "selectAll": "Chọn tất cả", - "unavailable": "Chuyển không khả dụng", - "error": "Tài khoản không tồn tại", - "warningLedger": "Yêu cầu hỗ trợ Ledger", - "noBalance": "Tài khoản trống" - }, - "getPassphrase": { - "title": "Sao chép mật khẩu tạm thời", - "desc": "Bạn sẽ cần nhập mật khẩu khi bắt đầu xuất các khoản tới ví khác.", - "button": "Tiếp tục", - "label": "Bấm để sao chép", - "checkLabel": "Tôi đã chép hoặc ghi lại mật khẩu" - }, - "complete": { - "title": "Hoàn thành chuyển", - "descOne": "Bạn sẽ được chuyển hướng tới tài khoản đã chọn để hoàn tất quá trình.", - "descTwo": "Sau khi nhập, nhấn nút để hoàn tất quy trình chuyển.", - "button": "Hoàn thành" - } - } - }, - "component": { - "clickToCopy": { - "label": "Đã sao chép", - "tooltip": "Bấm để sao chép" - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/zh.json b/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/zh.json deleted file mode 100644 index 2f363c7b1..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/locale/zh.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "连接你的钱包", - "whatIsAWallet": "什么是钱包?", - "secureAndManage": "保护和管理你的数字资产", - "safelyStore": "安全存储和转移你的加密货币和NFT", - "logInToAny": "登录任何 NEAR 应用", - "noNeedToCreate": "不需要创建新账户或密码。连接你的钱包,即可开始使用!", - "getAWallet": "获取新账户", - "useAWallet": "使用钱包来保护和管理你的 NEAR 资产,无需用户名和密码即可登录任何 NEAR 应用", - "connectionFailed": "连接失败", - "connectionSuccessful": "连接成功", - "rememberWallet": "记住钱包选择", - "connected": "已连接", - "connectingTo": "正在连接" - }, - "ledger": { - "connectWithLedger": "连接 Ledger", - "makeSureYourLedger": "确保你的 Ledger 已经安全连接,并且 NEAR 应用已经在你设备上打开", - "continue": "继续", - "specifyHDPath": "指定 HD 路径", - "enterYourPreferredHDPath": "输入你偏好的 HD 路径,然后为任意活跃账户扫码", - "scan": "扫码", - "retry": "重试", - "ledgerIsNotAvailable": "Ledger 不可用", - "accessDeniedToUseLedgerDevice": "访问 Ledger 设备被拒绝", - "noAccountsFound": "没有找到账户", - "selectYourAccounts": "选择你的账户", - "connecting1Account": "正在连接1个账户", - "cantFindAnyAccount": "没有找到任何与这个 Ledger 相关联的账户。请创建新账户于", - "orConnectAnAnotherLedger.": "或连接另一个 Ledger", - "connecting": "正在连接", - "ofAccounts": "个账户", - "failedToAutomatically": "无法自动找到账户ID,请主动提供:", - "overviewTheListOfAuthorized": "请查看已授权的账户列表,点击以下按钮完成登录", - "finish": "完成" - }, - "install": { - "youllNeedToInstall": "你将需要安装", - "toContinueAfterInstalling": "以继续。安装完", - "refreshThePage": "请刷新页面", - "open": "打开" - }, - "qr": { - "copiedToClipboard": "复制到了剪贴板", - "failedToCopy": "复制到剪贴板失败", - "scanWithYourMobile": "用你的移动设备扫码", - "copyToClipboard": " 复制到剪贴板", - "preferTheOfficial": "希望使用官方对话框于", - "open": "打开" - }, - "walletTypes": { - "hardware": "硬件钱包", - "browser": "浏览器钱包", - "injected": "钱包扩展", - "bridge": "桥接钱包", - "mobile": "移动钱包", - "instant-link": "即时钱包" - } - } -} diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/options.d.ts deleted file mode 100644 index bc6d1111b..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { WalletSelectorParams } from "./wallet-selector.types"; -import type { Options, Network, NetworkId } from "./options.types"; -export declare const getNetworkPreset: (networkId: NetworkId, fallbackRpcUrls?: Array) => Network; -export declare const resolveNetwork: (network: NetworkId | Network) => Network; -export declare const resolveOptions: (params: WalletSelectorParams) => { - options: Options; - storage: import("./services").StorageService; -}; -//# sourceMappingURL=options.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/options.d.ts.map deleted file mode 100644 index e8ce7bf80..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGnE,eAAO,MAAM,gBAAgB,cAChB,SAAS,oBACF,KAAK,CAAC,MAAM,CAAC,KAC9B,OAqBF,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,SAAS,GAAG,OAAO,KAAG,OAE7D,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,oBAAoB;;;CAc1D,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/options.js deleted file mode 100644 index 587fab7eb..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.resolveOptions = exports.resolveNetwork = exports.getNetworkPreset = void 0; -const services_1 = require("./services"); -const getNetworkPreset = (networkId, fallbackRpcUrls) => { - switch (networkId) { - case "mainnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.mainnet.near.org", - helperUrl: "https://helper.mainnet.near.org", - explorerUrl: "https://nearblocks.io", - indexerUrl: "https://api.kitwallet.app", - }; - case "testnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.testnet.near.org", - helperUrl: "https://helper.testnet.near.org", - explorerUrl: "https://testnet.nearblocks.io", - indexerUrl: "https://testnet-api.kitwallet.app", - }; - default: - throw Error(`Failed to find config for: '${networkId}'`); - } -}; -exports.getNetworkPreset = getNetworkPreset; -const resolveNetwork = (network) => { - return typeof network === "string" ? (0, exports.getNetworkPreset)(network) : network; -}; -exports.resolveNetwork = resolveNetwork; -const resolveOptions = (params) => { - const options = { - languageCode: params.languageCode || undefined, - network: (0, exports.resolveNetwork)(params.network), - debug: params.debug || false, - optimizeWalletOrder: params.optimizeWalletOrder === false ? false : true, - randomizeWalletOrder: params.randomizeWalletOrder || false, - relayerUrl: params.relayerUrl || undefined, - }; - return { - options, - storage: params.storage || new services_1.WebStorageService(), - }; -}; -exports.resolveOptions = resolveOptions; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/options.types.d.ts deleted file mode 100644 index 45a8b9888..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.types.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { SupportedLanguage } from "./translate/translate"; -export type NetworkId = "mainnet" | "testnet"; -export interface Network { - /** - * Network ID (e.g. `testnet`). - */ - networkId: string; - /** - * URL for RPC requests. - */ - nodeUrl: string; - /** - * URL for creating accounts. - */ - helperUrl: string; - /** - * URL for the NEAR explorer. - */ - explorerUrl: string; - /** - * URL for the NEAR indexer. - */ - indexerUrl: string; -} -export interface Options { - /** - * ISO 639-1 two-letter language code. - */ - languageCode: SupportedLanguage | undefined; - /** - * Resolved network configuration. - */ - network: Network; - /** - * Whether internal logging is enabled. - */ - debug: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder: boolean; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl: string | undefined; -} -//# sourceMappingURL=options.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/options.types.d.ts.map deleted file mode 100644 index 663fb6879..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/options.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/options.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts deleted file mode 100644 index 00a0b6840..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { EventEmitterService, Subscription } from "./event-emitter.types"; -export declare class EventEmitter> implements EventEmitterService { - private emitter; - on(eventName: Event, callback: (event: Events[Event]) => void): Subscription; - off(eventName: Event, callback: (event: Events[Event]) => void): void; - emit(eventName: Event, event: Events[Event]): void; -} -//# sourceMappingURL=event-emitter.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map deleted file mode 100644 index 80b80c736..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/E,qBAAa,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC9D,YAAW,mBAAmB,CAAC,MAAM,CAAC;IAEtC,OAAO,CAAC,OAAO,CAAuB;IAEtC,EAAE,CAAC,KAAK,SAAS,MAAM,MAAM,EAC3B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,GACvC,YAAY;IAQf,GAAG,CAAC,KAAK,SAAS,MAAM,MAAM,EAC5B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;IAK1C,IAAI,CAAC,KAAK,SAAS,MAAM,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;CAGxE"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.js deleted file mode 100644 index 1129f4fc6..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.EventEmitter = void 0; -const events_1 = require("events"); -class EventEmitter { - emitter = new events_1.EventEmitter(); - on(eventName, callback) { - this.emitter.on(eventName, callback); - return { - remove: () => this.emitter.off(eventName, callback), - }; - } - off(eventName, callback) { - this.emitter.off(eventName, callback); - } - emit(eventName, event) { - this.emitter.emit(eventName, event); - } -} -exports.EventEmitter = EventEmitter; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts deleted file mode 100644 index 3a25067e0..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface Subscription { - remove: () => void; -} -export interface EventEmitterService> { - on(eventName: EventName, callback: (event: Events[EventName]) => void): Subscription; - off(eventName: EventName, callback: (event: Events[EventName]) => void): void; - emit(eventName: EventName, event: Events[EventName]): void; -} -//# sourceMappingURL=event-emitter.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map deleted file mode 100644 index 6e4178d43..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzE,EAAE,CAAC,SAAS,SAAS,MAAM,MAAM,EAC/B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,YAAY,CAAC;IAEhB,GAAG,CAAC,SAAS,SAAS,MAAM,MAAM,EAChC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,IAAI,CAAC;IAER,IAAI,CAAC,SAAS,SAAS,MAAM,MAAM,EACjC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,GACvB,IAAI,CAAC;CACT"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/index.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/index.d.ts deleted file mode 100644 index 7f06b3d8e..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * from "./provider/provider.service"; -export * from "./provider/provider.service.types"; -export * from "./storage/storage.service.types"; -export * from "./storage/json-storage.service.types"; -export * from "./storage/json-storage.service"; -export * from "./storage/web-storage.service"; -export * from "./logger/logger.service"; -export * from "./logger/logger.service.types"; -export * from "./wallet-modules/wallet-modules.service"; -export * from "./event-emitter/event-emitter.service"; -export * from "./event-emitter/event-emitter.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/index.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/index.d.ts.map deleted file mode 100644 index f34146ce5..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/index.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/index.js deleted file mode 100644 index 771f7ca4c..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/index.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./provider/provider.service"), exports); -__exportStar(require("./provider/provider.service.types"), exports); -__exportStar(require("./storage/storage.service.types"), exports); -__exportStar(require("./storage/json-storage.service.types"), exports); -__exportStar(require("./storage/json-storage.service"), exports); -__exportStar(require("./storage/web-storage.service"), exports); -__exportStar(require("./logger/logger.service"), exports); -__exportStar(require("./logger/logger.service.types"), exports); -__exportStar(require("./wallet-modules/wallet-modules.service"), exports); -__exportStar(require("./event-emitter/event-emitter.service"), exports); -__exportStar(require("./event-emitter/event-emitter.types"), exports); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.d.ts deleted file mode 100644 index 305cafb84..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { LoggerService } from "./logger.service.types"; -export declare class Logger implements LoggerService { - static debug: boolean; - namespace?: string; - constructor(namespace?: string); - private emit; - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -export declare const logger: Logger; -//# sourceMappingURL=logger.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.d.ts.map deleted file mode 100644 index 3819238b2..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,qBAAa,MAAO,YAAW,aAAa;IAC1C,MAAM,CAAC,KAAK,UAAS;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEP,SAAS,CAAC,EAAE,MAAM;IAI9B,OAAO,CAAC,IAAI;IAgBZ,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI7B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;CAGhC;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.js deleted file mode 100644 index f2365f6b4..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.logger = exports.Logger = void 0; -class Logger { - static debug = false; - namespace; - constructor(namespace) { - this.namespace = namespace; - } - emit(method, ...params) { - if (!Logger.debug) { - return; - } - if (this.namespace && method !== "error") { - // eslint-disable-next-line no-console - console[method](this.namespace, ...params); - return; - } - // eslint-disable-next-line no-console - console[method](...params); - } - log(...params) { - this.emit("log", ...params); - } - info(...params) { - this.emit("info", ...params); - } - warn(...params) { - this.emit("warn", ...params); - } - error(...params) { - this.emit("error", ...params); - } -} -exports.Logger = Logger; -exports.logger = new Logger(); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts deleted file mode 100644 index 8c891f4f2..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface LoggerService { - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -//# sourceMappingURL=logger.service.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts.map deleted file mode 100644 index 0160d352c..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/logger/logger.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.d.ts deleted file mode 100644 index 07f2954c5..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { AccessKeyView, BlockReference, QueryResponseKind, RpcQueryRequest } from "@near-js/types"; -import type { ProviderService, QueryParams, ViewAccessKeyParams } from "./provider.service.types"; -import type { SignedTransaction } from "@near-js/transactions"; -export declare class Provider implements ProviderService { - private provider; - constructor(urls: Array); - query(paramsOrPath: QueryParams | RpcQueryRequest | string, data?: string): Promise; - viewAccessKey({ accountId, publicKey }: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; - private urlsToProviders; -} -//# sourceMappingURL=provider.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.d.ts.map deleted file mode 100644 index 02d2f07b3..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,qBAAa,QAAS,YAAW,eAAe;IAW9C,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;IAM/B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,EACpD,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC;IAQpB,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,mBAAmB;IAS3D,KAAK,CAAC,SAAS,EAAE,cAAc;IAI/B,eAAe,CAAC,iBAAiB,EAAE,iBAAiB;IAIpD,OAAO,CAAC,eAAe;CAKxB"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.js deleted file mode 100644 index 7798a5f3f..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Provider = void 0; -const providers_1 = require("@near-js/providers"); -class Provider { - /* - private provider: JsonRpcProvider; - - constructor(urls: Array) { - this.provider = new JsonRpcProvider( - this.urlsToProviders(urls) - ); - } - */ - provider; - constructor(urls) { - this.provider = new providers_1.FailoverRpcProvider(this.urlsToProviders(urls)); - } - query(paramsOrPath, data) { - if (typeof paramsOrPath === "string" && data !== undefined) { - return this.provider.query(paramsOrPath, data); - } - else { - return this.provider.query(paramsOrPath); - } - } - viewAccessKey({ accountId, publicKey }) { - return this.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountId, - public_key: publicKey, - }); - } - block(reference) { - return this.provider.block(reference); - } - sendTransaction(signedTransaction) { - return this.provider.sendTransaction(signedTransaction); - } - urlsToProviders(urls) { - return urls && urls.length > 0 - ? urls.map((url) => new providers_1.JsonRpcProvider({ url })) - : []; - } -} -exports.Provider = Provider; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts deleted file mode 100644 index cba6ca3cd..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { AccessKeyView, BlockReference, BlockResult, QueryResponseKind, FinalExecutionOutcome } from "@near-js/types"; -import type { SignedTransaction } from "@near-js/transactions"; -export type QueryParams = { - [key in string]: unknown; -}; -export interface ViewAccessKeyParams { - accountId: string; - publicKey: string; -} -export interface ProviderService { - query(params: QueryParams): Promise; - viewAccessKey(params: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; -} -//# sourceMappingURL=provider.service.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts.map deleted file mode 100644 index 94a2e9755..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG;KAAG,GAAG,IAAI,MAAM,GAAG,OAAO;CAAE,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,eAAe,CACb,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/provider/provider.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts deleted file mode 100644 index 8e5c8063a..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -import type { JsonStorageService } from "./json-storage.service.types"; -export declare class JsonStorage implements JsonStorageService { - storage: StorageService; - namespace: string; - constructor(storage: StorageService, namespace: string | Array); - private resolveKey; - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts.map deleted file mode 100644 index 9cf929933..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,qBAAa,WAAY,YAAW,kBAAkB;IACpD,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;gBAEN,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAOtE,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAMlD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.js deleted file mode 100644 index 1d1ed0bf1..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.JsonStorage = void 0; -const KEY_DELIMITER = ":"; -class JsonStorage { - storage; - namespace; - constructor(storage, namespace) { - this.storage = storage; - this.namespace = Array.isArray(namespace) - ? namespace.join(KEY_DELIMITER) - : namespace; - } - resolveKey(key) { - return [this.namespace, key].join(KEY_DELIMITER); - } - getItem(key) { - return this.storage.getItem(this.resolveKey(key)).then((item) => { - return typeof item === "string" ? JSON.parse(item) : null; - }); - } - setItem(key, value) { - return this.storage.setItem(this.resolveKey(key), JSON.stringify(value)); - } - removeItem(key) { - return this.storage.removeItem(this.resolveKey(key)); - } -} -exports.JsonStorage = JsonStorage; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts deleted file mode 100644 index 0cfff07a0..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface JsonStorageService { - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts.map deleted file mode 100644 index 00ce8794a..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/json-storage.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts deleted file mode 100644 index 64ff2e6d3..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts.map deleted file mode 100644 index afbf46e25..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/storage.service.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/storage.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/storage.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts deleted file mode 100644 index f13fefc9a..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -export declare class WebStorageService implements StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=web-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts.map deleted file mode 100644 index fbed55367..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/web-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/web-storage.service.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/web-storage.service.js deleted file mode 100644 index b1b3430c7..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/storage/web-storage.service.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.WebStorageService = void 0; -class WebStorageService { - getItem(key) { - return new Promise((resolve) => { - const value = localStorage.getItem(key); - resolve(value); - }); - } - setItem(key, value) { - return new Promise((resolve) => { - localStorage.setItem(key, value); - resolve(); - }); - } - removeItem(key) { - return new Promise((resolve) => { - localStorage.removeItem(key); - resolve(); - }); - } -} -exports.WebStorageService = WebStorageService; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts deleted file mode 100644 index 28c9880c2..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { WalletModulesParams } from "./wallet-modules.service.types"; -import type { Wallet } from "../../wallet"; -export declare class WalletModules { - private factories; - private storage; - private options; - private store; - private emitter; - private provider; - private modules; - private instances; - constructor({ factories, storage, options, store, emitter, provider, }: WalletModulesParams); - private validateWallet; - private resolveStorageState; - private setWalletAsRecentlySignedIn; - private signOutWallet; - private onWalletSignedIn; - private onWalletSignedOut; - private setupWalletEmitter; - private validateSignMessageParams; - private decorateWallet; - private setupInstance; - private getModule; - getWallet(id: string | null): Promise; - setup(): Promise; -} -//# sourceMappingURL=wallet-modules.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map deleted file mode 100644 index 94b2e90a9..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAEV,MAAM,EAOP,MAAM,cAAc,CAAC;AAmBtB,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAA6C;gBAElD,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,mBAAmB;YAYR,cAAc;YAkBd,mBAAmB;YAyEnB,2BAA2B;YAuB3B,aAAa;YAYb,gBAAgB;IAkD9B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,cAAc;YAsCR,aAAa;IA6B3B,OAAO,CAAC,SAAS;IAIX,SAAS,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAoB9D,KAAK;CAkFZ"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.js deleted file mode 100644 index a27acfb1e..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.js +++ /dev/null @@ -1,325 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.WalletModules = void 0; -const event_emitter_service_1 = require("../event-emitter/event-emitter.service"); -const logger_service_1 = require("../logger/logger.service"); -const constants_1 = require("../../constants"); -const json_storage_service_1 = require("../storage/json-storage.service"); -class WalletModules { - factories; - storage; - options; - store; - emitter; - provider; - modules; - instances; - constructor({ factories, storage, options, store, emitter, provider, }) { - this.factories = factories; - this.storage = storage; - this.options = options; - this.store = store; - this.emitter = emitter; - this.provider = provider; - this.modules = []; - this.instances = {}; - } - async validateWallet(id) { - let accounts = []; - const wallet = await this.getWallet(id); - if (wallet) { - // Ensure our persistent state aligns with the selected wallet. - // For example a wallet is selected, but it returns no accounts (not signed in). - accounts = await wallet.getAccounts().catch((err) => { - logger_service_1.logger.log(`Failed to validate ${wallet.id} during setup`); - logger_service_1.logger.error(err); - return []; - }); - } - return accounts; - } - async resolveStorageState() { - const jsonStorage = new json_storage_service_1.JsonStorage(this.storage, constants_1.PACKAGE_NAME); - const pendingSelectedWalletId = await jsonStorage.getItem(constants_1.PENDING_SELECTED_WALLET_ID); - const pendingContract = await jsonStorage.getItem(constants_1.PENDING_CONTRACT); - const rememberRecentWallets = await jsonStorage.getItem(constants_1.REMEMBER_RECENT_WALLETS); - if (pendingSelectedWalletId && pendingContract) { - const accounts = await this.validateWallet(pendingSelectedWalletId); - await jsonStorage.removeItem(constants_1.PENDING_SELECTED_WALLET_ID); - await jsonStorage.removeItem(constants_1.PENDING_CONTRACT); - if (accounts.length) { - const { selectedWalletId } = this.store.getState(); - const selectedWallet = await this.getWallet(selectedWalletId); - if (selectedWallet && pendingSelectedWalletId !== selectedWalletId) { - await selectedWallet.signOut().catch((err) => { - logger_service_1.logger.log("Failed to sign out existing wallet"); - logger_service_1.logger.error(err); - }); - } - let recentlySignedInWalletsFromPending = []; - if (rememberRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWalletsFromPending = - await this.setWalletAsRecentlySignedIn(pendingSelectedWalletId); - } - return { - accounts, - contract: pendingContract, - selectedWalletId: pendingSelectedWalletId, - recentlySignedInWallets: recentlySignedInWalletsFromPending, - rememberRecentWallets: rememberRecentWallets || constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - } - const { contract, selectedWalletId } = this.store.getState(); - const accounts = await this.validateWallet(selectedWalletId); - const recentlySignedInWallets = await jsonStorage.getItem(constants_1.RECENTLY_SIGNED_IN_WALLETS); - if (!accounts.length) { - return { - accounts: [], - contract: null, - selectedWalletId: null, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - return { - accounts, - contract, - selectedWalletId, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - async setWalletAsRecentlySignedIn(walletId) { - const jsonStorage = new json_storage_service_1.JsonStorage(this.storage, constants_1.PACKAGE_NAME); - let recentlySignedInWallets = await jsonStorage.getItem(constants_1.RECENTLY_SIGNED_IN_WALLETS); - if (!recentlySignedInWallets) { - recentlySignedInWallets = []; - } - if (!recentlySignedInWallets.includes(walletId)) { - recentlySignedInWallets.unshift(walletId); - recentlySignedInWallets = recentlySignedInWallets.slice(0, 5); - await jsonStorage.setItem(constants_1.RECENTLY_SIGNED_IN_WALLETS, recentlySignedInWallets); - } - return recentlySignedInWallets; - } - async signOutWallet(walletId) { - const wallet = (await this.getWallet(walletId)); - await wallet.signOut().catch((err) => { - logger_service_1.logger.log(`Failed to sign out ${wallet.id}`); - logger_service_1.logger.error(err); - // At least clean up state on our side. - this.onWalletSignedOut(wallet.id); - }); - } - async onWalletSignedIn(walletId, { accounts, contractId, methodNames }) { - const { selectedWalletId, rememberRecentWallets } = this.store.getState(); - const jsonStorage = new json_storage_service_1.JsonStorage(this.storage, constants_1.PACKAGE_NAME); - const contract = { contractId, methodNames }; - if (!accounts.length) { - const module = this.getModule(walletId); - // We can't guarantee the user will actually sign in with browser wallets. - // Best we can do is set in storage and validate on init. - if (module.type === "browser") { - await jsonStorage.setItem(constants_1.PENDING_SELECTED_WALLET_ID, walletId); - await jsonStorage.setItem(constants_1.PENDING_CONTRACT, contract); - } - return; - } - if (selectedWalletId && selectedWalletId !== walletId) { - await this.signOutWallet(selectedWalletId); - } - let recentlySignedInWallets = []; - if (rememberRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWallets = await this.setWalletAsRecentlySignedIn(walletId); - } - this.store.dispatch({ - type: "WALLET_CONNECTED", - payload: { - walletId, - contract, - accounts, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - this.emitter.emit("signedIn", { - walletId, - contractId, - methodNames, - accounts, - }); - } - onWalletSignedOut(walletId) { - this.store.dispatch({ - type: "WALLET_DISCONNECTED", - payload: { walletId }, - }); - this.emitter.emit("signedOut", { walletId }); - } - setupWalletEmitter(module) { - const emitter = new event_emitter_service_1.EventEmitter(); - emitter.on("signedOut", () => { - this.onWalletSignedOut(module.id); - }); - emitter.on("signedIn", (event) => { - this.onWalletSignedIn(module.id, event); - }); - emitter.on("accountsChanged", async ({ accounts }) => { - this.emitter.emit("accountsChanged", { walletId: module.id, accounts }); - if (!accounts.length) { - return this.signOutWallet(module.id); - } - this.store.dispatch({ - type: "ACCOUNTS_CHANGED", - payload: { walletId: module.id, accounts }, - }); - }); - emitter.on("networkChanged", ({ networkId }) => { - this.emitter.emit("networkChanged", { walletId: module.id, networkId }); - }); - emitter.on("uriChanged", ({ uri }) => { - this.emitter.emit("uriChanged", { walletId: module.id, uri }); - }); - return emitter; - } - validateSignMessageParams({ message, nonce, recipient, }) { - if (!message || message.trim() === "") { - throw new Error("Invalid message. It must be a non-empty string."); - } - if (!Buffer.isBuffer(nonce) || nonce.length !== 32) { - throw new Error("Invalid nonce. It must be a Buffer with a length of 32 bytes."); - } - if (!recipient || recipient.trim() === "") { - throw new Error("Invalid recipient. It must be a non-empty string."); - } - } - decorateWallet(wallet) { - const _signIn = wallet.signIn; - const _signOut = wallet.signOut; - const _signMessage = wallet.signMessage; - wallet.signIn = async (params) => { - const accounts = await _signIn(params); - const { contractId, methodNames = [] } = params; - await this.onWalletSignedIn(wallet.id, { - accounts, - contractId, - methodNames, - }); - return accounts; - }; - wallet.signOut = async () => { - await _signOut(); - this.onWalletSignedOut(wallet.id); - }; - wallet.signMessage = async (params) => { - if (_signMessage === undefined) { - throw Error(`The signMessage method is not supported by ${wallet.metadata.name}`); - } - this.validateSignMessageParams(params); - return await _signMessage(params); - }; - return wallet; - } - async setupInstance(module) { - if (!module.metadata.available) { - const message = module.type === "injected" ? "not installed" : "not available"; - throw Error(`${module.metadata.name} is ${message}`); - } - const wallet = { - id: module.id, - type: module.type, - metadata: module.metadata, - ...(await module.init({ - id: module.id, - type: module.type, - metadata: module.metadata, - options: this.options, - store: this.store.toReadOnly(), - provider: this.provider, - emitter: this.setupWalletEmitter(module), - logger: new logger_service_1.Logger(module.id), - storage: new json_storage_service_1.JsonStorage(this.storage, [constants_1.PACKAGE_NAME, module.id]), - })), - }; - return this.decorateWallet(wallet); - } - getModule(id) { - return this.modules.find((x) => x.id === id); - } - async getWallet(id) { - const module = this.getModule(id); - if (!module) { - return null; - } - const { selectedWalletId } = this.store.getState(); - // If user uninstalled/removed a wallet which was previously signed in with - // best we can do is clean up state on our side. - if (!module.metadata.available && selectedWalletId) { - this.onWalletSignedOut(selectedWalletId); - return null; - } - return (await module.wallet()); - } - async setup() { - const modules = []; - for (let i = 0; i < this.factories.length; i += 1) { - const module = await this.factories[i]({ options: this.options }).catch((err) => { - logger_service_1.logger.log("Failed to setup module"); - logger_service_1.logger.error(err); - return null; - }); - // Filter out wallets that aren't available. - if (!module) { - continue; - } - // Skip duplicated module. - if (modules.some((x) => x.id === module.id)) { - continue; - } - modules.push({ - id: module.id, - type: module.type, - metadata: module.metadata, - wallet: async () => { - let instance = this.instances[module.id]; - if (instance) { - return instance; - } - instance = await this.setupInstance(module); - this.instances[module.id] = instance; - return instance; - }, - }); - } - this.modules = modules; - const { accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = await this.resolveStorageState(); - this.store.dispatch({ - type: "SETUP_WALLET_MODULES", - payload: { - modules, - accounts, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - for (let i = 0; i < this.modules.length; i++) { - if (this.modules[i].type !== "instant-link") { - continue; - } - const wallet = (await this.modules[i].wallet()); - if (!wallet.metadata.runOnStartup) { - continue; - } - try { - await wallet.signIn({ contractId: wallet.getContractId() }); - } - catch (err) { - logger_service_1.logger.error("Failed to sign in to wallet. " + err); - } - } - } -} -exports.WalletModules = WalletModules; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts deleted file mode 100644 index 339f296e7..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { WalletModuleFactory } from "../../wallet"; -import type { StorageService } from "../storage/storage.service.types"; -import type { Options } from "../../options.types"; -import type { Store } from "../../store.types"; -import type { EventEmitter } from "../event-emitter/event-emitter.service"; -import type { WalletSelectorEvents } from "../../wallet-selector.types"; -import type { ProviderService } from "../provider/provider.service.types"; -export interface WalletModulesParams { - factories: Array; - storage: StorageService; - options: Options; - store: Store; - emitter: EventEmitter; - provider: ProviderService; -} -//# sourceMappingURL=wallet-modules.service.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map deleted file mode 100644 index 231a8d586..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC5C,QAAQ,EAAE,eAAe,CAAC;CAC3B"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/store.d.ts deleted file mode 100644 index dd8b9c03c..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { StorageService } from "./services"; -import type { Store } from "./store.types"; -export declare const createStore: (storage: StorageService) => Promise; -//# sourceMappingURL=store.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/store.d.ts.map deleted file mode 100644 index d1628d160..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EACV,KAAK,EAGN,MAAM,eAAe,CAAC;AA+JvB,eAAO,MAAM,WAAW,YAAmB,cAAc,KAAG,OAAO,CAAC,KAAK,CAgExE,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/store.js deleted file mode 100644 index fc078e464..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.js +++ /dev/null @@ -1,158 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createStore = void 0; -const rxjs_1 = require("rxjs"); -const services_1 = require("./services"); -const constants_1 = require("./constants"); -const reducer = (state, action) => { - services_1.logger.log("Store Action", action); - switch (action.type) { - case "SETUP_WALLET_MODULES": { - const { modules, accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = action.payload; - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === 0, - }; - }); - return { - ...state, - modules, - accounts: accountStates, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }; - } - case "WALLET_CONNECTED": { - const { walletId, contract, accounts, recentlySignedInWallets } = action.payload; - if (!accounts.length) { - return state; - } - const activeAccountIndex = state.accounts.findIndex((account) => account.active); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === (activeAccountIndex > -1 ? activeAccountIndex : 0), - }; - }); - return { - ...state, - contract, - accounts: accountStates, - selectedWalletId: walletId, - recentlySignedInWallets, - }; - } - case "WALLET_DISCONNECTED": { - const { walletId } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - return { - ...state, - contract: null, - accounts: [], - selectedWalletId: null, - }; - } - case "ACCOUNTS_CHANGED": { - const { walletId, accounts } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - const activeAccount = state.accounts.find((account) => account.active); - const isActiveAccountRemoved = !accounts.some((account) => account.accountId === activeAccount?.accountId); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: isActiveAccountRemoved - ? i === 0 - : account.accountId === activeAccount?.accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_ACTIVE_ACCOUNT": { - const { accountId } = action.payload; - const accountStates = state.accounts.map((account) => { - return { - ...account, - active: account.accountId === accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_REMEMBER_RECENT_WALLETS": { - const { selectedWalletId, recentlySignedInWallets } = state; - const { rememberRecentWallets } = action.payload; - const newRecentWallets = rememberRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? constants_1.REMEMBER_RECENT_WALLETS_STATE.DISABLED - : constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED; - const newWalletsVal = [...recentlySignedInWallets]; - if (selectedWalletId && - !recentlySignedInWallets.includes(selectedWalletId)) { - newWalletsVal.push(selectedWalletId); - } - const newRecentlySignedInWallets = newRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? newWalletsVal - : []; - return { - ...state, - rememberRecentWallets: newRecentWallets, - recentlySignedInWallets: newRecentlySignedInWallets, - }; - } - default: - return state; - } -}; -const createStore = async (storage) => { - const jsonStorage = new services_1.JsonStorage(storage, constants_1.PACKAGE_NAME); - const initialState = { - modules: [], - accounts: [], - contract: await jsonStorage.getItem(constants_1.CONTRACT), - selectedWalletId: await jsonStorage.getItem(constants_1.SELECTED_WALLET_ID), - recentlySignedInWallets: (await jsonStorage.getItem(constants_1.RECENTLY_SIGNED_IN_WALLETS)) || [], - rememberRecentWallets: (await jsonStorage.getItem(constants_1.REMEMBER_RECENT_WALLETS)) || "", - }; - const state$ = new rxjs_1.BehaviorSubject(initialState); - const actions$ = new rxjs_1.Subject(); - actions$.pipe((0, rxjs_1.scan)(reducer, initialState)).subscribe(state$); - const syncStorage = async (prevState, state, storageKey, property) => { - if (state[property] === prevState[property]) { - return; - } - if (state[property]) { - await jsonStorage.setItem(storageKey, state[property]); - return; - } - await jsonStorage.removeItem(storageKey); - }; - let prevState = state$.getValue(); - state$.subscribe((state) => { - syncStorage(prevState, state, constants_1.SELECTED_WALLET_ID, "selectedWalletId"); - syncStorage(prevState, state, constants_1.CONTRACT, "contract"); - syncStorage(prevState, state, constants_1.RECENTLY_SIGNED_IN_WALLETS, "recentlySignedInWallets"); - syncStorage(prevState, state, constants_1.REMEMBER_RECENT_WALLETS, "rememberRecentWallets"); - prevState = state; - }); - return { - observable: state$, - getState: () => state$.getValue(), - dispatch: (action) => actions$.next(action), - toReadOnly: () => ({ - getState: () => state$.getValue(), - observable: state$.asObservable(), - }), - }; -}; -exports.createStore = createStore; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/store.types.d.ts deleted file mode 100644 index 3d93e104e..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.types.d.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type { BehaviorSubject, Observable } from "rxjs"; -import type { Wallet, Account } from "./wallet"; -import type { SignMessageMethod } from "./wallet"; -export interface ContractState { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * List of methods that can only be invoked on the Smart Contract. Empty list means no restriction. - */ - methodNames: Array; -} -export type ModuleState = { - /** - * Unique identifier for the wallet. - */ - id: Variation["id"]; - /** - * Type of the wallet. - */ - type: Variation["type"]; - /** - * Meta information about the wallet. - */ - metadata: Variation["metadata"]; - /** - * Access functionality of the wallet. - */ - wallet(): Promise; -}; -export type AccountState = Account & { - /** - * Is account set as active. - */ - active: boolean; -}; -export interface WalletSelectorState { - /** - * Returns the signed in contract. - */ - contract: ContractState | null; - /** - * Returns the list of available modules. - */ - modules: Array; - /** - * Returns the list of signed in accounts. - */ - accounts: Array; - /** - * Returns the ID of the selected wallet. - */ - selectedWalletId: string | null; - /** - * Returns ID-s of 5 recently signed in wallets. - */ - recentlySignedInWallets: Array; - /** - * Returns a string, which indicates if the functionality about recentlySignedInWallets is active. - */ - rememberRecentWallets: string; -} -export type WalletSelectorAction = { - type: "SETUP_WALLET_MODULES"; - payload: { - modules: Array; - accounts: Array; - contract: ContractState | null; - selectedWalletId: string | null; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_CONNECTED"; - payload: { - walletId: string; - contract: ContractState; - accounts: Array; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_DISCONNECTED"; - payload: { - walletId: string; - }; -} | { - type: "ACCOUNTS_CHANGED"; - payload: { - walletId: string; - accounts: Array; - }; -} | { - type: "SET_ACTIVE_ACCOUNT"; - payload: { - accountId: string; - }; -} | { - type: "SET_REMEMBER_RECENT_WALLETS"; - payload: { - rememberRecentWallets: string; - }; -}; -export interface ReadOnlyStore { - /** - * Retrieve the current state. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - getState(): WalletSelectorState; - /** - * Subscribe to state changes using the (RxJS) Observable pattern. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - observable: Observable; -} -export interface Store { - observable: BehaviorSubject; - getState(): WalletSelectorState; - dispatch(action: WalletSelectorAction): void; - toReadOnly(): ReadOnlyStore; -} -//# sourceMappingURL=store.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/store.types.d.ts.map deleted file mode 100644 index 5854551fa..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/store.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/store.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/testUtils.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/testUtils.d.ts deleted file mode 100644 index ace50a39a..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/testUtils.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { WalletModuleFactory, Wallet } from "./wallet"; -import type { ProviderService, StorageService } from "./services"; -import type { Options } from "./options.types"; -export interface MockWalletDependencies { - options?: Options; - provider?: ProviderService; -} -export declare const mockWallet: (factory: WalletModuleFactory, deps?: MockWalletDependencies) => Promise<{ - wallet: Variation; - storage: StorageService; -}>; -//# sourceMappingURL=testUtils.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/testUtils.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/testUtils.d.ts.map deleted file mode 100644 index dbc9d8f55..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/testUtils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/testUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAmB/C,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,GAAU,SAAS,SAAS,MAAM,WAC9C,mBAAmB,SACrB,sBAAsB;;;EA4B9B,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/testUtils.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/testUtils.js deleted file mode 100644 index 5e0cc0df9..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/testUtils.js +++ /dev/null @@ -1,107 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.mockWallet = void 0; -// Remove Jest import -// import * as jest from "jest"; -const jest_mock_extended_1 = require("jest-mock-extended"); -const options_1 = require("./options"); -const store_1 = require("./store"); -const services_1 = require("./services"); -const createStorageMock = () => { - const _state = {}; - return { - getItem: async (key) => _state[key] || null, // Replace jest.fn() with plain async functions - setItem: async (key, value) => { - _state[key] = value; - }, - removeItem: async (key) => { - delete _state[key]; - }, - }; -}; -const mockWallet = async (factory, deps) => { - const { options, storage } = (0, options_1.resolveOptions)({ - network: (0, options_1.getNetworkPreset)("testnet"), - storage: createStorageMock(), - modules: [factory], - ...deps?.options, - }); - const emitter = new services_1.EventEmitter(); - const store = await (0, store_1.createStore)(storage); - const walletModules = new services_1.WalletModules({ - factories: [factory], - storage, - options, - store, - emitter, - provider: deps?.provider || (0, jest_mock_extended_1.mock)(), - }); - await walletModules.setup(); - const { modules } = store.getState(); - const wallet = await walletModules.getWallet(modules[0].id); - return { - wallet: wallet, - storage, - }; -}; -exports.mockWallet = mockWallet; -// import * as jest from "jest" -// import { mock } from "jest-mock-extended"; -// import type { WalletModuleFactory, Wallet } from "./wallet"; -// import type { ProviderService, StorageService } from "./services"; -// import type { WalletSelectorEvents } from "./wallet-selector.types"; -// import type { Options } from "./options.types"; -// import { getNetworkPreset, resolveOptions } from "./options"; -// import { createStore } from "./store"; -// import { EventEmitter, WalletModules } from "./services"; -// -// const createStorageMock = (): StorageService => { -// const _state: Record = {}; -// -// return { -// getItem: jest.fn(async (key) => _state[key] || null), -// setItem: jest.fn(async (key, value) => { -// _state[key] = value; -// }), -// removeItem: jest.fn(async (key) => { -// delete _state[key]; -// }), -// }; -// }; -// -// export interface MockWalletDependencies { -// options?: Options; -// provider?: ProviderService; -// } -// -// export const mockWallet = async ( -// factory: WalletModuleFactory, -// deps?: MockWalletDependencies -// ) => { -// const { options, storage } = resolveOptions({ -// network: getNetworkPreset("testnet"), -// storage: createStorageMock(), -// modules: [factory], -// ...deps?.options, -// }); -// const emitter = new EventEmitter(); -// const store = await createStore(storage); -// const walletModules = new WalletModules({ -// factories: [factory], -// storage, -// options, -// store, -// emitter, -// provider: deps?.provider || mock(), -// }); -// -// await walletModules.setup(); -// -// const { modules } = store.getState(); -// const wallet = await walletModules.getWallet(modules[0].id); -// -// return { -// wallet: wallet!, -// storage, -// }; -// }; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/translate/translate.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/translate/translate.d.ts deleted file mode 100644 index 8706ed5a9..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/translate/translate.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type SupportedLanguage = "en" | "es" | "zh" | "bg" | "ko" | "vi" | "hi" | "ar" | "hr" | "mk" | "sl" | "sr"; -export declare const allowOnlyLanguage: (langCode: SupportedLanguage | undefined) => void; -export declare const translate: (path: string) => string; -//# sourceMappingURL=translate.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/translate/translate.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/translate/translate.d.ts.map deleted file mode 100644 index b2ac2d105..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/translate/translate.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/translate/translate.ts"],"names":[],"mappings":"AA4CA,MAAM,MAAM,iBAAiB,GACzB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,eAAO,MAAM,iBAAiB,aAAc,iBAAiB,GAAG,SAAS,SAExE,CAAC;AAuBF,eAAO,MAAM,SAAS,SAAU,MAAM,WAarC,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/translate/translate.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/translate/translate.js deleted file mode 100644 index c5573a87c..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/translate/translate.js +++ /dev/null @@ -1,81 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.translate = exports.allowOnlyLanguage = void 0; -const en_json_1 = __importDefault(require("../locale/en.json")); -const es_json_1 = __importDefault(require("../locale/es.json")); -const zh_json_1 = __importDefault(require("../locale/zh.json")); -const bg_json_1 = __importDefault(require("../locale/bg.json")); -const ko_json_1 = __importDefault(require("../locale/ko.json")); -const vi_json_1 = __importDefault(require("../locale/vi.json")); -const hi_json_1 = __importDefault(require("../locale/hi.json")); -const ar_json_1 = __importDefault(require("../locale/ar.json")); -const hr_json_1 = __importDefault(require("../locale/hr.json")); -const mk_json_1 = __importDefault(require("../locale/mk.json")); -const sl_json_1 = __importDefault(require("../locale/sl.json")); -const sr_json_1 = __importDefault(require("../locale/sr.json")); -const getLanguage = (languageCode) => { - switch (languageCode) { - case "en": - return en_json_1.default; - case "es": - return es_json_1.default; - case "zh": - return zh_json_1.default; - case "bg": - return bg_json_1.default; - case "ko": - return ko_json_1.default; - case "vi": - return vi_json_1.default; - case "hi": - return hi_json_1.default; - case "ar": - return ar_json_1.default; - case "hr": - return hr_json_1.default; - case "mk": - return mk_json_1.default; - case "sl": - return sl_json_1.default; - case "sr": - return sr_json_1.default; - default: - return en_json_1.default; - } -}; -let chosenLang; -const allowOnlyLanguage = (langCode) => { - chosenLang = langCode; -}; -exports.allowOnlyLanguage = allowOnlyLanguage; -// (i.e en-CA returns just en) -const shortenLanguageCode = (lang) => { - return lang.indexOf("-") !== -1 ? lang.split("-")[0] : lang.split("_")[0]; -}; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const findObjectPropByStringPath = (obj, prop) => { - if (!obj) { - return ""; - } - const _index = prop.indexOf("."); - if (_index > -1) { - const currentProp = prop.substring(0, _index); - const nextProp = prop.substring(_index + 1); - return findObjectPropByStringPath(obj[currentProp], nextProp); - } - return obj[prop]; -}; -const translate = (path) => { - let browserLang = window.navigator.languages - ? window.navigator.languages[0] - : null; - browserLang = browserLang || window.navigator.language; - const languageCode = shortenLanguageCode(chosenLang || browserLang); - const selectedLanguage = getLanguage(languageCode); - const text = findObjectPropByStringPath(selectedLanguage, path); - return text && typeof text === "string" ? text : path; -}; -exports.translate = translate; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/utils.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/utils.types.d.ts deleted file mode 100644 index fbcda75c6..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/utils.types.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Optional = Omit & Partial>; -export type Modify = Omit & R; -//# sourceMappingURL=utils.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/utils.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/utils.types.d.ts.map deleted file mode 100644 index 0c4119292..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/utils.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/utils.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/utils.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/utils.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/utils.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.d.ts deleted file mode 100644 index 8dd8656b7..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { WalletSelector, WalletSelectorParams } from "./wallet-selector.types"; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -export declare const setupWalletSelector: (params: WalletSelectorParams) => Promise; -//# sourceMappingURL=wallet-selector.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.d.ts.map deleted file mode 100644 index e613937ba..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAmEjC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,WACtB,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CAyCxB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.js deleted file mode 100644 index 8ffb4cc07..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.js +++ /dev/null @@ -1,83 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setupWalletSelector = void 0; -const options_1 = require("./options"); -const store_1 = require("./store"); -const services_1 = require("./services"); -let walletSelectorInstance = null; -const createSelector = (options, store, walletModules, emitter) => { - return { - options, - store: store.toReadOnly(), - wallet: async (id) => { - const { selectedWalletId } = store.getState(); - const wallet = await walletModules.getWallet(id || selectedWalletId); - if (!wallet) { - if (id) { - throw new Error("Invalid wallet id"); - } - throw new Error("No wallet selected"); - } - return wallet; - }, - setActiveAccount: (accountId) => { - const { accounts } = store.getState(); - if (!accounts.some((account) => account.accountId === accountId)) { - throw new Error("Invalid account id"); - } - store.dispatch({ - type: "SET_ACTIVE_ACCOUNT", - payload: { accountId }, - }); - }, - setRememberRecentWallets: () => { - const { rememberRecentWallets } = store.getState(); - store.dispatch({ - type: "SET_REMEMBER_RECENT_WALLETS", - payload: { rememberRecentWallets }, - }); - }, - isSignedIn() { - const { accounts } = store.getState(); - return Boolean(accounts.length); - }, - on: (eventName, callback) => { - return emitter.on(eventName, callback); - }, - off: (eventName, callback) => { - emitter.off(eventName, callback); - }, - }; -}; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -const setupWalletSelector = async (params) => { - const { options, storage } = (0, options_1.resolveOptions)(params); - services_1.Logger.debug = options.debug; - const emitter = new services_1.EventEmitter(); - const store = await (0, store_1.createStore)(storage); - const network = await (0, options_1.getNetworkPreset)(options.network.networkId, params.fallbackRpcUrls); - const rpcProviderUrls = params.fallbackRpcUrls && params.fallbackRpcUrls.length > 0 - ? params.fallbackRpcUrls - : [network.nodeUrl]; - const walletModules = new services_1.WalletModules({ - factories: params.modules, - storage, - options, - store, - emitter, - provider: new services_1.Provider(rpcProviderUrls), - }); - await walletModules.setup(); - if (params.allowMultipleSelectors) { - return createSelector(options, store, walletModules, emitter); - } - if (!walletSelectorInstance) { - walletSelectorInstance = createSelector(options, store, walletModules, emitter); - } - return walletSelectorInstance; -}; -exports.setupWalletSelector = setupWalletSelector; diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.types.d.ts deleted file mode 100644 index 327a9db79..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.types.d.ts +++ /dev/null @@ -1,109 +0,0 @@ -import type { Account, Wallet, WalletModuleFactory } from "./wallet/wallet.types"; -import type { ReadOnlyStore } from "./store.types"; -import type { Network, NetworkId, Options } from "./options.types"; -import type { Subscription, StorageService } from "./services"; -import type { SupportedLanguage } from "./translate/translate"; -import type { SignMessageMethod } from "./wallet/wallet.types"; -export interface WalletSelectorParams { - /** - * Resolved network configuration. - */ - network: NetworkId | Network; - /** - * List of wallet module factory functions - */ - modules: Array; - /** - * Custom storage service - */ - storage?: StorageService; - /** - * Whether internal logging is enabled. - */ - debug?: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder?: boolean; - /** - * Wether to allow multiple wallet selector instances to be created. - */ - allowMultipleSelectors?: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder?: boolean; - /** - * ISO 639-1 two-letter language code. - */ - languageCode?: SupportedLanguage; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl?: string; - /** - * Whether multiple RPC URLs are included, used for the FailoverRpcProvider. - */ - fallbackRpcUrls?: Array; -} -export type WalletSelectorStore = ReadOnlyStore; -export type WalletSelectorEvents = { - signedIn: { - walletId: string; - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: { - walletId: string; - }; - accountsChanged: { - walletId: string; - accounts: Array; - }; - networkChanged: { - walletId: string; - networkId: string; - }; - uriChanged: { - walletId: string; - uri: string; - }; -}; -export interface WalletSelector { - /** - * Resolved variation of the options passed to `setupWalletSelector`. - */ - options: Options; - /** - * Wallet selector storage service - */ - store: WalletSelectorStore; - /** - * Programmatically access wallets and call their methods. - * It's advised to use `state.modules` if you only need access to `id`, `type` or `metadata` as it avoids initialising. - * You can find more information on Wallet {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/wallet.md | here}. - */ - wallet(id?: string): Promise; - /** - * Determines whether we're signed in to one or more accounts. - */ - isSignedIn(): boolean; - /** - * Programmatically change active account which will be used to sign and send transactions. - */ - setActiveAccount(accountId: string): void; - /** - * Programmatically changes the rememberRecentWallets behavior, it can deactivate and activate rememberRecentWallets. - */ - setRememberRecentWallets(): void; - /** - * Attach an event handler to important events. - */ - on(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): Subscription; - /** - * Removes the event handler attached to the given `event`. - */ - off(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): void; -} -//# sourceMappingURL=wallet-selector.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.types.d.ts.map deleted file mode 100644 index 2ab329a5f..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet-selector.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/index.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/index.d.ts deleted file mode 100644 index df9c381db..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./wallet.types"; -export * from "./transactions.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/index.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/index.d.ts.map deleted file mode 100644 index 223147a0a..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/index.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/index.js deleted file mode 100644 index d7ee97f6b..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/index.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./wallet.types"), exports); -__exportStar(require("./transactions.types"), exports); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/transactions.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/transactions.types.d.ts deleted file mode 100644 index edbe827c4..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/transactions.types.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -export interface CreateAccountAction { - type: "CreateAccount"; -} -export interface DeployContractAction { - type: "DeployContract"; - params: { - code: Uint8Array; - }; -} -export interface FunctionCallAction { - type: "FunctionCall"; - params: { - methodName: string; - args: object; - gas: string; - deposit: string; - }; -} -export interface TransferAction { - type: "Transfer"; - params: { - deposit: string; - }; -} -export interface StakeAction { - type: "Stake"; - params: { - stake: string; - publicKey: string; - }; -} -export type AddKeyPermission = "FullAccess" | { - receiverId: string; - allowance?: string; - methodNames?: Array; -}; -export interface AddKeyAction { - type: "AddKey"; - params: { - publicKey: string; - accessKey: { - nonce?: number; - permission: AddKeyPermission; - }; - }; -} -export interface DeleteKeyAction { - type: "DeleteKey"; - params: { - publicKey: string; - }; -} -export interface DeleteAccountAction { - type: "DeleteAccount"; - params: { - beneficiaryId: string; - }; -} -export type Action = CreateAccountAction | DeployContractAction | FunctionCallAction | TransferAction | StakeAction | AddKeyAction | DeleteKeyAction | DeleteAccountAction; -export type ActionType = Action["type"]; -export interface Transaction { - signerId: string; - receiverId: string; - actions: Array; -} -//# sourceMappingURL=transactions.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/transactions.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/transactions.types.d.ts.map deleted file mode 100644 index 4236471a2..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/transactions.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transactions.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/transactions.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE;QACN,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE;YACT,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,gBAAgB,CAAC;SAC9B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,MAAM,MAAM,GACd,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,WAAW,GACX,YAAY,GACZ,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/transactions.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/transactions.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/transactions.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/wallet.types.d.ts b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/wallet.types.d.ts deleted file mode 100644 index ac2631a0c..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/wallet.types.d.ts +++ /dev/null @@ -1,295 +0,0 @@ -import type { EventEmitterService, LoggerService, ProviderService, JsonStorageService } from "../services"; -import type { Options } from "../options.types"; -import type { ReadOnlyStore } from "../store.types"; -import type { Transaction, Action } from "./transactions.types"; -import type { Modify, Optional } from "../utils.types"; -import type { FinalExecutionOutcome } from "@near-js/types"; -import { KeyType } from "@near-js/crypto"; -interface BaseWalletMetadata { - /** - * Wallet name. - */ - name: string; - /** - * Wallet description. - */ - description: string | null; - /** - * Wallet icon url. - */ - iconUrl: string; - /** - * Is wallet deprecated. - */ - deprecated: boolean; - /** - * Will the wallet be shown in modal. - */ - available: boolean; -} -export interface Account { - /** - * NEAR account identifier. - */ - accountId: string; - /** - * Account public key. - */ - publicKey?: string; -} -export interface SignInParams { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * Specify limited access to particular methods on the Smart Contract. - */ - methodNames?: Array; -} -export interface VerifyOwnerParams { - /** - * The message requested sign. Defaults to `verify owner` string. - */ - message: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet). This is the callback url once the signing is approved. Defaults to `window.location.href`. - */ - callbackUrl?: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet) extra data that will be passed to the callback url once the signing is approved. - */ - meta?: string; -} -export interface VerifiedOwner { - accountId: string; - message: string; - blockId: string; - publicKey: string; - signature: string; - keyType: KeyType; -} -export interface SignMessageParams { - message: string; - recipient: string; - nonce: Buffer; - callbackUrl?: string; - state?: string; -} -export interface SignedMessage { - accountId: string; - publicKey: string; - signature: string; - state?: string; -} -export type SignMessageMethod = { - signMessage(params: SignMessageParams): Promise; -}; -interface SignAndSendTransactionParams { - /** - * Account ID used to sign the transaction. Defaults to the first account. - */ - signerId?: string; - /** - * Account ID to receive the transaction. Defaults to `contractId` defined in `init`. - */ - receiverId?: string; - /** - * NEAR Action(s) to sign and send to the network (e.g. `FunctionCall`). You can find more information on `Action` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - actions: Array; -} -interface SignAndSendTransactionsParams { - /** - * NEAR Transactions(s) to sign and send to the network. You can find more information on `Transaction` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - transactions: Array>; -} -interface BaseWalletBehaviour { - /** - * Programmatically sign in. Hardware wallets (e.g. Ledger) require `derivationPaths` to validate access key permissions. - */ - signIn(params: SignInParams): Promise>; - /** - * Sign out from the wallet. - */ - signOut(): Promise; - /** - * Returns one or more accounts when signed in. - * This method can be useful for wallets that support accounts at once such as WalletConnect. - * In this case, you can use an `accountId` returned as the `signerId` for `signAndSendTransaction`. - */ - getAccounts(): Promise>; - /** - * Signs the message and verifies the owner. Message is not sent to blockchain. - */ - verifyOwner(params: VerifyOwnerParams): Promise; - /** - * Signs one or more NEAR Actions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransaction(params: SignAndSendTransactionParams): Promise; - /** - * Signs one or more transactions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransactions(params: SignAndSendTransactionsParams): Promise>; - signMessage?(params: SignMessageParams): Promise; -} -type BaseWallet = { - /** - * Unique identifier of the wallet. - */ - id: string; - /** - * Returns the type of wallet. This is particular useful when using functionality that's wallet specific (see hardware wallet example). - */ - type: Type; - /** - * Returns meta information about the wallet such as `name`, `description`, `iconUrl`, `deprecated` and `available` but can include wallet-specific properties such as `downloadUrl` and `useUrlAccountImport` for injected wallets or `contractId`, `runOnStartup` for instant-link wallets and walletUrl for browser wallets. - */ - metadata: Metadata; -} & Behaviour; -export type WalletEvents = { - signedIn: { - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: null; - accountsChanged: { - accounts: Array; - }; - networkChanged: { - networkId: string; - }; - uriChanged: { - uri: string; - }; -}; -export type BrowserWalletMetadata = BaseWalletMetadata & { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; - /** - * The URL of the wallet exposed in the metadata of the module. - */ - walletUrl: string; -}; -interface BrowserWalletSignInParams extends SignInParams { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; -} -interface BrowserWalletSignAndSendTransactionParams extends SignAndSendTransactionParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -interface BrowserWalletSignAndSendTransactionsParams extends SignAndSendTransactionsParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -export type BrowserWalletBehaviour = Modify>; - signAndSendTransaction(params: BrowserWalletSignAndSendTransactionParams): Promise; - signAndSendTransactions(params: BrowserWalletSignAndSendTransactionsParams): Promise; -}>; -export type BrowserWallet = BaseWallet<"browser", BrowserWalletMetadata, BrowserWalletBehaviour>; -export type InjectedWalletMetadata = BaseWalletMetadata & { - downloadUrl: string; - topLevelInjected?: boolean; - useUrlAccountImport?: boolean; -}; -export interface AccountImportData { - accountId: string; - privateKey: string; -} -export interface AccountImportSecureContextParams { - accounts: Array; -} -export type InjectedWalletBehaviour = Modify; -}>; -export type InjectedWallet = BaseWallet<"injected", InjectedWalletMetadata, InjectedWalletBehaviour>; -export type InstantLinkWalletMetadata = BaseWalletMetadata & { - contractId: string; - runOnStartup: boolean; -}; -export type InstantLinkWalletBehaviour = BaseWalletBehaviour & { - getContractId(): string; -}; -export type InstantLinkWallet = BaseWallet<"instant-link", InstantLinkWalletMetadata, InstantLinkWalletBehaviour>; -export type HardwareWalletMetadata = BaseWalletMetadata; -export interface HardwareWalletAccount { - derivationPath: string; - publicKey: string; - accountId: string; -} -export interface HardwareWalletSignInParams extends SignInParams { - /** - * Required for hardware wallets (e.g. Ledger). This is a list of `accounts` linked to public keys on your device. - */ - accounts: Array; -} -export type HardwareWalletBehaviour = Modify>; -}> & { - getPublicKey(derivationPath: string): Promise; -}; -export type HardwareWallet = BaseWallet<"hardware", HardwareWalletMetadata, HardwareWalletBehaviour>; -interface BridgeWalletSignInParams extends SignInParams { - /** - * Optional for bridge wallets (e.g Wallet Connect). - * This indicates whether to render QR Code in wallet selector modal or use the default vendor modal. - */ - qrCodeModal?: boolean; -} -export type BridgeWalletMetadata = BaseWalletMetadata; -export type BridgeWalletBehaviour = Modify>; -}>; -export type BridgeWallet = BaseWallet<"bridge", BridgeWalletMetadata, BridgeWalletBehaviour>; -export type WalletMetadata = BrowserWalletMetadata | InjectedWalletMetadata | InstantLinkWalletMetadata | HardwareWalletMetadata | BridgeWalletMetadata; -export type Wallet = BrowserWallet | InjectedWallet | InstantLinkWallet | HardwareWallet | BridgeWallet; -export type WalletType = Wallet["type"]; -interface WalletModuleOptions { - options: Options; -} -export interface WalletBehaviourOptions { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - options: Options; - store: ReadOnlyStore; - provider: ProviderService; - emitter: EventEmitterService; - logger: LoggerService; - storage: JsonStorageService; -} -export type WalletBehaviourFactory = (options: WalletBehaviourOptions & ExtraOptions) => Promise>; -export type WalletModule = { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - init(options: WalletBehaviourOptions): Promise>; -}; -export type WalletModuleFactory = (options: WalletModuleOptions) => Promise | null>; -export {}; -//# sourceMappingURL=wallet.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/wallet.types.d.ts.map b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/wallet.types.d.ts.map deleted file mode 100644 index c9ebc6eb8..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/wallet.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/wallet.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/wallet.types.js b/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/wallet.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/ethereum-wallets/dist/cjs/core/src/lib/wallet/wallet.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/index.d.ts b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/index.d.ts deleted file mode 100644 index 5a5fb6a0d..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { setupEthereumWallets } from "./lib"; -export type { EthereumWalletsParams } from "./lib"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/index.d.ts.map b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/index.d.ts.map deleted file mode 100644 index 85a82afa8..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,YAAY,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/index.js b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/index.js deleted file mode 100644 index 788a071e5..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setupEthereumWallets = void 0; -var lib_1 = require("./lib"); -Object.defineProperty(exports, "setupEthereumWallets", { enumerable: true, get: function () { return lib_1.setupEthereumWallets; } }); diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/icon.d.ts b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/icon.d.ts deleted file mode 100644 index 582a3212b..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/icon.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: "data:image/png;base64,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"; -export default _default; -//# sourceMappingURL=icon.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/icon.d.ts.map b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/icon.d.ts.map deleted file mode 100644 index 97220b1c7..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/icon.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../../src/lib/icon.ts"],"names":[],"mappings":";AAAA,wBAAgr8H"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/icon.js b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/icon.js deleted file mode 100644 index eaa6fec08..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/icon.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = `data:image/png;base64,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`; diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/index.d.ts b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/index.d.ts deleted file mode 100644 index 277442130..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/index.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { type WalletModuleFactory, type InjectedWallet } from "@near-wallet-selector/core"; -import { type Config } from "@wagmi/core"; -type WagmiCoreActionsType = typeof import("@wagmi/core"); -export interface EthereumWalletsParams { - wagmiConfig: Config; - web3Modal?: { - open: () => void; - close: () => void; - subscribeEvents: (f: (event: { - data: { - event: string; - }; - }) => void) => () => void; - getState: () => { - open: boolean; - selectedNetworkId?: number; - }; - }; - wagmiCore?: WagmiCoreActionsType; - chainId?: number; - alwaysOnboardDuringSignIn?: boolean; - iconUrl?: string; - devMode?: boolean; - devModeAccount?: string; - deprecated?: boolean; - nearNodeUrl?: string; -} -export declare function setupEthereumWallets(params: EthereumWalletsParams): WalletModuleFactory; -export {}; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/index.d.ts.map b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/index.d.ts.map deleted file mode 100644 index 014cca081..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,mBAAmB,EAKxB,KAAK,cAAc,EAEpB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,aAAa,CAAC;AAKrB,KAAK,oBAAoB,GAAG,cAAc,aAAa,CAAC,CAAC;AAoBzD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,IAAI,CAAC;QACjB,KAAK,EAAE,MAAM,IAAI,CAAC;QAClB,eAAe,EAAE,CACf,CAAC,EAAE,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,KAAK,IAAI,KAC5C,MAAM,IAAI,CAAC;QAChB,QAAQ,EAAE,MAAM;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/D,CAAC;IACF,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA46BD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,qBAAqB,GAC5B,mBAAmB,CAAC,cAAc,CAAC,CA4BrC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/index.js b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/index.js deleted file mode 100644 index 4e63d1141..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/index.js +++ /dev/null @@ -1,879 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setupEthereumWallets = setupEthereumWallets; -const nearAPI = __importStar(require("near-api-js")); -const providers_1 = require("@near-js/providers"); -const transactions_1 = require("@near-js/transactions"); -const utils_1 = require("@near-js/utils"); -const wallet_utils_1 = require("@near-wallet-selector/wallet-utils"); -const viem_1 = require("viem"); -const bs58_1 = __importDefault(require("bs58")); -let wagmiCore = null; -const importWagmiCore = async () => { - // Commonjs support NA with @wagmi/core: - // https://wagmi.sh/core/guides/migrate-from-v1-to-v2#dropped-commonjs-support - return Promise.resolve().then(() => __importStar(require("@wagmi/core"))).then((module) => { - wagmiCore = module; - }); -}; -const icon_1 = __importDefault(require("./icon")); -const modal_1 = require("./modal"); -const utils_2 = require("./utils"); -const setupEthereumWalletsState = async (id) => { - const keystore = new nearAPI.keyStores.BrowserLocalStorageKeyStore(window.localStorage, `near-wallet-selector:${id}:keystore:`); - return { - keystore, - subscriptions: [], - isConnecting: false, - }; -}; -const EthereumWallets = async ({ id, options, store, provider, emitter, logger, params: { wagmiConfig, web3Modal, chainId, alwaysOnboardDuringSignIn = false, devMode, devModeAccount = "eth-wallet.testnet", nearNodeUrl, }, }) => { - if (!wagmiCore) { - throw new Error("@wagmi/core not imported."); - } - const _state = await setupEthereumWalletsState(id); - const expectedChainId = chainId ?? (options.network.networkId === "mainnet" ? 397 : 398); - const chain = wagmiConfig.chains.find((c) => c.id === expectedChainId); - if (!chain) { - throw new Error("Failed to parse NEAR chain from wagmiConfig."); - } - const nearRpc = chain.rpcUrls.default.http[0]; - if (!nearRpc) { - throw new Error("Failed to parse NEAR rpc url from wagmiConfig."); - } - const nearExplorer = chain.blockExplorers?.default.url; - if (!nearExplorer) { - throw new Error("Failed to parse NEAR explorer url from wagmiConfig."); - } - // NOTE: use a custom provider because the failover provider doesn't give error details. - const nearProvider = new providers_1.JsonRpcProvider(nearNodeUrl ?? - // @ts-expect-error - provider.provider.connection ?? - // @ts-expect-error - provider.provider.providers[ - // @ts-expect-error - provider.provider.currentProviderIndex].connection); - const getAccounts = async () => { - const address = wagmiCore.getAccount(wagmiConfig).address?.toLowerCase(); - const account = devMode ? address + "." + devModeAccount : address; - if (!account || !address) { - return []; - } - const keyPair = await _state.keystore.getKey(options.network.networkId, account); - const accountLogIn = { - accountId: account, - publicKey: keyPair ? keyPair.getPublicKey().toString() : undefined, - }; - return [accountLogIn]; - }; - const cleanup = async () => { - _state.subscriptions.forEach((subscription) => subscription.remove()); - _state.subscriptions = []; - }; - const executeTransaction = async ({ tx, relayerPublicKey, }) => { - const to = (/^0x([A-Fa-f0-9]{40})$/.test(tx.receiverId) - ? tx.receiverId - : "0x" + (0, viem_1.keccak256)((0, viem_1.toHex)(tx.receiverId)).slice(26)); - // Created this defaults variable during the process - // of getting wallet selector packages and near-js packages - // working smoothly on LTS node version. - // Feel free to update/remove/whatever - let ethTxDefaults = { - abi: [], - functionName: "", - address: `0x`, - chain: undefined, - account: `0x` - }; - let ethTx; - switch (tx.actions[0].type) { - case "CreateAccount": - break; - case "DeployContract": - break; - case "Stake": - break; - case "DeleteAccount": - break; - case "AddKey": { - const publicKey = (0, viem_1.bytesToHex)(bs58_1.default.decode(tx.actions[0].params.publicKey.split(":")[1])); - if (tx.actions[0].params.accessKey.permission === "FullAccess") { - const args = [ - 0, // 0 stands for ed25519 - publicKey, - BigInt(tx.actions[0].params.accessKey.nonce ?? 0), - true, - false, // Not used with is_full_access - BigInt(0), // Not used with is_full_access - "", // Not used with is_full_access - [], // Not used with is_full_access - ]; - ethTx = { - abi: utils_2.ETHEREUM_ACCOUNT_ABI, - address: to, - account: ethTxDefaults.account, - chain: ethTxDefaults.chain, - functionName: "addKey", - args, - chainId: expectedChainId, - type: "legacy", - }; - throw new Error("Requesting a FullAccess key is not allowed."); - } - else { - const allowance = BigInt(tx.actions[0].params.accessKey.permission.allowance ?? - utils_2.DEFAULT_ACCESS_KEY_ALLOWANCE); - const args = [ - 0, // 0 stands for ed25519 - publicKey, - BigInt(tx.actions[0].params.accessKey.nonce ?? 0), - false, - allowance > 0 ? true : false, - allowance, - tx.actions[0].params.accessKey.permission.receiverId, - tx.actions[0].params.accessKey.permission.methodNames ?? [], - ]; - ethTx = { - abi: utils_2.ETHEREUM_ACCOUNT_ABI, - address: to, - account: ethTxDefaults.account, - chain: ethTxDefaults.chain, - functionName: "addKey", - args, - gasPrice: tx.actions[0].params.publicKey === relayerPublicKey && - tx.receiverId === - tx.actions[0].params.accessKey.permission.receiverId - ? // Free onboarding tx: fix 1 wei gasPrice because some wallets ignore 0 gasPrice. - // Rpc will also return a dust eth_getBalance for accounts not yet onboarded to trick wallets - // into accepting this free transaction even before the user owns NEAR. - BigInt(1) - : undefined, - chainId: expectedChainId, - type: "legacy", - // uhhh - }; - } - break; - } - case "DeleteKey": { - const publicKey = (0, viem_1.bytesToHex)(bs58_1.default.decode(tx.actions[0].params.publicKey.split(":")[1])); - const args = [ - 0, // 0 stands for ed25519 - publicKey, - ]; - ethTx = { - abi: utils_2.ETHEREUM_ACCOUNT_ABI, - address: to, - account: ethTxDefaults.account, - chain: ethTxDefaults.chain, - functionName: "deleteKey", - args, - chainId: expectedChainId, - type: "legacy", - }; - break; - } - case "FunctionCall": { - const yoctoNear = BigInt(tx.actions[0].params.deposit) % BigInt(1e6); - const value = BigInt(tx.actions[0].params.deposit) / BigInt(1e6); - const requestedGas = BigInt(tx.actions[0].params.gas); - const nearGas = requestedGas <= utils_2.MAX_TGAS ? requestedGas : utils_2.MAX_TGAS; - const args = [ - tx.receiverId, - tx.actions[0].params.methodName, - (0, viem_1.bytesToHex)((0, transactions_1.stringifyJsonOrBytes)(tx.actions[0].params.args)), - nearGas, - +yoctoNear.toString(), - ]; - ethTx = { - abi: utils_2.ETHEREUM_ACCOUNT_ABI, - address: to, - account: ethTxDefaults.account, - chain: ethTxDefaults.chain, - functionName: "functionCall", - args, - value, - chainId: expectedChainId, - type: "legacy", - }; - break; - } - case "Transfer": { - const yoctoNear = BigInt(tx.actions[0].params.deposit) % BigInt(1e6); - const value = BigInt(tx.actions[0].params.deposit) / BigInt(1e6); - const args = [tx.receiverId, +yoctoNear.toString()]; - ethTx = { - abi: utils_2.ETHEREUM_ACCOUNT_ABI, - address: to, - account: ethTxDefaults.account, - chain: ethTxDefaults.chain, - functionName: "transfer", - args, - value, - chainId: expectedChainId, - type: "legacy", - }; - break; - } - default: { - throw new Error("Invalid action type"); - } - } - // NOTE: re-add simulateContract and parse errors after eth_call implements errors. - // const { request } = await wagmiCore!.simulateContract(wagmiConfig, ethTx); - const result = await wagmiCore.writeContract(wagmiConfig, ethTx); - return result; - }; - // Watch Ethereum wallet changes. - const setupEvents = async () => { - const unwatchAccount = wagmiCore.watchAccount(wagmiConfig, { - onChange: async (data) => { - // Ethereum wallet disconnected: also disconnect NEAR account. - if (!data.address && data.status === "disconnected") { - emitter.emit("signedOut", null); - return; - } - // Ethereum wallet switched connected account: also switch NEAR account if already signed in or disconnect. - if (data.address && data.status === "connected") { - if (store.getState().contract?.contractId) { - const address = data.address.toLowerCase(); - const keyPair = await _state.keystore.getKey(options.network.networkId, devMode ? address + "." + devModeAccount : address); - if (!keyPair) { - try { - wagmiCore.disconnect(wagmiConfig); - } - catch (error) { - logger.error(error); - } - emitter.emit("signedOut", null); - return; - } - } - emitter.emit("accountsChanged", { accounts: await getAccounts() }); - } - }, - }); - _state.subscriptions.push({ remove: () => unwatchAccount() }); - }; - setupEvents(); - // Add signerId and receiverId defaults. - const transformTransactions = async (transactions) => { - const state = store.getState(); - const { contract } = state; - const [accountLogIn] = await getAccounts(); - if (!accountLogIn) { - throw new Error("No active account"); - } - return transactions.map((transaction) => { - if (!contract && !transaction.receiverId) { - throw new Error(`Missing receiverId, got '${transaction.receiverId}'`); - } - return { - ...transaction, - signerId: transaction.signerId || accountLogIn.accountId, - receiverId: transaction.receiverId || contract.contractId, - }; - }); - }; - // Separate actions into individual transactions because not available in 0x accounts. - const transformEthereumTransactions = (transactions) => { - return transactions - .map((transaction) => { - return transaction.actions.map((action) => { - return { - signerId: transaction.signerId, - receiverId: transaction.receiverId, - actions: [action], - }; - }); - }) - .flat(); - }; - // Check if accessKey is usable to execute all transaction. - const validateAccessKey = ({ transactions, accessKey, }) => { - if (accessKey.permission === "FullAccess") { - return true; - } - return transactions.every((tx) => { - // eslint-disable-next-line @typescript-eslint/naming-convention - const { receiver_id, method_names } = accessKey.permission.FunctionCall; - if (receiver_id !== tx.receiverId) { - return false; - } - return tx.actions.every((action) => { - if (action.type !== "FunctionCall") { - return false; - } - const { methodName, deposit } = action.params; - if (method_names.length && !method_names.includes(methodName)) { - return false; - } - return BigInt(deposit) <= 0; - }); - }); - }; - // Get the relayer public key and onboarding transaction if needed. - const getRelayerOnboardingInfo = async ({ accountId, }) => { - let relayerPublicKey; - try { - const response = await fetch(nearRpc, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: 3, - method: "near_getPublicKey", - }), - }); - const { result } = await response.json(); - relayerPublicKey = - "ed25519:" + bs58_1.default.encode(Buffer.from(result.public_key, "hex")); - } - catch (error) { - logger.error(error); - throw new Error("Failed to fetch the relayer's public key."); - } - try { - const key = await nearProvider.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountId, - public_key: relayerPublicKey, - }); - logger.log("User account ready, relayer access key onboarded.", relayerPublicKey, key); - return { relayerPublicKey, onboardingTransaction: null }; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } - catch (error) { - logger.error(error); - if (!error.message?.includes("does not exist while viewing") && - !error.message?.includes("doesn't exist") && - !error.message?.includes("does not exist") && - !error.message?.includes("has never been observed on the node")) { - throw new Error("Failed to view the relayer public key (view_access_key)."); - } - logger.warn("Need to add the relayer access key:", relayerPublicKey); - // Add the relayer's access key on-chain. - return { - relayerPublicKey, - onboardingTransaction: { - signerId: accountId, - receiverId: accountId, - actions: [ - { - type: "AddKey", - params: { - publicKey: relayerPublicKey, - accessKey: { - nonce: 0, - permission: { - receiverId: accountId, - allowance: "0", - methodNames: [utils_2.RLP_EXECUTE], - }, - }, - }, - }, - ], - }, - }; - } - }; - const switchChain = async () => { - const account = wagmiCore.getAccount(wagmiConfig); - if (account.chainId !== expectedChainId) { - const { showModal, hideModal } = (0, modal_1.createChainSwitchModal)({ - chain, - }); - showModal(); - try { - await wagmiCore.switchChain(wagmiConfig, { - chainId: expectedChainId, - }); - } - catch (error) { - logger.error(error); - // TODO: add the link to onboarding page when available. - throw new Error("Wallet didn't connect to NEAR Protocol network, try adding and selecting the network manually inside wallet settings."); - // NOTE: we don't hide the modal in case of error to allow the user to add the network manually. - } - hideModal(); - } - }; - const signAndSendTransactions = async (transactions) => { - const nearTxs = await transformTransactions(transactions); - const [accountLogIn] = await getAccounts(); - // If transactions can be executed with FunctionCall access key do it, otherwise execute 1 by 1 with Ethereum wallet. - if (accountLogIn.publicKey && nearTxs.length) { - let accessKeyUsable; - try { - const accessKey = await nearProvider.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountLogIn.accountId, - public_key: accountLogIn.publicKey, - }); - accessKeyUsable = validateAccessKey({ - transactions: nearTxs, - accessKey, - }); - } - catch (error) { - logger.error(error); - accessKeyUsable = false; - } - if (accessKeyUsable) { - const signer = new nearAPI.InMemorySigner(_state.keystore); - const signedTransactions = await (0, wallet_utils_1.signTransactions)(nearTxs, signer, options.network); - const results = []; - for (let i = 0; i < signedTransactions.length; i += 1) { - const nearTx = await nearProvider.sendTransaction(signedTransactions[i]); - logger.log("NEAR transaction:", nearTx); - if (typeof nearTx.status === "object" && - typeof nearTx.status.Failure === "object" && - nearTx.status.Failure !== null) { - logger.error("Transaction execution error."); - throw (0, utils_1.parseRpcError)(nearTx.status.Failure); - } - results.push(nearTx); - } - return results; - } - } - const { relayerPublicKey, onboardingTransaction } = await getRelayerOnboardingInfo({ - accountId: accountLogIn.accountId, - }); - let txs = transformEthereumTransactions(nearTxs); - if (onboardingTransaction) { - // Onboard the relayer before executing other transactions. - txs = [onboardingTransaction, ...txs]; - } - await switchChain(); - const results = []; - await (() => { - return new Promise((resolve, reject) => { - const { showModal, hideModal, renderTxs } = (0, modal_1.createTxModal)({ - onCancel: () => { - reject("User canceled Ethereum wallet transaction(s)."); - }, - txs, - relayerPublicKey, - explorerUrl: nearExplorer, - }); - showModal(); - (async () => { - try { - const ethTxHashes = []; - for (const [index, tx] of txs.entries()) { - let txHash; - let txError = null; - while (!txHash) { - try { - await (() => { - return new Promise((resolveTx, rejectTx) => { - renderTxs({ - selectedIndex: index, - ethTxHashes, - error: txError, - onConfirm: async () => { - try { - txError = null; - renderTxs({ - selectedIndex: index, - ethTxHashes, - error: txError, - }); - txHash = await executeTransaction({ - tx, - relayerPublicKey, - }); - resolveTx(); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } - catch (err) { - logger.error(err); - if (!err.message?.includes("reject") && - !err.message?.includes("denied")) { - txError = "Transaction execution error."; - } - rejectTx(new utils_2.EthTxError("Transaction request error.")); - } - }, - }); - }); - })(); - } - catch (error) { - logger.error(error); - if (!(error instanceof utils_2.EthTxError)) { - throw new Error("Ethereum modal render error."); - } - } - } - logger.log(`Sent transaction: ${txHash}`); - ethTxHashes.push(txHash); - renderTxs({ - selectedIndex: index, - ethTxHashes, - }); - await new Promise((r) => setTimeout(r, 2000)); - let receipt; - try { - // NOTE: error is thrown if tx failed so we catch it to get the receipt. - receipt = await wagmiCore.waitForTransactionReceipt(wagmiConfig, { - hash: txHash, - chainId: expectedChainId, - }); - } - catch (error) { - logger.error(error); - while (!receipt) { - try { - await new Promise((r) => setTimeout(r, 1000)); - receipt = await wagmiCore.getTransactionReceipt(wagmiConfig, { - hash: txHash, - chainId: expectedChainId, - }); - } - catch (err) { - logger.log(err); - } - } - } - logger.log("Receipt:", receipt); - let nearTx; - while (!nearTx) { - try { - await new Promise((r) => setTimeout(r, 1000)); - nearTx = await nearProvider.txStatus( - /* // @ts-expect-error */ - receipt.nearTransactionHash, accountLogIn.accountId); - } - catch (err) { - logger.log(err); - } - } - logger.log("NEAR transaction:", nearTx); - if (receipt.status !== "success") { - const failedOutcome = nearTx.receipts_outcome.find(({ outcome }) => typeof outcome.status === "object" && - typeof outcome.status.Failure === "object" && - outcome.status.Failure !== null && - outcome.executor_id === tx.receiverId); - if (failedOutcome) { - reject((0, utils_1.parseRpcError)(failedOutcome.outcome.status.Failure)); - } - else { - reject("Transaction execution error, failed to parse failure reason."); - } - // NOTE: after return, `finally { hideModal() }` will run. - return; - } - results.push(nearTx); - } - resolve(); - } - catch (error) { - logger.error(error); - reject(error); - } - finally { - hideModal(); - } - })(); - }); - })(); - return results; - }; - const signOut = async () => { - const [accountLogIn] = await getAccounts(); - if (accountLogIn.publicKey) { - try { - // Check that the key exists before making a transaction. - await nearProvider.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountLogIn.accountId, - public_key: accountLogIn.publicKey, - }); - // If there is a connection problem with the wallet, the user can cancel from the modal to skip the disconnect transaction. - // If not deleted, the access key will be reused during signIn. - await signAndSendTransactions([ - { - signerId: accountLogIn.accountId, - receiverId: accountLogIn.accountId, - actions: [ - { - type: "DeleteKey", - params: { - publicKey: accountLogIn.publicKey, - }, - }, - ], - }, - ]); - _state.keystore.removeKey(options.network.networkId, accountLogIn.accountId); - } - catch (error) { - logger.error(error); - } - } - try { - wagmiCore.disconnect(wagmiConfig); - } - catch (error) { - logger.error(error); - } - emitter.emit("signedOut", null); - cleanup(); - }; - return { - async signIn({ contractId, methodNames = [] }) { - logger.log("EthereumWallets:signIn", { contractId, methodNames }); - if (_state.isConnecting) { - throw new Error("SignIn request already received."); - } - try { - _state.isConnecting = true; - let unwatchAccountConnected; - let unsubscribeCloseModal; - let account = wagmiCore.getAccount(wagmiConfig); - let address = account.address?.toLowerCase(); - // Open web3Modal and wait for a wallet to be connected or for the web3Modal to be closed. - if (!address) { - try { - if (web3Modal) { - web3Modal.open(); - await (() => { - return new Promise((resolve, reject) => { - try { - unwatchAccountConnected = wagmiCore.watchAccount(wagmiConfig, { - onChange: (data) => { - if (!data.address) { - return; - } - resolve(data); - }, - }); - unsubscribeCloseModal = web3Modal.subscribeEvents((event) => { - const newAccount = wagmiCore.getAccount(wagmiConfig); - if (event.data.event === "MODAL_CLOSE" && - !newAccount.address) { - reject("Web3Modal closed without connecting to an Ethereum wallet."); - } - }); - } - catch (error) { - reject("User rejected"); - } - }); - })(); - } - else { - await wagmiCore.connect(wagmiConfig, { - connector: wagmiCore.injected(), - }); - } - account = wagmiCore.getAccount(wagmiConfig); - address = account.address?.toLowerCase(); - if (!address) { - throw new Error("Failed to get Ethereum wallet address"); - } - } - catch (error) { - logger.error(error); - throw new Error("Failed to connect Ethereum wallet."); - } - finally { - try { - // Prevent overshadowing the original exception - if (unwatchAccountConnected) { - unwatchAccountConnected(); - } - if (unsubscribeCloseModal) { - unsubscribeCloseModal(); - } - } - catch (error) { - logger.error(error); - } - } - } - else { - logger.log("Wallet already connected"); - } - await switchChain(); - // Login with FunctionCall access key, reuse keypair or create a new one. - const accountId = devMode ? address + "." + devModeAccount : address; - let publicKey; - if (contractId) { - const keyPair = await _state.keystore.getKey(options.network.networkId, accountId); - let reUseKeyPair = false; - if (keyPair) { - try { - await nearProvider.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountId, - public_key: keyPair.getPublicKey().toString(), - }); - reUseKeyPair = true; - } - catch (error) { - logger.warn("Local access key cannot be reused."); - _state.keystore.removeKey(options.network.networkId, accountId); - } - } - if (reUseKeyPair) { - publicKey = keyPair.getPublicKey().toString(); - logger.log("Reusing existing publicKey:", publicKey); - } - else { - const newAccessKeyPair = nearAPI.utils.KeyPair.fromRandom("ed25519"); - publicKey = newAccessKeyPair.getPublicKey().toString(); - logger.log("Created new publicKey:", publicKey); - await signAndSendTransactions([ - { - signerId: accountId, - receiverId: accountId, - actions: [ - { - type: "AddKey", - params: { - publicKey, - accessKey: { - nonce: 0, - permission: { - receiverId: contractId, - allowance: utils_2.DEFAULT_ACCESS_KEY_ALLOWANCE, - methodNames, - }, - }, - }, - }, - ], - }, - ]); - await _state.keystore.setKey(options.network.networkId, accountId, newAccessKeyPair); - } - } - else if (alwaysOnboardDuringSignIn) { - // Check onboarding status and onboard the relayer if needed. - await signAndSendTransactions([]); - } - const accountLogIn = { - accountId, - publicKey, - }; - emitter.emit("signedIn", { - contractId: contractId, - methodNames: methodNames ?? [], - accounts: [accountLogIn], - }); - if (!_state.subscriptions.length) { - setupEvents(); - } - _state.isConnecting = false; - try { - // Hide modal which stays open after adding a new network. - if (web3Modal) { - web3Modal.close(); - } - } - catch (error) { - logger.error(error); - } - return [accountLogIn]; - } - catch (error) { - _state.isConnecting = false; - try { - // Prevent overshadowing the original exception - // Disconnect to let user start again from the beginning: wallet selection. - wagmiCore.disconnect(wagmiConfig); - } - catch (err) { - logger.error(err); - } - throw error; - } - }, - signOut, - getAccounts, - async verifyOwner({ message }) { - logger.log("EthereumWallets:verifyOwner", { message }); - throw new Error("Not implemented: ed25519 N/A, '\x19Ethereum Signed Message:\n' prefix is not compatible, use personal_sign or eth_signTypedData_v4 instead."); - }, - async signMessage({ message, nonce, recipient }) { - logger.log("EthereumWallets:signMessage", { message, nonce, recipient }); - throw new Error("Not implemented: ed25519 N/A, '\x19Ethereum Signed Message:\n' prefix is not compatible, use personal_sign or eth_signTypedData_v4 instead."); - }, - async signAndSendTransaction(transaction) { - logger.log("EthereumWallets:signAndSendTransaction", transaction); - const outcomes = await signAndSendTransactions([transaction]); - // Return the last transaction outcome. - return outcomes[outcomes.length - 1]; - }, - async signAndSendTransactions({ transactions }) { - logger.log("EthereumWallets:signAndSendTransactions", { transactions }); - return await signAndSendTransactions(transactions); - }, - }; -}; -function setupEthereumWallets(params) { - return async () => { - if (!wagmiCore) { - if (params.wagmiCore) { - wagmiCore = params.wagmiCore; - } - else { - await importWagmiCore(); - } - } - return { - id: "ethereum-wallets", - type: "injected", - metadata: { - name: "Ethereum Wallet", - description: "Ethereum wallets (EOA) on NEAR Protocol.", - iconUrl: params.iconUrl ?? icon_1.default, - deprecated: params.deprecated ?? false, - available: true, - downloadUrl: "", - }, - init: (config) => { - return EthereumWallets({ - ...config, - params, - }); - }, - }; - }; -} diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/modal.d.ts b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/modal.d.ts deleted file mode 100644 index 2d41e0fa3..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/modal.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { Transaction } from "@near-wallet-selector/core"; -import type { Chain } from "viem"; -export declare function createTxModal({ onCancel, txs, relayerPublicKey, explorerUrl, }: { - onCancel: () => void; - txs: Array; - relayerPublicKey: string; - explorerUrl: string; -}): { - showModal: () => void; - hideModal: () => void; - renderTxs: ({ selectedIndex, ethTxHashes, error, onConfirm, }: { - selectedIndex: number; - ethTxHashes: Array; - error?: string | null; - onConfirm?: () => void; - }) => void; -}; -export declare function createChainSwitchModal({ chain }: { - chain: Chain; -}): { - showModal: () => void; - hideModal: () => void; -}; -//# sourceMappingURL=modal.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/modal.d.ts.map b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/modal.d.ts.map deleted file mode 100644 index a2790a430..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/modal.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../../../src/lib/modal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAIlC,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,GAAG,EACH,gBAAgB,EAChB,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;;;mEAqFI;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB;EA6PF;AAED,wBAAgB,sBAAsB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE;;;EAyFjE"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/modal.js b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/modal.js deleted file mode 100644 index a783c1ad7..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/modal.js +++ /dev/null @@ -1,352 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createTxModal = createTxModal; -exports.createChainSwitchModal = createChainSwitchModal; -const viem_1 = require("viem"); -const utils_1 = require("./utils"); -const styles_1 = require("./styles"); -function createTxModal({ onCancel, txs, relayerPublicKey, explorerUrl, }) { - // Create a style element and append the CSS styles - const styleElement = window.document.createElement("style"); - styleElement.textContent = styles_1.modalStyles; - window.document.head.appendChild(styleElement); - // Container with display none/block - const modalContainer = window.document.createElement("div"); - modalContainer.classList.add("ethereum-wallet-modal"); - modalContainer.setAttribute("aria-labelledby", "modal-title"); - modalContainer.setAttribute("role", "dialog"); - modalContainer.setAttribute("aria-modal", "true"); - // Backdrop - const backdrop = window.document.createElement("div"); - backdrop.classList.add("ethereum-wallet-modal-backdrop"); - // Wrapper for modal - const modalWrapper = window.document.createElement("div"); - modalWrapper.classList.add("ethereum-wallet-modal-wrapper"); - // Modal content container - const modalContentContainer = window.document.createElement("div"); - modalContentContainer.classList.add("ethereum-wallet-modal-container"); - // Modal content - const isLogIn = txs.find((tx) => tx.actions[0].type === "AddKey"); - const isOnboard = txs.find((tx) => tx.actions[0].type === "AddKey" && - tx.actions[0].params.publicKey === relayerPublicKey); - const modalContent = window.document.createElement("div"); - modalContent.classList.add("ethereum-wallet-modal-content"); - modalContent.innerHTML = ` - ${txs.length === 1 && isLogIn - ? `

${isOnboard ? "Onboard" : "Log in"}

` - : txs.length === 1 && - txs[0].actions.length === 1 && - txs[0].actions[0].type === "DeleteKey" - ? "

Log out

" - : isLogIn - ? `

Log in: send ${txs.length} transaction${txs.length > 1 ? "s" : ""}

` - : `

Send ${txs.length} transaction${txs.length > 1 ? "s" : ""}

`} -
- - `; - // // Append the elements to form the complete structure - modalContentContainer.appendChild(modalContent); - modalWrapper.appendChild(modalContentContainer); - modalContainer.appendChild(backdrop); - modalContainer.appendChild(modalWrapper); - // Append modal container to document body - window.document.body.appendChild(modalContainer); - // Function to show the modal - const showModal = () => { - modalContainer.style.display = "block"; - }; - // Function to hide the modal - const hideModal = () => { - // modalContainer.style.display = "none"; - modalContainer.remove(); - }; - // On cancel button click - window.document - .querySelector(".ethereum-wallet-btn-cancel") - ?.addEventListener("click", () => { - onCancel(); - hideModal(); - }); - const renderTxs = ({ selectedIndex, ethTxHashes, error, onConfirm, }) => { - const container = document.querySelector(".ethereum-wallet-txs"); - container.innerHTML = ""; - txs.forEach((tx, i) => { - const txNumber = i + 1; - const singleTx = txs.length === 1; - const txElement = document.createElement("div"); - txElement.classList.add("ethereum-wallet-tx"); - if (singleTx) { - txElement.classList.add("ethereum-wallet-tx-single"); - } - const isCompleted = i < selectedIndex; - const isActive = i === selectedIndex; - const isPending = i > selectedIndex; - const isSent = selectedIndex < ethTxHashes.length; - const explorerLink = i < ethTxHashes.length - ? `${explorerUrl}/tx/${ethTxHashes[i]}` - : undefined; - if (!singleTx) { - if (isCompleted) { - txElement.classList.add("ethereum-wallet-tx-completed"); - } - if (isActive) { - txElement.classList.add("ethereum-wallet-tx-signing"); - } - if (isPending) { - txElement.classList.add("ethereum-wallet-tx-pending"); - } - } - txElement.innerHTML = ` - ${isCompleted - ? ` -
-
-

Transaction ${txNumber}

- ${explorerLink - ? ` - - - - ` - : ""} -
- -
- ` - : isPending - ? ` -
-

Transaction ${txNumber}

- -
- ` - : ` - ${!singleTx - ? ` -
-

Transaction ${txNumber}

- -
- ` - : ""} -
- ${tx.actions[0].type === "AddKey" - ? tx.actions[0].params.accessKey.permission === "FullAccess" - ? ` -
-

WARNING: The application is requesting a FullAccess key. You can lose your account and all your assets. Only approve this transaction if you know what you are doing!

-

` - : tx.actions[0].params.accessKey.permission.allowance === - "0" && - tx.actions[0].params.publicKey === relayerPublicKey && - tx.actions[0].params.accessKey.permission.receiverId === - tx.signerId && - tx.actions[0].params.accessKey.permission.methodNames - ?.length === 1 && - tx.actions[0].params.accessKey.permission - .methodNames[0] === utils_1.RLP_EXECUTE - ? ` -
-

This one-time transaction will onboard your account and enable you to transact on NEAR Protocol.

-
` - : ` -
-

Connect to ${tx.actions[0].params.accessKey.permission.receiverId}

-

- Network Fee Allowance: ${tx.actions[0].params.accessKey.permission - .allowance === "0" - ? "unlimited" - : (0, viem_1.formatUnits)(BigInt(tx.actions[0].params.accessKey.permission - .allowance ?? utils_1.DEFAULT_ACCESS_KEY_ALLOWANCE), 24)} NEAR -

- ${tx.actions[0].params.accessKey.permission - .allowance === "0" - ? "

WARNING: this key will have unlimited allowance spendable towards network fees, only approve this transaction if you trust the application and you know what you are doing!

" - : "

This allowance is spendable by the application towards network fees incurred during use.

"} -
- ` - : tx.actions[0].type === "DeleteKey" - ? ` -
-

This is an optional transaction which removes the application access key. If you reject the transaction, the key will be reused when you login next time.

-
- ` - : tx.actions[0].type === "FunctionCall" - ? ` -
-
-
From
-
${tx.signerId}
-
-
-
To
-
${tx.receiverId}
-
-
-
Type
-
${tx.actions[0].params.methodName}
-
- ${tx.actions[0].params.deposit === "1" || - tx.actions[0].params.deposit === "0" - ? "" - : ` -
-
Deposit
-
${(0, viem_1.formatUnits)(BigInt(tx.actions[0].params.deposit), 24)} NEAR
-
- `} -
- ` - : tx.actions[0].type === "Transfer" - ? ` -
-
-
From
-
${tx.signerId}
-
-
-
To
-
${tx.receiverId}
-
-
-
Type
-
${tx.actions[0].type}
-
-
-
Amount
-
${(0, viem_1.formatUnits)(BigInt(tx.actions[0].params.deposit), 24)} NEAR
-
-
- ` - : ` -
-

Unknown transaction type.

-
- `} -
- -
-

${JSON.stringify(tx.actions[0], null, 2)}

-
- ${error ? `

${error}

` : ""} - ${onConfirm - ? `` - : `
-

- ${isSent - ? "Sending transaction" - : "Confirm in your wallet"} -

-
-
`} - `} - `; - container.appendChild(txElement); - }); - if (onConfirm) { - window.document - .querySelector(`#confirm-btn-${selectedIndex}`) - ?.addEventListener("click", () => { - onConfirm(); - }); - } - const toggleButton = window.document.querySelector(".ethereum-wallet-btn-details"); - const detailsContainer = window.document.querySelector(".ethereum-wallet-txs-details"); - toggleButton?.addEventListener("click", () => { - if (!detailsContainer || !toggleButton) { - return; - } - if (detailsContainer.style.display === "none" || - detailsContainer.style.display === "") { - detailsContainer.style.display = "block"; - toggleButton.textContent = "Hide details"; - } - else { - detailsContainer.style.display = "none"; - toggleButton.textContent = "Show details"; - } - }); - }; - return { showModal, hideModal, renderTxs }; -} -function createChainSwitchModal({ chain }) { - // Create a style element and append the CSS styles - const styleElement = window.document.createElement("style"); - styleElement.textContent = styles_1.modalStyles; - window.document.head.appendChild(styleElement); - // Container with display none/block - const modalContainer = window.document.createElement("div"); - modalContainer.classList.add("ethereum-wallet-modal"); - modalContainer.setAttribute("aria-labelledby", "modal-title"); - modalContainer.setAttribute("role", "dialog"); - modalContainer.setAttribute("aria-modal", "true"); - // Backdrop - const backdrop = window.document.createElement("div"); - backdrop.classList.add("ethereum-wallet-modal-backdrop"); - // Wrapper for modal - const modalWrapper = window.document.createElement("div"); - modalWrapper.classList.add("ethereum-wallet-modal-wrapper"); - // Modal content container - const modalContentContainer = window.document.createElement("div"); - modalContentContainer.classList.add("ethereum-wallet-modal-container"); - // Modal content - const modalContent = window.document.createElement("div"); - modalContent.classList.add("ethereum-wallet-modal-content"); - modalContent.innerHTML = ` -

Switch Network

-
-
-

Please approve the switch network request in your wallet.

-

If you experience problems connecting you may need to add the network manually from your wallet settings and try again.

-
-
-
-
Network Name
-
${chain.name}
-
-
-
RPC URL
-
${chain.rpcUrls.default.http[0]}
-
-
-
Chain ID
-
${chain.id}
-
-
-
Symbol
-
${chain.nativeCurrency.symbol}
-
-
-
Block Explorer URL
-
${chain.blockExplorers?.default.url}
-
-
-
- - `; - // // Append the elements to form the complete structure - modalContentContainer.appendChild(modalContent); - modalWrapper.appendChild(modalContentContainer); - modalContainer.appendChild(backdrop); - modalContainer.appendChild(modalWrapper); - // Append modal container to document body - window.document.body.appendChild(modalContainer); - // Function to show the modal - const showModal = () => { - modalContainer.style.display = "block"; - }; - // Function to hide the modal - const hideModal = () => { - // modalContainer.style.display = "none"; - modalContainer.remove(); - }; - // On cancel button click - window.document - .querySelector(".ethereum-wallet-btn-cancel") - ?.addEventListener("click", () => { - hideModal(); - }); - return { showModal, hideModal }; -} diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/styles.d.ts b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/styles.d.ts deleted file mode 100644 index 12a9d56c3..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/styles.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const modalStyles = "\n .ethereum-wallet-modal *,\n .ethereum-wallet-modal *::before,\n .ethereum-wallet-modal *::after {\n box-sizing: border-box;\n }\n .ethereum-wallet-modal button {\n cursor: pointer;\n top: auto;\n }\n .ethereum-wallet-modal button:hover {\n top: auto;\n }\n .ethereum-wallet-modal button:focus-visible {\n top: auto;\n }\n\n .ethereum-wallet-modal dt {\n flex-shrink: 0;\n margin: 0;\n font-size: 14px;\n line-height: 20px;\n color: #202020;\n font-weight: 500;\n }\n .ethereum-wallet-modal dd {\n margin: 0;\n font-size: 14px;\n line-height: 20px;\n color: #202020;\n font-weight: 700;\n text-align: right;\n word-break: break-all;\n overflow-wrap: break-word;\n }\n\n .ethereum-wallet-modal {\n display: none;\n position: relative;\n z-index: 9999;\n }\n .ethereum-wallet-modal-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n }\n .ethereum-wallet-modal-wrapper {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100vw;\n overflow-y: auto;\n }\n .ethereum-wallet-modal-container {\n display: flex;\n min-height: 100%;\n align-items: center;\n justify-content: center;\n padding: 1rem;\n text-align: center;\n }\n .ethereum-wallet-modal-content {\n position: relative;\n overflow: hidden;\n border-radius: 1rem;\n background-color: #fff;\n padding: 20px;\n text-align: left;\n max-width: 400px;\n width: 100%;\n box-shadow:\n 0px 4px 8px rgba(0, 0, 0, 0.06),\n 0px 0px 0px 1px rgba(0, 0, 0, 0.06);\n }\n\n .ethereum-wallet-modal h2 {\n font-weight: 700;\n font-size: 24px;\n line-height: 30px;\n text-align: center;\n letter-spacing: -0.1px;\n color: #202020;\n margin: 0;\n }\n\n .ethereum-wallet-txs {\n margin: 20px 0 10px 0;\n display: flex;\n flex-direction: column;\n row-gap: 8px;\n }\n\n .ethereum-wallet-tx {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n .ethereum-wallet-tx:not(.ethereum-wallet-tx-single) {\n padding: 0 10px;\n }\n .ethereum-wallet-tx-list-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 10px;\n width: 100%;\n }\n .ethereum-wallet-tx-list-header p {\n margin: 0;\n font-size: 14px;\n line-height: 20px;\n color: #202020;\n font-weight: 700;\n }\n .ethereum-wallet-tx-list-header svg {\n height: 24px;\n width: 24px;\n }\n\n .ethereum-wallet-tx-explorer-link {\n height: 24px;\n width: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n }\n .ethereum-wallet-tx-explorer-link:hover {\n background-color: #DDF3E4;\n }\n .ethereum-wallet-tx-explorer-link svg {\n height: 16px;\n width: 16px;\n color: #202020;\n }\n\n .ethereum-wallet-tx.ethereum-wallet-tx-signing {\n background-color: #F9F9F9;\n padding-bottom: 10px;\n border-radius: 8px;\n }\n .ethereum-wallet-tx.ethereum-wallet-tx-pending {\n background-color: #F9F9F9;\n border-radius: 8px;\n }\n .ethereum-wallet-tx.ethereum-wallet-tx-completed {\n background-color: #F2FCF5;\n border-radius: 8px;\n }\n\n .ethereum-wallet-tx-single .ethereum-wallet-tx-info-container {\n border-top: 1px solid #EBEBEB;\n border-bottom: 1px solid #EBEBEB;\n }\n .ethereum-wallet-tx-info-text > p {\n color: #646464;\n margin: 0;\n font-weight: 500;\n font-size: 12px;\n line-height: 16px;\n letter-spacing: 0.04px;\n }\n .ethereum-wallet-tx-info-text > p:not(:last-child) {\n margin-bottom: 8px;\n }\n\n .ethereum-wallet-tx-info-row {\n padding: 14px 10px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n column-gap: 20px;\n }\n .ethereum-wallet-tx-info-col {\n padding: 14px 10px;\n display: flex;\n flex-direction: column;\n justify-content: start;\n row-gap: 4px;\n align-items: start;\n }\n .ethereum-wallet-tx-info-text {\n padding: 10px;\n }\n .ethereum-wallet-tx-params,\n .ethereum-wallet-tx-params dl {\n margin: 0;\n }\n .ethereum-wallet-tx .ethereum-wallet-tx-params {\n border-top: 1px solid #EBEBEB;\n border-bottom: 1px solid #EBEBEB;\n }\n .ethereum-wallet-tx-params div:not(:last-child) {\n border-bottom: 1px solid #EBEBEB;\n }\n\n .ethereum-wallet-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n color: #1C2024;\n border: 1px solid rgba(1, 6, 47, 0.173) !important;\n background-color: #fff !important;\n padding: 14px;\n font-size: 14px;\n line-height: 20px;\n font-weight: 700;\n }\n .ethereum-wallet-btn:hover {\n border: 1px solid rgba(1, 6, 47, 0.173);\n background-color: #F2F2F5 !important;\n }\n .ethereum-wallet-btn:focus-visible {\n outline: 2px solid;\n outline-offset: 2px;\n outline-color: #8B8D98;\n border: 1px solid rgba(1, 6, 47, 0.173);\n }\n .ethereum-wallet-btn-sm {\n padding: 10px 14px;\n font-size: 12px;\n line-height: 16px;\n }\n .ethereum-wallet-btn-xs {\n padding: 8px 12px;\n font-weight: 500;\n font-size: 12px;\n line-height: 16px;\n letter-spacing: 0.04px;\n border-radius: 9999px;\n }\n .ethereum-wallet-btn-confirm {\n width: 100%;\n margin-top: 24px;\n }\n .ethereum-wallet-btn-cancel {\n width: 100%;\n background-color: #FFF9F9 !important;\n color: #dc2626 !important;\n border: 1px solid #fecaca !important;\n }\n .ethereum-wallet-btn-cancel:hover {\n background-color: #fef2f2 !important;\n }\n .ethereum-wallet-btn-details {\n margin-top: 20px;\n border-radius: 9999px;\n }\n\n .ethereum-wallet-tx-error {\n font-size: 14px;\n line-height: 20px;\n color: #dc2626;\n font-weight: 700;\n text-align: center;\n text-wrap: balance;\n margin-top: 20px;\n margin-bottom: 0px;\n }\n\n .ethereum-wallet-txs-details {\n display: none;\n margin-top: 10px;\n padding: 10px;\n background: #F1F1F1;\n border-radius: 8px;\n width: 100%;\n max-width: 100%;\n overflow: auto;\n }\n .ethereum-wallet-txs-details p {\n font-weight: 500;\n font-size: 12px;\n line-height: 16px;\n letter-spacing: 0.04px;\n color: #646464;\n word-wrap: break-word;\n overflow-wrap: break-word;\n white-space: pre-wrap;\n margin: 0;\n }\n\n .ethereum-wallet-txs-status {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 14px;\n background: #F1F4FE;\n border-radius: 8px;\n width: 100%;\n margin-top: 24px;\n border: 1px solid rgba(0,0,0,0);\n }\n .ethereum-wallet-txs-status p {\n margin: 0;\n color: #384EAC;\n font-weight: 700;\n font-size: 14px;\n line-height: 20px;\n }\n\n .ethereum-wallet-tx-highlight {\n position: relative;\n z-index: 1;\n }\n .ethereum-wallet-tx-highlight::before {\n content: \"\";\n position: absolute;\n top: -4px;\n left: -6px;\n right: -6px;\n bottom: -4px;\n z-index: -1;\n background-color: #DDF3E4;\n border-radius: 8px;\n }\n\n .ethereum-wallet-spinner {\n position: absolute;\n right: 14px;\n top: 16px;\n width: 16px;\n height: 16px;\n border: 2px solid #384EAC;\n border-bottom-color: transparent;\n border-radius: 50%;\n animation: rotation 1s linear infinite;\n }\n @keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n"; -//# sourceMappingURL=styles.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/styles.d.ts.map b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/styles.d.ts.map deleted file mode 100644 index af3fae78d..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/styles.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/lib/styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,olPAwVvB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/styles.js b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/styles.js deleted file mode 100644 index f52fda136..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/styles.js +++ /dev/null @@ -1,348 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.modalStyles = void 0; -exports.modalStyles = ` - .ethereum-wallet-modal *, - .ethereum-wallet-modal *::before, - .ethereum-wallet-modal *::after { - box-sizing: border-box; - } - .ethereum-wallet-modal button { - cursor: pointer; - top: auto; - } - .ethereum-wallet-modal button:hover { - top: auto; - } - .ethereum-wallet-modal button:focus-visible { - top: auto; - } - - .ethereum-wallet-modal dt { - flex-shrink: 0; - margin: 0; - font-size: 14px; - line-height: 20px; - color: #202020; - font-weight: 500; - } - .ethereum-wallet-modal dd { - margin: 0; - font-size: 14px; - line-height: 20px; - color: #202020; - font-weight: 700; - text-align: right; - word-break: break-all; - overflow-wrap: break-word; - } - - .ethereum-wallet-modal { - display: none; - position: relative; - z-index: 9999; - } - .ethereum-wallet-modal-backdrop { - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.5); - } - .ethereum-wallet-modal-wrapper { - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - width: 100vw; - overflow-y: auto; - } - .ethereum-wallet-modal-container { - display: flex; - min-height: 100%; - align-items: center; - justify-content: center; - padding: 1rem; - text-align: center; - } - .ethereum-wallet-modal-content { - position: relative; - overflow: hidden; - border-radius: 1rem; - background-color: #fff; - padding: 20px; - text-align: left; - max-width: 400px; - width: 100%; - box-shadow: - 0px 4px 8px rgba(0, 0, 0, 0.06), - 0px 0px 0px 1px rgba(0, 0, 0, 0.06); - } - - .ethereum-wallet-modal h2 { - font-weight: 700; - font-size: 24px; - line-height: 30px; - text-align: center; - letter-spacing: -0.1px; - color: #202020; - margin: 0; - } - - .ethereum-wallet-txs { - margin: 20px 0 10px 0; - display: flex; - flex-direction: column; - row-gap: 8px; - } - - .ethereum-wallet-tx { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - } - .ethereum-wallet-tx:not(.ethereum-wallet-tx-single) { - padding: 0 10px; - } - .ethereum-wallet-tx-list-header { - display: flex; - justify-content: space-between; - align-items: center; - padding: 12px 10px; - width: 100%; - } - .ethereum-wallet-tx-list-header p { - margin: 0; - font-size: 14px; - line-height: 20px; - color: #202020; - font-weight: 700; - } - .ethereum-wallet-tx-list-header svg { - height: 24px; - width: 24px; - } - - .ethereum-wallet-tx-explorer-link { - height: 24px; - width: 24px; - display: flex; - align-items: center; - justify-content: center; - border-radius: 6px; - } - .ethereum-wallet-tx-explorer-link:hover { - background-color: #DDF3E4; - } - .ethereum-wallet-tx-explorer-link svg { - height: 16px; - width: 16px; - color: #202020; - } - - .ethereum-wallet-tx.ethereum-wallet-tx-signing { - background-color: #F9F9F9; - padding-bottom: 10px; - border-radius: 8px; - } - .ethereum-wallet-tx.ethereum-wallet-tx-pending { - background-color: #F9F9F9; - border-radius: 8px; - } - .ethereum-wallet-tx.ethereum-wallet-tx-completed { - background-color: #F2FCF5; - border-radius: 8px; - } - - .ethereum-wallet-tx-single .ethereum-wallet-tx-info-container { - border-top: 1px solid #EBEBEB; - border-bottom: 1px solid #EBEBEB; - } - .ethereum-wallet-tx-info-text > p { - color: #646464; - margin: 0; - font-weight: 500; - font-size: 12px; - line-height: 16px; - letter-spacing: 0.04px; - } - .ethereum-wallet-tx-info-text > p:not(:last-child) { - margin-bottom: 8px; - } - - .ethereum-wallet-tx-info-row { - padding: 14px 10px; - display: flex; - flex-direction: row; - justify-content: space-between; - column-gap: 20px; - } - .ethereum-wallet-tx-info-col { - padding: 14px 10px; - display: flex; - flex-direction: column; - justify-content: start; - row-gap: 4px; - align-items: start; - } - .ethereum-wallet-tx-info-text { - padding: 10px; - } - .ethereum-wallet-tx-params, - .ethereum-wallet-tx-params dl { - margin: 0; - } - .ethereum-wallet-tx .ethereum-wallet-tx-params { - border-top: 1px solid #EBEBEB; - border-bottom: 1px solid #EBEBEB; - } - .ethereum-wallet-tx-params div:not(:last-child) { - border-bottom: 1px solid #EBEBEB; - } - - .ethereum-wallet-btn { - display: flex; - align-items: center; - justify-content: center; - border-radius: 8px; - color: #1C2024; - border: 1px solid rgba(1, 6, 47, 0.173) !important; - background-color: #fff !important; - padding: 14px; - font-size: 14px; - line-height: 20px; - font-weight: 700; - } - .ethereum-wallet-btn:hover { - border: 1px solid rgba(1, 6, 47, 0.173); - background-color: #F2F2F5 !important; - } - .ethereum-wallet-btn:focus-visible { - outline: 2px solid; - outline-offset: 2px; - outline-color: #8B8D98; - border: 1px solid rgba(1, 6, 47, 0.173); - } - .ethereum-wallet-btn-sm { - padding: 10px 14px; - font-size: 12px; - line-height: 16px; - } - .ethereum-wallet-btn-xs { - padding: 8px 12px; - font-weight: 500; - font-size: 12px; - line-height: 16px; - letter-spacing: 0.04px; - border-radius: 9999px; - } - .ethereum-wallet-btn-confirm { - width: 100%; - margin-top: 24px; - } - .ethereum-wallet-btn-cancel { - width: 100%; - background-color: #FFF9F9 !important; - color: #dc2626 !important; - border: 1px solid #fecaca !important; - } - .ethereum-wallet-btn-cancel:hover { - background-color: #fef2f2 !important; - } - .ethereum-wallet-btn-details { - margin-top: 20px; - border-radius: 9999px; - } - - .ethereum-wallet-tx-error { - font-size: 14px; - line-height: 20px; - color: #dc2626; - font-weight: 700; - text-align: center; - text-wrap: balance; - margin-top: 20px; - margin-bottom: 0px; - } - - .ethereum-wallet-txs-details { - display: none; - margin-top: 10px; - padding: 10px; - background: #F1F1F1; - border-radius: 8px; - width: 100%; - max-width: 100%; - overflow: auto; - } - .ethereum-wallet-txs-details p { - font-weight: 500; - font-size: 12px; - line-height: 16px; - letter-spacing: 0.04px; - color: #646464; - word-wrap: break-word; - overflow-wrap: break-word; - white-space: pre-wrap; - margin: 0; - } - - .ethereum-wallet-txs-status { - position: relative; - display: flex; - justify-content: center; - align-items: center; - padding: 14px; - background: #F1F4FE; - border-radius: 8px; - width: 100%; - margin-top: 24px; - border: 1px solid rgba(0,0,0,0); - } - .ethereum-wallet-txs-status p { - margin: 0; - color: #384EAC; - font-weight: 700; - font-size: 14px; - line-height: 20px; - } - - .ethereum-wallet-tx-highlight { - position: relative; - z-index: 1; - } - .ethereum-wallet-tx-highlight::before { - content: ""; - position: absolute; - top: -4px; - left: -6px; - right: -6px; - bottom: -4px; - z-index: -1; - background-color: #DDF3E4; - border-radius: 8px; - } - - .ethereum-wallet-spinner { - position: absolute; - right: 14px; - top: 16px; - width: 16px; - height: 16px; - border: 2px solid #384EAC; - border-bottom-color: transparent; - border-radius: 50%; - animation: rotation 1s linear infinite; - } - @keyframes rotation { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } - } -`; diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/utils.d.ts b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/utils.d.ts deleted file mode 100644 index a9eeada49..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/utils.d.ts +++ /dev/null @@ -1,82 +0,0 @@ -export declare const ETHEREUM_ACCOUNT_ABI: readonly [{ - readonly name: "functionCall"; - readonly type: "function"; - readonly stateMutability: "payable"; - readonly inputs: readonly [{ - readonly type: "string"; - readonly name: "receiver_id"; - }, { - readonly type: "string"; - readonly name: "method_name"; - }, { - readonly type: "bytes"; - readonly name: "args"; - }, { - readonly type: "uint64"; - readonly name: "gas"; - }, { - readonly type: "uint32"; - readonly name: "yoctoNear"; - }]; - readonly outputs: readonly []; -}, { - readonly name: "transfer"; - readonly type: "function"; - readonly stateMutability: "payable"; - readonly inputs: readonly [{ - readonly type: "string"; - readonly name: "receiver_id"; - }, { - readonly type: "uint32"; - readonly name: "yoctoNear"; - }]; - readonly outputs: readonly []; -}, { - readonly name: "addKey"; - readonly type: "function"; - readonly stateMutability: "nonpayable"; - readonly inputs: readonly [{ - readonly type: "uint8"; - readonly name: "public_key_kind"; - }, { - readonly type: "bytes"; - readonly name: "public_key"; - }, { - readonly type: "uint64"; - readonly name: "nonce"; - }, { - readonly type: "bool"; - readonly name: "is_full_access"; - }, { - readonly type: "bool"; - readonly name: "is_limited_allowance"; - }, { - readonly type: "uint128"; - readonly name: "allowance"; - }, { - readonly type: "string"; - readonly name: "receiver_id"; - }, { - readonly type: "string[]"; - readonly name: "method_names"; - }]; - readonly outputs: readonly []; -}, { - readonly name: "deleteKey"; - readonly type: "function"; - readonly stateMutability: "nonpayable"; - readonly inputs: readonly [{ - readonly type: "uint8"; - readonly name: "public_key_kind"; - }, { - readonly type: "bytes"; - readonly name: "public_key"; - }]; - readonly outputs: readonly []; -}]; -export declare const DEFAULT_ACCESS_KEY_ALLOWANCE = "250000000000000000000000"; -export declare const RLP_EXECUTE = "rlp_execute"; -export declare const MAX_TGAS: bigint; -export declare class EthTxError extends Error { -} -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/utils.d.ts.map b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/utils.d.ts.map deleted file mode 100644 index 7c2956f50..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/lib/utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B,CAAC;AACH,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AACvE,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,QAAQ,QAAiB,CAAC;AACvC,qBAAa,UAAW,SAAQ,KAAK;CAAG"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/utils.js b/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/utils.js deleted file mode 100644 index d10b395c7..000000000 --- a/packages/ethereum-wallets/dist/cjs/ethereum-wallets/src/lib/utils.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.EthTxError = exports.MAX_TGAS = exports.RLP_EXECUTE = exports.DEFAULT_ACCESS_KEY_ALLOWANCE = exports.ETHEREUM_ACCOUNT_ABI = void 0; -const viem_1 = require("viem"); -exports.ETHEREUM_ACCOUNT_ABI = (0, viem_1.parseAbi)([ - "function functionCall(string receiver_id, string method_name, bytes args, uint64 gas, uint32 yoctoNear) payable", - "function transfer(string receiver_id, uint32 yoctoNear) payable", - "function addKey(uint8 public_key_kind, bytes public_key, uint64 nonce, bool is_full_access, bool is_limited_allowance, uint128 allowance, string receiver_id, string[] method_names) external", - "function deleteKey(uint8 public_key_kind, bytes public_key) external", -]); -exports.DEFAULT_ACCESS_KEY_ALLOWANCE = "250000000000000000000000"; // 0.25 NEAR -exports.RLP_EXECUTE = "rlp_execute"; -exports.MAX_TGAS = BigInt(270e12); // Handle overhead of rlp_execute to validate the Ethereum transaction. -class EthTxError extends Error { -} -exports.EthTxError = EthTxError; diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/index.d.ts b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/index.d.ts deleted file mode 100644 index 9b70859cc..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { createAction, signTransactions } from "./lib/wallet-utils"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/index.d.ts.map b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/index.d.ts.map deleted file mode 100644 index 0d9c8c9c2..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../wallet-utils/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/index.js b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/index.js deleted file mode 100644 index 309bdb658..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/index.js +++ /dev/null @@ -1,6 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.signTransactions = exports.createAction = void 0; -var wallet_utils_1 = require("./lib/wallet-utils"); -Object.defineProperty(exports, "createAction", { enumerable: true, get: function () { return wallet_utils_1.createAction; } }); -Object.defineProperty(exports, "signTransactions", { enumerable: true, get: function () { return wallet_utils_1.signTransactions; } }); diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/create-action.d.ts b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/create-action.d.ts deleted file mode 100644 index da65b4629..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/create-action.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as nearAPI from "near-api-js"; -import type { Action } from "@near-wallet-selector/core"; -export declare const createAction: (action: Action) => nearAPI.transactions.Action; -//# sourceMappingURL=create-action.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/create-action.d.ts.map b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/create-action.d.ts.map deleted file mode 100644 index fe8487b52..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/create-action.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"create-action.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/create-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAoB,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAgB3E,eAAO,MAAM,YAAY,WAAY,MAAM,gCAqD1C,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/create-action.js b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/create-action.js deleted file mode 100644 index b4a01ef64..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/create-action.js +++ /dev/null @@ -1,78 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createAction = void 0; -const nearAPI = __importStar(require("near-api-js")); -const { transactions, utils } = nearAPI; -const getAccessKey = (permission) => { - if (permission === "FullAccess") { - return transactions.fullAccessKey(); - } - const { receiverId, methodNames = [] } = permission; - const allowance = permission.allowance - ? BigInt(permission.allowance) - : undefined; - return transactions.functionCallAccessKey(receiverId, methodNames, allowance); -}; -const createAction = (action) => { - switch (action.type) { - case "CreateAccount": - return transactions.createAccount(); - case "DeployContract": { - const { code } = action.params; - return transactions.deployContract(code); - } - case "FunctionCall": { - const { methodName, args, gas, deposit } = action.params; - console.log('alohaws action', action); - return transactions.functionCall(methodName, args, BigInt(gas), BigInt(deposit)); - } - case "Transfer": { - const { deposit } = action.params; - return transactions.transfer(BigInt(deposit)); - } - case "Stake": { - const { stake, publicKey } = action.params; - return transactions.stake(BigInt(stake), utils.PublicKey.from(publicKey)); - } - case "AddKey": { - const { publicKey, accessKey } = action.params; - return transactions.addKey(utils.PublicKey.from(publicKey), - // TODO: Use accessKey.nonce? near-api-js seems to think 0 is fine? - getAccessKey(accessKey.permission)); - } - case "DeleteKey": { - const { publicKey } = action.params; - return transactions.deleteKey(utils.PublicKey.from(publicKey)); - } - case "DeleteAccount": { - const { beneficiaryId } = action.params; - return transactions.deleteAccount(beneficiaryId); - } - default: - throw new Error("Invalid action type"); - } -}; -exports.createAction = createAction; diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts deleted file mode 100644 index fd0b85445..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Signer } from "@near-js/signers"; -import type { SignedTransaction } from "@near-js/transactions"; -import type { Network, Transaction } from "@near-wallet-selector/core/src"; -export declare const signTransactions: (transactions: Array, signer: Signer, network: Network) => Promise; -//# sourceMappingURL=sign-transactions.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts.map b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts.map deleted file mode 100644 index 9624b4968..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sign-transactions.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/sign-transactions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAIzE,eAAO,MAAM,gBAAgB,iBACb,KAAK,CAAC,WAAW,CAAC,UACxB,MAAM,WACL,OAAO,iCAoDjB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/sign-transactions.js b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/sign-transactions.js deleted file mode 100644 index c8c3b6519..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/sign-transactions.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.signTransactions = void 0; -const crypto_1 = require("@near-js/crypto"); -const transactions_1 = require("@near-js/transactions"); -const utils_1 = require("@near-js/utils"); -// import * as nearAPI from "near-api-js"; -const providers_1 = require("@near-js/providers"); -const create_action_1 = require("./create-action"); -const signTransactions = async (transactions, signer, network) => { - const provider = new providers_1.JsonRpcProvider({ - url: network.nodeUrl, - }); - const signedTransactions = []; - for (let i = 0; i < transactions.length; i++) { - const publicKey = await signer.getPublicKey(transactions[i].signerId, network.networkId); - const [block, accessKey] = await Promise.all([ - provider.block({ finality: "final" }), - provider.query({ - request_type: "view_access_key", - finality: "final", - account_id: transactions[i].signerId, - public_key: publicKey.toString(), - }), - ]); - const actions = transactions[i].actions.map((action) => (0, create_action_1.createAction)(action)); - const transaction = (0, transactions_1.createTransaction)(transactions[i].signerId, new crypto_1.PublicKey({ - keyType: crypto_1.KeyType.ED25519, - data: publicKey.data - }), - // PublicKey.from(publicKey.toString()), - transactions[i].receiverId, accessKey.nonce + i + 1, actions, (0, utils_1.baseDecode)(block.header.hash)); - const response = await (0, transactions_1.signTransaction)(transaction, signer, transactions[i].signerId, network.networkId); - signedTransactions.push(response[1]); - } - return signedTransactions; -}; -exports.signTransactions = signTransactions; diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts deleted file mode 100644 index ca97d2268..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createAction } from "./create-action"; -import { signTransactions } from "./sign-transactions"; -export { createAction, signTransactions }; -//# sourceMappingURL=wallet-utils.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts.map b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts.map deleted file mode 100644 index 209167ee4..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-utils.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/wallet-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/wallet-utils.js b/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/wallet-utils.js deleted file mode 100644 index 1d0db17bd..000000000 --- a/packages/ethereum-wallets/dist/cjs/wallet-utils/src/lib/wallet-utils.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.signTransactions = exports.createAction = void 0; -const create_action_1 = require("./create-action"); -Object.defineProperty(exports, "createAction", { enumerable: true, get: function () { return create_action_1.createAction; } }); -const sign_transactions_1 = require("./sign-transactions"); -Object.defineProperty(exports, "signTransactions", { enumerable: true, get: function () { return sign_transactions_1.signTransactions; } }); diff --git a/packages/ethereum-wallets/dist/esm/core/src/index.d.ts b/packages/ethereum-wallets/dist/esm/core/src/index.d.ts deleted file mode 100644 index 18e086590..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/index.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type { WalletSelector, WalletSelectorParams, WalletSelectorEvents, WalletSelectorStore, } from "./lib/wallet-selector.types"; -export { setupWalletSelector } from "./lib/wallet-selector.js"; -export type { Network, NetworkId } from "./lib/options.types"; -export type { Subscription, StorageService, JsonStorageService, EventEmitterService, } from "./lib/services"; -export { EventEmitter } from "./lib/services"; -export type { Optional } from "./lib/utils.types"; -export type { WalletSelectorState, ContractState, ModuleState, AccountState, } from "./lib/store.types"; -export type { WalletModuleFactory, WalletModule, WalletBehaviourFactory, WalletBehaviourOptions, Wallet, WalletType, WalletMetadata, WalletEvents, SignInParams, BrowserWalletMetadata, BrowserWalletBehaviour, BrowserWallet, InjectedWalletMetadata, InjectedWalletBehaviour, InjectedWallet, InstantLinkWalletMetadata, InstantLinkWalletBehaviour, InstantLinkWallet, HardwareWalletMetadata, HardwareWalletSignInParams, HardwareWalletBehaviour, HardwareWallet, HardwareWalletAccount, BridgeWalletMetadata, BridgeWalletBehaviour, BridgeWallet, VerifiedOwner, VerifyOwnerParams, Account, Transaction, Action, ActionType, CreateAccountAction, DeployContractAction, FunctionCallAction, TransferAction, StakeAction, AddKeyAction, DeleteKeyAction, DeleteAccountAction, AddKeyPermission, AccountImportData, SignedMessage, SignMessageParams, } from "./lib/wallet"; -export type { FinalExecutionOutcome } from "@near-js/types"; -export { waitFor, getActiveAccount, isCurrentBrowserSupported, verifyFullKeyBelongsToUser, verifySignature, serializeNep413, } from "./lib/helpers"; -export { translate, allowOnlyLanguage } from "./lib/translate/translate"; -export { mockWallet } from './lib/testUtils'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/index.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/index.d.ts.map deleted file mode 100644 index f98229043..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,EACN,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/index.js b/packages/ethereum-wallets/dist/esm/core/src/index.js deleted file mode 100644 index a545ffa59..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export { setupWalletSelector } from "./lib/wallet-selector.js"; -export { EventEmitter } from "./lib/services"; -export { waitFor, getActiveAccount, isCurrentBrowserSupported, verifyFullKeyBelongsToUser, verifySignature, serializeNep413, } from "./lib/helpers"; -export { translate, allowOnlyLanguage } from "./lib/translate/translate"; -export { mockWallet } from './lib/testUtils'; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/constants.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/constants.d.ts deleted file mode 100644 index ea8f9e98c..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/constants.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export declare const PACKAGE_NAME = "near-wallet-selector"; -export declare const RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -export declare const REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -export declare const REMEMBER_RECENT_WALLETS_STATE: { - ENABLED: string; - DISABLED: string; -}; -export declare const CONTRACT = "contract"; -export declare const PENDING_CONTRACT = "contract:pending"; -export declare const SELECTED_WALLET_ID = "selectedWalletId"; -export declare const PENDING_SELECTED_WALLET_ID = "selectedWalletId:pending"; -//# sourceMappingURL=constants.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/constants.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/constants.d.ts.map deleted file mode 100644 index 30185737c..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/constants.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,yBAAyB,CAAC;AACnD,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,0BAA0B,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/constants.js b/packages/ethereum-wallets/dist/esm/core/src/lib/constants.js deleted file mode 100644 index a75f1a50e..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/constants.js +++ /dev/null @@ -1,11 +0,0 @@ -export const PACKAGE_NAME = "near-wallet-selector"; -export const RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -export const REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -export const REMEMBER_RECENT_WALLETS_STATE = { - ENABLED: "enabled", - DISABLED: "disabled", -}; -export const CONTRACT = "contract"; -export const PENDING_CONTRACT = "contract:pending"; -export const SELECTED_WALLET_ID = `selectedWalletId`; -export const PENDING_SELECTED_WALLET_ID = `selectedWalletId:pending`; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/detect-browser.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/detect-browser.d.ts deleted file mode 100644 index 6c6f4c418..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/detect-browser.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Browser = "aol" | "edge" | "edge-ios" | "yandexbrowser" | "kakaotalk" | "samsung" | "silk" | "miui" | "beaker" | "edge-chromium" | "chrome" | "chromium-webview" | "phantomjs" | "crios" | "firefox" | "fxios" | "opera-mini" | "opera" | "pie" | "netfront" | "ie" | "bb10" | "android" | "ios" | "safari" | "facebook" | "instagram" | "ios-webview" | "curl" | "searchbot"; -export declare const isCurrentBrowserSupported: (supportedBrowser: Array) => boolean; -//# sourceMappingURL=detect-browser.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/detect-browser.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/detect-browser.d.ts.map deleted file mode 100644 index 656e85614..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/detect-browser.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"detect-browser.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/detect-browser.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GACf,KAAK,GACL,MAAM,GACN,UAAU,GACV,eAAe,GACf,WAAW,GACX,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,OAAO,GACP,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO,GACP,KAAK,GACL,UAAU,GACV,IAAI,GACJ,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,UAAU,GACV,WAAW,GACX,aAAa,GACb,MAAM,GACN,WAAW,CAAC;AAoEhB,eAAO,MAAM,yBAAyB,qBAClB,KAAK,CAAC,OAAO,CAAC,KAC/B,OAeF,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/detect-browser.js b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/detect-browser.js deleted file mode 100644 index c4e583914..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/detect-browser.js +++ /dev/null @@ -1,70 +0,0 @@ -/* eslint-disable no-useless-escape */ -// https://github.com/DamonOehlman/detect-browser/blob/master/src/index.ts -const SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/; -const userAgentRules = [ - ["aol", /AOLShield\/([0-9\._]+)/], - ["edge", /Edge\/([0-9\._]+)/], - ["edge-ios", /EdgiOS\/([0-9\._]+)/], - ["yandexbrowser", /YaBrowser\/([0-9\._]+)/], - ["kakaotalk", /KAKAOTALK\s([0-9\.]+)/], - ["samsung", /SamsungBrowser\/([0-9\.]+)/], - ["silk", /\bSilk\/([0-9._-]+)\b/], - ["miui", /MiuiBrowser\/([0-9\.]+)$/], - ["beaker", /BeakerBrowser\/([0-9\.]+)/], - ["edge-chromium", /EdgA?\/([0-9\.]+)/], - [ - "chromium-webview", - /(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/, - ], - ["chrome", /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/], - ["phantomjs", /PhantomJS\/([0-9\.]+)(:?\s|$)/], - ["crios", /CriOS\/([0-9\.]+)(:?\s|$)/], - ["firefox", /Firefox\/([0-9\.]+)(?:\s|$)/], - ["fxios", /FxiOS\/([0-9\.]+)/], - ["opera-mini", /Opera Mini.*Version\/([0-9\.]+)/], - ["opera", /Opera\/([0-9\.]+)(?:\s|$)/], - ["opera", /OPR\/([0-9\.]+)(:?\s|$)/], - ["pie", /^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/], - [ - "pie", - /^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/, - ], - ["netfront", /^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/], - ["ie", /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/], - ["ie", /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/], - ["ie", /MSIE\s(7\.0)/], - ["bb10", /BB10;\sTouch.*Version\/([0-9\.]+)/], - ["android", /Android\s([0-9\.]+)/], - ["ios", /Version\/([0-9\._]+).*Mobile.*Safari.*/], - ["safari", /Version\/([0-9\._]+).*Safari/], - ["facebook", /FB[AS]V\/([0-9\.]+)/], - ["instagram", /Instagram\s([0-9\.]+)/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Mobile/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Gecko\)$/], - ["curl", /^curl\/([0-9\.]+)$/], - ["searchbot", SEARCHBOX_UA_REGEX], -]; -const matchUserAgent = (ua) => { - return (ua !== "" && - userAgentRules.reduce((matched, [browser, regex]) => { - if (matched) { - return matched; - } - const uaMatch = regex.exec(ua); - return !!uaMatch && [browser, uaMatch]; - }, false)); -}; -export const isCurrentBrowserSupported = (supportedBrowser) => { - if (typeof navigator === "undefined") { - return false; - } - const matchedRule = matchUserAgent(navigator.userAgent); - if (!matchedRule) { - return false; - } - const [name] = matchedRule; - if (name === "searchbot") { - return false; - } - return !!supportedBrowser.find((item) => item === name); -}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts deleted file mode 100644 index 6741ffe8c..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { AccountState, WalletSelectorState } from "../store.types"; -export declare const getActiveAccount: (state: WalletSelectorState) => AccountState | null; -//# sourceMappingURL=getActiveAccount.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts.map deleted file mode 100644 index 69c3c7609..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"getActiveAccount.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/getActiveAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,eAAO,MAAM,gBAAgB,UACpB,mBAAmB,KACzB,YAAY,GAAG,IAEjB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/getActiveAccount.js b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/getActiveAccount.js deleted file mode 100644 index b2db314cb..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/getActiveAccount.js +++ /dev/null @@ -1,3 +0,0 @@ -export const getActiveAccount = (state) => { - return state.accounts.find((account) => account.active) || null; -}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/index.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/index.d.ts deleted file mode 100644 index 78cea0fee..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./waitFor"; -export * from "./getActiveAccount"; -export * from "./detect-browser"; -export * from "./verify-signature/verify-signature"; -export * from "./verify-signature/payload"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/index.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/index.d.ts.map deleted file mode 100644 index e1ce0874b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/index.js b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/index.js deleted file mode 100644 index 69aaf908c..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./waitFor"; -export * from "./getActiveAccount"; -export * from "./detect-browser"; -export * from "./verify-signature/verify-signature"; -export * from "./verify-signature/payload"; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts deleted file mode 100644 index 207d814af..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Schema } from "borsh"; -import type { SignMessageParams } from "../../wallet"; -export interface Payload { - message: string; - nonce: Buffer; - recipient: string; - tag?: number; - callbackUrl?: string; -} -export declare const createPayload: (data: SignMessageParams) => Payload; -export declare const payloadSchema: Schema; -export declare const serializeNep413: (signMessageParams: SignMessageParams) => Buffer; -//# sourceMappingURL=payload.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts.map deleted file mode 100644 index 43755b9b9..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAY,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,eAAO,MAAM,aAAa,SAAU,iBAAiB,KAAG,OAUvD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAe3B,CAAC;AAaF,eAAO,MAAM,eAAe,sBAAuB,iBAAiB,KAAG,MAGtE,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/payload.js b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/payload.js deleted file mode 100644 index f2a7f147e..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/payload.js +++ /dev/null @@ -1,97 +0,0 @@ -import { serialize } from "borsh"; -export const createPayload = (data) => { - return { - message: data.message, - nonce: data.nonce, - recipient: data.recipient, - // The tag's value is a hardcoded value as per - // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) - tag: 2147484061, // NEP413 tag - callbackUrl: data.callbackUrl || undefined, - }; -}; -export const payloadSchema = { - struct: { - tag: "u32", - message: "string", - nonce: { - array: { - type: "u8", - len: 32 - } - }, // Assuming this is a 32-byte buffer - recipient: "string", - callbackUrl: { - option: "string" - }, - } -}; -// const payloadSchema: Schema = { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], // Assuming this is a 32-byte buffer -// ["recipient", "string"], -// ["callbackUrl", { kind: "option", type: "string" }], -// ], -// }; -export const serializeNep413 = (signMessageParams) => { - const payload = createPayload(signMessageParams); - return Buffer.from(serialize(payloadSchema, payload)); -}; -// export const serializeNep413 = (signMessageParams: SignMessageParams): Buffer => { -// const payload = createPayload(signMessageParams); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; -// import type { SignMessageParams } from "../../wallet"; -// import { serialize } from "borsh"; -// -// export class Payload { -// tag: number; -// message: string; -// nonce: Buffer; -// recipient: string; -// callbackUrl?: string; -// -// constructor(data: SignMessageParams) { -// // The tag's value is a hardcoded value as per -// // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) -// this.tag = 2147484061; -// this.message = data.message; -// this.nonce = data.nonce; -// this.recipient = data.recipient; -// if (data.callbackUrl) { -// this.callbackUrl = data.callbackUrl; -// } -// } -// } -// -// export const payloadSchema = new Map([ -// [ -// Payload, -// { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], -// ["recipient", "string"], -// [ -// "callbackUrl", -// { -// kind: "option", -// type: "string", -// }, -// ], -// ], -// }, -// ], -// ]); -// -// export const serializeNep413 = ( -// signMessageParams: SignMessageParams -// ): Buffer => { -// const payload = new Payload({ ...signMessageParams }); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts deleted file mode 100644 index 45cd3629b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { VerifyFullKeyBelongsToUserParams, VerifySignatureParams } from "./verify-signature.types"; -export declare const verifySignature: ({ publicKey, signature, message, nonce, recipient, callbackUrl, }: VerifySignatureParams) => boolean; -export declare const verifyFullKeyBelongsToUser: ({ publicKey, accountId, network, }: VerifyFullKeyBelongsToUserParams) => Promise; -//# sourceMappingURL=verify-signature.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map deleted file mode 100644 index 6e0eeae8d..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gCAAgC,EAChC,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAOlC,eAAO,MAAM,eAAe,sEAOzB,qBAAqB,YAkBvB,CAAC;AAiBF,eAAO,MAAM,0BAA0B,uCAIpC,gCAAgC,qBAQlC,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.js b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.js deleted file mode 100644 index f08e83f02..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.js +++ /dev/null @@ -1,39 +0,0 @@ -import { serialize } from "borsh"; -import { sha256 } from "js-sha256"; -import { payloadSchema } from "./payload"; -import { publicKeyFrom } from "../../../../../../../near-api-js/packages/crypto"; -// import {KeyType, PublicKey, publicKeyFrom} from "@near-js/crypto"; -import { JsonRpcProvider } from "@near-js/providers"; -export const verifySignature = ({ publicKey, signature, message, nonce, recipient, callbackUrl, }) => { - // Reconstruct the payload that was **actually signed** - const payload = { message, nonce, recipient, callbackUrl }; - // Serialize payload based on payloadSchema - const borshPayload = serialize(payloadSchema, payload); - // Hash the payload as in the NEP0413 referenced example - // https://github.com/near/NEPs/blob/master/neps/nep-0413.md#references - // https://github.com/gagdiez/near-login/blob/main/authenticate/wallet-authenticate.js#L21 - const hashedPayload = Uint8Array.from(sha256.array(borshPayload)); - // Convert real signature to buffer base64 - const realSignature = Buffer.from(signature, "base64"); - const pk = publicKeyFrom(publicKey); - // Verify the signature - return pk.verify(hashedPayload, realSignature); -}; -const fetchAllUserKeys = async ({ accountId, network, publicKey, }) => { - const provider = new JsonRpcProvider({ url: network.nodeUrl }); - const key = await provider.query({ - request_type: "view_access_key", - account_id: accountId, - finality: "final", - public_key: publicKey, - }); - return key; -}; -export const verifyFullKeyBelongsToUser = async ({ publicKey, accountId, network, }) => { - const { permission } = await fetchAllUserKeys({ - accountId, - network, - publicKey, - }); - return permission === "FullAccess"; -}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts deleted file mode 100644 index 50312b798..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Network } from "../../options.types"; -import { KeyType } from "@near-js/crypto"; -export interface IPublicKey { - keyType: KeyType; - data: Uint8Array; -} -export interface VerifySignatureParams { - publicKey: IPublicKey; - signature: string; - message: string; - nonce: Buffer; - recipient: string; - callbackUrl?: string; -} -export interface VerifyFullKeyBelongsToUserParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -export interface ViewAccessKeyParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -//# sourceMappingURL=verify-signature.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map deleted file mode 100644 index ad3eabbdf..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/waitFor.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/waitFor.d.ts deleted file mode 100644 index c73405a42..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/waitFor.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export declare const waitFor: (cb: () => boolean, opts?: { - timeout?: number; - interval?: number; -}) => Promise; -//# sourceMappingURL=waitFor.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/waitFor.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/waitFor.d.ts.map deleted file mode 100644 index 01d36b6d7..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/waitFor.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"waitFor.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/waitFor.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,OAAO,OACd,MAAM,OAAO,SACX;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,qBAU9C,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/waitFor.js b/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/waitFor.js deleted file mode 100644 index 55fc5398f..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/helpers/waitFor.js +++ /dev/null @@ -1,22 +0,0 @@ -const wait = (ms) => { - return new Promise((resolve) => setTimeout(resolve, ms)); -}; -const poll = async (cb, interval, remaining) => { - const result = cb(); - if (result) { - return result; - } - if (!remaining) { - throw new Error("Exceeded timeout"); - } - return wait(interval).then(() => poll(cb, interval, remaining - 1)); -}; -export const waitFor = async (cb, opts = {}) => { - const { timeout = 100, interval = 50 } = opts; - return Promise.race([ - wait(timeout).then(() => { - throw new Error("Exceeded timeout"); - }), - poll(cb, interval, Math.floor(timeout / interval)), - ]); -}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/ar.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/ar.json deleted file mode 100644 index ebe6801b2..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/ar.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "صل محفظتك", - "whatIsAWallet": "ما هي المحفظة؟", - "secureAndManage": "تأمين وإدارة الممتلكات الرقمية الخاصة بك", - "safelyStore": "قم بتخزين و ارسال عملاتك و أصولك الرقمية بأمان", - "logInToAny": "سجل الدخول إلى أي تطبيق يستخدم نير", - "noNeedToCreate": ".لا داعي لإنشاء حساب جديد. فقط قم بتوصيل محفظتك وانطلق", - "getAWallet": "احصل على محفظة", - "useAWallet": "استخدم محفظة لتأمين وإدارة أصول نير الخاصة بك، وادخل لأي تطبيق يستخدم نير دون الحاجة إلى اسم المستخدم وكلمةالمرور", - "connectionFailed": "اتصال فاشل", - "connectionSuccessful": "اتصال ناجح", - "rememberWallet": "تذكر المحافظ", - "connected": "متصل", - "connectingTo": "جاري الاتصال ب", - "connectingMessage": { - "injected": "وافق على الاتصال في نافذة الإضافة", - "browser": "وافق على الاتصال في المحفظة بعد إعادة توجيه", - "hardware": "وافق على الاتصال في جهاز ليدجر", - "bridge": "وافق على الاتصال في المحفظة" - } - }, - "ledger": { - "connectWithLedger": "اتصل مع ليدجر", - "makeSureYourLedger": "تأكد أن ليدجر متصل بأمان, و أن تطبيق نير مفتوح في جهازك", - "continue": "تابع", - "specifyHDPath": "حدد مسار الحساب", - "enterYourPreferredHDPath": "أدخل مسار الحساب المفضل، ثم ابحث عن كل الحسابات النشطة", - "scan": "مسح", - "retry": "أعد المحاولة", - "ledgerIsNotAvailable": "ليدجر غير متوفر", - "accessDeniedToUseLedgerDevice": "تم رفض الاتصال بليدجر", - "noAccountsFound": "لم يتم العثور على أي حسابات", - "selectYourAccounts": "حدد حساباتك", - "connecting1Account": "جاري الاتصال بحساب واحد", - "cantFindAnyAccount": "لا يمكن العثور على أي حساب مرتبط بهذا ليدجر الرجاء إنشاء حساب نير جديد على", - "orConnectAnAnotherLedger": "او اربط جهاز ليدجر آخر", - "connecting": "جاري الاتصال", - "ofAccounts": "من الحسابات", - "failedToAutomatically": "فشل في الاتصال بالحساب تلقائيا. يرجى الاتصال بالحساب يدويا", - "overviewTheListOfAuthorized": "لائحة الحسابات المصرح بها, أكمل تسجيل الدخول بالنقر على الزر أدناه", - "finish": "إنهاء" - }, - "install": { - "youllNeedToInstall": "ستحتاج لتثبيت", - "toContinueAfterInstalling": "للاستكمال. بعد التثبيت", - "refreshThePage": "قم بتحديث الصفحة", - "open": "افتح" - }, - "qr": { - "copiedToClipboard": "تم النسخ", - "failedToCopy": "فشل النسخ", - "scanWithYourMobile": "امسح بجهازك المحمول", - "copyToClipboard": "نسخ", - "preferTheOfficial": "تفضل الحوار الرسمي ل", - "open": "فتح" - }, - "walletTypes": { - "hardware": "محفظة الأجهزة", - "browser": "محفظة المتصفح", - "injected": "ملحق المحفظة", - "bridge": "محفظة الجسر", - "mobile": "محفظة الجوال", - "instant-link": "محفظة الرابط الفوري" - }, - "exportAccounts": { - "afterDecide": "بعد اتخاذ قرار بشأن محفظة، يمكنك اختيار الحسابات التي تريد نقلها.", - "chooseAWallet": "اختر محفظة", - "disclaimer": "لن تتمكن من نقل الحسابات التي لم يتم تمويلها أو استخدامها على NEAR.", - "selectAWallet": "اختر محفظة تناسب احتياجاتك وتدعم حساباتك المتصلة.", - "selectYourAccounts": "حدد حساباتك", - "transferYourAccounts": "نقل حساباتك", - "warning": "لا تدعم تصدير الحسابات في الوقت الحالي. يرجى اختيار محفظة أخرى.", - "complete": { - "button": "أكمل", - "descOne": "سيتم توجيهك الآن إلى المحفظة التي اخترتها لإكمال النقل.", - "descTwo": "بمجرد إكمال جزء الاستيراد من العملية من المحفظة المحددة، اضغط على الزر لإكمال عملية النقل.", - "startOverButton": "ابدأ من جديد", - "title": "أكمل النقل" - }, - "getPassphrase": { - "button": "تابع", - "checkLabel": "لقد قمت بنسخ أو كتابة كلمة المرور", - "desc": "ستحتاج إلى إدخال هذه الكلمة السرية عند بدء تصدير حساباتك إلى محفظة مختلفة.", - "label": "انقر لنسخ", - "title": "انسخ كلمة المرور المؤقتة", - "transferButton": "نقل الحسابات" - }, - "selectAccounts": { - "button": "تابع", - "deselectAll": "إلغاء تحديد الكل", - "error": "الحساب غير موجود", - "noBalance": "الحساب غير ممول", - "selectAll": "تحديد الكل", - "title": "حدد الحسابات لنقلها", - "unavailable": "النقل غير متاح", - "warningLedger": "دعم Ledger مطلوب" - }, - "walletTypes": { - "bridge": "محفظة الجسر", - "browser": "محفظة المتصفح", - "hardware": "محفظة الأجهزة", - "injected": "ملحق المحفظة", - "mobile": "محفظة الجوال" - } - } - }, - "component": { - "clickToCopy": { - "label": "تم النسخ", - "tooltip": "انقر لنسخ" - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/bg.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/bg.json deleted file mode 100644 index 5fd192bad..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/bg.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Свържете вашия Портфейл", - "whatIsAWallet": "Какво е Портфейл?", - "secureAndManage": "Защитете и управлявайте дигиталните си активи", - "safelyStore": "Съхранявайте и прехвърляйте безопасно вашите крипто и NFT.", - "logInToAny": "Използвайте всяко приложение на NEAR", - "noNeedToCreate": "Няма нужда да създавате нови профили. Свържете портфейла си и сте готови!", - "getAWallet": "Създайте Портфейл", - "useAWallet": "Използвайте портфейла, за да защитите и управлявате активите си на NEAR както и да използвате всяко приложение на NEAR без нужда от потребителски имена и пароли.", - "connectionFailed": "Свързването неуспешно", - "connectionSuccessful": "Свързването успешно", - "rememberWallet": "Запази портфейлите", - "connected": "Свързан", - "connectingTo": "Свързване към", - "connectingMessage": { - "injected": "Потвърдете свързването в прозореца на разширението", - "browser": "Потвърдете свързването в портфейла след пренасочването", - "hardware": "Потвърдете свързването в хардуерния портфейл", - "bridge": "Потвърдете връзката в портфейла" - } - }, - "ledger": { - "connectWithLedger": "Свържете се с Ledger", - "makeSureYourLedger": "Уверете се, че вашият Ledger е свързан и че приложението NEAR е отворено нa него.", - "continue": "Продължете", - "specifyHDPath": "Посочете HD път", - "enterYourPreferredHDPath": "Въведете предпочитания HD път, след което сканирайте за активни акаунти.", - "scan": "Сканирайте", - "retry": "Опитайте отново", - "ledgerIsNotAvailable": "Ledger устройството не е достъпно", - "accessDeniedToUseLedgerDevice": "Достъпът за използване на Ledger е отказан", - "noAccountsFound": "Няма намерени профили", - "selectYourAccounts": "Изберете вашите профили", - "connecting1Account": "Свързване на 1 профил", - "cantFindAnyAccount": "Няма намерени профили, съврзани с този Ledger. Моля, създайте нов NEAR профил на", - "orConnectAnAnotherLedger": "или свържете друг Ledger.", - "connecting": "Свързване", - "ofAccounts": "от профили", - "failedToAutomatically": "Автоматичното намиране на профила не бе успешно. Въведете го ръчно:", - "overviewTheListOfAuthorized": "Прегледайте списъка с упълномощени профили, завършете влизането, като щракнете върху бутона по-долу..", - "finish": "Завършете" - }, - "install": { - "youllNeedToInstall": "Ще трябва да инсталирате", - "toContinueAfterInstalling": "за да продължите. След инсталиране", - "refreshThePage": "презаредете страницата.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано в клипборда", - "failedToCopy": "Неуспешно копиране в клипборда", - "scanWithYourMobile": " Сканирайте с мобилното си устройство", - "copyToClipboard": " Копирайте в клипборда", - "preferTheOfficial": "Предпочитан език за кореспонденция", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардуерен портфейл", - "browser": "Портфейл в браузъра", - "injected": "Разширение на портфейл", - "bridge": "Мостов портфейл", - "mobile": "Мобилен портфейл", - "instant-link": "Мигновен портфейл" - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/en.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/en.json deleted file mode 100644 index ec6ae2981..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/en.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Connect Your Wallet", - "whatIsAWallet": "What is a Wallet?", - "secureAndManage": "Secure & Manage Your Digital Assets", - "safelyStore": "Safely store and transfer your crypto and NFTs.", - "logInToAny": "Log In to Any NEAR App", - "noNeedToCreate": "No need to create new accounts or credentials. Connect your wallet and you are good to go!", - "getAWallet": "Get a Wallet", - "useAWallet": "Use a wallet to secure and manage your NEAR assets, and to log in to any NEAR app without the need for usernames and passwords.", - "connectionFailed": "Connection Failed", - "connectionSuccessful": "Connection Successful", - "rememberWallet": "Remember wallets", - "connected": "Connected", - "connectingTo": "Connecting to", - "connectingMessage": { - "injected": "Confirm the connection in the extension window", - "browser": "Confirm the connection in the wallet after redirect", - "hardware": "Confirm the connection in the ledger device", - "bridge": "Confirm the connection in the wallet" - } - }, - "ledger": { - "connectWithLedger": "Connect with Ledger", - "makeSureYourLedger": "Make sure your Ledger is connected securely, and that the NEAR app is open on your device", - "continue": "Continue", - "specifyHDPath": "Specify HD Path", - "enterYourPreferredHDPath": "Enter your preferred HD path, then scan for any active accounts.", - "scan": "Scan", - "retry": "Retry", - "ledgerIsNotAvailable": "Ledger is not available", - "accessDeniedToUseLedgerDevice": "Access denied to use Ledger device", - "noAccountsFound": "No Accounts Found", - "selectYourAccounts": "Select Your Accounts", - "connecting1Account": "Connecting 1 Account", - "cantFindAnyAccount": "Can't find any account associated with this Ledger. Please create a new NEAR account on", - "orConnectAnAnotherLedger": "or connect an another Ledger.", - "connecting": "Connecting", - "ofAccounts": "of Accounts", - "failedToAutomatically": "Failed to automatically find account id. Provide it manually:", - "overviewTheListOfAuthorized": "Overview the list of authorized account(s), complete sign in by clicking the button below.", - "finish": "Finish" - }, - "install": { - "youllNeedToInstall": "You'll need to install", - "toContinueAfterInstalling": "to continue. After installing", - "refreshThePage": "refresh the page.", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "Copied to clipboard", - "failedToCopy": "Failed to copy to clipboard", - "scanWithYourMobile": "Scan with Your Mobile Device", - "copyToClipboard": " Copy to clipboard", - "preferTheOfficial": "Prefer the official dialogue of", - "open": "Open" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Choose a Wallet", - "transferYourAccounts": "Transfer Your Accounts", - "selectAWallet": "Select a wallet that fits your needs and supports your connected accounts.", - "selectYourAccounts": "Select Your Accounts", - "afterDecide": "After you decide on a wallet, you can select which accounts you want to transfer.", - "disclaimer": "You won’t be able to transfer accounts that have never been funded or used on NEAR.", - "warning": "does not support account export at this time. Please select another wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Select Accounts to Transfer", - "button": "Continue", - "deselectAll": "Deselect All", - "selectAll": "Select All", - "unavailable": "Transfer Unavailable", - "error": "Account does not exist", - "warningLedger": "Ledger support required", - "noBalance": "Account not funded" - }, - "getPassphrase": { - "title": "Copy Temporary Password", - "desc": "You’ll need to enter this password when you begin exporting your accounts to a different wallet.", - "button": "Continue", - "transferButton": "Transfer Accounts", - "label": "Click to Copy", - "checkLabel": "I copied or wrote down the password" - }, - "complete": { - "title": "Complete the Transfer", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Once import part of process is completed from selected wallet, press button to complete the transfer process.", - "startOverButton": "Start Over", - "button": "Complete" - } - } - }, - "component": { - "clickToCopy": { - "label": "Copied", - "tooltip": "Click to copy" - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/es.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/es.json deleted file mode 100644 index 34f9ef864..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/es.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Conecta Tu Billetera", - "whatIsAWallet": "¿Que es una Billetera?", - "secureAndManage": "Resguarda y Administrar Tus Activos Digitales", - "safelyStore": "Almacena de forma segura y transfiere tus cryptos y NFT's", - "logInToAny": "Inicie sesión en Cualquier Aplicacion NEAR", - "noNeedToCreate": "No es necesario crear nuevas cuentas o credenciales, ¡Conecta tu billetera y listo!", - "getAWallet": "Obten una Billetera", - "useAWallet": "Usa tu Billetera para resguardar y administrar tus activos en NEAR, e Iniciar sesión en cualquier aplicacion NEAR sin la necesidad de nombres de usuarios y contraseñas", - "connectionFailed": "Conexión Fallida", - "connectionSuccessful": "Conexión Existosa", - "rememberWallet": "Recordar las carteras", - "connected": "Conectado", - "connectingTo": "Conectando a ", - "connectingMessage": { - "injected": "Confirme la conexión en la ventana de extensión", - "browser": "Confirme la conexión en la billetera después de la redirección", - "hardware": "Confirme la conexión en el dispositivo de libro mayor", - "bridge": "Confirmar la conexión en la billetera" - } - }, - "ledger": { - "connectWithLedger": "Conectar con Ledger", - "makeSureYourLedger": "Asegúrese de que su ledger está conectada de forma segura y que la aplicacion NEAR esté abierta en su dispositivo", - "continue": "Continuar", - "specifyHDPath": "Especifique la ruta HD", - "enterYourPreferredHDPath": "Ingrese su ruta HD prerida,y luego busque cualquier cuenta activa.", - "scan": "Escanear", - "retry": "Reintentar", - "ledgerIsNotAvailable": "El Ledger no está disponible", - "accessDeniedToUseLedgerDevice": "Acceso denegado para usar el dispositivo ledger", - "noAccountsFound": "No se encontraron cuentas", - "selectYourAccounts": "Selecciona tus cuentas", - "connecting1Account": "Conectando a 1 cuenta", - "cantFindAnyAccount": "No se pudo encontrar ninguna cuenta asociada con este ledger,Por favor crea una nueva cuenta en NEAR", - "orConnectAnAnotherLedger": "o conecta otro ledger", - "connecting": "Conectando", - "ofAccounts": "de Cuentas", - "failedToAutomatically": "No se pudo encontrar automaticamente el id de la cuenta,Ingresalo manualmente:", - "overviewTheListOfAuthorized": "Revise la lista de las cuentas autorizadas,Complete el inicio de sesión haciedo click a countinuacion.", - "finish": "Finalizar" - }, - "install": { - "youllNeedToInstall": "Tendrás que instalar", - "toContinueAfterInstalling": "Para continuar, Despues de instalar", - "refreshThePage": "Recarga la pagina", - "open": "Abrir" - }, - "qr": { - "copiedToClipboard": "Copiado al Portapapeles", - "failedToCopy": "Falló la copia al Portapapeles", - "scanWithYourMobile": "Busca con tu dispositivo movil", - "copyToClipboard": " Copiar al Portapapeles", - "preferTheOfficial": "¿Prefires el diálogo oficial de", - "open": "Abrir" - }, - "walletTypes": { - "hardware": "Cartera de Hardware", - "browser": "Cartera de Navegador", - "injected": "Extensión de Cartera", - "bridge": "Cartera de Puente", - "mobile": "Cartera Móvil", - "instant-link": "Cartera Instantánea" - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/hi.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/hi.json deleted file mode 100644 index c8c5866ef..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/hi.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "अपना वॉलेट (Wallet) कनेक्ट करें।", - "whatIsAWallet": "वॉलेट क्या है?", - "secureAndManage": "सुरक्षित और प्रबंधित करें।", - "safelyStore": "अपनी क्रिप्टोकरेंसी और एनएफटी को सुरक्षित रूप से स्टोर और ट्रांसफर करें।", - "logInToAny": "NEAR पर किसी भी ऐप में साइन इन करें।", - "noNeedToCreate": "नए खाते या लॉगिन बनाने की आवश्यकता नहीं है। अपना वॉलेट(NEAR Wallet)कनेक्ट करें और आरंभ करें।", - "getAWallet": "एक वॉलेट बनाएँ।", - "useAWallet": "अपनी NEAR संपत्तियों को सुरक्षित और प्रबंधित करने के लिए वॉलेट का उपयोग करें और किसी भी NEAR ऐप (app) में लॉग इन करें, किसी उपयोगकर्ता (user) नाम और पासवर्ड की आवश्यकता नहीं है।", - "connectionFailed": "कनेक्शन विफल|", - "connectionSuccessful": "कनेक्शन सफल|", - "rememberWallet": "वॉलेटों को याद रखें", - "connected": "वॉलेट जुड़ गया|", - "connectingTo": "वॉलेट जुड़ रहा हे|", - "connectingMessage": { - "injected": "एक्सटेंशन विंडो में कनेक्शन की पुष्टि करें|", - "browser": "रीडायरेक्ट होने के बाद वॉलेट में कनेक्शन की पुष्टि करें|", - "hardware": "कोल्ड वॉलेट के साथ कनेक्शन की पुष्टि करें|" - } - }, - "ledger": { - "connectWithLedger": "लेजर(Ledger)वॉलेट कनेक्ट करें|", - "makeSureYourLedger": "सुनिश्चित करें कि आपका लेजर सुरक्षित रूप से जुड़ा हुआ है और NEAR ऐप आपके डिवाइस (Device)पर पहले से ही खुला है|", - "continue": "जारी रखे|", - "specifyHDPath": "हार्ड डिस्क(Hard Disk)पथ(Path)निर्धारित करे|", - "enterYourPreferredHDPath": "अपना एचडी पथ दर्ज करें, फिर सक्रिय खातों के लिए स्कैन करें|", - "scan": "स्कैन करे|", - "retry": "दोबारा प्रयास करे|", - "ledgerIsNotAvailable": "लेजर उपलब्ध नहीं है|", - "accessDeniedToUseLedgerDevice": "लेजर डिवाइस का उपयोग करने के लिए प्रवेश निषेध|", - "noAccountsFound": "खाता नहीं मिला|", - "selectYourAccounts": "अपने खाते चुनें|", - "connecting1Account": "एक खाता कनेक्ट हो रहा है|", - "cantFindAnyAccount": "इस लेजर से जुड़ा कोई खाता नहीं मिला। कृपया एक नया NEAR खाता बनाएँ|", - "orConnectAnAnotherLedger": "अथवा दूसरे लेजर वॉलेट से कनेक्ट करें।", - "connecting": "जुड़ रहा हे|", - "ofAccounts": "खाता अब जुड़ा नहीं हे|", - "failedToAutomatically": "खाता आईडी स्वचालित रूप से खोजने में असमर्थ। मैन्युअल (Manuall) रूप से कोशिश करें|", - "overviewTheListOfAuthorized": "अवलोकन अधिकृत की सूची, नीचे दिए गए बटन पर क्लिक करके लॉगिन पूरा करें।", - "finish": "समाप्त|" - }, - "install": { - "youllNeedToInstall": "आपको इंस्टॉल करना होगा|", - "toContinueAfterInstalling": "इंस्टॉल करने के बाद जारी रखे|", - "refreshThePage": "पुन: लोड करें।", - "open": "खोले|" - }, - "qr": { - "copiedToClipboard": "क्लिपबोर्ड(Clipboard)पर कॉपी किया गया|", - "failedToCopy": "क्लिपबोर्ड पर कॉपी करना विफल रहा|", - "scanWithYourMobile": "अपने फोन (Mobile)से स्कैन करें|", - "copyToClipboard": " क्लिपबोर्ड पर कॉपी करें|", - "preferTheOfficial": "आधिकारिक संवाद को प्राथमिकता दें|", - "open": "खोले|" - }, - "walletTypes": { - "hardware": "हार्डवेयर वॉलेट", - "browser": "ब्राउज़र वॉलेट", - "injected": "वॉलेट एक्सटेंशन", - "bridge": "ब्रिज वॉलेट", - "mobile": "मोबाइल वॉलेट", - "instant-link": "इंस्टेंट वॉलेट" - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/hr.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/hr.json deleted file mode 100644 index 1a6cc0967..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/hr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Spojite crypto novčanik!", - "whatIsAWallet": "Što je to crypto novčanik?", - "secureAndManage": "Osigurajte i upravljajte svojom digitalnom imovinom.", - "safelyStore": "Sigurno pohranite i prebacite svoj crypto i NFT-eve.", - "logInToAny": " Prijavite se u bilo koju NEAR aplikaciju", - "noNeedToCreate": "Nema potrebe za stvaranjem novih naloga ili korisničkih podataka. Spojite svoj crypto novčanik i spremni ste!", - "getAWallet": "Otvorite crypto novčanik", - "useAWallet": "Koristite crypto novčanik da biste osigurali i upravljali svojom NEAR imovinom, te se prijavite u bilo koju NEAR aplikaciju bez korisničkog imena i lozinke.", - "connectionFailed": "Neuspješno povezivanje.", - "connectionSuccessful": "Uspješno povezivanje.", - "rememberWallet": "Zapamti novčanike", - "connected": "Povezano.", - "connectingTo": "Povezivanje u tijeku", - "connectingMessage": { - "injected": "Potvrdite vezu u eksternom prozoru", - "browser": "Nakon redirekcije, potvrdite vezu u novčaniku", - "hardware": "Potvrdite vezu sa novčanikom", - "bridge": "Potvrdite vezu u novčaniku" - } - }, - "ledger": { - "connectWithLedger": "Povežite se hardverskim novčanikom", - "makeSureYourLedger": "Osigurajte sigurnu vezu s hardverskim novčanikom, te da je NEAR aplikacija otvorena na vašem uređaju", - "continue": "Nastavite", - "specifyHDPath": "Specificirajte HD putanju", - "enterYourPreferredHDPath": "Upišite preferiranu HD putanju, zatim skenirajte aktivne naloge", - "scan": "Skenirajte", - "retry": "Pokušajte ponovno", - "ledgerIsNotAvailable": "Hardverski novčanik nije dostupan.", - "accessDeniedToUseLedgerDevice": "Odbijen pristup za korištenjem hardverskog novčanika", - "noAccountsFound": "Nalozi nisu pronađeni", - "selectYourAccounts": "Odaberite svoje naloge", - "connecting1Account": "Povezivanje 1 naloga", - "cantFindAnyAccount": "Nije moguće pronaći niti jedan nalog povezan s ovim hardverskim novčanikom. Molimo vas, kreirajte novi NEAR nalog", - "orConnectAnAnotherLedger": "Ili povežite drugi hardverski novčanik.", - "connecting": "Povezivanje", - "ofAccounts": "naloga", - "failedToAutomatically": "Neuspješno automatsko pronalaženje ID naloga. Unesite ručno:", - "overviewTheListOfAuthorized": "Pregledajte popis odobrenih naloga, završite prijavu pritiskom na niže prikazani gumb.", - "finish": "Završite" - }, - "install": { - "youllNeedToInstall": " Potrebno je instalirati modal", - "toContinueAfterInstalling": "za nastavak. Nakon instalacije", - "refreshThePage": "osvježite stranicu.", - "open": "Otvorite QR modal" - }, - "qr": { - "copiedToClipboard": "Kopirano u međuspremnik", - "failedToCopy": "Neupsješno kopiranje u međuspremnik", - "scanWithYourMobile": "Skenirajte svojim mobilnim uređajem", - "copyToClipboard": " Kopirajte u međuspremnik", - "preferTheOfficial": "Odaberite službeni dijalog", - "open": "Otvorite" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Odaberi Wallet", - "transferYourAccounts": "Prenesi svoje naloge", - "selectAWallet": "Odaberite wallet koji odgovara vašim potrebama i podržava vaše povezane naloge.", - "selectYourAccounts": "Odaberi svoje naloge", - "afterDecide": "Nakon što odlučite koji wallet koristite, možete odabrati koje račune želite prebaciti.", - "disclaimer": "Nećete moći prebaciti naloge koji nisu nikada bili korišteni na NEAR-u.", - "warning": "ne podržava izvoz naloga u ovom trenutku. Molimo odaberite drugi wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Odaberi naloge za prijenos", - "button": "Generiraj lozinku", - "deselectAll": "Makni odabir sa svih", - "selectAll": "Odaberi sve", - "unavailable": "Prijenos nije dostupan", - "error": "Nalog ne postoji", - "warningLedger": "Potrebna ledger podrška", - "noBalance": "Nalog nema sredstava" - }, - "getPassphrase": { - "title": "Kopiraj privremenu lozinku", - "desc": "Bit će potrebno unijeti ovu lozinku na početku izvoza naloga na drugi wallet.", - "button": "Nastavi", - "label": "Klikni za kopiju", - "checkLabel": "Kopirao sam ili zapisao lozinku" - }, - "complete": { - "title": "Završi prijenos", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Kada je unos s odabranog walleta završen, pritisnite gumb da biste završili prijenos.", - "button": "Završi" - } - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/ko.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/ko.json deleted file mode 100644 index e5c20d2d6..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/ko.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "지갑 연결하기", - "whatIsAWallet": "지갑은 무슨 역할을 하나요?", - "secureAndManage": "당신의 디지털 자산을 보호하고 관리합니다.", - "safelyStore": "암호화폐와 NFT를 안전하게 저장하고 전송할 수 있습니다.", - "logInToAny": "NEAR App에 로그인합니다.", - "noNeedToCreate": "새로운 계정이나 비밀번호를 만들 필요 없이 지갑을 연결한 후 바로 사용할 수 있습니다.", - "getAWallet": "지갑 가져오기", - "useAWallet": "지갑을 사용하여 NEAR 자산을 보호·관리하고, 아이디와 비밀번호 없이 NEAR 앱에 로그인할 수 있습니다.", - "connectionFailed": "연결 실패", - "connectionSuccessful": "연결 성공", - "rememberWallet": "지갑들 기억하기", - "connected": "Connected", - "connectingTo": "연결 중: ", - "connectingMessage": { - "injected": "익스텐션 창에서 연결을 확인하세요", - "browser": "리다이렉트 된 지갑에서 연결을 확인하세요", - "hardware": "Ledger 기기에서 연결을 확인하세요", - "bridge": "지갑에서 연결 확인" - } - }, - "ledger": { - "connectWithLedger": "Ledger 연결하기", - "makeSureYourLedger": "Ledger가 안전하게 연결되어 있고, NEAR 앱이 열려 있는 지 확인하세요", - "continue": "계속하기", - "specifyHDPath": "HD Path 지정하기", - "enterYourPreferredHDPath": "원하는 HD Path를 선택하고, 활성화된 계정이 있는 지 검색하세요", - "scan": "검색", - "retry": "다시 시도", - "ledgerIsNotAvailable": "Ledger를 사용할 수 없습니다", - "accessDeniedToUseLedgerDevice": "Ledger 기기 접근 권한이 거부되었습니다", - "noAccountsFound": "계정을 찾을 수 없습니다", - "selectYourAccounts": "계정 선택하기", - "connecting1Account": "하나의 계정에 연결", - "cantFindAnyAccount": "Ledger와 연결된 계정을 찾을 수 없습니다. 새로운 계정을 생성하거나 ", - "orConnectAnAnotherLedger": "다른 Ledger를 연결하세요", - "connecting": "계정 연결하기: ", - "ofAccounts": "개 계정을 찾았습니다", - "failedToAutomatically": "계정 ID를 찾지 못했습니다. 수동으로 입력해주세요.", - "overviewTheListOfAuthorized": "인증된 계정 목록을 확인한 후 아래 버튼을 클릭하여 로그인을 완료하세요", - "finish": "완료" - }, - "walletTypes": { - "hardware": "하드웨어 지갑", - "browser": "브라우저 지갑", - "injected": "지갑 확장", - "bridge": "브리지 지갑", - "mobile": "모바일 지갑", - "instant-link": "인스턴트 지갑" - }, - "install": { - "youllNeedToInstall": "다음 확장 프로그램을 설치해주세요:", - "toContinueAfterInstalling": ". 설치 완료 후 페이지 새로 고침이 필요합니다. ", - "refreshThePage": "새로 고침", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "클립보드에 복사 완료", - "failedToCopy": "클립보드에 복사 실패", - "scanWithYourMobile": "모바일 장치를 사용하여 스캔해주세요", - "copyToClipboard": " 클립보드에 복사하기", - "preferTheOfficial": "다음 프로그램에서 제공하는 공식 프로세스를 선호하십니까: ", - "open": "Open" - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/mk.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/mk.json deleted file mode 100644 index f75e74659..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/mk.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Поврзете го вашиот новчаник!", - "whatIsAWallet": "Што е новчаник?", - "secureAndManage": "Заштитете ги и управувајте со вашите дигитални средства.", - "safelyStore": "Безбедно складирајте и извршувајте трансакции со вашите крипто и NFT.", - "logInToAny": "Најавете се на која било NEAR апликација", - "noNeedToCreate": "Нема потреба да креирате нови сметки или ингеренции. Поврзете го вашиот паричник и сте подготвени!", - "getAWallet": "Направете новчаник", - "useAWallet": "Користете паричник за да ги заштитите и управувате вашите NEAR средства и да се најавите на која било NEAR апликација без потреба од кориснички имиња и лозинки.", - "connectionFailed": "Поврзувањето не беше успешно.", - "connectionSuccessful": "Успешно поврзување.", - "rememberWallet": "Запомни паричници", - "connected": "Поврзано.", - "connectingTo": "Поврзување со", - "connectingMessage": { - "injected": "Потврдете го поврзувањето во екстерниот прозорец", - "browser": "По преусмерувањето, потврдете го поврзувањето од новчаниокт", - "hardware": "Потврдете го поврзувањето со ладен новчаник", - "bridge": "Потврдете ја врската во новчаникот" - } - }, - "ledger": { - "connectWithLedger": "Поврзете се со Леџер", - "makeSureYourLedger": "Осигурајте се дека вашиот Леџер е поврзан безбедно, и дека NEAR апликацијата е отворена на вашиот уред", - "continue": "Продолжете", - "specifyHDPath": "Наведете ХД локација", - "enterYourPreferredHDPath": "Внесете ја вашата преферирана ХД локација, а потоа скенирајте да ги најдете активните сметки.", - "scan": "Скенирајте", - "retry": "Обидете се повторно", - "ledgerIsNotAvailable": "Леџерот не е достапен.", - "accessDeniedToUseLedgerDevice": "Пристапот за користење на Леџер уред е одбиен", - "noAccountsFound": "Нема најдени сметки", - "selectYourAccounts": "Изберете ги вашите сметки", - "connecting1Account": "Поврзување на една сметка", - "cantFindAnyAccount": "Не се најдени сметки поврзани со овој Леџер. Ве молиме креирајте нова NEAR сметка ", - "orConnectAnAnotherLedger": "или поврзете друг Леџер.", - "connecting": "Поврзување", - "ofAccounts": "на сметки", - "failedToAutomatically": "Неуспешно автоматско барање на ИД на сметката. Внесете го рачно:", - "overviewTheListOfAuthorized": "Преглед на листата на овластени сметки, завршете се најавата со кликнување на копчето подолу.", - "finish": "Завршете" - }, - "install": { - "youllNeedToInstall": "Треба да инсталирате", - "toContinueAfterInstalling": "за да продолжите. По инсталирањето", - "refreshThePage": "Освежете ја страната.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано на клипбордот", - "failedToCopy": "Неуспешно копирање на клипборд", - "scanWithYourMobile": "Скенирајте со вашиот телефонски уред", - "copyToClipboard": "Копирајте на клипборд", - "preferTheOfficial": "Преферирајте официјален диалог на", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник", - "instant-link": "Инстант паричник" - }, - "exportAccounts": { - "chooseAWallet": "Одберете паричник", - "transferYourAccounts": "Префрлете ги вашите кориснички сметки", - "selectAWallet": "Изберетен новчаник кој ги задоволува вашите баранња и ги поддржува вашите поврзани кориснички сметки.", - "selectYourAccounts": "Изберете ги вашите кориснички сметки", - "afterDecide": "Одкако ќе изберете новчаник, можете да изберете кои кориснички сметки сакате да ги префрлите.", - "disclaimer": "Не можете да прфрлате кориснички сметки кои никогаш не биле надополнати или користени на NEAR.", - "warning": "не поддржува извезување на кориснички сметки во овој момент. Ве молиме изберете друг новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник" - }, - "selectAccounts": { - "title": "Изберете ги корисничките сметки за да ги префрлите.", - "button": "Добијте лозинка", - "deselectAll": "Отселектирајте се", - "selectAll": "Изберете се", - "unavailable": "Трансферот е недостапен", - "error": "Корисничката сметка не постои", - "warningLedger": "Потребна е поддршка од Леџер", - "noBalance": "Сметката не е финансирана" - }, - "getPassphrase": { - "title": "Копирајте ја привремената лозинка", - "desc": "Ќе треба да ја внесете оваа лозинка кога ќе започнете да ги извезувате вашите сметки на друг новчаник.", - "button": "Продолжете", - "label": "Кликнете за да копирате", - "checkLabel": "Ја копирав или запишав лозинката" - }, - "complete": { - "title": "Завршете го преносот", - "descOne": "Сега ќе бидете пренасочени на избраниот новчаник за завршување на преносот.", - "descTwo": "Откако ќе заврши увозот од избраниот новчаник, притиснете го копчето за да го завршите преносот.", - "button": "Завршете" - } - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/sl.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/sl.json deleted file mode 100644 index 20b795b9a..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/sl.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Povežite svojo denarnico!", - "whatIsAWallet": "Kaj je denarnica?", - "secureAndManage": "Zavarujte in upravljajte svoja digitalna sredstva.", - "safelyStore": "Varno shranjujte in prenašajte svoje kriptovalute in NFTje.", - "logInToAny": "Prijavite se v katero koli aplikacijo na NEAR", - "noNeedToCreate": "Ni vam treba ustvarjati novih računov. Povežite svojo denarnico in začnite!", - "getAWallet": "Ustvarite denarnico", - "useAWallet": "Uporabite denarnico, da bi zavarovali in upravljali s svoja NEAR digitalna sredstva, in se prijavite v katero koli aplikacijo ekosistema NEAR", - "connectionFailed": "Povezava ni bila uspešna.", - "connectionSuccessful": "Povezava je bila uspešna.", - "rememberWallet": "Zapomni si denarnice", - "connected": "Vaša denarnica je povezana.", - "connectingTo": "Povezovanje z", - "connectingMessage": { - "injected": "Potrdite povezavo v oknu razširitve", - "browser": "Po preusmeritvi potrdite povezavo v denarnici", - "hardware": "Potrdite povezavo s hladno denarnico", - "bridge": "Potrdite povezavo v denarnici" - } - }, - "ledger": { - "connectWithLedger": "Povežite se z Ledger", - "makeSureYourLedger": "Prepričajte se, da je vaš Ledger varno povezan in da je aplikacija NEAR odprta v vaši napravi", - "continue": "Nadaljuj", - "specifyHDPath": "Določite HD pot", - "enterYourPreferredHDPath": "Vnesite želeno HD pot, nato poiščite vse aktivne račune.", - "scan": "Skenirajte", - "retry": "Poskusite znova", - "ledgerIsNotAvailable": "Ledger ni na voljo", - "accessDeniedToUseLedgerDevice": "Dostop za uporabo naprave Ledger zavrnjen", - "noAccountsFound": "Ni najdenih računov", - "selectYourAccounts": "Izberite Vaši računi", - "connecting1Account": "Povezovanje enega računa", - "cantFindAnyAccount": "Ni mogoče najti nobenega računa, povezanega s tem Ledgerjem. Ustvarite nov NEAR račun ", - "orConnectAnAnotherLedger": "ali povežite drug Ledger..", - "connecting": "Povezovanje", - "ofAccounts": "računov", - "failedToAutomatically": "ID-ja računa ni bilo mogoče samodejno najti. Zagotovite ga ročno:", - "overviewTheListOfAuthorized": "Oglejte si seznam pooblaščenih računov, dokončajte prijavo s klikom na spodnji gumb.", - "finish": "Končajte" - }, - "install": { - "youllNeedToInstall": "Morali ga boste namestiti", - "toContinueAfterInstalling": "nadaljevati. Po namestitvi", - "refreshThePage": "Osvežite stran.", - "open": "Odprite" - }, - "qr": { - "copiedToClipboard": "Kopirano v podložni mapi", - "failedToCopy": "Kopiranje v podložni mapi ni uspelo", - "scanWithYourMobile": "Skenirajte s svojo mobilno napravo", - "copyToClipboard": " Kopirajte v podložni mapi", - "preferTheOfficial": "Preferirajte uradno pogovorno okno", - "open": "Odprite" - }, - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica", - "instant-link": "Takojšnja denarnica" - }, - "exportAccounts": { - "chooseAWallet": "Izberite denarnico", - "transferYourAccounts": "Prenesite svoje račune", - "selectAWallet": "Izberite denarnico, ki ustreza vašim potrebam in podpira vaše povezane račune.", - "selectYourAccounts": "Izberite vaši računi", - "afterDecide": "Ko se odločite za denarnico, lahko izberete, katere račune želite prenesti.", - "disclaimer": "Ne boste mogli prenesti Računov, ki nikoli niso bili financirani ali uporabljeni na NEAR.", - "warning": "trenutno ne podpira izvoza računa. Izberite drugo denarnico", - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica" - }, - "selectAccounts": { - "title": "Izberite računi za prenos.", - "button": "Pridobite geslo", - "deselectAll": "Prekliči izbiro vseh", - "selectAll": "Izberi vse", - "unavailable": "Prenos ni na voljo", - "error": "Račun ne obstaja", - "warningLedger": "Potrebna je podpora za Ledger", - "noBalance": "Račun ni financiran" - }, - "getPassphrase": { - "title": "Kopiraj začasno geslo", - "desc": "To geslo boste morali vnesti, ko boste začeli izvažati svoje račune v drugo denarnico.", - "button": "Nadaljujte", - "label": "Kliknite za kopiranje", - "checkLabel": "Geslo sem kopiral ali zapisal" - }, - "complete": { - "title": "Dokončajte prenos", - "descOne": "Zdaj boste preusmerjeni v denarnico, ki ste jo izbrali za dokončanje prenosa.", - "descTwo": "Ko je uvozni del postopka končan iz izbrane denarnice, pritisnite gumb za dokončanje postopka prenosa.", - "button": "Končajte" - } - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/sr.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/sr.json deleted file mode 100644 index 094c75982..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/sr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Повежите свој новчаник!", - "whatIsAWallet": "Шта је новчаник?", - "secureAndManage": "Обезбедите и управљајте својом дигиталном имовином.", - "safelyStore": "Безбедно чувајте и преносите своје криптовалуте и NFT.", - "logInToAny": "Пријавите се на било коју апликацију NEAR", - "noNeedToCreate": "Нема потребе да креирате нове налоге или акредитиве. Повежите новчаник и спремни стe!", - "getAWallet": "Набавите новчаник", - "useAWallet": "Користите новчаник да обезбедите и управљате својим NEAR средствима и да се пријавите у било коју апликацију NEAR без потребе за корисничким именима и лозинкама.", - "connectionFailed": "Веза није успостављена.", - "connectionSuccessful": "Веза је успела.", - "rememberWallet": "Запамти новчанике", - "connected": "Повезан.", - "connectingTo": "Повезивање на", - "connectingMessage": { - "injected": "Потврдите везу у спољном прозору", - "browser": "Након преусмеравања, потврдите везу у новчанику", - "hardware": "Потврдите везу са хладним новчаником", - "bridge": "Потврдите везу са новчаником" - } - }, - "ledger": { - "connectWithLedger": "Повежите се са Ledger", - "makeSureYourLedger": "Уверите се да је ваш Ledger безбедно повезан и да је апликација NEAR отворена на вашем уређају", - "continue": "Настави", - "specifyHDPath": "Наведите ХД путању", - "enterYourPreferredHDPath": "Унесите жељену жељену ХД путању, а затим скенирајте све активне налоге.", - "scan": "Скенирајте", - "retry": "Покушај поново", - "ledgerIsNotAvailable": "Ledger није доступан.", - "accessDeniedToUseLedgerDevice": "Приступ је одбијен за коришћење Ledger уређаја", - "noAccountsFound": "Наlози нису пронађени", - "selectYourAccounts": "Изаберите Ваш наlог", - "connecting1Account": "Повезати 1 наlог", - "cantFindAnyAccount": "Није могуће пронаћи ниједан наlог повезан са овим Ledger-ом. Направите нови NEAR наlог", - "orConnectAnAnotherLedger": "или повежите други Ledger.", - "connecting": "Повезивање", - "ofAccounts": "наlога", - "failedToAutomatically": "Аутоматско проналажење ID-a наlога није успело. Наведите га ручно:", - "overviewTheListOfAuthorized": "Прегледајте листу овлашћених рачуна, завршите пријаву кликом на дугме испод.", - "finish": "Заврши" - }, - "install": { - "youllNeedToInstall": "Мораћете да инсталирате", - "toContinueAfterInstalling": "за наставак. Након инсталирања", - "refreshThePage": "поново учитати страницу.", - "open": "Отвори" - }, - "qr": { - "copiedToClipboard": "Копирано у међуспремник", - "failedToCopy": "Копирање у међуспремник није успело", - "scanWithYourMobile": "Скенирајте помоћу мобилног уређаја", - "copyToClipboard": " Копирај у међуспремник", - "preferTheOfficial": "Преферирате званични дијалог од", - "open": "Отвори" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник", - "instant-link": "Инстант новчаник" - }, - "exportAccounts": { - "chooseAWallet": "Изаберите новчаник", - "transferYourAccounts": "Пренесите своје налоге", - "selectAWallet": "Изаберите новчаник који одговара вашим потребама и који подржава ваше повезане налоге.", - "selectYourAccounts": "Изаберите ваше налоге", - "afterDecide": "Након што се одлучите за новчаник, можете изабрати које налоге желите да пренесете.", - "disclaimer": "Нећете моћи да пренесете налоге који никада нису били финансирани или коришћени на NEAR.", - "warning": "тренутно не подржава извоз налога. Изаберите други новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник" - }, - "selectAccounts": { - "title": "Изаберите налоге за пренос.", - "button": "Добијте приступну фразу", - "deselectAll": "Поништите избор", - "selectAll": "Изаберите све", - "unavailable": "Трансфер није доступан", - "error": "Налог не постоји", - "warningLedger": "Потребна подршка за Ledger", - "noBalance": "Налог није финансиран" - }, - "getPassphrase": { - "title": "Копирај привремену лозинку", - "desc": "Мораћете да унесете ову лозинку када почнете да извозите своје налоге у други новчаник.", - "button": "Наставите", - "label": "Кликните да бисте копирали", - "checkLabel": "Копирао сам или записао лозинку" - }, - "complete": { - "title": "Довршите трансфер", - "descOne": "Сада ћете бити преусмерени на новчаник који сте изабрали да завршите трансфер.", - "descTwo": "Када се део процеса увоза заврши из изабраног новчаника, притисните дугме да завршите процес преноса.", - "button": "Завршите" - } - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/vi.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/vi.json deleted file mode 100644 index 025d762e7..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/vi.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Kết nối ví của bạn", - "whatIsAWallet": "Ví là gì?", - "secureAndManage": "Bảo mật & Quản lý tài sản số của bạn", - "safelyStore": "Lưu trữ và chuyển tiền điện tử và NFT của bạn một cách an toàn.", - "logInToAny": "Đăng nhập vào bất kỳ ứng dụng trên NEAR", - "noNeedToCreate": "Không cần tạo tài khoản hoặc thông tin đăng nhập mới. Kết nối ví của bạn và bắt đầu!", - "getAWallet": "Tạo Ví", - "useAWallet": "Sử dụng ví để bảo mật và quản lý tài sản trên NEAR của bạn và đăng nhập vào bất kỳ ứng dụng NEAR nào, không cần tên người dùng và mật khẩu.", - "connectionFailed": "Kết nối thất bại", - "connectionSuccessful": "Kết nối thành công", - "rememberWallet": "Ghi nhớ lựa chọn ví", - "connected": "Đã kết nối", - "connectingTo": "Đang kết nối tới", - "connectingMessage": { - "injected": "Xác nhận kết nối trong cửa sổ tiện ích mở rộng", - "browser": "Xác nhận kết nối trong ví sau khi được chuyển hướng", - "hardware": "Xác nhận kết nối với ví lạnh", - "bridge": "Xác nhận kết nối trong ví" - } - }, - "ledger": { - "connectWithLedger": "Kết nối ví Ledger", - "makeSureYourLedger": "Đảm bảo Ledger của bạn được kết nối an toàn và ứng dụng NEAR đang mở sẵn trên thiết bị", - "continue": "Tiếp tục", - "specifyHDPath": "Chỉ định HD Path", - "enterYourPreferredHDPath": "Nhập HD Path của bạn, sau đó quét tìm các tài khoản hoạt động", - "scan": "Quét", - "retry": "Thử lại", - "ledgerIsNotAvailable": "Ledger không khả dụng", - "accessDeniedToUseLedgerDevice": "Truy cập Ledger bị từ chối", - "noAccountsFound": "Không tìm thấy tài khoản", - "selectYourAccounts": "Chọn tài khoản của bạn", - "connecting1Account": "Đang kết nối 1 tài khoản", - "cantFindAnyAccount": "Không thể tìm thấy bất kỳ tài khoản nào được liên kết với Ledger này. Vui lòng tạo một tài khoản NEAR mới", - "orConnectAnAnotherLedger": "hoặc kết nối với ví Ledger khác.", - "connecting": "Đang kết nối", - "ofAccounts": "của tài khoản", - "failedToAutomatically": "Không thể tự động tìm id tài khoản. Nhập thủ công:", - "overviewTheListOfAuthorized": "Tổng quan danh sách các tài khoản được ủy quyền, hoàn tất đăng nhập bằng cách bấm vào nút bên dưới.", - "finish": "Hoàn thành" - }, - "install": { - "youllNeedToInstall": "Bạn sẽ cần cài đặt", - "toContinueAfterInstalling": "để bắt đầu. Sau khi cài đặt xong", - "refreshThePage": "Tải lại trang.", - "open": "Mở" - }, - "qr": { - "copiedToClipboard": "Đã sao chép vào bảng ghi tạm", - "failedToCopy": "Sao chép vào bảng ghi tạm thất bại", - "scanWithYourMobile": "Quét với điện thoại của bạn", - "copyToClipboard": " Sao chép vào bảng ghi tạm", - "preferTheOfficial": "Dialogue chính thức của", - "open": "Mở" - }, - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile", - "instant-link": "Ví tức thì" - }, - "exportAccounts": { - "chooseAWallet": "Chọn ví", - "transferYourAccounts": "Chuyển tài khoản", - "selectAWallet": "Chọn ví phù hợp với nhu cầu của bạn, ví được chọn cần hỗ trợ các tài khoản đang sử dụng.", - "selectYourAccounts": "Chọn tài khoản", - "afterDecide": "Sau khi chọn được tài khoản bạn có chuyển.", - "disclaimer": "Bạn không thể chuyển tài khoản nếu tài khoản đó chưa được nhận tiền hoặc chưa phát sinh giao dịch trên NEAR.", - "warning": "không hỗ trợ xuất tài khoản. Vui lòng chọn ví khác.", - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile" - }, - "selectAccounts": { - "title": "Chọn tài khoản để chuyển", - "button": "Lấy cụm mật khẩu", - "deselectAll": "Bỏ chọn tất cả", - "selectAll": "Chọn tất cả", - "unavailable": "Chuyển không khả dụng", - "error": "Tài khoản không tồn tại", - "warningLedger": "Yêu cầu hỗ trợ Ledger", - "noBalance": "Tài khoản trống" - }, - "getPassphrase": { - "title": "Sao chép mật khẩu tạm thời", - "desc": "Bạn sẽ cần nhập mật khẩu khi bắt đầu xuất các khoản tới ví khác.", - "button": "Tiếp tục", - "label": "Bấm để sao chép", - "checkLabel": "Tôi đã chép hoặc ghi lại mật khẩu" - }, - "complete": { - "title": "Hoàn thành chuyển", - "descOne": "Bạn sẽ được chuyển hướng tới tài khoản đã chọn để hoàn tất quá trình.", - "descTwo": "Sau khi nhập, nhấn nút để hoàn tất quy trình chuyển.", - "button": "Hoàn thành" - } - } - }, - "component": { - "clickToCopy": { - "label": "Đã sao chép", - "tooltip": "Bấm để sao chép" - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/zh.json b/packages/ethereum-wallets/dist/esm/core/src/lib/locale/zh.json deleted file mode 100644 index 2f363c7b1..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/locale/zh.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "连接你的钱包", - "whatIsAWallet": "什么是钱包?", - "secureAndManage": "保护和管理你的数字资产", - "safelyStore": "安全存储和转移你的加密货币和NFT", - "logInToAny": "登录任何 NEAR 应用", - "noNeedToCreate": "不需要创建新账户或密码。连接你的钱包,即可开始使用!", - "getAWallet": "获取新账户", - "useAWallet": "使用钱包来保护和管理你的 NEAR 资产,无需用户名和密码即可登录任何 NEAR 应用", - "connectionFailed": "连接失败", - "connectionSuccessful": "连接成功", - "rememberWallet": "记住钱包选择", - "connected": "已连接", - "connectingTo": "正在连接" - }, - "ledger": { - "connectWithLedger": "连接 Ledger", - "makeSureYourLedger": "确保你的 Ledger 已经安全连接,并且 NEAR 应用已经在你设备上打开", - "continue": "继续", - "specifyHDPath": "指定 HD 路径", - "enterYourPreferredHDPath": "输入你偏好的 HD 路径,然后为任意活跃账户扫码", - "scan": "扫码", - "retry": "重试", - "ledgerIsNotAvailable": "Ledger 不可用", - "accessDeniedToUseLedgerDevice": "访问 Ledger 设备被拒绝", - "noAccountsFound": "没有找到账户", - "selectYourAccounts": "选择你的账户", - "connecting1Account": "正在连接1个账户", - "cantFindAnyAccount": "没有找到任何与这个 Ledger 相关联的账户。请创建新账户于", - "orConnectAnAnotherLedger.": "或连接另一个 Ledger", - "connecting": "正在连接", - "ofAccounts": "个账户", - "failedToAutomatically": "无法自动找到账户ID,请主动提供:", - "overviewTheListOfAuthorized": "请查看已授权的账户列表,点击以下按钮完成登录", - "finish": "完成" - }, - "install": { - "youllNeedToInstall": "你将需要安装", - "toContinueAfterInstalling": "以继续。安装完", - "refreshThePage": "请刷新页面", - "open": "打开" - }, - "qr": { - "copiedToClipboard": "复制到了剪贴板", - "failedToCopy": "复制到剪贴板失败", - "scanWithYourMobile": "用你的移动设备扫码", - "copyToClipboard": " 复制到剪贴板", - "preferTheOfficial": "希望使用官方对话框于", - "open": "打开" - }, - "walletTypes": { - "hardware": "硬件钱包", - "browser": "浏览器钱包", - "injected": "钱包扩展", - "bridge": "桥接钱包", - "mobile": "移动钱包", - "instant-link": "即时钱包" - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/options.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/options.d.ts deleted file mode 100644 index bc6d1111b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/options.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { WalletSelectorParams } from "./wallet-selector.types"; -import type { Options, Network, NetworkId } from "./options.types"; -export declare const getNetworkPreset: (networkId: NetworkId, fallbackRpcUrls?: Array) => Network; -export declare const resolveNetwork: (network: NetworkId | Network) => Network; -export declare const resolveOptions: (params: WalletSelectorParams) => { - options: Options; - storage: import("./services").StorageService; -}; -//# sourceMappingURL=options.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/options.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/options.d.ts.map deleted file mode 100644 index e8ce7bf80..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/options.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGnE,eAAO,MAAM,gBAAgB,cAChB,SAAS,oBACF,KAAK,CAAC,MAAM,CAAC,KAC9B,OAqBF,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,SAAS,GAAG,OAAO,KAAG,OAE7D,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,oBAAoB;;;CAc1D,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/options.js b/packages/ethereum-wallets/dist/esm/core/src/lib/options.js deleted file mode 100644 index fa6b65f26..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/options.js +++ /dev/null @@ -1,40 +0,0 @@ -import { WebStorageService } from "./services"; -export const getNetworkPreset = (networkId, fallbackRpcUrls) => { - switch (networkId) { - case "mainnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.mainnet.near.org", - helperUrl: "https://helper.mainnet.near.org", - explorerUrl: "https://nearblocks.io", - indexerUrl: "https://api.kitwallet.app", - }; - case "testnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.testnet.near.org", - helperUrl: "https://helper.testnet.near.org", - explorerUrl: "https://testnet.nearblocks.io", - indexerUrl: "https://testnet-api.kitwallet.app", - }; - default: - throw Error(`Failed to find config for: '${networkId}'`); - } -}; -export const resolveNetwork = (network) => { - return typeof network === "string" ? getNetworkPreset(network) : network; -}; -export const resolveOptions = (params) => { - const options = { - languageCode: params.languageCode || undefined, - network: resolveNetwork(params.network), - debug: params.debug || false, - optimizeWalletOrder: params.optimizeWalletOrder === false ? false : true, - randomizeWalletOrder: params.randomizeWalletOrder || false, - relayerUrl: params.relayerUrl || undefined, - }; - return { - options, - storage: params.storage || new WebStorageService(), - }; -}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/options.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/options.types.d.ts deleted file mode 100644 index 45a8b9888..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/options.types.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { SupportedLanguage } from "./translate/translate"; -export type NetworkId = "mainnet" | "testnet"; -export interface Network { - /** - * Network ID (e.g. `testnet`). - */ - networkId: string; - /** - * URL for RPC requests. - */ - nodeUrl: string; - /** - * URL for creating accounts. - */ - helperUrl: string; - /** - * URL for the NEAR explorer. - */ - explorerUrl: string; - /** - * URL for the NEAR indexer. - */ - indexerUrl: string; -} -export interface Options { - /** - * ISO 639-1 two-letter language code. - */ - languageCode: SupportedLanguage | undefined; - /** - * Resolved network configuration. - */ - network: Network; - /** - * Whether internal logging is enabled. - */ - debug: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder: boolean; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl: string | undefined; -} -//# sourceMappingURL=options.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/options.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/options.types.d.ts.map deleted file mode 100644 index 663fb6879..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/options.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/options.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/options.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/options.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts deleted file mode 100644 index 00a0b6840..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { EventEmitterService, Subscription } from "./event-emitter.types"; -export declare class EventEmitter> implements EventEmitterService { - private emitter; - on(eventName: Event, callback: (event: Events[Event]) => void): Subscription; - off(eventName: Event, callback: (event: Events[Event]) => void): void; - emit(eventName: Event, event: Events[Event]): void; -} -//# sourceMappingURL=event-emitter.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map deleted file mode 100644 index 80b80c736..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/E,qBAAa,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC9D,YAAW,mBAAmB,CAAC,MAAM,CAAC;IAEtC,OAAO,CAAC,OAAO,CAAuB;IAEtC,EAAE,CAAC,KAAK,SAAS,MAAM,MAAM,EAC3B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,GACvC,YAAY;IAQf,GAAG,CAAC,KAAK,SAAS,MAAM,MAAM,EAC5B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;IAK1C,IAAI,CAAC,KAAK,SAAS,MAAM,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;CAGxE"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.js deleted file mode 100644 index 304200d75..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.js +++ /dev/null @@ -1,16 +0,0 @@ -import { EventEmitter as NEventEmitter } from "events"; -export class EventEmitter { - emitter = new NEventEmitter(); - on(eventName, callback) { - this.emitter.on(eventName, callback); - return { - remove: () => this.emitter.off(eventName, callback), - }; - } - off(eventName, callback) { - this.emitter.off(eventName, callback); - } - emit(eventName, event) { - this.emitter.emit(eventName, event); - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts deleted file mode 100644 index 3a25067e0..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface Subscription { - remove: () => void; -} -export interface EventEmitterService> { - on(eventName: EventName, callback: (event: Events[EventName]) => void): Subscription; - off(eventName: EventName, callback: (event: Events[EventName]) => void): void; - emit(eventName: EventName, event: Events[EventName]): void; -} -//# sourceMappingURL=event-emitter.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map deleted file mode 100644 index 6e4178d43..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzE,EAAE,CAAC,SAAS,SAAS,MAAM,MAAM,EAC/B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,YAAY,CAAC;IAEhB,GAAG,CAAC,SAAS,SAAS,MAAM,MAAM,EAChC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,IAAI,CAAC;IAER,IAAI,CAAC,SAAS,SAAS,MAAM,MAAM,EACjC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,GACvB,IAAI,CAAC;CACT"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/index.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/index.d.ts deleted file mode 100644 index 7f06b3d8e..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * from "./provider/provider.service"; -export * from "./provider/provider.service.types"; -export * from "./storage/storage.service.types"; -export * from "./storage/json-storage.service.types"; -export * from "./storage/json-storage.service"; -export * from "./storage/web-storage.service"; -export * from "./logger/logger.service"; -export * from "./logger/logger.service.types"; -export * from "./wallet-modules/wallet-modules.service"; -export * from "./event-emitter/event-emitter.service"; -export * from "./event-emitter/event-emitter.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/index.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/index.d.ts.map deleted file mode 100644 index f34146ce5..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/index.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/index.js deleted file mode 100644 index 5301a0f98..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/index.js +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./provider/provider.service"; -export * from "./provider/provider.service.types"; -export * from "./storage/storage.service.types"; -export * from "./storage/json-storage.service.types"; -export * from "./storage/json-storage.service"; -export * from "./storage/web-storage.service"; -export * from "./logger/logger.service"; -export * from "./logger/logger.service.types"; -export * from "./wallet-modules/wallet-modules.service"; -export * from "./event-emitter/event-emitter.service"; -export * from "./event-emitter/event-emitter.types"; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.d.ts deleted file mode 100644 index 305cafb84..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { LoggerService } from "./logger.service.types"; -export declare class Logger implements LoggerService { - static debug: boolean; - namespace?: string; - constructor(namespace?: string); - private emit; - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -export declare const logger: Logger; -//# sourceMappingURL=logger.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.d.ts.map deleted file mode 100644 index 3819238b2..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,qBAAa,MAAO,YAAW,aAAa;IAC1C,MAAM,CAAC,KAAK,UAAS;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEP,SAAS,CAAC,EAAE,MAAM;IAI9B,OAAO,CAAC,IAAI;IAgBZ,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI7B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;CAGhC;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.js deleted file mode 100644 index d1ca57bc4..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.js +++ /dev/null @@ -1,32 +0,0 @@ -export class Logger { - static debug = false; - namespace; - constructor(namespace) { - this.namespace = namespace; - } - emit(method, ...params) { - if (!Logger.debug) { - return; - } - if (this.namespace && method !== "error") { - // eslint-disable-next-line no-console - console[method](this.namespace, ...params); - return; - } - // eslint-disable-next-line no-console - console[method](...params); - } - log(...params) { - this.emit("log", ...params); - } - info(...params) { - this.emit("info", ...params); - } - warn(...params) { - this.emit("warn", ...params); - } - error(...params) { - this.emit("error", ...params); - } -} -export const logger = new Logger(); diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts deleted file mode 100644 index 8c891f4f2..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface LoggerService { - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -//# sourceMappingURL=logger.service.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts.map deleted file mode 100644 index 0160d352c..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/logger/logger.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.d.ts deleted file mode 100644 index 07f2954c5..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { AccessKeyView, BlockReference, QueryResponseKind, RpcQueryRequest } from "@near-js/types"; -import type { ProviderService, QueryParams, ViewAccessKeyParams } from "./provider.service.types"; -import type { SignedTransaction } from "@near-js/transactions"; -export declare class Provider implements ProviderService { - private provider; - constructor(urls: Array); - query(paramsOrPath: QueryParams | RpcQueryRequest | string, data?: string): Promise; - viewAccessKey({ accountId, publicKey }: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; - private urlsToProviders; -} -//# sourceMappingURL=provider.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.d.ts.map deleted file mode 100644 index 02d2f07b3..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,qBAAa,QAAS,YAAW,eAAe;IAW9C,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;IAM/B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,EACpD,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC;IAQpB,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,mBAAmB;IAS3D,KAAK,CAAC,SAAS,EAAE,cAAc;IAI/B,eAAe,CAAC,iBAAiB,EAAE,iBAAiB;IAIpD,OAAO,CAAC,eAAe;CAKxB"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.js deleted file mode 100644 index bfcf13b62..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.js +++ /dev/null @@ -1,43 +0,0 @@ -import { JsonRpcProvider, FailoverRpcProvider } from "@near-js/providers"; -export class Provider { - /* - private provider: JsonRpcProvider; - - constructor(urls: Array) { - this.provider = new JsonRpcProvider( - this.urlsToProviders(urls) - ); - } - */ - provider; - constructor(urls) { - this.provider = new FailoverRpcProvider(this.urlsToProviders(urls)); - } - query(paramsOrPath, data) { - if (typeof paramsOrPath === "string" && data !== undefined) { - return this.provider.query(paramsOrPath, data); - } - else { - return this.provider.query(paramsOrPath); - } - } - viewAccessKey({ accountId, publicKey }) { - return this.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountId, - public_key: publicKey, - }); - } - block(reference) { - return this.provider.block(reference); - } - sendTransaction(signedTransaction) { - return this.provider.sendTransaction(signedTransaction); - } - urlsToProviders(urls) { - return urls && urls.length > 0 - ? urls.map((url) => new JsonRpcProvider({ url })) - : []; - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts deleted file mode 100644 index cba6ca3cd..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { AccessKeyView, BlockReference, BlockResult, QueryResponseKind, FinalExecutionOutcome } from "@near-js/types"; -import type { SignedTransaction } from "@near-js/transactions"; -export type QueryParams = { - [key in string]: unknown; -}; -export interface ViewAccessKeyParams { - accountId: string; - publicKey: string; -} -export interface ProviderService { - query(params: QueryParams): Promise; - viewAccessKey(params: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; -} -//# sourceMappingURL=provider.service.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts.map deleted file mode 100644 index 94a2e9755..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG;KAAG,GAAG,IAAI,MAAM,GAAG,OAAO;CAAE,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,eAAe,CACb,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/provider/provider.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts deleted file mode 100644 index 8e5c8063a..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -import type { JsonStorageService } from "./json-storage.service.types"; -export declare class JsonStorage implements JsonStorageService { - storage: StorageService; - namespace: string; - constructor(storage: StorageService, namespace: string | Array); - private resolveKey; - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts.map deleted file mode 100644 index 9cf929933..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,qBAAa,WAAY,YAAW,kBAAkB;IACpD,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;gBAEN,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAOtE,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAMlD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.js deleted file mode 100644 index a9175d614..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.js +++ /dev/null @@ -1,25 +0,0 @@ -const KEY_DELIMITER = ":"; -export class JsonStorage { - storage; - namespace; - constructor(storage, namespace) { - this.storage = storage; - this.namespace = Array.isArray(namespace) - ? namespace.join(KEY_DELIMITER) - : namespace; - } - resolveKey(key) { - return [this.namespace, key].join(KEY_DELIMITER); - } - getItem(key) { - return this.storage.getItem(this.resolveKey(key)).then((item) => { - return typeof item === "string" ? JSON.parse(item) : null; - }); - } - setItem(key, value) { - return this.storage.setItem(this.resolveKey(key), JSON.stringify(value)); - } - removeItem(key) { - return this.storage.removeItem(this.resolveKey(key)); - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts deleted file mode 100644 index 0cfff07a0..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface JsonStorageService { - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts.map deleted file mode 100644 index 00ce8794a..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/json-storage.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts deleted file mode 100644 index 64ff2e6d3..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts.map deleted file mode 100644 index afbf46e25..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/storage.service.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/storage.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/storage.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts deleted file mode 100644 index f13fefc9a..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -export declare class WebStorageService implements StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=web-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts.map deleted file mode 100644 index fbed55367..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/web-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/web-storage.service.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/web-storage.service.js deleted file mode 100644 index 3b6ee32f5..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/storage/web-storage.service.js +++ /dev/null @@ -1,20 +0,0 @@ -export class WebStorageService { - getItem(key) { - return new Promise((resolve) => { - const value = localStorage.getItem(key); - resolve(value); - }); - } - setItem(key, value) { - return new Promise((resolve) => { - localStorage.setItem(key, value); - resolve(); - }); - } - removeItem(key) { - return new Promise((resolve) => { - localStorage.removeItem(key); - resolve(); - }); - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts deleted file mode 100644 index 28c9880c2..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { WalletModulesParams } from "./wallet-modules.service.types"; -import type { Wallet } from "../../wallet"; -export declare class WalletModules { - private factories; - private storage; - private options; - private store; - private emitter; - private provider; - private modules; - private instances; - constructor({ factories, storage, options, store, emitter, provider, }: WalletModulesParams); - private validateWallet; - private resolveStorageState; - private setWalletAsRecentlySignedIn; - private signOutWallet; - private onWalletSignedIn; - private onWalletSignedOut; - private setupWalletEmitter; - private validateSignMessageParams; - private decorateWallet; - private setupInstance; - private getModule; - getWallet(id: string | null): Promise; - setup(): Promise; -} -//# sourceMappingURL=wallet-modules.service.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map deleted file mode 100644 index 94b2e90a9..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAEV,MAAM,EAOP,MAAM,cAAc,CAAC;AAmBtB,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAA6C;gBAElD,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,mBAAmB;YAYR,cAAc;YAkBd,mBAAmB;YAyEnB,2BAA2B;YAuB3B,aAAa;YAYb,gBAAgB;IAkD9B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,cAAc;YAsCR,aAAa;IA6B3B,OAAO,CAAC,SAAS;IAIX,SAAS,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAoB9D,KAAK;CAkFZ"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.js deleted file mode 100644 index d5aa498d4..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.js +++ /dev/null @@ -1,321 +0,0 @@ -import { EventEmitter } from "../event-emitter/event-emitter.service"; -import { Logger, logger } from "../logger/logger.service"; -import { RECENTLY_SIGNED_IN_WALLETS, PACKAGE_NAME, PENDING_CONTRACT, PENDING_SELECTED_WALLET_ID, REMEMBER_RECENT_WALLETS, REMEMBER_RECENT_WALLETS_STATE, } from "../../constants"; -import { JsonStorage } from "../storage/json-storage.service"; -export class WalletModules { - factories; - storage; - options; - store; - emitter; - provider; - modules; - instances; - constructor({ factories, storage, options, store, emitter, provider, }) { - this.factories = factories; - this.storage = storage; - this.options = options; - this.store = store; - this.emitter = emitter; - this.provider = provider; - this.modules = []; - this.instances = {}; - } - async validateWallet(id) { - let accounts = []; - const wallet = await this.getWallet(id); - if (wallet) { - // Ensure our persistent state aligns with the selected wallet. - // For example a wallet is selected, but it returns no accounts (not signed in). - accounts = await wallet.getAccounts().catch((err) => { - logger.log(`Failed to validate ${wallet.id} during setup`); - logger.error(err); - return []; - }); - } - return accounts; - } - async resolveStorageState() { - const jsonStorage = new JsonStorage(this.storage, PACKAGE_NAME); - const pendingSelectedWalletId = await jsonStorage.getItem(PENDING_SELECTED_WALLET_ID); - const pendingContract = await jsonStorage.getItem(PENDING_CONTRACT); - const rememberRecentWallets = await jsonStorage.getItem(REMEMBER_RECENT_WALLETS); - if (pendingSelectedWalletId && pendingContract) { - const accounts = await this.validateWallet(pendingSelectedWalletId); - await jsonStorage.removeItem(PENDING_SELECTED_WALLET_ID); - await jsonStorage.removeItem(PENDING_CONTRACT); - if (accounts.length) { - const { selectedWalletId } = this.store.getState(); - const selectedWallet = await this.getWallet(selectedWalletId); - if (selectedWallet && pendingSelectedWalletId !== selectedWalletId) { - await selectedWallet.signOut().catch((err) => { - logger.log("Failed to sign out existing wallet"); - logger.error(err); - }); - } - let recentlySignedInWalletsFromPending = []; - if (rememberRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWalletsFromPending = - await this.setWalletAsRecentlySignedIn(pendingSelectedWalletId); - } - return { - accounts, - contract: pendingContract, - selectedWalletId: pendingSelectedWalletId, - recentlySignedInWallets: recentlySignedInWalletsFromPending, - rememberRecentWallets: rememberRecentWallets || REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - } - const { contract, selectedWalletId } = this.store.getState(); - const accounts = await this.validateWallet(selectedWalletId); - const recentlySignedInWallets = await jsonStorage.getItem(RECENTLY_SIGNED_IN_WALLETS); - if (!accounts.length) { - return { - accounts: [], - contract: null, - selectedWalletId: null, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - return { - accounts, - contract, - selectedWalletId, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - async setWalletAsRecentlySignedIn(walletId) { - const jsonStorage = new JsonStorage(this.storage, PACKAGE_NAME); - let recentlySignedInWallets = await jsonStorage.getItem(RECENTLY_SIGNED_IN_WALLETS); - if (!recentlySignedInWallets) { - recentlySignedInWallets = []; - } - if (!recentlySignedInWallets.includes(walletId)) { - recentlySignedInWallets.unshift(walletId); - recentlySignedInWallets = recentlySignedInWallets.slice(0, 5); - await jsonStorage.setItem(RECENTLY_SIGNED_IN_WALLETS, recentlySignedInWallets); - } - return recentlySignedInWallets; - } - async signOutWallet(walletId) { - const wallet = (await this.getWallet(walletId)); - await wallet.signOut().catch((err) => { - logger.log(`Failed to sign out ${wallet.id}`); - logger.error(err); - // At least clean up state on our side. - this.onWalletSignedOut(wallet.id); - }); - } - async onWalletSignedIn(walletId, { accounts, contractId, methodNames }) { - const { selectedWalletId, rememberRecentWallets } = this.store.getState(); - const jsonStorage = new JsonStorage(this.storage, PACKAGE_NAME); - const contract = { contractId, methodNames }; - if (!accounts.length) { - const module = this.getModule(walletId); - // We can't guarantee the user will actually sign in with browser wallets. - // Best we can do is set in storage and validate on init. - if (module.type === "browser") { - await jsonStorage.setItem(PENDING_SELECTED_WALLET_ID, walletId); - await jsonStorage.setItem(PENDING_CONTRACT, contract); - } - return; - } - if (selectedWalletId && selectedWalletId !== walletId) { - await this.signOutWallet(selectedWalletId); - } - let recentlySignedInWallets = []; - if (rememberRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWallets = await this.setWalletAsRecentlySignedIn(walletId); - } - this.store.dispatch({ - type: "WALLET_CONNECTED", - payload: { - walletId, - contract, - accounts, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - this.emitter.emit("signedIn", { - walletId, - contractId, - methodNames, - accounts, - }); - } - onWalletSignedOut(walletId) { - this.store.dispatch({ - type: "WALLET_DISCONNECTED", - payload: { walletId }, - }); - this.emitter.emit("signedOut", { walletId }); - } - setupWalletEmitter(module) { - const emitter = new EventEmitter(); - emitter.on("signedOut", () => { - this.onWalletSignedOut(module.id); - }); - emitter.on("signedIn", (event) => { - this.onWalletSignedIn(module.id, event); - }); - emitter.on("accountsChanged", async ({ accounts }) => { - this.emitter.emit("accountsChanged", { walletId: module.id, accounts }); - if (!accounts.length) { - return this.signOutWallet(module.id); - } - this.store.dispatch({ - type: "ACCOUNTS_CHANGED", - payload: { walletId: module.id, accounts }, - }); - }); - emitter.on("networkChanged", ({ networkId }) => { - this.emitter.emit("networkChanged", { walletId: module.id, networkId }); - }); - emitter.on("uriChanged", ({ uri }) => { - this.emitter.emit("uriChanged", { walletId: module.id, uri }); - }); - return emitter; - } - validateSignMessageParams({ message, nonce, recipient, }) { - if (!message || message.trim() === "") { - throw new Error("Invalid message. It must be a non-empty string."); - } - if (!Buffer.isBuffer(nonce) || nonce.length !== 32) { - throw new Error("Invalid nonce. It must be a Buffer with a length of 32 bytes."); - } - if (!recipient || recipient.trim() === "") { - throw new Error("Invalid recipient. It must be a non-empty string."); - } - } - decorateWallet(wallet) { - const _signIn = wallet.signIn; - const _signOut = wallet.signOut; - const _signMessage = wallet.signMessage; - wallet.signIn = async (params) => { - const accounts = await _signIn(params); - const { contractId, methodNames = [] } = params; - await this.onWalletSignedIn(wallet.id, { - accounts, - contractId, - methodNames, - }); - return accounts; - }; - wallet.signOut = async () => { - await _signOut(); - this.onWalletSignedOut(wallet.id); - }; - wallet.signMessage = async (params) => { - if (_signMessage === undefined) { - throw Error(`The signMessage method is not supported by ${wallet.metadata.name}`); - } - this.validateSignMessageParams(params); - return await _signMessage(params); - }; - return wallet; - } - async setupInstance(module) { - if (!module.metadata.available) { - const message = module.type === "injected" ? "not installed" : "not available"; - throw Error(`${module.metadata.name} is ${message}`); - } - const wallet = { - id: module.id, - type: module.type, - metadata: module.metadata, - ...(await module.init({ - id: module.id, - type: module.type, - metadata: module.metadata, - options: this.options, - store: this.store.toReadOnly(), - provider: this.provider, - emitter: this.setupWalletEmitter(module), - logger: new Logger(module.id), - storage: new JsonStorage(this.storage, [PACKAGE_NAME, module.id]), - })), - }; - return this.decorateWallet(wallet); - } - getModule(id) { - return this.modules.find((x) => x.id === id); - } - async getWallet(id) { - const module = this.getModule(id); - if (!module) { - return null; - } - const { selectedWalletId } = this.store.getState(); - // If user uninstalled/removed a wallet which was previously signed in with - // best we can do is clean up state on our side. - if (!module.metadata.available && selectedWalletId) { - this.onWalletSignedOut(selectedWalletId); - return null; - } - return (await module.wallet()); - } - async setup() { - const modules = []; - for (let i = 0; i < this.factories.length; i += 1) { - const module = await this.factories[i]({ options: this.options }).catch((err) => { - logger.log("Failed to setup module"); - logger.error(err); - return null; - }); - // Filter out wallets that aren't available. - if (!module) { - continue; - } - // Skip duplicated module. - if (modules.some((x) => x.id === module.id)) { - continue; - } - modules.push({ - id: module.id, - type: module.type, - metadata: module.metadata, - wallet: async () => { - let instance = this.instances[module.id]; - if (instance) { - return instance; - } - instance = await this.setupInstance(module); - this.instances[module.id] = instance; - return instance; - }, - }); - } - this.modules = modules; - const { accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = await this.resolveStorageState(); - this.store.dispatch({ - type: "SETUP_WALLET_MODULES", - payload: { - modules, - accounts, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - for (let i = 0; i < this.modules.length; i++) { - if (this.modules[i].type !== "instant-link") { - continue; - } - const wallet = (await this.modules[i].wallet()); - if (!wallet.metadata.runOnStartup) { - continue; - } - try { - await wallet.signIn({ contractId: wallet.getContractId() }); - } - catch (err) { - logger.error("Failed to sign in to wallet. " + err); - } - } - } -} diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts deleted file mode 100644 index 339f296e7..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { WalletModuleFactory } from "../../wallet"; -import type { StorageService } from "../storage/storage.service.types"; -import type { Options } from "../../options.types"; -import type { Store } from "../../store.types"; -import type { EventEmitter } from "../event-emitter/event-emitter.service"; -import type { WalletSelectorEvents } from "../../wallet-selector.types"; -import type { ProviderService } from "../provider/provider.service.types"; -export interface WalletModulesParams { - factories: Array; - storage: StorageService; - options: Options; - store: Store; - emitter: EventEmitter; - provider: ProviderService; -} -//# sourceMappingURL=wallet-modules.service.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map deleted file mode 100644 index 231a8d586..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC5C,QAAQ,EAAE,eAAe,CAAC;CAC3B"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/store.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/store.d.ts deleted file mode 100644 index dd8b9c03c..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/store.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { StorageService } from "./services"; -import type { Store } from "./store.types"; -export declare const createStore: (storage: StorageService) => Promise; -//# sourceMappingURL=store.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/store.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/store.d.ts.map deleted file mode 100644 index d1628d160..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/store.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EACV,KAAK,EAGN,MAAM,eAAe,CAAC;AA+JvB,eAAO,MAAM,WAAW,YAAmB,cAAc,KAAG,OAAO,CAAC,KAAK,CAgExE,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/store.js b/packages/ethereum-wallets/dist/esm/core/src/lib/store.js deleted file mode 100644 index 32dc79078..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/store.js +++ /dev/null @@ -1,154 +0,0 @@ -import { Subject, BehaviorSubject, scan } from "rxjs"; -import { logger, JsonStorage } from "./services"; -import { PACKAGE_NAME, CONTRACT, SELECTED_WALLET_ID, RECENTLY_SIGNED_IN_WALLETS, REMEMBER_RECENT_WALLETS, REMEMBER_RECENT_WALLETS_STATE, } from "./constants"; -const reducer = (state, action) => { - logger.log("Store Action", action); - switch (action.type) { - case "SETUP_WALLET_MODULES": { - const { modules, accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = action.payload; - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === 0, - }; - }); - return { - ...state, - modules, - accounts: accountStates, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }; - } - case "WALLET_CONNECTED": { - const { walletId, contract, accounts, recentlySignedInWallets } = action.payload; - if (!accounts.length) { - return state; - } - const activeAccountIndex = state.accounts.findIndex((account) => account.active); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === (activeAccountIndex > -1 ? activeAccountIndex : 0), - }; - }); - return { - ...state, - contract, - accounts: accountStates, - selectedWalletId: walletId, - recentlySignedInWallets, - }; - } - case "WALLET_DISCONNECTED": { - const { walletId } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - return { - ...state, - contract: null, - accounts: [], - selectedWalletId: null, - }; - } - case "ACCOUNTS_CHANGED": { - const { walletId, accounts } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - const activeAccount = state.accounts.find((account) => account.active); - const isActiveAccountRemoved = !accounts.some((account) => account.accountId === activeAccount?.accountId); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: isActiveAccountRemoved - ? i === 0 - : account.accountId === activeAccount?.accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_ACTIVE_ACCOUNT": { - const { accountId } = action.payload; - const accountStates = state.accounts.map((account) => { - return { - ...account, - active: account.accountId === accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_REMEMBER_RECENT_WALLETS": { - const { selectedWalletId, recentlySignedInWallets } = state; - const { rememberRecentWallets } = action.payload; - const newRecentWallets = rememberRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? REMEMBER_RECENT_WALLETS_STATE.DISABLED - : REMEMBER_RECENT_WALLETS_STATE.ENABLED; - const newWalletsVal = [...recentlySignedInWallets]; - if (selectedWalletId && - !recentlySignedInWallets.includes(selectedWalletId)) { - newWalletsVal.push(selectedWalletId); - } - const newRecentlySignedInWallets = newRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? newWalletsVal - : []; - return { - ...state, - rememberRecentWallets: newRecentWallets, - recentlySignedInWallets: newRecentlySignedInWallets, - }; - } - default: - return state; - } -}; -export const createStore = async (storage) => { - const jsonStorage = new JsonStorage(storage, PACKAGE_NAME); - const initialState = { - modules: [], - accounts: [], - contract: await jsonStorage.getItem(CONTRACT), - selectedWalletId: await jsonStorage.getItem(SELECTED_WALLET_ID), - recentlySignedInWallets: (await jsonStorage.getItem(RECENTLY_SIGNED_IN_WALLETS)) || [], - rememberRecentWallets: (await jsonStorage.getItem(REMEMBER_RECENT_WALLETS)) || "", - }; - const state$ = new BehaviorSubject(initialState); - const actions$ = new Subject(); - actions$.pipe(scan(reducer, initialState)).subscribe(state$); - const syncStorage = async (prevState, state, storageKey, property) => { - if (state[property] === prevState[property]) { - return; - } - if (state[property]) { - await jsonStorage.setItem(storageKey, state[property]); - return; - } - await jsonStorage.removeItem(storageKey); - }; - let prevState = state$.getValue(); - state$.subscribe((state) => { - syncStorage(prevState, state, SELECTED_WALLET_ID, "selectedWalletId"); - syncStorage(prevState, state, CONTRACT, "contract"); - syncStorage(prevState, state, RECENTLY_SIGNED_IN_WALLETS, "recentlySignedInWallets"); - syncStorage(prevState, state, REMEMBER_RECENT_WALLETS, "rememberRecentWallets"); - prevState = state; - }); - return { - observable: state$, - getState: () => state$.getValue(), - dispatch: (action) => actions$.next(action), - toReadOnly: () => ({ - getState: () => state$.getValue(), - observable: state$.asObservable(), - }), - }; -}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/store.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/store.types.d.ts deleted file mode 100644 index 3d93e104e..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/store.types.d.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type { BehaviorSubject, Observable } from "rxjs"; -import type { Wallet, Account } from "./wallet"; -import type { SignMessageMethod } from "./wallet"; -export interface ContractState { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * List of methods that can only be invoked on the Smart Contract. Empty list means no restriction. - */ - methodNames: Array; -} -export type ModuleState = { - /** - * Unique identifier for the wallet. - */ - id: Variation["id"]; - /** - * Type of the wallet. - */ - type: Variation["type"]; - /** - * Meta information about the wallet. - */ - metadata: Variation["metadata"]; - /** - * Access functionality of the wallet. - */ - wallet(): Promise; -}; -export type AccountState = Account & { - /** - * Is account set as active. - */ - active: boolean; -}; -export interface WalletSelectorState { - /** - * Returns the signed in contract. - */ - contract: ContractState | null; - /** - * Returns the list of available modules. - */ - modules: Array; - /** - * Returns the list of signed in accounts. - */ - accounts: Array; - /** - * Returns the ID of the selected wallet. - */ - selectedWalletId: string | null; - /** - * Returns ID-s of 5 recently signed in wallets. - */ - recentlySignedInWallets: Array; - /** - * Returns a string, which indicates if the functionality about recentlySignedInWallets is active. - */ - rememberRecentWallets: string; -} -export type WalletSelectorAction = { - type: "SETUP_WALLET_MODULES"; - payload: { - modules: Array; - accounts: Array; - contract: ContractState | null; - selectedWalletId: string | null; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_CONNECTED"; - payload: { - walletId: string; - contract: ContractState; - accounts: Array; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_DISCONNECTED"; - payload: { - walletId: string; - }; -} | { - type: "ACCOUNTS_CHANGED"; - payload: { - walletId: string; - accounts: Array; - }; -} | { - type: "SET_ACTIVE_ACCOUNT"; - payload: { - accountId: string; - }; -} | { - type: "SET_REMEMBER_RECENT_WALLETS"; - payload: { - rememberRecentWallets: string; - }; -}; -export interface ReadOnlyStore { - /** - * Retrieve the current state. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - getState(): WalletSelectorState; - /** - * Subscribe to state changes using the (RxJS) Observable pattern. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - observable: Observable; -} -export interface Store { - observable: BehaviorSubject; - getState(): WalletSelectorState; - dispatch(action: WalletSelectorAction): void; - toReadOnly(): ReadOnlyStore; -} -//# sourceMappingURL=store.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/store.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/store.types.d.ts.map deleted file mode 100644 index 5854551fa..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/store.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/store.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/store.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/store.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/testUtils.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/testUtils.d.ts deleted file mode 100644 index ace50a39a..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/testUtils.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { WalletModuleFactory, Wallet } from "./wallet"; -import type { ProviderService, StorageService } from "./services"; -import type { Options } from "./options.types"; -export interface MockWalletDependencies { - options?: Options; - provider?: ProviderService; -} -export declare const mockWallet: (factory: WalletModuleFactory, deps?: MockWalletDependencies) => Promise<{ - wallet: Variation; - storage: StorageService; -}>; -//# sourceMappingURL=testUtils.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/testUtils.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/testUtils.d.ts.map deleted file mode 100644 index dbc9d8f55..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/testUtils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/testUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAmB/C,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,GAAU,SAAS,SAAS,MAAM,WAC9C,mBAAmB,SACrB,sBAAsB;;;EA4B9B,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/testUtils.js b/packages/ethereum-wallets/dist/esm/core/src/lib/testUtils.js deleted file mode 100644 index 7e90e1ce8..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/testUtils.js +++ /dev/null @@ -1,103 +0,0 @@ -// Remove Jest import -// import * as jest from "jest"; -import { mock } from "jest-mock-extended"; -import { getNetworkPreset, resolveOptions } from "./options"; -import { createStore } from "./store"; -import { EventEmitter, WalletModules } from "./services"; -const createStorageMock = () => { - const _state = {}; - return { - getItem: async (key) => _state[key] || null, // Replace jest.fn() with plain async functions - setItem: async (key, value) => { - _state[key] = value; - }, - removeItem: async (key) => { - delete _state[key]; - }, - }; -}; -export const mockWallet = async (factory, deps) => { - const { options, storage } = resolveOptions({ - network: getNetworkPreset("testnet"), - storage: createStorageMock(), - modules: [factory], - ...deps?.options, - }); - const emitter = new EventEmitter(); - const store = await createStore(storage); - const walletModules = new WalletModules({ - factories: [factory], - storage, - options, - store, - emitter, - provider: deps?.provider || mock(), - }); - await walletModules.setup(); - const { modules } = store.getState(); - const wallet = await walletModules.getWallet(modules[0].id); - return { - wallet: wallet, - storage, - }; -}; -// import * as jest from "jest" -// import { mock } from "jest-mock-extended"; -// import type { WalletModuleFactory, Wallet } from "./wallet"; -// import type { ProviderService, StorageService } from "./services"; -// import type { WalletSelectorEvents } from "./wallet-selector.types"; -// import type { Options } from "./options.types"; -// import { getNetworkPreset, resolveOptions } from "./options"; -// import { createStore } from "./store"; -// import { EventEmitter, WalletModules } from "./services"; -// -// const createStorageMock = (): StorageService => { -// const _state: Record = {}; -// -// return { -// getItem: jest.fn(async (key) => _state[key] || null), -// setItem: jest.fn(async (key, value) => { -// _state[key] = value; -// }), -// removeItem: jest.fn(async (key) => { -// delete _state[key]; -// }), -// }; -// }; -// -// export interface MockWalletDependencies { -// options?: Options; -// provider?: ProviderService; -// } -// -// export const mockWallet = async ( -// factory: WalletModuleFactory, -// deps?: MockWalletDependencies -// ) => { -// const { options, storage } = resolveOptions({ -// network: getNetworkPreset("testnet"), -// storage: createStorageMock(), -// modules: [factory], -// ...deps?.options, -// }); -// const emitter = new EventEmitter(); -// const store = await createStore(storage); -// const walletModules = new WalletModules({ -// factories: [factory], -// storage, -// options, -// store, -// emitter, -// provider: deps?.provider || mock(), -// }); -// -// await walletModules.setup(); -// -// const { modules } = store.getState(); -// const wallet = await walletModules.getWallet(modules[0].id); -// -// return { -// wallet: wallet!, -// storage, -// }; -// }; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/translate/translate.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/translate/translate.d.ts deleted file mode 100644 index 8706ed5a9..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/translate/translate.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type SupportedLanguage = "en" | "es" | "zh" | "bg" | "ko" | "vi" | "hi" | "ar" | "hr" | "mk" | "sl" | "sr"; -export declare const allowOnlyLanguage: (langCode: SupportedLanguage | undefined) => void; -export declare const translate: (path: string) => string; -//# sourceMappingURL=translate.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/translate/translate.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/translate/translate.d.ts.map deleted file mode 100644 index b2ac2d105..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/translate/translate.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/translate/translate.ts"],"names":[],"mappings":"AA4CA,MAAM,MAAM,iBAAiB,GACzB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,eAAO,MAAM,iBAAiB,aAAc,iBAAiB,GAAG,SAAS,SAExE,CAAC;AAuBF,eAAO,MAAM,SAAS,SAAU,MAAM,WAarC,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/translate/translate.js b/packages/ethereum-wallets/dist/esm/core/src/lib/translate/translate.js deleted file mode 100644 index 610c02a94..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/translate/translate.js +++ /dev/null @@ -1,73 +0,0 @@ -import en from "../locale/en.json"; -import es from "../locale/es.json"; -import zh from "../locale/zh.json"; -import bg from "../locale/bg.json"; -import ko from "../locale/ko.json"; -import vi from "../locale/vi.json"; -import hi from "../locale/hi.json"; -import ar from "../locale/ar.json"; -import hr from "../locale/hr.json"; -import mk from "../locale/mk.json"; -import sl from "../locale/sl.json"; -import sr from "../locale/sr.json"; -const getLanguage = (languageCode) => { - switch (languageCode) { - case "en": - return en; - case "es": - return es; - case "zh": - return zh; - case "bg": - return bg; - case "ko": - return ko; - case "vi": - return vi; - case "hi": - return hi; - case "ar": - return ar; - case "hr": - return hr; - case "mk": - return mk; - case "sl": - return sl; - case "sr": - return sr; - default: - return en; - } -}; -let chosenLang; -export const allowOnlyLanguage = (langCode) => { - chosenLang = langCode; -}; -// (i.e en-CA returns just en) -const shortenLanguageCode = (lang) => { - return lang.indexOf("-") !== -1 ? lang.split("-")[0] : lang.split("_")[0]; -}; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const findObjectPropByStringPath = (obj, prop) => { - if (!obj) { - return ""; - } - const _index = prop.indexOf("."); - if (_index > -1) { - const currentProp = prop.substring(0, _index); - const nextProp = prop.substring(_index + 1); - return findObjectPropByStringPath(obj[currentProp], nextProp); - } - return obj[prop]; -}; -export const translate = (path) => { - let browserLang = window.navigator.languages - ? window.navigator.languages[0] - : null; - browserLang = browserLang || window.navigator.language; - const languageCode = shortenLanguageCode(chosenLang || browserLang); - const selectedLanguage = getLanguage(languageCode); - const text = findObjectPropByStringPath(selectedLanguage, path); - return text && typeof text === "string" ? text : path; -}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/utils.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/utils.types.d.ts deleted file mode 100644 index fbcda75c6..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/utils.types.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Optional = Omit & Partial>; -export type Modify = Omit & R; -//# sourceMappingURL=utils.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/utils.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/utils.types.d.ts.map deleted file mode 100644 index 0c4119292..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/utils.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/utils.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/utils.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/utils.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/utils.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.d.ts deleted file mode 100644 index 8dd8656b7..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { WalletSelector, WalletSelectorParams } from "./wallet-selector.types"; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -export declare const setupWalletSelector: (params: WalletSelectorParams) => Promise; -//# sourceMappingURL=wallet-selector.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.d.ts.map deleted file mode 100644 index e613937ba..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAmEjC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,WACtB,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CAyCxB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.js b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.js deleted file mode 100644 index af67afbb6..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.js +++ /dev/null @@ -1,79 +0,0 @@ -import { getNetworkPreset, resolveOptions } from "./options"; -import { createStore } from "./store"; -import { EventEmitter, Logger, WalletModules, Provider } from "./services"; -let walletSelectorInstance = null; -const createSelector = (options, store, walletModules, emitter) => { - return { - options, - store: store.toReadOnly(), - wallet: async (id) => { - const { selectedWalletId } = store.getState(); - const wallet = await walletModules.getWallet(id || selectedWalletId); - if (!wallet) { - if (id) { - throw new Error("Invalid wallet id"); - } - throw new Error("No wallet selected"); - } - return wallet; - }, - setActiveAccount: (accountId) => { - const { accounts } = store.getState(); - if (!accounts.some((account) => account.accountId === accountId)) { - throw new Error("Invalid account id"); - } - store.dispatch({ - type: "SET_ACTIVE_ACCOUNT", - payload: { accountId }, - }); - }, - setRememberRecentWallets: () => { - const { rememberRecentWallets } = store.getState(); - store.dispatch({ - type: "SET_REMEMBER_RECENT_WALLETS", - payload: { rememberRecentWallets }, - }); - }, - isSignedIn() { - const { accounts } = store.getState(); - return Boolean(accounts.length); - }, - on: (eventName, callback) => { - return emitter.on(eventName, callback); - }, - off: (eventName, callback) => { - emitter.off(eventName, callback); - }, - }; -}; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -export const setupWalletSelector = async (params) => { - const { options, storage } = resolveOptions(params); - Logger.debug = options.debug; - const emitter = new EventEmitter(); - const store = await createStore(storage); - const network = await getNetworkPreset(options.network.networkId, params.fallbackRpcUrls); - const rpcProviderUrls = params.fallbackRpcUrls && params.fallbackRpcUrls.length > 0 - ? params.fallbackRpcUrls - : [network.nodeUrl]; - const walletModules = new WalletModules({ - factories: params.modules, - storage, - options, - store, - emitter, - provider: new Provider(rpcProviderUrls), - }); - await walletModules.setup(); - if (params.allowMultipleSelectors) { - return createSelector(options, store, walletModules, emitter); - } - if (!walletSelectorInstance) { - walletSelectorInstance = createSelector(options, store, walletModules, emitter); - } - return walletSelectorInstance; -}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.types.d.ts deleted file mode 100644 index 327a9db79..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.types.d.ts +++ /dev/null @@ -1,109 +0,0 @@ -import type { Account, Wallet, WalletModuleFactory } from "./wallet/wallet.types"; -import type { ReadOnlyStore } from "./store.types"; -import type { Network, NetworkId, Options } from "./options.types"; -import type { Subscription, StorageService } from "./services"; -import type { SupportedLanguage } from "./translate/translate"; -import type { SignMessageMethod } from "./wallet/wallet.types"; -export interface WalletSelectorParams { - /** - * Resolved network configuration. - */ - network: NetworkId | Network; - /** - * List of wallet module factory functions - */ - modules: Array; - /** - * Custom storage service - */ - storage?: StorageService; - /** - * Whether internal logging is enabled. - */ - debug?: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder?: boolean; - /** - * Wether to allow multiple wallet selector instances to be created. - */ - allowMultipleSelectors?: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder?: boolean; - /** - * ISO 639-1 two-letter language code. - */ - languageCode?: SupportedLanguage; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl?: string; - /** - * Whether multiple RPC URLs are included, used for the FailoverRpcProvider. - */ - fallbackRpcUrls?: Array; -} -export type WalletSelectorStore = ReadOnlyStore; -export type WalletSelectorEvents = { - signedIn: { - walletId: string; - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: { - walletId: string; - }; - accountsChanged: { - walletId: string; - accounts: Array; - }; - networkChanged: { - walletId: string; - networkId: string; - }; - uriChanged: { - walletId: string; - uri: string; - }; -}; -export interface WalletSelector { - /** - * Resolved variation of the options passed to `setupWalletSelector`. - */ - options: Options; - /** - * Wallet selector storage service - */ - store: WalletSelectorStore; - /** - * Programmatically access wallets and call their methods. - * It's advised to use `state.modules` if you only need access to `id`, `type` or `metadata` as it avoids initialising. - * You can find more information on Wallet {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/wallet.md | here}. - */ - wallet(id?: string): Promise; - /** - * Determines whether we're signed in to one or more accounts. - */ - isSignedIn(): boolean; - /** - * Programmatically change active account which will be used to sign and send transactions. - */ - setActiveAccount(accountId: string): void; - /** - * Programmatically changes the rememberRecentWallets behavior, it can deactivate and activate rememberRecentWallets. - */ - setRememberRecentWallets(): void; - /** - * Attach an event handler to important events. - */ - on(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): Subscription; - /** - * Removes the event handler attached to the given `event`. - */ - off(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): void; -} -//# sourceMappingURL=wallet-selector.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.types.d.ts.map deleted file mode 100644 index 2ab329a5f..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet-selector.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/index.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/index.d.ts deleted file mode 100644 index df9c381db..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./wallet.types"; -export * from "./transactions.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/index.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/index.d.ts.map deleted file mode 100644 index 223147a0a..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/index.js b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/index.js deleted file mode 100644 index bd35cba8b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./wallet.types"; -export * from "./transactions.types"; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/transactions.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/transactions.types.d.ts deleted file mode 100644 index edbe827c4..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/transactions.types.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -export interface CreateAccountAction { - type: "CreateAccount"; -} -export interface DeployContractAction { - type: "DeployContract"; - params: { - code: Uint8Array; - }; -} -export interface FunctionCallAction { - type: "FunctionCall"; - params: { - methodName: string; - args: object; - gas: string; - deposit: string; - }; -} -export interface TransferAction { - type: "Transfer"; - params: { - deposit: string; - }; -} -export interface StakeAction { - type: "Stake"; - params: { - stake: string; - publicKey: string; - }; -} -export type AddKeyPermission = "FullAccess" | { - receiverId: string; - allowance?: string; - methodNames?: Array; -}; -export interface AddKeyAction { - type: "AddKey"; - params: { - publicKey: string; - accessKey: { - nonce?: number; - permission: AddKeyPermission; - }; - }; -} -export interface DeleteKeyAction { - type: "DeleteKey"; - params: { - publicKey: string; - }; -} -export interface DeleteAccountAction { - type: "DeleteAccount"; - params: { - beneficiaryId: string; - }; -} -export type Action = CreateAccountAction | DeployContractAction | FunctionCallAction | TransferAction | StakeAction | AddKeyAction | DeleteKeyAction | DeleteAccountAction; -export type ActionType = Action["type"]; -export interface Transaction { - signerId: string; - receiverId: string; - actions: Array; -} -//# sourceMappingURL=transactions.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/transactions.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/transactions.types.d.ts.map deleted file mode 100644 index 4236471a2..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/transactions.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transactions.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/transactions.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE;QACN,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE;YACT,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,gBAAgB,CAAC;SAC9B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,MAAM,MAAM,GACd,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,WAAW,GACX,YAAY,GACZ,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/transactions.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/transactions.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/transactions.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/wallet.types.d.ts b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/wallet.types.d.ts deleted file mode 100644 index ac2631a0c..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/wallet.types.d.ts +++ /dev/null @@ -1,295 +0,0 @@ -import type { EventEmitterService, LoggerService, ProviderService, JsonStorageService } from "../services"; -import type { Options } from "../options.types"; -import type { ReadOnlyStore } from "../store.types"; -import type { Transaction, Action } from "./transactions.types"; -import type { Modify, Optional } from "../utils.types"; -import type { FinalExecutionOutcome } from "@near-js/types"; -import { KeyType } from "@near-js/crypto"; -interface BaseWalletMetadata { - /** - * Wallet name. - */ - name: string; - /** - * Wallet description. - */ - description: string | null; - /** - * Wallet icon url. - */ - iconUrl: string; - /** - * Is wallet deprecated. - */ - deprecated: boolean; - /** - * Will the wallet be shown in modal. - */ - available: boolean; -} -export interface Account { - /** - * NEAR account identifier. - */ - accountId: string; - /** - * Account public key. - */ - publicKey?: string; -} -export interface SignInParams { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * Specify limited access to particular methods on the Smart Contract. - */ - methodNames?: Array; -} -export interface VerifyOwnerParams { - /** - * The message requested sign. Defaults to `verify owner` string. - */ - message: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet). This is the callback url once the signing is approved. Defaults to `window.location.href`. - */ - callbackUrl?: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet) extra data that will be passed to the callback url once the signing is approved. - */ - meta?: string; -} -export interface VerifiedOwner { - accountId: string; - message: string; - blockId: string; - publicKey: string; - signature: string; - keyType: KeyType; -} -export interface SignMessageParams { - message: string; - recipient: string; - nonce: Buffer; - callbackUrl?: string; - state?: string; -} -export interface SignedMessage { - accountId: string; - publicKey: string; - signature: string; - state?: string; -} -export type SignMessageMethod = { - signMessage(params: SignMessageParams): Promise; -}; -interface SignAndSendTransactionParams { - /** - * Account ID used to sign the transaction. Defaults to the first account. - */ - signerId?: string; - /** - * Account ID to receive the transaction. Defaults to `contractId` defined in `init`. - */ - receiverId?: string; - /** - * NEAR Action(s) to sign and send to the network (e.g. `FunctionCall`). You can find more information on `Action` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - actions: Array; -} -interface SignAndSendTransactionsParams { - /** - * NEAR Transactions(s) to sign and send to the network. You can find more information on `Transaction` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - transactions: Array>; -} -interface BaseWalletBehaviour { - /** - * Programmatically sign in. Hardware wallets (e.g. Ledger) require `derivationPaths` to validate access key permissions. - */ - signIn(params: SignInParams): Promise>; - /** - * Sign out from the wallet. - */ - signOut(): Promise; - /** - * Returns one or more accounts when signed in. - * This method can be useful for wallets that support accounts at once such as WalletConnect. - * In this case, you can use an `accountId` returned as the `signerId` for `signAndSendTransaction`. - */ - getAccounts(): Promise>; - /** - * Signs the message and verifies the owner. Message is not sent to blockchain. - */ - verifyOwner(params: VerifyOwnerParams): Promise; - /** - * Signs one or more NEAR Actions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransaction(params: SignAndSendTransactionParams): Promise; - /** - * Signs one or more transactions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransactions(params: SignAndSendTransactionsParams): Promise>; - signMessage?(params: SignMessageParams): Promise; -} -type BaseWallet = { - /** - * Unique identifier of the wallet. - */ - id: string; - /** - * Returns the type of wallet. This is particular useful when using functionality that's wallet specific (see hardware wallet example). - */ - type: Type; - /** - * Returns meta information about the wallet such as `name`, `description`, `iconUrl`, `deprecated` and `available` but can include wallet-specific properties such as `downloadUrl` and `useUrlAccountImport` for injected wallets or `contractId`, `runOnStartup` for instant-link wallets and walletUrl for browser wallets. - */ - metadata: Metadata; -} & Behaviour; -export type WalletEvents = { - signedIn: { - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: null; - accountsChanged: { - accounts: Array; - }; - networkChanged: { - networkId: string; - }; - uriChanged: { - uri: string; - }; -}; -export type BrowserWalletMetadata = BaseWalletMetadata & { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; - /** - * The URL of the wallet exposed in the metadata of the module. - */ - walletUrl: string; -}; -interface BrowserWalletSignInParams extends SignInParams { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; -} -interface BrowserWalletSignAndSendTransactionParams extends SignAndSendTransactionParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -interface BrowserWalletSignAndSendTransactionsParams extends SignAndSendTransactionsParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -export type BrowserWalletBehaviour = Modify>; - signAndSendTransaction(params: BrowserWalletSignAndSendTransactionParams): Promise; - signAndSendTransactions(params: BrowserWalletSignAndSendTransactionsParams): Promise; -}>; -export type BrowserWallet = BaseWallet<"browser", BrowserWalletMetadata, BrowserWalletBehaviour>; -export type InjectedWalletMetadata = BaseWalletMetadata & { - downloadUrl: string; - topLevelInjected?: boolean; - useUrlAccountImport?: boolean; -}; -export interface AccountImportData { - accountId: string; - privateKey: string; -} -export interface AccountImportSecureContextParams { - accounts: Array; -} -export type InjectedWalletBehaviour = Modify; -}>; -export type InjectedWallet = BaseWallet<"injected", InjectedWalletMetadata, InjectedWalletBehaviour>; -export type InstantLinkWalletMetadata = BaseWalletMetadata & { - contractId: string; - runOnStartup: boolean; -}; -export type InstantLinkWalletBehaviour = BaseWalletBehaviour & { - getContractId(): string; -}; -export type InstantLinkWallet = BaseWallet<"instant-link", InstantLinkWalletMetadata, InstantLinkWalletBehaviour>; -export type HardwareWalletMetadata = BaseWalletMetadata; -export interface HardwareWalletAccount { - derivationPath: string; - publicKey: string; - accountId: string; -} -export interface HardwareWalletSignInParams extends SignInParams { - /** - * Required for hardware wallets (e.g. Ledger). This is a list of `accounts` linked to public keys on your device. - */ - accounts: Array; -} -export type HardwareWalletBehaviour = Modify>; -}> & { - getPublicKey(derivationPath: string): Promise; -}; -export type HardwareWallet = BaseWallet<"hardware", HardwareWalletMetadata, HardwareWalletBehaviour>; -interface BridgeWalletSignInParams extends SignInParams { - /** - * Optional for bridge wallets (e.g Wallet Connect). - * This indicates whether to render QR Code in wallet selector modal or use the default vendor modal. - */ - qrCodeModal?: boolean; -} -export type BridgeWalletMetadata = BaseWalletMetadata; -export type BridgeWalletBehaviour = Modify>; -}>; -export type BridgeWallet = BaseWallet<"bridge", BridgeWalletMetadata, BridgeWalletBehaviour>; -export type WalletMetadata = BrowserWalletMetadata | InjectedWalletMetadata | InstantLinkWalletMetadata | HardwareWalletMetadata | BridgeWalletMetadata; -export type Wallet = BrowserWallet | InjectedWallet | InstantLinkWallet | HardwareWallet | BridgeWallet; -export type WalletType = Wallet["type"]; -interface WalletModuleOptions { - options: Options; -} -export interface WalletBehaviourOptions { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - options: Options; - store: ReadOnlyStore; - provider: ProviderService; - emitter: EventEmitterService; - logger: LoggerService; - storage: JsonStorageService; -} -export type WalletBehaviourFactory = (options: WalletBehaviourOptions & ExtraOptions) => Promise>; -export type WalletModule = { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - init(options: WalletBehaviourOptions): Promise>; -}; -export type WalletModuleFactory = (options: WalletModuleOptions) => Promise | null>; -export {}; -//# sourceMappingURL=wallet.types.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/wallet.types.d.ts.map b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/wallet.types.d.ts.map deleted file mode 100644 index c9ebc6eb8..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/wallet.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/wallet.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/wallet.types.js b/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/wallet.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/ethereum-wallets/dist/esm/core/src/lib/wallet/wallet.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/index.d.ts b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/index.d.ts deleted file mode 100644 index 5a5fb6a0d..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { setupEthereumWallets } from "./lib"; -export type { EthereumWalletsParams } from "./lib"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/index.d.ts.map b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/index.d.ts.map deleted file mode 100644 index 85a82afa8..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,YAAY,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/index.js b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/index.js deleted file mode 100644 index 79f8fd144..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/index.js +++ /dev/null @@ -1 +0,0 @@ -export { setupEthereumWallets } from "./lib"; diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/icon.d.ts b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/icon.d.ts deleted file mode 100644 index 582a3212b..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/icon.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: "data:image/png;base64,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"; -export default _default; -//# sourceMappingURL=icon.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/icon.d.ts.map b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/icon.d.ts.map deleted file mode 100644 index 97220b1c7..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/icon.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../../src/lib/icon.ts"],"names":[],"mappings":";AAAA,wBAAgr8H"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/icon.js b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/icon.js deleted file mode 100644 index 79c53346a..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/icon.js +++ /dev/null @@ -1 +0,0 @@ -export default `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVAAAAFQCAYAAADp6CbZAAF6LUlEQVR4Aey9B4AlR3UufKr7psmzOWp3VlpllBESSVqBJMAmCRCPYD9wwjbBBGP7fw/8EAabZ9nPNjbGNrafMcKGZ8ASwYBASCuBkASKqyxtznny3Nhd/zlVdapP9713d2Z3ZncEc3bvdO6urq766juhqhScRNGDW/prUXldpGEg1PoCDWoAAhiwB91ytonGnzrC9lSuncp5k7n2SOcoGFIatuIpuNRbYwXbAIL1pVzpYTVvzRDMyZTl9Tfr/o4I1gUqHsB8vUBrNYC7B9zhAZiTaRMs1kMay68px0pvhRi2BVh+x3Lw8C3XqZNWfidb9adFCDAhjNaBUlfqGF4Pc4VstshWrWB9APrrEIXr5wC1tTBgYq25ErSeK7+zRRRsVaDXax18vRzC+hMJqCcEQPXolnXIjt6PhW4dbvbDnMxuUfrz+NW+rnrX3gJzAr/0Fb0uDjSWX1in58rvrBdkqJ8nMP3Sm9SMl98ZA1DDNnMImrH+AMwVuueqoMoUf9yx0q3wcyTENjtj0+h/YA40n6NimGn88TgI13/5OrUVZkCmHUAT4Iw9cB7ZfIdHtbYn2T9urz5h9oWpmDFPhhxL+pqvUel12lQKJnnnrRAEn1c9az4OP+MyFeCkYhvjrx7jkn64rxHbY7GGOZlGCVyRpWWIvyAAyOEyF07iYgOk6vP//kY17eV3WnFDj2x8JxrSPwZHsw2hAdSUPpg9pWy2g+jMirJgqoKjnYjOJ/3xXO/az8PPoLzta/qd2HB/7EgOTCq21QhBE38N1/bPycmVPBbbAgJpPrQA21YcI/33N+Y+D9Mk04IZyDoH0G72L7i2rvUJ9CcGzzbnZPYKs9Ijg+ktoIMP/qyo9W+5WQ+oiMovOohaiATNegxzMouFwbSYO+Jpt+hQfXA61PrjBlA9vAXVnfgGaKXuMHDquVL3nBQDokG7UjKEyIIg+txmo2+7GZ1Dkb6hlbpOwFlp4C+aa/efa0JMtOiAtA0rHVIq/uDxstFjBlBj6wwA1R1j68wcpD9zwPkzIwSk7Ripgr9Sfad9EJ5jYkKSYiq/uqn8zgHnz44wkHbk2x1Xf/Vvb1THXH6PCUCtyh7fjKsXNh8kNT2COfkZlPZA+jCq9Nc9V1R6p7K3LL8NLLpj9Tkn0M+aEJB25q163yQaHtY5dd2xqPRTBlAHnndA1lE0xzp/PqQ9iG5FEL1qtoOoAc9Y35F1FFG7X25Y5jknP7tSQpW+I+dM/VLQwaQDddVUQXRKAHpE8NRzJe/nSlSuVemZ1SDaDjyJbY5U51jnz4sQG+0ttrCNHgOIThpADXgCgqeiwsclTWlsuhXEUZs7p0tky1AhrY6QMt18Xrv9LjmpG0ymQqg292ohJjbVNF3tn5+8Y/J8G9PaKv308CNkgJ7i8zOXTyoDppr/qXNC42PKnLMVd846EG0HnqSyj9bnbJ0/b0LVqKuVSj9FEJ0UgBJ4agJP0AOmUjHoaBc93PqqDKC1Oy04+vVaBnxn7iuvVyK2NHXNEUSJF5jUNcf7/MnmyySvn0z+HfE5U83/jNDlrNL789RWNYtAtB14VlFpGq/DnPwcC9lFS9mQpymA6FEjp0k0NG624Cl3ztk7f37kCEDcshxoanBvNpEas0CMwygDnuX6HHjOCcBE3ZaFlGBZUQ19M0VqHO36owKoHn72LyHrrZwDz58zOQorbw2iWGYaH4OTLG/9mm4qv8Q8y3Mm+zlx0tJ5qODCLgpzO4ocsWbowWfeiVrZv6R3JmFKWhubnAaYnClgTtLyM5d/ZBPNuDe1jj8Yzjvrr+AkiOmaqXWq/NYoTKkGczInTUKOpVyWUmr9wS9dH7Ytv20rrrF7qsZDuNYvbuaYxpzFfU7aSDOIDimdv+hE20PJ7hlE+iHZw4i87MPVOYfRnLQWKrZ9zd75IR2qi9rZQ9uq8AiefzkHnnMyZWk27fRrVf8XOMESxPovJXhqF6o0B55z0k7alJF+N05CS2kJoKS649/XZ/bCHHjOydElMfEIWdcwZerEiFXdIVV+yc41F+c5J0eTWLe0j69729ca72x1fmsAVRnjqWefczInkxDdPOoWqkUfO1FeeTMknRAaRWmuh9GcTFaorDQycKch+Fgrr3wTgKLXvXk8zznwnJOpSnOZGYih9gGYYXnL15rH85wLV5qTqQo5GlMcAMtUZ6N54KSUudQ6jup3gATQuZClOTlWae43Tw6lNTM1aV2rgHmK8ZsLWZqTYxHqM58ZxWmoHKo1ctK6DAOtr4MUeOo5q/ucHLu0cCjNJAsNYlgnwTN2AyHPyZwci7QYzrA/y0JTANpk+5wux5EGmHTXysk+cw7XpyhTybBpdBg2g+j7YYYka/uszjmO5uQ4hMeFTe1TKlV+PYA2Bp9+vdKoAlFwNzPPOEpY6PH8IOk7P3JgJ+jqIG7UcW9kgFXFAagoxKV9dtsu3Br8PRUk99fuB9P8k/dV4gez6gdH/vmMo67tEf5i12VfQRzbk1TcgKg8CIf37TADlnA3ePm+x5zHmTKETWh/ffDJdTDN8tavNl7f1Nd9jn3OyXFKKxZK01zzhu9Gr2J4nahxtuJMJ82jwYWiCD77yf8F/XoCXvWqq2DJ2edAcenzQOW78YS8qdSI8OmBl9K3sOLeSAwv0nzOcUrqnplsULOp39DREkPAZxARARPtkUYPMEAWQRBNwMQzP4X9mzbDHT/4MRxSefjwjZ/B/M8ZoBXjSvlvQlkxqQEUpBCIClso3p1a8fUwjaJU+DotSjqB5xz7nJPjFSpSVJbkgCOR0r782kHLBrf0x0gLA1ngTKGfzhIYwvD+/fCpd/8KhFEZFvUBXHrOKbBi9QD0nnYB9J/9Igi65yErCiFwzgedeb5iBupYEohKDTC9/SFl8xFks2FWAejR4czmIzJP/GlAtjl6EIaevg/KWx6H7U9vgYee2gt70Cwed3TA7/3V30L/siXunZMXjcU7TxlA6T6BHDcMjfCqMG3OpHferPurkR6U+0arcxPAzcn0CE1U11NM7fLOJIOrUVRbl66HWfZ5LAii06tIcR/50Q9B16sQhQHsHa3Dfz2wFV5ycARO2fY0DP7o/yEbPRP6z3shdK44A4L+FfiUgmURyJ4MI9Ls1Y3agOdk0nmkc3SSXPpJKjxllNaTOzRZOuufr9sdsPnDs5+ayeDo3qi2R3VojOyGse0bYOipn0C0dxPUajnYuGcM7t4yiJoBAVwB9ZUyPH7fvfCS178WUi9Nh31eHD3/mo81pbkfoLYOaHbPaZBqFK2TsM5ztc/JnEyH1N0s7KKq9ndEZgbXWwyA4oHXpa5oWfeTiirLpsRdud+6jBwg4QOiRhmeeeyniH9st8tBXAf40ebDsHY4Dy9e0wuFrY/C4I7H4ND8JdBx+qUwb+1FkFt0JuiwgPdqmGuAQDWMzb1bu6Umg3Stlf5YDCKsJOXSCQObkiusBYM3tsX0nuT5rW+VZsCUFrEjkAYaY2ekxiXCe+XQK12H2q4nYXTTozD65L0IkPuNHTOuh/DwtmF4fO8YRJSnJp0NyCFJfHbDT+HFr3ol6ELedwoOMnnRNHB105u32E8NoGul7XsaO9K0AGhWfZ8DzzmZbsmq8ViK1wEDKFaIdamzpznuk8jLzi3bYOvGjVj5Zf0ju1wenjnQgKHRfXDpmiVwSh9W8IM7YOTwLjj8k29BYclamL/mLCitvQQKCwbQElA3zDT9AH+7o6UEjleE5WBGhYF6sinWBqBomKEG1A5sgrGn7ofRbc9Abf8mKKKTqIhNXYR5vWkohoe37Ie9EwHmfWjZpbtHjCC06amnYOfmzbDi7DMh1JnnH8+La50lq9RoT0tIk4Z0+a3NxX3OyTRLvQlAlSm/ucHBh/qz3svpAJrU3RAxNz32KFTGxzMMDplkZG1zByohrN94EC5b1Q2nLuzAyltDq2kV4v3PwKE9z0Lhkbsht+I06Dn/CuhadT46njpcMoMppvcY3m022TyzYoAphrg8AqO7n4DKk3dDGYEznkAzI+4vEt/D9I+jDXLLgSrcvXEUqnWySEdWQ1CJbZKIZrVchic3bIClZyGAKvfqU0Hy9gnNJFsPDG55qH/emouOyw7q7J8Dct8cA52T6ZaGblLjB6hrZ65UyV0IeVu4Yz8lhYv/OKIqb+WIZVWxCliDB+6+FXKNOqrfmbvpEO8YGlo6hmB65+YqbDlYg5esnQe9JeQWUQ3V1BDi8UPQePYQHNj4AOwpdEHP2S+A7rUXQPeys7Bp6DSVPNYdYFltZGDVarpHrk2xHPgiNvNTuPeywNTildN3TE3p0dSBtkl0dveRpoAm2y/xq4DNyJR5qJrTBH4a87IxAaNbH4HRLRug+uxDoKrj2PCgKh4joDq7cYQXj+gi/PTZfbBjsA4TqgsIGSMf2kR/7TtoTH+IOx596C645nq0g6qSSEvyAnHqDdqlv9XLJ80nPbFQtHYkOA6pNOBCaUZuzIUuzckMiInIAyIeiZAdNOd0+fSZ0ywjBw/Bnq1boaRUhtGo1LrGalVHgNg0VIfqk/vgBWvmw8puG78IbjK1AoJCvjIEE498DyaeuguGl54DnavPgd6zng9h53IE6Jyx3cUU7whZ8jhlT9DJFZ8v2rDDnEGvGjSG98Do5odgbONPobrvCbRq1KFoEDbwoTs5N9/fnnIAP960H/aVbUOlHPwlOZHkhXEU4fffi+aWYfxm8xatcCdNk+HCmBmSIhhmx1w4BsE3XqdF2qLpL75zMidGSI0PpRqv4wHaHEifNn0lkOpjhKzygR/9GEqRNX5SUTc8Tdl66ZzsTgLDrqiK7xzXMPj4Ybh4dR+sXVyADtwfONcRnoV2vdh4jdWWh2AEfwfu+U8oLjkN5p33UiihFz/Xs9TGMwYqY7d8LoGoTSsx+HhkHwxtewKGH/8plPdtw/wcQcWhgY0S5WNgGh8O8dIIpGNxDh7dXYYN2w8jRwxBO898szae5Ac5i2grj/rK4z99EF70quUmt4mZBv686Ssf+P0vgOMUrdLldw5A52SmJM4omFjNLshhlVmdnuVxGgGUers0avDUYw9ZTZejYjKPkBE6VMEDZVX7cazQP946AtuGQrjq7IXQE9SMsyQ2RDrwAd4B7uuojUK8/VHYv3sjFPoXQefAedCFnvyOlWcgK82b+xE8hN5BFkIqUSYBbdT9I80Kqo7d4EZhUvSL6b1onnWIHUNXzqFehYldj0MFG4ixZzZAfeQAFBBMu5SNbKCzlc47hooNDKYrDgIYquXgvi1jsPVQAxl9B+6PjLdeU9OE70wNlm7KfUhmLsZzn3z4p3D5K66FKFfEPNOGuTZNqTxlyUC3On4Gipm1Wm5Fc/bPOZkhaZr1S6sB0gpnbIxGgqfd6NHdsfEZo4KqNmYxlYQbGmCwlgaLpg2E+R0jMXz3/h3IRnthYHEf5JB5ERwEXKENIIQGGApoF4RD26ByeDdUHrgNYP4q6Drrcug69XlQWLgENNpPtUlMYMNKp1zhpsWj4t7dcmNikOauIb53ZRjqFIHw5ANQ37YBGvs2ol1SQR4PEZAZLduFW2nHDk2/ArxHDRuKTXuG4bFdB2BftcM0NIG9sTk/EOFY4MOykh5HPl342/zUk7DjmWfhlLPPBd9tVmUunvILN106AMcpika8F9tz+DknMyWN5sKFABpMBwtoI1iytz7xNNRGxgw7alXt2nV2MmxHO8UTnTtDcSfcvbkB1cYYnLW0CLkgMA6gQKVjM01XUE1gUbWxpod2wtjd/wmjG+6AeNlqWHT+5dC5bC2oIrYbqugC9eGkCD06DlA9RvCLRw/BxO6nYPDJH0O050nIVSeMfyaP70kec2Lz5j2VAAllg+YVstd6PYQnd0/AT7aVoYGsU4lM8e2Msj8t31cQa7mjNlGGZx9/EgbOODe5l55OBX7aZEBu6FmYwDn52ZUWDHSa2JX5U4Of3HmbUR8n0/1Ptyj9Ju6emCiyqDqu/3DzGGw+NAKXnb4YFlI4qO8/rz1I00SXMVtbddnsh/FRCDbtgP3P/hjqnfOgZ+3F0HPqBdC58hwI0B1skVR61I+OqseOvZG5Oq5VYQzNDuNbn4bxjT+BsDwEBXIWmZvGJg2RWbPs2r2R6yUVOEYZwKFqDu5+aj/sGtXQCEqeMRqHEYOeyRPwYQD8ehpYn9ept6J/D993O1zzpjc6Bmvd28fHv5usrwNwnKIhXX7n+r/PyUxJi7I1kIMZlJHBQ2iT3AHBVEM1M2LqvLIVuJrLw+YJDdWnDsCFp/TA6X1FC5ihtSAGqQdZeyXvidEKnEMbaG4c2d5jd8H4Uz+FrgVLYN78+XithSqt2LGlZoiYxvY5+JDRoREY3XPQmCQ64krmPAvmQSb4LDmqTHjXluEGPLj5AOyqIpsOtYlY8DngGiQtbJ6KTSZH/B7GOAD7dm6DwQN7oX/hct+0TCc+nSTiPydzMm0ycwCKNfWRO38MQT2ezHgXkxYKtaFKvK+i4fZnRmBo+XxYs7QT5gXjQMBE8Y/tHhdA6GttEZ0xqlZDI+0wTBxC22khAu6kGoh3mHahoHdsDOo16nsO0BnZaYB1m2epzByrFNxex6ZwBE0aj20+BE/sRZU9sPGrajo95PQHs+fp+x+ES1+5wuYJAzIch7CWoVQmnnRO5uS5J20BlNRpdQwAwtdFqJ5ufOwxqz6DnraqEpgxRKnqFaCKybt3TxV2j47Bi9d2wfxSkHF2tFCynd3Q2B/JkYTUtYHMNB+4EQM0A9H0AhKLdeLkUR0oGrOD7dcfC9W4Gf6TVFB8K9qDqzHcs3EfbBsJzTgBpMqHiHZRKsXJe1tf1dTfhew7Tz2MAHrNKy1yT7PMMdDjF7aHWzO1/cbSKUvx0GbcVxW7ISqt6KYRGdLHmIYEITt0rW6X9aNMIzd6TkrODJOrhVtBZvIxWuTpur3bt8OWTU8a1duwxmkaGs9aU8XIO0EDdo834L827IfzBpbA8xYVEZ5IHbfD8Smdqaaa41E1zR1Od0Cwx0JSCEw/e28kZFHT7dfF50RF80xlIjTBxG2aR7W7RNkxPXVcgKf2U1/2PTDSQBAOS6ayWFAOWnyvpCE5tuyP4ZknH4d9u7fDilNWw3SKaWiDn/fqd/wSejONhsgMlh2Z0EFdt/UOosj0X4gDXAY0SIA2TtkgUy9oQC4zKJcb9lDRIDPkhA1zxjQUoWE+F+TxV3TESrnn/nw3g7kUeE6jdHZ2Qy5fQF40cxnMI6bXEYZGdBf8dNMgVKvdcN7KHihR8LcbRT2xZ7Z2gdA5jUbDhArNtFBKGlioG9SxIJgsqgVQbgTw5J4yPLRtBKq6ZIJlA2iY8K2Z43IKisUi5HJ5mAmJ47mgo2MWoy2hJhZHJja6Ua+ZMXxjNE0FhmA0sG7UoQsJzML53dDfHUNnRwN60XLUj2DYgXVTiwa2hmVyNIphsBrBeFnDocE6DE/UYLSOOl8jhKBBg8/UoJGr27A7bPRz+TxibAF+niWjwh/VuzBp6Z3XD8tWroSNg/tAz1AFt64ON7wTFqI6tgUPbB+HbQdG4YozF8DCrrzp0kjVNCcUEDYoaA7NQbCtRxpbE6G2K/dHB01PnfLrWDe4WY3xGfWGZZQq2e2eKabbUNYcEakc7BnTcNczh+HQuEJNumTGLLDvrtzfGbIlYtqWLl8BCxYthKO83BTEqZnHHZT/8yJuWhWwMzXEBJLY2Gv6RXZmAUWdK6AMC3tCWLMkDwOL8rBmXh6Wz18ES3rzkDfMkmOOE9Och89Ym3DA2EV9KBc+2MDt3UMR7B0ah2cPNGDL3nHYMViGA+N1qKANvlrNQZQvopqfgzDMg0J1P3TkNHaRHD/r0sIGOj2FWhVysGjVCnjq8QcgP0P960zHzjgZPYLGwKRCtr8cw23PDMH5K7rhbKPSE9WuGRUl9qhl02S2EasquFJE1cbYQhUPG5CoKolomHqwoXsIXY3PqFFCwqgVFzY/U1FUaBT8jYcacP/mQRit5U2BjL2dK/ZqeevUHH9jSFcvWrEUzEChRzxrqnedkymJm1o8pvFdG1WjllN320JUhxWLFDxvZREuXLkQzlxcgr7unPEThFiIAjeFixUZFCzvDR5QvXHMbVO9ObUfQbm/Fy4foFPnw97hMmwarcNjWxvw6KYx2D42AZVGCSrYsNOkA11UVGiktPDng5nOmBeeKP7qtWvhR9YvM72zg7R9Jg9WEsJopQF3bzwMg2OdcMGybphfzNNcJsZWFKq4xZjANOgzFsyjfvdjYE4qdnGZmIY6dTe07bP5Lwo0jbbUQCrQCAMYKwNs2DYMT+8vI2jmrWFfsfH/xIAQWRhWrz0VAkNPYE5OuKD21EAbvWGbdnjHQjQKq3pycNWZXXDRwHw4ZXEeaAyyHEWg0PmmcQ9bNv3HIqlOKnjvlT0FWIG/K5Zhal40HzYdrsNPNg7BPVtGYNughgqaplQNzWfoU1D4C37G7dwzB6D4HZegCh+cJMJhPOzYKj6xrw6Hhg/DS89eAfNKNGrROBYzeu1s8VLGDqoL4YwoHsaJRt0t63XT7RK4UUmp8Ghjgk44OJ6D+57eB/tG0balCg7fdWIKOUF5SulbtmqVmS21VUDDcclcl6EmEZ5cLIuRsRGTyg5xFUqNCpy1MISrL1wAl67qhYUdAbBfPHKuH6M4K8dYZjCVxjGL/2mww7MX5OG0BYvg2vNieHzPGHz9/mE0oVWgXEULPTo9c3lS71G1d0D6s/bVc8YQLceknKaCTd0Tl6xYDfnufqiPDc+cna6duP7lNI7QzkoAtzy8Cy49pQuet7RonEXW2ok2RT+HEKBzpggFBIt8oMxgxKAif6/jQQ8CTLJb1lAFS4fL26HqlAPUOhbJDTtGYcPuGozXClYFM/3fHf3j4atOhGCB16iKLV41YK2sOnZ5lg1JazepSxsRsaR6kk4kcnSiaF7K/W//mvbYnlUqjjWr+FoZDDfjYvt8INCgPb42jm1p2ezrzTfgkoEQXndhH5y+sAQF4zyUTlHlxqhUxoTFFiqVuXdKVJv1o4jivsByH35Pmm9tRVcAy9b2wrq13bD5cA3+414qxxU4XEGyElK4XScqhnmjzVD35USe2wx1BnsiaeOFX7xkEewenZbJF49ZqPGrYmt4/7ZRGKkpuGh1H/QEdSjosrE1JsyOWn4E0AJ3XeSSd7z0SxuTRqOuUzNbUJEPGnWIghIMR3l4fOcYbNg+DJVch4EpY01wISPa9ag6Eb4XqigUO7h0yRL8hkXQ004/E+EoEAZIXudjtC7MHKmQOzr2tq8mlTGrtsp1CbLt3qTVsXbnT/cnMGMcYINSKY+hGl6GrkYZzl1ShOsuWwDno42zR2lnBmr/HU6ccSfzXJUMGUn60hnzivChVxbhsb1l+Le7D8HGA+hjIEKD9qt8kc4Im9JN8lxkpzMGoMb3jTkycNoZsOPZZ13/7pMgytpuqIRWkOE9vq8K2w/vQRvSQmw1C46B8jnIEtF+U0S3ZRhMX3EkBhmh86gROWZr4cFoWjVU0XeNAfxw4344jKQjznUaFczEhyKIqfDEZpxyg7GQl//UM89KxZbq7LxGk5DJdsjIPEcJEAXJPnmbz3vb1/SkQK8Vq2x1Tsu0tbh+GkuHecd6rQYamWesq7B2QQTvvGwJXLyqBJ2B7WIcmZG33MAy0NqpN112z6lIyqOPRTsK7Pfuxne6fGkBLnzTSnhwbw3+712DsHkQ68A4vmOxGwr5gpu+HJKMPFkYcRzSFkCVPv73IaP2ojUDNmBanyQvhIZU/3ia4mKwnocfPLMPzlzWBZcstYH3JugiVsYrX6tH0MFlVMte4FPLEcengPyZUSMwoxEoyvLAdhuNVREeORTAhi37YSRCRYgqiI59Zyo/VJ39A+pEeOIgAdEFq1cBsMLoKkqzAq8NcwoyIMnAybgozXKBy0pzZ/csaCYiTVjl2GfqQxwJECG50Fd0Pu9IYAmZe7aq38duHtDpi9HW2aCxbCMNHWjiedW5OWSdS2BpZwA5E2FiUxs4uyObpsQNJ/PQEyMmia6+uPwu4bu+AIF0+S8sgh88OQJfeXAMyvUKvm8V0acLwlxhZk22MywzyECtx3j5mjVQLJWgUZ6A2SDG8qkbMFrNwYNbyzAyFqOXvsPEjBIbJQCr1yIoFZQ3z6Sr3tTEDThnTAPGO0q9O1QOBisxPIAmhWcOVo3DK/QjfPCAx0mXUy8nUMfp6OyCpaecAq1GFkixSq09eDKLVGKb1Tt5jWZV1N3CMUrlzjFLyTwho5lnWbEc+CWNrkb9AHAgLZ8PLQaL8YCZOS4MCHD84yNYS3LsQpOiygjaOytw3koF11/WD5ev6MDm1vYq08o5NBk0U+3MLBQlx5GgP4EpwRRfPdCp4Fee3wvnLMvBlx8Ygqd25aBGnVeKvRAiG+Vy8lyTGbbgKliwcDHMm78AZouQBzGMqZtaEeqqAzbubyAbHYN94zbukoKJTUCxAmiqusf4ic0o+o6Bk6F//1gAdzw+BJsPRKjyFAzzpKlMgpPF0ltIT28fLFi0xG9PpluvATJW6WhQl8ABQeZaPi/DPrXY9qd+/OMfV9lrU89SiWPLXCueZ51U6Q4LCeAmziy71Al42hP9fn+ODDmDY5fYNNJ1qFaraBcsw6Vr8vAHv7gMXrgSGZmJHgEL4Crdbfm5KOabkvIVWl/EC9CR+/6Xo3liNfoeGhOYBzVk4A3XqxCec5L6OmZQitj+jr+dJdHQ3dsPi089DWaL2BHdtbFFUlfIOAjhcDWEWx/dAz/ZPgqVKGfiLmu41DoPdixMgGQMuMmBnAViwka0q6L6XsX7TOC++3aNwHcePQB7qnkE8JydakTbKUrclS2eoSAJc555BkIg0r/yFOjq67cDUWhI2TGpnFBok3IDJHrAygAlqfbMDkOjhoIxY9B5dMzYeBNWaJglASaDJm1/7GMf060Yp3+e1k3tWgpk2fzAphC2iYNKrgfLC1uLarJ/AkytKbWNtrL1Ch0pUW0MQWMCeqJB+J0rO+H/e/USWFYKjDrIX/iIX1lN5qTZJoGx3VI5WN1dgI++ejF8+GU9sDCcgHplDH/jEEaRmZdLPYd0+vRU8a0MQMcppAIuWXEKPNHMLk6SaDOcHIlzRZjfOPoPH9g9AeP1GC4dWAJLgmFkA5Ep0ZrPNTbJyZXcwIwYpQ1rqTYAhmt5eHDLCDyzvw6NMOlb7sa8ScZjSs1P1XxfYiUUdqaOkJ+qhT2y3XnZYwxQi5avNPYp6WG1ziXd8t7Zpcqo9bykMBY7kIjyrFwKASZdi0ufvuyypWOqhYNLe3sjs0r7Iv69XZbzO6XMCpDkjTU/ps0AWZNBu5JtSotOzqrXy2auq0WlOrz90j649tw+yAVT45nPtSCgdI2xHUJKmCfXnrsAc2QMvnDPIAzVu8yA6blSl2P60wRAMywzmv9mNHnMqFPXrjWBwSpQKfXtWIbLmymxH7kETx4EuPmh7fDEQQp9KqI3nuYy1WZM06mkmdirQlPBRC0Hmw5ouOX+ffDkgZrpZaT89By2MKkmM0FzdZQqbzYNTWqtT4NuuZ/3eXVWqqYOMM8866wUCLYC4VZ5cbQ8agW42XS0BEixnxiqPyd7mhL3BAY7lYyrqiEFnsqxU96v3D8Pqnwc4IjvlbKXap0CWLsRQRmZVtyowPL8OHzitYvg1ef1YPmaBEy0aLNZJ3kuCqXbzPOFL/ELz+uCG9+8FAa6x6GBjUvVRCLUXVdl/s1e3T7FQFvOlTMNQgNSqFzO9uNWcNJ6Jx1NaCiFPH6sciMPdz51GNNZNPYp0FNvDQNlPajP7qvA+qfHYBTvRc6WwDOeRDVMyJOCtNefK21rMEmONx9rB25H3rYDmNBy6YqV0Eoka5VpyDLFdtKK9cp92eNt2GeK+Plz3K4kFEs33VumO3kIeMKTsFZIzhWMlcE1GTW2+Tb2/CQygf42amUz6MdAbwN+68plcNo8qnoRqKnCoDp6SfTTBIo8AdcwxsCTs4h3TG5ttkjN5mHy5HXGvDCNxJCtzAO9OfjNly+Av/7eQdheIRxqQKHQBdQle7YLDVaUBrQZIIVd/Quhf8kKOLx/h+mhBFOyIJ0YsQXfBjyRJ/7UFf2wfFEBbXUV1sOmdD8uxEt7e2BgcQ6e3lsDiq2MFfcb0U59jJLnN9k4GTCSM6Rq04pFtlPJJ7duDf4dPfOhb8FisAH1yQhWgQpSKvyRwDDjJGo6n5meZM8y/TfccIMidd7ZQzVtQ9rRpEnNf9vX4gTQGdjEM0RWprKW1fWsSUKyz+z76AzUQAsPf3LUUGFzrEFhO8g8VxTK8JFXIdual3ewGYrE0S/wedCyEVKphZHUgMrCwkQjf1ZwY/fhMuwYrsPuwRgOjlThMDowRysxlMsVmz6wDWapVISOjhAWdGtY0NcBp6Lfd0lnCCsWdEKR5hsj7VFPHzxwTobOU3/x8g74wzctgz/5r/2wZTCCGnqdcsWOWd+XXpV33q8LBTGCRlyH6RYqep/7kz+Cpx/+KTI8N6BxOzZwksRWeAq5qMMZSzrgsjU90BuMQX+Xck4nd6JOYhsncVcYHgcYrBXhvu1leGpf2XRng0gMCJ3iA7Kw2Ep1JIaZrWgWVlpX/lbnNNsRFdSwNT3lzHPgAx//325gCnGhSp4vr8+CpATerKiw4NNUq9Wg85RLA3Yesf2TwTN1nWpt833bV92DXNoOT4Bnitm0tixrgn36a1zj1irsqSk/tU7ZicHdzsxlZWyeNLjxBJzaW4Z3r1sIFywtmbLU9hvqyXU8yAprMhVEzif3jsEDuwA27i3Dtv1lGK/FUFN5aJgRvpSwy7pXV9bjbweur5tg/QLUoacjDysX4G9eAdad0QFnL+6AfMDXNpt/jllc5lFNeGR/Ff761v2wfbQDtdaSCYHUJjJhBpjdMcj8jvS2VeFluToKOHArn103kiZPrjW0doxVq0+BZx/6qSlY8ezIC1shlJ1tL4gb0BFW4EVr++HMJZ0Qo7e0TtMeQ824eKZscaK5j7AY0piKpTCClwwUYEWfgns2jUIZOswzwyZWm62Gbq0FW2y1NI/NgGVLZ0vmiT7JJkPwWw2sxv0NG3eibQcA/60z6m2T/VTYNFuxzySMSBkvvGCchlE6MIWsOAYaq8wLvfWrUcuXSdlIBXH0DLOZ0Dfdx9tKM7dJvZ9Q77W3qWpnQoih3qjDgtwE/H+/iMyzJ+9YX/o+kRb6x1HANOGqtpMFxRBXcfWx7WPwY3RS/nBjHUarWO6I2VEYmeoDipQL6NFYHoMghIJsEPiuOrBTwkQN/Fsz95yoRXBgj4aHdjbg1seHoDe/B644owAvXNMLZ6zshU7QgkPbjDymqi2Y9YWLi/AHmFe//+WdMNagPaVZHWifa/asHp1eyfNT6k5T9iGI1Kuw9bEN8MD69aaCct+KWSMEnghk/aUqXH5KN6xZWKL4G8NGA534Z6d+X2qqsTDGeTNCON3hjPmdkEdn2o+2jcN4VBBqO0tz+NKRGElib2vuaZNdyvN5PwOAvCMFPW9+4AHYednlsOKcc8GEWUEyLFk7E0Gr/e22pcqdfSUCSN2CKhLAEohmGaUZTISBLnmN1P19/plGvRnUm9h1tg1z17XqkZXksUquc+fEDRpJqQFnreqA1T05ExIWBOnbW9utu0ZrOJLjDzQ3+vacOh6/Z1sFfvjEINyzuQLlXAfWr26AQt4AJbHKPA10HNiA/DDTuGqVvq8Zoyygv0WjJRKJsPOBUENQhUNRCN94oga3bRyEC5ccgivOWQIvGuikGb5McQ+OFUBFmqgzy+r5eViAmt/oeHzs9e8EyYxOa0yvfed3boVb/9+XQZfHTRlRs8ikYXpJYIu7pD+AK85cDP0F43CHZEQwNxfRMRaMxM5nLaIBLtcs7obu3i6459nDsG+0jgWvZG2vvuIwwDTbOf22v3+aFfENJGgqyICZStvvskJAeWD/QfibP74RXvXWt8K6V7/anNrO1NLOqQQiXS0Zsrb5w6q7O66y982Cs4gRtdaIBC09W5QZIG2ifIztmVnbpvTON91Lgq/bl7pWslqXvXFsj9YQSGlMcRoPQsXE7HOpJGt3QaoNkA2nvC/+GqjC3b1lDG59bAQe3I5Al8tDlO9FlTcPRZqzyIGnZ/ruOanmWSUAqlyZ5/1c2kMzlYubqTZfsKPh6wYMI5jetaMB92wdhjMXD8Ibnt8Hlw10Q2mKdVuWY/MMoBHJAhhBk8PgeD3ViGiYnTKjcEYf6OznXwTnXvp8MB61IJgFdJxrhg3tXY2M88ozFkBfgfudJ+dxFc1ed/T7i/NF5bWB3Gikx5L2ktPnwep5Ja8CycLC623tSxKwsvZHd5zZTZOT5wip5dY+wG916vnnwhkXn9faDHAUORr7lNvO1qmz50oAYdBk2yix0RS4ZBmjp9huU6VD5yTL9N57mWTZMgG0bT6btC+VPI888GEuNA3SU3uq8ODuStqmDAmotVLTQZg85ON3jTbgn358GP7s+4Pwk12odiPI5YtF6CwigOW6IJej0LucBdBMuhUX4VavI0wV8uWN/dGYAxCUQ5ofqwuKxT7I5TuhnivAhsFOuPG2Mfj7Hx2EPRNTm6haQ+ozmbXBmoYv/ngfjKkuON5hJE+EZACUXiU+5h8FePsfKes0JNrSlfDL730vvOLt10Opv8/Ggp5gFmpH/rSzDZJaTuNvFoMYzltRgmvP7EUbVQT5KLDRCNqO6m1/sZ3zg5hEHNjfVFoAMzBIbEsugyPZjVQdFpYiuOac+XDO0iKUSD2MVBMDacXoUu8l93OFc+sgGYxYygKbIliYThr4KVfqhGvf/CZ41+9+ABYvX27uSazDjBlrRtJPlxE7lqwbyLfNfj6WWpJtPPTvZ0ybDJTS3ku/bG8kZw8F2c0zBag6vY/vo+M0lWsCVMFak3yF1DV8X/4n7aVW2wDf24qiFnJogByLuuF/f3MPfOOpMagb9sl55Wa20rqJycQ6gWcqh2XM+zueGYbf//fd8LUNgHb0eZAvzYdC12LQ+T6IkXnG1DkB611kx6Z3f+0vcozbqRO26yT3JuP80Xw+f0VlyrsW6GqKP4JpWEQg7SQg7YBx3QXfeAzggzfthDs3jsBorFOzj7Xruxf4c+ybjiM5/7vv7oP1T1AZKUGho6MJkWYbEz0hUKaxJX7Zda+FS1/8ImsXOklCfaOpKOWhAueuKMJFq7uQAfJUxpNt66bAQrXyoJU64tTnQFfh+acW4cLVnWh1wiIeQdrRciTmJ8FRrmdUeeDniWd7wubWmWXSt3n+i14IL331qyAKgpZkpYnRCpCS+6TTKMsqW7FMeS175SUDpR8xT9qmpQPW2DptIO3wEXbKdj2neN1vO+BNqfxNHy5JXzbUiZ8n1XtayYUhsrYcjKpOuOmeYXhwR9UDUqAAVIv7GIyC5DuVceurDwzCZ28fgn0xuoGRZRbyyDxzOUgC/8FrHkqaJFzKEpKum17teITerYSe8rDQAQfiTvjb9WPw7/ceMk4oboqCozyNzjpc1fCvPzwEP0HTQDXohFyhhPee/fMqzagNlCWu1uE//vmf4aF77kKj9smh5I7aQH+HgktPXQCnzkefox4H8NN7TEe6kmJqirGSxVUUXAF0HaoGFy/PQ0+pB+7bOgbDExogZexXKbXKO34ybNOuKhvukdlOASbbSAUb9Wp8LoC7198OE40YXv/f34HspjMNmIHE5zZhQa1ypYVNtBXw0iaCY9P1AjB52+N+yr7pson7vNvdKrWdMjxm2aUzs6RYqTg/+85pbzwkqKT5PoGxS5aQdVbjHAzVx+HG7+yBd75oPrzqnF5kp9pmqosaTkxGyj9000gEn79zL9y/kwa/6UH1uYQ2TzvhYcO8IPeegpQWolowag0Zdn28opIedSECXoTLg408/MdDddg/uhd++fL5MNDHPfzlu4lb4L/hegx//p298MiuGKphFyhkt9g6QNTi/NkmgSHtWv70UX/xFI6R+vGdr/4nPPj9OyBXbUBwguYCjwNud7Xp2UD0rqsQwYvX9sBp/cgMUM0IzUAe4M5xfMVMPEf7lLHBmOKpuJC3GuhDCjMaZVTUyIwvqp0qL9VH7eLayDyQM/c8dX4ALz29H3rNXDcR2KhoMqRH0FBZtqSbmacSg2MIwErhhmCl8l7abUeYR7kogkduXw/fveXr7hxtKik7UKzzheI8aSuwg4Jk7mnn8knKUnY7MtfYk6XaLh1HrLZL0DrSyEyijfIvnA2kZzulD+DXMnMgUcs54wSoyvvI53sWrUX+hm4EIlKHtR1YJigU0BHTBYd1D3zhXrRf7pyAGqgE7DJCetpBZGX/eMdBuG9HCLWgw7A8hcyTbGCx/JbA9Y3SYQemYc5p8i62P6Oya5gWWNKuceZyTI8O8mh/LXZCA+2jd2zS8Ne374X9FQ31pmqTKOP7JiL43Pp9Jm51TOH7oQkpyOfc2BCSkZ+ooXSmJgFoDck/mNQPpnCMejC87BdfBWvOOcd8x5qyLe1k2csxi7ajIUWm508eAaoTfvGCxXAKgadu2P7oJtQoBh5piUDCmDwhUerN2PBKufP43PaSVkndJze7YnlSOqkxxaHW4ZSeAH7h/GWwBp1LZnZlittD22wuitP2TG/v05BSz4UKmLq/25dVs0F+A9NIoEEDVfeVZ54Br3j1LxgHiBJfM0Iw96yaVH4Bvk3lQKmm7ZRdL45NPLYMmJeqPadRqvkp59HRhBsdwT5THnMQwCuOZ736qommJquWZZq3Sd9fjGClTRkE40ANC+ghDzvgYL0If/yd3fCtJ4Zt10rN3nzHRPHv5sNVuOHrOxFYECzDHih1diD7LBinTuyKlXZoqFLJSzvFso5JAKFxpN7rWOpjAp4GTAMyWeQgj41FjCaLh/YU4BPfOQBbBmuuqCn/jgSQB9Hb/ue37oLvP4MkAdX2YmeP6fLNua5BTTllCeyeGJlxGygxlWJ3N7ztfe+F0y64yBQWWfGOS9SRDsUGJIu6BmsQNF90eh8sKjQgjBtwfA9SkzgvMdhnbYBSmDnwtSqqwfygDC85Yz6snYdpj8qGxTSpy8LOmQ3zkEDrn51R9/0bSDAyhDuAU846F97yW+/Gb9ZjWYtqjgjIpidr15T7s9fJV7Btgd1JdJPtnuxQytpIOQ6Ueyylnt3iE3lmmCCkB5e06q9S6C/vx3ZNxVM7N7VO7rio6a0iKgwY4/ESgmg+1wOVuAduuvsgrN84ZALYmWfRLfYj8/yr7+6FZ/YjmKAzpQMZmelG6xyYpvEPEj6moTldCtLpSWkwGVg6fsBRyU+RXTSAro5u9DX1wFN7Y/ib7++GA3XWVCw73jNeg0/fth027KEBxruxceg29lSTz/Knpmh0cK92osYWPSFOJBXkoWPhQviVD/8unHHG2YYdTkcrYdps59G1DNJ6DE15xcKC/kF4wSkBXH1WF3Tjuo0QCISXXZtZO9m3bGZFNKq9Yxb4JzIDh9OfvPtlR2wUhQcEGCosGJpVQprIIzTTMnAbbIpT4K7z5Zn+NKALxuDlZ/XC5acj68hjmkO25Nl5cSgJDUVTHlvG7BAoAWzehjRo8b7kcToBUUzUaaefDb/x4Q9Dz4rl6ERCGxSqgw3KLxoNt4GmhUZopj1hD7v1qGcrJz9KNy2bzrHeagZOJc9jh5Fkow44UwSqiVUraGJgTYAIWbCXYAqyHbRKB/BSm/Eq6WfKSOzMXm5pGm0FQqVOv3NAI3HhN8+jHTMo9MFwsAj+8vZBuOXhIaPOU9P+9KEaMs9t8OQoOos6eqFQ6jAhRERqzSDfzvxA6TGBSn6ED20McmY8GBV75s2s2gO6NjPKmPEe8pGGvNF+YtOBQk3DOMCcgaT4ldCLHuX74InhPvj4zdvhyUMVIK/DPvQw/cm39sAPtyrUeDrR245qeyFn343GA42TCAHlGnwecNlWd3eeVn4MY9LYgpMQI6nGt9+r8zPcF9404siunv7pT+A//+8/wvjoyLR9qMABjyk0BjgjKOLOJZ0BrFnYAWcsozmPqEfF1EZ2IXWEKkhvCaCQq5tGwL9MS6WCdUG7VFiCKjWAkUpgwDKnHX4pbVU6l34eK1IpSOynoE03z6ouwLOH6rBp7ygcGEcDO+puUeAjR4GqUODUVF/nGRQzanCSZY6FKtX0Fv3zFsKrfumX4JxLLwNNc9WkKqt4e3XsdmzfFx7Xq7UadK+6POB0AsjXsJ54cioxyPI9GEhp/9u+FqeCDw+Xdeo9mcGksyATXM8vlkqoG1FJO+oYk+0WuSLN1x6RewPBEmttmCsZ9VzxdzGj8Gee40Bdu4Y5iuy+RgPLZW0QFqk6vObiTjhlUQn+H7LSZ4fwWB7BM+w0c6obFTkI0200p10WO7E/cRxpO0Cx10QoHC8yg5sQYptvifWFbJcBNpp+6iWYHomj2EyYl68Pwer+Grzw3D54ausEPLCTnoB1s6sfG5acAPtm4b73yUsrv782QYMfuJkHkMHmCnZuMfPukzX3TEFa94WfYaFR2R9Yfyd87Z//CQtgFabPE0itf8P0gJjfUYAVC8AExi9D1KO5qmvoTW6YjM+la9BkxFW+mAYvDkSPX49P2g8OnK6FyjtfTE8UroAOJNP2Ty0YHKRsfhHNT48V6+wFAVy4fAHUsTLvHa7Bs3vLsHsUPZeVKrIWqlR5oaJqN4Gfdv3YHYi6kCSfA1KVV0nahwb3wb//w9/Dm/FZ573opYZFW7BTmaxp371UHjehUXGcOldui/v4RLhgebOfPfJZ55FT753mqpwtkL+DEu2HZaJZYtJsDhENGNtFHdhpspcD9VevQ6NeNeWtM6hAEd9jtJ6DiXqEKnnRBLObvI8i9w0gNfa29O6bcoP/KAwJoh4YrNbhX++tIABUEMtojqDAAJodmT1IGjuJIayqBuleXrYxTTu3wDNwGn+gAlF9DO3qFKdagTAoYEOG70cj5Ze6zVTketrqp0kUFAqouUQl2DxchK13ERnpwgY6gAIx8dxkIYhNIto0bJVKGdMcme/QHYzBBJrqKvVuqCNRo/tSLyrSFLSa2c474Uc++Os3UCvnZQbm5SFVeeHCBTB0YD/s2bHDdpds8VLKxU0mOlP2RFsiA2SUHaoKS3tCeN7KIjz/1G544doSnLM0hIWdyPaQ01eJdOowXfCmIMo5a/I5/IVJybVdwrniJ4CZ2L244qF6gu7zepzuWqn53jqtLknwZKYKjgGSIbmzFOH7ApyxtASnLi3CcmwK+7CViKpYkLBRMioehMmzlHWQ2cZY+i8juy3tdNoBEVamsy64EK5Ep19ADg83mVnKnqQUpJww7fIOWgMtsY2kkYih2H/KH61btw7ot379erXejJmgFG4rBlA6Ruu0ZLnzzjvVVVddpZ53/R9+zOWU2V9u+FxOZXDC0vkbySZFUjlX5BR4xhgjaDYayHQwny9fBfDmy/rhled2wryOwIz3Wte2olqLTGCYEXunE8eNSlRpBc6JSQ77EKKwaNiTRi0nzqEnulAynRos23eebgX+Wp/kdLtty1T2+5j91qfdQHCp1KromqzAtaeF8NYX9cGVZ3Vgg1CDTQcrUEXViPrLh6bHoCy1xyHUkND9KNDf9NRAey5qIXlk7jnDrpVvaNpVU2uSCdwnjSGulc3gy+TfeON5RXgLvscla7uwYajDrmH8Vsiw84GzGyvpyD1+6chn0nZiVHgzyzlE5TH4pz/5BGzd9LQxJQdxmh0oUcxjV2vJ1kSYXsCK39epYNWCIqyaB7BqYTf0kPakJ4xNjq2NZLcr1xW2RnbYuCCwts4pNQxc6XHRUVTQmaf710H5Vjzwp2jdBkxwewLV9/G6DWNhJ7z5nGbdVqY4IY8yw/w9jR2IBmoIa2iYD0yh4OpO6xGq+aN1DdsPjMGOwRh2oPd2FJ9pgDvO2QLkJiezY486aiT0Wq6op5x6Przrf/wPCDvzbvZxdzzmIBLHyp2tz6dW67agmbV7mqGB3FeuVKvwl//6fdN6S/smsUtW0WkpY0NpXW4/fe4fRrLqHS67D5f6FpCYLbTMY8lWBYDaRJhdEYJnvT6OeTEOLztVwfvWLYeu0F5E3/WrjwzBlx8ch8O1Tshhpc2jp9yURNedUuZB4vBLWGIsGL42FUJ75h9IdtlKdYc0YLZS460TLDLvEKMq3RNU4Q0XdMBbXrAAtTRtTBE0gN3n7zoI33xiAspoNsjli1jeugzwTYewhsVJ5592M1R4DIhbQ6jiSkJ2/8ooaHyP/nwF3nHFPPjFs7ptg4WHx/FGf/n9XXDnVjKBdSGT70TALpjvpKbJKJFV4U8IgBKTMXFi+CH3bnoG/vEzfwVjB/ahETsNoNyJTBnnTgQFLDULu/OwrK8Apy8uwuLuIvQXCTjsFMkGGBXPvEjMFMGzihWzjhyVYjzjwKtLpIpNPsECQAsKugoEGHUHDgHY3plKNvxChdR2vh9UkcoVrHaRBVCeKMtAEZd3bRuKxCaXZkK0Hng2qqGzIwcFAnOqv6QKB9ae5bgO8XIYRgP9obEKbN5fRzCNYHCsakKTaA56asjYycHMkpJFDql5K5fDL/3mBxFETzfsg2JClVcDGUBtGdcqOyeTpEIyGyWQumx1tmRarVarumfgRbnrr79enXvuueZiHkSZgVL+ssBK57/1K+mubYfKzEaFWpsCzfS+LDPls0LjPIygUh7Fl56AK08F+K11y2BxKRT2aoAJPO9HW8ex4h5Ekwqq36TO53PGZu5jMVXq9s0AyIycnHMG+EIBik7ricXAJ7r5fjbGVbmZSCWw0oDONahXh6ETGfT1l3TB9c+fD105BbED0ByW6VEkHd98dBhuunsI6nkEpUKX6Q007SI0L+1YdYKPzSDnGw7Mozrabeu1MehGM8RvXtEH157di/4O8O9Lb36wEsH/vfsA3LERSQQ6fcOOHmPbpef66bePg40eEUDNd47q/J6tJfvwIwB7YpUK3DTBNGVGHXZu3wKf+9P/DY2DIw5NeN6TCOahCr6oN4eASeNnFlAlp9kKyZZJakgyGJ7xt2s3tqgDn7iRg3Es0Q0dmrnXTVHkycv0FLuQKstOCljfu0t2Bk9vV+MqKuxn8n2Z0IxNIBM24yw6NZmBVCf9piNvIM+CkD0euNczQ8rhdld3hAXCDYurbd6xdz40fffxPFSNGmS8x32DFWSnh+uw8UADBkcjGCvHZhg0GwaDb4UfJujphN+54aOwZMVaey9nH00qo2Ow2jZyCYC0QYUkE5uZeq7gr61WK9C75sVhq95Hjz/+uAfV7HEGXNrPAMqpIQbaZDIR6QFhi7QsXqwbNdH2JNeVilETC6gmXnVmDt67bjGULEalGw9cb2DF/96zI3DTveNwoGLtenliPzwlhUoqrWebWjfZLEHJMiXtmM2hbNlt8XrAKEVO0HqtYYCnV4/Cf3tBD1x/YT8UyFQLtt+7adMMZGNZwPt94b6D8I1HqjCkuyHEwl9AU45lcNMXsKOStqElA01BjKke6FAltR3NKMs6KvBrL1mI2kAHjcXpIlkSoVtQo/bpW3fCHZsbUAu7UStAVo0mg4B73x/HnEJZAPU2UJuRdjZJbjD5ZZp+ygb+uKCh1ueIX3Ifa9fs6O+FjlIHbHzkYQiiUUxUA85aUoCLBjrhJWfOg4uW5OCUHgXd+dj2yoG46VmB21KucFJeEvusR64UeVuq/wqtc8TZOrOi3bEQ3zWPqhWZAliFdwcTO1pKn7V/CIgaxgZqASiJE7Q9mzhIOA1AINadiq/5Mm0DtPFQPh/5dycJ3P1Dsqspq7JRemmcxq5cDCu7AzgLG6Q1SztgcX8IPXh9pTKOFauB6novvOa//zKsPfdiN71C8h5KKZEWuzPgV+bvIG2/AKl5gPy3V4ktEIyt0Kad+t4X5p3yR/xIciAtWrRIffazn1VvfvObfVLILuqOAx2ndTzH3O15b/5f/0sJDllu2HKhAYT9sfnrO5hK2Di4io0FKULveL2OjbuqwdWnB/CrL14MfXk7OAiIewUO3GhiuIH5eZjfH8B9GweNSmwmq1A5n4aAGSIzSGgNfsrlDfeayrQA0PKFHBDJc42hJaqa6ZOLyNjeeH4J3njJPOgIudxRaJ1K6hGt48c9HcsI+XWe3DZmG0wTehX4MW2ba8oxSPZGonr66irMEjQoda1Wh241Dr+FzPPla7steJoL0ikypAe/xzkru2ACr9l4sGGiHcKwYIkA48IxStYGekK88OBVRjfnELbML77qGljc2AnBxrtRLQ+gCwurMixxzNuOIAMxJDLvPfQgVa9WSFWZogPMVQC/7pOrm1hGSl1112kT0KyceTVxENiIkcjETyoV+AKbsDH56NZ2OHtehj/haq2mjUpSNEpDw7CcxIqWzJDD3vPAoV0RFczleM3SxbixpASVc+bBoYkIotNeAmtfchVWlLwJOaGHmFkDQINuanOy+5pZUBxr/z7WhpfsS78XpK7l/u1f+cpX7I0z+4l1IisFOk4xoshAbc8kgKRhcyMLeezROtWA2zdoLdbBE0ON1MTGODLPCXjl2V3w3iuX4LrNWxlPmmKIoM0Mky8b6IH45TH884+HUZXMGdtxIV8wLEnLvFPgvowvGT4NvM3M1LbXGebJLZgHnbQdlBSHABlbhA6j/nAErnvBPHjzxfMgD2kq4UuXod9WG+pC7L/+ol5sYCvwrQ2jxiSUi7pBF2yPPN/Q8D2mBVGz4jQrrFjkGKrVKlhky/Ceq+bDlau7wMW9HfEOCxBT3nvlIqhFe+DOTWUYryqsMwi8Ycl2Q1YASh1/4m1a4EQKdRJGYKlGsAxGYHlHFVvFMsVpo60utCqk/9dauBAY5kltLd6vXrfXps86imQRQmvIxlGS2PoZuBYMPMAqX4jTaiHb2Mw7xAwU2gFrtjlIF2cmxPLjyuTEaLOoVlBtrPPl1vGgXSxcthK6q0z6YwqOx1+dWmkEiKUdqBIVJgDNu1jhEraZjp+z+9P2zqTCZ0OclAAYfq/kdrJxSF1GarlRzZ26bo6SGk/76UJS2RE8CUjNfvqxas+9rQzYcCMFzSIB1adNpIxGYG9UJ9D+WYZrzyrCO1+4GAqpd1Oppb2ns8ErG9O7bm0v/PqL+6EYTaA7oW7nRNLsHHIpc0zX4mBSbrLFwe5PzrONsxbaAYj3d3lPDDpCg1e1AR2NMrzh4j64DtX2olEP0l3S5WeJmTQoZVjVm1+wCN7ywnlQRPDS+A4RTUuu4QT08OEHYOMeYWNWn0DmOQG/8qIeeNFqMovESeKPAFykiZHj+TdeugxefUEnkoIy3qtsR9mfRgkCEfVPIwliETK/OJXVGrgvuOEmMSQ/E2l5tF/kr7dqPNpmhrdBdHibURtz2s7TQr5fFTTsc8wvgYCkeqdbUSJNE5WaSXlMHneyeQYqGawjUTaBw3fIzmV/caolS9RXWxqNYT+K7DaCtPFGxyoFlgmbStQou06WW1Lj0JCtcqknENOxFS+yJVK5pQFZ7rJnVX1rHLfgQDlJTif6TpUqhRzmjCczVs4rbqbfCO09qFJgfkRofrDJtiNE0vxUJrKB7q8RUHc/A42hTRChl5/s0S4VLtO5/7/NK2WORyaAnLaDgO1ojJo6dY3/7gIV7OAa2jIePEZACEIcaBqAdGzUgCuBJe3Pnutz1XuFdAooU82VcuqrkrCvPHjUUd3tQc3h7Rf0wPvXrYD5BX+KKzu8SR9Z2tSV+WbEuIt4n6sRRH/nqk5YUhw2MZd1musc7Di5Wa1K9oZqYqK+NcoAJ23H2s91z405VR1dRk2uOgo9IYLOlf3w5ksXQEfOOmpsEx0bt0PgKpHOpsU5dcjJ9MYL+uHtl/Wga3IUIrxnrVw27I3HEJ0u8T2MzI/KaB3ZM9qgK3VYgg38775iPrzqjD7UopS1Y4pSkBriR76MCV3Jwzxkor922SJ4w7kFKMEEqvNjbSc8PBY5IV05pZgKjFAQHXgaP/QYQJMxBIB1MN2uuXNMg+C40YjBYJwL17HBN3a4L1u7XAVONZ85AzY2tkzZ3iPMlBQz24QVxGw3UbLZUymgZRMU60RxkDDAWEMKy82zTDyTnbTNhkW56Y557ljl4RbAvZPmkXaoiyVS9npDe3YLzGLcn8TLzGyd30gsKd3o1azvedzYmsnr7Lm/koyZWahND3cQ4HIYQ9KYxLFrb2Lw6/xEY8Ll+4Ju0sIYMFkc+2S13R+nJTuYvMNL2Dv5vVWWcfJ2pvIHBjwbppE8c4kyjC2vm2NYs6YHpZLtpEOE1YOuOWsevPvl86EzQPBsEPup204ZyoKYAi1YVCb43b0IgybI8gPJNtvEmaU2iF1FY9ARj8H1L+iCV57fA9JkZ2/RXOWbQBQsIFFpez3aTd/x0j4kOCPYJo4bj744GY5f0pRIu/dooP2yU1XhnS/thxcPdKWmXjdlCY48LpoUmhry7ZcvNn6AuBE3de44HjlBNtC0BFhpq5sfhHxcdXukasStsNRnEkkoh5WxIUB7DdrvXPAvtZ4GiozTR7sRhcB74ADihHkaJmIz09ikVBIAw7FrsQEurjB8zKXQM9F0WlmFpzngLUvnWEw+T4Buw/Y60nXan+cbGDUMeIi9iLsHOudTg9g6Ql49gvkLwYNt4Dzy9v489oVU5ZUAZfuXvMz1nY+gjvwyiHNd4ENvtB8hABiQvQpqFV57Sx0krx64UYlkYdfclMUW5401gdc1g6I6cOAAMU9/Je0nAOUlj0JPIoPs33L9vwObVEBrkf9apCFp6DRA6tzk62njbDh9cRf0FmX8pi0nDNRUnmhuIGPbdnnCwClBlMrgS1Z3QOXlvfCPPzwM+2vUwycPpIzQlCnp0LUMeKbKkXZ8gu2oYttMfGijTKhbbIBAPT83Du+4cj5cc3qPnYMJbPOrxLxbbapWSkx+4LIDs+J15/QabeKL947AcI1mAe0w3nmqWbEjHMcnSUPUqNseX0s6xuFd6xbASwa6IfTMYPIPko0C1b0+1CbWLu6AB3dXLcuFo2bBpCRnVGVX8E3PEx0IhiKnjBWPO44MI1BBbg6V4f1QiFEpVTbIPpFAPKL9gyzrAOhEq3cZHUjVcs6orLaQxYla42BAO/sQX+092IEd4MGHkpiuc0nFyeca0FWyvZG028e6D1dGnaCLAGCFKg8ymzrFAyJLbgTifDBn2bFTAwPehq3xQHpaiQKvPKjR7KGxGR+NplTAdHUFoPxAKtrmLRcdzWyDoxdEUDYwcNgpTuoj+7EVKqPe1mfvpy1b9HFznnllKJB5SPsRKJIGxqbJD3ShHWy4z+FAUvN6VhhEs+fyPkdFkwt00k01BUwMcnGccgL5hgG/9TOHxmAs6kIVWPl+8Da97lvoBIwkCLYLM7pqLXq+cyH8xfcOo0OmyzrU8iVjDrFAHjsNyDZaDh1TDV/q26kESO0MKbEZZyJEx1cpHoH/9sJ+WHcaOkuU/cKuRKenMxFsVhJbKVo0n7T2C2f3QykXwN/ffgDKkQ0ZtOMaxEmjNAVRHhST9UZsQ67mo0/kXS/pxwao24whEXjt78hp5p3MUDlyh3aMoeF/++EJCOi7huG0gCdJy4goldIVUlh+3EKVtrrrSehsDFuGJp+h0488msHajLjUqaC3X0GhGAHPxOJ73mg7xiWwXdC0xdTLg0ZKQtaKywbaEckBRf2B6xSAX6dBLrCVrZHHG3/VyKuuTqdNpUEWHvlRG8ggy+jlLk/EMFGOoIr3rqV+obFhRhHFbNJoO1Y1t3whsNuGcfKI+dqFycVQ6GhA77wAisWE0ZpKouxxTlng8tD/gAN8kpAw0whVh6CM3ySJdbVgbVXyRLVKO4i0eOPWlacVq+KzObSJQVBKdh8xTmKovC6X/p5Se4BEi5CsULxA6ruRBkChfGHYBRt2K/jnOw/DRJVNDpRea7uU92qn3mf3k7350lXd8Luvmg+rusZoBBEsV1XfO047Ws60QWUaLbMOMsJD++poWGK9gk7AEZifH4b3XLsAXn3+POgMk0b3WLmO1dqsUIkqYsNH84e9a918WFQcwYqBdlF8ttYJAB7bs2Lzr4aVrYEOo1M6x+D3f2EBXHkamg2oxqqpv0OadiA3wBf4+x/uh/t3kEbaabqQTpecmOHs5Dq2lDWsrDlUHSdvxWh/X2KLxVINOrpjyOePUmi8CqPS24KZSnXcRHPmcuDtBkqlKohqcQ9rktQmBhCszwkgVbWBrQcemLVgdB6sQV7n1hVNhxNAF75rsVQ1LMawVXYwaHlNoq7LJtACjRJ3xnyjgOvdjxsbF+eAElnlzQ0ahF0URHp1U9aKTG/Kbruu/X0IMAkgpY2TAJLsnAym69evNyfj/piO8zaDsXw4g2lWrefnMkPVqVSiMxOZIbHO7z5RgS/99BCMm8kEbTlNv3d6PfW2KWZqJYfbl57SC7/9sqXQjyq2RhCNzMAkTFZcKJwDSCWpFNj0esapkudQfKTG+lRU4/CrL54HV53aDXkHtulAwPZyNObI9zKzjGIiX3HWfPiNdQsR3NAZ05gwg5C4dn2KNMu3Ama0pnqtDP3BELz7ZQvgkuUdxwVMlj7ZXBxGc9dN9xyAO5+k6FyskzRV8xTZ8pHEBdKT7U1ZdUw3mK5MmyhgmwP+HdwK9Uf/C8L6uCs6x/cgY+MJqetkBcKC7VmjY1YRla9EImDQCBd0ikKIQpvpVgG2fZwhsFbTfL4BnWgIKnpHehoppF1N8278U0PSUkW1oVFTzj6rTKB7aEbKtz+t7HQenhVq6WG0tcWM96m1CXouoD7T00PTxdTRrEAqcU3koQZW2bMfr1U+yzhDiiWN0cuaX3kWxKV58vEggV2WOzZFCIzy663KJwMxeGcZkbEINu0Z/ziBZ1dXFyxevFht3brVHKclBc0TWPI+iv184okngksvvdSsE8AeWnzlx7QAxEqU2CtF05NOqNtWwjYauFZNh6iVqDw8vXcc9g5PwPOQPeaC0B43qr8ziyiVVUaOyLjpqiW9OThjZSds2TMKB8et6SUIbeQEZ3g6D7X/enwjE8CA6YjQAUtlfmFuGH4dbYUvX9sF+YCfZL+390cGyfWTqW4t38F1/qCUrurLQW+3hq0HhmCkatOugoIrfbotKCf+UWsgCCjudrxiTHpre8rI0pfCxcs6jO02UEcH9yYx38MOlkP1ZgLLwmdu2wPfQfBs5PvtRHX54nEBaPNgIlvv0YWii9cgAI1qMN2SAGgItWfvgMbd/4xAUnfHpodOV9FrN1rNQz0qQHkMAaxmnRuBsy/FriUn8ROt4WZe0zQjzmbqHEI25MNu93RXYX5/aPrDJzUmTiqQeTHdZAudqIVweETDxFgBGq4KhY4lxkHkyAU9KHKVm54XejXc949WsQHdUi6GHrT3EmjSnFslGl3fmPnFSEs6UdIh2esZbsJNwbGdJP8oPlRdch2Uzv0FLIKB73qalfZME9oCakrCJLKyWqlC32lXmKaJGCcCpjm7nTdeCp/z1q807PhLDjQPV1yDCZB639SyTQUyNmlnsqiVR9FGPwKvOKcTfu1F86A3HwJw6BlwI9AekdrZROnqx/fV4ZP/tRcO1alC9xotJ3CNbCJJimVZUxGWjTr1MBo2w+r9BnrIr0ZWWAySb+wv9w9P63rHrXbi/cpYSe7eOgx//r1BiHQveiN78D3sOAEqaA+gnDjCBBPeVa6j42sCPvL6pfC8pYXj82prVx/iAAbR2/6F+w7Bdx6uQC2Htv0izfJpnXcQHDuAZrtynhAVnuyPEYXqYPEpb3nQeIunW/JIzfPIpPMB9RfXaBNNQC0WIzEJBcmUsSoCVAVtX5saHXDIhUPR6NwErJQ5NMeL9e3YWE2l0oofo4bVJ1nPBfPMXGhHbcrhu+diG8+5H1WKRyt5GAk73XdU7jZsAtCpSk71ooCJ6e1WxnudK4TIhrWNKtAERoFT37UAz+Qvq/FJiu2/ONbpCo7vV9v5hB1s10QkhC49kLJSZNX57DmcDVkgbbUkcQH0wODJ++SSRKr38jwtHq45MSIhKdBUKuVQ8teAzXejhbhZYzuKnVBX/XD7M3X481sR7Gp27iLTAVK1tlVKye7nbcrV85fk4KOvXgKn9YwgEGIFp9hNU7xiN/K6YKM+qfY9qVcOgefinga879qF8Iqz55k++j7Qs2ViJkU8JyWs0XVgvbnq1D54/8v6YUHnBDSqh6FenbCzPPAkdo4wKFc+uXcRHS9PTBjVfW3/BPzh65fAeYsLx0+ldM5gzSA+60b8Zt96rAblQi/kCzQ2QTh1RjsJCTwIuIo/ExKbSbOwUjZGQR/cCjPxINKsSN2mTArRW0jOpYIZRYn7bzeMKm1AEN8VcQyBMwdPNPrga7tD+MxTebh9X84NsuAsgfg/DJzelNZfHSNITARc0hlguMKSaDd2ABWuHx/Owz9t6oIvbw7h/on5Zvgwim2xERCu/zsw0EWmIaBIg8ANEJknkyzNyWBCMSxzdYYMlzjJtbwCbr+DzPdsWSIAGdyFmUKxuYH9ZjoNholamboslTVapwG1lVqfxRwZ10nqPK+TSBBlR5JcemBMvXX6QVZJ0Cmwldng7ZbuEgqIpwkmOopFZFpFuGdHDP927z4YjS2DtLeOM/mQue8RKisdO29JEd57zQpYWEDPcFxGUBw1gzHzYC2mLzt/YwKjSJtA/xhtsl3opf7vl3fDSwd6bGSGe4+mIe/E+nTVOBvhYsPyKILj6tN74TevmgfdYcWkLaqXjeMs8CoO/1iFp/fAc1HTXZivwG9fswzOWVo8Hq0auGTTMBiDdQ1fvPsA/BSdgbVcN2JAB+LBzM0vr8a2/kgX5HB2M6DCW89yBI2td0N9/d9BXoRHTZcKT0Ifd6SMXnUaBxOoa14A48MxevfsVBjaje49isztwbEueGhvAx4diWE834ENeAcsUoPw0bPKsDCsW/aJrGzhQoWMrwbdHWI4PMlimOVkUGKsGkC5lofhQRpQxIZNHGoU4BNP5GFv3I+FjKYeacCZnVW4eHEeLu4eh/mud4sFyBqUSuj97NLIrAOKsEH22YCuDqrgzvzhGqYkLwGS6mSBNGtPs2ABfp1PpaMNhI38S38dCqe+2LUJutXrQhvS1VZ9T1WOsOjBhrzRfaddmZPxniTsRKJ1yUz5GJ9HALrsPbfVpQf88ETy0FTojzCzJLnTvOTrQtdLgGI+yTxEg948/xQFH7p6ESwqBDafXT5yWJONEU2CtI/GUulZD+8tw+d+sAc2j3RDjOUwpLE43YRxtiMJllkE1lqVwgJGYFmpAr921QJ4yao+rDlskz05wo09wdftG4fg3348AjvGkUmGFriiIEg3upg3VWSpDQTaM/sa8Nvo0b9wWUEMYTPVd2FwtukYRFb0F9/bB/dvQ80ywDQUO1xeZuQ5p8JTOLpGj92up80IQTMlVJaKCDIWYJQJgejqQnW8RLZEBLSwBHcP9cDnNubgJlTN7h/phaGwwzI+XYbBOA+PDBXQz1Ey0wGYcAdtLUs+BlLqr27d1w+dNPxsNqCJxMi21cA3f/BQDoaiomlAaISbiirBgxNd8MUtMfzDVoDvD3XARK7T3KOQiwyAhsoykADV90IhsEHoyeMgeaJq2uazEmaWVGTv8NDgbXmm++6+JyGMJlJmlqy63k7ksWRQkSSywKuiLc7PeuJbAacMusd1xZ54e3deEaFGkGaYrCGkzocMZ/eqPXvyaUAQmjmyC366PYb/d+8gjETajXQOHsCyNk8AwXoBUmp/kmYN5yP7evc1K9EZhPZAtG0SUNruw85vgPlIA5zE9WG0w2p4z8uXwItW9Rrn53HStiQdx3if2BUMYpxXnDYP3vvyxdAboqYXj0OlPuHnoSemSuBpwreQoC0pjsHvXLMETRlFEfV9LFBk093Aunmgit72Hx2Ae7dQp+4C4kDBxngr1fSbTgn/5wd+NTOlx5TGzfQN95GE+moH4wegtuF7UKgMZkahn14MVznrCIhpBkm6O3puwnwM29CpdPPWGnx7bwGerXVDPehCbyt5XetmxOs6DbqKDGyiHMAZ8yLoVeNQLNIc1+isQUAuFt39VRpIbRC+2+bswP8VmmcGnUIUQB+hrWdv1Alf294BB5D9ErDT9BuRU4WI2+5GB9jmkRrsHxmElfMCWDEP8ywX2ZH7sTIVihTragd2Ns4mLZmVjNizktgrbZiUh1WVAGaiumrjZaa71KplKK48G+JC/5QqqPRAy3VpM7U70l74ezds/QR54EnYEz8wMKAmJiYMQJK3nQCT9pE3noD229/+tlnSseCcN/4vmUr0SbQESdUmrdDinGSpjAnIeuFzUMNy8syBCmzaMwwXDnRDKR+kdGOf37p9nGjzMxUsRBPNWQO9sH3vMHrnMV/wM5I9ny6p1WlUpTKc1l2BD127AC5a2WUBKdBtHX0yLXI7K6RrepfYpGpyNu1sd7dlZ3EPvsfyEmzZNQqHyraHVA7zjULDaDzPuFGD5y2sw4deuRiXeduvzsdmTR3YjJaJf8axQfvUd/bC7ZtqqKUtMFNHhzSgddC62+oxPMpL1gt/vOg1qaSE+K9+aDvUJgbRMD99Knur5ISoLhdD6jTX8K1bEMZw6aoYfvuFOXjPpQG8eqAMp+R2Q1d8EJSJ2gqgGNtzt1dDeOBgzkQMBLnYe/BZRWdg8s6jWHvmki6k2qpzqKY3sBA9PFyEnVU7hXKd+snTTIgKTQPREKzOj8Dr12h436UhfPCqLrjsNIo/rRugpfClkJxHeW3A0wzS4SYb0zz+pxscRXt7KFcetvul2Smr5wyeNrXuX3kI6ns3QbteDMyq9BGoaFZtanWqFhWW2CTbNVmIgbIaT+OBOkaqWL2n87PX6MzD0sHokGoQeDvJMUg5lOiYHZgmNANQ0yRo+VInNNBm/dC+AP4F7WyHa27AFM5D3Rxkn/R2al9VKLfOnh/A+162EE7pQgTVdYjJToiMjbSBxaoM737ZUrhwcQc6IznuIkiZKbISxzG0jlvVhiTRtC///uM98KV70LZrOFPyHjZrJlO1k/ciTamAv4uXFeG3rkIzR34cycMYVMvj2Cgju46rsKp7DH73WgLPggNPZp5TQ7SkxMawv6LhH9cfhgd30PgTvaDyqOOibyPKpD8JHZxeBjqjfeG5ehKDirY8AEXMUK8acmWf3vcx9YcmxSL1O6pZBxKNWFTED3hmbgJOWz4Kb1pRgMMX98BubCXv3zQMT6Gd8vGREhyqIBtEgP/R7ghetmQezM+TQ6VuQMoO9uFACdLWerPXM1O2ndtzSf0bD/rhjh0NM0J8D0xAb64C5y9omBk3SYVb3hnCouCQCWTPI1un6YzHtXJdYZAB5ZQZ5NYOgKK8DVNW3HS5SFF8UCl6wYw0k/GmcEWQxzRUdz0CXWdcaVSjLKPyLBN0+/2xDOuSuZT9WM27CCgZHHmdJpNjsGR7qZuEDt76bhB5oHyImrdngnh/nTZyNCE7Hzezaia2ZG6MqFx15EpYriL43rMV2Iak4Pd/YQUs7cqZ7xYIe6QEThlhIfNLAhxdefoCtJG/YSV8+ns74MG9NJ6ogtMRWN971VJ0OhVsuVM8mHZzfrb6Htln0Zcfxvv+9Q/2wz2b7QDnWw7tht95xVKYlxcRKkey1WSf6e5sR5tScNHyInz0NSvgr+84CBsPTZhsvGhJDd6D77G6L3QYcDwVX1OthKFaDJ/65i548mDJ2F2LRTvFdCvNyStAML0ygwBqDbzmY9dHoXJgO5Qwg6kHEgUqz7SEFPNVdyMOmdCJENkDqc3ETCuwIJ6A+WgbPed5PTCODqQdYxOwaVjDD3eE8BQ6lzYNxbDGaLHM4JQPL0nX/AScvI1PWubw+VuGRik+Bl62rAaXL6vC2YuLsAzVtm5dQfvRiLkmIHUfzQgNE+rBqGOn8SjQvCLEPs19A684aW8G4/VkEAzlwYObMQ0Z3AcexUc5Jq1CO4zg+NAu6G5gunIL7BB44PrsCzBVLRo/GZzfxMRagTZYdslgmO2eSaCZOW7YKh/nWToTcNAZVbSFGu3NGgnIGjt2+kRr9HANgDwvR51OCj2ojmp4en8D/vWuPfDrV6+EpYVsQwOpb2H3pZ1ZvE86npajzf7dL1sG//u/dsHohILfePkpcPaSHPCoYrFy8c0tHGSTMR8MYTG66d6D8KMtFYjQ1k8Aeu+uGsy/9zC840ULoe8YFUSr1QQmOJ7Wzl6Sh3dfvRBuvHkH9HQF8IFrV8IKimOGyQHzUZ4Ge8fq8H/v3AtP7stDhHW9RHGoYetorul4YjuxI+O3o/py8pJ2DCKIk7IIyYhDPiKRVIn9T0PnxG6z3TCTm8GMibHx4b9CiMZ4VLuqZAulcTIRvCMzORfYbZ75EMrQRz8sS8/DD/wqbD01Fqzhw4fMJHgGlMhxg1/HjIUIUYtpfmWGOAns2KdhGMEVp47Bqy7sNhNghVEFMx2dNJEN9YgYdGlyL23tojTdL8VkkJe9o0RTFNTN/Db09NjMeSTVM3pbO2KUZSjNFVUl5Mvvy/a1puuCyHZb7Rk/BNG+pyFeeZn59saXFqtEzQc5EabtNGfuF/AQDo73xQmYmJFDFbipkkPPYLPCrJOn8ZAiwZTXtbND6zhpIGTD4rtKSmCRIOaBCCDBTM0F2pkamJmC+V5kkgLVB3VdgvU7RmHnLTvhf75yGazqK9rS70J90t+gtbqdBViK+13TV4Abr1uNqm8dFvbn/JAwgRxRSVwvl6od+8I/FIb1F9/fDz/ZRuPIzkM7a868dxUdV996NIL9QwfhQ69YCEiEQadbokmJLQcWgekLX7goD3/71pUm3/o6Q3G3KVoOfVG3/eb3VgA+/q19sOVwAaJCpxkZSufo2wibtNIpX0swQ6BzfDZQJf5mDnB4TYB2vvLuZymmqMXF002o+b5WDSPHCwSRmKcbmu1R1qtif+j9zCEzLdaHYGFv3qjOdjaYPKS6t/L5JNqxOLHf2kgDsLNgNmAeqngd6OXPoTc10BzlaUHFppiVIPAE19wK025sn+6odfY476dnvQlw8r1SjIzzhJMrzk1yTIHsf01tYnXvViyvDT/VgxzEgllmK6eRr+CZ8soef7/tgJZAkEDzkksuMaC5efNmXyaZYY6Ojpqb0zm8n9c5v3jdOPUcA5Y/3udzpUl9l8ArU5msW3C1+0idz5eKyEi7YBvat/8e2dDOiUY61lbevo1tVm7L/X0dASzqL6Yibo6mVstvIM+lojuMn/LzPz4E92yjwcfzqKHlgSaTzOXQY93RgWw0D/ehmemL9x2Gkej4OY5yppT53QXoLeVE1TmGOu+1LPRRoDL317ftRfBExMS8J/AMcydlVE4j0+wC1/4XKWuvCybIKfFMi0fNFA1N1OwgbGAhid1g4ukWVTPFMBuiPzrYqAEaDZEmC0Maa9T/WDJ1xiDB1r0tSLuwndgGx+dyZDuLTEWwE9PxyPxJZXTcARLGZIEgXyQHWOT5PYOjP8eDdSYLVDorJPg53d1ex2xVskF37cSuJ0CVD4HtdBeCi0cBBnILOMl97cyn0OaLpO/t7af4D0FTEWj29PSQ0wgeeOABzeyTlgSUfIyWdD793Hrq/iqhjC5/AtemqRReyiyTWeU+nztX2nDTKjg7n8xEazlU51Uv3L+rBH/yjW2wbaRujR4p1tm+rLeyW9plDZduOpCMNIVDZRqvlMkAl8NIm//8u7vgm0+gYwq1qxCBk8CTjkXKDphD+yK0797y2ATc+N0d6A+YWv3MOlB59H0TwmimU9JTBE/pa4jNLAY7yzH88S3b4N5tyG+DHnyHLrx3rmX2zhS6ZCXnBxhmUS3iNNWRC0Fa7Hk0cgvVt+jwHgiGD/CN3HF5r2NokZoTKJ6dUDjij0WKS6O+59raXYmJRlJt8yCTDD9s+qsbVU2ZnkncxS7RhW1rmHquqFx0hpk2AZ9LHvTA3KkBfn51bdXZKAN+dhT7ukF3igMoUuFw06iYYBNzYwV+2D7zOAdu5oVikKFJSVYImxvwF7DbsWNniUrrsmT8ANQPbYZc5yIzzqp1YLmHCmCmuFQJ6slncN/ZPTBFnnw7ZBioZoZJ4lR0ZpwGUCEtBkzpGjru348f4tIomyb+ZgykXoHw+K9BDjjMbDVb362Zwg6ArdyEeaEZbbAAtbgDNh8G+IcfHDAxjss6lJs+V46LpJpU+Sz4JcfCNJAfQVqq724urkP1GD5/z364dyf6AII8lEo0WEfezuhgirAN/icWp/A96vVOZKkV6Lv7ALxrHcV1+pROKg02HUGGBaujXp+5G3AJ1a4+7kBa/LfrD6KfohOzG9X2YtEQnFg7syF9yyBbyKYDW44s0xxIH4ufnduovHMDro76MALzM+Ehds6eqYohd6pd119RaczJ2njjieHHnj0GtieCqWzWC2kN9G4en8C2dgSQBTMVagI8IJwQnjcqW13987XYoji4IADZ+972WXdjlZr5620XtIin3LCj5EKBPO9u/Aq6gkDfvDeDg3sdMwmH4u6fKgG2VJK0L0uxr6j2oNOOMnmpIV8vQ23nkxA0sBFoWNBmoG1lAkh9ArmEZsYkzQgMlswsaZ1AlX4InuC2zW1oyWq9vFdishBMUrBkH6qVHBQ2YVvhLYhm06pEPXTHaTVwoW3UjRJNU9RZotTRhUyuGx7ZE8Anvr4Ltow03BTbPJZoAFmPfCoPMyyUx7H179nKTJIReW+KPBluxPCn394N332S5sXqhFKxG9Of9+XIzqcFJl6SADUIyWzVAZDvhVufQbaHHu6DE7GZyPDYRMHUwROc1mNnWKCE7Spr+MR/HYD7dyAZKeF74C+XD/288ikqo7T7wQmRGeyJFGOlr0Bj3+MIBHZWSF8C3U8d40vqI+5Jeg3x/U1QshvhyFQyoealKIm0a1KBDwNxT4CUx9axntgznkwFdhU39CPcy9QmDElDJh8ccwhM1JSxeoL8TAZetXbzNrlLtE6Re1bdfIJSYJZNSXKK4BBoC8bCumebSRBPKxXrDNPglt/zuFaOIWc8odGewry/TgACASXZQA1wEogSu2SGyWyTTqQlH6dtUuOzb9JX0oBmNyiZBqiZ6SlR9nwegWaSmmJzvrzEWqj2OpWZBJ5Gnaf+88USqvRFBM8APncH2US1nYhQ2GL53lkw1ZlzWglPhtZOFZb33DvegM+uPwAb9nXg/m5jK1RB6E0+zbZymykUvZLL59AmWoT79+bhn9ZTvOvkew9mIwzaOc+OeA/g8hjClsE6fOY72CANBTQYLuRpNP8wSAiRyXzw80V6P8QJYJ8k7a2vGqachJTJPaapIkahOjiMjbAcxFQOehGkRkpqfqJuPqZtN0EbwO6qrh3z344h6IK4DbGPODYwsHZIAi7qpRQyU3NuebAsxHQ9c0+LKaCIgC9n02mmc9PEJ8Q7ChU89hjmWGgYm0pFHnOKAFBuiDj7CraVDNgk4IahIye2GT5CYQFGG2q5xuqQm93S1GZSIROaZ8OrbCUMc8rbmhigYsnO3D5vjoCk7xKXQ87xQNehMnQI8sP7IJy30jYoLu1BxM+2LIYdQuZ4bL+HHZrPsW3XpzsBdzd3knUsWlUcLAvNqvS0j4+zVCoVc5wY6lt+2+e6SRN9WrK5efDUlr3XIpoyAg0pcboBsCqi8nmUSNL9M/nkGQaoLfv3oEQsrtANNUzeA3sq8LGvboc/fN1yOG0eajJx5Mum/Q5BqhxJhplKRQv1PG1flfewLqy9CHj/+9t74ImDyCbR5pkn9TzkyAdlAChy9Y/KvPHuexANzKfqKCmolyvwg01l2Du2Ez786mWwojPn87mdZJ1lTU7b9leaH7tVqR5sG43hk7fsgR0TJdD5TttAue7VSaiffB4cdRaL6ZZpdl+p1Fo+X4Cxas7Mx+yHbvNAaAt+JG2uTXZFLfa71SiA8lgEVZpqg6YECYS9z4j19ufttJ0GeAjMOjpjmN+XN0PBWRukLTBZ+6CPETTXNsCFLXumxfaxhLMpaOaXNL6mtlYBc5o8L7mWn2orcWCAvoHvNzgcw+hIZICUIY4LPzB7VbYgmWEtYnKWBdDRRbas5hLkyJVdp1lRhQkiFscSvm2fV0GkXISeZmrktOvNZIPF46ShYbbu0qPCBFBBApQn99ozcEqGs3OaY7QuwZP28/HMUvP5yZson6MB2zrNbm1GhM85BxjhZx2BtNrQZkrs5IsxoCYZknJOQQKaSgAqs1RTLpxttFjqhkpVw74ywN9+fy/85suXw9kL+Fume95kAcffWTWHP2XZsRTtGuK95Tr8/V174anDNOpMJ4JnaJxE2o0yTum0EV8qeWf/Aslba7STFjqwrqFZ67FDDfj723fB+685BRYVjy1QtF0D4Y+7PLbDtCh49lAdPnfnIdhWQQaNbDgwg6yECXD6606uTKsKL9WQBo1M09kNHctPdV2o7KAaRvUUv7Solqup3fj9ih05sHGcRQTUgl3GqLfhzyxxmwYUqGMhqEMRqnEeauhEGik3oIw2PWa9msGQP6wSsYGB7ZIYBgFo+ZlE4WsHiODAIQjlS2j/MrIVt38DU8DL2CgMYxprOgc1NOhXcck/Sj/tr9MS360Gdj2OsFWmwRNKBTO6eUtRkDQyKp0abhRY5WCoIHbeuXg16NI8O3CGm8Y4irTPO/oYAdmJgxx4Ew1AOr+ceE3DkrptURx/o95o/E32PFbLGVSTN0iDLQkx0Siq/w3m3V344Tdw7lqgb5X3dj919e0tKqPu00wDoUryonXqWYVnE1D6qAVq5V7fzg+fK3VB3NEBjx3uhE/dvBueOFA30Ry+kdZp77tkalnQnIwabJhnNYb/dfMeuHsb1oGgCDRQei7vtL/Axj6Dm4csVb3Ec036Q1tfY6w/uVIP6FwP3LOrAz6C77F9pD5l0JqMCs/ljsaPePYQ2l9v3gcP76EutFi+OrEhwPeYmhf/xEiagWYosJ5qTgkh9ZcU39ySAahuf5TH8G5xZptMEawljbTYPlG/5GIeGmUFKaOeJwrK2QndGJukc+bqpv3nycIKBWX6ukMsgMz1h7c2FFvpqQWP6jzzJYc0g6iTjhWqdKgMPSSXs2Bs1FhROT0fVcl0xePIWKrogK+b9DbcWQWRF0GSU1qwBWTJxBSCfAMo9MrDtLbtOVMx21iAC953UE+NQ6xFJYVkbEmKYFhxKphJ7Uweu9GBlA1rClSYYrZHkCHMRwTL6JFypXzXxif3bbvizb86RI+gwUBKpRKwik7gKWI+zT5W10kIPPEa9fjjj2sG08ff1vVhXNd03qq339TXs2LVBWG+dIEOgytQPbkA07ta6DQgw9lovYvm0cJfFRuGagOMms8E3VtY3EtaVd268VLM0baqNu/c7tCAUCeWuwD21UP43G3o1b5mKZy5gBrlNKM8EvNsxzaztsado8jY1h+CTUMlAzocHxm7wmAtQE7rci0luzfZyZiK4bWvZAYUDwol1Pg0bB4M4O/QJvqBVy6FJYVm7nW0tGZZaDMrVdjQ1OD//uAg7Kt02hHui51+VLSjSesmc2ZFjW65SxeLzrhvHNF2PNC4ZUs8FdGm8uk9T8Gu73wW8hW0herpIbyU8cS8xscjqNXiVJC8PMeDGxoX++YpM34iW/ry+RoUCxpKZqoG+6bUE8jikmVlZCdCUojPaEBPV85CpwnPElRNqKp+Jx4fn4jw/jRRmWSaTmVW2jG20MznXUWMaOD7GGAL7RTIw4edCt/OA+q89nkE6a4eLGg5mjjEmi8oJaHpfaXcM2OQSW7XjvO7m0WxFxa/4p2QX/E8awsO2ZmlvAJv8oGcTUHgmTyC5RCubWg0oq8fPnT4m29+z6e2ItCRHVMzACJoSpapGAARGAk4zTEJnPJ8Ak53Lo3UlDqH9tOSn0P7z/rQd84P8r0XBIXif8c8v0J+C9/YMFKCHRqtUtfGg544+4CZswfXxCSRlAFvMpU2aOqJV6mAqk3A/Pw4/P7rl8I5i0uQB4Ajfw1oY+fUmXUF+xD5b7hlB2wc7EXTUQm1EQRPdARxOxtkiFGcfW42Q3iftiYiBj8aDV9FFVjTNQ5/+JrlcEpPHqY6HGnLiAxMaAN3P7m/Dn9yy1Y40OjHqtEJhZIdG9UM2aKEb0OSPPkaGcCaCU98djzQGQzht6wrt2ABOiGWAuwehekS0+UtrEOpg+Y+coVBC8qgEjUahKpsZ7G0W3GE4FWhPuiBCXMilmpiItku6lTb0Kipka8orCIq/9jEdeYZC9iA+cDM/9MA5j2sJpsGPqYplNHOWLHTLZseNI4BE7sLQ2ok0gU922KTwwg1ReOokqVfiXyScaEeIGXFVCL9AH4wDt27GPLzFrj9BQv6Om2IiJ091TRosb6rGte+cP+jz37zFW/47SH5vYhpSkAkoW3aT+KAtAk4CVD5HLdf83EJnu48xUvHbM25T/3Fq0i1p99Nfdf/Rf+q01/4GqQ2r8UMf22qJ5W7F41QR5+N9k3UlXE+JWFj7nsoyJSHJAeVi3/lUDdjSkA2WEOn3L64Ez77g0PwrpcthguX5CFsA54mCiMIIOtAahXKtHOsAf+ANs+No8g80ZRC4EledA1chq2jVj5L+6PceIAvNDa+VUMypoEb1xbTUyzksc5EsHmsBJ/70UF438uXoE008BPAHU1Vb62CKxPG9+jeCvzDbfvhQNSLDqOi0TCVGI93tkpT++HY+3EL30N39ELnKaeD/UKBjf10oQZwHDYNAqh8AVleyQamKx7F24f9BMDDvlElD70KzH4+tB+ivXQMCyDN264N+3SfStm4UHM1h40Cq692MA8zk7fmZ9rngJ+HPrAeeB782MSlWaZs5nvH506UYwQFMOs0+J6tkTbWMmAVD9hubG3HhgV6QkTzPgUmD8yYfHw+D3UHrnUX9cP8lErbfcG9mxvdPnBgXxo4G+LuJWbmUO0dDAkDs6wENlSjxiceeujxJVe++UNXX/H6999E4Mmg59ikeZAEQykEdE5dV6ye8zEJno6dmvvQNbSU5/E2Lxloq9Wq4vOHv/KhoUf/5IU3ffmtndeP7dt8RtSo/jq+xLaU6ifesweBlGylAcfogvK2UCVbTQGY/IG8BkT7czSodxeywi54drgIN/7XTnhsXyUztLhuYpcSLJNtDdqZEXaOx3DD13fAT3ZRucub0Yho4jRrYuCoDXZC+pRxwlMNgyehsWsUdPLOypmayNZdNDNbluD+3SF85D+2wfahGvAwBClG30b4XXidUrdhbw3+5Fs74dkRCgPrgDzajgOyfZogVUGAYPJyouJAcxTs7YIZk0o3DaK4lUOm171oLUyQQdp0ybI9lFgmH2HW6hk0gRx1sycVmPmAEi2AzXbyHOeUBUAaCMPMrejOCWgaW9woV0LoCJXpPaRMmJP26ljODWUXcG8cz0a4dVSpNNGxHM0/bYLTtLON2LLcaCDzrSo7/TIBsckMHotRmwE4TO8l6vES8b1dYl2BM41Hnt6dA49YpeYwGZuGOFtFJdNIvQaz0sCw9LjYBd2nnIvfqmg92vwU9w544l0jo6OfuPatf3AXAdPatWtVsVj0mUCgRWeR6k7HJCg6gGMW2cRMQWQmgyHdAwT7pPsyaEpQ5n0SXPHaFNvla7Z87vptuHkT/c780A+uyHf1/SE++goOzDYVXdk2iwaaIVNOua6BoxEStsUMNdkGzisPehQ6lDPlkMYZGEaz0z/+YC/81suWwfOW8EjduiVw+kxJsWUNWwZr8He374Vto32GeeZoWh6yeWqeU8l+cGfeTJnklEi3lmXDHUyiUpQzy7jyYd4jb8wPtUYM28ZL8A937IL3XLsKlnfbAW3CIzDRxB4a24YI1x/fU8G82AND9S4DnhSqRGYrClWMvWMuDZ7twPFEgaaU8H++/53HMyL9JAQVQPQQDz75AIT1qi0o4uhxwzWWcJpEjlQLYzN0BTxpBZUZFITsnTauCFzpdl5PU0DAADB10TNxz8oyPaO20iWhDZQm4UaR7IK2ZxX3jNI+ssCaLYnBcl5aZlhH8/IYDThhUJDthpBW1dx6vYa2nygdQM8MUqkIwTNnwrPMYMrccDCD1iLcSpg1momBAGcAM48NoNe11jEPFl58NcRYoB3vspbjiIBz7NcXnnXtJ2+96xECIBpBHvM3Z4CJ1nn7wIEDBqgibAUOHz4MfO6qVav0nj17VJaN0jFiivPnzzdsk6+n5bJly8ySzuH9fA2BNT2vr6/PLDkN9By619NPP22u4evpl5W7/ukPtpW2fPcLxbVX3YRA2ocZdUHKVEJlCDOgEFrYiWKX4zzikmiVuKHhKq/EHwIF8nCTq+8QaiAPbxyCU5d1wHyyYTuWF7Swe0qhe2wf1PDJ7+yFp4ZQewmKJlyQZqXVwN85zTWzXxxS6rzYJ0l0dl2kh0xO2sSSooNsRMGDm4fh7JUltA/mjjjdUKL9BGY2iAd2V+H/fHsPbB2nMKUeZOkl4B5bKmWGmz3SNC/86Ob1uigmldMzMKlcqKuw9+v/AI2djzl7SfJpYz1FCM0aoR0rGqe54Kuh6xvLp1qVq1REJ1KPGz3cDInFQ7Bl7x0bxkHTCJeKdmgxmn1946E6GuiVV+MNuxOVJNH7kjSe0R3D2YtJDbETwBHjHB+vmwB5ipnkUXu0KHGy4kxMFKFcBkETE4ZTpJk6u+269dhzf2Alyr3QJzyQQjqdHlgxP9DUklcF081WLV0LC65+hxmhx6mBd42Xy59Yes4r7wSransmxwx048aN/u40q6Y83kp1zx4XTFbzcSnyGIEmPs+8gXNOBTyTp7gfpyM1yyffVzJS3ub11/7txlWl+cv/jwrC16ZiQN06TbkxVvOKm5e0PVEltlWVhMeZuGeNEIoOmbDegBU9ZXjXVWgTXVY0DgluJLP3Neou3mLTIWSetx2GDcMFA8Zh2GFGVuJujQllC5xNP0m3LRU6hY2iMNiy4Ni0dulOiopOOa6MNkRlu1zF59Th7HkT8N5rlsIZC47uVqE7PLCvCn992z7YO1YyjYDGhpvideUEc9oD6HTpxccvWSeSGkMALcwwgAZIuUY23AYH77kZSrqRMrxOCUBlwcrY8ai/7ij6qer1PPhAeVK5kaF1dsXQ2Rk7dUYb77EF0MCzRVMoAsar2LCNRmk+fObu3fCtJ4ZhrJLzLby9QrDGjBgbIjYar31eP/zai5ZAL9BEYXUzrzgNwEpjgfJbxwpaOgnGxxEoyjQqeWjsp1z4i4Uq9HQp0QgpQ5GV4buR359ln2kQTfapPNqbSt3mPjTOZS0oQN+FV0HHeS+l5mbb6Ejl11ec/8o7s06bLNg5EAUGTwZVXhJAOdUeeJvEgaGplaRu8z3dfVnV160AW96ThK6VgM3HaH/22dI8wNeRyGiBc/7H3a8N8x1/hrsHst+XwKzSsAH5XA4YXHzbqpPzlW9rNfDANTVjBB+HvmACfveVC+HSFSXT9TekRl4Hxplor7G/p4ci+Pgte2FfvcOMYkL1NlQ5r1X5HlGBLcgckiYT47Uzb89xSwXN+7h4gfLaki06jrVQgxBH0KjWULGsw5L8BHz0NYsRRPN2YHifY8ZoRoYtoGDCe7eNw6dv3QcjjW4z91YOnWwmTC/Q4I0Kzr/QEkCP5HqfYWmalfNEPJ6scZ1LV5nuWDJbpyTuo3NLbm+s/T4y9BdLBJiNVIE1lwaCJKpAHEszu4C628UNqOV6obz4MvjB4Er40oNDcKBagAhbyQb+6jRiDf4itA/Sj4LZG+illr86WolGoARfeWQc1o+shomlF0E57PZzBUl13L5G2rBOa+ZU1wld+Xe0TjMT0SHZBmQZgqgknpEkFYJXAmz1g1IvcEfiiOxnpU4oLD1lqBY3PtE7sO50Ak+OyeRwIgIgCXR0M9omACSgksfdUtF+3scMkX58XNyLj/Fc8ZqB1C0ZqEHcn4DRPNvZSw1A0jHeT8tMmj3oc5rYJsuNxROfevE3nr3xRWfEmBeYPanIAjKTd6Km0pmHxFzC2ZwCT1fG3MKrpvivWOwgAxcMRV2mx9KPN5dN77pIN/udH0fG9jff3Qt7ajQYcmjiZ3NhAp5cBqRwMniMAmbEUoHXyao4kiYqukl1cc2EsnGiNDISen1gfyUPn7ntEKa1ntHurBGIevXdv6MC/7R+Lwyjt51ClcgppRwBOEZkOKkSnIhEE8sqLlgO3QtWmumCj1mEfQecd5r3UaNUKMXGM00sTHNQPKR7pSS9pcDbqoxKjS15pTgP9NqrIX/5r0J0/lvgyfGFCIhd2G6GntFlDfytutoRq6au2BHalp+u9EDjnDdAx/PfBo2Vl0O1tBDV5LztnZUt8AlNQZubZZnuKXZqDzMzJ3g7Z5aFcxpTXlstztXaMRTkml3zzLBgdoc9h5hLrmfhXTsn8i+4+vo/+ARYdVyxF9wEruOSAImX9FwGTgYjAjoJZnScgYy2HchqqWLTj5kirTvnEwOllmYAuh8/g0GY9rHws+lYq/285OsYzF3aU9+E3v0/3tr1ycbI/ktR67hThjzRkno19RXJ8cflAnwLmfBRCUisalumWCr2ohreCXsrvfAX3z0M92wZRxNB0meeYoMf21+DT357Pzw1ho5YBCoaki4IrCmIv78SZYgbYXD22UDUE76vP4cTBeDVe1fA0i/Cu7mIimtCtHt1lMiUUIAnBgP45K37Mc2VlHZJeuf6jaPw598ehL0TvWgn74ISmo2IKQRpLvCckkwYk56ZHzlb0CFRWnkGgocNlOHfMQmrn6mkG8UKOjsCF+1jeyGZwSUC++NBjUk7iKnsmfUQKjkEuZWXQXjBWyAaeBlUuk5BtpmDPYf24ZLsndYZJAOS0/GYKrU0IVNBzvTYOXhwCN+5ALXeU0Gffg3kLnoT6FNfDNViHzTCvJ851LIFG/Bu7KLKFVJj+9KmgpY6bE/h2J1jhgV0IVIU3aCSxDkgBZ//7gBShjyozvlG7U/1PKHpchrxh1/1Nz+95pc/9Bdb2eOdCRfy7JLBUQqDFdscGVBpySDqtrW8hsGQAZZBkZkqJZwBTkqj0fCAzPvoGXx/fiY/lyXLTOk8kfaUJ59B/Im/fOX2x//okmujRuPDfB/OP9J+utFJWcilVXXH/VwWC5BimkrfzsycgIBY6IJy0AWfuX0Ybn963MxeS27IDXsr8Nnb98HBeieWqaIZki4UM9syQGu/tHvts8B5vNMNPKvxHlydeYgjLqRLPm01sw2wjVAwLYANzSN7K1CnEQRRrE8HkYl+dv0euB/TTjWHxmb+wcYR+Od7hlEzo+k3EECLXcYJJcZgd+nmvAHgziJNKJG+6KRKC4vv9CeKg407Bs6EoQduRRZaF+B5HE2PZ1zuPhQwnIsRaNAJM06jeeddHKftEUIqdKxZnQjQ2zwfwlUvgPySc6CB7LNmZnKx6gT1EDo0NGzHfNQ2ujOrJpunquaud47QmbnEDx48DLVaZOafgRA93D2otvWsALXiIoh2YyXd9TDqtyOY9BqAG/DB3McMnNAwgJnP2ZAl6jwAzospmZD2sX4Jg03ylqkQVhYs4ArVdj6HlSbMkm37RuNrLv+z+7YRWAwPDwcZG2NToWC7oQRSArStW7eapzEoSXBjcSxQbpulBDPJbiUA87luO5Uuej7uJ3BU2XNZ3P6mNPF+acfltOK6MSdSfjz5qcv+5pwPfvfrYfei7+O+AXbcUNPWhep8BctLpa5SZQOEnZF6hyWA5rgAqfOoytL4EYfQufSZO0bhWxvKUMwr2LxvAkZRzc+hmpzPFezYnVoO0CLVavB2/mSnKJ9NNE+n/J9xipQkbFXJxjhlALDnmWNU0agLqeqBeqMCz6DT9RM3H4Q1C0tmrNvNBytQz1GoUgltt522rKba7/RznysyrYOJtH2I+dgIBPOWYEvb401Cx5RZohXVyaYpiDYEpI6qfGT6unMLql1BIRAlr/p4YSEW/ZdCePFboLrmZVDtXGbsmqRas2lgYqJMQOIKZOBxiFtvaLG0yePiYBnx0NAQlNFZoN0xen5DlaDevQxqp18N+oI3Y1qQkZYWYUGzFMaknAakyNvxGwslGqexagz14Pq3K/EUnwHpHakGnRiOKnYn+cjOMK2/8NBueMGvfXtsG6vJEphaOWZYdWbAYYbnwBMGBgaUu4/ZnwU/FskMmU1KoX3yHL4vM8is5HLpoagk8Mq0OKBtBchmXTqs2EYrmSmx0cNP3XmZjqO/SdnjgcJcUFPIt0IGx958yU/6pLMJKp8nhklDt5XMrLCPHYxhAjW3EMG1mC/4xpl/6b+QUtP5GdIYaQFWeubT5TdQSThcmj3z7YN0lRXamDUL4NUIoiEy6lyuE2phHzxxKIRn9iNhCdDejgw6h+/CdUHPAgZ5vKJGN90uvPBKeOEZLux+EFU23ZC1yNHMfjsfm41ZPHzrF6C28T6jhuZorMa203DJW6UBKrHliMNUOJUdwZpaQ13VMDZhh4ijYHvyWsbdSwFOuRCCJWdBvTAfAdP2srGdo7Qbi9M+Y9vuffChj/0JHBgZ9+N5yu51UrIM1DeuuN3fVYA/+6OPwqnLltkCqLMtroY85kuhchDi/c9CY/tDoMb3QxhVYWyMusZr6KD0G39BwzRGsU536eRnpcJMPG/E/ehlD9CBlz0exfC7p93w489Ir3Q25IidP1nPejYPCJQIwASwMRv063Sf8fHxIHOeAUYGP7pPV1dX3Iq5SkCkawiwJfAxOMp78bV0LgMwr/N5xFhxG1y6WP33YE3LbP5w9MCbvzj8hypX/Kh/aacG08AkE3U4ongNwDG7AGyInQGXqG7qSxDYEZQCx/T8MJignKcRUqSCnYdWKcs6ZpQ3C/Eo/P66pMD4ffYKEGuCgTa14G49sEBLI/WDccrGpjdb4OI7TfxKygSRqOgnIxB+qtLCCz/VVkC12E63i9ljtgeQHZS4uHw11AOORp3ks4XnXUknSeqD0zmBGTAkjx8uRBbQQfNQo4E/6lsM9TNfBrlLrgdYdSlMFNE5RF0UTddFfoRyM30YtIfR8TEol8t2LjXHEGLQXiVKvaXKqmx8LkCtXoPB4SHwZMCxBKoQgTM91HUIEyVM4ykXAVz4BoCzroF6zxJj5yx0YZXKV817mcGg6YogSFrxlCovCjiDZ0efYZ+JqcPsHxqrwfWv/crwZxgQCDAkOLCTiAGFjrH3W9o2mSUiKPnscD/NAEbgROvEWhm0pN3RAZd0QnnNqBUzpfvTNXw9gSH9nAnBACLfl5bMjHnp1j0zJXCnc9m2y3ZeenfuBspeepe+BFg/9aJPxNXx6/GNh5Rw6JBzqasAR5bMm5n4ZOWGUUTGSTGeKigYZ5G2KhZYrSpocmamPPHMVDO2T+7WmXQ7ldKsSGeZqn22SjC0xbox17l57s0sBMiqaQBn43cQnU8oqCl25g3lpwF67jHSYxhMZOovaadVo/7m6HVceRZE3Vipxw4gA0Q7ZZw/etOjsu0oCCBL2s+AvJYqD9WwBFDqheLShRAseh5EPWvR8N6NanrOeAOTOZDk/Z2ar60Hf//+g1h5yQSeDIDbin0eTWpoS9237yDos5UAa2YINnfMPjMVPDoIupApdi6BcOU50DuyGYI9j0E0dAgaY6OQx/wKUUMw88Yr5dlOEvOZyTYCz1yJfW72OUptG6s23nTeH/9kg2CeqWBzEmf/NOvSgSPiKRkAzQdgkGQmx+fQMQeujO4GLF/+1q/39S5+/vkX5krnI0MZuCiXW6VjPYBv1Xepgj48tT/9NnroIg00pNe2ixQMx1G0Tel4a9SY2LBz992PHvjp7w/Rc+j5DKKcFmaeMmvoGH8BTLc5j9mxCLlSaMZJBeQzE+VoAaPWv2PBN97495seyfUt/z7Q8Hnu25ixhxFEx2vgNQRfltwfX3oViMAKyQxZw7HJNZEZwtaeeilItBG5V4mGP0sc07QnAdYm+21WhDnCbmqneSXmi6TnUfqB7EhTqZQ8N0WNbPqBLhaKfodRHYxke6nLHj5xy/0WhPhjB7LSmvnQjSsJDcx7bvsn0NupINYo1ufIAKpsG8XrLKbPLz0Fl2Q71GSgRu9yx9I10LF8ADqXDYDu7EXDdScMHq7AgX3DaEtEYEX2q2xSzQ0pBEOLwsCAdPN3vw9/9y//hqeXUgXQxmM2m451Vq02hQbTVqvCO/7bG+GX3/A6pqA+Z40SpSM/ApLxuKPqXkXWumBhNyxa1IWAOQ7x2CCU9+yE8r5tMLFzE6jKEOZj2TRK7CASmW3fgry1xU5f0F1h3rZvLL6G7J10aqavuRHhRPF2QtpmUCGQofOYNTJIEXjSDxlbnFWd6T4rL/qTefNXXfVqpYpXBEF4BQENTKOgI20D5uwjUVS9a2Jw6w+fut30dW8STqtLGzggBan2Z22pJM6MYa5rZculPDrjt786UFx06q24a0Aer7RQ51Mxu0KXSrFDDen9OhlByWrLyk4yKMGR1PqYB7Fpry01q+1JLyUp/DwL5NAkKacqM1AGTRDb7rgvr5A0JWwKTfXum6XS1BMJAXQLAugA77A20JlrFUKow9iGH8Dw3d8wgeF6sqOJKNuf3EzhYcJ2ENh65kHHilOha/FK6F52GuiuRWiJ74CGacm5944dAWloaAJ27z5geix1dfWY6QHoNQM3Pa0pbN4aBXDrD26HUmcXLFmyBExRNQX46PbarKd+396DMDYyCK9+xdW2wCudbtMdKNfqVagh4yNn/cqVi01fd+oUEDrANRpSpNEmWod4ZD+MIZgO79kGat9upDiDqC+PI9hS/Cnej8IQip0eOK19mDztkQFP2ZNIgqjspSM90tkwIdonbJmKWR+DEcuiS2/sX73q5W9XYfG1PBbnCRMd3xVF5ZsYTLPAyCYHmWbJYN3Sn5+1tbJkG5wLPnzrqvy8ld/DjzogNadygwYjYbAUERACylLJB2en1LoFuHq92arLAQ+cnYkQEWdrAGjVa07Sw2ZQTZ6bCombBDwoxfZWSGOilvdsYcufxUIWlP5SatfQCQdQMpTrvU/Bzpv/Dp0ntaMCqGGZWEBquZzxXhf7lyHLtAyzY8FyVM97jPec5nAxapKZqdgqJrGx8IZWLadR38cbsGPbLqggJaChv8zYiRSLSYO2+lJqYXR0ZBgBrWI9i6wua53KmkRdUiCbaGYI9iRlBteYP2+ePcWVP55hsVGroDpYh1plAoodBTjt9FXQUSIjfM2oazxqOJUzCqey4zYRkKKBvoE1cmwIJkYOQHXPVoh3boH6+DBEZuCLhMVgjm/bNRxd+1u3jm+VeSsZlQQHDmhv50VnWyNJFjRp/3Xv3/XSXLHvoyccNNtJHH+z3hj64i1/ufIbtJlNMwulncOg2AEmQ6wYKGlbsnPalj2tznrfN1bnnTovw4iIhVYb0m2SiARWnWKVSpI2D72Jw7I1aPI6iz8jxf6yCn07cfZN3eZM8dBWYX5JGnTqPGiVvlksNKBMb6Ks02s/rEY23n5HsVhYxzs1DRAwaVo4daHMzUcTsOv//R+kv3vA+b6dg0S7sS8pThMZYqEDTZkLoLB0NeROOQN6Fq4A6J5vNBQaQCEyM1Ta0IrAxGvGZriw0MK0mzveDilnv2nOAOKunftg/4EhM6gxdafLF/IQFvLWpeQKw0R5DMYnJryqn1KTM++TjgpImlxWuzrQdNDb6+IvgYapi6CKqn15ogx1XBJQLl++EBYvnm9CligUy/bkjA1TNuNAa+2M7+CdT5QPgbXqoo3XdhBQCMSj+3dDfTd69JGpVkaGtm0bGr/2t76yd5uM7ZQgKUGA3yvLtrJgwh5vBtJLr/8PZJvXINssvG+61fNpEzRhRFHlk//5fxZ8McuaZYMgogQMkPLl2Q4BrcKz2qnzzABHK3Z2UMlCffJAqvSiJ5lgnl7DAVfKMqp9yzLqllJ9Z1GZNU5X6lZK2lebLmzxoMy2eH7CStWk4Xu2CA223VNM7Vqvhjfe/vlSsfAOu63sVLM6GZ9yusVyQw171n8Bak/dA3kzuAhNr5oD0/elax4U5y+HruVroLRoBf5WQyOP6qiL0fRB5JIV+rQqFzJlT41YNXHMMTA9d9AuGcXoJBqHvXuGEATs/WgUb5pCgEK6iKoTeE54AIVUoZVaScoL2qTm2PUS3re3p9cUSFLVJ8Yn0LlUNwW1o1hA4OyBRUu67Ij5rqlPBjyxQ8kZJuneyaj1It7UsHQzNa3r52+QFa9tlIee2fDwC37pY1/elh39SIInsaoBF9aTBcoBEfpDywHhkCHQWblypbr8zY+8R+VLH4Emx88sFQTSRmP0jx/6z8tvyjJp3m7FQAdE6BPvc+fythkdijsivOFz2y8o9i35Hn7DfmCtBP+MVJPxaLlEeVMLpNkbs1BQrKUn9k4PmgJE+TrwjsXkfikWmgLiNG9Nj9jk1hIK3KISQJr6ggBLSBoEPjcL5KrNbQFmF7jSUBudIrICic/n1fCmH3ygVCj+pds14wBqwnfwvsNPrYe9678NnSUNhQUIlEtPheKSNcYJFOe7/CdU9iLHNIU6kLKfOMdVnFzF43IGzsZI7xYoO8SwmSEyKJgpNbZv2QXDwxMIqnZIMApeLyJjbNTr1A9aNt8uhzIfvskD3lwsSiWaHbEAVbwfza9EVs18GENffxesPGW56WkUKFbOVcvGPblztqi5Yo6ONGMyi22+kK11olK5/qo3/t435D0yNs/U/bMAQeJCgvxLSafRRa+7G1X1/n+ctYzzKEJOtTiaQEa66IvgMpMaBHKEyVhT2bjIdRLJSFts6zf9y/7X5Tr7/kOOnRA7EI11GlxSjiUBqGwL9UxUJ+CZ0oBAsFIASHndRd1RqThRe08JlinAg2YgVIKSpnriCZBsKXyN8zuo5u/hmWkLTD7pQgPHlETcEubjx1GFv+31aA+82e0y7EXHDQA1MwBKYiZWRc/y2O4dqJH3Q9jTBzE6PSLVYVRv67FvOOe8Y1ZinE+tU1gKDPaBTgoD2xoVJI0wzYZIzM1MQeAGQCaT7+FDE7Bj+yEzWoyd8M2xvygSoRiqGTz50akvzYAGLixF29HlnbHfTDaCzzjllIWwYEGXGRTZNirpOXCaPJfQ+mvYwhtap5iyZ9ErjNcbn1x4xjWfpB2iT3mqgWc1nNZbeaEzXTM1q+yv/NWfru5ZeOaNoHKvhZ8BiaPGTeOHn/5jcjaJeFZg9V10EvBfIxu0z2xVmEb8AChn/4/73pfL5/9cPjPrmU+DVnafAD8PWOAb2yb2JtV6SJdZZsIpz72Q1LkiJamtIziIUsfAgaUcOFUA79EIg0zPbBCyf+ZEAE6o1VVqcMsd/R1hbpB28BQ+hCrGlaJgxoQ/bPuh/Vp/Sn+UiV/Wk9cKhPz96GfnLeJ4OlOE8Nyx8TLsRJV+aLgMZhxRd34rbSX1DrqVIpI8U3NrbUwODZiHrHP5sj6jutPxEJpDTfg9mhiGY9JJqBhthuZnmI17ZqMRfeYFv/jbH5a9hrL9yTMMyiTeMS5vB+S0cGA67b/oDT/95Vy+88bnjLo+SWE2+uDXLv0iM2x2KvE6q/l8PBPvmspfDnvi9fM+et8/QZD/Zektn6DxROtaaDfuo3K5FkyP99u08iUq+xIAqtm73VKUal3GoHlUfHu6ajFAM683r2YrTVald3metuemXkW3tNmeTMmGMJVDNS+Yt+Yq9KborakjMwicLEfPFAVHSogETx8CqZNPwevc0iXlSQvTEHeFQ99UVwlOW7MYVizpxVbGDharREqyfNwXIdUMrakAf21VJvKKL1/eB6tXz0fwzEMSW9fcBqftu8oz2QQ8+Z2pggV+22l929bf9/An5DiZbmQjn0Aexk1UeH+MQIID0dGEEbBH+rK3fr3vkjc99Ge5fNfnftbAkwTzcHWY6/rH51//yI0Us8qAKRsPGdbEPZeyozlRI8QjPUnn3OGn7/4wanfb5BCMHTmrnYDwtjd56DWPSCRYnQNPBjm/TL9QusyKbS0BshUL1dmSLstpAoSppzKzBNVCK0tzTd+DTpjFOC1JctWsYp/5bOi3gq23XKeGzG5ULr+ezv7whIDo8YgEFPN5ROGStlEJqgzKSQGJ7ViEYCfWI5BbuWIenHXmUujpzhlTAhdg5X4gfmabIxac+mxn1nQFhEwR+OvpzMGZZy6BlYvnQV7ZbpxK2xAll8oW75Z+D14qJbbJ7qmCVAOya+fha/7wTz8/lB2rU25zKI5T32XmeM80/Xbu3GnV1Su+NLDqlKvvC8Lie+FnXFSQf9+iNb94L5kpWJ2X3VQZRAlYZa8sFu44QCKjGr53wyuG68O7r8GPNORaRMP0THdPlThujAhyl6wK1VjLk1id1ylzEzuJJDjxx1ZSS7Mr4ikACXlhNTuTRyAZc5qBplgmg6rKgnBybgL+OgX4rVjpyZRimN7GnFtPS2MSLcR6fazU+706HaKVMmqI05uzsPWxVvuPnBWqrZ2g3TO1ABgArdMgk2J/KguwfF0sPJqxP0/bHpLQ1ZU3bPTw4Cjax2JXAELfOYsZbMJkZcFJlX/UrjUsXDjfDLNHxTWwFuCkQoj3tO41Ld5BPkO+P5jh7tLZqqFea3z4nCvftI13rE1Pu+HPzvSk0bLnEDNQWpJD5fnX/eC8fOfKW38WWWdbQTbavfCcW1/3nmf+29f/9oxHWHXnGFHq+gnuA7Uac1TYjvk6s3zqb1677ez/7+4/DvOlPzOPoegPRd5dBZUWczkmcaA6gTGneTnkg6RbZ1ol9yp68k7g7aK87o4n14mgfEhqblKmbS882wtQgr5K1HThHTLniK6nft3ZRXlf5q2BoXk2MdBcBkC1Dr5OS8tn0A5aV7ktiEX9jEcUUK+0BEH5OqlZjcS6bJGy17STdiPqyeub75sAouxiCsA9kJJ7a2iXFrqH7Ymk/XaCVVbVsgZwO4BDAAC6xSul7K7gEdUVAlvYKKg/AOFl9YwiPeEsz/SoeToPZd896Z3nznUjkmvnOItifdeLr/uda6QDo0W/dSOtBujgkCRaR+ZJAKqtvZNU9p9fiaPxd33tzxfdxNtsH5Ygme1gwCaRVrZR+jb/7d8nvo8F7wrP/PDs4WqLSeqEhqKyTE9ng+wZcloTEg3Njbs/u8luao82RwhA5g6Z9CZ2MtBp/b3JudTEtXyCEvacTf/Jkhbxn8b+6VV4hXZQTO769Clhm9udeGLNNpPMXvP3SMZyPuRtLakCAt6O2vad3IcPTHwmDW7cMEv+aTM+p9tWbls3zA/5oDmfZgLVhvHGqXcwozzp5nekaWuZHTPDaHIKmOHAAseezYsMbd1+4Dd4lCDpOCLJ9t3OCqvyBJxu8A39/Dc88N6fd/AkCcKuz73xgwfeR40L20FbgacbkUqz04kbqWze07epHd72G0BzLLFarWyMIUkaV9Lqs7SFpuKSdVKOJeXJMsns/dNlqrkOZO2WbWHM8Rst7bX8YMlM24ivn5kuqal3OYnSpL4r/XkCT1pPhg3TjU8b1kPNYOxiz4ykM84CQSR+WvzksThzTLc4V2fuFbW4noe5svemcQbT90mu4e6RfE0cN8y6vQYcOOlU2niff1ft3t/kRWTGAqUeQYYpZn7mGT6tpu+T3QZnOxXpIApJS/5FmmbpbNiY1PTHMe9K75Kk0V5LYfTmfBUAj0JP71arV//mwqvfso3nESKR7JMrMztEZKgOCds6ESTM9vOvf+C9ys5GOSdgBqO+8bK3PGTsvwSIIvhecZ6CgxHaPlKwPckzf/emrbpe/4zfgd+4lLchMs0EjUEw0Vy8GUe14JxewwGAozliBFhJ1UrCdtphlE6ZP97iIVlbp+9VBZCs6+Qe1gQRp8iOavnEEys0JVAhM2Ydq+8kqbRVtq4fTNm6DJuKMhcfoSWaQcmGC6UM06n1IKPGt1Nesvd3R1WqLLl9zS1oOsxCNz/GP1033cuebsExDHOCYSfMOI4tkGbTqMICZKrXtkte9dtn8racwpck24OGw2+y/dndurruQwd+aY55tpZGffxdD/3npTdR3lGjw7bRbIPE+7PhTuYejr2Sh/68j97/jBadEKiL52gtW1pFGeNtcYLVeoUKLu2fSrJHgFTAfebcpuPQSmQoUvL8ZLu1Wp+qH/KibNpb3vNkoE0iHdiwdUgARe/7l94YrOHNlAESX+TTcpsGRJ0e/J98Fkigkqp7WlVXqWNJA5r9GLze5utBch177yWQZtPBKgqnJ3H4ZCSlGSmxWzXdw7JjVu9j8V5OJfN2J2VsnjbEKbn/6PDE75FdLTtyumSeJFKtJJYkve24rkhFff37nj5vDjzbC+XNBb/4vQuop5JodIzQNqnvElS5keK8p2/CYEqNXFQZ+Q3ZWufDNAtlh0wrRshqszvRn+/BRzIBpZpNXTrdtMvz09wvbdfkPcmZLQLhM3WH1fjs2T5NKjFPsGNLZd7nZAixz6z6jvrgx+V2CkBLAH+Fpwwxv7YvoFIAcmwyeRBOAU7mwydgKNkagx+ABUw+mwFIN6WFAZcPaVEA/dUtWGi7gH0uIKljEkQzLCJ7jzSr57xmlktL1zCEYSptuO8b697yu99wqrss9am4RFnRW/T9JvCE511786p8x8r/gFkk6y4J4by1IcwmKXSvuJXCuuQ+BlOKmxVjBrA92dhGsyyVwPQrv7LkLvxad1k7qP18hu2IssXOIjvAhwMgV1y8rVyBt6WypLzhmcKcrY2p8Ce+3h9rfZ3KXM+JUNKuoCDFgj2GKH6G9uo7yCoACUtWMD0U7likkMvM+47sE43i6+U5KQAlZ5Jlofw22obLGNHQ9JYnSNKApwSQymPpbQmw7i6Z5bGJDBdhVdwXQN/gJ0yTl6qdeiNU9wRIdeJt9ye78VDF7i3b9/weM89Wk6NRBRaV2F8ntwk8l7zgU/09C8+5FWZRn/bF8xRcf3UeLjk7gGIeZpGoPsqrgUtv7M+q8E6tNw0WM023NJ0RZNdZDr6vj49/QhZwYqH5nCizWjhmNIOOENfYOqOncIwCMFfU7jzPVM0h5a9vFhE+pVs5c5L0+fQoTq5OTtbp0xnsExKdhF/J85qIBpx4IfbZkbF9qlj/65evU1vlvqYYIstCIXWSVeVPjDTbGv1a6pyEETLgpHQaSFg0QAJQ6Wd5DUIBtPPmtzMpmI+soPXXPcoXl2Df6oI0O7bLwH0DTmYjim56+/tv3ErMU85RRMIV1cUsmiuosouR2BWr7iZk6dRX/8/ZBJ4kb7o6B4sQRAsIni88f3axUMqrBWuu+UjWjsx5ynnN3wAPa17fmpkIb8OnLv9hrPVdtM5A1+Ff16pWXvFVDnSElqUhW5aYOPg7+t1Sd2NVOWGarCX5i0GG1WvIalK2vnnVP+EBKUeQBMdWDidmpLL+qpPGORPpyDbayD7//frwhux5TQBqWSh8PL2TRkI6MYU4C2TJpv2MFuwCr+byh0xsheJLekm8lvKeEqTieBLtnCwg4lFHakGzhnxpo1WeNShIFcjMtYZ9ZhqB7Tv30UAhILtkkkj2SUuq4PxjNkS3oYpOx9+ITqPZ1sPoBeeEqL4njfYZqwNYvvDkVyopgSq+99I3P/RLHN5EIuZ+Sm0TK6UVZyNVbu4o/0L16qj5lvxxadCbnAs6B6nJiHUriU3RM88US5DlTK6kJeVr8OlIc12VuWsqVMnTz+R+TTHRXGfETVLqPNs+lWp63okWGnGpcBTbJ0vbdFa23nEHLtalbjLDo9WbZ+hm7yFJ1hMuHT7ZNEnVOK3SmKNNLJcb0SOlKX1Bosq3ZaGQFDK2X6VClrjR9ulL2nn5XPoFOWoOQ5/OKI7vuvQX33OtDJBvNV8RrUvmSfvZ5klyztX/sbpv8QXfnW3s82//oGTYJ8ltP7E94kYnNPznDxpQrcMsEj08euCJy3j+Jdco+dLAdlCe9iQr0jt/yR9t+B6i8hXKsc5qZEdrkm1zApsZ5pgtPr5hT8p2Sw0rsy91fw+CbB04UiUR9SwLlHxD8QDZYynp0ZR465WYPly5e84s6iRCqjuNupTJmlu+9Kbgulbnt+sGRHn1K7gYkvtUSBV5RtsGLYFS0nppK0wYZ5ahJsDK6n2zE0m3ZaJyX8p4rpSZ9sMXQp1tgRNrkJYttzhmYlS1YKLyBM+uufRrn84g4NGjknSOjIx/MjuqUovQJchWWsd8zF1Ide9ddO5HZht4kt2TwVNKT6eC580yhxKQPXTB2X/mVHmTt5znxExl5ANL1pnE3vnaOLJQLg74oQvK6xxNf82TVeJQkvZRuXRnulsmd0gekyESIBholgnqhA6kl/au3lbaCunkQ1mVFyQk6fHkul/HcZKWEwie5DDqyYAnrg7pUH2w7TXtDnSsuWorZFV5esGZtYe2QOesvTNjAxLsLWGlCQAnbLbFnVsAZ9b2yGpTzKFGqrU6kqxysddNtEEDNDm1mm2syQ3tqwWp9KCpYdvL3/r7xmaWnaeoVYo4ZlFu0/K6D+39JRXkfwlmkVjHUfvyRQ4lAtJZJUHwmudf9+OX0qq0h1KeM8NsxT4z447Co3/64rsQOTYk5AG1CuORF6Am2mUul1lpBW52D/glA5O/L4hyKGlrS2ntELX3FgXeExGVXgd+p4SFeubZ8mkzTNmEdOUzXnegQdnjD2YdR1LaAihJac1Vf4XA8el0HKQC8DbImfmRZNeTnjncSyduuob3y+u5a6QFW2vrTHok8bWyR5Lc51TuVLMNHkyTZyTssumYu1/sey5x+sGn07fgfl3cw/fnt+dWKtWU7ZNEBmvLmSUZPIkNSXXRdtns+QjMMvnwLxeOes6Vl8w2FkoTwS74HJtF2N7MIkd0ahXKRMKNGn73bzCg0LfOuUgMMw4nqbXiWrZ+ajGwh9nfCqwUALRR4RmMWW0HSNR3CaI6BbTOFwH+EW4pUijKN5slknV7riQiWROd4B0nhIHSaPP5pqKlP/3lN+Y+f6TrjgigJFUIbsCXeDi1U9mBLGZa0t5qlfLuJW1pa1U9YXMJ+uk2rSqr/LLM8D5/Dv/TzQM7yAKsm1rorJpkBwzhNKdNDuI8xeelWfW2nXvuynTPhGzPIhIeGITZj2SoxD5nm+pOMZ8Dy49aHGH5IjXrYkMpL6mrJ5tNOO9JuDGTJhVnSjFXOmA144oeevz2zyS3VCaonkYBSnrrpEo8nwjS1i4ZKzPNRHRKffdACYl25PU5x0S1SI9ZBlwmdQrk/PNT2ZLUmyZGqwGkDyEFvkpllbcZlY7MVB1OHv7Sm8IPHO3ao5ZYGnAZs5kMqFvTV+ZEjOjMSAIudpvVdd6XxhyvnLQFylb2TZYEcFvtT4KZZdpMec2oUoEbki4JAUn+aUgza3t/8zfVWDBT1pCexiSKom+8/f03bqNtdk7wiPIc78kVVjJSEmKdJMh+1WxjnxzzOVmZfbGhNOhI50coNpTym1i/nA6ElrJxc848D6gDziO/6d/fP6yj6C4+j3bmxBBgrMULZcif6cuXb8iBkdBd68o3mwhE2lULZ4AHTJ2CZ3fvNBdOJPV0W08dqLPpy5d9laTco2Vyql8md5sZ6cw3x3vig7ei3fO6yVx/9CYfnD0U1FWQBVEzkdn0OZZaA1+i2ibPYVWdBxoBgKyCo+RnUCDTqJPGu0my+1p5L725XEMTsEommhju+YpWaU0KWzYNKghS6SnXGt+U4UpUAZnNMAOVKjwJsSECT1YxL3vLI2+fbeyTYz4nK7MyNhQdSgtWX/XL4Aobfp8g0w/evKD8ZvJbUUNI5wYQf4HZGV1IozQxg7N42LqO2AcwUrl9llaCrQ8uEaJA2dOEJiTvyC25Sqz6vF+5+6R5or2j8ndOmxQ8y+RDHjB1GkT5TlpC8fQL2TrJ215qBZ6BuupIds/UfWCS0h5EA+udV8cPoqrtPWQhSNrgRPVOvlIaOAGyAJtlodlHSnCV0QCpltMWcJcanajxmcKduq7FMWbTWbOBWRrwDNxxe8L9P9nwTVoSY+FRgaRtTaqJvHTrmhloLtc5q9hnNuZzsjIbY0NV0PkeuS2dSNyAyf1y3Q3KrLb85Fvfwg8/xN0YqaKHZtoE+2tXRWw5tIVTmpmSMpndhrR6ziq/OFtDM2AzQMYZzUuyX8kjk/qkMg/1F6XS69OgZs77zqFKuRbTdEwFPEkmDaAkbUGUXj9AB8DR7aJTzhMZ2pP+llI1sR8ssRXZa5o93jat/g66mfkplYBYNh2adSi+heLC51rSlqVbNT03HaqVfr4sYXwOhTJFUXzX637jIz6sjFiMnMuIhFV3GThP6iTHJ170hntfM9vY5ztec+y6+JXPD2eVKo/fdfXr37f9pdRgEWByeJNz5qUGdOFGj+eccmq8vu/Tb6OxKDZowcDygfZMUdrDs+UtBXYKvF0TtE5dw2CnkgsBRN0RBLFJ2GSlUiq9na48k5p0WmTdyXAcH3SvALK21eluIolxEnhmve3HAp4kUwJQEgZRbIMeNnMK4S90P6roNL2uMjFscaufyu6Ddr84ghDV9ACXgWea9k3tYM9mgmAz7zudlzNjcEZmymBaJs/g+YxiMy+8PceO75l9fsIEbRHisTnNtXhdzlgl7TxHNC2IGTPUDPcXgfWRynvZMUrpvMTUoOwkc/xuLg2UHk4Tp8sWHnt/mma6XKnc5F7eVz6ujNJpQRWSt6Wdbfny5UGp2DurwpbaxXxOVmZjbGi+Y95HGDBJCEipIaMlNWauQZOXaDlKE2kWulH/BjMwKveF0OZRoHhwDQ5BSm6Sss+DEtqMdqVGyXbfzYCrE5bJnn4twgabW3dQKZVeKuxp56lqtoWBvyxDTjyZSJGbpAGZDmHW2dlaWX74WMCTZMoASkIgWlpz9UX4cp/O0n4z9QWy0YCHXgM44q+dZI+1an2VUDvoWCBVEfeh7KRxWhS+zK+pFU+YKD/XjB6vnHPIPUe5chmIApXKC6UEk5XNLqRa/mxaQdiY/Dr+hkbHN0j1POuU4P0cssTqPFVmO9rSV1eh4+81MEvkaDGfk5Xz1s6y2FAVXrHshX/Rx4BJu2QsbtbEwuYY2b2zPrTrmx46tJ03yaya+ycMUYJWytWj0uq6rzeuTDGo2kWyn3/S0elto1qnQI1710mlXbqQfLl3xd5zH3dPyLJQkNEE0ydUp8jL3lJlt6n9dDk8NvA094fjkM41V6ObX/0KZHos2TtbB5MJd1JTzhItQ5ZaXc4fiFVuVvGTECcAtgfx+VqUleQ+6Z5Jdo4kSNluUp54p27IsCaXElBtP71UiiQPyKaF0x8ApFvjbede8fZHHDCaA1wBSbIhTHIMSt7XM//0l8IsksnEfE5GyKE022JDV6EzyTnusvwCWkzgp4Vab0rDze89exuSg20eY1TzpGYsOsPRvMNJlGlJBvx5oi6Y56TqW7oc+xLLrNjoRjZeWUabyJrAJjSuX9KHYNPoEwzZ3ofe9HAcwsDZV7Re9iZCDGZKlQ9SqBJPz3FMz4HjlMKal38eFVJio7fQtk79MDOo55Kxj1oFWDR09uP5nxb77Vx9RinW4kPp2DG22Nt16HisHf/T2SB5M5OGd8To1DOSwuON2TR1RmTVfmCbDZ3jgpj9j1tXrTL306kMsLHz8l5WnbezpiQsoOmXyUdMEc0MqbKjm5M4L7vvQshMh9VFt47tWcesUd8nG/M5WZltsaFB2PHqFrs932LNIDuoiBySEEvyXZL5hQxC8get2JpqAih/xLXfKU+8t+2L8DoJtJAw3+R5zHyTLpiuBooHisB5UE1pSWWMf64jNO1PParQBHBdRwBOJ+vjUF30pevDv4LjlGkpxaTSF9dcfR1Cw6/gb2vsgE32yNEUFI5gqpGVarSTxsr1sPA/cKELNusiAjPt7kN7aU4g7VDJ2R5NryRtewb580QZYNXFgpDBO98zyKsptIy1AM3YAKlOkJfiL016+Kdjeb1Nsu/qKX6KC7K7r+Jnu39NeaST3kdSjarV6z+UU3JIz7sEVBmw7diPKT7XvvPHq7EVuAJmgUw15nOyMrtiQ4MrLnnDTf3UcLEt1H0T3+mB9rHDr5Xoev0RVnsJ5MJAgIHQshK4goT5OdWZr28OfdLssLfXBlKTg4QBCpD2zh2VaHf8LN2kXclV3eL5/BoJ64UsuOvJQSgxTQbNeSXbl73YDjjJUaTiX/nSm4JjVtmbng/TKB1rrv1855pr1+CrfxxzYGvLk4yeHJq5fVSuaEKgVEhvHIBwg2c86uZCSD6G/Ij2GKsJibqQgHF2qDqp3vB3Sk8u19xKcxJS9hsLv9BKkp4efk8KFI8kdgCRhB1UKo1HGDjZvsm2ThlLmB3AAvebh3XNP3XWqO9TjfmcrJAqf/HZs4eFrl7zC79IS3TeKeq8UKvVAvbE035ep28nQpn8GKK18bEfJsCE75f06HWqkwM3AXq+G7NoqB3qucuS+iM1HXmOX8uUU79PS0ul5IpJfUsx4CxH5tNYlRcqfco9xfXfXUZAST8aZo5iYw3LLFmmeUTQtI+igeI/Xg7URUfrmjlVmZGRQbrWXHNDect3Po++r3WYGx/DVxhoBRvW9uIwnKarUCK7AwGTwj4CGZCLPfvX6RYYkg9t5272iGe+UJBp6JLikPYmJqEd/kGy9faxxNzaUz/3xFPpyroE+uRO7lgivD8SBYfu9fCzT25g+6eYBdJsO/CUJdkIVVoHqgjIxVnBPo815nOyQg6lbbtj2H1wcuxlJkUFuSsx7/9NzngqY0GpcRPxu161JzsobY/ueHBbad4rHMgEptzMb+ks04JoiHILonBCwvQsfmpxkp2IkStCFryS8LxWgAmZ58mnaWgCT5U5UTzL132jrWZr8rEJASdqeZ8u54K/uuW64JjtnEd5xszL+JbbXo8q7Osxs94BWdBolwKn+nqQlNqBTgzUOrU/YaIm87lcaAGqOsM8SWFGxkfAF4AYk1A0Z2yv9PviBFRj0CkjeOoVhG3HFWHX2CdgrkR6dAZNlXlU/Milr37/ZTy7ZvYZzEClc0KG0ND6m35/9F505p0PJ1nkOJ+TFR4PdLIyW8YNJcffV2/sOpvW+TvwkkWCKDucpEnm8k898RSWrtVmgxtqEWrkCzOIhl6AqRYqNpe/lPLGrT40Y5tfCnVNS5Xe3SYQ+9PXJ5qaJUqCYWZIie+EophiwDEDp2GbaONEN8qnv3y9Wg8zLNOqwreTrjVX39J16rXv7IDcPGxdrsPX/Fds9bZyd7DsP8sQlfcIWvpusz80sabWS23iTpX9Ec9UrkDwNfzxpBkgCJL72vMC9zybFYG/fyL0TE6XLcRc6Nw/bZeBCyfmfz5tKvDRBDasKvDHubA354UTrYZpwT2PZKC8A00fqC0rJ7Odl6ItbjaA5/HGfE5WZktsKAXVU97ztgRP/jb8/WidOz3QOn9fbNQ3iDu6gTycZJkAAGRjJ5kJpiAyi0q6BZNUzZ5wqU671Ng7SjLrj4ib8aMdkB+JaPgrpSNjcrIVT/403uG6iVCtocGPTwR4kpy4yY5QaLoQsN5647Ef3HJzP1RyFyJirUNgWY0ZOIBZ3I/5NoDMzBU+++GZ6Xn2x3mshHosWmHGO97f7lukGazYL3R70yoqq84EWqWOx2oSH9mNisfl3b4LSFOWf5bB6NjGrZJUavUNkn3KkebBqvHAo8xnKyip8fOXv+Skg+exxnwOjmjzm9c7NeAlVf6ZbbFhoydTejHv8VuYwUHoW+BCSzVeOphIiIU6Fd4AqI6jbUGYAw5NanobBkzdPPISs85ElU+O+EKf0bQ865MAptI9lNJfQhqkxP390rLQFNarjCFLqPJ+MwPg7pSt7sZIvPRW3PcIeqO3lkNYfzxhSMcrM08JpiDcv9yBYPZ76Y9//OOmCf7Yxz6ms60jHlN8LHtfPFfR/fgcFp4K+Nxzz9W0/pWvfAXWrVun1q9fr6+//npzzoEDB8w2rctjeK7CbVi0aJGm9UsuuUQ98MADgEvApaZtfg7tZ6HjlUpF8fzt+GwzlztNTUzzu3OS5WjzHN7C3f54ioh2A4ZwxSQHxove8ui7Vb7jz+Akyo2/U5x02FIDNfate2MYHrPgedt9EXSgk2DNisCEK01Wdh/Q8K0fTk39n26Jo/Hf/9qfL/oMfQfUanS2d5J0KHHgvXQqkcgyQOtUVmn2ASorVGZoKhfeprJUKpW0K1+0bcoZljlzv56eHj06OurLKe+jMkzrVI6xbJvyjJtczoGWXEdEXdE33HCDf1dalz+3j87hehkrV2lTPg1Imx94f6b+6+ONC50pOSEq/GRFNc3lm2reFH0QBsisKsDHCCQps3nJ34w/Hp3nllQ4qLD4AkEFhQsTCRUe2mYwZSFQpYLmzjFASgVRgictqaDyfhJeunX/nCx4yvdm5ilHXZKMRcSBaqnCU6U1Lx4Eq+EkymRjPgk4N++K4UcbGrAVHUEEnizlKsATm2O4++EINu6IoVI96u1mSWxobhU4EGCQzKjvLNp191RsmhHOQt+Y0pLA0k1l7WdjpW1uiKnMEYjScVrSfpJsI07lk8omEgK/n8o0l20u87yk+kLg6eoN7U8hWnbbXeNJDVa/INvDSZ6TjrhJy2wFT5ITqsIfTbRUSUSuZTLXFA7HJrUEUmaY7nwtmaloFQmIzQfnVtQdMwyURBYeKlAMorjuWSgt6RwCTxJXEFOATwUV9ysGTmIGVKgd+1SCfZrjBKR8Ld8kM794qtcRV0bhifdSKBRi3IeWgGAATpJMJuaTgHIPes33D8UGRI8kBKRbd2v8RQYgT0VWWiq2P59iQ5/ZFp00h1IQ5ldjQ8abFM4Eu3fv1sxIaadr9Fh1ZxD131osNYOo05wMA6XywyDpypPCckab1IBT2dPMOIl90gG37TUrKuOcSNaoHBM1+1x9MM9iNuqAz9QhcOTG7fMEhQUBFMBr52kTGNVTPpdZZ7b+z2aZbQyUVXhmma2MWCkmyUKntmKovC0A1LNPvpYKhWSZskBRIaMC5VR5nwZmqrIF52PUsoMAU279Sa0iEOUCz8IMgpaOXZh17iNN28RI3LziBjCZhcrYQuntpbhDm5dhL5wkOVLMJwHnA09F5rf74NHBMyukov8IGekDT8ZmvZWc7NhQLIKrETDNOgEpgSaBJ4Goc/qxTdTbPbND3XFoE+9zqjutsvnJ7CdmmgHTFHhyGeRtKqPU+LMZin5clhk8ZZ1gdZ7EkRDt9kuCYvYRiEt1nqs1kZksA7X5pFOk6Sj1f1bJrAJQkV+J/RuabSXyfKGm+22pxvO5spWTrSPbPllYjc+yUSpcXNhoySBL63yMfo51pt6LCrMr0CAYKB8zaaB9bqk4Xdx1UwTGc954xpkNjWFW6ioume9PigrfKubTq+mPNAxwSjX9WIXuweo9AWkWiMmhdPLGDVV9BJwEmPSjPcw83XfyGkd2kOVsaNqAjflVztzjtRaejZUbYRJZvkiy6jvbQrmccllm4JQEgjUtd9zfR9abLJkhhkpL6Y9wYNpkfmuznjJjzWaZVTSZnUgkGaqfcijJeDfZGor7+FaPAFPYP81xYfP0Kgjtl0ZzEnYq0TqrNqyys2TAUskCKg+w44hYAa3LY1zgWYWXUxYzC5U9jph9SoAlLy87Kqhy0jZV2uv/YHwPVWQ4wSJjPgnUtu+LzW+qTJOcSFMRcjiR116q9ycvNlQPf+VPu5YLNR4YSKW2QMKT//E6M08CTTd9izmPgZOFNRYSLkeOeSq2s0unEW+DAyhJAKT9/0jCjlWuL7L+MQFg8xiDKNXBViBKJIedwmxyE05irr6zFkxnlQ2U7ZbggC99KM08syLtnbTJtk7al1XfqYV0rbUBT24x6eNLVcUBKQOnYiM7FzRalzZQBk9oIaS+07MYPHmb1oUa5r2uJM6BlLofgyf3MmKWIium3D4Z4Mkxn8QON2ccQjMtZCctIxPdfcDaSZch+yRApdjQB56cGhgfvyR5z8xTCtk85Ziu2WmQM+Dp7aBC/D2lHdQBpgFRUc59w+7KqTlfEgBX7r1mJTUxFqoTrcCTSQlkbKC+w4vrX031UtZfZzuV50r1nf0csxZEZ5sKL1mmMVK7n7eTsNdOePF8xlLLJWyeqRZQhlewsBrC95TAyaFKzDqpoNE6FUBabt68OZV3dA55NslplGWfJKTC02s44OTtlA3LsQlznCqKtH3J0edl+Es29pP3k62NPfEnUshx9OILA2/fPJHgmRVS6clGeu+jMSzoUydt3FAyp+A38SYX/i6teo9lvPMcuma+vxytyS0NQEqbOpmIOFSOQNR54s09qWwSiGY1JMFCTVknosAkgesC/bKaHokMBcSFythESYzt05Gb1LtJp68AVs9Y+Xp3jnIYoBxOzArtebaq8L71gYwd1J3n12U4hIw7cx9b3dAiVo3XWYV3S38eFSSpzjDrdPFxWc+72aYCyeyT16nAulg8H6Ik4z5pB6tgMrbPqexazvueVd1drxWVjTFk4f0vfPszE3AChUCKvN80Z9F0yFRV+HYyNmHjSusnmITefdPaLgJQVuOlmUUK7cPvHSPwBdwjiaRVXCiXC6m+k7ATiU1FbPukMuhCm4xIFV6K1LBEmedj2dM9A6U6JxmpdCB5+ujisFuZ20hkHKg8DEn993UoU/9PKjOdtXGgiUNOtctcL3RMMk1ad62aP4cBM3ttlpWScHiHFGaiHCBP4EkFjlvvbEwdgSctueAyC+DCTYWfYz9pn4ztowrDNtBMzyMvbC+jCkn2TumUYIbDrOdECtkb1z8QwZe+28B1OOlSqbowqcETD54swpHE2/67uC6ctKrZpi1U+BR4yggNVuXZ7sng6RioOY+YKDsuOSaZllhmTayy7OwhSAFHl2g2bbFk1Xn3XAZPLcGTRJrQpENXhiuSSJ8GnyLqv87U/1mlys86L3zG+dMWOAX9Ny0cO5TkMRYCVAJPLhD8gbO9KbLBw1xgXByoAUhS0/l8AlX2yrMhXoColuEjsucRqVfsPeWYUNrm9LlAarOfK5GcjCzLNoVnVzer7fEwnAQhIP3Sd+tw5/3RSQHSRqThAIImjcxUrp6sOqeHCTRlKJMZ3NqxUPpRNMWAG3ZQznUltQ0uDwRWHAcqegaBKzvmfLJ7UvnipdsHMiaZG3fWmLKOURmuJJmn9MjzObTkAPtWZCTjf0iZOLOhnpn6nyVOUqWfNSA6qwAUkozTKpO70ivvPHWx2+8dTgSU/KGk84jWOe6TbTbyw0rJOpE4BlR64GXYEtlCGTSdI4lVeSVVKGmrItDkrnfuZxgFVQSeH1x6W1lll2o8ZwtVQmKg9CPGKSvskiVLqBP/Ce0n3FVKV4qnt8cGSE+UA4dGzhoc1bBzv27qC184wQMuY1KGCDTdz0RFSNWdY0Czdk/8jrEYOEbLCed4ySDKtvNs6BIJaz/CJuqTlrWDUtl1vZDMNi0ZMHlf1kvP+2WdIqLSDkglQDLJYeLDdtJsaCKkVXglnUswC4B0VnrhReRRthXy9hS39IDq1ITU/bLqBAkVOmerMdtcEEHYgzP2HnNMxICyk8h7NuXJ3MvDPUvaP/l5PpRJ2KyyjgOzdGq6t/3Qn0Y6DsgHYrO67tRFkfh4WMEJDCbHVHzsXUX4u6/UjNrMQs6cZ7bpabWPZqWdnZPiQOmZ92zg2VFPjGAJ3UZL+h6kHcjwMu4PD4JZsVeeG0npfeeIDC4bEjz5ebILJ227BpzKbsyqu/PCUxlOaVNSmEQwYeDQPhnil7F5Sh9CUx95EcoEYqm5HsuxLajXkmSnov6b9+d67/afdDY6W1V4nbWTgAMyBkxpP3HMU9+Q6a7p1lM/uY9FxK4BL0WgvJKDLWTtnZKNugLnjffsERXPMUtSr2jJXfHcuqkwgo0o6Uxg4Slyna0sdZwdFQ5EVRiGNF/JdjiBMl7W8FkEzxvfX4R3X18wXnmWmbKPtrNzkkOL+uK/+oqcAfBq/cTWNTROj8jGjGN1aT0bPUFLOVwhD6DNg8dIFiq6c3qhhnh4eNjUZ6e6e4csM03JOBk8eUwHJghU7pmJykF0JHg6jazJ5EXssxUDlY7eTL1OOYglcN4g+sjze4AIb5QROydTZqMKrzIUniTljc968kSmNzmOsuvc20d64d0v1coyaLbyvlNB5HX2wBOQMpiy8Z5EBs3LWD1mDxynR+tUYWTokhSqYMxQ2CbK44C6odK8oyLphQRmSDQ4wUK2x698v2HA6zN/UGrqDz9d9lGyc+471GznLOYpEiCEN7w8dMwzOilD22FZ3kpLZ/tUDKYcysTfMjtRIAk7D91SZ45xg6tdDzbz6+vrM2Ytx0BTjTeLGOCGSYN3irLIECbelqYtOcDODS6uGlw8tbSHCpOaeQYP9iPJD8sNmUFFMnXcq+0tsOGkyqzzwgs1XnbVVC0yjR1C2ZbKCLeEWRAlsBSjymj2zMsCQstM905/cx55iQGTRPYrdo6mJucRLdlxJOxW7DwywC4Cqc0oSzJonkGTz8kOoEyVVNrXmI3qqH5CGSjLf93dQLZpzQ00Fij1TFqXmX74WO2j0s45Xkl/9zNWBQY47SRzyowL+ujGGE6KRLXtUitgIGU1nva7EDUlB1PmrpzcmA6IEbnkCEy4UGIAGiPspARrg085keSgImx6coOKmGtlCBNtt6oPLTzx3P1YZzU9OZBPNm5bsk4XMaNFxI1uU/8ls54VclITs+71r++PJgrrGkphCYkvwJwdQEwfUGaeFjVA55jBWHWQCgwFMcq2nbPFz92RGAwpw7WYlssrxplX5sgpZUeWt8+M3afip4AZ5Nis07zxZvR7nh7EzvZl19OT3tmBY2NIZbNOnte0rpJTbEGKiZJ/ZteT9/0eg6ccdYm7AzoHhamgURSpffv2mRuTE+myN9790mLP8u/ASZCuDgV/+jvFlBpP7PTPvlCFrXvSwNcufjQbB0p2zoPD2kxXLYXsnBefE6b6vRO7/dZdjZM2sHKtsu+VX//0mh/SOtlACTx5UBEOXeLhCHnJ1xKAzps3j8Zxfa/0A2TXW4n0YGfV4yNdq48w1kT2nu2iY2Qas2mYzPP4+hbvMoTLrUDzuZtBldU2XK7v7u5+GBuAkzag8gl1IjFgosJ5JZb/11fLegBUAnw245IP4zsmGIBJ4JHPYpC0QKkd5jngpBpmgDWmOB++hRdzDwYtlQBn8vEYGNOFyFxixzlyl9ma7DHQAapMr38ZOkkJcJXlKlMoOS3ItlZnBxXJDiDCdjWye9Klou+13rHzOxvWnv1rcDKE7KF/flMVbvydkt9HXTxvfH/J2EK/elvdO5rYPkq2ymteGMLCvnSlIzvn4Cg0hSQR8L7w/KDlmKMnEzxJDu/40QYCTlrnEemdQ4lPMSYYAkt2DrLW4eR81VQujgye2fNa7WsHWtl7tnu2XMprkjqiU/vk9RJUswCbfX7mHfpx+0I+z03e+LGRkRG4+OKLCVDX46GvI7NefyIB9YQw0Je88i3rIh2/H7NkHW72tzsvm7nMIEG7OYlkBtM87Hydg9TE3KyTc+l+DKA6mZqAj+nk4dxnzAEd47YCO6e7f5iZ5E6laK1ko8m78H5hwk1YtGecHnlFYQbGYDq6bdcT95wlex8N2MnIJJiSyq+dauidSLjUxEiveMfmx/Gmq+EkyS++OAfveE3rGKKv3NaAb/+o0aSKn4mqODHKux9uwCGsDtnjpJ4/b22AP2XWs0JAfOL7vieidbThx18884WObZoEckA9n5OdQcB9Vw+iyEDvw4WfkmUyzG4yzC97brvtrLRinpO5ptVzj3TsaKw0e6zFMz+Pi6+jyeIWmGGZMQAltlmZKLxfq/gDCtLzG6UT0KrVYxBxEML0Uaoj5mRmibEnknLqqzRYBdCUBgeuKcBNJ86dl+wy8yJ5phyIOZnAq++q5XVizb1L0ljIayXw2iTUDuxZduDA1iEJmiRyJCbalgHbLLTvTb83/A8qyP8SnESh0KZzT21tcjdOJ2SjxECzQp8nq66TnfOFFwQtgZOERrT/3r0nDzxJ4rj+xa/9Wd9v8rfgUCY+ngFNJb8pLbu6uvoLhcIePr+d2nwkUJ2sitzqPq2eISVws4O2k1ZscrKAfrRzs6aJI8hW/H0c83H9vffeuxVmQKYdQC1w5hA4QQCnfJz2S3r5GD2p9UadbHcQxdqpMkTRI0iYXSaZOrE7gkpqF4NRGvkc+LqlBTzl1XszLauAN55itSVTNXZSh7VcqIJ2LSOz6Djz7iDsuCqZplZ8ivnz+9wsofY+1fLE5Ye2/P/tvQegXUd1LvzNPu0WSfeqWZIlW7Ix2Lg3ajCYYsCOSZxC8geSAEleAoGXQvISSAPeC0lI8ggkgRdIQicJELrpxQYXjI1775IsWb3cfu8pe/5ZM7Nm1p6zz7n3yrYswEs6d7fZs6d+s8rMmptvTkV5IvZozrq1hAu1etBnveLGV9bqo+/D40hl+tCUeulHmcr0nCk93npPpk7r4Guv+a9zP0rnPCuCddUEpKzPToGTyVjUn2vq82t8Tf1i//794Xk/sFwIWBH1As2FvCu/UwZovXSw6bvpO72+kWVZOJqyQqVSQa1Ws78F0Gbz+9ANN9zwNjzK9KjOsH7mS1/+6nar8p+mz19iisIrvrpHItpyYGpqGlPT05gx581my4Box4ImlSUdu/UiEnyVUCnqwPFJ0d9+K2EBlQAlKZPbSiJDleaGJDlfz72GbyDEDz7Ni5xnSAcC2vrUKKiQg8zfybq48Co1DtNI+H6lWr17cu+2a3nFkQy7bNkykB7I6H7sFDDmQmmiNIEo3Rta9uQtS1ae/Ad4HKllxsUtO/IuJ8uSCGQveCZ5sc9s2KlZd5/ncz791Mq8HpW+8T0j8o89vuBJNDH+wP/afc9/jsmpS9u3b7cDndfhKao7JrreunWrOnjwIFatWkXT2n7KhHsxPaM2SQyG36rDUhnY9NIlltFiOdoyYCzTf6Zp6MXRln2XqSwe1q2S7pMGE3L9SOUxOTmJVqsV0pNuSe6JGLnz161b92rzG9uxY8dNeJToUQHQZ770kk3rn3TKZ00Of89kVYjrRE5knZ2ds6A5MTllALNtuM1cFGyxkroV1zytyVeIBaYUXFkKd+Gcdd4DbXjuK57Pgcj9KWczD5jLQOrvBz2rldzFdzWL9O5c8VGkBRAcpkuQT09R6R4aqWkERuwIYGte33XrD678oulwlgOlzsZH+vlpKdYCbzgXC55EQ0MObe74wUfnTn72m84zA8hGPI5EHCYt9Xzysf1nz5FB6KLnENAqDDaMxfHcDKtG559xZ1c7bX2cpiwJMvrPK774j8e9h+qE64LAkn5U5yQ1SPAkovocHR0FASjV8+Dg4B+asCfSM3pnZmbGAkWZNTw1yPTiQFNQk9e9zssMRfIo7/dKAz8rA1157AWcEoTTcyIaXAhQpw1DxmBKXGoJETZdYgaxMzdu3Ph9Uw+P2Nj0iOeBPuOCl/9u3qncaIzR57vVqV5kJmAwnNnU5Az27T/ggLMlXYLrrvNipcgRST5zwOYu3dK84kjpwigvsjNwFfeh1gEgmRPUbBkiYA0Ambmgua9IToeW77t5icpPp4oVLnKisjB/wAF45DkdeHs9rr/Z6bRDin2R/pTRlYX9j9gJBTumoCDE6dDKI+k6bdeuXSENeWv6UhwB9KFLW7j9gYWBHM0f5fmc8xEZmh5Po5Gkdmv6Y73mf4otjO1z4VQkvO/nf54uGYlWq+hOPwUrviePRN3MSPmxzDgkz8uAryyusnSl8aVp7SfCl32/X9hms0krsrB3717DsE1ZcC2J7xIT7kZjvX81HiEdMoCSrvMZL/7ZfzBd811O1xkBjjI8ZeSvfUZnQ2J6nhc5TSAVHaR4Xhx9InFFoevdWAnyfeUBSNu5mKzbzHUncLO5jmujZUUGMGXru/KNjNMUOE44DlW5b0UVRG7fpXjol5tKtHHqPHybPp13cgecNg+Zz19uVRqOM2Y1hRpZddzpG3nvcAqX+JNUyTLOQqEZPSh2PXDpx3CEEC31nJ599MRs0nt+/ZrHdw94SRMH776SpAGqBxrgeJDj537qUrhOtzo++eSTabrORn5ObYGAgWghgMPvlInoKZVxnPI8fd4rjl7XvdLQD7DL+3//+FIi4CTx/sCBAxZIS4i40Q+ee+65/4BHQIcEoCSyz0xVLjOs0e/Fuw7AWkbZtf/AQQOcUwE4dSFMGUXwCwBTmJMpgbNc3GeRmRnEwKnCcXl2Qrvic134JovnSgGF6VIqGpJiIxLJUIAqzUuU1OlHBiFWDyiwSkB7Q1FRTcHfarc7hXhqtcZP8ZdT7/OS0q0j7Hp4Q1d94dfHdN65AkcAkSj/3k8+ehsU3XBn53E3GjHpvHXptz743M28mIE5T6ozdiLCu6ayP4PU54FR3xSmLrVLNpJigJTcXnqvl14xjYe/U5qfEhWTvFdgPJKwZWmQz8rSmuahVzoXC6TEkZKYn5Kpm98755xzbnzmM5+5CYdAiwZQAk8zuF5muLczc8vRacvJdXJK6BQOHBwziZaWZxXFYM+RuXOE1T2O5CoeWdA+JqUCSIY3AvDkFqz5Jysy9wiUihSsXDTqeQOtbXu03KIXz20cpKelH3L3HJ6z7GhnOMrdLALOF3GRxdGc0ylHeh5UdJDPWTkewpu45ozOOA95IPBXF8tlnETcGcmqy1wnr3ahH1ng6T6J8sSFNqd2/RWOELr2jo6d//lIifSed295/PWeTK3mWOD0uR6IeLYE1x0NdKSG8VPTFDvIpqOhMOWM2gZ1/DLAKdMdyvfsB0u4y36UiurzcZ1l6VlIvGXxl3GlZWHn+1YZEZCSfpl00iXfOdMMaJcdCoguCkAZPE3H3yQ+bzs/cZ3TRtFdJJ2cF/WYRYocXrFxpGFcPMyplmXDcqE+nNVRWiAECtZurQI3qoS4n6CeE9H521quOtIy2ZZIVM/zPBGfInepdd7FKVj1gmwQ/rU5K7IxiNtUnrFy5THLGTSJkqkv4ZwdinguyE6op/vf//RPXHG4vTP1o099q23nbB4qkeh+pOg9HeVbr/vUM78o5+GyROAdXdv64JkUxH2m9Wl+I6ZdPFcCBInvZZxiGZeXAqukMlFbAnPZO/K9MtCa71sp19nrGzJ//fIgwy+UC5VEhqZ9+/aV6UY3HQqILhhAHXhmCXgiiOzEdfbIKmLfZhBVpeEYmMoKM3Kb9CQaXFxcfB3la9Z5RoDMg/U+ADFXUhD14cT2FPxC+rpFeniOFdyYA8cdOUz3nM9RKJLM6xzIQMUT9OlAsxTscjW6b01dGKktX3UxvSM3IJNORYTfyVAVBJ7MnRIn2mlOvQdHCNFSz7/76KHpQ2mLYprveSRRc3b8r3jwkrpouRc81Q2vhed5vVKEN5Z4W8cMONTR2YDUi4uU99K+0ytcWVz9wIqP/YBWhi8DuH73ysC8u/+jdCBZLFGZEoiWiPSLBtEFAWg55+mmVhw4OB51nV6cd794rlHKKLmrXBdEexb3rYGFua88GmTc69LKzd8ODCMgvqgCF5nZME7Ez4OI7phOL/5bq74R1Wlyvm3zOdjSH75k3+040V+3bdic3/H3rFXdn9tr5CUNzzkLgZwlIHCbHJvMzsx6DYgD/qziVhN5vZmcRK/8MejcrDd62MZiz1mMf/CBT37s8drmo4zY9d1i6Zpbjhy9pyPiPs/9qFx5ZO+KubtshSdKduYMOw6Y9vpTkvsi7rOfeJ6KuWVUBrBlQJiCVRpHP9G7l6gtqUzUL7tO0zVfng6F6H0S6YkjTWhRILogAO208VmDAZvkqho3p5M+zlwlgB5A2SW2ainmqtJ33Hv8LsJ3JXnmLfmOAFMfpfYgbluqipOItP/H+lWlGCR14SMcD6SOVkeuVfmEaHCjzr0+VIr7fN+95b7pJvYH3anSIm250ae1Q+N0+mL13HXrThihTseiH69A4sITU5g0AycZkgg86bjrB399sDM3dcToQonI9d1i9KHknu5I0nsStZpTb2fLu9jGwz5jazwbkQhEjaEoZMD7esXpp5++0Vy+TMY749ViKVimIMqUAlt6rx/nloY/1PfLrsvSNR9H24uTLYvzUIl0oiVW+k2G6//smWeeOTrf+/MC6NNecMk/mK55prxHlTo1zeAJFIEvzZQDDA0dBGL5L76rIMX7OFrJgpJGpQwMRAX9KYfU/Iab6ym5Ul3QkKrAhWottKSMwpw6BldGRcW2dBUDQDaOHOw0u1unI3/wnKh/JjpEy1hf6adFWirLV79BWt6pU0qXdtIKz5Zg6tg+LIVRn3nXmvccSbpQItKHyi1AehHpPW+488gCT1N/W6/9xFkfowFKgiYDKjt6YfCkY7oc11+fJ+MlUbPN9S+oF/dXTNPCObS0fS4WOCW4p++WAWdZuvtxq2XhHg3wZCIrfcqJkmHJqFfeMt+7fd3ZGfB8tcGH35P3yDo8PjHpr8o4z/Ra98is4+TyACgKhdU+XaNhHkI4/x3dUx2sBzvlRGEtOeNMB4ORxaIA1Cyas37TidRu4rsOaQhcaVgK6q4zlQkdq8+DUgEQeZfmAldrgbgTLjO7hNRZ4JWuWDVC4JzNv+ZsE9WhKpyvUQLujHRkb+c8S+Ckc7HU02aQPTLJSfVEU5M7f2v4cfITWkbs+u6tv9nA0EDvzkF6z8O9Ncd81G5N2fqQvliJ+Jy38pADX3qPRPjVq1f/GZ1zu6ZOLdt4LcvwJ6sqWK/y2LqlLp4OuTdKauUWeASJCCzSeYnJ+XVgtZSVtKgdWkFISj2R7Shyuzr2INepcFtT4b1zA2jlvVdClQFn2SBQBuIpPVIxXhJxorR6iVYAMtEUp7PPPnvLDTfc8K5e7/VMHek92y3cqIRDkI63tuf5QhPORaywkAEjcpO9dTBOBOe4gcjFFd9T8dPuTxCn+QtRXAYif6pYv1p4vzsNvuV4jtGdd3MGzMhSY3QRulVOkeN0Xm182vKiNZ6iJcPSiuUjBXG/05p96bWXff67cj6odCLCxM5EWJzn++aaPI/jea++7z9VVrsYRxClru++eW0U7WlrjsfNu3wPIq9L3/v4U3+LOHu7YMHrmhk8EycvhYbNe1sR92mMR+fVajXrPIRBRVqLq6b2fn2kgjeOVmDekM06tGlndNQCGHUARhLClAdQ2zZp+lwuVFCI0lEGAdDcznX8kGvvuW+z2p7T/bY5/NnUMD7RqhVZqET1cCjc46PBac9HFP/KlSutoxJBBw2ontXLm1NPET5vgkT3UV/mFjT3HxhLwJMBrxcJoTnoM1LdhgQd+U5v3U4xThdWOhVJPo0IsswFZsUsQII3D+oe8ESUxXme8r57Vkxv9zFaGWN8csCI6+VjJnK/MkkCtKrV/yRZiWRFefZI76/t/RQ8icy1tQQfePi6PzbxHjEGJSLSh153R/fUpMd1a44eRKL7wb03/zWDJxFx/FTmUgdKxBKC3ESOQJUMR8SFGvD80xivc7jD4EnX/2NE4XeWKtRy6txikE31jnzi1UxRJaWYAaWNhVyQ7gzZn1ua7Psp4KfR+SC5j8Srvriv0K2KaatvH5jDr9aaId3F6GM/TM/LdJ39+/+jC54cH61cSuIdNfrQD/Z6pxRASXQ3kVziRjP3m56cog2saRIb5H2l46hnp9yYisqkLhEqORYBuGhQcnNK84LowOHcGT/XOmZagpIN7bHQxaLj+34U1eQqjxufiCe8bFuP0EtqBrj4LesMBQjxWg9SSXryXMbLBquYTmf97/h8aWvJt4sCwJP33fXM3IwPn9u0m/J97pqnnHsezwOljsiivOmINuGy81KHtgYkwx3xj9751sdftLU5O/bHOMLovZ9qFfShbr7nkQWeRK258b/61gefu8WDZoHr5AGMjuxQWXKgBJp8bYxHx5rDc2XcUid33nAFv2PkwEaF2mbHad6Dnic0tCiZeSlHcZujiXAk3RgVEXkdo/5pP+x9PnCiMuXEetoGO9dxGqANF9RSXpqD7GROZZCZ+El2eONAE2dVcpTNEijTacpfGZDaNOpu8H009aBMvHIp+fb5vdbNl3OgOn8Lww9RszmH6RlhNPKF5oezcB6rI3KRCSuI4rjXPeKUTZFgHY57ngVgzL0MwtdRbFZC5egrT6dpl9nRQTUQwFimQ8WcuXbrrek2/9HCn4uKl2lhbhkFva0KnCufaz+Pi6f1sxGN5gE223OuHHyN1Su1P2WHIsJ4pFkH6jkeK8JLMKUw1OH37NlDOjdc/R9nfDxvzx4xc0OJSB9K+8ozff17j79/z5Ra7en3fv7dR9tVR36qGKQEwEQGJLrP9VKyioy2ny5wnzR1iY1HL1qS4W9XZbD+VDyXooEovenITXKbc6vveE5yBB7HMWa+fUeJiftGnLAn9KtaRynexhvzprnzhfidHWHUpPHfB6fxrEoTRb1ppNTSD/Tr/xplutJHmwNlosGLfQ8IekuZVb7Lnd255//UW0waL3FXrvMfHBtHUdxWKBEAiiOCkuAJ8R5K3+2Oh6f38D3WAZaFdZQp1icKMTu0oZh+D2lQBQs8D7JutFUeRJGIOwHE/RHM44q0xopl1YLMtxYqgkihcYiBXYYgzntgYNDfs8arjUdvfPIVqj21hfyBSr+gvI0EuVMjHSsBLLm2W7JkiZ2ywefmmzZsfXD9dUtXn/Jy88URHCFE80OnDeN970Ma92878kT3++/6z1dj7AezVJ70GxkZ0QyeO3fujLuieh+t9JzqyJQ7uR+0dWV+et26dRuNJPGvFJbBgzggAtCjDWq+76gq1thBMwc7nFGyX2m+U+T0rH4diJIZS4WxSduHbnsvblX+BcVf0IFRYB8RCpIL5fAOhJXnx+j5QNbBadU5fKU1gOkg3JUbjPiZPE/BND0+1kRMy+DgoPzeqDmf27Fjx+UyXAFAn3n+JZtMXo3FSY1yodJ8z7kCGofSL/msjj9dhFndxXkKkPN8IrkQrlhRwI+GhdFHiNQChHgyOu+kWTAMaRbfY0PQ/FGNAvC56KJooGUWxUinAnfKN3zjK4wdWSGPUTugIY1dhYn0GpC6IJXkhVZ61Ws1o+COm90ZLmLj2J6HPk7+QKlDEpE/UCLqrAyQ5pn1E0pg6ue9Ker0NNLSsXnw+3NLVz3j0sFl63/ZRBp3gHuc6d6HcuzYe2RxnjRh/sCeay584Du/s4sNRjQY+S0uFKlQCCQJNKmsCTip/OmeBwYLoJs2bdJ0zxiP3m8iDX4/SYSkunxSXeGf1lVwvLEMO50lqXqcqKxYLYXIPbq46SxKU7x4xLnsdiohhkYnqqegJDutF9n9H5XrAKDRAMtcB3M5cYcH+t5q01RPN2qH73WqmEwYhl4W+X7W+/TeY0mcNmmVN3Smqe/3mQEyeLYuAOi6TScR5/lqHl5IPzc5NR3Ay1EEgPkpsI8oCgfxWgkOr6KjdyIbogBK7r1iIasCh8pifpxjGj+n/cgazn0Ksky4wmOuU6adz32YwCWKdMbGkCXp0gJMUZJmOW8u4aaFZ20H+tpzoQPhrkn7xqGRNd+tdKa3sMNeIhITpZd64kS5QxNnJLlRIjo+eOtHxo4/9ee/WRtY9fhs4flDQjMH777wa//2E/fQIMRWdwJJKl+6Z7gWxRyo5zQVbyZHdUKDHcVD4Gksvi8zdf6nkruy02lMPf/92jrOob6bWWWVlTnYiBmmyXGb9VRoQ1Ec8pfOXuEuMtEdFaSOP3C3QqVF58ydhhkoiYogMAz8eXueYQPa2GhQ5svtmpskKPKagidTP5G/F8g+FkRcqOkr8nsDKRea6ED1W+TVzMxssui+F3j2yxC/04tzVaXPXEFlSSEX35Qcm3zPHTNIy3gAK+ZoQxyuspV/J7CmzotySCHkKOiPmRTx/SARdZ9Rh1k86oKIL9Mc880csgdt+01lHVI3W83CO7V6/f2yTHhSPZ1Tp/W/8JzFTG8ptiuUvAVZX/e5C2/J2xO/hSeolOZm9r/u+595ya10TjMZmAP120mHzsGzHqQlXjgNCauRzCD5txw31Sd12EZrDn+3poafaIhepdigw7pGCOlEtKWS/sDtMzAQguRV5p/loo1r0R9ZctMyzoQxKIuXwl5Qa+NNNSMSlzAOfJ2SNCxx+qWR6bHSf0qib5Qs9fxdeREA9JzzX0bc56b4Nu3FPYci4PVKdL/McIWLpY9d57oQCxVU8PIOFH7SGkdl63xtAqorDSzqJxXgLgqcb/EdVRzJtZvWEd53s/UL6Y2v60LjYANYMX73VYfleQD5YqPg/McBi0X6aaMYZMcoXqm/cf1JT/8TCiNdpUkvP0TckUnE5En11PHFxG872f7Kj53+8c7cxBFnmX+8qdOe+OMv/OOGj1HZGuNbaDYMon4wUux/lQ17vBrJr4MP05iMQeJPTf1tlG2FONTfWl7Fi4ecGitUDEs3DJ5ZmWFGB64w6i2539A9wwaShKfiLrROm+TiyQWjERkHqYME65mKn408hJf84/pCltBgJNnX1GfwO/WZkNcURFNA7WeJP5xE0lk6rencc889ny+CCL9h04mm06gzeSCleWgzszNYHEkONRSj7/y69MeNws3qjeK3U3V6jtGLKjQHLQsbvDmgy7T4lJKW8JgWqQMNo7lGeG7hKACd9tOIecQuWtBJ2WndI/u9doNPU13eMDjd8bwI2lHUV4Jj1jEL9nHMC+lCqQPRpnNCNXFGdXDwv+toj3njBKRhiTlSEg+NiJmJtb9KTrQn0Z5E/m23/8u1G57662NZtXEBniC0W2Nv+uw719qZClR2w8PDVp9JahD6EYgKgx3pmzVd0yZypHv2z6wRiQa5jYYM0L7PxDHAANWZm8VvDrbx28vrpk1H8LPt3869zJD5Nh31lxoqYQEKWjPflyLHqhDUWIE5iYwEz3ZRXrJiXacN58V2sCQFvxeY1Y3CfSMvGkxD+kHquRaeXmnh4VzhLl3zWoCi5HWkEtVrsvvnqBHjP2Gf0Z8zz79k1HScV0dOyJjyxQ6Ah0aqz730WfdIVOACxfvyOV+X6UUkRxcU7Gw9R2gLMWahc2SRHeL9KFrrgpjTlUuRnnTEFK/586IIH8V8AaYe6FkEo0Y9PTVb5BigRwaHrDEicJ0EmrzumohXKbHo7qc4MQeleGkhhaXzz7xrzXubswdfix9zIrH9s+9c9x4qq1WrVtlGQuVEq7nS5bFEvHTWn4f77D3Lrz56v6nPUW4fpCZ7bjaHV49Uo3Qk1EzRAMpSVCJaR7gV0g8Q0RSF8GFc1iIm0b7DEK5RiNNF5ZkZFNtzFNh0d78Q77+5MYsLq80krbpLPXY4dZ3zUer2zqT1fJ7SZNfCV9A5XwrRNEncudHqF63kNuV593UsYMmd9ohVfDRwjuEZwqjIInz/ODKwB6Ti94up4JEy6IkSUaVrpJQtBigCtYirW9fD4aOY0j1rAIW8xTmqMbzVzRjj3pIlw7FTZTjv6JPOfsPDd93wzzbnfuWL14mGb3iDBhtAwiolXm7I53S85r/O+tjTLvnKLYMjT/kvM8Icix8rysem99970bWfe/EtNF/WL38NlUn3iDNhECXQZPE9nVAvyl998Wnrf7uTZ+ftaebY0Wrj3lmN9tQM/mRUYcBr1Jx0E1VGOdV/5sFNNGHHBxaneGVCT+ncNaoAmlowDcTN2trOxRxL/15QRQGCU/TPfWRKKJjsKzlCGl26fRsO/cXZF0aNUelvBiahZ5ZgOTo4sZpjnWFvjzK/QdPslndamDPv7Dfh9xjzy42dGn6gG7ihU8GjuI3WoogdWsspTaauzzfHz9k7Rv/5QRPi1fyUtiAesw5DulPMnbk3CIZiLQnT/ay/JU7F8hf7B7EhxoUX1urMjcRyPyWZ8aDDTFKhxPfteuIsi7Dm34mWdlUIG+I1x0rYfZMBMhdYW8yzDpxlcfQO38k8aEIAsVaFuEZGlgZR3gPx2Mz09DP2b7nNelqSBiUm6eyXxXc4UT7o84jEmm71wtd899gVq8/+yo8PiOZb9+689qLLPvyCLR4otQdKKicGSZSUmS1L3gGAy5oHpE+evHzjWSMDd+Z51QKXBbvmHPKJMVQiWtmVRUEE18kcWNIi5VHdxByjE8F9n+F2FgQYHXWY9JwlG9bnBxVXJ+iYfPNkvtaMEN446r8cMIA2UvRBuDdZ9ZyO/QZCPWbzZO63TF+p5WLfM1Zz2bacRybGPJ8w5fV9XcEH2kP4bt7A40GkhiGLvKB333DDDb/nZyfk57v0OmByW3P0g/uFPOsFnr2edbOTrm6LnJwEsPgul7cO4Ml5kdOB8jx6zc8kWPNRC10phDjCcXA6JNBmcSvjXIgicQBQIm3xO8UBoiRvEtkRuQD3zy1/nZiYSkU4I8oPfW1k3To7GZTEReneTlrjvThvQZQBIC1+djpyy6U/t3XrrR/4iU57+r34ESdaYbTt9k8/m8CTrvfs2WNVGmw4onMJnkTsc1Vy+sSR8kBF7/z1cWtGz1y29KuawNMDpaa9wyYnjQTI4iobgUSChDQkewm3H/plrPbhdzkCiXjhOsZVuF84VyFMoW0qB5uZkppTd5SfhGjHhe9wBzD3a8mmkVI8s/0jd7w19bNh3cTz1Qw+XNuH36xMooHDz4qWeK//afqjSP+Z5a0D8smuPXvRS//QVSiPkPp9h0VdInkO8ORdnpjuOUIFntDcBUqlQCxGb1mBzFGGxorYmDh+H4m9z5xolsVptQVuUmRRvBrCFfPsFfe2wfL3o6gfVpz41wYadTM6Lik8MyP8R7fdce1r2V2a2Ic8XdZpid3dMShIKzMBCIEoH5/9iptfWR9YZqz+P2rcaD42N3PwTWRpN7pOMhL17aWJ39Wg+2Qxnkj6Ar39RYPvaOjqG3SnarhO4qIMbE5OQM82o1jt15S75cFwR51HsdxzjtYfRebbgJbJFOesHmLdKb8vOVAJpvact4TQbvJ+4BDJkBW/kCkB4OTLgZqq1pGJpOscQnJjF42eu9U6TMwPIpjniJVnEKwk6Tlku3bfutpTaBpO9N/yAfxNZxkOJ1E+qP1LvDL1uryyYdMJzzR5eDXfpLloM7NzQB8dpy78FHjGWK/7KAVdVZpISRFcdBBpHGjKuZbxufOhkDuh3hwryoszvsGw1ZCafnCAAp4kjIIoz6DabQjyXC0DsI5KfynmM+fLA0HOTlP8h5iXzGh6iRDt2UhAHYQ3qFNi7X4wLHn/A277Y2UME5WwTbK5PGPZ6nVjY7u3X0dWYL9Tp51Qz0SdnSZ8k+VdiqE0GZzmvhlLs71Oj1tv+X+3LV117qWNpWtHMlU9HT8CRFsR79t19Stu+vyF36XyIBCk2Qg0aFC+CSx3795N5cf3NYWjuuKyo/rmZbM024HKmo5keb/1xfmfNrLWHypjKFLVGWQD08g6YwZIjejeJnG+5maTGJ0gi9rBYYgHGMv5Md9XZOu6uTwPuH4zbd97c9s/rHisvCFVR8aAOUrmYnVBWFfBB69jMBkP8sBdRFWUDnG4a+fUhH2OWp2rA4XAXTuOk1dJyelX8VvMT9BqxaerFqbMxa3Gmt95VNm5/kSLWKREa86/T+qU82WgVpsnzvcY2UpJlVzP9075827ukX/FZ4WvCS6TKPcjn9whU4KbYgAUwJ4JGYRFfQa0jPwDqmiJz4VYxd/lUVyqD0KaVIxLlpGLJi955vMAVeA8eUpKWn603DbP86RoK3+7/sRzLvacZwjM8xKZvCHJHv1eSprd3RFQEIjQjzmuvXv36tu++StbPvN3y19rrfRHmGf7xVG+dXb8oYu+86ETfum2L//KFso/i+yS8/YiPKTVPeVApRMRMXleX3N++2UDmVttpPwor3XLdLTdUAMTwOBBoDFumkPbz+/MS9p5qH3RTlIjqiqooKIUVRR/IkuCYt8IQXRB/eQYCU5D8h1Om47vhu/oIjdc4Db5Hj/OxbJR+a4qAcesgzzL8cbqBF5fncThpNTBiEnnJlootkne7OTpyiN5RMkz5jnTe73C97rmMu2eApRuB+wT33UvxJwUfJZ1A2wY/eT3OREMyLnz0J17EcRxj0qIPHKUlN9n4FQi4phr2QCLm+8hHHnc4BS6BQMqikDJNw8enCjoeO071dr7z/6JC8+gc94tUlqK2VsT60LZFR6F8RZ5NprYaTv0jEGFnpEnp0/97ZJTOna60w8TkOZjNLfz8g8cd8oX/9+JV/j8wE+S50C2nMR1CMNGIgGoWlremT75jHzjikb2vhCIpBdjqFGT++E4LVPchhtVwwehlkzRLljsjiEyD168ZZNigVRkVRw2qyBGZzoae5kF4aXRJApTi+4YxqBjmIlcZV7aygOj4NLrjZ155E/DhxHTydxmoU3KpArmxPLCfvtv/jlVgOsDHGcZo2Qpd9zwoPm9EVN4dTaF2rzM2qNDJVshn2F6ZWej3WLC/nIrwrvE809BCuZsWU4BrDvDsTDZuMOGlOJ7SOJwa74DiAknIlHE7SbmwGQ6mN3meLPg1UbkTzsnC9YvpxWXeeKy26nTagUMd9DGHDpGdKDzTmaO2qg52jP2vKWa9lkbTRPTrPk1LUfRNh1CezEmcMNAgTvmgdmXVEyvRggjdzdlPWfa2Khyx8YmgMCr2LOR6uDAf532rBdvpEvu3OnOkfSMQNMvSbTTnIj7hOgGDJzMmdGUHj7/zLuP/vin3rHk1PbM/tcd2RxpvrU9O/ambbd/9BSa26m9ZxcGSZ4L6/NVGKGY4yTQ5HISy2ADcZn+97Nw7Bmj+qumckYdt2h+FVNXU2NObxjUNqYeK23oxhiyQQJWI/GQoalDxqaaA0IlkNLuBOt0lJqRk3NHv4qNwZ7kmueVUguvoFmrYqKaYXLpMkyddComnvV8TDzzeZg+4URMGZXDdD3DnOHwaA8ApzoyetqcFuRTpOzTgXFAFyQ/p6Nknrdigc46Yvb91e5da553fP/K6GfzyudZQW2mSjhVV2BFEf9N1Sm8ptq1KdxjQimAmjRuUmc99yU3wq5AcloT2rKD9nqP4jORBFMAkN6GtIwQj4TiN6WhpJu7LICpLv++DJPnicUveSdwtaIS7ecVK8bN4FJvonF0FStPWY5l65Zg2dF11JY5jnF2QuPgzjYmtk3i4B0HMbe7g9q0GReNfjMzjTiz0zbyYIAqGrNikqJuyXMDgRsvTqPKkIWiT/M/ODiAJUuGAlvijBDZlumpyZfu89ObvCNfJaczEYCKdfKFKTos0hL5NeBKcmb8jI0vz/qFay+uD6145ZGyXYjW7Svmpnf89TWfeE7gNnlAoPwwcHI++R4NIiL/WpYJl5fnQsPgRPF88hkzG88YbXzVlP5GCCUMZiehzC9IOkSBOyNwydCsnGkAZhhzY8babETGRnMG5EdZ075eZK8x0lSHVAAeSLJc9EztVtEpD0i0/fas4TLby1dBnXQWsrPPwcDZ5yJbZ+x/g8sDZ0nhVNNIMDsfwMx3LwduuRXq9ttQHduPhpr1jIUc6aMNAn5Lj2goomfOWQk5ZZ4y358zhs76yFLTF9oY2r4TWVMsx5PloNhygoKU1486yvmZ+qPWcnwmH0QHjx3RVh+mjctbmwlAyQLvHYVm2Ltvv1suWAqgACDvxw4fQC9QEVwXQl2iMLpBsSxcKtJ2WdtLwrCoXtSPVpxYT5ViGmzFgN9sbQbLn1rHUy5Yh5GzjEHhKF/5xAmYsdoJzUYUMoKEamtU99cwdUcLd35hC/bcNYN6u2EAzIzpxFVkPMHYfc95gnJth7dKiUpzVWhbnJ8s+IT0xqYuVYi289WGhgaF/sqebJ2ZmnwJgShbh71xyT6VelE40T1cyDmh8BXOAMSgyQBEXB1d0/GMl33mmCXLTjiv1ljyy0pVn4PDSASaeWfm0u0PfuE/vv+Z/zHGHDNRCv48KJQBJ+eL54Jyucg17zwQUZmS2H7GMv1VA3QblegCenYCGYNnTKUTz217UxgbMW3sf34IqK3E7MNbUNuxA81774fa8RCa27cgmzyIoc4M+Yt3lWDaRMW5OAKrpEjkoadjtHx0w7FoPOd81M89H5XjTzFMQN1wwRUHxrmyBkwrRlcsi0BCPao0cE9NYe62O9G56QrMXH4pag89hFFa1i1VUSzF5V4uIibB4MdkrY6mMVwOHnMcsvXHofqkk6CP2YSBTU9Gvm87pn771Rgd3y8i6sCKhkIl5iuQP1S87qpnkwTz+pjhlv+6M4L/7Dx23hhLAfTc816quWRIF7Jz91577mCyO9ERSl3rkO6ctEr9M0sATq+9XkW0sjIA1X5EY/0MUabKJ7X3AlGgyKk5XZEXBQRX2Dbpr+QGFE1ltBuzGDyxgnN+9RSMnlzHLCn7ESe2K+ew1OlHldBV5cqKKUPtEYzf2cT1H7kXM3fNodoetFt2KLsOuIXuUkXBAEXcqsyXvReWoqqgH+WVSS5fUWUxPEwgOuDjzayawnARhhOduPC2a7652U9tCgUmt6FI91Ai4ulNElzofhkoMbGIT3TqRZ/YuGz0pOfU6oPnmV58ugHU0/BoktJbOu25q9rNySt23fu1S++/7s1jcioSA7tPVyo+2fN0YjznW2wSF0R35kDltCUntsNwntgYAcD8n5sGZsajVATuAVbMATEu4yvWovGbf4/66RfZeswtD2nqLadtdAzITBlD04H9aG19EHPbzW/LA9B7d6Kx0wgVk9OoNDvoLDUD/ClnoXrKGRh8xrOBo44xBqolJvqKbz8JM2F7vuVZg2qJWlDu25W92zRc8/atmLriW5i69Qeo33EbamMHkTcM02AkneaGE1BdswG1407A4PqNqB67iUZf6IERgzgE2FUWbs13m5j81MeBv/lTLD241wBfBxm6pVbJls3LhRIHbjfMq6Jpgr7WgOg3dQOPlQvuVGVjAPQlsZGZitsRAFTHbTBkW1MoJC4T+dN2HmTq/zKlVOyP6oA42OgucV4CZOB/EyBNRftUXOZ3fGBXr0KEskvmDCBOm1Fx/QuGceav0ig6ZxtUyyJm5P5YpHGii0bYa0MrK0ZUWaR5eAB3feJhbP2GEcly1yk6ZLrLJfCHJFng5LwyY1F4rljIQUhL7sT0ApjS+zQ/tNGoOZ0Y60+htsxMT7301u99fasETd6OgnWhcjtkBhZ5z4OpfZdX64gtlS3J5wRgxoIfnj3r4g8vW7n+aWfUB1eeikpto8nXRtPRR1RWOcbpDbPEO34+ZjJ1UOedcaND3GrqZItuzW2dmT1w64Gt37zl/uv+9xjHz1yCAMyQDn8tdbtK6jeZ0hVZRL5sQtGLFUf6nl/ZcPr6ev6JjMDTl7ZtawY89dRBIQjEynQgRmJ7A61feDOGL3yDEVQGA1OSqqm8Usf0uZy8jxiVgInbiNmdSaMDnDNazhWjUKtMWTeGDHB5L2WCqZH9Ql7zuaSC5Gc/bsT8WWPo2rYNnTFTFcN1VIxYrkZWQhFIG7CEV3uls2dCPNSujUpi+gP/gMq7/hI13bGOU0K5eKam0KcBgUP9SFmj152m9F7dXomHdQWPBR0CgCai+LwA2j2i9KOyiksruIzTLANHXpFh06J1+Xek6A4P4MpPNTYV0F7Swkk/vwrH/cJytIzeU6uqi6viHc/4kdv93InfbMR/J3O6VCvaGNHdNJJas4H7P7gHD37JGBDmGtZgV9TPAqk6JB1QkKhJAicKIE4w6S77pcuWYHCg4bhjt7ct3R5rt1u/tfu+m77A4Rj8yvSgBBS8fl7oQ4Mo79NjOTw5/YcoPZdASkCXgh7Fv3//fu1FbsX3JfjymnR6Lu9pHV1w03Qrnz7Nzj8S0V2n+WEwLeNC5fLM1G3d1leuednKRuVfTNWMFmqgaThPAk+VyHK+7dLAPGsAs/XCX8HoK//eWPKi9/O0X9jXuL17bpIlkUAdeF/JHc+YOF35fGqwohqrDEg1vDU1NlEhTLJ7PfdqXNzSlQ/uN4YbP/AHr8GSr30NlWzWSWbE/ebcv8SUrQWBpyMqzy/mQ/i99vIuGe/RohRAK0dvPOGt8sb01Ewydqjun/JcGBD+Iq3MBQJpmditBBCWcZBpI5CT1lUSd1f8IjzVs+XccmXFibYZDda+ZAlOfsUatAdmXIBKxQIPQxStCaZxIsszK8ZnpECiSe+Z16fbPeI0lN9Iwa43rrSw8ilLkc8p7L5n2n6/Yoeojhe7PThqxEn9WffgwXpR2SYjVy45hijas0GwVqv6r9hnA1lW+fnhFevUXbdcdwV5TaeJ38yBEhBNTU1pmlRPr7AHe/4ee7OnxqT9xHKacM5ASec06Zzep3P+8ft0TnH6sHp6etpO3ucJ/H7NMb1r+xGBJwGp0+0OETha13vS2S3HR8DJ3+M4fT7AaaS0leWHyoDyz4sLOAxv2cH6TlqAMDExQS7r1AM/t/T1o/Xsfaa0Bwp1MjdlgaJQWbLdWkZEYeak52HpL73JFPJqt7oIJe1eAHBsD/B6yGJfsZJU5re3UX5A7wNCaf8oI2tMJTu+tRGYcHbthx/4FS+WyQJDIfNQ/JgLbxojBk48BeO3XIe60YsSE5ZZAU+FwSW8qxaGI0Sk9vj79jLc43wkPSbEbYKpcpQBUN6NjwBhirb0FPqbeBJ/CrobPEP35Ngk6OnkXhGiEbiubooGl6wArimwEvFzXqcunX3wUYk47Vd9Q6TBdfCcDD/xxidjdnjScuOdih12bX6rxgjUaBsOYXcD+26cxcNfP4jd35rBnqumMXZHE5WJBoYHjFgzoO2IilA+jiNtDc5hzWmj2Hr7GPQupwLIvLbJJR7WoYTHX6efEkwzZ1XqSLvKCol478vJepOBA1FbRyrsaHre+uNOHBlZseS6B++5Z45BhPdOIrDgawIN3kuJ/YlSY2IA2r17txWHGQRp5U4vvSgBFIEib5dA71BYsQLKPudzD5oWGJkTZRAmkKVzX8f0fcVASQYucx04ZeY6iQggfV7s4EBxUR7SlVk8oPhBxZYLGYve86z66D+fXX33gNJ/KDu7BUFjMArgWQBNx8FZfbsZhcdHjsWyP/w3VFefjI5yUkwGFepR+3e4XVd8fG77YR5M5WjqlhOT9Zsdjadglg7I6XmhPam4xj5DWOUW8hoHfiX8hWaF7zCeFrhbOi5fhdpZZ2Lqm5diYHKGmeXA5ChIKF4IKTyIOt7SWYqF86yLpy4AXes5UB4caFWLS49KALRgLhLnqvTUQwGc2IkkfFYaR5kYUSZWcNi0EchjKpZI0LSp8x6XSAFN3KM25XLabxyP6vEzds5cyIxyS+Ky8Qy7rprBzf/yALZ+bTfGbjKczb0tjD3QxIG7prDj6t3YcdMBNIxuaHR9w3K0KrQKWCtrp9bCyLIV2PF9o0CfodsVyI3seL2xa0TKbyYWJyq7DpNZ63202nug1oWiLHCkdEqcKA0G9XotiP+2Y6jK0xuNZT+/fM2GS3dve2CM90+itwgs6EegQktCaT8f3kSNgZR+7FiYAIieM6iKcreJkRyqB8PAofIz5iQ9aAYuksCQrgkIKbxUGfCySn7OagS6pvTQcxLNufEzQHouVnNaOS8+X3bTNzNwKL7PzpE/9Uy98fmrK5cbaH0uN2UHNKZcZyaM0WgKsXJk5fnKMP+nh5dj8Bf/DLUTX2jrmdoCtbOKXAIs2rqo2qJ0Bt3VF6KzD98SVFFqk/0ilfjKKH2/+Ay+7bnBI0j4ST+MA75yk+HJMfnyNWh22pi5/koM8hxLKXX564VxoQofbw/jCl3HY0ldALrOAKhM3hSJRaKiOXFF6g2gPC7Jn33U5xnH6RYMRU416EE4RB8w5WM0wKjC864caBY93IZdGy4cwaYLj0JOe1kzsJlnVWPdq+8dwjXvuA/3ffYAOruN+NEy4jDpbYzcUTWgVO0Y632njqYB2e3X7MWuOw7i2NOONqxT2+mt7IZeNTtSLz1qAJ3ZDvbfQQMVrV93+VVIOGvFHGhsTNxYfdP078Ty5WHbNWQxxUk52YBAtNXqGBCtCs/+9vlovd54/bpjTxif2L/jWgJNItL1efCwQMLWaM+B2msGFzbAeC5V8T2/+6cFKsmhEvE5gSFzocxJSrBkDlOK+QzMfI/f53skprOHfW4DLJaTx3jKD3mWJ0Dk+1Jkpzzzai2/u6Z99oLjVrz+FWvnPlzP9NoIkHD2gqkDZqSaDZ0+tHHrK9OpgUj8bWZVdC55I4ae/2tGnK2GGRa2+nSxTRfauWzvzNVl5YDY/Ra6+kTP7/RhWLpJh0EiqMgk4GYl2MH93PSfxqlnoWkMYNkN19gdeRV4QYyfBSC4+DJis+Uu05f+Jl+CvY+R8YgpBVDbf/lHxFMarAih+UcTZTviJ1cO5eEXHHRo+PM8HK0uMPw64SjjpWu7+6Df0E2OfESxAnPxQ2HNO1PZiClHajsq2tHQtPvBSZzwk+uN3pPm6VUc12nu1zpVVA5Ucf2/3o2x6w1QtqrWKNSidOfOCYQR7p1fDwJbox8dbA5i+nrglo88gGym6kUf6kFtO/+uWZvBphesRXvYiP3eUu/21LZrNexf5ixsmdAMPcqfidsqWe157tPuzq2vhk4eO5HnToMDE7uyCvZIbrkOHhg3+s62jc+ucjLxkBNtXcnese6kc7962rPOP5YNJdKLPZejdIEnp/74n2afmXLDukKji6t9uF60sJDba9J5MlfKIjSFIU5UgGJ4j48k6tO5dA6dGobYICat8RyewrF7OpnmlStXUpl85d7Z2t/eNFUbjZ1au/Y8YVQL7abIqg6DtFXWON/GaBmRZ+bJ52LpBa9CXh+y7SdTNSivCy+AlHYGSv51MQYJeKakhDhdJq31opRb7cehOit/5DbTGQQlb/gfhTR9aGAQI7/6a5g68VSj1lB2YryO4lZf8LToY/tKhmtRw726hsNNWXmyFk6sn4uWYgBd/F6PkQuCbQrxxcpLLe3zgSQDKT8LSyE9QLh15zpYMl095njSC45CdUMTbR31t9rcr7UbuPOTO7Dj8kmj6M6cDir1cqYFZ+zjrZrK3HH5OG792HbU8rrTS/rBhaixMcfxz1tpOkAHvA8NEc/9jJwol56c0iSt91lBN2zLwC/5lOXiIwnvUlnsNyA6NTMTw6kg1p/XGBy5hjeqkyR9XkpfmBJc5TMJQt5jkebJ6nSPAZKXiEpSYg4nnfM1HQkkZXgJvnKqkpyeJP13SksqpZHTJtJb2Mn0zDPP/BPz7Hvm9Lm0iOZbBwYCh0nTlDC+l3adc9bjmOpYJxXT/iruXvOY07Dkl//WjM5Hh72P7AdLGYXifb4u6wO9+g0f5Xu9vpWCZa93yigFy56zYIp3zc+A3lGbsPQt78TUhuNc76PblWxe8Z2eVNvu+cf0UtN/cdipBEBVj/NepCFH3fL39QLehS0sWdlBp5MASwxeDM/hyvQ6WnAMfEZg2lnexPGGI8wqUbKwIWhp/J4qtnx9nxHPh0LalHe8UIhXxYnIyq+qyMw7O79rOtcBv7bZx51ZJrKNJ73oKGCV00va+X08CFkVkeNE2QlKVMLLonLKN9aFshiIQulHHVlXqZvwk5PT5jdlHci4MMEINZJVsj85+qRz71z7lDNeRjfYGQk7JOHJ5P5ZmNaT+MNUEkwJOOVc0ZLpTvZdD6i63+R8CZryvjgPHCUBfArqYktiyPTyYEADxemnn/7co4466g5zSd6URjnchnoLdiLvzEGj8xxH8N+JyA4UStwD5UxWQ+3i16Ky/jRXf7o47U8CF1+XqbB6cYP9QLTfOwXVUXKvH7da9h35jONKQb/wfWrpJL2d8SzUf/vNpowabrpgLqZ+9UqD9gyYef8Y/VhNne9PlTXHnPBWdj9B1Tw5NRlgLd5n0V7HkbeUitxkEVjLyToRUN6KJypBB8u9W2ebBwcMgkvUUZSPRumimJI2IMfIEHBV0TYFv+GildhwwQrM1rUVsXli/ZBRSN/8ofsxdqvTXzpdR1Qh+ORGEIeOuh9zrNI0p2kTrt7B6lNHjRHJumhAJ3PcSG3FAJozCgdvmTF61ooZh8nZQh7ahMuqFgYiTj9C3ikv0TWpdMBS0mC5rakIyhQ36UXn5pqoVqourlDP9jMjWVb9+bUbn3LGyrVrr9u9bcuYLRtv6GG9KE/zYf+irP8kMGLDE4UlfaOf9mSTSbpR1nP6JZVhyhGlkHWlfpqUNQTx1Cgm0nWSxZ/iozDiXjAIUZp42hWlkfSbYjYBn2veL+qMM844z8TxfvO9PyHglMAwWtX4jdUHsKq5x4nsqVisVFjs4NqdK9MZ2tXxot/C0Et+x/S6hrM6y40MfR3SMRhcrO9MM7h15szPDMb5pFGgGiNVewa6ac7NPZJi3NjndayqG8rTvlBG3SI+L7xw8zqdmsp5ebLWTlohZfJPa/tpQr+d8zozC91q2mek6nKm0NwtYS5dc8TSVWanC9aeeiImHtqG7M7bTJ/olOhPu1727RgYNF/4Uj5gevZCmL5Dp1QHWi0HPIgUJs/C8KpKwi8UPFXxOYuqKXcp31DdE+zlO2njKB/x6FuZW+ve7qBiGMsTX7Ia7dqUNQTl3ss3vTnxQAvbrt9jGswSWjsU1BQOJCUfG0nup0ST6DtGdNvy3Z045nmrkB3vlo/WLTB2zDdnseH8YWz71D4DtLQaxQ9WuiMaclSNcKMu5EYDqfqDOeFCllUEYunNiQ1XxMUeHBvHQKNhwGzASE8VaMFGmYZ88cDQ8ovPfcHLPjY3M/H2fVvu2crRC7FY+Qn3wU2ev2+f07NWq5UJP5o2QwycdM1+N9NVTWKCe0AF4dzE5lKuKGK/pjKNzDFL3S4Tz+80cZxnntN+7efJ9iSnxx3TOYBjO7utlEBUicWccGLKifRUxqbNtZ70dIxc8BpzXeviNLkyVctwtONbocfH0BqbQGfsANTB7ehMjBt8Mtez+5HPjpuCqtl2WKk3DAe0FtWjn4rBpz4b2aqN0NWlTh2T4EgvTrGMpLST+5qy7Yf07NPGUPbwFkzfeCNad9+B5sP3ozPnNl2rEJwsGQSGB1FZuhL1ZaOorTfqsRWrDcOwDlixwojra43ec6T8w6qKFb/1+8bAej2G7r4VEXN0v9Tav2epJp5q7Aw3HmY9qJcty8AQpfeccQN+ZO1Fuk+cRUobaarf4XtSPE91O7FBRB1U0fOR41qNWOp0onbEm8P654+isYn8IjacL0Y4TrtmKvLmr21Gtss0hjBXU7jGU45ztnMpXc+J3DM9t8pwuG0OtgH3fmkLTnz90Y7LptE4I666hYFj6jj2ecuw5csHrcFKVyLPn3nHJqEzynJPgDXkE6q740AHLp9Bn13hSUs9nc8aA1Or3cLw0CAaAw3wShc759CGzX7Z6Ed/ee1Tzr2i3Z77K/Pad/3SThux3wdIJ45JLHjRM+Ik6bkH1yBKe4DTvEQ0We1kmwnF4cV8BmYb3gOtZvFfGofK3M3xckxeukr3jKh+nrlPOt/zytoW/fyEfLzgSQcxmPktJ4KSWnkLug5HZwhxBpGDS1Zi2aveDrX8REB1W4kp/vb0FHZ+7l9RvfIDaEzvwoABq0aHHNq0bR0M25hzu3Gi1plvd24le8u064MVA5yjGzBw9nOhTjgblac8G7Xl6017q9sVgiqZnyn7TQqsrh07w7GamUO+YytmrvsG9M23YfKGa5E9vBUrTVtpGE6zQobOMLh7lYTynLDta7QMWmG3GsDYipWo/cqvYdNvvsmvk08m+ZuyUcefgGV//g6Mv+7/w7KJg67f+bz2o6WmJC7OZuwunoeTqkUuRouOKYNJMFQiXPF5BLIoPnC8RYrX0pO6PCfLsxWntRcrOx0wYGTMu4vo3JSOPDRgt7+KXz/sOWYd8mg4ylVGfH/xUWhXPOhmzmGJtXbuyvDwt/egTvuu8HYENobMW7aF0yxVCTF3eP8a3uzQ9s8qtn9vDCf/0nFoLp8xXG5mm1nFZRJHv2QU91+/C2qfW8pG3J/NTx7rhOLK/TaxzAnD58sZylzILPOmXn6TOQk7wyF2ci5XD4qh49PtTruNifFJTBv9KC0DpXmjzvGKr1Nlx4DzarXGV44+6Wlb8mbzr446fua7zJUK70QBxHj7ZOZCvX5T8VE2Cgl+zN2yVd0boSApDU8AacLbb0iHH9JjPJER0UcbjcbrTZzkci9sTZKCCS1CIOCkY81k/DnLZl1CE30h6zm5YlwRG4t7bQC1F/yy0XueadpnNUgJzLGyEF8dHMKGi1+D5ilnYe6mryK/+guYm5owHXTSDOi5n5kCv5eQnRdlz60axwBto3kQ2dwYml+/A7PfXoLOmuNRXfdk1J7+kxg4/fmGM1xj+4ez+lcKQJoHPb6fg0PXux/AzDXfRfa1r2D2rtsNM7EZw60OhnLXXzI3srp0cOXBOcuxba2S28UoswbAm6tXoPaSn8Zxz/9JVM99uslszX1Pd0u8qmL0xOc8BzMv/CnMff7jZhDhvj7/4szz1NwC2bZHj9QZz75ADgHYZXRH9kyVayx6J0/Nw5X2SUQP0aKXuNFPBElH0rb3lmQ5Uqu+yayBZt0vDOP039iIdt276TfZqpCzj04d17//Luz9zJx1KJv7/Yhc3jLE6UWc6+jNu2JXgcRVSDyJJa90sPGXV+DJv7TOOmAmlQD3nIrhdu/52MPY8pEJ1HTVNeEC51zkPrvzy9x2Ljj4dEAT5ZwLDt9+rSI4WAZKFQYdmjM6vGTIAJNbxZSWNZeCubpUq/yLM+M7v7h/27ZxnkPJlHJ97DaO19lzuF7bKzOlFnWi1CFIL67zmGOOGV25cuXFJq+/DM9tFspGcJ/kWJyBk++dN9rEv5+8T/AbftqO50BjJbljx7SdyVMvwOhv/ROw/NjQOXLENlww+2l+1YDPxD7M3XMt8qs+AX3v9aju34o6bfuh3Vo/txoJbtWbFhKYXw7ZoRkadmZgDWOrj8PKP/sksg0nF/LLdRhmC8BN3+vcfzP2/cZPYenunUa1lfsVcrHvUxvKMl6Xn6xQMvdmahU01x6L+tPOg7ro/8Pg2c9AZ+mgdaVn1zQtYHlpbtQEk7/zKiy9/mqr5+0vxjuilvXTrdW4KX/suNC0bZUsGu0HkrpPOO11g+nz+YE1tf6llkGp4O4l4svwabyWUzOgRyNtZkCxOTiNky840QBb24EGTdq1Sn2Fibub2HnljNMzBWAR8fmMMMDEcuGVTqpw2+bd6Fc3X77f6DzXY3CDm06lfKNvm1Fz47NX4P7/3oHa1HIfd+Tkmess12lllgNJvfanbY1VICH9OorvoQPxAJE7dQdb+ZvNFuYOjKFmONGhAcNN1atRtAeXt43jYtNDLh4e2fC+wZH1V6w/qfWxdrt1yy1XffMWzozXj1pukLYPIa6UAVXurS62GQl5kFOQ0ulIrEKga46f75966qkbics0z15m0kou9EbL2heXO3OccWeGWN8vWtG23tOjoVMFWSjon329k2JhpjqEJS97HfTIuoIXrZ4MgIJfBGHiXbrKiOMXAqf9BNoP34POdV/G5E1fNyqh2zDcaQWpJ6QlpMNFlNECESMiV4yhZ8me+zBz780Y3nASJGSn/c7OCDFtafLq72B0zw4LnG7KbcerHnw5eanaDRx+jzDDPBysGoA87TTUznsJll3wc8g2ngBt2kzuGGY4422lCzzLbBr52mPQ+PXfwcwt1xiDbhvzk9M1n2d0oTfh8Inx1SIIdINPN3H47mkDxYYROaFiVEXgLQO+XsBZ1ugLm6mJNLDS3+5EqGkdcQ1zqmU4wDaOfdE61DZVMOP9EQYwNOB63+e2QO2s+2lFzsLPYrMFLO2thj6LkXNDwdighMqA4s22KGz+zDac8oZ1pnPNuvdpSabhQOvH1LD2+Udj15cOGJGtYThRbbc/0B7QtBaNjLhpVkl4ET3q7OA50e6tnQs6Zg9+sTZyD+jSeCBA2aSjSfpRYywgTnR4cMDoSOuRW4UHeQQVwXlaVc8jsD3n+T+9xXDst5qov9tutm6dm919y8GHHx7jyexEAhS18JIfnskwbCASutPwvF6vjxhL/MaBgYHnmHScsW7dOuI2R9K2FVqoqC8CzpmZmcBxpmGPHcxx3si05bg0kr17XCUILpQGRmMset7LUXnq+XAWcjHYi3oJ7aXAIDjXitYaX1mG7Linmd9ZaPz876D94A8wed3lyG7+NqrbH0A1n7J6UlIPZHZfb7J+5xbB7bUiHwvmm9XMqZayONh39TcCOPKJa5CT3DFm2q1Ws1kKYFrxqjFTZuZbHWPImtl0IqovuQgjzzkfldOeZgxZ5OOg4nSoNn6HuOTZrIzKsMY63HnRT+Lg+Rej/o0voKrmA1FtJbuXZdP4WD6EA1rhcFA1Al1MSG/qx52qHmE9iPaIP3WOHN5OgDUAYlbO/qcjmIzTNdoMDVo1tErhyS9ei07Nbqvlh2zPR+yo4qFrdhhL+YjztK2KIGRFK626xV52+Cy/G5lVJ/ib+zuv2oPTfulYYy1tuhLRDuBpmugJL1mPPVePAXsVWpnzD877cgetmYpl6zjPFBzzUMYuvVG07wJRjRCvYrHTGovyAK48u1EhcsxWRzo5hanpGeucZHjIiPdVFvCsjiSUlysbvdF05Y0moxfXByqoDxyDJaPH3LL+pHzM5P2WH1x+6R/xyiby+O3F+dAopUNjz5kWKt+A5DvMb6P53mkmXxtl++lFXA7EZdKPDERyCXAZ4J6ypIUNjZYFUDd+qaLeM96y5dcePQoDz/4ZE7xmvRiR0ifrISlJwHb347JOZfWVbk+jTmUU2QkvwPInnYfO+b+E1gM/wPh3/hvVe2/AkrkpE65ljTaZn3PkPmHUEWZQHlq5Ng78PcrDzks1+auuWY9Zcz0U2pLbelv7CRQdY/CcHVmOubPOwtBP/jxWPOMnoI7aZLC1ZvWeMT/eYMZSGzL0I1lnzk5XwZJf+FVMXXUZRmYOoD+5PD/JDAJnZU18u9PA4aAqj3iRW5xHzEiAMZL2I1TxXuyg5eDbTxcin8lRuuh0uJtblaO6My6ZsYm24Mg72PS81Rg+KTONitxzOcMUtXzd1LjlE/egctCIHJWW5zYLqUHc646NM8GuHXqPA0Yg6EBtUeUWjCp7jSh/6TYc+6qVRiXecs4j2tquvx84IcPxF6zBg/+135ZjRqO1nyoT85mLso5pcmEQyjnWKYN6fKe0WnXIoU9vrGMOz3XBAxiVL80fnZ2ds0DaaNSt5d4+D8DL4qUWZUnllJ/u4sF5huP8I9qsS+wS6gNFYtAsE+9Nnl/fa/BMOXAi+tbs7KzlNAk8Q6pUtzjPXDydX7Jq2gITzaBQXi9uf1lAzegk21x2zrzAgN0zDaBVLMeZFThMUfQlKieZl1hqLDFU7M4PlbWnI1tzGurPfAXU/gcx/aX3Irvxcgzse8Du/BncG5lETg0vw/DRx3bzOOJbTj9esTrV+pOeggP1JRgih82W+1QWmHMDruPrT0Ttp34Owy//ZQyt2YBO1TAlGS82xTwQia7BI6VCXRoVRO3Zz0PnpRcBn/045iMq65oB0IsNF3q4ADTRAEcqzyS3GqCcE03Bc6GcLUJjlXoZ+ZOdIwVMm4Ok4UsfoXYUNqPz5MAMjrtoLdpVN8m3Y5kuF9f05jZ2XbsfA7oe1/Ej6rigVfRyo521suimL4rTjvtyogufW5+H5vz+yx5Gc1sHVWvUMsBe1XanT3Iresz5y9EcmLbhMp2XcCYRAOOglIrwnI4s3APiu2G5K6c1qXuV+Y6XR39aSsfyzQtcsbvfbneM3nAG+/YdtJsS0gonmqDPa/FdCvhfHpydUMRyq2UiL5pbCzqveCIicKWfD2vDy/fK2gqnl/Wa+/btsx6a2DjE76WUivDk1fCcJS0ripNYG97h9uDLkcuS5Iehpz7TAEvdcp65WEknV9X1o14gE6QFv4MCqg0jVT0ZQ6/8S9T/5z9h4slPxxzd40HThKmMrAYGVoj3iwAd+l3m769aCyxbFdwq0jA8bVQ3s896EUb+8YNY8vo3Qx29yYjqDbhZKN1SYdl3+uVLPrPvKO+/uTGExmnPwPxEflBb9niuauJwUdzesfBzhoQiiHWDWr/CKHKqQArSQf+j47QOXqveyeP+1PLXa/SW3ALfkxyqsrqhNo6/aDVqJ7TtfEu7fIwq39gbVLuKzZ/di862qmnwtLFWZvVHDkhVABO3K7IDV5pW5aZWufXstHdNWBkVOEUVHHlYoDEnzZ0K935ul/XeRFZ+rb0HeyO2N47PcMwFK9wcwlwXdHQuj8xNOjDkpZ6R+5TcjFwrXywvPteeY+Ztk/k9MAj7vHObcN/RdimqmyfopnTl7BTGHDuGq5s14v2YAdJ9e/aZ4ximJgxgzbbQbnYcN0N5s01MId1q2RuCwrJRSWQcoh9P0mdjkQQkKivSZZIHpYMHD1rApCOJ6cR99gOQss5O92igvX+u4ncZKIJfGB4812/L0zrYblhukfTZdk8jYBF9p5g+BeV3SMpsmSkrnRhRu5L5Ob7muroMlSc9ByP/62PoPP3nnfRiflSFA5vOMM9HQn8rk9pCZij+oaWoHX+CU+aYaFrms81f+BUMv+sDwKlnG+CsOy7Y5JO0mtQvyE9ElpSdPC6G6B3SeFpdsXVb61Va/UvMqulIqrv/MBqRstjp5ktgeUHM3yCicUOGTR1/pO/b3QLlT+sFfTvV9blfThsd4oTnr0BbR+uqxVUYkX1XAw9cYzihrOal12hYctxsnB4k21s8j5Zsn2M4mQ5BjGKONMvr2Pb9/egcaDj3XcTZUsWbI+0v/5QXrkK2vBnF36TBu3sIZaL9oBONaf7ci/y8iCAXxqgyDih+DwFYmdOJ5Z0L7gsl6evuMCQmz8zMYnycAG0cbEzh78s19kQsrjPHydf0nM6lOC/1oZwO4jLHx8ctiEoRXbYN2WZ6cYIyX0S3TNQdeObtLpZAcTxB2jBMwMG9tneRNbyinGqkKBWh5/d7pSm9z3VuuVr7M+L00Fo0XvwKOwPArrgzYFIj8b3i61V12xxiubjdC5QRy9VxGyz3TNLCpOECR3/ltVCjq4oyZtLvFkLzhQtqunDH6HV3b4PGfEAcGcCrcXjEd6JMJsBuKaH9etdHTLrrfDHsPL8VuNM8j9c9xAUgNio7P44MLeZRp6ax5vwRrDyZ9iqLS+kILaqGE7z9v+5H/eASFsQ9VxbF4eiwg0EogieLbjasj9N5Fad0dBLOFQ6c9wzjvi/vtNuBONxVwRHI8AmD2HTRKswYMLVGVJ1DOl3WgWP3HClc+oQiQSC7nNKkAsDxoFTgSIPeEkJ3i6LiX4mfFxGdOJ/LynAPVRxIpPjOmMzRMFAySe6T547yzxubVDrHVFKZuqffQDtfHHz8/ljDulpzrD9E/hDK2282bBdJzN32Xajp/bCGGeU3XEtAWaZFHnuFS9PdBUbKDZyVdcdirrHMDthNYhCOO9HOD3Uqm+JAwt+z6VdOMiPbcvW4EzBrZ4lkaI+YuNYdbQfqCq3Yy7SQflQhjkNVTaR5zOy+TqYc9u1B+5pr4+aPvd8y2a9gyjAjN7UPIwcafHHa1SoIPztoBl+dORYidnSL/N1iY/93enOzsqKkmE8hO4IbC3F6n6MUbK7exFMvOsmMyrkRRwT3YcBs5oEp7P3ebjSaTlzhPV40Ug5X+9VARVGafXRmDsncShG6JgHI+zxV1truxGDbEFoaW7/5kNGFkhfyit8HiYxJRsSvZ1j/AjP6LyUxOfM2ik6h/GL5cKMV6fEcf+BQfRJ5UIg/HTp+OTeqPMhGKUD6FXXx53E5q/uySwtkXeTBpq+kIObbBs0NZaAkkmJ7CpKsF6VzmjhPW2ukHbeMu5NHyf32EmXLBvq7pmvY07SThd0gEAbQmFdrFPT4Wr/rKjRv/LpT9+TtQlzyG1J9INOSgniavlQFYUuY1ClGnM9pX7P2tK3o9pJRu0Ze8Xd6SGv0q2Zxapo+7nQ0B5e5NkhbbozPuA0WaTDo0r337+OLoUJ8Jj8z3/oCBu65VTbwXm+aPtjGQ7qKLfljtydSSgWjmSqc9R6dJTj2zhfDkOoJkmWNv4x7KLsupLukgyjU0VaOGzjxhUejeoxpAGb0bLTzMHWK/Hbe9+nNaO5po210pM6NHPw+SQhgGTqL565cEiQnkAUOgyV3Bl35z/3PjeHIiLXbgLs/+yBqnbqtBsJXWvsMw3lmx0zj+Oessp3T6oJQg1v1LLdALi8PrRHKneshbqfgeVSFgs5QyzL02zLo4NgZLKOGKGMZC6BRXSeON89UgaMtUYnbM176WcZZMqjSkVcc0Z720uFIOrhIYOI0l1E/EZ6PFObh2Qw3TFXQIT8HdgDXfssVFJRfXB0DM/vR/I+/QOvBy0y7agYePQW/ft+W12X3ZHz2Rz5rO7No334lhg2A2no8ah3qqzf0/G6vtAxuehIqK9fYNrh0asIMBtd5rtB5RQuDRpbNm5/FkGyXrSu+gdm/+zNUZw4u5E2TrCquz4ewZ965AI8eJfKZPPYj3eM8JTXPc3RxA7LRF75Y0mBKxRAW4anqKYzRJ2664ChTts7qTc5t2RNRe8xwglfuRnWuYUUXzaOv4OaKSdEeUBmIsiAWu+V0GdgfHccRp594o5l32T9oVAk7rz6A2YNNy/na5W0ExLRe2fw2XrAW+fI5+40I6AAKABpBPt5z6Ypl6rjAGEYO5i5S2Tl5m2UFJcA4AQlRpzxdKzLFugiuQcoV137w5TDESRrgVOw9nkIwkDJgeoDVBJz+meVc0/YT0lXSRkL6E5AteybjsVKPOb9xqm4NGi7uYklw/bCITHrQwYndmPrA26AeuAZKdXNpaVtO055yy2XpK7Z/wyFOGsPdTZf5TefM+6uOApauLHCb6bfK8q5WrEZ13To7kA4Y0Xj8O1+2LvQ6YXkxSsvwkYKpaxdGEvv+t3Hw7W/GyNgUKu0FYlKljetpAj8OH4UtPawIqRB+lmHwu+11/3Lnp1DHeYauIOXWH7nouDzlxxk0JElDEVNZIylwTLrcCMUiq/uisQgbZFrzkhUYOLVi8mSMR5lTVVSU033e9cGHgMkh5NXMG3O0UyNxAcRi8kffmXIdjk4/6vV78Ltdeu7TzSrIQ9lQmiuGy6y1tbXgd/bl2PaFPcZSC2/cck2znmdYfnIdJ1681sZcofXIpI2k52HvZALvii9P1r0gGLyKgwvCMQUWBllWiwSv/R4gPPS73DMwI05jCkYhrk/tRP1CGrQEMteI3NCaW47TgKJsDwSQgSv11/YZ3adzL74XuFUJSmUgWHadgld65HMOf+1Y3fupFXGl8TOXbuqhZspz2ZbrMfEPr0PnvqtMnbcg/SikwCONTAsBpW79Y46Z2y5Dw+hf0aGlywOobjzdNIqBLo66FyCHtNWXAk86xW6OmGezwNcvxdx3vuX09rbJ6eBXoRcIz5f+biJcMdLgVd/C9OtfheX33WHzhMrCIJEg5Ir88HpjKpkHuhj8ZpZIo5tzjSKk/au7LX+F0D1E964vKtW3wvhdcgyiB2dw4oXHoFmd9eybtqK9sSph8v4WNl+z023mpZx7uu6FAAj540EipoHO/ICgeXUPg6kEnsiRuncEV2Fg8c5vbsH0dliLvDU++RUkzVoLa567BJ0hpz+jqUJK5DfsbS+AMHKcRYt4BIz0nhbpivktlqmWhYu0aBRUN1CLdzR4hJbAG38EkgSG7AOUOU4+1uv1MLJ6fSlxoRZ0KUzKzfUS4SWlkkuqC+T4UkB9YNpwYi12qhLFAa76Auj5oxm6sezgdkx85H+bDNwMdvxR1r5T0CwD9J4cI4VvzWDu6/9q9PljVk1lDULrTwBUVvp+P6K66jzpBMOEuNVEw5PjmPzUB5C1mHHpD8C98jXfN5vXX4X9b/9DjBzcY/qwZ0YWCEkPqxp26cMnvhPFRd0F4gLql3J+rtE7Dg7n7/QY2fm6FxiWfj0RbVyDcwaLthnl59QcjnnhCiw5NvPgqEOqqhjEvZ/ZhfaeWknjVFAqVQ10p4uLzr7jHRZrf+2ADmDHtizuwXPjLGZbsNw5iNs+bURR8sTkDVgUAXmnH9rYwNoXLjHW0FnLUetO29kwGBwQO73kyLlYg5ipefM9Hb6fh3mmxTLlMmCO3v4Ar4HVReUNs8yIoGnzFdgwDhjD27LhubHaiu+BAyVAZGCka3rWbreV4DgVHelHJDlXmYdiXuK30wElPZf3ytrdrOmcPxhvuG2ugeiJydexcxPo0DQOqGSpbWH0visNJ/oGtB++k8xzXenrlY6yZ11iPf3Jm4ZD/Bgad19jJBg3A6RpsG/gGPLAVC6+9yXDQQ8++SSjg69YiWzQ9KnB734bs1d80RlGExVDGc33vEDG0Na553qM/b7hPI3RSIX+slDuFbhcN0o8dDy2lEmOr7BDZiEpOvkhHN1kc/mD2JVTez+G3eJ5FMN5rmJewvnwr1gsZZvHubmPbodK0oWo1UYCeeGTMGfMoq1K0Ylte6fGQ9/ZgcbcgGvvVhTv2AnibmK40/PkQRRFOIY0iJVCgAocrkdRqFhExbRq535M+zzU2wPYc/VBdPYPhFXoFC8ZtVpVjSdfsAGVVZ4LJee0WdOalmjOXu4nr+d5nOvJAMnA6Sa593a4QpPLgwrElwOHdx2gyOkGg1ihPiW3lPuN7eI79kpoRQrGKSAAIp8zh1mtVm0wPjI3Ss8o3KZNm7RUR/QbhFMJp5j+3gCWcra3TFb9M1fB7uBBkx+UcIkEmkt23o7pj/058v33G11iB27dDHpyyWXn8trmRbndBTp7tqD9nf/AQOZWetnpiLVlyFZucJ7GVG8QLQU5029qx24yfcfrwo1EN2gG8NZ//KvdgZTqtK36s1j9GCAm33LRvvc27P+LP8CKndutSsvOFKtkwXYwH9FXbtCHz/rOlHWDI/+YJBtR9qzsPpJ3yg0+MkwqeslnvRp3YSIx6/IMuND2HJuetxLLTqbZwx273TDHUW8O4JZP3gU1lQVBW3cJltqCE5QK19p91OtZ43SclLPRYKCBL7rI5OtCnuO3Z/e3cO+Xd6DeGuRIUe8ou6Z52YkVnHTBMdYlHnWEaqfq3uJBTiK1SA9zl+4XRXiuT9aVpmJrt2gW6yAYVDSSFWTOAOdDWpGRQdQNJmn9cfllBIY2GB89WNrf5s2bC/eJG6VzD7I6bQ9lXGe/zpe2ua667JJOgGvGBzCdu9VdKj4scpNJmuCZiSxrYfDmL+Pgu14HtXerXa4rv99LN9uLE7VlD1pRpzD3jfehuvkGN02JPknvr98ENbjErc3X5TMSegGqrU9jSMqO3mCXGZPDcauKvNpw0h/+VzuAOy6xN9D3I86jtTts3WI4z9dg9PqrYU1A1p+Cb4tZceO9XkT7wt+o6zjcNM+unES6xzMlns2XwWJD6EdlnEIujBK8rFEu1XTcJ9wqAMOltQfncPJPbjSqzo7fDyi3Su+KqZiDW8ax+ypyG0ebyjURJ6nzt8tWafCVs1BrzZPtGVhk48mE6AzAG9KisUVFbiwjUb1tRtw6HvzGNkw8PCNK1zWcVqWDY56/FnNLZ5wj2zwLXGphsBGdLS3DwgoiFIJbDjNPvN/z+7x6Ked5n3ksK44/1ln8VrwXMlN4z3HsGiyZEDgabjKI5HTORz4n8CTQ5B/dJ4BNQbIfaEqQTQG3DIBlnJzX+2Yq2DJTLWQsDJgeKEMatA51xaFrhqMb2vJ9TH/ub1CZ2lNQw3A6JKD2z5t2ILznQTSv+BQaei6EM80E7fXHgCbrKWTz5iv9jm1l5E2e4rDV27F1NmT0rO3P/xcyo6NUYkvuNI6FXFsp7KHNOPDXb8YyYzCqSe9n7KCEZ7fMQw+Y/vyQruBwUyLCA1pYjdORuXgv79tBC6QRRXt48R7W22U0tdjnTtxXusjh2YHOGtC9Dk2zNd+J/sr3R5oORDteHnvBWmTH5b78aRdMI+4a0aaSV3H/J7ehs9MZbMj/e94hAM78jxqvW58exdLiEkoiN6PATRNxZcZctEJURbjyzHUcpa2agBstPaM9b0AGLxPbDoX7P/2QsdArm/82gSvvZrgpx7rnrzI6rdyuhmGxTzqmoHs0pcJO2tfOUzqNJ856r+KsCb92Pfdr990mdqKquuoxDpLlg1seBjjOs1SryFVPPBnfHR0fygCZfKyLGDRPOOEEe2Sxvh8wpBxXL1E45cLKOD8+nzD18/3xOOEcKHKcjuOGq3Olomym3KhJiysG2y3ULv8YZt7zOujp3ZabkzmXaS9LcyFdnSmMfeU9GJzcHtqFVc0oA5zrSP9ZQy8GJwXNwndsv6qhtelkU1+VIInRwo6l2+7HzKc/jsxvs9OLeqU9946b87H9mPyj38DSb3wOde2s+s7Cz8Yj52vC/XpQbjXKuNYwIbOHyQeopATayzpP+kufpefdmSiMpL6jgRt5+lmdfgeusWrZ0IucEr9WyRuorFQ4/oL1hvtsGfAk3WHHbuNBHF17j8LD39lnRJGKBe+qX5NXLtpkcPo/eQ8oqjTYAQoKor7mbHju1om5PgKVBQ7WLW10jTIzQL7jSqNbOph50cZ3IBoAqm2cdOGxwCjcftkaXUsxbRlrBI/y0EVViB148twL2nngkmNedBiY4oAoASSGTzkhWRccjvWnEuBt3vk9V6WWiyRiLpSJz/k5c5wsxtMxAd+QVnnsNbCXgVSBoxfh5HOim6ZqnAUZMIaRQBrEXBGP+dUMiKqbv4bJS/8Bem4/chXT34uD5ufhnByzbL0H2U3fQEM5fwrxaYb66NE2lbrHuJRKWkUy5WO45eE1R1sAZU6avklD18znP4F8xw4slIJU46WObO9uTPzNmzH4gyvgvKX6ecG+7FyHt2+g17hKdzu0p5kJ9/388K1/l5Shr/hd9iwFy14cS3JXL/w+i4RlyZAVzSDiGq2xkhrL+9oXLMWSU+tW56OZ/TejcdYcws0fewCdKSO6t3NrPOl0pMu4TKSH53t2Ctw1W7E5UUVAjXnXDKh2Bjynm/PbCeECQNvkZ2gfqOKuL+xGtd2Ic2x9e1r6ZIWnXrTGuuySgOV8F8B5CtJFXWVaZv06pgwb5yNymlPbZnfHY85TAi+QGnb8MxWnMzE3ed9994VIDVCGxKdAKo8yHKclBTumbtAv6hhTMTol+f73JwbR1roU9IqMgkgbVFjP7cdRI3K3UP/y/8PsR94M5VfblNVbmo6Ylg5m7rwKlZ33u90yrEREYpfbZ72ybIVVYbXR35Vx2l6IaDEyzaOur15pHaJYBlq7xqaNWmnggTsxc+W3gXx+u3ehrM0vm53A1Ftfi8ZnP2jUVx1kKWaw1NYDM0K8cI5biPO8/nHQfxJVewMei6r9KAVS2XnK4iwHy1Jw1aID2/3WK9DB8u2+R3oS8qWZWTZeY2ZwFidedDra1dx68K5E2Qoz97eMtXvc3K37bYWjOzg2uMSGqcW30AVMMUzMQ/E6SHCF/ESuhEtKTH8yfxoYwpZv7MbxL1gLtclxioCbQtQ24vuxL1iDOz+9HdlU3U2lUW4FU1yjr3tyUSEfKfAnIML3ZF7TfhyDSXGS/mZBQki/H3TJWnqsjxZ2iMZjxHQYQJWRKBLdmfsk8sAr0qQW1L5S8bw7H+X3Je01qvOH5qo4frAdOM5C2BTEVbFErC5bOTd5qjmH7MovYOaYkzH84teZAhlG5FZV33zYFTuTu6zlnVw/VPyOAnbrbBqo5w7aY0Z9h9oIOwAp4Upl/LnlCCtWv5rPTcDtieQadYeZBFLNTO1HL/yQFNJNdT8xhon3/TWqX/8SBqwGQMUOo+ePKyXKy726hunFv/qoUJYmJ1LUi6YkO2qqD11IgaZxld1zSniOTsO52oogbcVg64WoY5NNI9FJL16P4U1u3XimVKiTgdYAHvzvB5DvpJVAVdfgMwdM0kGGtWnmTf+t3vUZB0hdUk5SHxiXUEaxJOHOEDt0xSg+Ozs07vrMdtMZBhAKgNboGz1u9dgMx5y/0u1rD+e4t8Nx9+Hwu3R6FKXTA4TpZpaTyKOfU+2ndPG0rrjqKrrIk4OG+xYNOtJrfuTsgkcrofqgdBEoMveZcpQEpEQEliaMBVv6UTipAy2CfTfgpaK6DC+P6a8Xx05ZuWp80HJp0kBkBx5/wWCFkKbirAiKn3TWZDgZaE6g+Ym/xMRn3wrdGnPSkyofuAvcsmkHy859CWY3nARrUdDRf0G11cTsf/8Dmj/4HNS2ewxQT5k6NUZK3XTgqmmrD9e27JS4nOt61obFFsNhfuYjmH3fu9DIYh7tPktGpJ9+6lkY/omXeiv5AogQfm4aE3//NlQ+8E9o5M7zkz4E0IykLLf9ZT2Mx4uSiVNpZ2POUp6XUXxWXiC6wJHJIL0aaRpPaccgX0YdNwFdjeQ4/kWrTN3OWaOMNQipijNwGN3nA999CPV8xDpMdtbz4rfYg7trrAQClfAsdqhoYS+mqcAsFTql45Ql9xDFd9622Ol4zTeytjVtbbtqN0551bFQR8EuLc3gdsLMszmc8OIN2H71nVBjVbuNK20JorjsIWpCi3s9REG5v1QKQDxrIOZTFQeEGBNk+3DP88K1ZDLislBYgCUg9Bynvc/AyODpj+Grngu118SlnnXWWSKN6Dovu1fGcZapPcoAl9+/abKBX1o9ZQd1JTKodUk/8PlmCSCWrXZobCp5tDmDyS//G1prn4rsWb9o9I9DXelPAZXKr3LcM7DsN96Jsff9AZY+fBeqHbdijbT8y3bci/F3vwGd5euA1ZugjnkKKqc9HY2jT4Zas97Uf90CENqz0NsexOzme4A7bkF+7+3I77kb2c5dWD41DqcGcz4ZZmtVzJ50Blb91XuQPeWpWBiZ9mDE9plPfAjZJz+AoXbHSFTOP1c9Vzh0Mhy4SdodrcO7+kiSOvVpzy10iZ27dseHPRplFC8KXbYnGHZ9tNA4swWGU7HTQ8yvU7D7C238xZU487eOQ7PudDTWYmiMRdVWHTf+y53Y8/FJ650p9wDo3s/8ZmkeNJUE1u55eBEQIghwWAkWcbBQfTkZokoALKaO1a9t/PUVOOVXj7U6T7LGZx3neLlu8nP3R7bhro/tNPqjSvAsxaApPQTRdzu5d6GniuoIPpdlW9Av6yjyuXx0DxhxkEUhD9q675Pb5wYNBtauWlUYi2f3b2nMzc2pRqNh79x+++2KwZNA9ZRTTtH0nK/5GdPSpUtnZbppS5AUCNN8p5Ryo2Xh07LaONjBJ0/ehzWNTsykKHvt+4Y8B6tsdFSNEH7ajQWpuIwEMtZYivrPvxlDF/22XcOeVZSbk6z7eT0yA9vUNjS/8E9ofvPjWDKx17lSpHeNbrTScu0ib9H2KwpNZVRAS41+1OhIs5ZRde3ZCz2+35w7xzZVajMmrO64nTWdpJbh4NIR1F7/Boz+7K8BK9aaLPVed847vVqfts0WDv7T25F98F0YnZmwjA0BqN1vPjaanlJUP7rL6D5f2V5x2JZwpvvC9/2qFFXTKSmiu4jw6ZSookgkw8XzvPTXnZbYoC2E8nQnI060B9o45aInoW0aMzkMcZsSOtdbs/fPYu83x0zb1M7JMniqBE83IXG1BXgnD1FUdVRstFmBc3VSry5M5YnOl/lcgm8sN1Z7uCWSrpO5ciIPoRVs/+oetB7s2G0/3Pay2rrba9ZnsOmFa9AZnkXFq9+1B0idsPiS+9TJdKK0zlx+oirGQqMtJy3E/E4s9yD2d+yPlpmioDu2ehH7i8kqpo/CETgSJ0lHA54BICWg0nN/raVulMOk7QRY+GBe9n4ZeErOj2jHXAV3z9Qg278sdyR2Abu9NiTXK0JR/B33dJkR5/Xn/xl6yw22TXZyb6Humx/TLoc3oPHyt6L2m3+PiRPONXYAZx/OeNmsae9Vc90wfWCpnsXgwe0YfPA2DBlRvTFm9KiGC22Y+qx7ow55LaNtcKilNE3iJ841nO473oPR17wZWLmhL3gS5X7hL6W6c/P3gX9/D5bNTFlVA5VT1UhOmTHmmgwiTGNZNCncbSwHe/Tjx4HOM5E+NoCUiqBYVrm65ztleqZubjfqVoFufSs7DG6ZSt504RrUnkSjuOMg7fzHvG5G3iHc9pkHMb2rjTxMHWWA8OKT0E2Vp0OmP+4R797T4r0ytYdGnBrEccC/613h5XG7DVkuczsUbvnsQ6jlhgtp6zB3ltbIq+M6OPaC1Zij+a1agIZPZ5gfmtQG35NAkHXlUaOogpD5kzMVUDi34XMehIretSJgStOFG50ZBP3RcqISGIkD5awZcCXuNIQh0O0nrqd5SCkd2PuBVArMTZO97401gHSahcyvV20oyDIrcrIxTipzN695eHwbJi7/pAHVWVM/NIWo0jcfjmiZ2hAGn/kKjLztUsy9/M8wtfoEI3XVndTFdgpf7m5usCadSGzHCkGSUW1qbRWMH3MC8je/Ays+8EU0LvgZuwtnP6mRqeJmIAPTk9j3kfdiudHtKjGAqh5ltjjSuDKvHvb175JKSiLNiMIhDg/FWESjLhON5LMi18od2gEYzyOzlkba7GrFLJ50wVrTUDqhgdh/5oX23gzbv3MAlUrDg4oUK4ucbr+OJDtaMe32Dr/ln5edl02R4elXsVEF/lSRGDWAnVdPYXaf4wScpsHF1VZtHG/y3Fk1i7AVsRYrs3Rxn6SCaIoi4GqRx3THyKKo3z2wpJ066nV9h3SjgihnhTKR34AkHwMnytd0zkcCTcmtMjea1l1ZfUnAmg+M0vpP2yU/v2WqDslJBhHeb3WsQ53qoMIogAa4HF1ptDIPubQN986HTOOe9gWlsDCO2s29pQ3AllzyBxj4n/8PEyc/G1NZw8XBAOaSFzjiAGicdvOtqcEhTDzrRRh990cx9Mo3IB9eapdYlu3AWUpWdjf/x8ZQffhBVwqGs+lUS+rgkMDTtjLccJjd16WURc6HQYWdiUQuqpxiJypftVQEnpRrkZ1Qqgh6cQVajOocd0e1sOkF67D81FG0Kpndn5obRX2uhjs+dg+qE4p8FLv3vcu4jDlOpYvp8ZZoXrFTLAumPIC54xh4KSd8OHbEwlboWEaSq9YBLf3gAO5bTpxpmAZY29vB/Z/fariBQU6qaeDmfdMIl500hKe8eJ3Rj/otMwyodqyDkVieEZBDAi1Ist4UQu+XJQCjdSrql9VNVtQZame8sNOuc10AartXeYfcZ7S8z1ntnEsnlIrl55xzjgVMAtmBgQFNx5GREZswOi/nlnsP0Gn4dEAve0+SBOQbJ6vY34nzD3mIioKZKjzjHsXVER9Ho5LylmW1bDXyRtUGzFWnbzq6BmeKorYU2YnPw4o//xQaf/AhTB59itE7Gm6UrOZywn21YgHbpSeDMcFi7LiTUfm//4WRf/4U9GnnGECuWXsCdGXBvt6pXVpLxJAB3tH1tlvYMs1VoVy03cFU4VBsSQ+btN77ODgQkVTYVK6byu6pPueSG+t+dyFcQPo8DReAypxUjFLnjJ/ZiE5lCnVjfayEDX/M4H1/jq3XbLcWejevTfnXuFNH6zVQXOFUvBfTFa/lNsOuW0SghOBUJCetwi9GG8ss7cNtYzyiSUoPXbYTs9vbQbTK4TxOtSstrH/xKugG7PLOprWUVoKXJ45U58W16cwVKVEnfJ85xm4OlMsg7xr4OB/dapfeIMbcGUfMHCcTAaO5Zx9ef/31AVRnZ2eVv6eYa0VZPhZwXz4ru9fvGdOM0VveOe30oCw5+Bp2Kg8E+aNLpaIKXcQ9YSjoGP1j4+SzjR5yifek1J2ndLDrYjTIkEcnjWVoPOenMfhH/4zZZ/80ZiuDRoJxuvO2dSXk2hYZjKYMNzf7kz+Hpe/8CAaffyEwOPgINpn0JTE8iIHnPg8tu1Iqs6o15hYWxMn2oZuMAenxFN+JMswrnqeFp8VRJ/d1EkY8TbiX+SgV5cOP/C2ZEbmlWzjuwnWoHUN3qs54RLtgmtG0airr5s/cgcrDA3BWxDxYPyOn5VZnsHqgu8Nwo0ynj0AApwsXG3FMO4dlLk2qJAKnSQDLBqg8cqW5B0pqHK2Hc9z1mfstX0f3s07VTt2iOJYcPYiN54+YV+acoSmP37ariZjbQqyRwLEwNwYhfiZlELm0MmDKQqxSFcLxxzJNFyC4D7p9pFTgKokINAlMPaCyKG9fonA+DIe1v14iu0y/1uXTltK8lrXPtP2l3O71426KmUIcKIOsJD8Rxwu+9DmLtWMdkZh2cGD5Bgw96ydRyepOismrPdPfi4POLTB2nMWbRPinnIfhN/0r8v/vjTg4Mmo/TuBIYjX9O7DuaKg//3uMvOXfkW06y/YYqyYzx06mkGhf5iWWBbNaHcMvfhkmVq21KjfoOCk/pPsQgJRa3Hfzx2f1kaRkJZLNsj3jzl58xlR+nztMCqApJzcfpSJW8R2ny6mvBNZfsMpYGzuOlzTidKuSWy/W9V3D2HrZbiMGL7ENyFamMXBkkWHyk/AhgC7pVBpB+W9VWtIoEho+nbCVWQXu2DZ61wTdKqpCO1HxA/AAGxLlpw7lHIe51a5i11VGj/tKY0VdA8yx82bSNhhR/kkXrcPW7+1FdkAk2nVnaG+sggASKCUYH/fl3DtvKACrksCXCQ67OEgGdQQikKpERuWytWFzv49M0ka8rjOAJXObfE2cqNCVhndiVoq9u6BaUPP3fKXUvFwqh5HzZ2+caKBF6hbXWKwFUwndZqx7XSxbUd4ugCuRVqWKgXMvMJk+CkIYQj/JTQJ7GMB0xXO9me3RVrVTGcbS/+93UV25CrPv/AvU2sYqbhiRmfowht7wvzHwop8ziODWlIt1AE7PBzEIY36ySKL89MBV61E95xnQX/+MVUFFXQbsEuTYXuaP182w0RjPM9zxOIvvRIk/UEnFjl7OiZaB4cIAcqHUxfnQhDnTOI5+yXKMnD5k1+vSlCUa3mqdBqpzddzw8dtRnxy0AFIxhWxdwOU6iqi2sQoBXnV/S3KVknPkyvbT3z2WMnsRV+G4Vh+6EnhgSWcWiJwGAw8L2TSlye6QvaeCO764BbpZN8YlZ5G1059MvodOHcDxlxzt3rGtS+RFR+DXPqO6MEgIPSdzqqKjx7rSBY5BiugKkUMtcEMqth8ZV+C+/TMGSgmKdI85TiIS2Y0utMCtyvMy4m/GHUmLz8oG9V4gmj6TYcixyIOzdTctrmCd1mLQcXcydHPIKsTvZKLWkpWoPeOlRhtTL3y733lB6gjxOldwoRyUb4vVEQy9+NdRef7FbgcEIwZXf/oVaLzk5dD1AU5I/IY/9nbp0Z0umT8bQ7WG6gt/EhMDS730IQaORWCBDa7tvou4GzXcox9fAxJRya6cZefMVUpQXVjGe4lUvcLNxwkQUEwNjeGEl5G/z7liINOI5+7R2P3dg05p3ckDYHZTTItbxhZFbP5e3N0y7Rip+BdSKa7lwONHYrBoq8N5wF6INiX0oo4jreC+b+wxulCaGN204Gmt7SS8V2eNGL8aM0snrTjGnKxlRpXqCwqcz65r7SC8ML8VKGzaF8oPst7QJS3EZ7LuYzkREDJY+qNmDtSL9JoMScSBMjFHSketu/V/Ml9lonmXvlB1W9hTKlMREI0bu9htU1VniCl+pZtbFz8wtw+WdHxZrjsG9Q2ndQF8CpxlKoiy9KVlYL9P+xwtXeJdCZlB2gBnnmWF+c+F99HNTpV9oyeZNDXOfjb0UceC2YNHQrmJ7w6jr516HNzXpZRZFtr/ECayuwnTZJSp5Np7BmIOK81+bBZlE+LznK3S3ZPke4kjXfeMeE7cFgFLu9rEky/ahKGNw267ASBUSd1YVO761GZ0djhnxNyYrDXQMYTuHBLMpUcmBBBgYOVtR4iKW2bYN0QqlZ907ib6O52myzc0wj46YRfU3B8hy8vvVeQ5PvqM3cmTbNvbGrj9k/ebjtoIxe6ma2WoH1vDcS9cj2bW9NtnmLLKYlMt6JN5tgN0sWNpt92Im18rt/TwNc7hxEyJODmfO7nfnlkChxa6wZAnHQYOBkYCSi+mKwZH4jr5ms75PoXn67IBot9ALWmhoCTDdn3L5Oua8TpadqGG9vNqfbmjhFuE51oYsGVMNENizZOA4dWQg09ZnvpJcV3P7GCL0Gby+7+Hya//N2otZf3Ezn3588CDt5i0dwo5i/mI6T7UKevVdcdCHR83qQtf0YuD09z348sfJ/d1KWUR/+RoWeTaFGKj6D7Gd4rP4nnK3dm7iyg4N7WDACdDY7SKE164xog4Te842AvTpmQ7Oyt44KqHHHAIX5RWZ+WnSqgsS0Z0aYRgTtGXgSrmW4qq7p1cxMXvu6Isct7FowN3LThPHd4PgKBE98vd9h4PX70L+b5KnGNnH+V21chTXnoMaqNGjQHneSeDCknXgttWQkRjPWkQ40X1KZF2oawI5RrS6PVcDI4aUaflrn2+S1aXUTgCQiI+rl69OmdwpB8B6/nnnx9Kju4Rd7p06VIt40njlYBYBjYLUSOlnHOvd26YGrCWatI25oX2kOg5PeUuchc/IkdKDraz0dXIKjXE9lbu9T3lUPkoB0UJ2vY5+bzb+QDGPvg3GJk6YOuEng0f2IHpD/wd1MHdQNh2WfKciwO5MtLVqtG9Lo/5QFKmC6gPfo94vZtxpABogVwn7qYUNEWHKtxLr4sF32sUlwrw0kTmbjkjWRbXnb8Cy06tGuCYRVWAMuk5b/qPO1CfGDRWw45VVnMlyUYV5zYKMVkAQcixTgeElCMpTszncHK1TsyO5NI5/qI6JHbW2AGZU7ZTTQxI6v0V3PO5h5xet+KArGZEGfrm4IlVA6Ib0Oo0yYU0Om1R1gLYHNejnHsz/qeUH3R8eAZYz1mWqTgQ8pkHkChhfFzZOn1CuNeLCDgnJiYUASSdM6hefvnlFjD5HoEq3SuU/EK4xXnAsKxdlqmg0nsPzmR4aDYTZeyfcTyI7RBaBw7URxB7Dg2qlUphoOWfVMdw+lMdaJo2mcYsb0ONPYSJd/wPLLv+23YfJVImZlbKbKLxjc9j/M9fD+zdJUD0kVExLWaAqVTDwI+0DhbIUBGvcU+njr2PyAnJo0eZqCPPeegS6JOkwHMoVeFfYljpF0MyKJeLXGKEtVYfhRbtdfRzx4N0x7mdnpHbH03Inn6waTi0naiSl4JOXIkjt5tgcCpylvF7spHGBpkF7tTdi9wnoLsatbRERw5TFd6PgKoCd207VmhcIk30lwaDjgFLk/Gtlz+MzjbzvXbb5tuBlwM9Wt7ZGWq66VkF86BOq7AAmq5Rey4/c2nKxYoiN+XIp1wuhYUY/FBUjSARj1HgjIrJYW7Sc51W7yk5TAZWes73GVx7AWcZSEqQKZOA+onw/e4TR3THRB2ZHJRlfBJ4ZfvSxak8VkoaJ/+bsRfJ/EjglEyBTJMFS7uijJ67qX22ZnY/iMn/92cYvOsq4pMd2FsnS+67VTNI1665DOP//Fbog+RpnnX2CxPaewF3kAY6pr2OHbRLke0zn//QSheKh6ZhX4NBHCmUcVfwVRzyo33R08+5gdReb6dlzwydP70XhYfi6FkMGFc+xa2U+V4e7jn86mDThesweIK2U5esL0H/lWpex73/8RA6W2nuZMuMqA493H5Eyi8w6oQfeaMncOUtfeUKqFQvWOAI7W1utFGEj2J/sSFFwIS4pyG5Xx60nMVee47E+eW0jjtsRlzH65iBobXZWCA/sdUI6o24VzstFqi3UT2ujeMuoukvbYepymlenfZVlGvu9J1Oj5lwaaWGBB24KJdv3eWYhLmrqD+OZRqNT+Qdiq6dlyj6ESAyOBIoGnE9gCOBKaeAwpEoT2HpOV8vFAwXQvO9I1UDKXd61VTdtslYYkCZOM1gqsW90KLI7+sDt0Ef2F0K/nJGge7DsVnGAX5DRaqHLd/H+F/+Ega/8xnUSb1DVZVpa4xxfc75Bx3Ucxj6/Mdx8PWvQOeeW8zttu+D/cukX3r4fmv7vdD33u62pIHHkUOoo47J09VHgPWdKZlI36tSJGikv+4lfmXxSY6gLHxfsYv+H5Vj00VHo6VaVtdk/1n3bgOo7Grgvss32+VmWspPPcTGMmALfLNPZwQAFmM1oojfg1PW0YlGcVlq0YNVzKMqxMPfYmJji+SKKY/3XbUN+X7D8ZiBw26X6wc4cuN3zIWr0V7VsnHnHcdpuL3o3aDIXCfLDSy2s+geOJ2EA5IDoSw/qUuW4bu5OZdH5tI5HiOKFwqSAFK8pggkCSwpHIvy9ECK8P30gr240DLK59meoh9Q3zxRw2S7KNA59UUCnkL8ii3ChakbrMp23ofmbd+G9NzP3y4F5BKy36V5oO0OZm/5Fsbf9QYMP3SnXWJL952RkvOs4xQ/uySlieGbv4fxt74BnZuvNojVWXSZyHTYMHkLnau/hcpDm43KqeLbneoqj4XQTtPv73scvS+lNI83psWSbMDxXkH3lHwhXBfELmU5MtqigMbSdsXoPi9YgZWnjhiRoxrVBobDqhpr3E0fugsD4yNuRM1kZ3J8dOQei4BVFOmk6M2iRwY5b9MBa7fo1M11sv6TB5jYXiIQAdJTUwQYGU9MW3hu/jX2LcFdn92GWrsa1u3TuE7GpOETh3Dsy44y3WDWbndS6bgN6hwEZlFlUFJtCqoIRirmT+4NFfS7yr3l9LSxY5d1bnkrioXuptdvEheqWYznsAmgWiCV3Kgsd1lmEHVZyGqPDp+mezHAS3HeP1PFXdPVohrDvVi4VsUXwz0HX8ZIOncAs1/8J+jxbWHGg+Q+0zQG2UdDPDfvTO/AxBf+L+b+7lcwtPkW0w6a5lnTyZza78eu/WR3tzeM40oNOJEP0qU3Xofp33g5pj/9QeDArgi4KPRy9CPmtdWeHZh637sw0Gxb6cq5ORQcqO4fj6TbdB1b88O/fXEvyso5SpRwmjrJJ1e75DwEN+O5ovTHW2iEezwMa9eBXYPRfi9q19nag9M47eKTrHGopfI4apuTqXub2H7NXsBvRWxFU97uGDqAVZZVwHCdAqDjPJzOsiCSQneJawyEXdv1BnDJIblZPsrnUvQPQO/BVMYbOWEGA9glnbV2DVu+vgXtrXmYhWC3QqbwphM85fnHQS+ZCyDutm1gzTU8VyrqSZRFSCcNXeTjU8W17brQSRF6ruO0VPCNqhNRPqX4HRchgyKdEzASmHJQFvFJtOeffKcMEGW5p9QLCFPOrgB6JYBcHEwUZoxoesPEQDcwJPF0MRFaR1BSud3muvHwbZi97KPmctY5QkZ5XvLQdhCRrTMH/fDNmPz3N6Hy3+801vYxu4um0xx5kd36cKVmwZIJp4U5Q/IJ2sGSyX3I/+rPsf8tbwIe3mp9d3olm22v3tUyysqYQV3NjGP6g+/G6M5tNk474CvBgS4CPIluMqqr1iNi8h5dqqxed8xb5Y3JqSl/1i+RRU6uoNNbJBX0OoL7oi2JczMS0hYcJ1x4NNb+9LC5boXpIgQlNcN93vBPd2PfTeMONLllio7Oy9Di9JIilxlypLq5yWJnYc4yHlOOR5aJ7EfxezGu+E55XLzhHQ8AIY1K2dVX+cFZzJmyWf+s5bQnsn1eIfHIPKuNKsxtzzF+77Qtx1bWseqOIE5qCJ2moICLbj5jxIFivrXnhGV5helLPPBlKnYuBfC+kMPDS3z/ce+d9KRj/s/KlSvJxyc2bdpkgXHHjh32nH5E3/ve9+wunPxcbnXcbDb/QmZhenq6JzdZlC7m5zBlOAmwOmlLTHUzeF2yehaufsUzDxYcnwMX10DCNbgnaWMh15i891aj126gfsJZJkylNM1UR7zmXBFw7r4TU5/+G8x+5C1Yevf3UGvO0npfO/1PWT2nq3vCTdo3njzTd6zaSzmdeVix55Zv0nV9zljo77kdBy79FPTenagcuwnVpcM2pZkqmo2LZWnA0oj/k//2TnQ+/E+G+2xBPVLXHyadb+8sxW79+HGgS5YsKVxnvYEyAqOjFDQjB1E8T+OLBVzWSGXDlCIk6WoqnQqqy9p48ouPR72S2SVcfvKMdZs2s3cO26/YhXp7wCvwdXnciX6u0PELIKIKYYpx5SVciuOQJccl3kAQb7UulAFzhoVOJlOh4ihQ7DjKqiTob6UyjIev2I25fU3PXToXceQpnFyWnfCCTdBDbdt5yHrP+k7OpeIOkICE1H9qVr9IAPIsi7PipmXo6zDrBqpUVy7LROg1Cxym0I+G+3wkLlU+j/XUSx8fB4KUu5xPPJdh5TGlWyfr1tGyKkuHYlUHCpDDHKm/sOGoXpa2DgBf+Ee0b/q8AaKpnmnRRlWDye2Y+NI7MP3OV6H29X/D0omdvI0RVIV2tG3bL1IPma7UMLV6LaYufhXwB+8G3vzPmPnpV2FydBVmDKjm3glNx60IMaOyGXwN47J830PAh9+Fg7/zSoz9y/+FGj9oGlwTZe3U5qk5h7kvfhL6vf+IxvgU5FS2Q6VJk6B788d//bsk9dQzn6EhxHG3J5LQRcagQBe7Hrmo/uH8E6W6RvIsmdgeRFfSxxjEXPmMpXje35+DTmPGjZ4VbfePGZgdxo1/fy+2fXqHBYkcLIbrrm8qv/Wv/FY6PBTBsTsP3VyozKs0jDgvRSk3K8MUdL0otivPrJSmK4Zz75IHqpNeuR4n/vrxmBqYNc9bfnEBUJ0dxNVvuQN7v7vfDzfe+a+mvWii6NQRWvAwERzOOUvgKoXSPoAoIlcFMNfKw1v8qyDrNcNRR60SeQNu+d43rEmVgJFEdTl9qYwINF/+8pfrPXv2KApv4m3KOjf3e4rjsuznCyOfSZrvvU+fdgBPWzrrS8SXGSJQ6iRe2wd8e7Rh/Fw22jGzZtQCEwPLUXn+r2LwJa8F1mww75JzZNOOWuNoPXQPZr/zIWTXfwWN/TvtqqIwOGvy4EQqlApmjXFLD69BdurzoF78ixh48tPM4LoM8HOZaTsWNTuF2ZuvwMxnPmzk5OswtOthY7E3QZra2RUEj9QyzM302nWo/+TPmt/LUTn+KciXrHBe7tUc8h3bMfZPb0X25c9gZHzW9FneohHFxr1Asp82SfhmPoRfa43i8aR0T6SuXTlD8+8aMMoyPt89CUSqb0PuasDeg/aGs9cZKcT7w1SRc5p5sIUHr9ls9DsNq/+rmIbQ0eUiQikXkYRJAZzLQIrY3dxqcW6e5BzLKOVg7OZryQDCe7zLd6L4D3HUdnrT3ZdtMZZ307GOyy2H7pRbBghrOdacuhJ7vnvAlqNmjtfWQwdsIPOTpxzXmEfAY1E/KLNEiQVultOpYxAW7x23zFCqS8pG2bQyR8ngKUF09erV+lOf+pRicGXj0gMPPJClK5HKBs6FPk9BkcOXgWUKqul3bpuo4tylgstkrjOUlS50rhSwObaK12cNz42h9dV/xfR9N6By1vNQP/5MNMf3oHmjsdTf8X0MT25zAyKVcoYgQeRW713D5MrjUTvrhRh4/i+isvE0oLY0bjzIx2rdAGwN9We9GANnPRfNO2+B/uLHMfatr2Bo+y4jwcAtTKH6NTrtGtpYuvMhtD/4Hkx/7TPIz3gGBn/iQlRWrMT0Xddh7ltfxJI7b4NddJvB+enN1CGBp02fdr/rjwDvSyn5FEXuKlK5KFTkTMs4UBTiSM9T0JSuweQzGs1I8Fh15ih0RQf9qFsMm2HrlTvQfDi3CnLXx/tXThmnK9Mg8yc3Rks7CL/DtyUwyEGhe5DQCffJexe5cizjeiQ4c/YY1LkfNrcrbPnWDhz3Gyvs3D8CRqsRreZYcfKQ5TDrnZoXvV1hKeaGC+DprLOOsdTF8hRcuQPDiuWCJKxaqUEX9by2urwvVje7X+bNDXYCGLUEU7pnrhVfS8AUE+/ttsaqBIxSSsuey1c+73UPJXXbi743Uccryb1d5kVzBkUPmnwvlK8d1dI0kdUdbiykqUXZNKr3X4Hsvitphq8FsyXa6ymtukQ5n6HV3HaPJjnV2Xg26s9/BZY95xJktLZeDbquA8ENJuVjudvBKqrnPAc485lo/M89GPvPD2Diy5/DsvtuNX1Nkc9uazrKOnXUdQv17duht30aLcNtUk0PmXpdRmmibLk/xfweAtF81inTrn/Qevz9f6bkrfBy8jo7zyhyHUFs1KnFPp0Hqkrei8e0gRYmXOfFqTKdzFTQ0ZnfYTNO/xk0Os89N+9Fo9UoYLT9si752fh4OlMxj65uc79c0Tv/8OFYHJLv0TmDcRnoFXa2FB0u3W8o5LHjrO5lz1LuPD1SJ6sZhNxz+wEM6mG7zp+5Q8pPfW3NqkKo8ZJ1lzlUuwqO9t3J/OjjnaA4xyfMqYqi9cDrcJXqqeVXKhUt7rwQQEdPKVGEtw5MOr6cY/5SkZ1Akac1SR0nT1kikJX3+4nlaTmmVJQcivfKwqZxc/ySbpuqY3enEsstLcc48kZgCeUHbqxglaGbO+F8qJLUUTNlSJydnVOSKTvzwkZj/swawJpctQntS34Hy/74gxh66WuNaL3BvNyAVt09s6REiB2FNdOSO72V6zHy2j/C8n/8MOZ++Q0YW3E0ZgwX2CLn3rwExy+8oCG6YlQBWaE9JYNwMlgslOiNh8x3HziCJtAzVbu5R+6kCsWtBNJzhSLIyntM8rqcA+1HpIcbHhnCrJqO5U5zQ+dyHNh5wCS+jsI0ih7RaZ46UZKGcvGsTOTU6CXK5bn0XtTNtXAY+T6DsPThuBAVR6piqJr3x/ZOom2sF7S9R+5Fa+LMqewcV6qcY2dOb+Z5Sd/ISXeZs7s9C4Kut0VuvILAlWsWzXN/7hcw8kjlT1mU1H4AUpD1XSw/FtHhuVAPkOGcJ9Izh0rEIJoOyGUithzQyuqvrL5k3POJ8PL+zmaGmyZqWL+8ZeshPGMADiUQIkjuqTD48KKHzANqqBNEnK1aQGtjbu0mqOcZjvPFr4Zeuha0OLPDzpT5U1gYKZEvcrCcPelULHnz3wL/4/XY98F3o/atb0NtvteK5VmWe8c12u9J5nOi8ajSLUaK2nsEuK9Lqc+Ufu239dbih5KC0SgvLVVyv3wULyPeQdB2Cq3DqKY819hutQvcDy8XLHLI3RbwlDtkzrcrV31APu00suOm4fuBKz+XHZXjlsAqv1vIg1M6otlqwhWRjv6+dOT+wh5OHA885xW4Q88le9bTLxBFNHp1/LeKIOBzAngw5nmg7A5Pc8fnNzSXHZdBjEVyotISL+aEBtBMLfJlapm0/noBZoGDLgHb+UA3pY753E1+mw+k78g2yT/xjInfDefdEOuI9mtfvh7N5/0Ght70nxi65I9MQW6wBiQevoBuFmchVGjHljE1vNbaDVj1x+/A4Hs+jPbLjTV+yQo/25rj7oUFj5yut8zSkUc9ANSDn8oTWdivvi4R+VNxvnynzlzsGc4dr/vo1vI6QOjMtnzFuInylruq1kyHW4K4R8c85AGYHCxH93c6zKPjnwTTlPuLYEtiaNumlcV+mfe0w0k1RXGXy2Kn5XvyeZoOorywSZy2XqiWDjRQqSvvsNHVGa0u6czmcDuEuD2WrLcfOzDmfkGD62Y8HSn6AfUlQoCZ+03FbIf3XKxW/p7zh2j5UIpLu/K1z7x/Wbt1BZcfuBydhMPdmbhPMhglU5csByom2BfEd7LEx3JAoazKuMSyMu8llqdl3k8aKKu7K8eHOCKOIf71EgIEV2rf9aJ4WFwCORAi/OGymxpcjskX/A8s/d+fw/BvvRvZmjNNPdZdOpXrK265s+u6mf+pQ0QhV10GmI1or556Lgb+6j1Y/tnvYPzin8X0YN3JGMlg0fO32G+bAeHy/MhxICJpnkWlWhx1j+uF/MQ7vpxj44tHGc7OdzT3Z3bPRVeS2jWgVjaH0Y0jaKIZUpo2ekldui7uEHlR79ornvLO1p3PlCNNdZuyw8m402PKUTE3SvGxLpVTMKdnsHzjUrT1XBC9KH/kqKO9n1yVRUHaM6wuHWKvJueJvGisiuUB2+uUYsNZbs8hylLWc1wS6+sZrtcW+SsVXiFAJL0nW9uJvLhuQZWBVdy35zSNCQn1A095XVafZeHKVCnpO6lkQbR5toKJjgQT+MHK5Z/LTMUIwVx8LKVCzsKRyj6jKX4bT8XSl/8B8tVPBc39hXdk0tFOB82DVqk54hBJ0TxRb4LSFWOgPO4kLP+Dt6C94SmPNOq+tNN8c+cRKL4TLXJVvudMS+/P907scIWG0lP8NdZHo4w/cP+MXZ/r5sm7RjfXmMW656wy1qSOjToVu8riLful4eTqmrIOI9OYiobMYctw83XmXpSCurwubqthOsyyNjacfxTyChmKqsGIVDF6y7337kelWeG+FdbxR3BAENXLlpV216sWTEScT8scVABHxRyrj8EfVQoLPk8eFLU4t0Sg6oHSAindMyBKgKrTONLy7afLlPfL2kMq1vP9sjjLvjdjmuUPxmvdz8LR/Qlx+LKy7dvPAy0mVSEoXJSzuusH78Tstd+y/jxtWnvtra57nC+Q0n5UUX51n/llsx3MfPXrGNj6UOifWGAbXwx9x3oeOzJpAQDaqwaUOOoFvK97xlnaCZQTF3fdtgd1ml6hiq9veOYarD59hbUGar9fR56IXf04ydKUyvC+kZTFExqz1oV162W6uOLa+u6OJ8si5TiRlokP40RkZTm7ZScNYsWZy6xoRm78styJgiR+77hjL2CnNXUPFrI8ysrEzUdNQdSLmcFIEOeWRg4rJLooooawOpQdHUkU9+Aore72nhfZ7TMC0sSIZMOUidtl4FbG4ZcBai9KxfV+gyrRjdODiNIUApfpU4Qkgf6HAKQRW33cPKC5KDE8cxDtT/4lJr/zH1CtCTg3HZkX3FWxez4CSgcXq7ah7X7GdmPio+9H6x/fhvrsJB6N6UrJl0NxXYcjb/oSUw9vTAsphG5gdIXdKfnlxXNpmNJeJEQRaNxFBduvfhjNba0khQrNkRmc9caT0Fo1Y0dfZV27qa6GLvWOsiOlRiQWazOvH3VckxJ7GGmnNw3g6X5S1ONpUE5HmkP6N5X37V71Ofta1CEcr38vm9rFP/o+eViiGQozy6bwzN8/Ex1j8bVe+OFc29HS+NmH29hx/T7roYq4017OT1K9bCyryFXH9zpFTlhL3WZebD9aF5qRrZtQ51QOpsurjuUy6TkBqQBIZe4HUZ4iZK6T54bKNEtRu1ya6aZUAimTXnpJNL3AU97//ngds9rvzeUCyK/bH+uewz0Gzah0Aeu6leyX5HQka2HJ5MPI/+03sf9dr0G2605T76ZMbRNzwxSNsblIf5r2hZIXLrwTkVnozXfi4Ot+CdX/+7+wbGYSdsb2I5goX0pe777fMAW3tY8c93Up9TEiPVJWPGkchXvzj/zWnyHNa3t4Gtu/t0t0Vu/j0jSioafWcM5vnYq5kWmDte2enabMYXJH+DmUHaYo4spGjHk5ECapp5TPy0TMNF3pc/k9F6/hKKsZ8uVNPP11J6N6graTm8kVWYvWPCttnYrsv24C0ztnnYU9L9fVFcEfhfSU5UvWGwMsQngV+K0gkYoJNNqDQOBg3Re6dJrEVRKYmp8N4K8JYIP4/ta3vrWrotP6mk/3mZJ8JvOf1ks/0V3SfdMVu81HgD1GIV9WVl0U/HAiqj4YXKFQtGp7DrQQF7DMDEYDt38Z4+//Paj7r4NF0KybBSpysoslZa3t5GC5+f1vY+IPfwNLr7kGw62WSA8EJ63ivUMlr+a43+hdtx6BK5CYSlK20AJORRLd41nZq72eceOC8wpDE8VnG7jxk7fi2Je+CBgBokJe272Sjv+5o7HmhNW46h0/wPg9cwY8am7yAFRwauFi1l3J137UZ4OPnf7ozNbxuSe7+sJ7GJKjufMA5r+jnCU7qiGK3wu57AWUHnDcyiAxG4AasPaCeKODgY1VPP+NT8fgqRVrBeftN6i8yHjUmBnCDf95O7KpalQ3qPjtIlCo8HX5XOsyrkWja/BLnrOYx+Xki8Xr7uT3XVyXX36Z/TBb1YnzZPIgGu7RNZ3ffvvtis/PPvvsWE4lQCfzmoYpC5eep3GXAWbZvT1NhSvHBnDCwETkHuWApSAAMyQmLLOM3CYDP99LOD0T0VCzg/qt38bYPT/A0Gv+Go2f+Dnoxoqod7b9LYvRLhDbqFW5iS5Gupnch4n/+jD0P70Dw1M0B7sC9NNMPmJu1KX5CjWIiUfMzD12pE4642mFnO7ctYsfoTcILuRZWZh+z9KQmRcbOmhVW3j6H52O435+PTqVdpi+RO2io1qo5w107s+w/co9uPUbd+DA1klrPKloIJd8kGh7FSSdySvvrWaOpuPwnvDw8yt9Q66wY1vPVWmPTkHkAjwAs8mkONBYlUWWeSk3ThsKncR9Ht4nCVjdmQ1qrDh2FCed/yQc+9zVqK7XmK0Zzts6jVDWE1PWqdrtTe7/xHZc/493GCNc3RqTeE5tqr6w2c7kJngMnEjuxfQrVcIdIwJp9zeYk3IVsHrVypBneuvWa79TGMSJuzS/AJAMokTpNdH999/flte7d+8uPC+TFuaTDsooHfTmi4euf/KoObz3KQfsthqujCK3WTgP77o76XezrGSGiYrcLIMztZu5xkq0n/9yDL/iz6Dqq4yNQLmtd+UqHpVGVWwf7sLt+GodhEzsw8F3vgnqs5/C0Mw0qm3/jl0x8diad36xvRJXHSFbGBPN40xEUj+AW8izXuDZ/aysArXfT50aWK1Tw7X/fBtGli/D6heNopnNuThoaVtedbrE49s4+oTlOP5XXoRsuoqpPTNGua79FJ1uoi9mPDVCw7vv8jNO7SKb4uoZv5OwBdb0fkpl01NTTigtEl0yYvtpgIYNV1hy1DA69SbamRHL0cRcpeNBy3VMMh5VTTnt+dYEbvvo/ajTsiSlQsflyfNlJeH00A7QWDSXlvoyY0vKnZbGHPKccrNyII2c5imnnEIbytmbBJYEpnRN9yWo0svmvBTxUgAv4ybL09gNpP3E9TT+tH7pd9X+OqaaGZZWvYQQsxy5UsjB1l8Xvtc9tQxSZNbwYVz7rbf2ofqNf8P09s2ov/zNRsXzdKPeqaDf3nClKjTlvHbNXXsZJv7urzBy45WmGba9oYpf7D/oPDJSVv95XX7kGpCIDqNyoTfo6h7sPjdKwsDqeA1X/+MNuPDk5yLbYHSAWcdyXR3DnVbbbkMvCj9bnUE+YkQO8talM8OBlX9TaW7EDmDIYyYDFgOkA1M3RURxZ9FuaWTm0cuK0CpyEgwPZaBDlKkeU6VQ7JQSoCklUzCcTMdx5Vq5ifwsLjsxvYLWDo3v/8tNUPsqdrdF+HR6rUdStux2LzpO4ZT04kDdVs78rMipcn0x6Kb1GMGmfCD1IGnPPVBK8LT36R4BJxmeyrhR/lbZeRmV1YO8l4Jkt/oDfb8/ZurrxpkqzlvWtlJAKC+4RRx5qDu+z9y66pLUZdw6/IknPLeWjhlxvLddhqmDuzDw63+F+onPMSGGsBAKKobWHFpXX46Df/a7WLZjM2pk+FNe1lIKjyV0WjJ5uRoNwyo85l96RNRnXFI9zvuFW8j9hT4HpOWZ5p41t7Zx6eu+hf1XTlpdZ8cYTapGD6qNmGqdLdD4SFMsctcsaYoTcZbEq7XtrvLxR1uDtBUdO/55x+oSSddoj37FlXVS7DkDO4PA6xxpO4OOdlvG2q0ROh03Py53Djk6xmLdNs9b/he+y+c5f8+F13aXyk4hjOWKqTNYQxBs/ig3tOV7pTNo3qmiSQ5zOw3s/+4svvbGq9CmLY/JWm7TlBemUfHPl26hnHkDu7j/Erxqgc/jSq3UOp/WVzwv4+x4iIp8DOs4PVAWYIM5UuJGE66T3tO9ALNM15kahyT3yD9+3kvXmQ4Wvb7H9JW9Dbu8U6QkDNDdMBQXPLiCL9ZVr/pjwHVk9+owbbGFZdtvwvRf/iqm/uOvgZm97pmd/VCeNxsrzRQxOs6Jd/wh5n7/lThq+32oZy34PUF8zZWu6X5UaTqr4pN6YaD/eFLftfDl52WkSq7ne2dhFaBUHIpp1O48ZBTL/+cH2HLpDjSmhn1VNi3QLVaikA7ZJDfnclDsVGmH6dXZUpEuvZ/eSzmgNO6ueH3aWlnTcjSN6SHs+Pp+XPn269F+UKy79/mwHG+ue3Z47XusK+buvZqkzjO+rsAbw8l4tNTJxZR35UWKqsxdMlASSBLXSS/6o71H4eiaQNPrSbvilQDZT1Tvx0Wm5cThyr6TPiuL77IDQ9g+W0NZmRTuKeZGFSKKyvBKJkhUhkoA17cQmkLVUVg2sx/q8/+MsQ//GfT4ZpD2P21XBYln8z2Y+Js/QuXj/4Ylk5OgKYaVDtz3wicX2dEOge42DNKNR6D3pZTmmWClkmPZMzlSljSMrvC9rt29+cQu28B21HDNW27FV3/tCuy/bALtcaMnbTeMKF9FcTSenzT/o47g14qHZzpec5hSfa0Soo/WfgpbfyODDI8sWvM5bLm+zagkDNdZa9VRHWvgwJUz+NZvX4fv/cVNqOwlnWcGpYp7h3vVLnrpBpXoiGWcmDsiSReDazGNUhXA3GwQMUsGCiYCRAJGOhd6UHtN91l0Z9Ck41ve8pY4+nWVU0x/GVjIaxmuFzDKsGXnZaDLcWyfVfjYnqGYVJUOML7/hNxEDjOUZ1l71vFdFeIVZUHGVpKUDPrV2hNofPnfMPa/fh6de68xKNkupNGSude58TsY++1fxOAXPo5BTcIzcZ5V9+M0hg/gMSAF5oI+bqSqA/ljD9SPlCqr1q5/q7wxOTUN9BXfFyrOLzTziy0kbfV7VWNxbu/p4MErH8LuWw8YQKliqLEEtcEGzb9HNasZQ0rd7gdkIKfvv3pyXfV3q4r+1q3LsLqq2/v0o/Oa+NFz+445r1catG+mEXsaLqz511ANG6M9anes+tjoX0bvm2/Rnu/2WwSS9KP75mf3LqL7sw1MP9DCzssO4MYP3ol7PrUF7S3axqlV9F+qheFMDgnF5ZpanLOvU4Rr13nj7AAGcBbNXXzRcs9xxjpNQcnV8/DQUHhOdPJTjvvfBIgEkO9973vtvFA6EtH5ZZddRmK6Ouqoo+zEegq7evVqdccdd9jnd99991tk66BN5ThtoYWVcJR8Px1MeonovQaA9J0y2j5XxSuPmkItgzfCRE5Rllc890clrotDBYrcK0tp/n4wjjrVT8XqRY2B6cAeTNx9GxpHHwO1+jg4VzDa7m00d8VXMPWON2F0691mkO641HVCRaOcet0/FHLgSUnfb/78cT56RO2+yZRuKtdnGlMZyQyJCis8f6SFGuPoJ94GIqcZ1pCj7T7ogysaGFhuYGuoVs5fh8bW45rvIcmt11kxp6hEO7XPFcTWsTEbmSwmUTw5W1+VjxNKvMbmBB/YNOT2lNF9jrcxtX8GlUrNGpRo18S0Y6UdOnXVV+SK7V+Uc8p+vxwdsxRBVMx1LanzqDeN3+R41xgglGDx1E1HVVlUlxymPE+Jn9PvnHPO6ch08zSmMiPQYqjXeyn48nnZc0l/eOwE3rBuyk2Po/3ZS/tSCQXxPFygC1TTx/yzq+fgLJHGVpC33fbWE/URNH7zrzD4jBda+8H0lz6Kzvv/Bkun28g6zs8rWnl8/7A48iCjmtHpG7vGn3ZG8In2kan/TKcxLRJAUypBhq5nh0rl7xcbpvLziGxr8SmpWNTS3jgD4Ve0Z9TpgM6baMF3JF5y57Oadg7eMlll3U5IytYMsNjOgCfv2+u82PlzHz5zm964eaQU3roXLG/c/UTmVMxNRXbHfXn3gUjBhO9Jt3qqC1SL17HMjlq9CjwDgOikjUcVZoKwuM7Wd/5563shQ3T/i1/8YkfmM50HKtPfD0zTepsPKNPy6kUcZmUdeO+Tp/CsZUavSGttddoAwxvoZiJESCVCaAm83DjhlyIrD57aLe0kL/nWsKitfnS6Oor2phMN89lB9d5bMNicQbVFwInHD0BN3/2WbuB328swfoR6X0oBdIGLTHtlRifH+UZVVXI+X9z9Gqh2C7/JvVdFuc0jM79Vh1s17uZtqiwo6N369vS6cOX3osmK19pNfrfv+g3v3H1/bkd9cuRQpR3r3R412v1ob27iAPjHz8k1vFuyWrHn9r64du9X3Letw/jcTteiDcNob3gdANiJ29Za33Gby+m8fIloWp6ygzqu0z3Lw/vw1247Dl59UqwTXXJdbFpsZHLfi0trpe6TOVGewsTvpuApudN+g0QvUb0XzTeoyPLsx32WxbnPMJ1vfmAQOwV25l73XS6e8/dD7IVv6BAWhfDwUhDp8+3OA/Ybfhqe5lA5Bo1xadmdV2P53ddiqD3tPEFrJ/3QVD2t3Hvsn/sxIdtvnPNn+uwe0+b+V2vpEQueZfQor9JPQVP3eV7GsWIB98rDSGexttFaq7wDHB2AJwJQ3nWv+NMZTVXq2M1naJ05TSyio3zX3e+Ij3uH084LsZsS5eOisPyzE6e8s2o3barj0msnVMW46T273z2vwiNHxnZ7DTvbz9/zIGc7h/tnfX0K8EvBQJ6zjrNYJ16RoKU8yLrQvMB9loFG8Tso0ZEWSc715CPfE9OYGDC7gLQMGMsAUF7zeZlxL5ZL90yMsm/I8GXEcTw4W8E7ty7DnEclFfYOkuT6SK86Cbd0mQiVMjTwO1I7jtTNVbbygYufVwDnsI4Q/basIUqxucFjQ1YP5uY07zYJ+tN8GfY+2pD0GNMCUisqbkGkF/lc93mvOOouhIMoMwQcqg4s3TGUSTonKV7nXV7qIYw0/EymUR7L4kw32tNIy4E57Chyx/JIgbJ8mxD53VQvys/6gUiahxhnMa7025LkdCae75lMXeLvqTK9aFn8ZXU/n0gugTPNV684ZbzzDSif2DWE192zEuPtuMQ2jIAuIvGO8tf8PPmuKn4/hA3t3kXN1nzbpkM9ghuIk7Icsh5SX3kkRFz4tPnwb7eX46tHqNf5fvQI4F4lx17PF3qvV3zFzterA8ow891LO0EvY0EKamXnEjBkXBF0yqfDlIGo/HYaLnTqZPK6I7+Hkf9nw8n48uJqo0L+tQ7LU925K3GrFFBun6TU8FTGeaXAE/qzCwVgYQMZi/KpQSmdxtSLeoFiGia9n4rqaVxlA8p87UrGK4/fOtDA/9myDGMMkOyroMBMCHBVXCMlz/lNLcL6c16AofMIqjYdXTwMc7YqnAeR3/8ePXL5dZxthodNmv6wM4prjqD17oshAtDN8kalku4a3av0uBL7PQfQU6RXPeLpFZ/qasRlP34uw5WmrgcXEr6m5p+eUv7MifLs45S3R5adjvWJ7tXIoRa3lC6CrvTnyb5JabWR7rTtTATttxqmtzsM2rzXu0uKCcvv5CGOIA5aBkQlGwl24G+IcmNuOvozLfp77YR8cxgW+altJSBzkAHSz+ssWNiZmBOVz8WqpM2ynFJn1P3qrddA2k9UTwfIssGv17f4nMJ8Ys8QfuaWo3D7RM3LynEQS17mmOWI5K51sZ24GuTHDnStdsmH12GxifI+Ilwc9ixz9wkS/O7XVrTPcixIkbZg8noBWk33A1XDy5ur8cXODwfn2Y2NOLgIDrSsGPU84csAttf9XtTNJZR+raSR9owx4ZZ6ca0LET0lyKZ+Rwt7xEN1LX1kn6Tpd1j8TdMnAWI+TjzGlydcYTeXxHsiWRzVUfSW5VD8XgyPoB8tG0iUKOdcWI6DyLmFzgkMf+EXfiEj8T3VcxKlnCcd2agkuV95LTnFhVA6OPN52bEflynjkekpC3vfdBW/fd8qfGbfUnPttucr9g8dBjdAJeCqOOFBXFfxVgjBrzA422NenLth38VhIvuhKj7bXoLXtpbjIV3BDwuVDKybuzjQWq1s+ZQEvDIRezHg2j1qPhqUNvKFhJ8vbNoxenEm83EhXpB3ccCLVJ7jk/HK7zDXKr9DtJAtmFOVgU6ZlyT/zAnzufIiI383z3UJUKGQRhlniNdDAvx7mRjBPaAfoHMW2+lHnCh/IxXVBYDKpZxbZPlUq9Uu7rIMRBdS92XgLJ+lVMap8nkvNcKDMxl+774l+IutI3hotgpnvImcokgRvxnuh/bkB77ATWoIqSc+K6BsQWzv1YcfTXLx32+MoK81xqI3tpdhV/5DZjDqlm4OZswFMFWyshFB9zjn6/nE/DISoknp/fRe/wYvG+l8nCofezX4Xu+kVNaRSjurFXOdeCsdLktO1b0LxO0/2OAkxeZooCqK/tqrBOKUpF7qjJTDimUVpxdxnYZ00VUnd0bTDqsPtJhnqINv3QBegDdOIKSvYl1j5bIsthBgSqB829veRlxoGXJYzjRdwmlubZb1nYpZvdpC2eCXDpS9JBNZdv3C9xrQus7N8SM7BvHae1fglum6m35UjInfAKtNFZKByoOjgsfI9JuuIbnYJJDaene/xwpEnQYpw9V6AK8yxqJLj3AXdb2IBmdJ1PZoL7+b5M1KZbGjgio5V33ChM+jXJzXPcL2p16NNL3u1wFS6teRyr7L12WqhLJ7NnwexfteaS5TT0RR25VfkTNMO2lvEIlxxe9LH6ourUXjkH/iv5sFDqi7nOMgSc9ocC7UE/Rmc18JYLTkQdXeo/D8jMCVjl4PaoHXAGbSfrsZgF7All6XtZuF3JNxFDn73oN1mgZaLHHbZA0/c/MqvO3+5TjY8uvPC2K9/5aLpQDAIiGB2yxt1Vp3906loB4b7LQ0bsCTOM5fMSL75vzI3Z5jPippW1torNss79Tr0hq2kFJNwa8MUPtxqP3EeQnIqk84f3ceTqAsfMqVlb23ECDt9b1U7Ov5HY1SMY+fp+8zp5hupVx8V3IZhZgL4WKcfC/lxnRX2Bg/g2pZ2jndbjpYrVYpDgSq8h1YhkhZcJQgSuHpnvIvMKjSOR19OrQRqzbLd+r1eleZpeWW1kMK/ClXqks49zRejqeftCKPvdLUMpzgh3cM43fuW4nbphroauvOQSygkvYiK89egwPF5ynQFuiRI2j3/HeFa3UDv95eif/OBzH3mKsJHltKOVDT9i6vNtC5fFbMZiIOlGR9xxGl4DYfgHAYlZzP9w6AUlWATo79ALm7Mfe7trHM81zeL+sw8nk5wKE8fqVj+47JL3BzDI7yPeIM3dxU2VEZZKO1X+av2KkzETbNC4vX5UDg8Sp5T+oJs7AENSlBN43K/KtX64UpMWq6c5MoK52W1VuTzeNSLpdE/W9+85vfkca4dEM/EX8II79RFq5Mcki/Le+lx16DZi8Alkem7+yv4vtjq/CmY2fwc6smsHSgjaxNbr95NZj/jgTGAqAqj2i5L3PWsSDpPjoM4EoyKv6Ud2JYyFQmO3lOu2/vy6p4b2cpPmAs7C38aBAPzkztdvum7KabbjqIZCpIRFopPixkxNIl5+VgVwy3gNqRlsm+KgF/1QcsQ4xKzctdpqJZv85ZBpr9gDcNl+fdyyTTTpfn3csm03Xn6TciEyK9LqX5d9t68HWep5x5GUiIDodeZePeb9RrUIIhMiebb7nlioOC07S3mQtNQYyfE2jyfQLYF73oRWPmejN/kwA0NYSWlWcab1lYGT6tr5R6gWT6nTQt/doTrVh6+5Yh/M/7RrF7jhyHN0HOkudnSkJCFxYMC46xPzlPO3gANTsx/l9/hMHT0GbCTjf7S+Hz8slAg8V4jd4A1w/0eoFcGRVFzfnDcvy9vpuG7U2puNb3y0qVcibpeVn8Zd/oBehEeZ73FTtzY8DJaT6nnavJnIONAeWUDmxarG1Hl6jea/DJ89RBCJCqENJVWnwcHBwMzJK9Z8Qf/iDrOolSI1I/QGIu1ZwX2m9JY+/i8vqVf0q9pIqy98qAMn035Tx7caFELVPHlx+o44U3rsW/7BjFdJ7oKwuj0iHSo4Sgs+b3153luLizClflNTy2280dXhoYGEhvXU5/vOyeXy6fUGMvkupx3otSUT6l7g7dfV/GlYaT93tR/0YlucP5wpXGnoh7/QB1odwLn8clpKqrb9Dritfe25/bhoQnszMwFi32ZZPzs0IHluDH30nTxuFdODl/VPfh+F1ELNVoJyvS7/PKUeE9AlNpNGLDEREBq9ST0jP6jlHuXy6/L9tvmrayATBNdxlop++koCqBOZVa+HkvFUCZWiFtV5Nt4O82D+NPHliOrYYbtYJ8P4SiNpLJyfOZEOvTPPfAYF30MVH2nOl2w3X+rgHP9xqu84fJGchCKR2UedC2OT3zzDNH53TtQVMeoxxg/4EDaDabSTSRS+mmXs/6vbOYMIsNx6TnfVc23H73+3Ev/eJZ2HOXvm4RL7p+Syl2MPdu2uGLz7t1c3wu0xfTgp5cUTfH5KZAlU3yp+d1I1IvXz7q8kJ6Ndq3anD5iluv/NLBXvGm30/BU8b/nOc8Z3RmZuYBcznK4ffv349Wq9W3/vrlq+x5v7ALib/s/X7U6xtLKkbtccJBXLh8Bkv8ZopdCOhXoHU6tN21qfuWcvOPSWIhZ/UdN/gp2uCWx9e2U3rmtL8XubbjaWp9mJUJXcVH8yV4Z2fIcqA/ikTguXz58sI9w0QsDyI8neRKXS4DRDFeUj8OMG3bixmFFguK84UpUz30/kYvUCvjqrSen7NdyHe6w6UdqrdDCxmH1DP26tAuApWI/jp4ri/qNAEuO55vKjnaIhcr9afdK6043QODA0JFoMlv6odvueLSA2meygYY5kClblSmmcJfcYXVpV4uAYdErpTD4/TIe/3rBIUwvcTwNGwvyaYXZ8v3Uk5ZfkPmd9IA4p/cM4I33bsc4+TnUy+k//QhWfWLoJ2qijfmI/g7w3X+qIInUYn4/iFvO4rmd9P83y1DkBjUf13xfJXGI9ejBY46CTufakAt8FtJfKr/vNAy8Xw+zrSMysIWOxDvjlnOWUrdGYvRnJ6Sr4Fc5cG70HO+klk2c0DpQLIdzqU+tJjH7jSwWC+5XSaa1UGDsQvn9LeqkwfxXZYdcZlSbOc8pTrRlJOm8Katvlve69V+00GpjNJ6LgNLeT0fJym/1evYC3TL2hvRnM7whX2DOP/GNfj47iXORZ79ZeZATrjVwoGVRXtX6rAnthq9usXL+DY2o9tsm997OstwUXMVvtJpHJFbbzxaRHM/U5WmEjr3Qs6fesbTDkgxfnJqCpOTk/JVLFyE5+v5QLQs3ELv9YprMVT2jZJQSactOy7uW/M9e+zLL80Ti+J83u0UuRuk6ZaTIEl32z2JfcnwMIaHxaZqxnp5x41XH5/G1Yu761XO6TnROeecs9/cGw16Q9N2J+3OkgubljQfLUydEe8fLmoYReXLj5rBG48dx1Hej6ytl46TwOcX4Z2473c9Rt7Wzi85rzbzWaFgD+Z1/Et7KT6hB36kjES9aNi032QfpM033HDDcXxR6CFG4VzgQmkDsO5RvBcHqIG+04t6NVbd514vEXy+uNQ84creSc+TUEHEUj24iIV2xiOj/MrAqAie3ctCywEicsLpUlMavQcGGv5dF5YYRjphTlNy0vOBWxn3yURcqqF3x7xoDIn2K99LwVhy0un3euU/pYVwto8VEff5sZ1DeOENR+FL+xuYa1UNaD6K68wNdzploOIjnSW4uL0K//ljAp5l3Keht8mLwtT6AbTfNYfa7zIXSo2CGqHjQlNOSPe41+v5QkT+hVAKkmUclrxeDM3HIaLH84V888gpPwmSsvwcJ4nC0T4pEWfltY1Vdxu8Bo3uqLD8TanNtXr9cu0WXuuyOMvil4CXgJ8tJH9Pn3/++e+amJj4XXM+6jjiLLTfXuqXNH+cl7Jv9+I+y/LxeNCBNjkmWY6XrpzDX248gKUV1tosZoDXUZT3aoB9eRVv1cvwpbyB5o+wuJ7SQNp+DfdpVFWXyxuFYYoUo2VcaNn6YkeLES1VyXNVcl4WD5LnHGcZ+GjxUyXvzRd32bWMf760LKaBPX7lJw1CDgj8E9tn2OFHt1/P6O/TXTujFLxBiuMjpzSZEX2GA0j7+aIfvvF7l22BqCTlHKcywGnNyKi7l0/6cDKM4nt0vOyyy8aIC5XANuTbry7olxcGcv3AMw0nabGqgUeTZgw3+tk9A3jRLUfhU3uH0XQbI2Fx5PJDhvj350txYWclPpsP/FiBJ7WZdAtjQx82GLlZ3ugqEZrSNKvrN5pC3MT3aDoTTWtaHBW5m8Vzg/3iZdLzfHchcZVxgr2uF8KhAo9OXh/78kv7OasievX/bs5TWS4lcKsq3h8dWWpG8MJ8TKP7/N7xSEYDD4iBvVfuRneqHZClI4kN76J3XO1ZZ501ajjPG83tTZxmms50wLffQ+Uu51MrpOqFI4EaBjd/dsU0/nDNBNZk+QJ1oNoa+u4xxqH3zw7jv9uDPxbiekqjo6NoFGciFXSfTF1DkzXPK/02eY/mQREnunDqxzU9UppPpE2BTy0yrn5gmnKZi+FgF0OPT/lFbjHqe9NvFkVhJ+7xDshsTBoaGvBTP6LLPcOQvi0BIMlFMieqdBF9wrm/bfGVuVUGWwmKfnrJ2+Q9ar9Dvv1y+ucDT3nk98q44jSuI4nmDPL9594hvOCu1fjc2CCmbXUlkputYn9tDlN5Bf/eXIqXTa/CJ39MwZPaSqN7GufbysL27JEnnfG0y8zhfL6mxrF3377gRX1+Ep3sUaV+nNljxbX1S8NC03Yo3wAeq/JjI1ERO4pW+KKI35u7kiBCovvKlSsL+kUDsJ+744Zrf5Z1lT6elJO093oBkQDYcM2gmoSxZCzy3e13797gb6AXgJYZqhbKfR6pQEo0YKzzL1w6i7cfNY5VNKWtQ/PmFbJWbq30uq2wrVXH/5kcwTdaFesV6seRSHSX7ZfInH/u+uuv/5my8L2d86nKa5Tu3KiFQWnF8uXYt3+/8BcpuaS00SwGSNQ8cZVxgWVUFsdCxO9e31psuIXmWabx8Sk/5jC7GT62vufiXSDabLpJcnu0YqMANlofzPPK78ODZEiR6l4gKPWhPSiNo2eizED/GhLlIablUdr22/YbQVQe0/z0C9Pr+ZEInkSzRkz/kuFCvzMxgJ8xQPqzQ3NYQ0yWbmPbnMKnJofw1eYAJvIfT+AkIqNjV/sFDpq29Pu93ulbWieeee7vGUHpH+S9qA9dTMeeLwzTYrm3hQDVQhv0I/1mWpR6nnd+9Mpv+ehIt+ij8Jq7brruQ3gc6Oyzz/49c+hqvwcWrc//0aMlxi68oqrQISt7ywDskYn7h5VK9J5ErzG6zw/1eqfvjk77dj58zep165abXvDM8IJhcQmp55pzImQ/HFYLCCPDLmYEXEh41eN8MSTzoOf59qF874e//JYtXdo1Z85Ige+++6br/gaPE+3YseOadbb9oqv9dvt5+PGipmnGY0aMn+jYufM/9rS0pP0aercBz77td94t8TasXXNNB5WXmtO1fI/9LTZbVPSp+MiUdjyN/p1xMTq/hYIJStKwmHf6hdPo/62y++k9qWv84S0/t9pouHDPaANvuvvm60r1RoeT1qxZc40BzNL2S9b5J+gJGi5pv0aMv8mA57ztd94JYm5uaMVEpDbL+zRHatlSmifVSzdZJk5269uK1wvRGy70fj/jEg7hO2ncadrLnuse78o0/XCXH3Ge3fPl1GalsscdPImo/RodFqVls7xPaSau4wn68aalpe0Xm32bmZcWLO+ddOYzN0Hnl0HMDyWam2tibHysdLvd8k8txiCiH0EYGXYh35Xxpudl38U86ev3vNc35wu3kDgPT/mRGDw6MlLivNgMtCp7/l03XbMZRxCdeeaZm0yaTfvFJnl/bm4O4+PjC2i/T9CPElH7HSltv3a10fPTCfO9aDEKs54gSlObyLDUe4rTQkEifQco7+hpp+7HDZaloRc4Yp54yjixRwJSiwHPI6f8KpUqViwfLVmhdmSCJ1MvEKV2e6Bv+32CfpSI2i1Z20tWWC4KPIkWBaBEvUCUpm/QmuOp6Wn0/9xCOaiFhpkvfD8g6RXvQsMtNo5e6X40gfSxLb/hoUEr8nRPNTqywZOpF4hy+53u236foB92okny5e138eBJtGgAJSIQVbrzWdOlzkyfWZFoYqLHaJ6CGcS1DPNYiecLDbsQWkh88wGtpMXm4fCWH3GdI8uWGZGn1vWMDEak8zzSwZOJQNRwH581oFnafid6tt8n6IeViNtcZttv6X5ZN5HOc7Hgad/FI6CnnnnOu7TOfrfsGY3mM7OzviH2ExF7dfSFcnnAo8OVHcp7j1S0LotjPvXC4S0/69FocMj69CxdjaPw7jkMv3XzTZcfxA8ZnX322e8yh57tdza03yfoh5Wo/dL0JLKy91ig8W7Deb6VPcwvlh4RgBKddObTXq00/kGLFR9M1PhmZmYMkM6ZcznlaSHJmg9UFvP+Yt9ZCPjgEMIu9nka7vCVX5YpA5y9G565Y30m3HnTD96FH2IyIPpquMn2PdvvE0D6w0cLAE7rM+GGG254RO33EQMoEYn0Gvk/KK0v6RXGAensAjeqW6z4OR8ntVAubTEABTw6+tSFxLdYkD708iMRh7bgoMbXc0mloi1dK6/5YRHZ5yOvFyUQ7dt+Z0vb7xN0JBG138Y87dfcv5yW+h6KyN4VFx5FIm7UyHRvSQ1Mkmgkp0Y4M29jPFSxu198wOJAb7EAe6hgNh89Uo66N9FITVsOzwuaLs7NxHU+XkszH2vy3Khpv0UDkyRuv0+A6ZFB3H4bC2q/di7w2/otzVwsPaoAynTSmee+FTp7VT8gZaJG2G63bcNstdvWGkpz8hYmMi0GWBYCfsDiAHI+zlDG90hE/V5xLpx4ykbNNDY6px+N1nScp9FZcZ0cbc9iybt+GHWdiyUDpG81B9N+ewMpk2y/7UW33ydoocTtt3oI7RdOXCdd57sOVdfZix4TACWy053QOX8+jvQJOnLpxw04JXmx/nzMw5E+QUc0PWbAyfSYAagkY62/RCO7xDBOr8ITdESTMw6pyw0f9e67bvrB5XiCyLfoJaYTXmI4nSfa75FPB0nHSVu7/OAHj337PSwAyrTpzPNHBzFxvgNT9bwnONMjhBQ2G6XA5zPkl89g6eU/btzmQom2uzEi4/keTE37fYIzPUJos/l93huHLn+suM0yOqwAmhIB6gAmzzSq4PNNUjYC+SZF00k0NpVNi3qCHgGp4EzDHLPNCp2bzQC2+QnAPHQiQDU6uTMNoJ5vOq9pvxZQaUdQe8QT9GjSZvpjypmOm00Z30znhxswU/r/AWT0PyPiNwZyAAAAAElFTkSuQmCC`; diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/index.d.ts b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/index.d.ts deleted file mode 100644 index 277442130..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/index.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { type WalletModuleFactory, type InjectedWallet } from "@near-wallet-selector/core"; -import { type Config } from "@wagmi/core"; -type WagmiCoreActionsType = typeof import("@wagmi/core"); -export interface EthereumWalletsParams { - wagmiConfig: Config; - web3Modal?: { - open: () => void; - close: () => void; - subscribeEvents: (f: (event: { - data: { - event: string; - }; - }) => void) => () => void; - getState: () => { - open: boolean; - selectedNetworkId?: number; - }; - }; - wagmiCore?: WagmiCoreActionsType; - chainId?: number; - alwaysOnboardDuringSignIn?: boolean; - iconUrl?: string; - devMode?: boolean; - devModeAccount?: string; - deprecated?: boolean; - nearNodeUrl?: string; -} -export declare function setupEthereumWallets(params: EthereumWalletsParams): WalletModuleFactory; -export {}; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/index.d.ts.map b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/index.d.ts.map deleted file mode 100644 index 014cca081..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,mBAAmB,EAKxB,KAAK,cAAc,EAEpB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,aAAa,CAAC;AAKrB,KAAK,oBAAoB,GAAG,cAAc,aAAa,CAAC,CAAC;AAoBzD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,IAAI,CAAC;QACjB,KAAK,EAAE,MAAM,IAAI,CAAC;QAClB,eAAe,EAAE,CACf,CAAC,EAAE,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,KAAK,IAAI,KAC5C,MAAM,IAAI,CAAC;QAChB,QAAQ,EAAE,MAAM;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/D,CAAC;IACF,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA46BD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,qBAAqB,GAC5B,mBAAmB,CAAC,cAAc,CAAC,CA4BrC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/index.js b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/index.js deleted file mode 100644 index ed04e2967..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/index.js +++ /dev/null @@ -1,850 +0,0 @@ -import * as nearAPI from "near-api-js"; -import { JsonRpcProvider } from "@near-js/providers"; -import { stringifyJsonOrBytes } from "@near-js/transactions"; -import { parseRpcError } from "@near-js/utils"; -import { signTransactions } from "@near-wallet-selector/wallet-utils"; -import { bytesToHex, keccak256, toHex } from "viem"; -import bs58 from "bs58"; -let wagmiCore = null; -const importWagmiCore = async () => { - // Commonjs support NA with @wagmi/core: - // https://wagmi.sh/core/guides/migrate-from-v1-to-v2#dropped-commonjs-support - return import("@wagmi/core").then((module) => { - wagmiCore = module; - }); -}; -import icon from "./icon"; -import { createTxModal, createChainSwitchModal } from "./modal"; -import { ETHEREUM_ACCOUNT_ABI, DEFAULT_ACCESS_KEY_ALLOWANCE, RLP_EXECUTE, MAX_TGAS, EthTxError, } from "./utils"; -const setupEthereumWalletsState = async (id) => { - const keystore = new nearAPI.keyStores.BrowserLocalStorageKeyStore(window.localStorage, `near-wallet-selector:${id}:keystore:`); - return { - keystore, - subscriptions: [], - isConnecting: false, - }; -}; -const EthereumWallets = async ({ id, options, store, provider, emitter, logger, params: { wagmiConfig, web3Modal, chainId, alwaysOnboardDuringSignIn = false, devMode, devModeAccount = "eth-wallet.testnet", nearNodeUrl, }, }) => { - if (!wagmiCore) { - throw new Error("@wagmi/core not imported."); - } - const _state = await setupEthereumWalletsState(id); - const expectedChainId = chainId ?? (options.network.networkId === "mainnet" ? 397 : 398); - const chain = wagmiConfig.chains.find((c) => c.id === expectedChainId); - if (!chain) { - throw new Error("Failed to parse NEAR chain from wagmiConfig."); - } - const nearRpc = chain.rpcUrls.default.http[0]; - if (!nearRpc) { - throw new Error("Failed to parse NEAR rpc url from wagmiConfig."); - } - const nearExplorer = chain.blockExplorers?.default.url; - if (!nearExplorer) { - throw new Error("Failed to parse NEAR explorer url from wagmiConfig."); - } - // NOTE: use a custom provider because the failover provider doesn't give error details. - const nearProvider = new JsonRpcProvider(nearNodeUrl ?? - // @ts-expect-error - provider.provider.connection ?? - // @ts-expect-error - provider.provider.providers[ - // @ts-expect-error - provider.provider.currentProviderIndex].connection); - const getAccounts = async () => { - const address = wagmiCore.getAccount(wagmiConfig).address?.toLowerCase(); - const account = devMode ? address + "." + devModeAccount : address; - if (!account || !address) { - return []; - } - const keyPair = await _state.keystore.getKey(options.network.networkId, account); - const accountLogIn = { - accountId: account, - publicKey: keyPair ? keyPair.getPublicKey().toString() : undefined, - }; - return [accountLogIn]; - }; - const cleanup = async () => { - _state.subscriptions.forEach((subscription) => subscription.remove()); - _state.subscriptions = []; - }; - const executeTransaction = async ({ tx, relayerPublicKey, }) => { - const to = (/^0x([A-Fa-f0-9]{40})$/.test(tx.receiverId) - ? tx.receiverId - : "0x" + keccak256(toHex(tx.receiverId)).slice(26)); - // Created this defaults variable during the process - // of getting wallet selector packages and near-js packages - // working smoothly on LTS node version. - // Feel free to update/remove/whatever - let ethTxDefaults = { - abi: [], - functionName: "", - address: `0x`, - chain: undefined, - account: `0x` - }; - let ethTx; - switch (tx.actions[0].type) { - case "CreateAccount": - break; - case "DeployContract": - break; - case "Stake": - break; - case "DeleteAccount": - break; - case "AddKey": { - const publicKey = bytesToHex(bs58.decode(tx.actions[0].params.publicKey.split(":")[1])); - if (tx.actions[0].params.accessKey.permission === "FullAccess") { - const args = [ - 0, // 0 stands for ed25519 - publicKey, - BigInt(tx.actions[0].params.accessKey.nonce ?? 0), - true, - false, // Not used with is_full_access - BigInt(0), // Not used with is_full_access - "", // Not used with is_full_access - [], // Not used with is_full_access - ]; - ethTx = { - abi: ETHEREUM_ACCOUNT_ABI, - address: to, - account: ethTxDefaults.account, - chain: ethTxDefaults.chain, - functionName: "addKey", - args, - chainId: expectedChainId, - type: "legacy", - }; - throw new Error("Requesting a FullAccess key is not allowed."); - } - else { - const allowance = BigInt(tx.actions[0].params.accessKey.permission.allowance ?? - DEFAULT_ACCESS_KEY_ALLOWANCE); - const args = [ - 0, // 0 stands for ed25519 - publicKey, - BigInt(tx.actions[0].params.accessKey.nonce ?? 0), - false, - allowance > 0 ? true : false, - allowance, - tx.actions[0].params.accessKey.permission.receiverId, - tx.actions[0].params.accessKey.permission.methodNames ?? [], - ]; - ethTx = { - abi: ETHEREUM_ACCOUNT_ABI, - address: to, - account: ethTxDefaults.account, - chain: ethTxDefaults.chain, - functionName: "addKey", - args, - gasPrice: tx.actions[0].params.publicKey === relayerPublicKey && - tx.receiverId === - tx.actions[0].params.accessKey.permission.receiverId - ? // Free onboarding tx: fix 1 wei gasPrice because some wallets ignore 0 gasPrice. - // Rpc will also return a dust eth_getBalance for accounts not yet onboarded to trick wallets - // into accepting this free transaction even before the user owns NEAR. - BigInt(1) - : undefined, - chainId: expectedChainId, - type: "legacy", - // uhhh - }; - } - break; - } - case "DeleteKey": { - const publicKey = bytesToHex(bs58.decode(tx.actions[0].params.publicKey.split(":")[1])); - const args = [ - 0, // 0 stands for ed25519 - publicKey, - ]; - ethTx = { - abi: ETHEREUM_ACCOUNT_ABI, - address: to, - account: ethTxDefaults.account, - chain: ethTxDefaults.chain, - functionName: "deleteKey", - args, - chainId: expectedChainId, - type: "legacy", - }; - break; - } - case "FunctionCall": { - const yoctoNear = BigInt(tx.actions[0].params.deposit) % BigInt(1e6); - const value = BigInt(tx.actions[0].params.deposit) / BigInt(1e6); - const requestedGas = BigInt(tx.actions[0].params.gas); - const nearGas = requestedGas <= MAX_TGAS ? requestedGas : MAX_TGAS; - const args = [ - tx.receiverId, - tx.actions[0].params.methodName, - bytesToHex(stringifyJsonOrBytes(tx.actions[0].params.args)), - nearGas, - +yoctoNear.toString(), - ]; - ethTx = { - abi: ETHEREUM_ACCOUNT_ABI, - address: to, - account: ethTxDefaults.account, - chain: ethTxDefaults.chain, - functionName: "functionCall", - args, - value, - chainId: expectedChainId, - type: "legacy", - }; - break; - } - case "Transfer": { - const yoctoNear = BigInt(tx.actions[0].params.deposit) % BigInt(1e6); - const value = BigInt(tx.actions[0].params.deposit) / BigInt(1e6); - const args = [tx.receiverId, +yoctoNear.toString()]; - ethTx = { - abi: ETHEREUM_ACCOUNT_ABI, - address: to, - account: ethTxDefaults.account, - chain: ethTxDefaults.chain, - functionName: "transfer", - args, - value, - chainId: expectedChainId, - type: "legacy", - }; - break; - } - default: { - throw new Error("Invalid action type"); - } - } - // NOTE: re-add simulateContract and parse errors after eth_call implements errors. - // const { request } = await wagmiCore!.simulateContract(wagmiConfig, ethTx); - const result = await wagmiCore.writeContract(wagmiConfig, ethTx); - return result; - }; - // Watch Ethereum wallet changes. - const setupEvents = async () => { - const unwatchAccount = wagmiCore.watchAccount(wagmiConfig, { - onChange: async (data) => { - // Ethereum wallet disconnected: also disconnect NEAR account. - if (!data.address && data.status === "disconnected") { - emitter.emit("signedOut", null); - return; - } - // Ethereum wallet switched connected account: also switch NEAR account if already signed in or disconnect. - if (data.address && data.status === "connected") { - if (store.getState().contract?.contractId) { - const address = data.address.toLowerCase(); - const keyPair = await _state.keystore.getKey(options.network.networkId, devMode ? address + "." + devModeAccount : address); - if (!keyPair) { - try { - wagmiCore.disconnect(wagmiConfig); - } - catch (error) { - logger.error(error); - } - emitter.emit("signedOut", null); - return; - } - } - emitter.emit("accountsChanged", { accounts: await getAccounts() }); - } - }, - }); - _state.subscriptions.push({ remove: () => unwatchAccount() }); - }; - setupEvents(); - // Add signerId and receiverId defaults. - const transformTransactions = async (transactions) => { - const state = store.getState(); - const { contract } = state; - const [accountLogIn] = await getAccounts(); - if (!accountLogIn) { - throw new Error("No active account"); - } - return transactions.map((transaction) => { - if (!contract && !transaction.receiverId) { - throw new Error(`Missing receiverId, got '${transaction.receiverId}'`); - } - return { - ...transaction, - signerId: transaction.signerId || accountLogIn.accountId, - receiverId: transaction.receiverId || contract.contractId, - }; - }); - }; - // Separate actions into individual transactions because not available in 0x accounts. - const transformEthereumTransactions = (transactions) => { - return transactions - .map((transaction) => { - return transaction.actions.map((action) => { - return { - signerId: transaction.signerId, - receiverId: transaction.receiverId, - actions: [action], - }; - }); - }) - .flat(); - }; - // Check if accessKey is usable to execute all transaction. - const validateAccessKey = ({ transactions, accessKey, }) => { - if (accessKey.permission === "FullAccess") { - return true; - } - return transactions.every((tx) => { - // eslint-disable-next-line @typescript-eslint/naming-convention - const { receiver_id, method_names } = accessKey.permission.FunctionCall; - if (receiver_id !== tx.receiverId) { - return false; - } - return tx.actions.every((action) => { - if (action.type !== "FunctionCall") { - return false; - } - const { methodName, deposit } = action.params; - if (method_names.length && !method_names.includes(methodName)) { - return false; - } - return BigInt(deposit) <= 0; - }); - }); - }; - // Get the relayer public key and onboarding transaction if needed. - const getRelayerOnboardingInfo = async ({ accountId, }) => { - let relayerPublicKey; - try { - const response = await fetch(nearRpc, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: 3, - method: "near_getPublicKey", - }), - }); - const { result } = await response.json(); - relayerPublicKey = - "ed25519:" + bs58.encode(Buffer.from(result.public_key, "hex")); - } - catch (error) { - logger.error(error); - throw new Error("Failed to fetch the relayer's public key."); - } - try { - const key = await nearProvider.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountId, - public_key: relayerPublicKey, - }); - logger.log("User account ready, relayer access key onboarded.", relayerPublicKey, key); - return { relayerPublicKey, onboardingTransaction: null }; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } - catch (error) { - logger.error(error); - if (!error.message?.includes("does not exist while viewing") && - !error.message?.includes("doesn't exist") && - !error.message?.includes("does not exist") && - !error.message?.includes("has never been observed on the node")) { - throw new Error("Failed to view the relayer public key (view_access_key)."); - } - logger.warn("Need to add the relayer access key:", relayerPublicKey); - // Add the relayer's access key on-chain. - return { - relayerPublicKey, - onboardingTransaction: { - signerId: accountId, - receiverId: accountId, - actions: [ - { - type: "AddKey", - params: { - publicKey: relayerPublicKey, - accessKey: { - nonce: 0, - permission: { - receiverId: accountId, - allowance: "0", - methodNames: [RLP_EXECUTE], - }, - }, - }, - }, - ], - }, - }; - } - }; - const switchChain = async () => { - const account = wagmiCore.getAccount(wagmiConfig); - if (account.chainId !== expectedChainId) { - const { showModal, hideModal } = createChainSwitchModal({ - chain, - }); - showModal(); - try { - await wagmiCore.switchChain(wagmiConfig, { - chainId: expectedChainId, - }); - } - catch (error) { - logger.error(error); - // TODO: add the link to onboarding page when available. - throw new Error("Wallet didn't connect to NEAR Protocol network, try adding and selecting the network manually inside wallet settings."); - // NOTE: we don't hide the modal in case of error to allow the user to add the network manually. - } - hideModal(); - } - }; - const signAndSendTransactions = async (transactions) => { - const nearTxs = await transformTransactions(transactions); - const [accountLogIn] = await getAccounts(); - // If transactions can be executed with FunctionCall access key do it, otherwise execute 1 by 1 with Ethereum wallet. - if (accountLogIn.publicKey && nearTxs.length) { - let accessKeyUsable; - try { - const accessKey = await nearProvider.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountLogIn.accountId, - public_key: accountLogIn.publicKey, - }); - accessKeyUsable = validateAccessKey({ - transactions: nearTxs, - accessKey, - }); - } - catch (error) { - logger.error(error); - accessKeyUsable = false; - } - if (accessKeyUsable) { - const signer = new nearAPI.InMemorySigner(_state.keystore); - const signedTransactions = await signTransactions(nearTxs, signer, options.network); - const results = []; - for (let i = 0; i < signedTransactions.length; i += 1) { - const nearTx = await nearProvider.sendTransaction(signedTransactions[i]); - logger.log("NEAR transaction:", nearTx); - if (typeof nearTx.status === "object" && - typeof nearTx.status.Failure === "object" && - nearTx.status.Failure !== null) { - logger.error("Transaction execution error."); - throw parseRpcError(nearTx.status.Failure); - } - results.push(nearTx); - } - return results; - } - } - const { relayerPublicKey, onboardingTransaction } = await getRelayerOnboardingInfo({ - accountId: accountLogIn.accountId, - }); - let txs = transformEthereumTransactions(nearTxs); - if (onboardingTransaction) { - // Onboard the relayer before executing other transactions. - txs = [onboardingTransaction, ...txs]; - } - await switchChain(); - const results = []; - await (() => { - return new Promise((resolve, reject) => { - const { showModal, hideModal, renderTxs } = createTxModal({ - onCancel: () => { - reject("User canceled Ethereum wallet transaction(s)."); - }, - txs, - relayerPublicKey, - explorerUrl: nearExplorer, - }); - showModal(); - (async () => { - try { - const ethTxHashes = []; - for (const [index, tx] of txs.entries()) { - let txHash; - let txError = null; - while (!txHash) { - try { - await (() => { - return new Promise((resolveTx, rejectTx) => { - renderTxs({ - selectedIndex: index, - ethTxHashes, - error: txError, - onConfirm: async () => { - try { - txError = null; - renderTxs({ - selectedIndex: index, - ethTxHashes, - error: txError, - }); - txHash = await executeTransaction({ - tx, - relayerPublicKey, - }); - resolveTx(); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } - catch (err) { - logger.error(err); - if (!err.message?.includes("reject") && - !err.message?.includes("denied")) { - txError = "Transaction execution error."; - } - rejectTx(new EthTxError("Transaction request error.")); - } - }, - }); - }); - })(); - } - catch (error) { - logger.error(error); - if (!(error instanceof EthTxError)) { - throw new Error("Ethereum modal render error."); - } - } - } - logger.log(`Sent transaction: ${txHash}`); - ethTxHashes.push(txHash); - renderTxs({ - selectedIndex: index, - ethTxHashes, - }); - await new Promise((r) => setTimeout(r, 2000)); - let receipt; - try { - // NOTE: error is thrown if tx failed so we catch it to get the receipt. - receipt = await wagmiCore.waitForTransactionReceipt(wagmiConfig, { - hash: txHash, - chainId: expectedChainId, - }); - } - catch (error) { - logger.error(error); - while (!receipt) { - try { - await new Promise((r) => setTimeout(r, 1000)); - receipt = await wagmiCore.getTransactionReceipt(wagmiConfig, { - hash: txHash, - chainId: expectedChainId, - }); - } - catch (err) { - logger.log(err); - } - } - } - logger.log("Receipt:", receipt); - let nearTx; - while (!nearTx) { - try { - await new Promise((r) => setTimeout(r, 1000)); - nearTx = await nearProvider.txStatus( - /* // @ts-expect-error */ - receipt.nearTransactionHash, accountLogIn.accountId); - } - catch (err) { - logger.log(err); - } - } - logger.log("NEAR transaction:", nearTx); - if (receipt.status !== "success") { - const failedOutcome = nearTx.receipts_outcome.find(({ outcome }) => typeof outcome.status === "object" && - typeof outcome.status.Failure === "object" && - outcome.status.Failure !== null && - outcome.executor_id === tx.receiverId); - if (failedOutcome) { - reject(parseRpcError(failedOutcome.outcome.status.Failure)); - } - else { - reject("Transaction execution error, failed to parse failure reason."); - } - // NOTE: after return, `finally { hideModal() }` will run. - return; - } - results.push(nearTx); - } - resolve(); - } - catch (error) { - logger.error(error); - reject(error); - } - finally { - hideModal(); - } - })(); - }); - })(); - return results; - }; - const signOut = async () => { - const [accountLogIn] = await getAccounts(); - if (accountLogIn.publicKey) { - try { - // Check that the key exists before making a transaction. - await nearProvider.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountLogIn.accountId, - public_key: accountLogIn.publicKey, - }); - // If there is a connection problem with the wallet, the user can cancel from the modal to skip the disconnect transaction. - // If not deleted, the access key will be reused during signIn. - await signAndSendTransactions([ - { - signerId: accountLogIn.accountId, - receiverId: accountLogIn.accountId, - actions: [ - { - type: "DeleteKey", - params: { - publicKey: accountLogIn.publicKey, - }, - }, - ], - }, - ]); - _state.keystore.removeKey(options.network.networkId, accountLogIn.accountId); - } - catch (error) { - logger.error(error); - } - } - try { - wagmiCore.disconnect(wagmiConfig); - } - catch (error) { - logger.error(error); - } - emitter.emit("signedOut", null); - cleanup(); - }; - return { - async signIn({ contractId, methodNames = [] }) { - logger.log("EthereumWallets:signIn", { contractId, methodNames }); - if (_state.isConnecting) { - throw new Error("SignIn request already received."); - } - try { - _state.isConnecting = true; - let unwatchAccountConnected; - let unsubscribeCloseModal; - let account = wagmiCore.getAccount(wagmiConfig); - let address = account.address?.toLowerCase(); - // Open web3Modal and wait for a wallet to be connected or for the web3Modal to be closed. - if (!address) { - try { - if (web3Modal) { - web3Modal.open(); - await (() => { - return new Promise((resolve, reject) => { - try { - unwatchAccountConnected = wagmiCore.watchAccount(wagmiConfig, { - onChange: (data) => { - if (!data.address) { - return; - } - resolve(data); - }, - }); - unsubscribeCloseModal = web3Modal.subscribeEvents((event) => { - const newAccount = wagmiCore.getAccount(wagmiConfig); - if (event.data.event === "MODAL_CLOSE" && - !newAccount.address) { - reject("Web3Modal closed without connecting to an Ethereum wallet."); - } - }); - } - catch (error) { - reject("User rejected"); - } - }); - })(); - } - else { - await wagmiCore.connect(wagmiConfig, { - connector: wagmiCore.injected(), - }); - } - account = wagmiCore.getAccount(wagmiConfig); - address = account.address?.toLowerCase(); - if (!address) { - throw new Error("Failed to get Ethereum wallet address"); - } - } - catch (error) { - logger.error(error); - throw new Error("Failed to connect Ethereum wallet."); - } - finally { - try { - // Prevent overshadowing the original exception - if (unwatchAccountConnected) { - unwatchAccountConnected(); - } - if (unsubscribeCloseModal) { - unsubscribeCloseModal(); - } - } - catch (error) { - logger.error(error); - } - } - } - else { - logger.log("Wallet already connected"); - } - await switchChain(); - // Login with FunctionCall access key, reuse keypair or create a new one. - const accountId = devMode ? address + "." + devModeAccount : address; - let publicKey; - if (contractId) { - const keyPair = await _state.keystore.getKey(options.network.networkId, accountId); - let reUseKeyPair = false; - if (keyPair) { - try { - await nearProvider.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountId, - public_key: keyPair.getPublicKey().toString(), - }); - reUseKeyPair = true; - } - catch (error) { - logger.warn("Local access key cannot be reused."); - _state.keystore.removeKey(options.network.networkId, accountId); - } - } - if (reUseKeyPair) { - publicKey = keyPair.getPublicKey().toString(); - logger.log("Reusing existing publicKey:", publicKey); - } - else { - const newAccessKeyPair = nearAPI.utils.KeyPair.fromRandom("ed25519"); - publicKey = newAccessKeyPair.getPublicKey().toString(); - logger.log("Created new publicKey:", publicKey); - await signAndSendTransactions([ - { - signerId: accountId, - receiverId: accountId, - actions: [ - { - type: "AddKey", - params: { - publicKey, - accessKey: { - nonce: 0, - permission: { - receiverId: contractId, - allowance: DEFAULT_ACCESS_KEY_ALLOWANCE, - methodNames, - }, - }, - }, - }, - ], - }, - ]); - await _state.keystore.setKey(options.network.networkId, accountId, newAccessKeyPair); - } - } - else if (alwaysOnboardDuringSignIn) { - // Check onboarding status and onboard the relayer if needed. - await signAndSendTransactions([]); - } - const accountLogIn = { - accountId, - publicKey, - }; - emitter.emit("signedIn", { - contractId: contractId, - methodNames: methodNames ?? [], - accounts: [accountLogIn], - }); - if (!_state.subscriptions.length) { - setupEvents(); - } - _state.isConnecting = false; - try { - // Hide modal which stays open after adding a new network. - if (web3Modal) { - web3Modal.close(); - } - } - catch (error) { - logger.error(error); - } - return [accountLogIn]; - } - catch (error) { - _state.isConnecting = false; - try { - // Prevent overshadowing the original exception - // Disconnect to let user start again from the beginning: wallet selection. - wagmiCore.disconnect(wagmiConfig); - } - catch (err) { - logger.error(err); - } - throw error; - } - }, - signOut, - getAccounts, - async verifyOwner({ message }) { - logger.log("EthereumWallets:verifyOwner", { message }); - throw new Error("Not implemented: ed25519 N/A, '\x19Ethereum Signed Message:\n' prefix is not compatible, use personal_sign or eth_signTypedData_v4 instead."); - }, - async signMessage({ message, nonce, recipient }) { - logger.log("EthereumWallets:signMessage", { message, nonce, recipient }); - throw new Error("Not implemented: ed25519 N/A, '\x19Ethereum Signed Message:\n' prefix is not compatible, use personal_sign or eth_signTypedData_v4 instead."); - }, - async signAndSendTransaction(transaction) { - logger.log("EthereumWallets:signAndSendTransaction", transaction); - const outcomes = await signAndSendTransactions([transaction]); - // Return the last transaction outcome. - return outcomes[outcomes.length - 1]; - }, - async signAndSendTransactions({ transactions }) { - logger.log("EthereumWallets:signAndSendTransactions", { transactions }); - return await signAndSendTransactions(transactions); - }, - }; -}; -export function setupEthereumWallets(params) { - return async () => { - if (!wagmiCore) { - if (params.wagmiCore) { - wagmiCore = params.wagmiCore; - } - else { - await importWagmiCore(); - } - } - return { - id: "ethereum-wallets", - type: "injected", - metadata: { - name: "Ethereum Wallet", - description: "Ethereum wallets (EOA) on NEAR Protocol.", - iconUrl: params.iconUrl ?? icon, - deprecated: params.deprecated ?? false, - available: true, - downloadUrl: "", - }, - init: (config) => { - return EthereumWallets({ - ...config, - params, - }); - }, - }; - }; -} diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/modal.d.ts b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/modal.d.ts deleted file mode 100644 index 2d41e0fa3..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/modal.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { Transaction } from "@near-wallet-selector/core"; -import type { Chain } from "viem"; -export declare function createTxModal({ onCancel, txs, relayerPublicKey, explorerUrl, }: { - onCancel: () => void; - txs: Array; - relayerPublicKey: string; - explorerUrl: string; -}): { - showModal: () => void; - hideModal: () => void; - renderTxs: ({ selectedIndex, ethTxHashes, error, onConfirm, }: { - selectedIndex: number; - ethTxHashes: Array; - error?: string | null; - onConfirm?: () => void; - }) => void; -}; -export declare function createChainSwitchModal({ chain }: { - chain: Chain; -}): { - showModal: () => void; - hideModal: () => void; -}; -//# sourceMappingURL=modal.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/modal.d.ts.map b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/modal.d.ts.map deleted file mode 100644 index a2790a430..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/modal.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../../../src/lib/modal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAIlC,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,GAAG,EACH,gBAAgB,EAChB,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;;;mEAqFI;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB;EA6PF;AAED,wBAAgB,sBAAsB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE;;;EAyFjE"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/modal.js b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/modal.js deleted file mode 100644 index a3e48ee82..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/modal.js +++ /dev/null @@ -1,348 +0,0 @@ -import { formatUnits } from "viem"; -import { DEFAULT_ACCESS_KEY_ALLOWANCE, RLP_EXECUTE } from "./utils"; -import { modalStyles } from "./styles"; -export function createTxModal({ onCancel, txs, relayerPublicKey, explorerUrl, }) { - // Create a style element and append the CSS styles - const styleElement = window.document.createElement("style"); - styleElement.textContent = modalStyles; - window.document.head.appendChild(styleElement); - // Container with display none/block - const modalContainer = window.document.createElement("div"); - modalContainer.classList.add("ethereum-wallet-modal"); - modalContainer.setAttribute("aria-labelledby", "modal-title"); - modalContainer.setAttribute("role", "dialog"); - modalContainer.setAttribute("aria-modal", "true"); - // Backdrop - const backdrop = window.document.createElement("div"); - backdrop.classList.add("ethereum-wallet-modal-backdrop"); - // Wrapper for modal - const modalWrapper = window.document.createElement("div"); - modalWrapper.classList.add("ethereum-wallet-modal-wrapper"); - // Modal content container - const modalContentContainer = window.document.createElement("div"); - modalContentContainer.classList.add("ethereum-wallet-modal-container"); - // Modal content - const isLogIn = txs.find((tx) => tx.actions[0].type === "AddKey"); - const isOnboard = txs.find((tx) => tx.actions[0].type === "AddKey" && - tx.actions[0].params.publicKey === relayerPublicKey); - const modalContent = window.document.createElement("div"); - modalContent.classList.add("ethereum-wallet-modal-content"); - modalContent.innerHTML = ` - ${txs.length === 1 && isLogIn - ? `

${isOnboard ? "Onboard" : "Log in"}

` - : txs.length === 1 && - txs[0].actions.length === 1 && - txs[0].actions[0].type === "DeleteKey" - ? "

Log out

" - : isLogIn - ? `

Log in: send ${txs.length} transaction${txs.length > 1 ? "s" : ""}

` - : `

Send ${txs.length} transaction${txs.length > 1 ? "s" : ""}

`} -
- - `; - // // Append the elements to form the complete structure - modalContentContainer.appendChild(modalContent); - modalWrapper.appendChild(modalContentContainer); - modalContainer.appendChild(backdrop); - modalContainer.appendChild(modalWrapper); - // Append modal container to document body - window.document.body.appendChild(modalContainer); - // Function to show the modal - const showModal = () => { - modalContainer.style.display = "block"; - }; - // Function to hide the modal - const hideModal = () => { - // modalContainer.style.display = "none"; - modalContainer.remove(); - }; - // On cancel button click - window.document - .querySelector(".ethereum-wallet-btn-cancel") - ?.addEventListener("click", () => { - onCancel(); - hideModal(); - }); - const renderTxs = ({ selectedIndex, ethTxHashes, error, onConfirm, }) => { - const container = document.querySelector(".ethereum-wallet-txs"); - container.innerHTML = ""; - txs.forEach((tx, i) => { - const txNumber = i + 1; - const singleTx = txs.length === 1; - const txElement = document.createElement("div"); - txElement.classList.add("ethereum-wallet-tx"); - if (singleTx) { - txElement.classList.add("ethereum-wallet-tx-single"); - } - const isCompleted = i < selectedIndex; - const isActive = i === selectedIndex; - const isPending = i > selectedIndex; - const isSent = selectedIndex < ethTxHashes.length; - const explorerLink = i < ethTxHashes.length - ? `${explorerUrl}/tx/${ethTxHashes[i]}` - : undefined; - if (!singleTx) { - if (isCompleted) { - txElement.classList.add("ethereum-wallet-tx-completed"); - } - if (isActive) { - txElement.classList.add("ethereum-wallet-tx-signing"); - } - if (isPending) { - txElement.classList.add("ethereum-wallet-tx-pending"); - } - } - txElement.innerHTML = ` - ${isCompleted - ? ` -
-
-

Transaction ${txNumber}

- ${explorerLink - ? ` - - - - ` - : ""} -
- -
- ` - : isPending - ? ` -
-

Transaction ${txNumber}

- -
- ` - : ` - ${!singleTx - ? ` -
-

Transaction ${txNumber}

- -
- ` - : ""} -
- ${tx.actions[0].type === "AddKey" - ? tx.actions[0].params.accessKey.permission === "FullAccess" - ? ` -
-

WARNING: The application is requesting a FullAccess key. You can lose your account and all your assets. Only approve this transaction if you know what you are doing!

-

` - : tx.actions[0].params.accessKey.permission.allowance === - "0" && - tx.actions[0].params.publicKey === relayerPublicKey && - tx.actions[0].params.accessKey.permission.receiverId === - tx.signerId && - tx.actions[0].params.accessKey.permission.methodNames - ?.length === 1 && - tx.actions[0].params.accessKey.permission - .methodNames[0] === RLP_EXECUTE - ? ` -
-

This one-time transaction will onboard your account and enable you to transact on NEAR Protocol.

-
` - : ` -
-

Connect to ${tx.actions[0].params.accessKey.permission.receiverId}

-

- Network Fee Allowance: ${tx.actions[0].params.accessKey.permission - .allowance === "0" - ? "unlimited" - : formatUnits(BigInt(tx.actions[0].params.accessKey.permission - .allowance ?? DEFAULT_ACCESS_KEY_ALLOWANCE), 24)} NEAR -

- ${tx.actions[0].params.accessKey.permission - .allowance === "0" - ? "

WARNING: this key will have unlimited allowance spendable towards network fees, only approve this transaction if you trust the application and you know what you are doing!

" - : "

This allowance is spendable by the application towards network fees incurred during use.

"} -
- ` - : tx.actions[0].type === "DeleteKey" - ? ` -
-

This is an optional transaction which removes the application access key. If you reject the transaction, the key will be reused when you login next time.

-
- ` - : tx.actions[0].type === "FunctionCall" - ? ` -
-
-
From
-
${tx.signerId}
-
-
-
To
-
${tx.receiverId}
-
-
-
Type
-
${tx.actions[0].params.methodName}
-
- ${tx.actions[0].params.deposit === "1" || - tx.actions[0].params.deposit === "0" - ? "" - : ` -
-
Deposit
-
${formatUnits(BigInt(tx.actions[0].params.deposit), 24)} NEAR
-
- `} -
- ` - : tx.actions[0].type === "Transfer" - ? ` -
-
-
From
-
${tx.signerId}
-
-
-
To
-
${tx.receiverId}
-
-
-
Type
-
${tx.actions[0].type}
-
-
-
Amount
-
${formatUnits(BigInt(tx.actions[0].params.deposit), 24)} NEAR
-
-
- ` - : ` -
-

Unknown transaction type.

-
- `} -
- -
-

${JSON.stringify(tx.actions[0], null, 2)}

-
- ${error ? `

${error}

` : ""} - ${onConfirm - ? `` - : `
-

- ${isSent - ? "Sending transaction" - : "Confirm in your wallet"} -

-
-
`} - `} - `; - container.appendChild(txElement); - }); - if (onConfirm) { - window.document - .querySelector(`#confirm-btn-${selectedIndex}`) - ?.addEventListener("click", () => { - onConfirm(); - }); - } - const toggleButton = window.document.querySelector(".ethereum-wallet-btn-details"); - const detailsContainer = window.document.querySelector(".ethereum-wallet-txs-details"); - toggleButton?.addEventListener("click", () => { - if (!detailsContainer || !toggleButton) { - return; - } - if (detailsContainer.style.display === "none" || - detailsContainer.style.display === "") { - detailsContainer.style.display = "block"; - toggleButton.textContent = "Hide details"; - } - else { - detailsContainer.style.display = "none"; - toggleButton.textContent = "Show details"; - } - }); - }; - return { showModal, hideModal, renderTxs }; -} -export function createChainSwitchModal({ chain }) { - // Create a style element and append the CSS styles - const styleElement = window.document.createElement("style"); - styleElement.textContent = modalStyles; - window.document.head.appendChild(styleElement); - // Container with display none/block - const modalContainer = window.document.createElement("div"); - modalContainer.classList.add("ethereum-wallet-modal"); - modalContainer.setAttribute("aria-labelledby", "modal-title"); - modalContainer.setAttribute("role", "dialog"); - modalContainer.setAttribute("aria-modal", "true"); - // Backdrop - const backdrop = window.document.createElement("div"); - backdrop.classList.add("ethereum-wallet-modal-backdrop"); - // Wrapper for modal - const modalWrapper = window.document.createElement("div"); - modalWrapper.classList.add("ethereum-wallet-modal-wrapper"); - // Modal content container - const modalContentContainer = window.document.createElement("div"); - modalContentContainer.classList.add("ethereum-wallet-modal-container"); - // Modal content - const modalContent = window.document.createElement("div"); - modalContent.classList.add("ethereum-wallet-modal-content"); - modalContent.innerHTML = ` -

Switch Network

-
-
-

Please approve the switch network request in your wallet.

-

If you experience problems connecting you may need to add the network manually from your wallet settings and try again.

-
-
-
-
Network Name
-
${chain.name}
-
-
-
RPC URL
-
${chain.rpcUrls.default.http[0]}
-
-
-
Chain ID
-
${chain.id}
-
-
-
Symbol
-
${chain.nativeCurrency.symbol}
-
-
-
Block Explorer URL
-
${chain.blockExplorers?.default.url}
-
-
-
- - `; - // // Append the elements to form the complete structure - modalContentContainer.appendChild(modalContent); - modalWrapper.appendChild(modalContentContainer); - modalContainer.appendChild(backdrop); - modalContainer.appendChild(modalWrapper); - // Append modal container to document body - window.document.body.appendChild(modalContainer); - // Function to show the modal - const showModal = () => { - modalContainer.style.display = "block"; - }; - // Function to hide the modal - const hideModal = () => { - // modalContainer.style.display = "none"; - modalContainer.remove(); - }; - // On cancel button click - window.document - .querySelector(".ethereum-wallet-btn-cancel") - ?.addEventListener("click", () => { - hideModal(); - }); - return { showModal, hideModal }; -} diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/styles.d.ts b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/styles.d.ts deleted file mode 100644 index 12a9d56c3..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/styles.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const modalStyles = "\n .ethereum-wallet-modal *,\n .ethereum-wallet-modal *::before,\n .ethereum-wallet-modal *::after {\n box-sizing: border-box;\n }\n .ethereum-wallet-modal button {\n cursor: pointer;\n top: auto;\n }\n .ethereum-wallet-modal button:hover {\n top: auto;\n }\n .ethereum-wallet-modal button:focus-visible {\n top: auto;\n }\n\n .ethereum-wallet-modal dt {\n flex-shrink: 0;\n margin: 0;\n font-size: 14px;\n line-height: 20px;\n color: #202020;\n font-weight: 500;\n }\n .ethereum-wallet-modal dd {\n margin: 0;\n font-size: 14px;\n line-height: 20px;\n color: #202020;\n font-weight: 700;\n text-align: right;\n word-break: break-all;\n overflow-wrap: break-word;\n }\n\n .ethereum-wallet-modal {\n display: none;\n position: relative;\n z-index: 9999;\n }\n .ethereum-wallet-modal-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n }\n .ethereum-wallet-modal-wrapper {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100vw;\n overflow-y: auto;\n }\n .ethereum-wallet-modal-container {\n display: flex;\n min-height: 100%;\n align-items: center;\n justify-content: center;\n padding: 1rem;\n text-align: center;\n }\n .ethereum-wallet-modal-content {\n position: relative;\n overflow: hidden;\n border-radius: 1rem;\n background-color: #fff;\n padding: 20px;\n text-align: left;\n max-width: 400px;\n width: 100%;\n box-shadow:\n 0px 4px 8px rgba(0, 0, 0, 0.06),\n 0px 0px 0px 1px rgba(0, 0, 0, 0.06);\n }\n\n .ethereum-wallet-modal h2 {\n font-weight: 700;\n font-size: 24px;\n line-height: 30px;\n text-align: center;\n letter-spacing: -0.1px;\n color: #202020;\n margin: 0;\n }\n\n .ethereum-wallet-txs {\n margin: 20px 0 10px 0;\n display: flex;\n flex-direction: column;\n row-gap: 8px;\n }\n\n .ethereum-wallet-tx {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n .ethereum-wallet-tx:not(.ethereum-wallet-tx-single) {\n padding: 0 10px;\n }\n .ethereum-wallet-tx-list-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 10px;\n width: 100%;\n }\n .ethereum-wallet-tx-list-header p {\n margin: 0;\n font-size: 14px;\n line-height: 20px;\n color: #202020;\n font-weight: 700;\n }\n .ethereum-wallet-tx-list-header svg {\n height: 24px;\n width: 24px;\n }\n\n .ethereum-wallet-tx-explorer-link {\n height: 24px;\n width: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n }\n .ethereum-wallet-tx-explorer-link:hover {\n background-color: #DDF3E4;\n }\n .ethereum-wallet-tx-explorer-link svg {\n height: 16px;\n width: 16px;\n color: #202020;\n }\n\n .ethereum-wallet-tx.ethereum-wallet-tx-signing {\n background-color: #F9F9F9;\n padding-bottom: 10px;\n border-radius: 8px;\n }\n .ethereum-wallet-tx.ethereum-wallet-tx-pending {\n background-color: #F9F9F9;\n border-radius: 8px;\n }\n .ethereum-wallet-tx.ethereum-wallet-tx-completed {\n background-color: #F2FCF5;\n border-radius: 8px;\n }\n\n .ethereum-wallet-tx-single .ethereum-wallet-tx-info-container {\n border-top: 1px solid #EBEBEB;\n border-bottom: 1px solid #EBEBEB;\n }\n .ethereum-wallet-tx-info-text > p {\n color: #646464;\n margin: 0;\n font-weight: 500;\n font-size: 12px;\n line-height: 16px;\n letter-spacing: 0.04px;\n }\n .ethereum-wallet-tx-info-text > p:not(:last-child) {\n margin-bottom: 8px;\n }\n\n .ethereum-wallet-tx-info-row {\n padding: 14px 10px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n column-gap: 20px;\n }\n .ethereum-wallet-tx-info-col {\n padding: 14px 10px;\n display: flex;\n flex-direction: column;\n justify-content: start;\n row-gap: 4px;\n align-items: start;\n }\n .ethereum-wallet-tx-info-text {\n padding: 10px;\n }\n .ethereum-wallet-tx-params,\n .ethereum-wallet-tx-params dl {\n margin: 0;\n }\n .ethereum-wallet-tx .ethereum-wallet-tx-params {\n border-top: 1px solid #EBEBEB;\n border-bottom: 1px solid #EBEBEB;\n }\n .ethereum-wallet-tx-params div:not(:last-child) {\n border-bottom: 1px solid #EBEBEB;\n }\n\n .ethereum-wallet-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n color: #1C2024;\n border: 1px solid rgba(1, 6, 47, 0.173) !important;\n background-color: #fff !important;\n padding: 14px;\n font-size: 14px;\n line-height: 20px;\n font-weight: 700;\n }\n .ethereum-wallet-btn:hover {\n border: 1px solid rgba(1, 6, 47, 0.173);\n background-color: #F2F2F5 !important;\n }\n .ethereum-wallet-btn:focus-visible {\n outline: 2px solid;\n outline-offset: 2px;\n outline-color: #8B8D98;\n border: 1px solid rgba(1, 6, 47, 0.173);\n }\n .ethereum-wallet-btn-sm {\n padding: 10px 14px;\n font-size: 12px;\n line-height: 16px;\n }\n .ethereum-wallet-btn-xs {\n padding: 8px 12px;\n font-weight: 500;\n font-size: 12px;\n line-height: 16px;\n letter-spacing: 0.04px;\n border-radius: 9999px;\n }\n .ethereum-wallet-btn-confirm {\n width: 100%;\n margin-top: 24px;\n }\n .ethereum-wallet-btn-cancel {\n width: 100%;\n background-color: #FFF9F9 !important;\n color: #dc2626 !important;\n border: 1px solid #fecaca !important;\n }\n .ethereum-wallet-btn-cancel:hover {\n background-color: #fef2f2 !important;\n }\n .ethereum-wallet-btn-details {\n margin-top: 20px;\n border-radius: 9999px;\n }\n\n .ethereum-wallet-tx-error {\n font-size: 14px;\n line-height: 20px;\n color: #dc2626;\n font-weight: 700;\n text-align: center;\n text-wrap: balance;\n margin-top: 20px;\n margin-bottom: 0px;\n }\n\n .ethereum-wallet-txs-details {\n display: none;\n margin-top: 10px;\n padding: 10px;\n background: #F1F1F1;\n border-radius: 8px;\n width: 100%;\n max-width: 100%;\n overflow: auto;\n }\n .ethereum-wallet-txs-details p {\n font-weight: 500;\n font-size: 12px;\n line-height: 16px;\n letter-spacing: 0.04px;\n color: #646464;\n word-wrap: break-word;\n overflow-wrap: break-word;\n white-space: pre-wrap;\n margin: 0;\n }\n\n .ethereum-wallet-txs-status {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 14px;\n background: #F1F4FE;\n border-radius: 8px;\n width: 100%;\n margin-top: 24px;\n border: 1px solid rgba(0,0,0,0);\n }\n .ethereum-wallet-txs-status p {\n margin: 0;\n color: #384EAC;\n font-weight: 700;\n font-size: 14px;\n line-height: 20px;\n }\n\n .ethereum-wallet-tx-highlight {\n position: relative;\n z-index: 1;\n }\n .ethereum-wallet-tx-highlight::before {\n content: \"\";\n position: absolute;\n top: -4px;\n left: -6px;\n right: -6px;\n bottom: -4px;\n z-index: -1;\n background-color: #DDF3E4;\n border-radius: 8px;\n }\n\n .ethereum-wallet-spinner {\n position: absolute;\n right: 14px;\n top: 16px;\n width: 16px;\n height: 16px;\n border: 2px solid #384EAC;\n border-bottom-color: transparent;\n border-radius: 50%;\n animation: rotation 1s linear infinite;\n }\n @keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n"; -//# sourceMappingURL=styles.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/styles.d.ts.map b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/styles.d.ts.map deleted file mode 100644 index af3fae78d..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/styles.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/lib/styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,olPAwVvB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/styles.js b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/styles.js deleted file mode 100644 index 91fc762e1..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/styles.js +++ /dev/null @@ -1,345 +0,0 @@ -export const modalStyles = ` - .ethereum-wallet-modal *, - .ethereum-wallet-modal *::before, - .ethereum-wallet-modal *::after { - box-sizing: border-box; - } - .ethereum-wallet-modal button { - cursor: pointer; - top: auto; - } - .ethereum-wallet-modal button:hover { - top: auto; - } - .ethereum-wallet-modal button:focus-visible { - top: auto; - } - - .ethereum-wallet-modal dt { - flex-shrink: 0; - margin: 0; - font-size: 14px; - line-height: 20px; - color: #202020; - font-weight: 500; - } - .ethereum-wallet-modal dd { - margin: 0; - font-size: 14px; - line-height: 20px; - color: #202020; - font-weight: 700; - text-align: right; - word-break: break-all; - overflow-wrap: break-word; - } - - .ethereum-wallet-modal { - display: none; - position: relative; - z-index: 9999; - } - .ethereum-wallet-modal-backdrop { - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.5); - } - .ethereum-wallet-modal-wrapper { - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - width: 100vw; - overflow-y: auto; - } - .ethereum-wallet-modal-container { - display: flex; - min-height: 100%; - align-items: center; - justify-content: center; - padding: 1rem; - text-align: center; - } - .ethereum-wallet-modal-content { - position: relative; - overflow: hidden; - border-radius: 1rem; - background-color: #fff; - padding: 20px; - text-align: left; - max-width: 400px; - width: 100%; - box-shadow: - 0px 4px 8px rgba(0, 0, 0, 0.06), - 0px 0px 0px 1px rgba(0, 0, 0, 0.06); - } - - .ethereum-wallet-modal h2 { - font-weight: 700; - font-size: 24px; - line-height: 30px; - text-align: center; - letter-spacing: -0.1px; - color: #202020; - margin: 0; - } - - .ethereum-wallet-txs { - margin: 20px 0 10px 0; - display: flex; - flex-direction: column; - row-gap: 8px; - } - - .ethereum-wallet-tx { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - } - .ethereum-wallet-tx:not(.ethereum-wallet-tx-single) { - padding: 0 10px; - } - .ethereum-wallet-tx-list-header { - display: flex; - justify-content: space-between; - align-items: center; - padding: 12px 10px; - width: 100%; - } - .ethereum-wallet-tx-list-header p { - margin: 0; - font-size: 14px; - line-height: 20px; - color: #202020; - font-weight: 700; - } - .ethereum-wallet-tx-list-header svg { - height: 24px; - width: 24px; - } - - .ethereum-wallet-tx-explorer-link { - height: 24px; - width: 24px; - display: flex; - align-items: center; - justify-content: center; - border-radius: 6px; - } - .ethereum-wallet-tx-explorer-link:hover { - background-color: #DDF3E4; - } - .ethereum-wallet-tx-explorer-link svg { - height: 16px; - width: 16px; - color: #202020; - } - - .ethereum-wallet-tx.ethereum-wallet-tx-signing { - background-color: #F9F9F9; - padding-bottom: 10px; - border-radius: 8px; - } - .ethereum-wallet-tx.ethereum-wallet-tx-pending { - background-color: #F9F9F9; - border-radius: 8px; - } - .ethereum-wallet-tx.ethereum-wallet-tx-completed { - background-color: #F2FCF5; - border-radius: 8px; - } - - .ethereum-wallet-tx-single .ethereum-wallet-tx-info-container { - border-top: 1px solid #EBEBEB; - border-bottom: 1px solid #EBEBEB; - } - .ethereum-wallet-tx-info-text > p { - color: #646464; - margin: 0; - font-weight: 500; - font-size: 12px; - line-height: 16px; - letter-spacing: 0.04px; - } - .ethereum-wallet-tx-info-text > p:not(:last-child) { - margin-bottom: 8px; - } - - .ethereum-wallet-tx-info-row { - padding: 14px 10px; - display: flex; - flex-direction: row; - justify-content: space-between; - column-gap: 20px; - } - .ethereum-wallet-tx-info-col { - padding: 14px 10px; - display: flex; - flex-direction: column; - justify-content: start; - row-gap: 4px; - align-items: start; - } - .ethereum-wallet-tx-info-text { - padding: 10px; - } - .ethereum-wallet-tx-params, - .ethereum-wallet-tx-params dl { - margin: 0; - } - .ethereum-wallet-tx .ethereum-wallet-tx-params { - border-top: 1px solid #EBEBEB; - border-bottom: 1px solid #EBEBEB; - } - .ethereum-wallet-tx-params div:not(:last-child) { - border-bottom: 1px solid #EBEBEB; - } - - .ethereum-wallet-btn { - display: flex; - align-items: center; - justify-content: center; - border-radius: 8px; - color: #1C2024; - border: 1px solid rgba(1, 6, 47, 0.173) !important; - background-color: #fff !important; - padding: 14px; - font-size: 14px; - line-height: 20px; - font-weight: 700; - } - .ethereum-wallet-btn:hover { - border: 1px solid rgba(1, 6, 47, 0.173); - background-color: #F2F2F5 !important; - } - .ethereum-wallet-btn:focus-visible { - outline: 2px solid; - outline-offset: 2px; - outline-color: #8B8D98; - border: 1px solid rgba(1, 6, 47, 0.173); - } - .ethereum-wallet-btn-sm { - padding: 10px 14px; - font-size: 12px; - line-height: 16px; - } - .ethereum-wallet-btn-xs { - padding: 8px 12px; - font-weight: 500; - font-size: 12px; - line-height: 16px; - letter-spacing: 0.04px; - border-radius: 9999px; - } - .ethereum-wallet-btn-confirm { - width: 100%; - margin-top: 24px; - } - .ethereum-wallet-btn-cancel { - width: 100%; - background-color: #FFF9F9 !important; - color: #dc2626 !important; - border: 1px solid #fecaca !important; - } - .ethereum-wallet-btn-cancel:hover { - background-color: #fef2f2 !important; - } - .ethereum-wallet-btn-details { - margin-top: 20px; - border-radius: 9999px; - } - - .ethereum-wallet-tx-error { - font-size: 14px; - line-height: 20px; - color: #dc2626; - font-weight: 700; - text-align: center; - text-wrap: balance; - margin-top: 20px; - margin-bottom: 0px; - } - - .ethereum-wallet-txs-details { - display: none; - margin-top: 10px; - padding: 10px; - background: #F1F1F1; - border-radius: 8px; - width: 100%; - max-width: 100%; - overflow: auto; - } - .ethereum-wallet-txs-details p { - font-weight: 500; - font-size: 12px; - line-height: 16px; - letter-spacing: 0.04px; - color: #646464; - word-wrap: break-word; - overflow-wrap: break-word; - white-space: pre-wrap; - margin: 0; - } - - .ethereum-wallet-txs-status { - position: relative; - display: flex; - justify-content: center; - align-items: center; - padding: 14px; - background: #F1F4FE; - border-radius: 8px; - width: 100%; - margin-top: 24px; - border: 1px solid rgba(0,0,0,0); - } - .ethereum-wallet-txs-status p { - margin: 0; - color: #384EAC; - font-weight: 700; - font-size: 14px; - line-height: 20px; - } - - .ethereum-wallet-tx-highlight { - position: relative; - z-index: 1; - } - .ethereum-wallet-tx-highlight::before { - content: ""; - position: absolute; - top: -4px; - left: -6px; - right: -6px; - bottom: -4px; - z-index: -1; - background-color: #DDF3E4; - border-radius: 8px; - } - - .ethereum-wallet-spinner { - position: absolute; - right: 14px; - top: 16px; - width: 16px; - height: 16px; - border: 2px solid #384EAC; - border-bottom-color: transparent; - border-radius: 50%; - animation: rotation 1s linear infinite; - } - @keyframes rotation { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } - } -`; diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/utils.d.ts b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/utils.d.ts deleted file mode 100644 index a9eeada49..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/utils.d.ts +++ /dev/null @@ -1,82 +0,0 @@ -export declare const ETHEREUM_ACCOUNT_ABI: readonly [{ - readonly name: "functionCall"; - readonly type: "function"; - readonly stateMutability: "payable"; - readonly inputs: readonly [{ - readonly type: "string"; - readonly name: "receiver_id"; - }, { - readonly type: "string"; - readonly name: "method_name"; - }, { - readonly type: "bytes"; - readonly name: "args"; - }, { - readonly type: "uint64"; - readonly name: "gas"; - }, { - readonly type: "uint32"; - readonly name: "yoctoNear"; - }]; - readonly outputs: readonly []; -}, { - readonly name: "transfer"; - readonly type: "function"; - readonly stateMutability: "payable"; - readonly inputs: readonly [{ - readonly type: "string"; - readonly name: "receiver_id"; - }, { - readonly type: "uint32"; - readonly name: "yoctoNear"; - }]; - readonly outputs: readonly []; -}, { - readonly name: "addKey"; - readonly type: "function"; - readonly stateMutability: "nonpayable"; - readonly inputs: readonly [{ - readonly type: "uint8"; - readonly name: "public_key_kind"; - }, { - readonly type: "bytes"; - readonly name: "public_key"; - }, { - readonly type: "uint64"; - readonly name: "nonce"; - }, { - readonly type: "bool"; - readonly name: "is_full_access"; - }, { - readonly type: "bool"; - readonly name: "is_limited_allowance"; - }, { - readonly type: "uint128"; - readonly name: "allowance"; - }, { - readonly type: "string"; - readonly name: "receiver_id"; - }, { - readonly type: "string[]"; - readonly name: "method_names"; - }]; - readonly outputs: readonly []; -}, { - readonly name: "deleteKey"; - readonly type: "function"; - readonly stateMutability: "nonpayable"; - readonly inputs: readonly [{ - readonly type: "uint8"; - readonly name: "public_key_kind"; - }, { - readonly type: "bytes"; - readonly name: "public_key"; - }]; - readonly outputs: readonly []; -}]; -export declare const DEFAULT_ACCESS_KEY_ALLOWANCE = "250000000000000000000000"; -export declare const RLP_EXECUTE = "rlp_execute"; -export declare const MAX_TGAS: bigint; -export declare class EthTxError extends Error { -} -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/utils.d.ts.map b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/utils.d.ts.map deleted file mode 100644 index 7c2956f50..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/lib/utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B,CAAC;AACH,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AACvE,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,QAAQ,QAAiB,CAAC;AACvC,qBAAa,UAAW,SAAQ,KAAK;CAAG"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/utils.js b/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/utils.js deleted file mode 100644 index d578abe6d..000000000 --- a/packages/ethereum-wallets/dist/esm/ethereum-wallets/src/lib/utils.js +++ /dev/null @@ -1,12 +0,0 @@ -import { parseAbi } from "viem"; -export const ETHEREUM_ACCOUNT_ABI = parseAbi([ - "function functionCall(string receiver_id, string method_name, bytes args, uint64 gas, uint32 yoctoNear) payable", - "function transfer(string receiver_id, uint32 yoctoNear) payable", - "function addKey(uint8 public_key_kind, bytes public_key, uint64 nonce, bool is_full_access, bool is_limited_allowance, uint128 allowance, string receiver_id, string[] method_names) external", - "function deleteKey(uint8 public_key_kind, bytes public_key) external", -]); -export const DEFAULT_ACCESS_KEY_ALLOWANCE = "250000000000000000000000"; // 0.25 NEAR -export const RLP_EXECUTE = "rlp_execute"; -export const MAX_TGAS = BigInt(270e12); // Handle overhead of rlp_execute to validate the Ethereum transaction. -export class EthTxError extends Error { -} diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/index.d.ts b/packages/ethereum-wallets/dist/esm/wallet-utils/src/index.d.ts deleted file mode 100644 index 9b70859cc..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { createAction, signTransactions } from "./lib/wallet-utils"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/index.d.ts.map b/packages/ethereum-wallets/dist/esm/wallet-utils/src/index.d.ts.map deleted file mode 100644 index 0d9c8c9c2..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../wallet-utils/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/index.js b/packages/ethereum-wallets/dist/esm/wallet-utils/src/index.js deleted file mode 100644 index 27b22f6ee..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/index.js +++ /dev/null @@ -1 +0,0 @@ -export { createAction, signTransactions } from "./lib/wallet-utils"; diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/create-action.d.ts b/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/create-action.d.ts deleted file mode 100644 index da65b4629..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/create-action.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as nearAPI from "near-api-js"; -import type { Action } from "@near-wallet-selector/core"; -export declare const createAction: (action: Action) => nearAPI.transactions.Action; -//# sourceMappingURL=create-action.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/create-action.d.ts.map b/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/create-action.d.ts.map deleted file mode 100644 index fe8487b52..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/create-action.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"create-action.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/create-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAoB,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAgB3E,eAAO,MAAM,YAAY,WAAY,MAAM,gCAqD1C,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/create-action.js b/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/create-action.js deleted file mode 100644 index d49ee0465..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/create-action.js +++ /dev/null @@ -1,51 +0,0 @@ -import * as nearAPI from "near-api-js"; -const { transactions, utils } = nearAPI; -const getAccessKey = (permission) => { - if (permission === "FullAccess") { - return transactions.fullAccessKey(); - } - const { receiverId, methodNames = [] } = permission; - const allowance = permission.allowance - ? BigInt(permission.allowance) - : undefined; - return transactions.functionCallAccessKey(receiverId, methodNames, allowance); -}; -export const createAction = (action) => { - switch (action.type) { - case "CreateAccount": - return transactions.createAccount(); - case "DeployContract": { - const { code } = action.params; - return transactions.deployContract(code); - } - case "FunctionCall": { - const { methodName, args, gas, deposit } = action.params; - console.log('alohaws action', action); - return transactions.functionCall(methodName, args, BigInt(gas), BigInt(deposit)); - } - case "Transfer": { - const { deposit } = action.params; - return transactions.transfer(BigInt(deposit)); - } - case "Stake": { - const { stake, publicKey } = action.params; - return transactions.stake(BigInt(stake), utils.PublicKey.from(publicKey)); - } - case "AddKey": { - const { publicKey, accessKey } = action.params; - return transactions.addKey(utils.PublicKey.from(publicKey), - // TODO: Use accessKey.nonce? near-api-js seems to think 0 is fine? - getAccessKey(accessKey.permission)); - } - case "DeleteKey": { - const { publicKey } = action.params; - return transactions.deleteKey(utils.PublicKey.from(publicKey)); - } - case "DeleteAccount": { - const { beneficiaryId } = action.params; - return transactions.deleteAccount(beneficiaryId); - } - default: - throw new Error("Invalid action type"); - } -}; diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts b/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts deleted file mode 100644 index fd0b85445..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Signer } from "@near-js/signers"; -import type { SignedTransaction } from "@near-js/transactions"; -import type { Network, Transaction } from "@near-wallet-selector/core/src"; -export declare const signTransactions: (transactions: Array, signer: Signer, network: Network) => Promise; -//# sourceMappingURL=sign-transactions.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts.map b/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts.map deleted file mode 100644 index 9624b4968..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sign-transactions.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/sign-transactions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAIzE,eAAO,MAAM,gBAAgB,iBACb,KAAK,CAAC,WAAW,CAAC,UACxB,MAAM,WACL,OAAO,iCAoDjB,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/sign-transactions.js b/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/sign-transactions.js deleted file mode 100644 index d7d30548c..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/sign-transactions.js +++ /dev/null @@ -1,34 +0,0 @@ -import { KeyType, PublicKey } from "@near-js/crypto"; -import { createTransaction, signTransaction } from "@near-js/transactions"; -import { baseDecode } from "@near-js/utils"; -// import * as nearAPI from "near-api-js"; -import { JsonRpcProvider } from "@near-js/providers"; -import { createAction } from "./create-action"; -export const signTransactions = async (transactions, signer, network) => { - const provider = new JsonRpcProvider({ - url: network.nodeUrl, - }); - const signedTransactions = []; - for (let i = 0; i < transactions.length; i++) { - const publicKey = await signer.getPublicKey(transactions[i].signerId, network.networkId); - const [block, accessKey] = await Promise.all([ - provider.block({ finality: "final" }), - provider.query({ - request_type: "view_access_key", - finality: "final", - account_id: transactions[i].signerId, - public_key: publicKey.toString(), - }), - ]); - const actions = transactions[i].actions.map((action) => createAction(action)); - const transaction = createTransaction(transactions[i].signerId, new PublicKey({ - keyType: KeyType.ED25519, - data: publicKey.data - }), - // PublicKey.from(publicKey.toString()), - transactions[i].receiverId, accessKey.nonce + i + 1, actions, baseDecode(block.header.hash)); - const response = await signTransaction(transaction, signer, transactions[i].signerId, network.networkId); - signedTransactions.push(response[1]); - } - return signedTransactions; -}; diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts b/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts deleted file mode 100644 index ca97d2268..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createAction } from "./create-action"; -import { signTransactions } from "./sign-transactions"; -export { createAction, signTransactions }; -//# sourceMappingURL=wallet-utils.d.ts.map \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts.map b/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts.map deleted file mode 100644 index 209167ee4..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-utils.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/wallet-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file diff --git a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/wallet-utils.js b/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/wallet-utils.js deleted file mode 100644 index d5a53e83f..000000000 --- a/packages/ethereum-wallets/dist/esm/wallet-utils/src/lib/wallet-utils.js +++ /dev/null @@ -1,3 +0,0 @@ -import { createAction } from "./create-action"; -import { signTransactions } from "./sign-transactions"; -export { createAction, signTransactions }; diff --git a/packages/my-near-wallet/dist/cjs/core/src/index.d.ts b/packages/my-near-wallet/dist/cjs/core/src/index.d.ts deleted file mode 100644 index 18e086590..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/index.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type { WalletSelector, WalletSelectorParams, WalletSelectorEvents, WalletSelectorStore, } from "./lib/wallet-selector.types"; -export { setupWalletSelector } from "./lib/wallet-selector.js"; -export type { Network, NetworkId } from "./lib/options.types"; -export type { Subscription, StorageService, JsonStorageService, EventEmitterService, } from "./lib/services"; -export { EventEmitter } from "./lib/services"; -export type { Optional } from "./lib/utils.types"; -export type { WalletSelectorState, ContractState, ModuleState, AccountState, } from "./lib/store.types"; -export type { WalletModuleFactory, WalletModule, WalletBehaviourFactory, WalletBehaviourOptions, Wallet, WalletType, WalletMetadata, WalletEvents, SignInParams, BrowserWalletMetadata, BrowserWalletBehaviour, BrowserWallet, InjectedWalletMetadata, InjectedWalletBehaviour, InjectedWallet, InstantLinkWalletMetadata, InstantLinkWalletBehaviour, InstantLinkWallet, HardwareWalletMetadata, HardwareWalletSignInParams, HardwareWalletBehaviour, HardwareWallet, HardwareWalletAccount, BridgeWalletMetadata, BridgeWalletBehaviour, BridgeWallet, VerifiedOwner, VerifyOwnerParams, Account, Transaction, Action, ActionType, CreateAccountAction, DeployContractAction, FunctionCallAction, TransferAction, StakeAction, AddKeyAction, DeleteKeyAction, DeleteAccountAction, AddKeyPermission, AccountImportData, SignedMessage, SignMessageParams, } from "./lib/wallet"; -export type { FinalExecutionOutcome } from "@near-js/types"; -export { waitFor, getActiveAccount, isCurrentBrowserSupported, verifyFullKeyBelongsToUser, verifySignature, serializeNep413, } from "./lib/helpers"; -export { translate, allowOnlyLanguage } from "./lib/translate/translate"; -export { mockWallet } from './lib/testUtils'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/index.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/index.d.ts.map deleted file mode 100644 index f98229043..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,EACN,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/index.js b/packages/my-near-wallet/dist/cjs/core/src/index.js deleted file mode 100644 index cfb828bf8..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/index.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.mockWallet = exports.allowOnlyLanguage = exports.translate = exports.serializeNep413 = exports.verifySignature = exports.verifyFullKeyBelongsToUser = exports.isCurrentBrowserSupported = exports.getActiveAccount = exports.waitFor = exports.EventEmitter = exports.setupWalletSelector = void 0; -var wallet_selector_js_1 = require("./lib/wallet-selector.js"); -Object.defineProperty(exports, "setupWalletSelector", { enumerable: true, get: function () { return wallet_selector_js_1.setupWalletSelector; } }); -var services_1 = require("./lib/services"); -Object.defineProperty(exports, "EventEmitter", { enumerable: true, get: function () { return services_1.EventEmitter; } }); -var helpers_1 = require("./lib/helpers"); -Object.defineProperty(exports, "waitFor", { enumerable: true, get: function () { return helpers_1.waitFor; } }); -Object.defineProperty(exports, "getActiveAccount", { enumerable: true, get: function () { return helpers_1.getActiveAccount; } }); -Object.defineProperty(exports, "isCurrentBrowserSupported", { enumerable: true, get: function () { return helpers_1.isCurrentBrowserSupported; } }); -Object.defineProperty(exports, "verifyFullKeyBelongsToUser", { enumerable: true, get: function () { return helpers_1.verifyFullKeyBelongsToUser; } }); -Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return helpers_1.verifySignature; } }); -Object.defineProperty(exports, "serializeNep413", { enumerable: true, get: function () { return helpers_1.serializeNep413; } }); -var translate_1 = require("./lib/translate/translate"); -Object.defineProperty(exports, "translate", { enumerable: true, get: function () { return translate_1.translate; } }); -Object.defineProperty(exports, "allowOnlyLanguage", { enumerable: true, get: function () { return translate_1.allowOnlyLanguage; } }); -var testUtils_1 = require("./lib/testUtils"); -Object.defineProperty(exports, "mockWallet", { enumerable: true, get: function () { return testUtils_1.mockWallet; } }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/constants.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/constants.d.ts deleted file mode 100644 index ea8f9e98c..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/constants.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export declare const PACKAGE_NAME = "near-wallet-selector"; -export declare const RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -export declare const REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -export declare const REMEMBER_RECENT_WALLETS_STATE: { - ENABLED: string; - DISABLED: string; -}; -export declare const CONTRACT = "contract"; -export declare const PENDING_CONTRACT = "contract:pending"; -export declare const SELECTED_WALLET_ID = "selectedWalletId"; -export declare const PENDING_SELECTED_WALLET_ID = "selectedWalletId:pending"; -//# sourceMappingURL=constants.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/constants.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/constants.d.ts.map deleted file mode 100644 index 30185737c..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/constants.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,yBAAyB,CAAC;AACnD,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,0BAA0B,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/constants.js b/packages/my-near-wallet/dist/cjs/core/src/lib/constants.js deleted file mode 100644 index 50899a58d..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/constants.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PENDING_SELECTED_WALLET_ID = exports.SELECTED_WALLET_ID = exports.PENDING_CONTRACT = exports.CONTRACT = exports.REMEMBER_RECENT_WALLETS_STATE = exports.REMEMBER_RECENT_WALLETS = exports.RECENTLY_SIGNED_IN_WALLETS = exports.PACKAGE_NAME = void 0; -exports.PACKAGE_NAME = "near-wallet-selector"; -exports.RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -exports.REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -exports.REMEMBER_RECENT_WALLETS_STATE = { - ENABLED: "enabled", - DISABLED: "disabled", -}; -exports.CONTRACT = "contract"; -exports.PENDING_CONTRACT = "contract:pending"; -exports.SELECTED_WALLET_ID = `selectedWalletId`; -exports.PENDING_SELECTED_WALLET_ID = `selectedWalletId:pending`; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/detect-browser.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/detect-browser.d.ts deleted file mode 100644 index 6c6f4c418..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/detect-browser.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Browser = "aol" | "edge" | "edge-ios" | "yandexbrowser" | "kakaotalk" | "samsung" | "silk" | "miui" | "beaker" | "edge-chromium" | "chrome" | "chromium-webview" | "phantomjs" | "crios" | "firefox" | "fxios" | "opera-mini" | "opera" | "pie" | "netfront" | "ie" | "bb10" | "android" | "ios" | "safari" | "facebook" | "instagram" | "ios-webview" | "curl" | "searchbot"; -export declare const isCurrentBrowserSupported: (supportedBrowser: Array) => boolean; -//# sourceMappingURL=detect-browser.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/detect-browser.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/detect-browser.d.ts.map deleted file mode 100644 index 656e85614..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/detect-browser.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"detect-browser.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/detect-browser.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GACf,KAAK,GACL,MAAM,GACN,UAAU,GACV,eAAe,GACf,WAAW,GACX,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,OAAO,GACP,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO,GACP,KAAK,GACL,UAAU,GACV,IAAI,GACJ,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,UAAU,GACV,WAAW,GACX,aAAa,GACb,MAAM,GACN,WAAW,CAAC;AAoEhB,eAAO,MAAM,yBAAyB,qBAClB,KAAK,CAAC,OAAO,CAAC,KAC/B,OAeF,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/detect-browser.js b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/detect-browser.js deleted file mode 100644 index a03402ab2..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/detect-browser.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; -/* eslint-disable no-useless-escape */ -// https://github.com/DamonOehlman/detect-browser/blob/master/src/index.ts -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isCurrentBrowserSupported = void 0; -const SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/; -const userAgentRules = [ - ["aol", /AOLShield\/([0-9\._]+)/], - ["edge", /Edge\/([0-9\._]+)/], - ["edge-ios", /EdgiOS\/([0-9\._]+)/], - ["yandexbrowser", /YaBrowser\/([0-9\._]+)/], - ["kakaotalk", /KAKAOTALK\s([0-9\.]+)/], - ["samsung", /SamsungBrowser\/([0-9\.]+)/], - ["silk", /\bSilk\/([0-9._-]+)\b/], - ["miui", /MiuiBrowser\/([0-9\.]+)$/], - ["beaker", /BeakerBrowser\/([0-9\.]+)/], - ["edge-chromium", /EdgA?\/([0-9\.]+)/], - [ - "chromium-webview", - /(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/, - ], - ["chrome", /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/], - ["phantomjs", /PhantomJS\/([0-9\.]+)(:?\s|$)/], - ["crios", /CriOS\/([0-9\.]+)(:?\s|$)/], - ["firefox", /Firefox\/([0-9\.]+)(?:\s|$)/], - ["fxios", /FxiOS\/([0-9\.]+)/], - ["opera-mini", /Opera Mini.*Version\/([0-9\.]+)/], - ["opera", /Opera\/([0-9\.]+)(?:\s|$)/], - ["opera", /OPR\/([0-9\.]+)(:?\s|$)/], - ["pie", /^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/], - [ - "pie", - /^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/, - ], - ["netfront", /^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/], - ["ie", /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/], - ["ie", /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/], - ["ie", /MSIE\s(7\.0)/], - ["bb10", /BB10;\sTouch.*Version\/([0-9\.]+)/], - ["android", /Android\s([0-9\.]+)/], - ["ios", /Version\/([0-9\._]+).*Mobile.*Safari.*/], - ["safari", /Version\/([0-9\._]+).*Safari/], - ["facebook", /FB[AS]V\/([0-9\.]+)/], - ["instagram", /Instagram\s([0-9\.]+)/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Mobile/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Gecko\)$/], - ["curl", /^curl\/([0-9\.]+)$/], - ["searchbot", SEARCHBOX_UA_REGEX], -]; -const matchUserAgent = (ua) => { - return (ua !== "" && - userAgentRules.reduce((matched, [browser, regex]) => { - if (matched) { - return matched; - } - const uaMatch = regex.exec(ua); - return !!uaMatch && [browser, uaMatch]; - }, false)); -}; -const isCurrentBrowserSupported = (supportedBrowser) => { - if (typeof navigator === "undefined") { - return false; - } - const matchedRule = matchUserAgent(navigator.userAgent); - if (!matchedRule) { - return false; - } - const [name] = matchedRule; - if (name === "searchbot") { - return false; - } - return !!supportedBrowser.find((item) => item === name); -}; -exports.isCurrentBrowserSupported = isCurrentBrowserSupported; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts deleted file mode 100644 index 6741ffe8c..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { AccountState, WalletSelectorState } from "../store.types"; -export declare const getActiveAccount: (state: WalletSelectorState) => AccountState | null; -//# sourceMappingURL=getActiveAccount.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts.map deleted file mode 100644 index 69c3c7609..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"getActiveAccount.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/getActiveAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,eAAO,MAAM,gBAAgB,UACpB,mBAAmB,KACzB,YAAY,GAAG,IAEjB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/getActiveAccount.js b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/getActiveAccount.js deleted file mode 100644 index 0da744cc5..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/getActiveAccount.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getActiveAccount = void 0; -const getActiveAccount = (state) => { - return state.accounts.find((account) => account.active) || null; -}; -exports.getActiveAccount = getActiveAccount; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/index.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/index.d.ts deleted file mode 100644 index 78cea0fee..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./waitFor"; -export * from "./getActiveAccount"; -export * from "./detect-browser"; -export * from "./verify-signature/verify-signature"; -export * from "./verify-signature/payload"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/index.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/index.d.ts.map deleted file mode 100644 index e1ce0874b..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/index.js b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/index.js deleted file mode 100644 index eb80ab43a..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/index.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./waitFor"), exports); -__exportStar(require("./getActiveAccount"), exports); -__exportStar(require("./detect-browser"), exports); -__exportStar(require("./verify-signature/verify-signature"), exports); -__exportStar(require("./verify-signature/payload"), exports); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts deleted file mode 100644 index 207d814af..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Schema } from "borsh"; -import type { SignMessageParams } from "../../wallet"; -export interface Payload { - message: string; - nonce: Buffer; - recipient: string; - tag?: number; - callbackUrl?: string; -} -export declare const createPayload: (data: SignMessageParams) => Payload; -export declare const payloadSchema: Schema; -export declare const serializeNep413: (signMessageParams: SignMessageParams) => Buffer; -//# sourceMappingURL=payload.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts.map deleted file mode 100644 index 43755b9b9..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAY,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,eAAO,MAAM,aAAa,SAAU,iBAAiB,KAAG,OAUvD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAe3B,CAAC;AAaF,eAAO,MAAM,eAAe,sBAAuB,iBAAiB,KAAG,MAGtE,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/payload.js b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/payload.js deleted file mode 100644 index 5655fd8cd..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/payload.js +++ /dev/null @@ -1,102 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.serializeNep413 = exports.payloadSchema = exports.createPayload = void 0; -const borsh_1 = require("borsh"); -const createPayload = (data) => { - return { - message: data.message, - nonce: data.nonce, - recipient: data.recipient, - // The tag's value is a hardcoded value as per - // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) - tag: 2147484061, // NEP413 tag - callbackUrl: data.callbackUrl || undefined, - }; -}; -exports.createPayload = createPayload; -exports.payloadSchema = { - struct: { - tag: "u32", - message: "string", - nonce: { - array: { - type: "u8", - len: 32 - } - }, // Assuming this is a 32-byte buffer - recipient: "string", - callbackUrl: { - option: "string" - }, - } -}; -// const payloadSchema: Schema = { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], // Assuming this is a 32-byte buffer -// ["recipient", "string"], -// ["callbackUrl", { kind: "option", type: "string" }], -// ], -// }; -const serializeNep413 = (signMessageParams) => { - const payload = (0, exports.createPayload)(signMessageParams); - return Buffer.from((0, borsh_1.serialize)(exports.payloadSchema, payload)); -}; -exports.serializeNep413 = serializeNep413; -// export const serializeNep413 = (signMessageParams: SignMessageParams): Buffer => { -// const payload = createPayload(signMessageParams); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; -// import type { SignMessageParams } from "../../wallet"; -// import { serialize } from "borsh"; -// -// export class Payload { -// tag: number; -// message: string; -// nonce: Buffer; -// recipient: string; -// callbackUrl?: string; -// -// constructor(data: SignMessageParams) { -// // The tag's value is a hardcoded value as per -// // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) -// this.tag = 2147484061; -// this.message = data.message; -// this.nonce = data.nonce; -// this.recipient = data.recipient; -// if (data.callbackUrl) { -// this.callbackUrl = data.callbackUrl; -// } -// } -// } -// -// export const payloadSchema = new Map([ -// [ -// Payload, -// { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], -// ["recipient", "string"], -// [ -// "callbackUrl", -// { -// kind: "option", -// type: "string", -// }, -// ], -// ], -// }, -// ], -// ]); -// -// export const serializeNep413 = ( -// signMessageParams: SignMessageParams -// ): Buffer => { -// const payload = new Payload({ ...signMessageParams }); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts deleted file mode 100644 index 45cd3629b..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { VerifyFullKeyBelongsToUserParams, VerifySignatureParams } from "./verify-signature.types"; -export declare const verifySignature: ({ publicKey, signature, message, nonce, recipient, callbackUrl, }: VerifySignatureParams) => boolean; -export declare const verifyFullKeyBelongsToUser: ({ publicKey, accountId, network, }: VerifyFullKeyBelongsToUserParams) => Promise; -//# sourceMappingURL=verify-signature.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map deleted file mode 100644 index 6e0eeae8d..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gCAAgC,EAChC,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAOlC,eAAO,MAAM,eAAe,sEAOzB,qBAAqB,YAkBvB,CAAC;AAiBF,eAAO,MAAM,0BAA0B,uCAIpC,gCAAgC,qBAQlC,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.js b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.js deleted file mode 100644 index 5d00297d2..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.verifyFullKeyBelongsToUser = exports.verifySignature = void 0; -const borsh_1 = require("borsh"); -const js_sha256_1 = require("js-sha256"); -const payload_1 = require("./payload"); -const crypto_1 = require("../../../../../../../near-api-js/packages/crypto"); -// import {KeyType, PublicKey, publicKeyFrom} from "@near-js/crypto"; -const providers_1 = require("@near-js/providers"); -const verifySignature = ({ publicKey, signature, message, nonce, recipient, callbackUrl, }) => { - // Reconstruct the payload that was **actually signed** - const payload = { message, nonce, recipient, callbackUrl }; - // Serialize payload based on payloadSchema - const borshPayload = (0, borsh_1.serialize)(payload_1.payloadSchema, payload); - // Hash the payload as in the NEP0413 referenced example - // https://github.com/near/NEPs/blob/master/neps/nep-0413.md#references - // https://github.com/gagdiez/near-login/blob/main/authenticate/wallet-authenticate.js#L21 - const hashedPayload = Uint8Array.from(js_sha256_1.sha256.array(borshPayload)); - // Convert real signature to buffer base64 - const realSignature = Buffer.from(signature, "base64"); - const pk = (0, crypto_1.publicKeyFrom)(publicKey); - // Verify the signature - return pk.verify(hashedPayload, realSignature); -}; -exports.verifySignature = verifySignature; -const fetchAllUserKeys = async ({ accountId, network, publicKey, }) => { - const provider = new providers_1.JsonRpcProvider({ url: network.nodeUrl }); - const key = await provider.query({ - request_type: "view_access_key", - account_id: accountId, - finality: "final", - public_key: publicKey, - }); - return key; -}; -const verifyFullKeyBelongsToUser = async ({ publicKey, accountId, network, }) => { - const { permission } = await fetchAllUserKeys({ - accountId, - network, - publicKey, - }); - return permission === "FullAccess"; -}; -exports.verifyFullKeyBelongsToUser = verifyFullKeyBelongsToUser; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts deleted file mode 100644 index 50312b798..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Network } from "../../options.types"; -import { KeyType } from "@near-js/crypto"; -export interface IPublicKey { - keyType: KeyType; - data: Uint8Array; -} -export interface VerifySignatureParams { - publicKey: IPublicKey; - signature: string; - message: string; - nonce: Buffer; - recipient: string; - callbackUrl?: string; -} -export interface VerifyFullKeyBelongsToUserParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -export interface ViewAccessKeyParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -//# sourceMappingURL=verify-signature.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map deleted file mode 100644 index ad3eabbdf..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/waitFor.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/waitFor.d.ts deleted file mode 100644 index c73405a42..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/waitFor.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export declare const waitFor: (cb: () => boolean, opts?: { - timeout?: number; - interval?: number; -}) => Promise; -//# sourceMappingURL=waitFor.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/waitFor.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/waitFor.d.ts.map deleted file mode 100644 index 01d36b6d7..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/waitFor.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"waitFor.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/waitFor.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,OAAO,OACd,MAAM,OAAO,SACX;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,qBAU9C,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/waitFor.js b/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/waitFor.js deleted file mode 100644 index 8d37d4cef..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/helpers/waitFor.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.waitFor = void 0; -const wait = (ms) => { - return new Promise((resolve) => setTimeout(resolve, ms)); -}; -const poll = async (cb, interval, remaining) => { - const result = cb(); - if (result) { - return result; - } - if (!remaining) { - throw new Error("Exceeded timeout"); - } - return wait(interval).then(() => poll(cb, interval, remaining - 1)); -}; -const waitFor = async (cb, opts = {}) => { - const { timeout = 100, interval = 50 } = opts; - return Promise.race([ - wait(timeout).then(() => { - throw new Error("Exceeded timeout"); - }), - poll(cb, interval, Math.floor(timeout / interval)), - ]); -}; -exports.waitFor = waitFor; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/ar.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/ar.json deleted file mode 100644 index ebe6801b2..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/ar.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "صل محفظتك", - "whatIsAWallet": "ما هي المحفظة؟", - "secureAndManage": "تأمين وإدارة الممتلكات الرقمية الخاصة بك", - "safelyStore": "قم بتخزين و ارسال عملاتك و أصولك الرقمية بأمان", - "logInToAny": "سجل الدخول إلى أي تطبيق يستخدم نير", - "noNeedToCreate": ".لا داعي لإنشاء حساب جديد. فقط قم بتوصيل محفظتك وانطلق", - "getAWallet": "احصل على محفظة", - "useAWallet": "استخدم محفظة لتأمين وإدارة أصول نير الخاصة بك، وادخل لأي تطبيق يستخدم نير دون الحاجة إلى اسم المستخدم وكلمةالمرور", - "connectionFailed": "اتصال فاشل", - "connectionSuccessful": "اتصال ناجح", - "rememberWallet": "تذكر المحافظ", - "connected": "متصل", - "connectingTo": "جاري الاتصال ب", - "connectingMessage": { - "injected": "وافق على الاتصال في نافذة الإضافة", - "browser": "وافق على الاتصال في المحفظة بعد إعادة توجيه", - "hardware": "وافق على الاتصال في جهاز ليدجر", - "bridge": "وافق على الاتصال في المحفظة" - } - }, - "ledger": { - "connectWithLedger": "اتصل مع ليدجر", - "makeSureYourLedger": "تأكد أن ليدجر متصل بأمان, و أن تطبيق نير مفتوح في جهازك", - "continue": "تابع", - "specifyHDPath": "حدد مسار الحساب", - "enterYourPreferredHDPath": "أدخل مسار الحساب المفضل، ثم ابحث عن كل الحسابات النشطة", - "scan": "مسح", - "retry": "أعد المحاولة", - "ledgerIsNotAvailable": "ليدجر غير متوفر", - "accessDeniedToUseLedgerDevice": "تم رفض الاتصال بليدجر", - "noAccountsFound": "لم يتم العثور على أي حسابات", - "selectYourAccounts": "حدد حساباتك", - "connecting1Account": "جاري الاتصال بحساب واحد", - "cantFindAnyAccount": "لا يمكن العثور على أي حساب مرتبط بهذا ليدجر الرجاء إنشاء حساب نير جديد على", - "orConnectAnAnotherLedger": "او اربط جهاز ليدجر آخر", - "connecting": "جاري الاتصال", - "ofAccounts": "من الحسابات", - "failedToAutomatically": "فشل في الاتصال بالحساب تلقائيا. يرجى الاتصال بالحساب يدويا", - "overviewTheListOfAuthorized": "لائحة الحسابات المصرح بها, أكمل تسجيل الدخول بالنقر على الزر أدناه", - "finish": "إنهاء" - }, - "install": { - "youllNeedToInstall": "ستحتاج لتثبيت", - "toContinueAfterInstalling": "للاستكمال. بعد التثبيت", - "refreshThePage": "قم بتحديث الصفحة", - "open": "افتح" - }, - "qr": { - "copiedToClipboard": "تم النسخ", - "failedToCopy": "فشل النسخ", - "scanWithYourMobile": "امسح بجهازك المحمول", - "copyToClipboard": "نسخ", - "preferTheOfficial": "تفضل الحوار الرسمي ل", - "open": "فتح" - }, - "walletTypes": { - "hardware": "محفظة الأجهزة", - "browser": "محفظة المتصفح", - "injected": "ملحق المحفظة", - "bridge": "محفظة الجسر", - "mobile": "محفظة الجوال", - "instant-link": "محفظة الرابط الفوري" - }, - "exportAccounts": { - "afterDecide": "بعد اتخاذ قرار بشأن محفظة، يمكنك اختيار الحسابات التي تريد نقلها.", - "chooseAWallet": "اختر محفظة", - "disclaimer": "لن تتمكن من نقل الحسابات التي لم يتم تمويلها أو استخدامها على NEAR.", - "selectAWallet": "اختر محفظة تناسب احتياجاتك وتدعم حساباتك المتصلة.", - "selectYourAccounts": "حدد حساباتك", - "transferYourAccounts": "نقل حساباتك", - "warning": "لا تدعم تصدير الحسابات في الوقت الحالي. يرجى اختيار محفظة أخرى.", - "complete": { - "button": "أكمل", - "descOne": "سيتم توجيهك الآن إلى المحفظة التي اخترتها لإكمال النقل.", - "descTwo": "بمجرد إكمال جزء الاستيراد من العملية من المحفظة المحددة، اضغط على الزر لإكمال عملية النقل.", - "startOverButton": "ابدأ من جديد", - "title": "أكمل النقل" - }, - "getPassphrase": { - "button": "تابع", - "checkLabel": "لقد قمت بنسخ أو كتابة كلمة المرور", - "desc": "ستحتاج إلى إدخال هذه الكلمة السرية عند بدء تصدير حساباتك إلى محفظة مختلفة.", - "label": "انقر لنسخ", - "title": "انسخ كلمة المرور المؤقتة", - "transferButton": "نقل الحسابات" - }, - "selectAccounts": { - "button": "تابع", - "deselectAll": "إلغاء تحديد الكل", - "error": "الحساب غير موجود", - "noBalance": "الحساب غير ممول", - "selectAll": "تحديد الكل", - "title": "حدد الحسابات لنقلها", - "unavailable": "النقل غير متاح", - "warningLedger": "دعم Ledger مطلوب" - }, - "walletTypes": { - "bridge": "محفظة الجسر", - "browser": "محفظة المتصفح", - "hardware": "محفظة الأجهزة", - "injected": "ملحق المحفظة", - "mobile": "محفظة الجوال" - } - } - }, - "component": { - "clickToCopy": { - "label": "تم النسخ", - "tooltip": "انقر لنسخ" - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/bg.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/bg.json deleted file mode 100644 index 5fd192bad..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/bg.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Свържете вашия Портфейл", - "whatIsAWallet": "Какво е Портфейл?", - "secureAndManage": "Защитете и управлявайте дигиталните си активи", - "safelyStore": "Съхранявайте и прехвърляйте безопасно вашите крипто и NFT.", - "logInToAny": "Използвайте всяко приложение на NEAR", - "noNeedToCreate": "Няма нужда да създавате нови профили. Свържете портфейла си и сте готови!", - "getAWallet": "Създайте Портфейл", - "useAWallet": "Използвайте портфейла, за да защитите и управлявате активите си на NEAR както и да използвате всяко приложение на NEAR без нужда от потребителски имена и пароли.", - "connectionFailed": "Свързването неуспешно", - "connectionSuccessful": "Свързването успешно", - "rememberWallet": "Запази портфейлите", - "connected": "Свързан", - "connectingTo": "Свързване към", - "connectingMessage": { - "injected": "Потвърдете свързването в прозореца на разширението", - "browser": "Потвърдете свързването в портфейла след пренасочването", - "hardware": "Потвърдете свързването в хардуерния портфейл", - "bridge": "Потвърдете връзката в портфейла" - } - }, - "ledger": { - "connectWithLedger": "Свържете се с Ledger", - "makeSureYourLedger": "Уверете се, че вашият Ledger е свързан и че приложението NEAR е отворено нa него.", - "continue": "Продължете", - "specifyHDPath": "Посочете HD път", - "enterYourPreferredHDPath": "Въведете предпочитания HD път, след което сканирайте за активни акаунти.", - "scan": "Сканирайте", - "retry": "Опитайте отново", - "ledgerIsNotAvailable": "Ledger устройството не е достъпно", - "accessDeniedToUseLedgerDevice": "Достъпът за използване на Ledger е отказан", - "noAccountsFound": "Няма намерени профили", - "selectYourAccounts": "Изберете вашите профили", - "connecting1Account": "Свързване на 1 профил", - "cantFindAnyAccount": "Няма намерени профили, съврзани с този Ledger. Моля, създайте нов NEAR профил на", - "orConnectAnAnotherLedger": "или свържете друг Ledger.", - "connecting": "Свързване", - "ofAccounts": "от профили", - "failedToAutomatically": "Автоматичното намиране на профила не бе успешно. Въведете го ръчно:", - "overviewTheListOfAuthorized": "Прегледайте списъка с упълномощени профили, завършете влизането, като щракнете върху бутона по-долу..", - "finish": "Завършете" - }, - "install": { - "youllNeedToInstall": "Ще трябва да инсталирате", - "toContinueAfterInstalling": "за да продължите. След инсталиране", - "refreshThePage": "презаредете страницата.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано в клипборда", - "failedToCopy": "Неуспешно копиране в клипборда", - "scanWithYourMobile": " Сканирайте с мобилното си устройство", - "copyToClipboard": " Копирайте в клипборда", - "preferTheOfficial": "Предпочитан език за кореспонденция", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардуерен портфейл", - "browser": "Портфейл в браузъра", - "injected": "Разширение на портфейл", - "bridge": "Мостов портфейл", - "mobile": "Мобилен портфейл", - "instant-link": "Мигновен портфейл" - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/en.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/en.json deleted file mode 100644 index ec6ae2981..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/en.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Connect Your Wallet", - "whatIsAWallet": "What is a Wallet?", - "secureAndManage": "Secure & Manage Your Digital Assets", - "safelyStore": "Safely store and transfer your crypto and NFTs.", - "logInToAny": "Log In to Any NEAR App", - "noNeedToCreate": "No need to create new accounts or credentials. Connect your wallet and you are good to go!", - "getAWallet": "Get a Wallet", - "useAWallet": "Use a wallet to secure and manage your NEAR assets, and to log in to any NEAR app without the need for usernames and passwords.", - "connectionFailed": "Connection Failed", - "connectionSuccessful": "Connection Successful", - "rememberWallet": "Remember wallets", - "connected": "Connected", - "connectingTo": "Connecting to", - "connectingMessage": { - "injected": "Confirm the connection in the extension window", - "browser": "Confirm the connection in the wallet after redirect", - "hardware": "Confirm the connection in the ledger device", - "bridge": "Confirm the connection in the wallet" - } - }, - "ledger": { - "connectWithLedger": "Connect with Ledger", - "makeSureYourLedger": "Make sure your Ledger is connected securely, and that the NEAR app is open on your device", - "continue": "Continue", - "specifyHDPath": "Specify HD Path", - "enterYourPreferredHDPath": "Enter your preferred HD path, then scan for any active accounts.", - "scan": "Scan", - "retry": "Retry", - "ledgerIsNotAvailable": "Ledger is not available", - "accessDeniedToUseLedgerDevice": "Access denied to use Ledger device", - "noAccountsFound": "No Accounts Found", - "selectYourAccounts": "Select Your Accounts", - "connecting1Account": "Connecting 1 Account", - "cantFindAnyAccount": "Can't find any account associated with this Ledger. Please create a new NEAR account on", - "orConnectAnAnotherLedger": "or connect an another Ledger.", - "connecting": "Connecting", - "ofAccounts": "of Accounts", - "failedToAutomatically": "Failed to automatically find account id. Provide it manually:", - "overviewTheListOfAuthorized": "Overview the list of authorized account(s), complete sign in by clicking the button below.", - "finish": "Finish" - }, - "install": { - "youllNeedToInstall": "You'll need to install", - "toContinueAfterInstalling": "to continue. After installing", - "refreshThePage": "refresh the page.", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "Copied to clipboard", - "failedToCopy": "Failed to copy to clipboard", - "scanWithYourMobile": "Scan with Your Mobile Device", - "copyToClipboard": " Copy to clipboard", - "preferTheOfficial": "Prefer the official dialogue of", - "open": "Open" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Choose a Wallet", - "transferYourAccounts": "Transfer Your Accounts", - "selectAWallet": "Select a wallet that fits your needs and supports your connected accounts.", - "selectYourAccounts": "Select Your Accounts", - "afterDecide": "After you decide on a wallet, you can select which accounts you want to transfer.", - "disclaimer": "You won’t be able to transfer accounts that have never been funded or used on NEAR.", - "warning": "does not support account export at this time. Please select another wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Select Accounts to Transfer", - "button": "Continue", - "deselectAll": "Deselect All", - "selectAll": "Select All", - "unavailable": "Transfer Unavailable", - "error": "Account does not exist", - "warningLedger": "Ledger support required", - "noBalance": "Account not funded" - }, - "getPassphrase": { - "title": "Copy Temporary Password", - "desc": "You’ll need to enter this password when you begin exporting your accounts to a different wallet.", - "button": "Continue", - "transferButton": "Transfer Accounts", - "label": "Click to Copy", - "checkLabel": "I copied or wrote down the password" - }, - "complete": { - "title": "Complete the Transfer", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Once import part of process is completed from selected wallet, press button to complete the transfer process.", - "startOverButton": "Start Over", - "button": "Complete" - } - } - }, - "component": { - "clickToCopy": { - "label": "Copied", - "tooltip": "Click to copy" - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/es.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/es.json deleted file mode 100644 index 34f9ef864..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/es.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Conecta Tu Billetera", - "whatIsAWallet": "¿Que es una Billetera?", - "secureAndManage": "Resguarda y Administrar Tus Activos Digitales", - "safelyStore": "Almacena de forma segura y transfiere tus cryptos y NFT's", - "logInToAny": "Inicie sesión en Cualquier Aplicacion NEAR", - "noNeedToCreate": "No es necesario crear nuevas cuentas o credenciales, ¡Conecta tu billetera y listo!", - "getAWallet": "Obten una Billetera", - "useAWallet": "Usa tu Billetera para resguardar y administrar tus activos en NEAR, e Iniciar sesión en cualquier aplicacion NEAR sin la necesidad de nombres de usuarios y contraseñas", - "connectionFailed": "Conexión Fallida", - "connectionSuccessful": "Conexión Existosa", - "rememberWallet": "Recordar las carteras", - "connected": "Conectado", - "connectingTo": "Conectando a ", - "connectingMessage": { - "injected": "Confirme la conexión en la ventana de extensión", - "browser": "Confirme la conexión en la billetera después de la redirección", - "hardware": "Confirme la conexión en el dispositivo de libro mayor", - "bridge": "Confirmar la conexión en la billetera" - } - }, - "ledger": { - "connectWithLedger": "Conectar con Ledger", - "makeSureYourLedger": "Asegúrese de que su ledger está conectada de forma segura y que la aplicacion NEAR esté abierta en su dispositivo", - "continue": "Continuar", - "specifyHDPath": "Especifique la ruta HD", - "enterYourPreferredHDPath": "Ingrese su ruta HD prerida,y luego busque cualquier cuenta activa.", - "scan": "Escanear", - "retry": "Reintentar", - "ledgerIsNotAvailable": "El Ledger no está disponible", - "accessDeniedToUseLedgerDevice": "Acceso denegado para usar el dispositivo ledger", - "noAccountsFound": "No se encontraron cuentas", - "selectYourAccounts": "Selecciona tus cuentas", - "connecting1Account": "Conectando a 1 cuenta", - "cantFindAnyAccount": "No se pudo encontrar ninguna cuenta asociada con este ledger,Por favor crea una nueva cuenta en NEAR", - "orConnectAnAnotherLedger": "o conecta otro ledger", - "connecting": "Conectando", - "ofAccounts": "de Cuentas", - "failedToAutomatically": "No se pudo encontrar automaticamente el id de la cuenta,Ingresalo manualmente:", - "overviewTheListOfAuthorized": "Revise la lista de las cuentas autorizadas,Complete el inicio de sesión haciedo click a countinuacion.", - "finish": "Finalizar" - }, - "install": { - "youllNeedToInstall": "Tendrás que instalar", - "toContinueAfterInstalling": "Para continuar, Despues de instalar", - "refreshThePage": "Recarga la pagina", - "open": "Abrir" - }, - "qr": { - "copiedToClipboard": "Copiado al Portapapeles", - "failedToCopy": "Falló la copia al Portapapeles", - "scanWithYourMobile": "Busca con tu dispositivo movil", - "copyToClipboard": " Copiar al Portapapeles", - "preferTheOfficial": "¿Prefires el diálogo oficial de", - "open": "Abrir" - }, - "walletTypes": { - "hardware": "Cartera de Hardware", - "browser": "Cartera de Navegador", - "injected": "Extensión de Cartera", - "bridge": "Cartera de Puente", - "mobile": "Cartera Móvil", - "instant-link": "Cartera Instantánea" - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/hi.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/hi.json deleted file mode 100644 index c8c5866ef..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/hi.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "अपना वॉलेट (Wallet) कनेक्ट करें।", - "whatIsAWallet": "वॉलेट क्या है?", - "secureAndManage": "सुरक्षित और प्रबंधित करें।", - "safelyStore": "अपनी क्रिप्टोकरेंसी और एनएफटी को सुरक्षित रूप से स्टोर और ट्रांसफर करें।", - "logInToAny": "NEAR पर किसी भी ऐप में साइन इन करें।", - "noNeedToCreate": "नए खाते या लॉगिन बनाने की आवश्यकता नहीं है। अपना वॉलेट(NEAR Wallet)कनेक्ट करें और आरंभ करें।", - "getAWallet": "एक वॉलेट बनाएँ।", - "useAWallet": "अपनी NEAR संपत्तियों को सुरक्षित और प्रबंधित करने के लिए वॉलेट का उपयोग करें और किसी भी NEAR ऐप (app) में लॉग इन करें, किसी उपयोगकर्ता (user) नाम और पासवर्ड की आवश्यकता नहीं है।", - "connectionFailed": "कनेक्शन विफल|", - "connectionSuccessful": "कनेक्शन सफल|", - "rememberWallet": "वॉलेटों को याद रखें", - "connected": "वॉलेट जुड़ गया|", - "connectingTo": "वॉलेट जुड़ रहा हे|", - "connectingMessage": { - "injected": "एक्सटेंशन विंडो में कनेक्शन की पुष्टि करें|", - "browser": "रीडायरेक्ट होने के बाद वॉलेट में कनेक्शन की पुष्टि करें|", - "hardware": "कोल्ड वॉलेट के साथ कनेक्शन की पुष्टि करें|" - } - }, - "ledger": { - "connectWithLedger": "लेजर(Ledger)वॉलेट कनेक्ट करें|", - "makeSureYourLedger": "सुनिश्चित करें कि आपका लेजर सुरक्षित रूप से जुड़ा हुआ है और NEAR ऐप आपके डिवाइस (Device)पर पहले से ही खुला है|", - "continue": "जारी रखे|", - "specifyHDPath": "हार्ड डिस्क(Hard Disk)पथ(Path)निर्धारित करे|", - "enterYourPreferredHDPath": "अपना एचडी पथ दर्ज करें, फिर सक्रिय खातों के लिए स्कैन करें|", - "scan": "स्कैन करे|", - "retry": "दोबारा प्रयास करे|", - "ledgerIsNotAvailable": "लेजर उपलब्ध नहीं है|", - "accessDeniedToUseLedgerDevice": "लेजर डिवाइस का उपयोग करने के लिए प्रवेश निषेध|", - "noAccountsFound": "खाता नहीं मिला|", - "selectYourAccounts": "अपने खाते चुनें|", - "connecting1Account": "एक खाता कनेक्ट हो रहा है|", - "cantFindAnyAccount": "इस लेजर से जुड़ा कोई खाता नहीं मिला। कृपया एक नया NEAR खाता बनाएँ|", - "orConnectAnAnotherLedger": "अथवा दूसरे लेजर वॉलेट से कनेक्ट करें।", - "connecting": "जुड़ रहा हे|", - "ofAccounts": "खाता अब जुड़ा नहीं हे|", - "failedToAutomatically": "खाता आईडी स्वचालित रूप से खोजने में असमर्थ। मैन्युअल (Manuall) रूप से कोशिश करें|", - "overviewTheListOfAuthorized": "अवलोकन अधिकृत की सूची, नीचे दिए गए बटन पर क्लिक करके लॉगिन पूरा करें।", - "finish": "समाप्त|" - }, - "install": { - "youllNeedToInstall": "आपको इंस्टॉल करना होगा|", - "toContinueAfterInstalling": "इंस्टॉल करने के बाद जारी रखे|", - "refreshThePage": "पुन: लोड करें।", - "open": "खोले|" - }, - "qr": { - "copiedToClipboard": "क्लिपबोर्ड(Clipboard)पर कॉपी किया गया|", - "failedToCopy": "क्लिपबोर्ड पर कॉपी करना विफल रहा|", - "scanWithYourMobile": "अपने फोन (Mobile)से स्कैन करें|", - "copyToClipboard": " क्लिपबोर्ड पर कॉपी करें|", - "preferTheOfficial": "आधिकारिक संवाद को प्राथमिकता दें|", - "open": "खोले|" - }, - "walletTypes": { - "hardware": "हार्डवेयर वॉलेट", - "browser": "ब्राउज़र वॉलेट", - "injected": "वॉलेट एक्सटेंशन", - "bridge": "ब्रिज वॉलेट", - "mobile": "मोबाइल वॉलेट", - "instant-link": "इंस्टेंट वॉलेट" - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/hr.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/hr.json deleted file mode 100644 index 1a6cc0967..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/hr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Spojite crypto novčanik!", - "whatIsAWallet": "Što je to crypto novčanik?", - "secureAndManage": "Osigurajte i upravljajte svojom digitalnom imovinom.", - "safelyStore": "Sigurno pohranite i prebacite svoj crypto i NFT-eve.", - "logInToAny": " Prijavite se u bilo koju NEAR aplikaciju", - "noNeedToCreate": "Nema potrebe za stvaranjem novih naloga ili korisničkih podataka. Spojite svoj crypto novčanik i spremni ste!", - "getAWallet": "Otvorite crypto novčanik", - "useAWallet": "Koristite crypto novčanik da biste osigurali i upravljali svojom NEAR imovinom, te se prijavite u bilo koju NEAR aplikaciju bez korisničkog imena i lozinke.", - "connectionFailed": "Neuspješno povezivanje.", - "connectionSuccessful": "Uspješno povezivanje.", - "rememberWallet": "Zapamti novčanike", - "connected": "Povezano.", - "connectingTo": "Povezivanje u tijeku", - "connectingMessage": { - "injected": "Potvrdite vezu u eksternom prozoru", - "browser": "Nakon redirekcije, potvrdite vezu u novčaniku", - "hardware": "Potvrdite vezu sa novčanikom", - "bridge": "Potvrdite vezu u novčaniku" - } - }, - "ledger": { - "connectWithLedger": "Povežite se hardverskim novčanikom", - "makeSureYourLedger": "Osigurajte sigurnu vezu s hardverskim novčanikom, te da je NEAR aplikacija otvorena na vašem uređaju", - "continue": "Nastavite", - "specifyHDPath": "Specificirajte HD putanju", - "enterYourPreferredHDPath": "Upišite preferiranu HD putanju, zatim skenirajte aktivne naloge", - "scan": "Skenirajte", - "retry": "Pokušajte ponovno", - "ledgerIsNotAvailable": "Hardverski novčanik nije dostupan.", - "accessDeniedToUseLedgerDevice": "Odbijen pristup za korištenjem hardverskog novčanika", - "noAccountsFound": "Nalozi nisu pronađeni", - "selectYourAccounts": "Odaberite svoje naloge", - "connecting1Account": "Povezivanje 1 naloga", - "cantFindAnyAccount": "Nije moguće pronaći niti jedan nalog povezan s ovim hardverskim novčanikom. Molimo vas, kreirajte novi NEAR nalog", - "orConnectAnAnotherLedger": "Ili povežite drugi hardverski novčanik.", - "connecting": "Povezivanje", - "ofAccounts": "naloga", - "failedToAutomatically": "Neuspješno automatsko pronalaženje ID naloga. Unesite ručno:", - "overviewTheListOfAuthorized": "Pregledajte popis odobrenih naloga, završite prijavu pritiskom na niže prikazani gumb.", - "finish": "Završite" - }, - "install": { - "youllNeedToInstall": " Potrebno je instalirati modal", - "toContinueAfterInstalling": "za nastavak. Nakon instalacije", - "refreshThePage": "osvježite stranicu.", - "open": "Otvorite QR modal" - }, - "qr": { - "copiedToClipboard": "Kopirano u međuspremnik", - "failedToCopy": "Neupsješno kopiranje u međuspremnik", - "scanWithYourMobile": "Skenirajte svojim mobilnim uređajem", - "copyToClipboard": " Kopirajte u međuspremnik", - "preferTheOfficial": "Odaberite službeni dijalog", - "open": "Otvorite" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Odaberi Wallet", - "transferYourAccounts": "Prenesi svoje naloge", - "selectAWallet": "Odaberite wallet koji odgovara vašim potrebama i podržava vaše povezane naloge.", - "selectYourAccounts": "Odaberi svoje naloge", - "afterDecide": "Nakon što odlučite koji wallet koristite, možete odabrati koje račune želite prebaciti.", - "disclaimer": "Nećete moći prebaciti naloge koji nisu nikada bili korišteni na NEAR-u.", - "warning": "ne podržava izvoz naloga u ovom trenutku. Molimo odaberite drugi wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Odaberi naloge za prijenos", - "button": "Generiraj lozinku", - "deselectAll": "Makni odabir sa svih", - "selectAll": "Odaberi sve", - "unavailable": "Prijenos nije dostupan", - "error": "Nalog ne postoji", - "warningLedger": "Potrebna ledger podrška", - "noBalance": "Nalog nema sredstava" - }, - "getPassphrase": { - "title": "Kopiraj privremenu lozinku", - "desc": "Bit će potrebno unijeti ovu lozinku na početku izvoza naloga na drugi wallet.", - "button": "Nastavi", - "label": "Klikni za kopiju", - "checkLabel": "Kopirao sam ili zapisao lozinku" - }, - "complete": { - "title": "Završi prijenos", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Kada je unos s odabranog walleta završen, pritisnite gumb da biste završili prijenos.", - "button": "Završi" - } - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/ko.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/ko.json deleted file mode 100644 index e5c20d2d6..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/ko.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "지갑 연결하기", - "whatIsAWallet": "지갑은 무슨 역할을 하나요?", - "secureAndManage": "당신의 디지털 자산을 보호하고 관리합니다.", - "safelyStore": "암호화폐와 NFT를 안전하게 저장하고 전송할 수 있습니다.", - "logInToAny": "NEAR App에 로그인합니다.", - "noNeedToCreate": "새로운 계정이나 비밀번호를 만들 필요 없이 지갑을 연결한 후 바로 사용할 수 있습니다.", - "getAWallet": "지갑 가져오기", - "useAWallet": "지갑을 사용하여 NEAR 자산을 보호·관리하고, 아이디와 비밀번호 없이 NEAR 앱에 로그인할 수 있습니다.", - "connectionFailed": "연결 실패", - "connectionSuccessful": "연결 성공", - "rememberWallet": "지갑들 기억하기", - "connected": "Connected", - "connectingTo": "연결 중: ", - "connectingMessage": { - "injected": "익스텐션 창에서 연결을 확인하세요", - "browser": "리다이렉트 된 지갑에서 연결을 확인하세요", - "hardware": "Ledger 기기에서 연결을 확인하세요", - "bridge": "지갑에서 연결 확인" - } - }, - "ledger": { - "connectWithLedger": "Ledger 연결하기", - "makeSureYourLedger": "Ledger가 안전하게 연결되어 있고, NEAR 앱이 열려 있는 지 확인하세요", - "continue": "계속하기", - "specifyHDPath": "HD Path 지정하기", - "enterYourPreferredHDPath": "원하는 HD Path를 선택하고, 활성화된 계정이 있는 지 검색하세요", - "scan": "검색", - "retry": "다시 시도", - "ledgerIsNotAvailable": "Ledger를 사용할 수 없습니다", - "accessDeniedToUseLedgerDevice": "Ledger 기기 접근 권한이 거부되었습니다", - "noAccountsFound": "계정을 찾을 수 없습니다", - "selectYourAccounts": "계정 선택하기", - "connecting1Account": "하나의 계정에 연결", - "cantFindAnyAccount": "Ledger와 연결된 계정을 찾을 수 없습니다. 새로운 계정을 생성하거나 ", - "orConnectAnAnotherLedger": "다른 Ledger를 연결하세요", - "connecting": "계정 연결하기: ", - "ofAccounts": "개 계정을 찾았습니다", - "failedToAutomatically": "계정 ID를 찾지 못했습니다. 수동으로 입력해주세요.", - "overviewTheListOfAuthorized": "인증된 계정 목록을 확인한 후 아래 버튼을 클릭하여 로그인을 완료하세요", - "finish": "완료" - }, - "walletTypes": { - "hardware": "하드웨어 지갑", - "browser": "브라우저 지갑", - "injected": "지갑 확장", - "bridge": "브리지 지갑", - "mobile": "모바일 지갑", - "instant-link": "인스턴트 지갑" - }, - "install": { - "youllNeedToInstall": "다음 확장 프로그램을 설치해주세요:", - "toContinueAfterInstalling": ". 설치 완료 후 페이지 새로 고침이 필요합니다. ", - "refreshThePage": "새로 고침", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "클립보드에 복사 완료", - "failedToCopy": "클립보드에 복사 실패", - "scanWithYourMobile": "모바일 장치를 사용하여 스캔해주세요", - "copyToClipboard": " 클립보드에 복사하기", - "preferTheOfficial": "다음 프로그램에서 제공하는 공식 프로세스를 선호하십니까: ", - "open": "Open" - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/mk.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/mk.json deleted file mode 100644 index f75e74659..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/mk.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Поврзете го вашиот новчаник!", - "whatIsAWallet": "Што е новчаник?", - "secureAndManage": "Заштитете ги и управувајте со вашите дигитални средства.", - "safelyStore": "Безбедно складирајте и извршувајте трансакции со вашите крипто и NFT.", - "logInToAny": "Најавете се на која било NEAR апликација", - "noNeedToCreate": "Нема потреба да креирате нови сметки или ингеренции. Поврзете го вашиот паричник и сте подготвени!", - "getAWallet": "Направете новчаник", - "useAWallet": "Користете паричник за да ги заштитите и управувате вашите NEAR средства и да се најавите на која било NEAR апликација без потреба од кориснички имиња и лозинки.", - "connectionFailed": "Поврзувањето не беше успешно.", - "connectionSuccessful": "Успешно поврзување.", - "rememberWallet": "Запомни паричници", - "connected": "Поврзано.", - "connectingTo": "Поврзување со", - "connectingMessage": { - "injected": "Потврдете го поврзувањето во екстерниот прозорец", - "browser": "По преусмерувањето, потврдете го поврзувањето од новчаниокт", - "hardware": "Потврдете го поврзувањето со ладен новчаник", - "bridge": "Потврдете ја врската во новчаникот" - } - }, - "ledger": { - "connectWithLedger": "Поврзете се со Леџер", - "makeSureYourLedger": "Осигурајте се дека вашиот Леџер е поврзан безбедно, и дека NEAR апликацијата е отворена на вашиот уред", - "continue": "Продолжете", - "specifyHDPath": "Наведете ХД локација", - "enterYourPreferredHDPath": "Внесете ја вашата преферирана ХД локација, а потоа скенирајте да ги најдете активните сметки.", - "scan": "Скенирајте", - "retry": "Обидете се повторно", - "ledgerIsNotAvailable": "Леџерот не е достапен.", - "accessDeniedToUseLedgerDevice": "Пристапот за користење на Леџер уред е одбиен", - "noAccountsFound": "Нема најдени сметки", - "selectYourAccounts": "Изберете ги вашите сметки", - "connecting1Account": "Поврзување на една сметка", - "cantFindAnyAccount": "Не се најдени сметки поврзани со овој Леџер. Ве молиме креирајте нова NEAR сметка ", - "orConnectAnAnotherLedger": "или поврзете друг Леџер.", - "connecting": "Поврзување", - "ofAccounts": "на сметки", - "failedToAutomatically": "Неуспешно автоматско барање на ИД на сметката. Внесете го рачно:", - "overviewTheListOfAuthorized": "Преглед на листата на овластени сметки, завршете се најавата со кликнување на копчето подолу.", - "finish": "Завршете" - }, - "install": { - "youllNeedToInstall": "Треба да инсталирате", - "toContinueAfterInstalling": "за да продолжите. По инсталирањето", - "refreshThePage": "Освежете ја страната.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано на клипбордот", - "failedToCopy": "Неуспешно копирање на клипборд", - "scanWithYourMobile": "Скенирајте со вашиот телефонски уред", - "copyToClipboard": "Копирајте на клипборд", - "preferTheOfficial": "Преферирајте официјален диалог на", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник", - "instant-link": "Инстант паричник" - }, - "exportAccounts": { - "chooseAWallet": "Одберете паричник", - "transferYourAccounts": "Префрлете ги вашите кориснички сметки", - "selectAWallet": "Изберетен новчаник кој ги задоволува вашите баранња и ги поддржува вашите поврзани кориснички сметки.", - "selectYourAccounts": "Изберете ги вашите кориснички сметки", - "afterDecide": "Одкако ќе изберете новчаник, можете да изберете кои кориснички сметки сакате да ги префрлите.", - "disclaimer": "Не можете да прфрлате кориснички сметки кои никогаш не биле надополнати или користени на NEAR.", - "warning": "не поддржува извезување на кориснички сметки во овој момент. Ве молиме изберете друг новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник" - }, - "selectAccounts": { - "title": "Изберете ги корисничките сметки за да ги префрлите.", - "button": "Добијте лозинка", - "deselectAll": "Отселектирајте се", - "selectAll": "Изберете се", - "unavailable": "Трансферот е недостапен", - "error": "Корисничката сметка не постои", - "warningLedger": "Потребна е поддршка од Леџер", - "noBalance": "Сметката не е финансирана" - }, - "getPassphrase": { - "title": "Копирајте ја привремената лозинка", - "desc": "Ќе треба да ја внесете оваа лозинка кога ќе започнете да ги извезувате вашите сметки на друг новчаник.", - "button": "Продолжете", - "label": "Кликнете за да копирате", - "checkLabel": "Ја копирав или запишав лозинката" - }, - "complete": { - "title": "Завршете го преносот", - "descOne": "Сега ќе бидете пренасочени на избраниот новчаник за завршување на преносот.", - "descTwo": "Откако ќе заврши увозот од избраниот новчаник, притиснете го копчето за да го завршите преносот.", - "button": "Завршете" - } - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/sl.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/sl.json deleted file mode 100644 index 20b795b9a..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/sl.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Povežite svojo denarnico!", - "whatIsAWallet": "Kaj je denarnica?", - "secureAndManage": "Zavarujte in upravljajte svoja digitalna sredstva.", - "safelyStore": "Varno shranjujte in prenašajte svoje kriptovalute in NFTje.", - "logInToAny": "Prijavite se v katero koli aplikacijo na NEAR", - "noNeedToCreate": "Ni vam treba ustvarjati novih računov. Povežite svojo denarnico in začnite!", - "getAWallet": "Ustvarite denarnico", - "useAWallet": "Uporabite denarnico, da bi zavarovali in upravljali s svoja NEAR digitalna sredstva, in se prijavite v katero koli aplikacijo ekosistema NEAR", - "connectionFailed": "Povezava ni bila uspešna.", - "connectionSuccessful": "Povezava je bila uspešna.", - "rememberWallet": "Zapomni si denarnice", - "connected": "Vaša denarnica je povezana.", - "connectingTo": "Povezovanje z", - "connectingMessage": { - "injected": "Potrdite povezavo v oknu razširitve", - "browser": "Po preusmeritvi potrdite povezavo v denarnici", - "hardware": "Potrdite povezavo s hladno denarnico", - "bridge": "Potrdite povezavo v denarnici" - } - }, - "ledger": { - "connectWithLedger": "Povežite se z Ledger", - "makeSureYourLedger": "Prepričajte se, da je vaš Ledger varno povezan in da je aplikacija NEAR odprta v vaši napravi", - "continue": "Nadaljuj", - "specifyHDPath": "Določite HD pot", - "enterYourPreferredHDPath": "Vnesite želeno HD pot, nato poiščite vse aktivne račune.", - "scan": "Skenirajte", - "retry": "Poskusite znova", - "ledgerIsNotAvailable": "Ledger ni na voljo", - "accessDeniedToUseLedgerDevice": "Dostop za uporabo naprave Ledger zavrnjen", - "noAccountsFound": "Ni najdenih računov", - "selectYourAccounts": "Izberite Vaši računi", - "connecting1Account": "Povezovanje enega računa", - "cantFindAnyAccount": "Ni mogoče najti nobenega računa, povezanega s tem Ledgerjem. Ustvarite nov NEAR račun ", - "orConnectAnAnotherLedger": "ali povežite drug Ledger..", - "connecting": "Povezovanje", - "ofAccounts": "računov", - "failedToAutomatically": "ID-ja računa ni bilo mogoče samodejno najti. Zagotovite ga ročno:", - "overviewTheListOfAuthorized": "Oglejte si seznam pooblaščenih računov, dokončajte prijavo s klikom na spodnji gumb.", - "finish": "Končajte" - }, - "install": { - "youllNeedToInstall": "Morali ga boste namestiti", - "toContinueAfterInstalling": "nadaljevati. Po namestitvi", - "refreshThePage": "Osvežite stran.", - "open": "Odprite" - }, - "qr": { - "copiedToClipboard": "Kopirano v podložni mapi", - "failedToCopy": "Kopiranje v podložni mapi ni uspelo", - "scanWithYourMobile": "Skenirajte s svojo mobilno napravo", - "copyToClipboard": " Kopirajte v podložni mapi", - "preferTheOfficial": "Preferirajte uradno pogovorno okno", - "open": "Odprite" - }, - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica", - "instant-link": "Takojšnja denarnica" - }, - "exportAccounts": { - "chooseAWallet": "Izberite denarnico", - "transferYourAccounts": "Prenesite svoje račune", - "selectAWallet": "Izberite denarnico, ki ustreza vašim potrebam in podpira vaše povezane račune.", - "selectYourAccounts": "Izberite vaši računi", - "afterDecide": "Ko se odločite za denarnico, lahko izberete, katere račune želite prenesti.", - "disclaimer": "Ne boste mogli prenesti Računov, ki nikoli niso bili financirani ali uporabljeni na NEAR.", - "warning": "trenutno ne podpira izvoza računa. Izberite drugo denarnico", - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica" - }, - "selectAccounts": { - "title": "Izberite računi za prenos.", - "button": "Pridobite geslo", - "deselectAll": "Prekliči izbiro vseh", - "selectAll": "Izberi vse", - "unavailable": "Prenos ni na voljo", - "error": "Račun ne obstaja", - "warningLedger": "Potrebna je podpora za Ledger", - "noBalance": "Račun ni financiran" - }, - "getPassphrase": { - "title": "Kopiraj začasno geslo", - "desc": "To geslo boste morali vnesti, ko boste začeli izvažati svoje račune v drugo denarnico.", - "button": "Nadaljujte", - "label": "Kliknite za kopiranje", - "checkLabel": "Geslo sem kopiral ali zapisal" - }, - "complete": { - "title": "Dokončajte prenos", - "descOne": "Zdaj boste preusmerjeni v denarnico, ki ste jo izbrali za dokončanje prenosa.", - "descTwo": "Ko je uvozni del postopka končan iz izbrane denarnice, pritisnite gumb za dokončanje postopka prenosa.", - "button": "Končajte" - } - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/sr.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/sr.json deleted file mode 100644 index 094c75982..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/sr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Повежите свој новчаник!", - "whatIsAWallet": "Шта је новчаник?", - "secureAndManage": "Обезбедите и управљајте својом дигиталном имовином.", - "safelyStore": "Безбедно чувајте и преносите своје криптовалуте и NFT.", - "logInToAny": "Пријавите се на било коју апликацију NEAR", - "noNeedToCreate": "Нема потребе да креирате нове налоге или акредитиве. Повежите новчаник и спремни стe!", - "getAWallet": "Набавите новчаник", - "useAWallet": "Користите новчаник да обезбедите и управљате својим NEAR средствима и да се пријавите у било коју апликацију NEAR без потребе за корисничким именима и лозинкама.", - "connectionFailed": "Веза није успостављена.", - "connectionSuccessful": "Веза је успела.", - "rememberWallet": "Запамти новчанике", - "connected": "Повезан.", - "connectingTo": "Повезивање на", - "connectingMessage": { - "injected": "Потврдите везу у спољном прозору", - "browser": "Након преусмеравања, потврдите везу у новчанику", - "hardware": "Потврдите везу са хладним новчаником", - "bridge": "Потврдите везу са новчаником" - } - }, - "ledger": { - "connectWithLedger": "Повежите се са Ledger", - "makeSureYourLedger": "Уверите се да је ваш Ledger безбедно повезан и да је апликација NEAR отворена на вашем уређају", - "continue": "Настави", - "specifyHDPath": "Наведите ХД путању", - "enterYourPreferredHDPath": "Унесите жељену жељену ХД путању, а затим скенирајте све активне налоге.", - "scan": "Скенирајте", - "retry": "Покушај поново", - "ledgerIsNotAvailable": "Ledger није доступан.", - "accessDeniedToUseLedgerDevice": "Приступ је одбијен за коришћење Ledger уређаја", - "noAccountsFound": "Наlози нису пронађени", - "selectYourAccounts": "Изаберите Ваш наlог", - "connecting1Account": "Повезати 1 наlог", - "cantFindAnyAccount": "Није могуће пронаћи ниједан наlог повезан са овим Ledger-ом. Направите нови NEAR наlог", - "orConnectAnAnotherLedger": "или повежите други Ledger.", - "connecting": "Повезивање", - "ofAccounts": "наlога", - "failedToAutomatically": "Аутоматско проналажење ID-a наlога није успело. Наведите га ручно:", - "overviewTheListOfAuthorized": "Прегледајте листу овлашћених рачуна, завршите пријаву кликом на дугме испод.", - "finish": "Заврши" - }, - "install": { - "youllNeedToInstall": "Мораћете да инсталирате", - "toContinueAfterInstalling": "за наставак. Након инсталирања", - "refreshThePage": "поново учитати страницу.", - "open": "Отвори" - }, - "qr": { - "copiedToClipboard": "Копирано у међуспремник", - "failedToCopy": "Копирање у међуспремник није успело", - "scanWithYourMobile": "Скенирајте помоћу мобилног уређаја", - "copyToClipboard": " Копирај у међуспремник", - "preferTheOfficial": "Преферирате званични дијалог од", - "open": "Отвори" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник", - "instant-link": "Инстант новчаник" - }, - "exportAccounts": { - "chooseAWallet": "Изаберите новчаник", - "transferYourAccounts": "Пренесите своје налоге", - "selectAWallet": "Изаберите новчаник који одговара вашим потребама и који подржава ваше повезане налоге.", - "selectYourAccounts": "Изаберите ваше налоге", - "afterDecide": "Након што се одлучите за новчаник, можете изабрати које налоге желите да пренесете.", - "disclaimer": "Нећете моћи да пренесете налоге који никада нису били финансирани или коришћени на NEAR.", - "warning": "тренутно не подржава извоз налога. Изаберите други новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник" - }, - "selectAccounts": { - "title": "Изаберите налоге за пренос.", - "button": "Добијте приступну фразу", - "deselectAll": "Поништите избор", - "selectAll": "Изаберите све", - "unavailable": "Трансфер није доступан", - "error": "Налог не постоји", - "warningLedger": "Потребна подршка за Ledger", - "noBalance": "Налог није финансиран" - }, - "getPassphrase": { - "title": "Копирај привремену лозинку", - "desc": "Мораћете да унесете ову лозинку када почнете да извозите своје налоге у други новчаник.", - "button": "Наставите", - "label": "Кликните да бисте копирали", - "checkLabel": "Копирао сам или записао лозинку" - }, - "complete": { - "title": "Довршите трансфер", - "descOne": "Сада ћете бити преусмерени на новчаник који сте изабрали да завршите трансфер.", - "descTwo": "Када се део процеса увоза заврши из изабраног новчаника, притисните дугме да завршите процес преноса.", - "button": "Завршите" - } - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/vi.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/vi.json deleted file mode 100644 index 025d762e7..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/vi.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Kết nối ví của bạn", - "whatIsAWallet": "Ví là gì?", - "secureAndManage": "Bảo mật & Quản lý tài sản số của bạn", - "safelyStore": "Lưu trữ và chuyển tiền điện tử và NFT của bạn một cách an toàn.", - "logInToAny": "Đăng nhập vào bất kỳ ứng dụng trên NEAR", - "noNeedToCreate": "Không cần tạo tài khoản hoặc thông tin đăng nhập mới. Kết nối ví của bạn và bắt đầu!", - "getAWallet": "Tạo Ví", - "useAWallet": "Sử dụng ví để bảo mật và quản lý tài sản trên NEAR của bạn và đăng nhập vào bất kỳ ứng dụng NEAR nào, không cần tên người dùng và mật khẩu.", - "connectionFailed": "Kết nối thất bại", - "connectionSuccessful": "Kết nối thành công", - "rememberWallet": "Ghi nhớ lựa chọn ví", - "connected": "Đã kết nối", - "connectingTo": "Đang kết nối tới", - "connectingMessage": { - "injected": "Xác nhận kết nối trong cửa sổ tiện ích mở rộng", - "browser": "Xác nhận kết nối trong ví sau khi được chuyển hướng", - "hardware": "Xác nhận kết nối với ví lạnh", - "bridge": "Xác nhận kết nối trong ví" - } - }, - "ledger": { - "connectWithLedger": "Kết nối ví Ledger", - "makeSureYourLedger": "Đảm bảo Ledger của bạn được kết nối an toàn và ứng dụng NEAR đang mở sẵn trên thiết bị", - "continue": "Tiếp tục", - "specifyHDPath": "Chỉ định HD Path", - "enterYourPreferredHDPath": "Nhập HD Path của bạn, sau đó quét tìm các tài khoản hoạt động", - "scan": "Quét", - "retry": "Thử lại", - "ledgerIsNotAvailable": "Ledger không khả dụng", - "accessDeniedToUseLedgerDevice": "Truy cập Ledger bị từ chối", - "noAccountsFound": "Không tìm thấy tài khoản", - "selectYourAccounts": "Chọn tài khoản của bạn", - "connecting1Account": "Đang kết nối 1 tài khoản", - "cantFindAnyAccount": "Không thể tìm thấy bất kỳ tài khoản nào được liên kết với Ledger này. Vui lòng tạo một tài khoản NEAR mới", - "orConnectAnAnotherLedger": "hoặc kết nối với ví Ledger khác.", - "connecting": "Đang kết nối", - "ofAccounts": "của tài khoản", - "failedToAutomatically": "Không thể tự động tìm id tài khoản. Nhập thủ công:", - "overviewTheListOfAuthorized": "Tổng quan danh sách các tài khoản được ủy quyền, hoàn tất đăng nhập bằng cách bấm vào nút bên dưới.", - "finish": "Hoàn thành" - }, - "install": { - "youllNeedToInstall": "Bạn sẽ cần cài đặt", - "toContinueAfterInstalling": "để bắt đầu. Sau khi cài đặt xong", - "refreshThePage": "Tải lại trang.", - "open": "Mở" - }, - "qr": { - "copiedToClipboard": "Đã sao chép vào bảng ghi tạm", - "failedToCopy": "Sao chép vào bảng ghi tạm thất bại", - "scanWithYourMobile": "Quét với điện thoại của bạn", - "copyToClipboard": " Sao chép vào bảng ghi tạm", - "preferTheOfficial": "Dialogue chính thức của", - "open": "Mở" - }, - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile", - "instant-link": "Ví tức thì" - }, - "exportAccounts": { - "chooseAWallet": "Chọn ví", - "transferYourAccounts": "Chuyển tài khoản", - "selectAWallet": "Chọn ví phù hợp với nhu cầu của bạn, ví được chọn cần hỗ trợ các tài khoản đang sử dụng.", - "selectYourAccounts": "Chọn tài khoản", - "afterDecide": "Sau khi chọn được tài khoản bạn có chuyển.", - "disclaimer": "Bạn không thể chuyển tài khoản nếu tài khoản đó chưa được nhận tiền hoặc chưa phát sinh giao dịch trên NEAR.", - "warning": "không hỗ trợ xuất tài khoản. Vui lòng chọn ví khác.", - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile" - }, - "selectAccounts": { - "title": "Chọn tài khoản để chuyển", - "button": "Lấy cụm mật khẩu", - "deselectAll": "Bỏ chọn tất cả", - "selectAll": "Chọn tất cả", - "unavailable": "Chuyển không khả dụng", - "error": "Tài khoản không tồn tại", - "warningLedger": "Yêu cầu hỗ trợ Ledger", - "noBalance": "Tài khoản trống" - }, - "getPassphrase": { - "title": "Sao chép mật khẩu tạm thời", - "desc": "Bạn sẽ cần nhập mật khẩu khi bắt đầu xuất các khoản tới ví khác.", - "button": "Tiếp tục", - "label": "Bấm để sao chép", - "checkLabel": "Tôi đã chép hoặc ghi lại mật khẩu" - }, - "complete": { - "title": "Hoàn thành chuyển", - "descOne": "Bạn sẽ được chuyển hướng tới tài khoản đã chọn để hoàn tất quá trình.", - "descTwo": "Sau khi nhập, nhấn nút để hoàn tất quy trình chuyển.", - "button": "Hoàn thành" - } - } - }, - "component": { - "clickToCopy": { - "label": "Đã sao chép", - "tooltip": "Bấm để sao chép" - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/zh.json b/packages/my-near-wallet/dist/cjs/core/src/lib/locale/zh.json deleted file mode 100644 index 2f363c7b1..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/locale/zh.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "连接你的钱包", - "whatIsAWallet": "什么是钱包?", - "secureAndManage": "保护和管理你的数字资产", - "safelyStore": "安全存储和转移你的加密货币和NFT", - "logInToAny": "登录任何 NEAR 应用", - "noNeedToCreate": "不需要创建新账户或密码。连接你的钱包,即可开始使用!", - "getAWallet": "获取新账户", - "useAWallet": "使用钱包来保护和管理你的 NEAR 资产,无需用户名和密码即可登录任何 NEAR 应用", - "connectionFailed": "连接失败", - "connectionSuccessful": "连接成功", - "rememberWallet": "记住钱包选择", - "connected": "已连接", - "connectingTo": "正在连接" - }, - "ledger": { - "connectWithLedger": "连接 Ledger", - "makeSureYourLedger": "确保你的 Ledger 已经安全连接,并且 NEAR 应用已经在你设备上打开", - "continue": "继续", - "specifyHDPath": "指定 HD 路径", - "enterYourPreferredHDPath": "输入你偏好的 HD 路径,然后为任意活跃账户扫码", - "scan": "扫码", - "retry": "重试", - "ledgerIsNotAvailable": "Ledger 不可用", - "accessDeniedToUseLedgerDevice": "访问 Ledger 设备被拒绝", - "noAccountsFound": "没有找到账户", - "selectYourAccounts": "选择你的账户", - "connecting1Account": "正在连接1个账户", - "cantFindAnyAccount": "没有找到任何与这个 Ledger 相关联的账户。请创建新账户于", - "orConnectAnAnotherLedger.": "或连接另一个 Ledger", - "connecting": "正在连接", - "ofAccounts": "个账户", - "failedToAutomatically": "无法自动找到账户ID,请主动提供:", - "overviewTheListOfAuthorized": "请查看已授权的账户列表,点击以下按钮完成登录", - "finish": "完成" - }, - "install": { - "youllNeedToInstall": "你将需要安装", - "toContinueAfterInstalling": "以继续。安装完", - "refreshThePage": "请刷新页面", - "open": "打开" - }, - "qr": { - "copiedToClipboard": "复制到了剪贴板", - "failedToCopy": "复制到剪贴板失败", - "scanWithYourMobile": "用你的移动设备扫码", - "copyToClipboard": " 复制到剪贴板", - "preferTheOfficial": "希望使用官方对话框于", - "open": "打开" - }, - "walletTypes": { - "hardware": "硬件钱包", - "browser": "浏览器钱包", - "injected": "钱包扩展", - "bridge": "桥接钱包", - "mobile": "移动钱包", - "instant-link": "即时钱包" - } - } -} diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/options.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/options.d.ts deleted file mode 100644 index bc6d1111b..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/options.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { WalletSelectorParams } from "./wallet-selector.types"; -import type { Options, Network, NetworkId } from "./options.types"; -export declare const getNetworkPreset: (networkId: NetworkId, fallbackRpcUrls?: Array) => Network; -export declare const resolveNetwork: (network: NetworkId | Network) => Network; -export declare const resolveOptions: (params: WalletSelectorParams) => { - options: Options; - storage: import("./services").StorageService; -}; -//# sourceMappingURL=options.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/options.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/options.d.ts.map deleted file mode 100644 index e8ce7bf80..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/options.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGnE,eAAO,MAAM,gBAAgB,cAChB,SAAS,oBACF,KAAK,CAAC,MAAM,CAAC,KAC9B,OAqBF,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,SAAS,GAAG,OAAO,KAAG,OAE7D,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,oBAAoB;;;CAc1D,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/options.js b/packages/my-near-wallet/dist/cjs/core/src/lib/options.js deleted file mode 100644 index 587fab7eb..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/options.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.resolveOptions = exports.resolveNetwork = exports.getNetworkPreset = void 0; -const services_1 = require("./services"); -const getNetworkPreset = (networkId, fallbackRpcUrls) => { - switch (networkId) { - case "mainnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.mainnet.near.org", - helperUrl: "https://helper.mainnet.near.org", - explorerUrl: "https://nearblocks.io", - indexerUrl: "https://api.kitwallet.app", - }; - case "testnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.testnet.near.org", - helperUrl: "https://helper.testnet.near.org", - explorerUrl: "https://testnet.nearblocks.io", - indexerUrl: "https://testnet-api.kitwallet.app", - }; - default: - throw Error(`Failed to find config for: '${networkId}'`); - } -}; -exports.getNetworkPreset = getNetworkPreset; -const resolveNetwork = (network) => { - return typeof network === "string" ? (0, exports.getNetworkPreset)(network) : network; -}; -exports.resolveNetwork = resolveNetwork; -const resolveOptions = (params) => { - const options = { - languageCode: params.languageCode || undefined, - network: (0, exports.resolveNetwork)(params.network), - debug: params.debug || false, - optimizeWalletOrder: params.optimizeWalletOrder === false ? false : true, - randomizeWalletOrder: params.randomizeWalletOrder || false, - relayerUrl: params.relayerUrl || undefined, - }; - return { - options, - storage: params.storage || new services_1.WebStorageService(), - }; -}; -exports.resolveOptions = resolveOptions; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/options.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/options.types.d.ts deleted file mode 100644 index 45a8b9888..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/options.types.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { SupportedLanguage } from "./translate/translate"; -export type NetworkId = "mainnet" | "testnet"; -export interface Network { - /** - * Network ID (e.g. `testnet`). - */ - networkId: string; - /** - * URL for RPC requests. - */ - nodeUrl: string; - /** - * URL for creating accounts. - */ - helperUrl: string; - /** - * URL for the NEAR explorer. - */ - explorerUrl: string; - /** - * URL for the NEAR indexer. - */ - indexerUrl: string; -} -export interface Options { - /** - * ISO 639-1 two-letter language code. - */ - languageCode: SupportedLanguage | undefined; - /** - * Resolved network configuration. - */ - network: Network; - /** - * Whether internal logging is enabled. - */ - debug: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder: boolean; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl: string | undefined; -} -//# sourceMappingURL=options.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/options.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/options.types.d.ts.map deleted file mode 100644 index 663fb6879..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/options.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/options.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/options.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/options.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts deleted file mode 100644 index 00a0b6840..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { EventEmitterService, Subscription } from "./event-emitter.types"; -export declare class EventEmitter> implements EventEmitterService { - private emitter; - on(eventName: Event, callback: (event: Events[Event]) => void): Subscription; - off(eventName: Event, callback: (event: Events[Event]) => void): void; - emit(eventName: Event, event: Events[Event]): void; -} -//# sourceMappingURL=event-emitter.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map deleted file mode 100644 index 80b80c736..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/E,qBAAa,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC9D,YAAW,mBAAmB,CAAC,MAAM,CAAC;IAEtC,OAAO,CAAC,OAAO,CAAuB;IAEtC,EAAE,CAAC,KAAK,SAAS,MAAM,MAAM,EAC3B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,GACvC,YAAY;IAQf,GAAG,CAAC,KAAK,SAAS,MAAM,MAAM,EAC5B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;IAK1C,IAAI,CAAC,KAAK,SAAS,MAAM,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;CAGxE"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.js deleted file mode 100644 index 1129f4fc6..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.EventEmitter = void 0; -const events_1 = require("events"); -class EventEmitter { - emitter = new events_1.EventEmitter(); - on(eventName, callback) { - this.emitter.on(eventName, callback); - return { - remove: () => this.emitter.off(eventName, callback), - }; - } - off(eventName, callback) { - this.emitter.off(eventName, callback); - } - emit(eventName, event) { - this.emitter.emit(eventName, event); - } -} -exports.EventEmitter = EventEmitter; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts deleted file mode 100644 index 3a25067e0..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface Subscription { - remove: () => void; -} -export interface EventEmitterService> { - on(eventName: EventName, callback: (event: Events[EventName]) => void): Subscription; - off(eventName: EventName, callback: (event: Events[EventName]) => void): void; - emit(eventName: EventName, event: Events[EventName]): void; -} -//# sourceMappingURL=event-emitter.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map deleted file mode 100644 index 6e4178d43..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzE,EAAE,CAAC,SAAS,SAAS,MAAM,MAAM,EAC/B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,YAAY,CAAC;IAEhB,GAAG,CAAC,SAAS,SAAS,MAAM,MAAM,EAChC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,IAAI,CAAC;IAER,IAAI,CAAC,SAAS,SAAS,MAAM,MAAM,EACjC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,GACvB,IAAI,CAAC;CACT"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/index.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/index.d.ts deleted file mode 100644 index 7f06b3d8e..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * from "./provider/provider.service"; -export * from "./provider/provider.service.types"; -export * from "./storage/storage.service.types"; -export * from "./storage/json-storage.service.types"; -export * from "./storage/json-storage.service"; -export * from "./storage/web-storage.service"; -export * from "./logger/logger.service"; -export * from "./logger/logger.service.types"; -export * from "./wallet-modules/wallet-modules.service"; -export * from "./event-emitter/event-emitter.service"; -export * from "./event-emitter/event-emitter.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/index.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/index.d.ts.map deleted file mode 100644 index f34146ce5..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/index.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/index.js deleted file mode 100644 index 771f7ca4c..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/index.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./provider/provider.service"), exports); -__exportStar(require("./provider/provider.service.types"), exports); -__exportStar(require("./storage/storage.service.types"), exports); -__exportStar(require("./storage/json-storage.service.types"), exports); -__exportStar(require("./storage/json-storage.service"), exports); -__exportStar(require("./storage/web-storage.service"), exports); -__exportStar(require("./logger/logger.service"), exports); -__exportStar(require("./logger/logger.service.types"), exports); -__exportStar(require("./wallet-modules/wallet-modules.service"), exports); -__exportStar(require("./event-emitter/event-emitter.service"), exports); -__exportStar(require("./event-emitter/event-emitter.types"), exports); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.d.ts deleted file mode 100644 index 305cafb84..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { LoggerService } from "./logger.service.types"; -export declare class Logger implements LoggerService { - static debug: boolean; - namespace?: string; - constructor(namespace?: string); - private emit; - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -export declare const logger: Logger; -//# sourceMappingURL=logger.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.d.ts.map deleted file mode 100644 index 3819238b2..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,qBAAa,MAAO,YAAW,aAAa;IAC1C,MAAM,CAAC,KAAK,UAAS;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEP,SAAS,CAAC,EAAE,MAAM;IAI9B,OAAO,CAAC,IAAI;IAgBZ,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI7B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;CAGhC;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.js deleted file mode 100644 index f2365f6b4..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.logger = exports.Logger = void 0; -class Logger { - static debug = false; - namespace; - constructor(namespace) { - this.namespace = namespace; - } - emit(method, ...params) { - if (!Logger.debug) { - return; - } - if (this.namespace && method !== "error") { - // eslint-disable-next-line no-console - console[method](this.namespace, ...params); - return; - } - // eslint-disable-next-line no-console - console[method](...params); - } - log(...params) { - this.emit("log", ...params); - } - info(...params) { - this.emit("info", ...params); - } - warn(...params) { - this.emit("warn", ...params); - } - error(...params) { - this.emit("error", ...params); - } -} -exports.Logger = Logger; -exports.logger = new Logger(); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts deleted file mode 100644 index 8c891f4f2..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface LoggerService { - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -//# sourceMappingURL=logger.service.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts.map deleted file mode 100644 index 0160d352c..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/logger/logger.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.d.ts deleted file mode 100644 index 07f2954c5..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { AccessKeyView, BlockReference, QueryResponseKind, RpcQueryRequest } from "@near-js/types"; -import type { ProviderService, QueryParams, ViewAccessKeyParams } from "./provider.service.types"; -import type { SignedTransaction } from "@near-js/transactions"; -export declare class Provider implements ProviderService { - private provider; - constructor(urls: Array); - query(paramsOrPath: QueryParams | RpcQueryRequest | string, data?: string): Promise; - viewAccessKey({ accountId, publicKey }: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; - private urlsToProviders; -} -//# sourceMappingURL=provider.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.d.ts.map deleted file mode 100644 index 02d2f07b3..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,qBAAa,QAAS,YAAW,eAAe;IAW9C,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;IAM/B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,EACpD,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC;IAQpB,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,mBAAmB;IAS3D,KAAK,CAAC,SAAS,EAAE,cAAc;IAI/B,eAAe,CAAC,iBAAiB,EAAE,iBAAiB;IAIpD,OAAO,CAAC,eAAe;CAKxB"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.js deleted file mode 100644 index 7798a5f3f..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Provider = void 0; -const providers_1 = require("@near-js/providers"); -class Provider { - /* - private provider: JsonRpcProvider; - - constructor(urls: Array) { - this.provider = new JsonRpcProvider( - this.urlsToProviders(urls) - ); - } - */ - provider; - constructor(urls) { - this.provider = new providers_1.FailoverRpcProvider(this.urlsToProviders(urls)); - } - query(paramsOrPath, data) { - if (typeof paramsOrPath === "string" && data !== undefined) { - return this.provider.query(paramsOrPath, data); - } - else { - return this.provider.query(paramsOrPath); - } - } - viewAccessKey({ accountId, publicKey }) { - return this.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountId, - public_key: publicKey, - }); - } - block(reference) { - return this.provider.block(reference); - } - sendTransaction(signedTransaction) { - return this.provider.sendTransaction(signedTransaction); - } - urlsToProviders(urls) { - return urls && urls.length > 0 - ? urls.map((url) => new providers_1.JsonRpcProvider({ url })) - : []; - } -} -exports.Provider = Provider; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts deleted file mode 100644 index cba6ca3cd..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { AccessKeyView, BlockReference, BlockResult, QueryResponseKind, FinalExecutionOutcome } from "@near-js/types"; -import type { SignedTransaction } from "@near-js/transactions"; -export type QueryParams = { - [key in string]: unknown; -}; -export interface ViewAccessKeyParams { - accountId: string; - publicKey: string; -} -export interface ProviderService { - query(params: QueryParams): Promise; - viewAccessKey(params: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; -} -//# sourceMappingURL=provider.service.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts.map deleted file mode 100644 index 94a2e9755..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG;KAAG,GAAG,IAAI,MAAM,GAAG,OAAO;CAAE,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,eAAe,CACb,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/provider/provider.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts deleted file mode 100644 index 8e5c8063a..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -import type { JsonStorageService } from "./json-storage.service.types"; -export declare class JsonStorage implements JsonStorageService { - storage: StorageService; - namespace: string; - constructor(storage: StorageService, namespace: string | Array); - private resolveKey; - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts.map deleted file mode 100644 index 9cf929933..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,qBAAa,WAAY,YAAW,kBAAkB;IACpD,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;gBAEN,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAOtE,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAMlD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.js deleted file mode 100644 index 1d1ed0bf1..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.JsonStorage = void 0; -const KEY_DELIMITER = ":"; -class JsonStorage { - storage; - namespace; - constructor(storage, namespace) { - this.storage = storage; - this.namespace = Array.isArray(namespace) - ? namespace.join(KEY_DELIMITER) - : namespace; - } - resolveKey(key) { - return [this.namespace, key].join(KEY_DELIMITER); - } - getItem(key) { - return this.storage.getItem(this.resolveKey(key)).then((item) => { - return typeof item === "string" ? JSON.parse(item) : null; - }); - } - setItem(key, value) { - return this.storage.setItem(this.resolveKey(key), JSON.stringify(value)); - } - removeItem(key) { - return this.storage.removeItem(this.resolveKey(key)); - } -} -exports.JsonStorage = JsonStorage; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts deleted file mode 100644 index 0cfff07a0..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface JsonStorageService { - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts.map deleted file mode 100644 index 00ce8794a..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/json-storage.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts deleted file mode 100644 index 64ff2e6d3..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts.map deleted file mode 100644 index afbf46e25..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/storage.service.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/storage.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/storage.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts deleted file mode 100644 index f13fefc9a..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -export declare class WebStorageService implements StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=web-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts.map deleted file mode 100644 index fbed55367..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/web-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/web-storage.service.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/web-storage.service.js deleted file mode 100644 index b1b3430c7..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/storage/web-storage.service.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.WebStorageService = void 0; -class WebStorageService { - getItem(key) { - return new Promise((resolve) => { - const value = localStorage.getItem(key); - resolve(value); - }); - } - setItem(key, value) { - return new Promise((resolve) => { - localStorage.setItem(key, value); - resolve(); - }); - } - removeItem(key) { - return new Promise((resolve) => { - localStorage.removeItem(key); - resolve(); - }); - } -} -exports.WebStorageService = WebStorageService; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts deleted file mode 100644 index 28c9880c2..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { WalletModulesParams } from "./wallet-modules.service.types"; -import type { Wallet } from "../../wallet"; -export declare class WalletModules { - private factories; - private storage; - private options; - private store; - private emitter; - private provider; - private modules; - private instances; - constructor({ factories, storage, options, store, emitter, provider, }: WalletModulesParams); - private validateWallet; - private resolveStorageState; - private setWalletAsRecentlySignedIn; - private signOutWallet; - private onWalletSignedIn; - private onWalletSignedOut; - private setupWalletEmitter; - private validateSignMessageParams; - private decorateWallet; - private setupInstance; - private getModule; - getWallet(id: string | null): Promise; - setup(): Promise; -} -//# sourceMappingURL=wallet-modules.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map deleted file mode 100644 index 94b2e90a9..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAEV,MAAM,EAOP,MAAM,cAAc,CAAC;AAmBtB,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAA6C;gBAElD,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,mBAAmB;YAYR,cAAc;YAkBd,mBAAmB;YAyEnB,2BAA2B;YAuB3B,aAAa;YAYb,gBAAgB;IAkD9B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,cAAc;YAsCR,aAAa;IA6B3B,OAAO,CAAC,SAAS;IAIX,SAAS,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAoB9D,KAAK;CAkFZ"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.js deleted file mode 100644 index a27acfb1e..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.js +++ /dev/null @@ -1,325 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.WalletModules = void 0; -const event_emitter_service_1 = require("../event-emitter/event-emitter.service"); -const logger_service_1 = require("../logger/logger.service"); -const constants_1 = require("../../constants"); -const json_storage_service_1 = require("../storage/json-storage.service"); -class WalletModules { - factories; - storage; - options; - store; - emitter; - provider; - modules; - instances; - constructor({ factories, storage, options, store, emitter, provider, }) { - this.factories = factories; - this.storage = storage; - this.options = options; - this.store = store; - this.emitter = emitter; - this.provider = provider; - this.modules = []; - this.instances = {}; - } - async validateWallet(id) { - let accounts = []; - const wallet = await this.getWallet(id); - if (wallet) { - // Ensure our persistent state aligns with the selected wallet. - // For example a wallet is selected, but it returns no accounts (not signed in). - accounts = await wallet.getAccounts().catch((err) => { - logger_service_1.logger.log(`Failed to validate ${wallet.id} during setup`); - logger_service_1.logger.error(err); - return []; - }); - } - return accounts; - } - async resolveStorageState() { - const jsonStorage = new json_storage_service_1.JsonStorage(this.storage, constants_1.PACKAGE_NAME); - const pendingSelectedWalletId = await jsonStorage.getItem(constants_1.PENDING_SELECTED_WALLET_ID); - const pendingContract = await jsonStorage.getItem(constants_1.PENDING_CONTRACT); - const rememberRecentWallets = await jsonStorage.getItem(constants_1.REMEMBER_RECENT_WALLETS); - if (pendingSelectedWalletId && pendingContract) { - const accounts = await this.validateWallet(pendingSelectedWalletId); - await jsonStorage.removeItem(constants_1.PENDING_SELECTED_WALLET_ID); - await jsonStorage.removeItem(constants_1.PENDING_CONTRACT); - if (accounts.length) { - const { selectedWalletId } = this.store.getState(); - const selectedWallet = await this.getWallet(selectedWalletId); - if (selectedWallet && pendingSelectedWalletId !== selectedWalletId) { - await selectedWallet.signOut().catch((err) => { - logger_service_1.logger.log("Failed to sign out existing wallet"); - logger_service_1.logger.error(err); - }); - } - let recentlySignedInWalletsFromPending = []; - if (rememberRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWalletsFromPending = - await this.setWalletAsRecentlySignedIn(pendingSelectedWalletId); - } - return { - accounts, - contract: pendingContract, - selectedWalletId: pendingSelectedWalletId, - recentlySignedInWallets: recentlySignedInWalletsFromPending, - rememberRecentWallets: rememberRecentWallets || constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - } - const { contract, selectedWalletId } = this.store.getState(); - const accounts = await this.validateWallet(selectedWalletId); - const recentlySignedInWallets = await jsonStorage.getItem(constants_1.RECENTLY_SIGNED_IN_WALLETS); - if (!accounts.length) { - return { - accounts: [], - contract: null, - selectedWalletId: null, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - return { - accounts, - contract, - selectedWalletId, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - async setWalletAsRecentlySignedIn(walletId) { - const jsonStorage = new json_storage_service_1.JsonStorage(this.storage, constants_1.PACKAGE_NAME); - let recentlySignedInWallets = await jsonStorage.getItem(constants_1.RECENTLY_SIGNED_IN_WALLETS); - if (!recentlySignedInWallets) { - recentlySignedInWallets = []; - } - if (!recentlySignedInWallets.includes(walletId)) { - recentlySignedInWallets.unshift(walletId); - recentlySignedInWallets = recentlySignedInWallets.slice(0, 5); - await jsonStorage.setItem(constants_1.RECENTLY_SIGNED_IN_WALLETS, recentlySignedInWallets); - } - return recentlySignedInWallets; - } - async signOutWallet(walletId) { - const wallet = (await this.getWallet(walletId)); - await wallet.signOut().catch((err) => { - logger_service_1.logger.log(`Failed to sign out ${wallet.id}`); - logger_service_1.logger.error(err); - // At least clean up state on our side. - this.onWalletSignedOut(wallet.id); - }); - } - async onWalletSignedIn(walletId, { accounts, contractId, methodNames }) { - const { selectedWalletId, rememberRecentWallets } = this.store.getState(); - const jsonStorage = new json_storage_service_1.JsonStorage(this.storage, constants_1.PACKAGE_NAME); - const contract = { contractId, methodNames }; - if (!accounts.length) { - const module = this.getModule(walletId); - // We can't guarantee the user will actually sign in with browser wallets. - // Best we can do is set in storage and validate on init. - if (module.type === "browser") { - await jsonStorage.setItem(constants_1.PENDING_SELECTED_WALLET_ID, walletId); - await jsonStorage.setItem(constants_1.PENDING_CONTRACT, contract); - } - return; - } - if (selectedWalletId && selectedWalletId !== walletId) { - await this.signOutWallet(selectedWalletId); - } - let recentlySignedInWallets = []; - if (rememberRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWallets = await this.setWalletAsRecentlySignedIn(walletId); - } - this.store.dispatch({ - type: "WALLET_CONNECTED", - payload: { - walletId, - contract, - accounts, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - this.emitter.emit("signedIn", { - walletId, - contractId, - methodNames, - accounts, - }); - } - onWalletSignedOut(walletId) { - this.store.dispatch({ - type: "WALLET_DISCONNECTED", - payload: { walletId }, - }); - this.emitter.emit("signedOut", { walletId }); - } - setupWalletEmitter(module) { - const emitter = new event_emitter_service_1.EventEmitter(); - emitter.on("signedOut", () => { - this.onWalletSignedOut(module.id); - }); - emitter.on("signedIn", (event) => { - this.onWalletSignedIn(module.id, event); - }); - emitter.on("accountsChanged", async ({ accounts }) => { - this.emitter.emit("accountsChanged", { walletId: module.id, accounts }); - if (!accounts.length) { - return this.signOutWallet(module.id); - } - this.store.dispatch({ - type: "ACCOUNTS_CHANGED", - payload: { walletId: module.id, accounts }, - }); - }); - emitter.on("networkChanged", ({ networkId }) => { - this.emitter.emit("networkChanged", { walletId: module.id, networkId }); - }); - emitter.on("uriChanged", ({ uri }) => { - this.emitter.emit("uriChanged", { walletId: module.id, uri }); - }); - return emitter; - } - validateSignMessageParams({ message, nonce, recipient, }) { - if (!message || message.trim() === "") { - throw new Error("Invalid message. It must be a non-empty string."); - } - if (!Buffer.isBuffer(nonce) || nonce.length !== 32) { - throw new Error("Invalid nonce. It must be a Buffer with a length of 32 bytes."); - } - if (!recipient || recipient.trim() === "") { - throw new Error("Invalid recipient. It must be a non-empty string."); - } - } - decorateWallet(wallet) { - const _signIn = wallet.signIn; - const _signOut = wallet.signOut; - const _signMessage = wallet.signMessage; - wallet.signIn = async (params) => { - const accounts = await _signIn(params); - const { contractId, methodNames = [] } = params; - await this.onWalletSignedIn(wallet.id, { - accounts, - contractId, - methodNames, - }); - return accounts; - }; - wallet.signOut = async () => { - await _signOut(); - this.onWalletSignedOut(wallet.id); - }; - wallet.signMessage = async (params) => { - if (_signMessage === undefined) { - throw Error(`The signMessage method is not supported by ${wallet.metadata.name}`); - } - this.validateSignMessageParams(params); - return await _signMessage(params); - }; - return wallet; - } - async setupInstance(module) { - if (!module.metadata.available) { - const message = module.type === "injected" ? "not installed" : "not available"; - throw Error(`${module.metadata.name} is ${message}`); - } - const wallet = { - id: module.id, - type: module.type, - metadata: module.metadata, - ...(await module.init({ - id: module.id, - type: module.type, - metadata: module.metadata, - options: this.options, - store: this.store.toReadOnly(), - provider: this.provider, - emitter: this.setupWalletEmitter(module), - logger: new logger_service_1.Logger(module.id), - storage: new json_storage_service_1.JsonStorage(this.storage, [constants_1.PACKAGE_NAME, module.id]), - })), - }; - return this.decorateWallet(wallet); - } - getModule(id) { - return this.modules.find((x) => x.id === id); - } - async getWallet(id) { - const module = this.getModule(id); - if (!module) { - return null; - } - const { selectedWalletId } = this.store.getState(); - // If user uninstalled/removed a wallet which was previously signed in with - // best we can do is clean up state on our side. - if (!module.metadata.available && selectedWalletId) { - this.onWalletSignedOut(selectedWalletId); - return null; - } - return (await module.wallet()); - } - async setup() { - const modules = []; - for (let i = 0; i < this.factories.length; i += 1) { - const module = await this.factories[i]({ options: this.options }).catch((err) => { - logger_service_1.logger.log("Failed to setup module"); - logger_service_1.logger.error(err); - return null; - }); - // Filter out wallets that aren't available. - if (!module) { - continue; - } - // Skip duplicated module. - if (modules.some((x) => x.id === module.id)) { - continue; - } - modules.push({ - id: module.id, - type: module.type, - metadata: module.metadata, - wallet: async () => { - let instance = this.instances[module.id]; - if (instance) { - return instance; - } - instance = await this.setupInstance(module); - this.instances[module.id] = instance; - return instance; - }, - }); - } - this.modules = modules; - const { accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = await this.resolveStorageState(); - this.store.dispatch({ - type: "SETUP_WALLET_MODULES", - payload: { - modules, - accounts, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - for (let i = 0; i < this.modules.length; i++) { - if (this.modules[i].type !== "instant-link") { - continue; - } - const wallet = (await this.modules[i].wallet()); - if (!wallet.metadata.runOnStartup) { - continue; - } - try { - await wallet.signIn({ contractId: wallet.getContractId() }); - } - catch (err) { - logger_service_1.logger.error("Failed to sign in to wallet. " + err); - } - } - } -} -exports.WalletModules = WalletModules; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts deleted file mode 100644 index 339f296e7..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { WalletModuleFactory } from "../../wallet"; -import type { StorageService } from "../storage/storage.service.types"; -import type { Options } from "../../options.types"; -import type { Store } from "../../store.types"; -import type { EventEmitter } from "../event-emitter/event-emitter.service"; -import type { WalletSelectorEvents } from "../../wallet-selector.types"; -import type { ProviderService } from "../provider/provider.service.types"; -export interface WalletModulesParams { - factories: Array; - storage: StorageService; - options: Options; - store: Store; - emitter: EventEmitter; - provider: ProviderService; -} -//# sourceMappingURL=wallet-modules.service.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map deleted file mode 100644 index 231a8d586..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC5C,QAAQ,EAAE,eAAe,CAAC;CAC3B"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/store.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/store.d.ts deleted file mode 100644 index dd8b9c03c..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/store.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { StorageService } from "./services"; -import type { Store } from "./store.types"; -export declare const createStore: (storage: StorageService) => Promise; -//# sourceMappingURL=store.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/store.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/store.d.ts.map deleted file mode 100644 index d1628d160..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/store.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EACV,KAAK,EAGN,MAAM,eAAe,CAAC;AA+JvB,eAAO,MAAM,WAAW,YAAmB,cAAc,KAAG,OAAO,CAAC,KAAK,CAgExE,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/store.js b/packages/my-near-wallet/dist/cjs/core/src/lib/store.js deleted file mode 100644 index fc078e464..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/store.js +++ /dev/null @@ -1,158 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createStore = void 0; -const rxjs_1 = require("rxjs"); -const services_1 = require("./services"); -const constants_1 = require("./constants"); -const reducer = (state, action) => { - services_1.logger.log("Store Action", action); - switch (action.type) { - case "SETUP_WALLET_MODULES": { - const { modules, accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = action.payload; - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === 0, - }; - }); - return { - ...state, - modules, - accounts: accountStates, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }; - } - case "WALLET_CONNECTED": { - const { walletId, contract, accounts, recentlySignedInWallets } = action.payload; - if (!accounts.length) { - return state; - } - const activeAccountIndex = state.accounts.findIndex((account) => account.active); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === (activeAccountIndex > -1 ? activeAccountIndex : 0), - }; - }); - return { - ...state, - contract, - accounts: accountStates, - selectedWalletId: walletId, - recentlySignedInWallets, - }; - } - case "WALLET_DISCONNECTED": { - const { walletId } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - return { - ...state, - contract: null, - accounts: [], - selectedWalletId: null, - }; - } - case "ACCOUNTS_CHANGED": { - const { walletId, accounts } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - const activeAccount = state.accounts.find((account) => account.active); - const isActiveAccountRemoved = !accounts.some((account) => account.accountId === activeAccount?.accountId); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: isActiveAccountRemoved - ? i === 0 - : account.accountId === activeAccount?.accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_ACTIVE_ACCOUNT": { - const { accountId } = action.payload; - const accountStates = state.accounts.map((account) => { - return { - ...account, - active: account.accountId === accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_REMEMBER_RECENT_WALLETS": { - const { selectedWalletId, recentlySignedInWallets } = state; - const { rememberRecentWallets } = action.payload; - const newRecentWallets = rememberRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? constants_1.REMEMBER_RECENT_WALLETS_STATE.DISABLED - : constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED; - const newWalletsVal = [...recentlySignedInWallets]; - if (selectedWalletId && - !recentlySignedInWallets.includes(selectedWalletId)) { - newWalletsVal.push(selectedWalletId); - } - const newRecentlySignedInWallets = newRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? newWalletsVal - : []; - return { - ...state, - rememberRecentWallets: newRecentWallets, - recentlySignedInWallets: newRecentlySignedInWallets, - }; - } - default: - return state; - } -}; -const createStore = async (storage) => { - const jsonStorage = new services_1.JsonStorage(storage, constants_1.PACKAGE_NAME); - const initialState = { - modules: [], - accounts: [], - contract: await jsonStorage.getItem(constants_1.CONTRACT), - selectedWalletId: await jsonStorage.getItem(constants_1.SELECTED_WALLET_ID), - recentlySignedInWallets: (await jsonStorage.getItem(constants_1.RECENTLY_SIGNED_IN_WALLETS)) || [], - rememberRecentWallets: (await jsonStorage.getItem(constants_1.REMEMBER_RECENT_WALLETS)) || "", - }; - const state$ = new rxjs_1.BehaviorSubject(initialState); - const actions$ = new rxjs_1.Subject(); - actions$.pipe((0, rxjs_1.scan)(reducer, initialState)).subscribe(state$); - const syncStorage = async (prevState, state, storageKey, property) => { - if (state[property] === prevState[property]) { - return; - } - if (state[property]) { - await jsonStorage.setItem(storageKey, state[property]); - return; - } - await jsonStorage.removeItem(storageKey); - }; - let prevState = state$.getValue(); - state$.subscribe((state) => { - syncStorage(prevState, state, constants_1.SELECTED_WALLET_ID, "selectedWalletId"); - syncStorage(prevState, state, constants_1.CONTRACT, "contract"); - syncStorage(prevState, state, constants_1.RECENTLY_SIGNED_IN_WALLETS, "recentlySignedInWallets"); - syncStorage(prevState, state, constants_1.REMEMBER_RECENT_WALLETS, "rememberRecentWallets"); - prevState = state; - }); - return { - observable: state$, - getState: () => state$.getValue(), - dispatch: (action) => actions$.next(action), - toReadOnly: () => ({ - getState: () => state$.getValue(), - observable: state$.asObservable(), - }), - }; -}; -exports.createStore = createStore; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/store.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/store.types.d.ts deleted file mode 100644 index 3d93e104e..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/store.types.d.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type { BehaviorSubject, Observable } from "rxjs"; -import type { Wallet, Account } from "./wallet"; -import type { SignMessageMethod } from "./wallet"; -export interface ContractState { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * List of methods that can only be invoked on the Smart Contract. Empty list means no restriction. - */ - methodNames: Array; -} -export type ModuleState = { - /** - * Unique identifier for the wallet. - */ - id: Variation["id"]; - /** - * Type of the wallet. - */ - type: Variation["type"]; - /** - * Meta information about the wallet. - */ - metadata: Variation["metadata"]; - /** - * Access functionality of the wallet. - */ - wallet(): Promise; -}; -export type AccountState = Account & { - /** - * Is account set as active. - */ - active: boolean; -}; -export interface WalletSelectorState { - /** - * Returns the signed in contract. - */ - contract: ContractState | null; - /** - * Returns the list of available modules. - */ - modules: Array; - /** - * Returns the list of signed in accounts. - */ - accounts: Array; - /** - * Returns the ID of the selected wallet. - */ - selectedWalletId: string | null; - /** - * Returns ID-s of 5 recently signed in wallets. - */ - recentlySignedInWallets: Array; - /** - * Returns a string, which indicates if the functionality about recentlySignedInWallets is active. - */ - rememberRecentWallets: string; -} -export type WalletSelectorAction = { - type: "SETUP_WALLET_MODULES"; - payload: { - modules: Array; - accounts: Array; - contract: ContractState | null; - selectedWalletId: string | null; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_CONNECTED"; - payload: { - walletId: string; - contract: ContractState; - accounts: Array; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_DISCONNECTED"; - payload: { - walletId: string; - }; -} | { - type: "ACCOUNTS_CHANGED"; - payload: { - walletId: string; - accounts: Array; - }; -} | { - type: "SET_ACTIVE_ACCOUNT"; - payload: { - accountId: string; - }; -} | { - type: "SET_REMEMBER_RECENT_WALLETS"; - payload: { - rememberRecentWallets: string; - }; -}; -export interface ReadOnlyStore { - /** - * Retrieve the current state. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - getState(): WalletSelectorState; - /** - * Subscribe to state changes using the (RxJS) Observable pattern. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - observable: Observable; -} -export interface Store { - observable: BehaviorSubject; - getState(): WalletSelectorState; - dispatch(action: WalletSelectorAction): void; - toReadOnly(): ReadOnlyStore; -} -//# sourceMappingURL=store.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/store.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/store.types.d.ts.map deleted file mode 100644 index 5854551fa..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/store.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/store.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/store.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/store.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/testUtils.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/testUtils.d.ts deleted file mode 100644 index ace50a39a..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/testUtils.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { WalletModuleFactory, Wallet } from "./wallet"; -import type { ProviderService, StorageService } from "./services"; -import type { Options } from "./options.types"; -export interface MockWalletDependencies { - options?: Options; - provider?: ProviderService; -} -export declare const mockWallet: (factory: WalletModuleFactory, deps?: MockWalletDependencies) => Promise<{ - wallet: Variation; - storage: StorageService; -}>; -//# sourceMappingURL=testUtils.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/testUtils.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/testUtils.d.ts.map deleted file mode 100644 index dbc9d8f55..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/testUtils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/testUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAmB/C,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,GAAU,SAAS,SAAS,MAAM,WAC9C,mBAAmB,SACrB,sBAAsB;;;EA4B9B,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/testUtils.js b/packages/my-near-wallet/dist/cjs/core/src/lib/testUtils.js deleted file mode 100644 index 5e0cc0df9..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/testUtils.js +++ /dev/null @@ -1,107 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.mockWallet = void 0; -// Remove Jest import -// import * as jest from "jest"; -const jest_mock_extended_1 = require("jest-mock-extended"); -const options_1 = require("./options"); -const store_1 = require("./store"); -const services_1 = require("./services"); -const createStorageMock = () => { - const _state = {}; - return { - getItem: async (key) => _state[key] || null, // Replace jest.fn() with plain async functions - setItem: async (key, value) => { - _state[key] = value; - }, - removeItem: async (key) => { - delete _state[key]; - }, - }; -}; -const mockWallet = async (factory, deps) => { - const { options, storage } = (0, options_1.resolveOptions)({ - network: (0, options_1.getNetworkPreset)("testnet"), - storage: createStorageMock(), - modules: [factory], - ...deps?.options, - }); - const emitter = new services_1.EventEmitter(); - const store = await (0, store_1.createStore)(storage); - const walletModules = new services_1.WalletModules({ - factories: [factory], - storage, - options, - store, - emitter, - provider: deps?.provider || (0, jest_mock_extended_1.mock)(), - }); - await walletModules.setup(); - const { modules } = store.getState(); - const wallet = await walletModules.getWallet(modules[0].id); - return { - wallet: wallet, - storage, - }; -}; -exports.mockWallet = mockWallet; -// import * as jest from "jest" -// import { mock } from "jest-mock-extended"; -// import type { WalletModuleFactory, Wallet } from "./wallet"; -// import type { ProviderService, StorageService } from "./services"; -// import type { WalletSelectorEvents } from "./wallet-selector.types"; -// import type { Options } from "./options.types"; -// import { getNetworkPreset, resolveOptions } from "./options"; -// import { createStore } from "./store"; -// import { EventEmitter, WalletModules } from "./services"; -// -// const createStorageMock = (): StorageService => { -// const _state: Record = {}; -// -// return { -// getItem: jest.fn(async (key) => _state[key] || null), -// setItem: jest.fn(async (key, value) => { -// _state[key] = value; -// }), -// removeItem: jest.fn(async (key) => { -// delete _state[key]; -// }), -// }; -// }; -// -// export interface MockWalletDependencies { -// options?: Options; -// provider?: ProviderService; -// } -// -// export const mockWallet = async ( -// factory: WalletModuleFactory, -// deps?: MockWalletDependencies -// ) => { -// const { options, storage } = resolveOptions({ -// network: getNetworkPreset("testnet"), -// storage: createStorageMock(), -// modules: [factory], -// ...deps?.options, -// }); -// const emitter = new EventEmitter(); -// const store = await createStore(storage); -// const walletModules = new WalletModules({ -// factories: [factory], -// storage, -// options, -// store, -// emitter, -// provider: deps?.provider || mock(), -// }); -// -// await walletModules.setup(); -// -// const { modules } = store.getState(); -// const wallet = await walletModules.getWallet(modules[0].id); -// -// return { -// wallet: wallet!, -// storage, -// }; -// }; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/translate/translate.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/translate/translate.d.ts deleted file mode 100644 index 8706ed5a9..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/translate/translate.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type SupportedLanguage = "en" | "es" | "zh" | "bg" | "ko" | "vi" | "hi" | "ar" | "hr" | "mk" | "sl" | "sr"; -export declare const allowOnlyLanguage: (langCode: SupportedLanguage | undefined) => void; -export declare const translate: (path: string) => string; -//# sourceMappingURL=translate.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/translate/translate.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/translate/translate.d.ts.map deleted file mode 100644 index b2ac2d105..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/translate/translate.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/translate/translate.ts"],"names":[],"mappings":"AA4CA,MAAM,MAAM,iBAAiB,GACzB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,eAAO,MAAM,iBAAiB,aAAc,iBAAiB,GAAG,SAAS,SAExE,CAAC;AAuBF,eAAO,MAAM,SAAS,SAAU,MAAM,WAarC,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/translate/translate.js b/packages/my-near-wallet/dist/cjs/core/src/lib/translate/translate.js deleted file mode 100644 index c5573a87c..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/translate/translate.js +++ /dev/null @@ -1,81 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.translate = exports.allowOnlyLanguage = void 0; -const en_json_1 = __importDefault(require("../locale/en.json")); -const es_json_1 = __importDefault(require("../locale/es.json")); -const zh_json_1 = __importDefault(require("../locale/zh.json")); -const bg_json_1 = __importDefault(require("../locale/bg.json")); -const ko_json_1 = __importDefault(require("../locale/ko.json")); -const vi_json_1 = __importDefault(require("../locale/vi.json")); -const hi_json_1 = __importDefault(require("../locale/hi.json")); -const ar_json_1 = __importDefault(require("../locale/ar.json")); -const hr_json_1 = __importDefault(require("../locale/hr.json")); -const mk_json_1 = __importDefault(require("../locale/mk.json")); -const sl_json_1 = __importDefault(require("../locale/sl.json")); -const sr_json_1 = __importDefault(require("../locale/sr.json")); -const getLanguage = (languageCode) => { - switch (languageCode) { - case "en": - return en_json_1.default; - case "es": - return es_json_1.default; - case "zh": - return zh_json_1.default; - case "bg": - return bg_json_1.default; - case "ko": - return ko_json_1.default; - case "vi": - return vi_json_1.default; - case "hi": - return hi_json_1.default; - case "ar": - return ar_json_1.default; - case "hr": - return hr_json_1.default; - case "mk": - return mk_json_1.default; - case "sl": - return sl_json_1.default; - case "sr": - return sr_json_1.default; - default: - return en_json_1.default; - } -}; -let chosenLang; -const allowOnlyLanguage = (langCode) => { - chosenLang = langCode; -}; -exports.allowOnlyLanguage = allowOnlyLanguage; -// (i.e en-CA returns just en) -const shortenLanguageCode = (lang) => { - return lang.indexOf("-") !== -1 ? lang.split("-")[0] : lang.split("_")[0]; -}; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const findObjectPropByStringPath = (obj, prop) => { - if (!obj) { - return ""; - } - const _index = prop.indexOf("."); - if (_index > -1) { - const currentProp = prop.substring(0, _index); - const nextProp = prop.substring(_index + 1); - return findObjectPropByStringPath(obj[currentProp], nextProp); - } - return obj[prop]; -}; -const translate = (path) => { - let browserLang = window.navigator.languages - ? window.navigator.languages[0] - : null; - browserLang = browserLang || window.navigator.language; - const languageCode = shortenLanguageCode(chosenLang || browserLang); - const selectedLanguage = getLanguage(languageCode); - const text = findObjectPropByStringPath(selectedLanguage, path); - return text && typeof text === "string" ? text : path; -}; -exports.translate = translate; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/utils.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/utils.types.d.ts deleted file mode 100644 index fbcda75c6..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/utils.types.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Optional = Omit & Partial>; -export type Modify = Omit & R; -//# sourceMappingURL=utils.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/utils.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/utils.types.d.ts.map deleted file mode 100644 index 0c4119292..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/utils.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/utils.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/utils.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/utils.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/utils.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.d.ts deleted file mode 100644 index 8dd8656b7..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { WalletSelector, WalletSelectorParams } from "./wallet-selector.types"; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -export declare const setupWalletSelector: (params: WalletSelectorParams) => Promise; -//# sourceMappingURL=wallet-selector.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.d.ts.map deleted file mode 100644 index e613937ba..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAmEjC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,WACtB,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CAyCxB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.js b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.js deleted file mode 100644 index 8ffb4cc07..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.js +++ /dev/null @@ -1,83 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setupWalletSelector = void 0; -const options_1 = require("./options"); -const store_1 = require("./store"); -const services_1 = require("./services"); -let walletSelectorInstance = null; -const createSelector = (options, store, walletModules, emitter) => { - return { - options, - store: store.toReadOnly(), - wallet: async (id) => { - const { selectedWalletId } = store.getState(); - const wallet = await walletModules.getWallet(id || selectedWalletId); - if (!wallet) { - if (id) { - throw new Error("Invalid wallet id"); - } - throw new Error("No wallet selected"); - } - return wallet; - }, - setActiveAccount: (accountId) => { - const { accounts } = store.getState(); - if (!accounts.some((account) => account.accountId === accountId)) { - throw new Error("Invalid account id"); - } - store.dispatch({ - type: "SET_ACTIVE_ACCOUNT", - payload: { accountId }, - }); - }, - setRememberRecentWallets: () => { - const { rememberRecentWallets } = store.getState(); - store.dispatch({ - type: "SET_REMEMBER_RECENT_WALLETS", - payload: { rememberRecentWallets }, - }); - }, - isSignedIn() { - const { accounts } = store.getState(); - return Boolean(accounts.length); - }, - on: (eventName, callback) => { - return emitter.on(eventName, callback); - }, - off: (eventName, callback) => { - emitter.off(eventName, callback); - }, - }; -}; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -const setupWalletSelector = async (params) => { - const { options, storage } = (0, options_1.resolveOptions)(params); - services_1.Logger.debug = options.debug; - const emitter = new services_1.EventEmitter(); - const store = await (0, store_1.createStore)(storage); - const network = await (0, options_1.getNetworkPreset)(options.network.networkId, params.fallbackRpcUrls); - const rpcProviderUrls = params.fallbackRpcUrls && params.fallbackRpcUrls.length > 0 - ? params.fallbackRpcUrls - : [network.nodeUrl]; - const walletModules = new services_1.WalletModules({ - factories: params.modules, - storage, - options, - store, - emitter, - provider: new services_1.Provider(rpcProviderUrls), - }); - await walletModules.setup(); - if (params.allowMultipleSelectors) { - return createSelector(options, store, walletModules, emitter); - } - if (!walletSelectorInstance) { - walletSelectorInstance = createSelector(options, store, walletModules, emitter); - } - return walletSelectorInstance; -}; -exports.setupWalletSelector = setupWalletSelector; diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.types.d.ts deleted file mode 100644 index 327a9db79..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.types.d.ts +++ /dev/null @@ -1,109 +0,0 @@ -import type { Account, Wallet, WalletModuleFactory } from "./wallet/wallet.types"; -import type { ReadOnlyStore } from "./store.types"; -import type { Network, NetworkId, Options } from "./options.types"; -import type { Subscription, StorageService } from "./services"; -import type { SupportedLanguage } from "./translate/translate"; -import type { SignMessageMethod } from "./wallet/wallet.types"; -export interface WalletSelectorParams { - /** - * Resolved network configuration. - */ - network: NetworkId | Network; - /** - * List of wallet module factory functions - */ - modules: Array; - /** - * Custom storage service - */ - storage?: StorageService; - /** - * Whether internal logging is enabled. - */ - debug?: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder?: boolean; - /** - * Wether to allow multiple wallet selector instances to be created. - */ - allowMultipleSelectors?: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder?: boolean; - /** - * ISO 639-1 two-letter language code. - */ - languageCode?: SupportedLanguage; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl?: string; - /** - * Whether multiple RPC URLs are included, used for the FailoverRpcProvider. - */ - fallbackRpcUrls?: Array; -} -export type WalletSelectorStore = ReadOnlyStore; -export type WalletSelectorEvents = { - signedIn: { - walletId: string; - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: { - walletId: string; - }; - accountsChanged: { - walletId: string; - accounts: Array; - }; - networkChanged: { - walletId: string; - networkId: string; - }; - uriChanged: { - walletId: string; - uri: string; - }; -}; -export interface WalletSelector { - /** - * Resolved variation of the options passed to `setupWalletSelector`. - */ - options: Options; - /** - * Wallet selector storage service - */ - store: WalletSelectorStore; - /** - * Programmatically access wallets and call their methods. - * It's advised to use `state.modules` if you only need access to `id`, `type` or `metadata` as it avoids initialising. - * You can find more information on Wallet {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/wallet.md | here}. - */ - wallet(id?: string): Promise; - /** - * Determines whether we're signed in to one or more accounts. - */ - isSignedIn(): boolean; - /** - * Programmatically change active account which will be used to sign and send transactions. - */ - setActiveAccount(accountId: string): void; - /** - * Programmatically changes the rememberRecentWallets behavior, it can deactivate and activate rememberRecentWallets. - */ - setRememberRecentWallets(): void; - /** - * Attach an event handler to important events. - */ - on(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): Subscription; - /** - * Removes the event handler attached to the given `event`. - */ - off(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): void; -} -//# sourceMappingURL=wallet-selector.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.types.d.ts.map deleted file mode 100644 index 2ab329a5f..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet-selector.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/index.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/index.d.ts deleted file mode 100644 index df9c381db..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./wallet.types"; -export * from "./transactions.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/index.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/index.d.ts.map deleted file mode 100644 index 223147a0a..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/index.js b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/index.js deleted file mode 100644 index d7ee97f6b..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/index.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./wallet.types"), exports); -__exportStar(require("./transactions.types"), exports); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/transactions.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/transactions.types.d.ts deleted file mode 100644 index edbe827c4..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/transactions.types.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -export interface CreateAccountAction { - type: "CreateAccount"; -} -export interface DeployContractAction { - type: "DeployContract"; - params: { - code: Uint8Array; - }; -} -export interface FunctionCallAction { - type: "FunctionCall"; - params: { - methodName: string; - args: object; - gas: string; - deposit: string; - }; -} -export interface TransferAction { - type: "Transfer"; - params: { - deposit: string; - }; -} -export interface StakeAction { - type: "Stake"; - params: { - stake: string; - publicKey: string; - }; -} -export type AddKeyPermission = "FullAccess" | { - receiverId: string; - allowance?: string; - methodNames?: Array; -}; -export interface AddKeyAction { - type: "AddKey"; - params: { - publicKey: string; - accessKey: { - nonce?: number; - permission: AddKeyPermission; - }; - }; -} -export interface DeleteKeyAction { - type: "DeleteKey"; - params: { - publicKey: string; - }; -} -export interface DeleteAccountAction { - type: "DeleteAccount"; - params: { - beneficiaryId: string; - }; -} -export type Action = CreateAccountAction | DeployContractAction | FunctionCallAction | TransferAction | StakeAction | AddKeyAction | DeleteKeyAction | DeleteAccountAction; -export type ActionType = Action["type"]; -export interface Transaction { - signerId: string; - receiverId: string; - actions: Array; -} -//# sourceMappingURL=transactions.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/transactions.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/transactions.types.d.ts.map deleted file mode 100644 index 4236471a2..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/transactions.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transactions.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/transactions.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE;QACN,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE;YACT,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,gBAAgB,CAAC;SAC9B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,MAAM,MAAM,GACd,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,WAAW,GACX,YAAY,GACZ,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/transactions.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/transactions.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/transactions.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/wallet.types.d.ts b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/wallet.types.d.ts deleted file mode 100644 index ac2631a0c..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/wallet.types.d.ts +++ /dev/null @@ -1,295 +0,0 @@ -import type { EventEmitterService, LoggerService, ProviderService, JsonStorageService } from "../services"; -import type { Options } from "../options.types"; -import type { ReadOnlyStore } from "../store.types"; -import type { Transaction, Action } from "./transactions.types"; -import type { Modify, Optional } from "../utils.types"; -import type { FinalExecutionOutcome } from "@near-js/types"; -import { KeyType } from "@near-js/crypto"; -interface BaseWalletMetadata { - /** - * Wallet name. - */ - name: string; - /** - * Wallet description. - */ - description: string | null; - /** - * Wallet icon url. - */ - iconUrl: string; - /** - * Is wallet deprecated. - */ - deprecated: boolean; - /** - * Will the wallet be shown in modal. - */ - available: boolean; -} -export interface Account { - /** - * NEAR account identifier. - */ - accountId: string; - /** - * Account public key. - */ - publicKey?: string; -} -export interface SignInParams { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * Specify limited access to particular methods on the Smart Contract. - */ - methodNames?: Array; -} -export interface VerifyOwnerParams { - /** - * The message requested sign. Defaults to `verify owner` string. - */ - message: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet). This is the callback url once the signing is approved. Defaults to `window.location.href`. - */ - callbackUrl?: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet) extra data that will be passed to the callback url once the signing is approved. - */ - meta?: string; -} -export interface VerifiedOwner { - accountId: string; - message: string; - blockId: string; - publicKey: string; - signature: string; - keyType: KeyType; -} -export interface SignMessageParams { - message: string; - recipient: string; - nonce: Buffer; - callbackUrl?: string; - state?: string; -} -export interface SignedMessage { - accountId: string; - publicKey: string; - signature: string; - state?: string; -} -export type SignMessageMethod = { - signMessage(params: SignMessageParams): Promise; -}; -interface SignAndSendTransactionParams { - /** - * Account ID used to sign the transaction. Defaults to the first account. - */ - signerId?: string; - /** - * Account ID to receive the transaction. Defaults to `contractId` defined in `init`. - */ - receiverId?: string; - /** - * NEAR Action(s) to sign and send to the network (e.g. `FunctionCall`). You can find more information on `Action` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - actions: Array; -} -interface SignAndSendTransactionsParams { - /** - * NEAR Transactions(s) to sign and send to the network. You can find more information on `Transaction` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - transactions: Array>; -} -interface BaseWalletBehaviour { - /** - * Programmatically sign in. Hardware wallets (e.g. Ledger) require `derivationPaths` to validate access key permissions. - */ - signIn(params: SignInParams): Promise>; - /** - * Sign out from the wallet. - */ - signOut(): Promise; - /** - * Returns one or more accounts when signed in. - * This method can be useful for wallets that support accounts at once such as WalletConnect. - * In this case, you can use an `accountId` returned as the `signerId` for `signAndSendTransaction`. - */ - getAccounts(): Promise>; - /** - * Signs the message and verifies the owner. Message is not sent to blockchain. - */ - verifyOwner(params: VerifyOwnerParams): Promise; - /** - * Signs one or more NEAR Actions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransaction(params: SignAndSendTransactionParams): Promise; - /** - * Signs one or more transactions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransactions(params: SignAndSendTransactionsParams): Promise>; - signMessage?(params: SignMessageParams): Promise; -} -type BaseWallet = { - /** - * Unique identifier of the wallet. - */ - id: string; - /** - * Returns the type of wallet. This is particular useful when using functionality that's wallet specific (see hardware wallet example). - */ - type: Type; - /** - * Returns meta information about the wallet such as `name`, `description`, `iconUrl`, `deprecated` and `available` but can include wallet-specific properties such as `downloadUrl` and `useUrlAccountImport` for injected wallets or `contractId`, `runOnStartup` for instant-link wallets and walletUrl for browser wallets. - */ - metadata: Metadata; -} & Behaviour; -export type WalletEvents = { - signedIn: { - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: null; - accountsChanged: { - accounts: Array; - }; - networkChanged: { - networkId: string; - }; - uriChanged: { - uri: string; - }; -}; -export type BrowserWalletMetadata = BaseWalletMetadata & { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; - /** - * The URL of the wallet exposed in the metadata of the module. - */ - walletUrl: string; -}; -interface BrowserWalletSignInParams extends SignInParams { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; -} -interface BrowserWalletSignAndSendTransactionParams extends SignAndSendTransactionParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -interface BrowserWalletSignAndSendTransactionsParams extends SignAndSendTransactionsParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -export type BrowserWalletBehaviour = Modify>; - signAndSendTransaction(params: BrowserWalletSignAndSendTransactionParams): Promise; - signAndSendTransactions(params: BrowserWalletSignAndSendTransactionsParams): Promise; -}>; -export type BrowserWallet = BaseWallet<"browser", BrowserWalletMetadata, BrowserWalletBehaviour>; -export type InjectedWalletMetadata = BaseWalletMetadata & { - downloadUrl: string; - topLevelInjected?: boolean; - useUrlAccountImport?: boolean; -}; -export interface AccountImportData { - accountId: string; - privateKey: string; -} -export interface AccountImportSecureContextParams { - accounts: Array; -} -export type InjectedWalletBehaviour = Modify; -}>; -export type InjectedWallet = BaseWallet<"injected", InjectedWalletMetadata, InjectedWalletBehaviour>; -export type InstantLinkWalletMetadata = BaseWalletMetadata & { - contractId: string; - runOnStartup: boolean; -}; -export type InstantLinkWalletBehaviour = BaseWalletBehaviour & { - getContractId(): string; -}; -export type InstantLinkWallet = BaseWallet<"instant-link", InstantLinkWalletMetadata, InstantLinkWalletBehaviour>; -export type HardwareWalletMetadata = BaseWalletMetadata; -export interface HardwareWalletAccount { - derivationPath: string; - publicKey: string; - accountId: string; -} -export interface HardwareWalletSignInParams extends SignInParams { - /** - * Required for hardware wallets (e.g. Ledger). This is a list of `accounts` linked to public keys on your device. - */ - accounts: Array; -} -export type HardwareWalletBehaviour = Modify>; -}> & { - getPublicKey(derivationPath: string): Promise; -}; -export type HardwareWallet = BaseWallet<"hardware", HardwareWalletMetadata, HardwareWalletBehaviour>; -interface BridgeWalletSignInParams extends SignInParams { - /** - * Optional for bridge wallets (e.g Wallet Connect). - * This indicates whether to render QR Code in wallet selector modal or use the default vendor modal. - */ - qrCodeModal?: boolean; -} -export type BridgeWalletMetadata = BaseWalletMetadata; -export type BridgeWalletBehaviour = Modify>; -}>; -export type BridgeWallet = BaseWallet<"bridge", BridgeWalletMetadata, BridgeWalletBehaviour>; -export type WalletMetadata = BrowserWalletMetadata | InjectedWalletMetadata | InstantLinkWalletMetadata | HardwareWalletMetadata | BridgeWalletMetadata; -export type Wallet = BrowserWallet | InjectedWallet | InstantLinkWallet | HardwareWallet | BridgeWallet; -export type WalletType = Wallet["type"]; -interface WalletModuleOptions { - options: Options; -} -export interface WalletBehaviourOptions { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - options: Options; - store: ReadOnlyStore; - provider: ProviderService; - emitter: EventEmitterService; - logger: LoggerService; - storage: JsonStorageService; -} -export type WalletBehaviourFactory = (options: WalletBehaviourOptions & ExtraOptions) => Promise>; -export type WalletModule = { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - init(options: WalletBehaviourOptions): Promise>; -}; -export type WalletModuleFactory = (options: WalletModuleOptions) => Promise | null>; -export {}; -//# sourceMappingURL=wallet.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/wallet.types.d.ts.map b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/wallet.types.d.ts.map deleted file mode 100644 index c9ebc6eb8..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/wallet.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/wallet.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/wallet.types.js b/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/wallet.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/my-near-wallet/dist/cjs/core/src/lib/wallet/wallet.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/index.d.ts b/packages/my-near-wallet/dist/cjs/my-near-wallet/src/index.d.ts deleted file mode 100644 index 1cfb7b4f7..000000000 --- a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { setupMyNearWallet } from "./lib/my-near-wallet.js"; -export type { MyNearWalletParams } from "./lib/my-near-wallet.js"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/index.d.ts.map b/packages/my-near-wallet/dist/cjs/my-near-wallet/src/index.d.ts.map deleted file mode 100644 index 4b4528b7c..000000000 --- a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/index.js b/packages/my-near-wallet/dist/cjs/my-near-wallet/src/index.js deleted file mode 100644 index c9145a85b..000000000 --- a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setupMyNearWallet = void 0; -var my_near_wallet_js_1 = require("./lib/my-near-wallet.js"); -Object.defineProperty(exports, "setupMyNearWallet", { enumerable: true, get: function () { return my_near_wallet_js_1.setupMyNearWallet; } }); diff --git a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/icon.d.ts b/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/icon.d.ts deleted file mode 100644 index 7cf9a6062..000000000 --- a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/icon.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: "data:image/png;base64,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"; -export default _default; -//# sourceMappingURL=icon.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/icon.d.ts.map b/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/icon.d.ts.map deleted file mode 100644 index 359bd883f..000000000 --- a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/icon.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../../src/lib/icon.ts"],"names":[],"mappings":";AAAA,wBAA4wiB"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/icon.js b/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/icon.js deleted file mode 100644 index b760cbb80..000000000 --- a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/icon.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = `data:image/png;base64,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`; diff --git a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/my-near-wallet.d.ts b/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/my-near-wallet.d.ts deleted file mode 100644 index e863dae1c..000000000 --- a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/my-near-wallet.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { WalletModuleFactory, BrowserWallet } from "@near-wallet-selector/core"; -export interface MyNearWalletParams { - walletUrl?: string; - iconUrl?: string; - deprecated?: boolean; - successUrl?: string; - failureUrl?: string; -} -export declare function setupMyNearWallet({ walletUrl, iconUrl, deprecated, successUrl, failureUrl, }?: MyNearWalletParams): WalletModuleFactory; -//# sourceMappingURL=my-near-wallet.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/my-near-wallet.d.ts.map b/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/my-near-wallet.d.ts.map deleted file mode 100644 index aff4d33df..000000000 --- a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/my-near-wallet.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"my-near-wallet.d.ts","sourceRoot":"","sources":["../../../../../src/lib/my-near-wallet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EAEnB,aAAa,EAKd,MAAM,4BAA4B,CAAC;AASpC,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqOD,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,OAAc,EACd,UAAkB,EAClB,UAAe,EACf,UAAe,GAChB,GAAE,kBAAuB,GAAG,mBAAmB,CAAC,aAAa,CAAC,CA0B9D"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/my-near-wallet.js b/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/my-near-wallet.js deleted file mode 100644 index bbf28d285..000000000 --- a/packages/my-near-wallet/dist/cjs/my-near-wallet/src/lib/my-near-wallet.js +++ /dev/null @@ -1,181 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setupMyNearWallet = setupMyNearWallet; -const wallet_account_1 = require("@near-js/wallet-account"); -const keystores_browser_1 = require("@near-js/keystores-browser"); -const transactions_1 = require("@near-js/transactions"); -const utils_1 = require("@near-js/utils"); -const crypto_1 = require("@near-js/crypto"); -const near_api_js_1 = require("near-api-js"); -const wallet_utils_1 = require("@near-wallet-selector/wallet-utils"); -const icon_1 = __importDefault(require("./icon")); -const resolveWalletUrl = (network, walletUrl) => { - if (walletUrl) { - return walletUrl; - } - switch (network.networkId) { - case "mainnet": - return "https://app.mynearwallet.com"; - case "testnet": - return "https://testnet.mynearwallet.com"; - default: - throw new Error("Invalid wallet url"); - } -}; -const setupWalletState = async (params, network) => { - const keyStore = new keystores_browser_1.BrowserLocalStorageKeyStore(); - const near = await (0, near_api_js_1.connect)({ - keyStore, - // deps: { keyStore }, - walletUrl: params.walletUrl, - ...network, - headers: {}, - }); - const wallet = new wallet_account_1.WalletConnection(near, "near_app"); - return { - wallet, - keyStore, - }; -}; -const MyNearWallet = async ({ metadata, options, store, params, logger, id }) => { - const _state = await setupWalletState(params, options.network); - const getAccounts = async () => { - const accountId = _state.wallet.getAccountId(); - const account = _state.wallet.account(); - if (!accountId || !account) { - return []; - } - const publicKey = await account.connection.signer.getPublicKey(account.accountId, options.network.networkId); - return [ - { - accountId, - publicKey: publicKey ? publicKey.toString() : "", - }, - ]; - }; - const transformTransactions = async (transactions) => { - const account = _state.wallet.account(); - const { networkId, signer, provider } = account.connection; - const localKey = await signer.getPublicKey(account.accountId, networkId); - return Promise.all(transactions.map(async (transaction, index) => { - const actions = transaction.actions.map((action) => (0, wallet_utils_1.createAction)(action)); - const accessKey = await account.accessKeyForTransaction(transaction.receiverId, actions, localKey); - if (!accessKey) { - throw new Error(`Failed to find matching key for transaction sent to ${transaction.receiverId}`); - } - const block = await provider.block({ finality: "final" }); - const nonce = accessKey.access_key.nonce + BigInt(index + 1); - return (0, transactions_1.createTransaction)(account.accountId, crypto_1.PublicKey.from(accessKey.public_key), transaction.receiverId, nonce, actions, (0, utils_1.baseDecode)(block.header.hash)); - })); - }; - return { - async signIn({ contractId, methodNames, successUrl, failureUrl }) { - const existingAccounts = await getAccounts(); - if (existingAccounts.length) { - return existingAccounts; - } - await _state.wallet.requestSignIn({ - contractId, - methodNames, - successUrl, - failureUrl, - keyType: "ed25519", - }); - return getAccounts(); - }, - async signOut() { - if (_state.wallet.isSignedIn()) { - _state.wallet.signOut(); - } - }, - async getAccounts() { - return getAccounts(); - }, - async verifyOwner() { - throw new Error(`Method not supported by ${metadata.name}`); - }, - async signMessage({ message, nonce, recipient, callbackUrl, state }) { - logger.log("sign message", { message }); - if (id !== "my-near-wallet") { - throw Error(`The signMessage method is not supported by ${metadata.name}`); - } - const locationUrl = typeof window !== "undefined" ? window.location.href : ""; - const url = callbackUrl || locationUrl; - if (!url) { - throw new Error(`The callbackUrl is missing for ${metadata.name}`); - } - const href = new URL(params.walletUrl); - href.pathname = "sign-message"; - href.searchParams.append("message", message); - href.searchParams.append("nonce", nonce.toString("base64")); - href.searchParams.append("recipient", recipient); - href.searchParams.append("callbackUrl", url); - if (state) { - href.searchParams.append("state", state); - } - window.location.replace(href.toString()); - return; - }, - async signAndSendTransaction({ signerId, receiverId, actions, callbackUrl, }) { - // console.log('alohaws mnw signAndSendTransaction', signerId, receiverId, actions, callbackUrl) - logger.log("signAndSendTransaction", { - signerId, - receiverId, - actions, - callbackUrl, - }); - const { contract } = store.getState(); - if (!_state.wallet.isSignedIn() || !contract) { - throw new Error("Wallet not signed in"); - } - const account = _state.wallet.account(); - return account["signAndSendTransaction"]({ - receiverId: receiverId || contract.contractId, - actions: actions.map((action) => (0, wallet_utils_1.createAction)(action)), - walletCallbackUrl: callbackUrl, - }); - }, - async signAndSendTransactions({ transactions, callbackUrl }) { - logger.log("signAndSendTransactions", { transactions, callbackUrl }); - if (!_state.wallet.isSignedIn()) { - throw new Error("Wallet not signed in"); - } - return _state.wallet.requestSignTransactions({ - transactions: await transformTransactions(transactions), - callbackUrl, - }); - }, - buildImportAccountsUrl() { - return `${params.walletUrl}/batch-import`; - }, - }; -}; -function setupMyNearWallet({ walletUrl, iconUrl = icon_1.default, deprecated = false, successUrl = "", failureUrl = "", } = {}) { - return async (moduleOptions) => { - return { - id: "my-near-wallet", - type: "browser", - metadata: { - name: "MyNearWallet", - description: "NEAR wallet to store, buy, send and stake assets for DeFi.", - iconUrl, - deprecated, - available: true, - successUrl, - failureUrl, - walletUrl: resolveWalletUrl(moduleOptions.options.network, walletUrl), - }, - init: (options) => { - return MyNearWallet({ - ...options, - params: { - walletUrl: resolveWalletUrl(options.options.network, walletUrl), - }, - }); - }, - }; - }; -} diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/index.d.ts b/packages/my-near-wallet/dist/cjs/wallet-utils/src/index.d.ts deleted file mode 100644 index 9b70859cc..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { createAction, signTransactions } from "./lib/wallet-utils"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/index.d.ts.map b/packages/my-near-wallet/dist/cjs/wallet-utils/src/index.d.ts.map deleted file mode 100644 index 0d9c8c9c2..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../wallet-utils/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/index.js b/packages/my-near-wallet/dist/cjs/wallet-utils/src/index.js deleted file mode 100644 index 309bdb658..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/index.js +++ /dev/null @@ -1,6 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.signTransactions = exports.createAction = void 0; -var wallet_utils_1 = require("./lib/wallet-utils"); -Object.defineProperty(exports, "createAction", { enumerable: true, get: function () { return wallet_utils_1.createAction; } }); -Object.defineProperty(exports, "signTransactions", { enumerable: true, get: function () { return wallet_utils_1.signTransactions; } }); diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/create-action.d.ts b/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/create-action.d.ts deleted file mode 100644 index da65b4629..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/create-action.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as nearAPI from "near-api-js"; -import type { Action } from "@near-wallet-selector/core"; -export declare const createAction: (action: Action) => nearAPI.transactions.Action; -//# sourceMappingURL=create-action.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/create-action.d.ts.map b/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/create-action.d.ts.map deleted file mode 100644 index fe8487b52..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/create-action.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"create-action.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/create-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAoB,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAgB3E,eAAO,MAAM,YAAY,WAAY,MAAM,gCAqD1C,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/create-action.js b/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/create-action.js deleted file mode 100644 index b4a01ef64..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/create-action.js +++ /dev/null @@ -1,78 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createAction = void 0; -const nearAPI = __importStar(require("near-api-js")); -const { transactions, utils } = nearAPI; -const getAccessKey = (permission) => { - if (permission === "FullAccess") { - return transactions.fullAccessKey(); - } - const { receiverId, methodNames = [] } = permission; - const allowance = permission.allowance - ? BigInt(permission.allowance) - : undefined; - return transactions.functionCallAccessKey(receiverId, methodNames, allowance); -}; -const createAction = (action) => { - switch (action.type) { - case "CreateAccount": - return transactions.createAccount(); - case "DeployContract": { - const { code } = action.params; - return transactions.deployContract(code); - } - case "FunctionCall": { - const { methodName, args, gas, deposit } = action.params; - console.log('alohaws action', action); - return transactions.functionCall(methodName, args, BigInt(gas), BigInt(deposit)); - } - case "Transfer": { - const { deposit } = action.params; - return transactions.transfer(BigInt(deposit)); - } - case "Stake": { - const { stake, publicKey } = action.params; - return transactions.stake(BigInt(stake), utils.PublicKey.from(publicKey)); - } - case "AddKey": { - const { publicKey, accessKey } = action.params; - return transactions.addKey(utils.PublicKey.from(publicKey), - // TODO: Use accessKey.nonce? near-api-js seems to think 0 is fine? - getAccessKey(accessKey.permission)); - } - case "DeleteKey": { - const { publicKey } = action.params; - return transactions.deleteKey(utils.PublicKey.from(publicKey)); - } - case "DeleteAccount": { - const { beneficiaryId } = action.params; - return transactions.deleteAccount(beneficiaryId); - } - default: - throw new Error("Invalid action type"); - } -}; -exports.createAction = createAction; diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts b/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts deleted file mode 100644 index fd0b85445..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Signer } from "@near-js/signers"; -import type { SignedTransaction } from "@near-js/transactions"; -import type { Network, Transaction } from "@near-wallet-selector/core/src"; -export declare const signTransactions: (transactions: Array, signer: Signer, network: Network) => Promise; -//# sourceMappingURL=sign-transactions.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts.map b/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts.map deleted file mode 100644 index 9624b4968..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sign-transactions.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/sign-transactions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAIzE,eAAO,MAAM,gBAAgB,iBACb,KAAK,CAAC,WAAW,CAAC,UACxB,MAAM,WACL,OAAO,iCAoDjB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/sign-transactions.js b/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/sign-transactions.js deleted file mode 100644 index c8c3b6519..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/sign-transactions.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.signTransactions = void 0; -const crypto_1 = require("@near-js/crypto"); -const transactions_1 = require("@near-js/transactions"); -const utils_1 = require("@near-js/utils"); -// import * as nearAPI from "near-api-js"; -const providers_1 = require("@near-js/providers"); -const create_action_1 = require("./create-action"); -const signTransactions = async (transactions, signer, network) => { - const provider = new providers_1.JsonRpcProvider({ - url: network.nodeUrl, - }); - const signedTransactions = []; - for (let i = 0; i < transactions.length; i++) { - const publicKey = await signer.getPublicKey(transactions[i].signerId, network.networkId); - const [block, accessKey] = await Promise.all([ - provider.block({ finality: "final" }), - provider.query({ - request_type: "view_access_key", - finality: "final", - account_id: transactions[i].signerId, - public_key: publicKey.toString(), - }), - ]); - const actions = transactions[i].actions.map((action) => (0, create_action_1.createAction)(action)); - const transaction = (0, transactions_1.createTransaction)(transactions[i].signerId, new crypto_1.PublicKey({ - keyType: crypto_1.KeyType.ED25519, - data: publicKey.data - }), - // PublicKey.from(publicKey.toString()), - transactions[i].receiverId, accessKey.nonce + i + 1, actions, (0, utils_1.baseDecode)(block.header.hash)); - const response = await (0, transactions_1.signTransaction)(transaction, signer, transactions[i].signerId, network.networkId); - signedTransactions.push(response[1]); - } - return signedTransactions; -}; -exports.signTransactions = signTransactions; diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts b/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts deleted file mode 100644 index ca97d2268..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createAction } from "./create-action"; -import { signTransactions } from "./sign-transactions"; -export { createAction, signTransactions }; -//# sourceMappingURL=wallet-utils.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts.map b/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts.map deleted file mode 100644 index 209167ee4..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-utils.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/wallet-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/wallet-utils.js b/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/wallet-utils.js deleted file mode 100644 index 1d0db17bd..000000000 --- a/packages/my-near-wallet/dist/cjs/wallet-utils/src/lib/wallet-utils.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.signTransactions = exports.createAction = void 0; -const create_action_1 = require("./create-action"); -Object.defineProperty(exports, "createAction", { enumerable: true, get: function () { return create_action_1.createAction; } }); -const sign_transactions_1 = require("./sign-transactions"); -Object.defineProperty(exports, "signTransactions", { enumerable: true, get: function () { return sign_transactions_1.signTransactions; } }); diff --git a/packages/my-near-wallet/dist/esm/core/src/index.d.ts b/packages/my-near-wallet/dist/esm/core/src/index.d.ts deleted file mode 100644 index 18e086590..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/index.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type { WalletSelector, WalletSelectorParams, WalletSelectorEvents, WalletSelectorStore, } from "./lib/wallet-selector.types"; -export { setupWalletSelector } from "./lib/wallet-selector.js"; -export type { Network, NetworkId } from "./lib/options.types"; -export type { Subscription, StorageService, JsonStorageService, EventEmitterService, } from "./lib/services"; -export { EventEmitter } from "./lib/services"; -export type { Optional } from "./lib/utils.types"; -export type { WalletSelectorState, ContractState, ModuleState, AccountState, } from "./lib/store.types"; -export type { WalletModuleFactory, WalletModule, WalletBehaviourFactory, WalletBehaviourOptions, Wallet, WalletType, WalletMetadata, WalletEvents, SignInParams, BrowserWalletMetadata, BrowserWalletBehaviour, BrowserWallet, InjectedWalletMetadata, InjectedWalletBehaviour, InjectedWallet, InstantLinkWalletMetadata, InstantLinkWalletBehaviour, InstantLinkWallet, HardwareWalletMetadata, HardwareWalletSignInParams, HardwareWalletBehaviour, HardwareWallet, HardwareWalletAccount, BridgeWalletMetadata, BridgeWalletBehaviour, BridgeWallet, VerifiedOwner, VerifyOwnerParams, Account, Transaction, Action, ActionType, CreateAccountAction, DeployContractAction, FunctionCallAction, TransferAction, StakeAction, AddKeyAction, DeleteKeyAction, DeleteAccountAction, AddKeyPermission, AccountImportData, SignedMessage, SignMessageParams, } from "./lib/wallet"; -export type { FinalExecutionOutcome } from "@near-js/types"; -export { waitFor, getActiveAccount, isCurrentBrowserSupported, verifyFullKeyBelongsToUser, verifySignature, serializeNep413, } from "./lib/helpers"; -export { translate, allowOnlyLanguage } from "./lib/translate/translate"; -export { mockWallet } from './lib/testUtils'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/index.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/index.d.ts.map deleted file mode 100644 index f98229043..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,EACN,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/index.js b/packages/my-near-wallet/dist/esm/core/src/index.js deleted file mode 100644 index a545ffa59..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export { setupWalletSelector } from "./lib/wallet-selector.js"; -export { EventEmitter } from "./lib/services"; -export { waitFor, getActiveAccount, isCurrentBrowserSupported, verifyFullKeyBelongsToUser, verifySignature, serializeNep413, } from "./lib/helpers"; -export { translate, allowOnlyLanguage } from "./lib/translate/translate"; -export { mockWallet } from './lib/testUtils'; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/constants.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/constants.d.ts deleted file mode 100644 index ea8f9e98c..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/constants.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export declare const PACKAGE_NAME = "near-wallet-selector"; -export declare const RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -export declare const REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -export declare const REMEMBER_RECENT_WALLETS_STATE: { - ENABLED: string; - DISABLED: string; -}; -export declare const CONTRACT = "contract"; -export declare const PENDING_CONTRACT = "contract:pending"; -export declare const SELECTED_WALLET_ID = "selectedWalletId"; -export declare const PENDING_SELECTED_WALLET_ID = "selectedWalletId:pending"; -//# sourceMappingURL=constants.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/constants.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/constants.d.ts.map deleted file mode 100644 index 30185737c..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/constants.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,yBAAyB,CAAC;AACnD,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,0BAA0B,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/constants.js b/packages/my-near-wallet/dist/esm/core/src/lib/constants.js deleted file mode 100644 index a75f1a50e..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/constants.js +++ /dev/null @@ -1,11 +0,0 @@ -export const PACKAGE_NAME = "near-wallet-selector"; -export const RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -export const REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -export const REMEMBER_RECENT_WALLETS_STATE = { - ENABLED: "enabled", - DISABLED: "disabled", -}; -export const CONTRACT = "contract"; -export const PENDING_CONTRACT = "contract:pending"; -export const SELECTED_WALLET_ID = `selectedWalletId`; -export const PENDING_SELECTED_WALLET_ID = `selectedWalletId:pending`; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/detect-browser.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/detect-browser.d.ts deleted file mode 100644 index 6c6f4c418..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/detect-browser.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Browser = "aol" | "edge" | "edge-ios" | "yandexbrowser" | "kakaotalk" | "samsung" | "silk" | "miui" | "beaker" | "edge-chromium" | "chrome" | "chromium-webview" | "phantomjs" | "crios" | "firefox" | "fxios" | "opera-mini" | "opera" | "pie" | "netfront" | "ie" | "bb10" | "android" | "ios" | "safari" | "facebook" | "instagram" | "ios-webview" | "curl" | "searchbot"; -export declare const isCurrentBrowserSupported: (supportedBrowser: Array) => boolean; -//# sourceMappingURL=detect-browser.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/detect-browser.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/detect-browser.d.ts.map deleted file mode 100644 index 656e85614..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/detect-browser.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"detect-browser.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/detect-browser.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GACf,KAAK,GACL,MAAM,GACN,UAAU,GACV,eAAe,GACf,WAAW,GACX,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,OAAO,GACP,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO,GACP,KAAK,GACL,UAAU,GACV,IAAI,GACJ,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,UAAU,GACV,WAAW,GACX,aAAa,GACb,MAAM,GACN,WAAW,CAAC;AAoEhB,eAAO,MAAM,yBAAyB,qBAClB,KAAK,CAAC,OAAO,CAAC,KAC/B,OAeF,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/detect-browser.js b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/detect-browser.js deleted file mode 100644 index c4e583914..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/detect-browser.js +++ /dev/null @@ -1,70 +0,0 @@ -/* eslint-disable no-useless-escape */ -// https://github.com/DamonOehlman/detect-browser/blob/master/src/index.ts -const SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/; -const userAgentRules = [ - ["aol", /AOLShield\/([0-9\._]+)/], - ["edge", /Edge\/([0-9\._]+)/], - ["edge-ios", /EdgiOS\/([0-9\._]+)/], - ["yandexbrowser", /YaBrowser\/([0-9\._]+)/], - ["kakaotalk", /KAKAOTALK\s([0-9\.]+)/], - ["samsung", /SamsungBrowser\/([0-9\.]+)/], - ["silk", /\bSilk\/([0-9._-]+)\b/], - ["miui", /MiuiBrowser\/([0-9\.]+)$/], - ["beaker", /BeakerBrowser\/([0-9\.]+)/], - ["edge-chromium", /EdgA?\/([0-9\.]+)/], - [ - "chromium-webview", - /(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/, - ], - ["chrome", /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/], - ["phantomjs", /PhantomJS\/([0-9\.]+)(:?\s|$)/], - ["crios", /CriOS\/([0-9\.]+)(:?\s|$)/], - ["firefox", /Firefox\/([0-9\.]+)(?:\s|$)/], - ["fxios", /FxiOS\/([0-9\.]+)/], - ["opera-mini", /Opera Mini.*Version\/([0-9\.]+)/], - ["opera", /Opera\/([0-9\.]+)(?:\s|$)/], - ["opera", /OPR\/([0-9\.]+)(:?\s|$)/], - ["pie", /^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/], - [ - "pie", - /^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/, - ], - ["netfront", /^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/], - ["ie", /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/], - ["ie", /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/], - ["ie", /MSIE\s(7\.0)/], - ["bb10", /BB10;\sTouch.*Version\/([0-9\.]+)/], - ["android", /Android\s([0-9\.]+)/], - ["ios", /Version\/([0-9\._]+).*Mobile.*Safari.*/], - ["safari", /Version\/([0-9\._]+).*Safari/], - ["facebook", /FB[AS]V\/([0-9\.]+)/], - ["instagram", /Instagram\s([0-9\.]+)/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Mobile/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Gecko\)$/], - ["curl", /^curl\/([0-9\.]+)$/], - ["searchbot", SEARCHBOX_UA_REGEX], -]; -const matchUserAgent = (ua) => { - return (ua !== "" && - userAgentRules.reduce((matched, [browser, regex]) => { - if (matched) { - return matched; - } - const uaMatch = regex.exec(ua); - return !!uaMatch && [browser, uaMatch]; - }, false)); -}; -export const isCurrentBrowserSupported = (supportedBrowser) => { - if (typeof navigator === "undefined") { - return false; - } - const matchedRule = matchUserAgent(navigator.userAgent); - if (!matchedRule) { - return false; - } - const [name] = matchedRule; - if (name === "searchbot") { - return false; - } - return !!supportedBrowser.find((item) => item === name); -}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts deleted file mode 100644 index 6741ffe8c..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { AccountState, WalletSelectorState } from "../store.types"; -export declare const getActiveAccount: (state: WalletSelectorState) => AccountState | null; -//# sourceMappingURL=getActiveAccount.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts.map deleted file mode 100644 index 69c3c7609..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"getActiveAccount.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/getActiveAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,eAAO,MAAM,gBAAgB,UACpB,mBAAmB,KACzB,YAAY,GAAG,IAEjB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/getActiveAccount.js b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/getActiveAccount.js deleted file mode 100644 index b2db314cb..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/getActiveAccount.js +++ /dev/null @@ -1,3 +0,0 @@ -export const getActiveAccount = (state) => { - return state.accounts.find((account) => account.active) || null; -}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/index.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/index.d.ts deleted file mode 100644 index 78cea0fee..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./waitFor"; -export * from "./getActiveAccount"; -export * from "./detect-browser"; -export * from "./verify-signature/verify-signature"; -export * from "./verify-signature/payload"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/index.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/index.d.ts.map deleted file mode 100644 index e1ce0874b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/index.js b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/index.js deleted file mode 100644 index 69aaf908c..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./waitFor"; -export * from "./getActiveAccount"; -export * from "./detect-browser"; -export * from "./verify-signature/verify-signature"; -export * from "./verify-signature/payload"; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts deleted file mode 100644 index 207d814af..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Schema } from "borsh"; -import type { SignMessageParams } from "../../wallet"; -export interface Payload { - message: string; - nonce: Buffer; - recipient: string; - tag?: number; - callbackUrl?: string; -} -export declare const createPayload: (data: SignMessageParams) => Payload; -export declare const payloadSchema: Schema; -export declare const serializeNep413: (signMessageParams: SignMessageParams) => Buffer; -//# sourceMappingURL=payload.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts.map deleted file mode 100644 index 43755b9b9..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAY,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,eAAO,MAAM,aAAa,SAAU,iBAAiB,KAAG,OAUvD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAe3B,CAAC;AAaF,eAAO,MAAM,eAAe,sBAAuB,iBAAiB,KAAG,MAGtE,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/payload.js b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/payload.js deleted file mode 100644 index f2a7f147e..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/payload.js +++ /dev/null @@ -1,97 +0,0 @@ -import { serialize } from "borsh"; -export const createPayload = (data) => { - return { - message: data.message, - nonce: data.nonce, - recipient: data.recipient, - // The tag's value is a hardcoded value as per - // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) - tag: 2147484061, // NEP413 tag - callbackUrl: data.callbackUrl || undefined, - }; -}; -export const payloadSchema = { - struct: { - tag: "u32", - message: "string", - nonce: { - array: { - type: "u8", - len: 32 - } - }, // Assuming this is a 32-byte buffer - recipient: "string", - callbackUrl: { - option: "string" - }, - } -}; -// const payloadSchema: Schema = { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], // Assuming this is a 32-byte buffer -// ["recipient", "string"], -// ["callbackUrl", { kind: "option", type: "string" }], -// ], -// }; -export const serializeNep413 = (signMessageParams) => { - const payload = createPayload(signMessageParams); - return Buffer.from(serialize(payloadSchema, payload)); -}; -// export const serializeNep413 = (signMessageParams: SignMessageParams): Buffer => { -// const payload = createPayload(signMessageParams); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; -// import type { SignMessageParams } from "../../wallet"; -// import { serialize } from "borsh"; -// -// export class Payload { -// tag: number; -// message: string; -// nonce: Buffer; -// recipient: string; -// callbackUrl?: string; -// -// constructor(data: SignMessageParams) { -// // The tag's value is a hardcoded value as per -// // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) -// this.tag = 2147484061; -// this.message = data.message; -// this.nonce = data.nonce; -// this.recipient = data.recipient; -// if (data.callbackUrl) { -// this.callbackUrl = data.callbackUrl; -// } -// } -// } -// -// export const payloadSchema = new Map([ -// [ -// Payload, -// { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], -// ["recipient", "string"], -// [ -// "callbackUrl", -// { -// kind: "option", -// type: "string", -// }, -// ], -// ], -// }, -// ], -// ]); -// -// export const serializeNep413 = ( -// signMessageParams: SignMessageParams -// ): Buffer => { -// const payload = new Payload({ ...signMessageParams }); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts deleted file mode 100644 index 45cd3629b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { VerifyFullKeyBelongsToUserParams, VerifySignatureParams } from "./verify-signature.types"; -export declare const verifySignature: ({ publicKey, signature, message, nonce, recipient, callbackUrl, }: VerifySignatureParams) => boolean; -export declare const verifyFullKeyBelongsToUser: ({ publicKey, accountId, network, }: VerifyFullKeyBelongsToUserParams) => Promise; -//# sourceMappingURL=verify-signature.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map deleted file mode 100644 index 6e0eeae8d..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gCAAgC,EAChC,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAOlC,eAAO,MAAM,eAAe,sEAOzB,qBAAqB,YAkBvB,CAAC;AAiBF,eAAO,MAAM,0BAA0B,uCAIpC,gCAAgC,qBAQlC,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.js b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.js deleted file mode 100644 index f08e83f02..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.js +++ /dev/null @@ -1,39 +0,0 @@ -import { serialize } from "borsh"; -import { sha256 } from "js-sha256"; -import { payloadSchema } from "./payload"; -import { publicKeyFrom } from "../../../../../../../near-api-js/packages/crypto"; -// import {KeyType, PublicKey, publicKeyFrom} from "@near-js/crypto"; -import { JsonRpcProvider } from "@near-js/providers"; -export const verifySignature = ({ publicKey, signature, message, nonce, recipient, callbackUrl, }) => { - // Reconstruct the payload that was **actually signed** - const payload = { message, nonce, recipient, callbackUrl }; - // Serialize payload based on payloadSchema - const borshPayload = serialize(payloadSchema, payload); - // Hash the payload as in the NEP0413 referenced example - // https://github.com/near/NEPs/blob/master/neps/nep-0413.md#references - // https://github.com/gagdiez/near-login/blob/main/authenticate/wallet-authenticate.js#L21 - const hashedPayload = Uint8Array.from(sha256.array(borshPayload)); - // Convert real signature to buffer base64 - const realSignature = Buffer.from(signature, "base64"); - const pk = publicKeyFrom(publicKey); - // Verify the signature - return pk.verify(hashedPayload, realSignature); -}; -const fetchAllUserKeys = async ({ accountId, network, publicKey, }) => { - const provider = new JsonRpcProvider({ url: network.nodeUrl }); - const key = await provider.query({ - request_type: "view_access_key", - account_id: accountId, - finality: "final", - public_key: publicKey, - }); - return key; -}; -export const verifyFullKeyBelongsToUser = async ({ publicKey, accountId, network, }) => { - const { permission } = await fetchAllUserKeys({ - accountId, - network, - publicKey, - }); - return permission === "FullAccess"; -}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts deleted file mode 100644 index 50312b798..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Network } from "../../options.types"; -import { KeyType } from "@near-js/crypto"; -export interface IPublicKey { - keyType: KeyType; - data: Uint8Array; -} -export interface VerifySignatureParams { - publicKey: IPublicKey; - signature: string; - message: string; - nonce: Buffer; - recipient: string; - callbackUrl?: string; -} -export interface VerifyFullKeyBelongsToUserParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -export interface ViewAccessKeyParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -//# sourceMappingURL=verify-signature.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map deleted file mode 100644 index ad3eabbdf..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/waitFor.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/waitFor.d.ts deleted file mode 100644 index c73405a42..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/waitFor.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export declare const waitFor: (cb: () => boolean, opts?: { - timeout?: number; - interval?: number; -}) => Promise; -//# sourceMappingURL=waitFor.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/waitFor.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/waitFor.d.ts.map deleted file mode 100644 index 01d36b6d7..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/waitFor.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"waitFor.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/waitFor.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,OAAO,OACd,MAAM,OAAO,SACX;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,qBAU9C,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/waitFor.js b/packages/my-near-wallet/dist/esm/core/src/lib/helpers/waitFor.js deleted file mode 100644 index 55fc5398f..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/helpers/waitFor.js +++ /dev/null @@ -1,22 +0,0 @@ -const wait = (ms) => { - return new Promise((resolve) => setTimeout(resolve, ms)); -}; -const poll = async (cb, interval, remaining) => { - const result = cb(); - if (result) { - return result; - } - if (!remaining) { - throw new Error("Exceeded timeout"); - } - return wait(interval).then(() => poll(cb, interval, remaining - 1)); -}; -export const waitFor = async (cb, opts = {}) => { - const { timeout = 100, interval = 50 } = opts; - return Promise.race([ - wait(timeout).then(() => { - throw new Error("Exceeded timeout"); - }), - poll(cb, interval, Math.floor(timeout / interval)), - ]); -}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/ar.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/ar.json deleted file mode 100644 index ebe6801b2..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/ar.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "صل محفظتك", - "whatIsAWallet": "ما هي المحفظة؟", - "secureAndManage": "تأمين وإدارة الممتلكات الرقمية الخاصة بك", - "safelyStore": "قم بتخزين و ارسال عملاتك و أصولك الرقمية بأمان", - "logInToAny": "سجل الدخول إلى أي تطبيق يستخدم نير", - "noNeedToCreate": ".لا داعي لإنشاء حساب جديد. فقط قم بتوصيل محفظتك وانطلق", - "getAWallet": "احصل على محفظة", - "useAWallet": "استخدم محفظة لتأمين وإدارة أصول نير الخاصة بك، وادخل لأي تطبيق يستخدم نير دون الحاجة إلى اسم المستخدم وكلمةالمرور", - "connectionFailed": "اتصال فاشل", - "connectionSuccessful": "اتصال ناجح", - "rememberWallet": "تذكر المحافظ", - "connected": "متصل", - "connectingTo": "جاري الاتصال ب", - "connectingMessage": { - "injected": "وافق على الاتصال في نافذة الإضافة", - "browser": "وافق على الاتصال في المحفظة بعد إعادة توجيه", - "hardware": "وافق على الاتصال في جهاز ليدجر", - "bridge": "وافق على الاتصال في المحفظة" - } - }, - "ledger": { - "connectWithLedger": "اتصل مع ليدجر", - "makeSureYourLedger": "تأكد أن ليدجر متصل بأمان, و أن تطبيق نير مفتوح في جهازك", - "continue": "تابع", - "specifyHDPath": "حدد مسار الحساب", - "enterYourPreferredHDPath": "أدخل مسار الحساب المفضل، ثم ابحث عن كل الحسابات النشطة", - "scan": "مسح", - "retry": "أعد المحاولة", - "ledgerIsNotAvailable": "ليدجر غير متوفر", - "accessDeniedToUseLedgerDevice": "تم رفض الاتصال بليدجر", - "noAccountsFound": "لم يتم العثور على أي حسابات", - "selectYourAccounts": "حدد حساباتك", - "connecting1Account": "جاري الاتصال بحساب واحد", - "cantFindAnyAccount": "لا يمكن العثور على أي حساب مرتبط بهذا ليدجر الرجاء إنشاء حساب نير جديد على", - "orConnectAnAnotherLedger": "او اربط جهاز ليدجر آخر", - "connecting": "جاري الاتصال", - "ofAccounts": "من الحسابات", - "failedToAutomatically": "فشل في الاتصال بالحساب تلقائيا. يرجى الاتصال بالحساب يدويا", - "overviewTheListOfAuthorized": "لائحة الحسابات المصرح بها, أكمل تسجيل الدخول بالنقر على الزر أدناه", - "finish": "إنهاء" - }, - "install": { - "youllNeedToInstall": "ستحتاج لتثبيت", - "toContinueAfterInstalling": "للاستكمال. بعد التثبيت", - "refreshThePage": "قم بتحديث الصفحة", - "open": "افتح" - }, - "qr": { - "copiedToClipboard": "تم النسخ", - "failedToCopy": "فشل النسخ", - "scanWithYourMobile": "امسح بجهازك المحمول", - "copyToClipboard": "نسخ", - "preferTheOfficial": "تفضل الحوار الرسمي ل", - "open": "فتح" - }, - "walletTypes": { - "hardware": "محفظة الأجهزة", - "browser": "محفظة المتصفح", - "injected": "ملحق المحفظة", - "bridge": "محفظة الجسر", - "mobile": "محفظة الجوال", - "instant-link": "محفظة الرابط الفوري" - }, - "exportAccounts": { - "afterDecide": "بعد اتخاذ قرار بشأن محفظة، يمكنك اختيار الحسابات التي تريد نقلها.", - "chooseAWallet": "اختر محفظة", - "disclaimer": "لن تتمكن من نقل الحسابات التي لم يتم تمويلها أو استخدامها على NEAR.", - "selectAWallet": "اختر محفظة تناسب احتياجاتك وتدعم حساباتك المتصلة.", - "selectYourAccounts": "حدد حساباتك", - "transferYourAccounts": "نقل حساباتك", - "warning": "لا تدعم تصدير الحسابات في الوقت الحالي. يرجى اختيار محفظة أخرى.", - "complete": { - "button": "أكمل", - "descOne": "سيتم توجيهك الآن إلى المحفظة التي اخترتها لإكمال النقل.", - "descTwo": "بمجرد إكمال جزء الاستيراد من العملية من المحفظة المحددة، اضغط على الزر لإكمال عملية النقل.", - "startOverButton": "ابدأ من جديد", - "title": "أكمل النقل" - }, - "getPassphrase": { - "button": "تابع", - "checkLabel": "لقد قمت بنسخ أو كتابة كلمة المرور", - "desc": "ستحتاج إلى إدخال هذه الكلمة السرية عند بدء تصدير حساباتك إلى محفظة مختلفة.", - "label": "انقر لنسخ", - "title": "انسخ كلمة المرور المؤقتة", - "transferButton": "نقل الحسابات" - }, - "selectAccounts": { - "button": "تابع", - "deselectAll": "إلغاء تحديد الكل", - "error": "الحساب غير موجود", - "noBalance": "الحساب غير ممول", - "selectAll": "تحديد الكل", - "title": "حدد الحسابات لنقلها", - "unavailable": "النقل غير متاح", - "warningLedger": "دعم Ledger مطلوب" - }, - "walletTypes": { - "bridge": "محفظة الجسر", - "browser": "محفظة المتصفح", - "hardware": "محفظة الأجهزة", - "injected": "ملحق المحفظة", - "mobile": "محفظة الجوال" - } - } - }, - "component": { - "clickToCopy": { - "label": "تم النسخ", - "tooltip": "انقر لنسخ" - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/bg.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/bg.json deleted file mode 100644 index 5fd192bad..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/bg.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Свържете вашия Портфейл", - "whatIsAWallet": "Какво е Портфейл?", - "secureAndManage": "Защитете и управлявайте дигиталните си активи", - "safelyStore": "Съхранявайте и прехвърляйте безопасно вашите крипто и NFT.", - "logInToAny": "Използвайте всяко приложение на NEAR", - "noNeedToCreate": "Няма нужда да създавате нови профили. Свържете портфейла си и сте готови!", - "getAWallet": "Създайте Портфейл", - "useAWallet": "Използвайте портфейла, за да защитите и управлявате активите си на NEAR както и да използвате всяко приложение на NEAR без нужда от потребителски имена и пароли.", - "connectionFailed": "Свързването неуспешно", - "connectionSuccessful": "Свързването успешно", - "rememberWallet": "Запази портфейлите", - "connected": "Свързан", - "connectingTo": "Свързване към", - "connectingMessage": { - "injected": "Потвърдете свързването в прозореца на разширението", - "browser": "Потвърдете свързването в портфейла след пренасочването", - "hardware": "Потвърдете свързването в хардуерния портфейл", - "bridge": "Потвърдете връзката в портфейла" - } - }, - "ledger": { - "connectWithLedger": "Свържете се с Ledger", - "makeSureYourLedger": "Уверете се, че вашият Ledger е свързан и че приложението NEAR е отворено нa него.", - "continue": "Продължете", - "specifyHDPath": "Посочете HD път", - "enterYourPreferredHDPath": "Въведете предпочитания HD път, след което сканирайте за активни акаунти.", - "scan": "Сканирайте", - "retry": "Опитайте отново", - "ledgerIsNotAvailable": "Ledger устройството не е достъпно", - "accessDeniedToUseLedgerDevice": "Достъпът за използване на Ledger е отказан", - "noAccountsFound": "Няма намерени профили", - "selectYourAccounts": "Изберете вашите профили", - "connecting1Account": "Свързване на 1 профил", - "cantFindAnyAccount": "Няма намерени профили, съврзани с този Ledger. Моля, създайте нов NEAR профил на", - "orConnectAnAnotherLedger": "или свържете друг Ledger.", - "connecting": "Свързване", - "ofAccounts": "от профили", - "failedToAutomatically": "Автоматичното намиране на профила не бе успешно. Въведете го ръчно:", - "overviewTheListOfAuthorized": "Прегледайте списъка с упълномощени профили, завършете влизането, като щракнете върху бутона по-долу..", - "finish": "Завършете" - }, - "install": { - "youllNeedToInstall": "Ще трябва да инсталирате", - "toContinueAfterInstalling": "за да продължите. След инсталиране", - "refreshThePage": "презаредете страницата.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано в клипборда", - "failedToCopy": "Неуспешно копиране в клипборда", - "scanWithYourMobile": " Сканирайте с мобилното си устройство", - "copyToClipboard": " Копирайте в клипборда", - "preferTheOfficial": "Предпочитан език за кореспонденция", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардуерен портфейл", - "browser": "Портфейл в браузъра", - "injected": "Разширение на портфейл", - "bridge": "Мостов портфейл", - "mobile": "Мобилен портфейл", - "instant-link": "Мигновен портфейл" - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/en.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/en.json deleted file mode 100644 index ec6ae2981..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/en.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Connect Your Wallet", - "whatIsAWallet": "What is a Wallet?", - "secureAndManage": "Secure & Manage Your Digital Assets", - "safelyStore": "Safely store and transfer your crypto and NFTs.", - "logInToAny": "Log In to Any NEAR App", - "noNeedToCreate": "No need to create new accounts or credentials. Connect your wallet and you are good to go!", - "getAWallet": "Get a Wallet", - "useAWallet": "Use a wallet to secure and manage your NEAR assets, and to log in to any NEAR app without the need for usernames and passwords.", - "connectionFailed": "Connection Failed", - "connectionSuccessful": "Connection Successful", - "rememberWallet": "Remember wallets", - "connected": "Connected", - "connectingTo": "Connecting to", - "connectingMessage": { - "injected": "Confirm the connection in the extension window", - "browser": "Confirm the connection in the wallet after redirect", - "hardware": "Confirm the connection in the ledger device", - "bridge": "Confirm the connection in the wallet" - } - }, - "ledger": { - "connectWithLedger": "Connect with Ledger", - "makeSureYourLedger": "Make sure your Ledger is connected securely, and that the NEAR app is open on your device", - "continue": "Continue", - "specifyHDPath": "Specify HD Path", - "enterYourPreferredHDPath": "Enter your preferred HD path, then scan for any active accounts.", - "scan": "Scan", - "retry": "Retry", - "ledgerIsNotAvailable": "Ledger is not available", - "accessDeniedToUseLedgerDevice": "Access denied to use Ledger device", - "noAccountsFound": "No Accounts Found", - "selectYourAccounts": "Select Your Accounts", - "connecting1Account": "Connecting 1 Account", - "cantFindAnyAccount": "Can't find any account associated with this Ledger. Please create a new NEAR account on", - "orConnectAnAnotherLedger": "or connect an another Ledger.", - "connecting": "Connecting", - "ofAccounts": "of Accounts", - "failedToAutomatically": "Failed to automatically find account id. Provide it manually:", - "overviewTheListOfAuthorized": "Overview the list of authorized account(s), complete sign in by clicking the button below.", - "finish": "Finish" - }, - "install": { - "youllNeedToInstall": "You'll need to install", - "toContinueAfterInstalling": "to continue. After installing", - "refreshThePage": "refresh the page.", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "Copied to clipboard", - "failedToCopy": "Failed to copy to clipboard", - "scanWithYourMobile": "Scan with Your Mobile Device", - "copyToClipboard": " Copy to clipboard", - "preferTheOfficial": "Prefer the official dialogue of", - "open": "Open" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Choose a Wallet", - "transferYourAccounts": "Transfer Your Accounts", - "selectAWallet": "Select a wallet that fits your needs and supports your connected accounts.", - "selectYourAccounts": "Select Your Accounts", - "afterDecide": "After you decide on a wallet, you can select which accounts you want to transfer.", - "disclaimer": "You won’t be able to transfer accounts that have never been funded or used on NEAR.", - "warning": "does not support account export at this time. Please select another wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Select Accounts to Transfer", - "button": "Continue", - "deselectAll": "Deselect All", - "selectAll": "Select All", - "unavailable": "Transfer Unavailable", - "error": "Account does not exist", - "warningLedger": "Ledger support required", - "noBalance": "Account not funded" - }, - "getPassphrase": { - "title": "Copy Temporary Password", - "desc": "You’ll need to enter this password when you begin exporting your accounts to a different wallet.", - "button": "Continue", - "transferButton": "Transfer Accounts", - "label": "Click to Copy", - "checkLabel": "I copied or wrote down the password" - }, - "complete": { - "title": "Complete the Transfer", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Once import part of process is completed from selected wallet, press button to complete the transfer process.", - "startOverButton": "Start Over", - "button": "Complete" - } - } - }, - "component": { - "clickToCopy": { - "label": "Copied", - "tooltip": "Click to copy" - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/es.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/es.json deleted file mode 100644 index 34f9ef864..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/es.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Conecta Tu Billetera", - "whatIsAWallet": "¿Que es una Billetera?", - "secureAndManage": "Resguarda y Administrar Tus Activos Digitales", - "safelyStore": "Almacena de forma segura y transfiere tus cryptos y NFT's", - "logInToAny": "Inicie sesión en Cualquier Aplicacion NEAR", - "noNeedToCreate": "No es necesario crear nuevas cuentas o credenciales, ¡Conecta tu billetera y listo!", - "getAWallet": "Obten una Billetera", - "useAWallet": "Usa tu Billetera para resguardar y administrar tus activos en NEAR, e Iniciar sesión en cualquier aplicacion NEAR sin la necesidad de nombres de usuarios y contraseñas", - "connectionFailed": "Conexión Fallida", - "connectionSuccessful": "Conexión Existosa", - "rememberWallet": "Recordar las carteras", - "connected": "Conectado", - "connectingTo": "Conectando a ", - "connectingMessage": { - "injected": "Confirme la conexión en la ventana de extensión", - "browser": "Confirme la conexión en la billetera después de la redirección", - "hardware": "Confirme la conexión en el dispositivo de libro mayor", - "bridge": "Confirmar la conexión en la billetera" - } - }, - "ledger": { - "connectWithLedger": "Conectar con Ledger", - "makeSureYourLedger": "Asegúrese de que su ledger está conectada de forma segura y que la aplicacion NEAR esté abierta en su dispositivo", - "continue": "Continuar", - "specifyHDPath": "Especifique la ruta HD", - "enterYourPreferredHDPath": "Ingrese su ruta HD prerida,y luego busque cualquier cuenta activa.", - "scan": "Escanear", - "retry": "Reintentar", - "ledgerIsNotAvailable": "El Ledger no está disponible", - "accessDeniedToUseLedgerDevice": "Acceso denegado para usar el dispositivo ledger", - "noAccountsFound": "No se encontraron cuentas", - "selectYourAccounts": "Selecciona tus cuentas", - "connecting1Account": "Conectando a 1 cuenta", - "cantFindAnyAccount": "No se pudo encontrar ninguna cuenta asociada con este ledger,Por favor crea una nueva cuenta en NEAR", - "orConnectAnAnotherLedger": "o conecta otro ledger", - "connecting": "Conectando", - "ofAccounts": "de Cuentas", - "failedToAutomatically": "No se pudo encontrar automaticamente el id de la cuenta,Ingresalo manualmente:", - "overviewTheListOfAuthorized": "Revise la lista de las cuentas autorizadas,Complete el inicio de sesión haciedo click a countinuacion.", - "finish": "Finalizar" - }, - "install": { - "youllNeedToInstall": "Tendrás que instalar", - "toContinueAfterInstalling": "Para continuar, Despues de instalar", - "refreshThePage": "Recarga la pagina", - "open": "Abrir" - }, - "qr": { - "copiedToClipboard": "Copiado al Portapapeles", - "failedToCopy": "Falló la copia al Portapapeles", - "scanWithYourMobile": "Busca con tu dispositivo movil", - "copyToClipboard": " Copiar al Portapapeles", - "preferTheOfficial": "¿Prefires el diálogo oficial de", - "open": "Abrir" - }, - "walletTypes": { - "hardware": "Cartera de Hardware", - "browser": "Cartera de Navegador", - "injected": "Extensión de Cartera", - "bridge": "Cartera de Puente", - "mobile": "Cartera Móvil", - "instant-link": "Cartera Instantánea" - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/hi.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/hi.json deleted file mode 100644 index c8c5866ef..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/hi.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "अपना वॉलेट (Wallet) कनेक्ट करें।", - "whatIsAWallet": "वॉलेट क्या है?", - "secureAndManage": "सुरक्षित और प्रबंधित करें।", - "safelyStore": "अपनी क्रिप्टोकरेंसी और एनएफटी को सुरक्षित रूप से स्टोर और ट्रांसफर करें।", - "logInToAny": "NEAR पर किसी भी ऐप में साइन इन करें।", - "noNeedToCreate": "नए खाते या लॉगिन बनाने की आवश्यकता नहीं है। अपना वॉलेट(NEAR Wallet)कनेक्ट करें और आरंभ करें।", - "getAWallet": "एक वॉलेट बनाएँ।", - "useAWallet": "अपनी NEAR संपत्तियों को सुरक्षित और प्रबंधित करने के लिए वॉलेट का उपयोग करें और किसी भी NEAR ऐप (app) में लॉग इन करें, किसी उपयोगकर्ता (user) नाम और पासवर्ड की आवश्यकता नहीं है।", - "connectionFailed": "कनेक्शन विफल|", - "connectionSuccessful": "कनेक्शन सफल|", - "rememberWallet": "वॉलेटों को याद रखें", - "connected": "वॉलेट जुड़ गया|", - "connectingTo": "वॉलेट जुड़ रहा हे|", - "connectingMessage": { - "injected": "एक्सटेंशन विंडो में कनेक्शन की पुष्टि करें|", - "browser": "रीडायरेक्ट होने के बाद वॉलेट में कनेक्शन की पुष्टि करें|", - "hardware": "कोल्ड वॉलेट के साथ कनेक्शन की पुष्टि करें|" - } - }, - "ledger": { - "connectWithLedger": "लेजर(Ledger)वॉलेट कनेक्ट करें|", - "makeSureYourLedger": "सुनिश्चित करें कि आपका लेजर सुरक्षित रूप से जुड़ा हुआ है और NEAR ऐप आपके डिवाइस (Device)पर पहले से ही खुला है|", - "continue": "जारी रखे|", - "specifyHDPath": "हार्ड डिस्क(Hard Disk)पथ(Path)निर्धारित करे|", - "enterYourPreferredHDPath": "अपना एचडी पथ दर्ज करें, फिर सक्रिय खातों के लिए स्कैन करें|", - "scan": "स्कैन करे|", - "retry": "दोबारा प्रयास करे|", - "ledgerIsNotAvailable": "लेजर उपलब्ध नहीं है|", - "accessDeniedToUseLedgerDevice": "लेजर डिवाइस का उपयोग करने के लिए प्रवेश निषेध|", - "noAccountsFound": "खाता नहीं मिला|", - "selectYourAccounts": "अपने खाते चुनें|", - "connecting1Account": "एक खाता कनेक्ट हो रहा है|", - "cantFindAnyAccount": "इस लेजर से जुड़ा कोई खाता नहीं मिला। कृपया एक नया NEAR खाता बनाएँ|", - "orConnectAnAnotherLedger": "अथवा दूसरे लेजर वॉलेट से कनेक्ट करें।", - "connecting": "जुड़ रहा हे|", - "ofAccounts": "खाता अब जुड़ा नहीं हे|", - "failedToAutomatically": "खाता आईडी स्वचालित रूप से खोजने में असमर्थ। मैन्युअल (Manuall) रूप से कोशिश करें|", - "overviewTheListOfAuthorized": "अवलोकन अधिकृत की सूची, नीचे दिए गए बटन पर क्लिक करके लॉगिन पूरा करें।", - "finish": "समाप्त|" - }, - "install": { - "youllNeedToInstall": "आपको इंस्टॉल करना होगा|", - "toContinueAfterInstalling": "इंस्टॉल करने के बाद जारी रखे|", - "refreshThePage": "पुन: लोड करें।", - "open": "खोले|" - }, - "qr": { - "copiedToClipboard": "क्लिपबोर्ड(Clipboard)पर कॉपी किया गया|", - "failedToCopy": "क्लिपबोर्ड पर कॉपी करना विफल रहा|", - "scanWithYourMobile": "अपने फोन (Mobile)से स्कैन करें|", - "copyToClipboard": " क्लिपबोर्ड पर कॉपी करें|", - "preferTheOfficial": "आधिकारिक संवाद को प्राथमिकता दें|", - "open": "खोले|" - }, - "walletTypes": { - "hardware": "हार्डवेयर वॉलेट", - "browser": "ब्राउज़र वॉलेट", - "injected": "वॉलेट एक्सटेंशन", - "bridge": "ब्रिज वॉलेट", - "mobile": "मोबाइल वॉलेट", - "instant-link": "इंस्टेंट वॉलेट" - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/hr.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/hr.json deleted file mode 100644 index 1a6cc0967..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/hr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Spojite crypto novčanik!", - "whatIsAWallet": "Što je to crypto novčanik?", - "secureAndManage": "Osigurajte i upravljajte svojom digitalnom imovinom.", - "safelyStore": "Sigurno pohranite i prebacite svoj crypto i NFT-eve.", - "logInToAny": " Prijavite se u bilo koju NEAR aplikaciju", - "noNeedToCreate": "Nema potrebe za stvaranjem novih naloga ili korisničkih podataka. Spojite svoj crypto novčanik i spremni ste!", - "getAWallet": "Otvorite crypto novčanik", - "useAWallet": "Koristite crypto novčanik da biste osigurali i upravljali svojom NEAR imovinom, te se prijavite u bilo koju NEAR aplikaciju bez korisničkog imena i lozinke.", - "connectionFailed": "Neuspješno povezivanje.", - "connectionSuccessful": "Uspješno povezivanje.", - "rememberWallet": "Zapamti novčanike", - "connected": "Povezano.", - "connectingTo": "Povezivanje u tijeku", - "connectingMessage": { - "injected": "Potvrdite vezu u eksternom prozoru", - "browser": "Nakon redirekcije, potvrdite vezu u novčaniku", - "hardware": "Potvrdite vezu sa novčanikom", - "bridge": "Potvrdite vezu u novčaniku" - } - }, - "ledger": { - "connectWithLedger": "Povežite se hardverskim novčanikom", - "makeSureYourLedger": "Osigurajte sigurnu vezu s hardverskim novčanikom, te da je NEAR aplikacija otvorena na vašem uređaju", - "continue": "Nastavite", - "specifyHDPath": "Specificirajte HD putanju", - "enterYourPreferredHDPath": "Upišite preferiranu HD putanju, zatim skenirajte aktivne naloge", - "scan": "Skenirajte", - "retry": "Pokušajte ponovno", - "ledgerIsNotAvailable": "Hardverski novčanik nije dostupan.", - "accessDeniedToUseLedgerDevice": "Odbijen pristup za korištenjem hardverskog novčanika", - "noAccountsFound": "Nalozi nisu pronađeni", - "selectYourAccounts": "Odaberite svoje naloge", - "connecting1Account": "Povezivanje 1 naloga", - "cantFindAnyAccount": "Nije moguće pronaći niti jedan nalog povezan s ovim hardverskim novčanikom. Molimo vas, kreirajte novi NEAR nalog", - "orConnectAnAnotherLedger": "Ili povežite drugi hardverski novčanik.", - "connecting": "Povezivanje", - "ofAccounts": "naloga", - "failedToAutomatically": "Neuspješno automatsko pronalaženje ID naloga. Unesite ručno:", - "overviewTheListOfAuthorized": "Pregledajte popis odobrenih naloga, završite prijavu pritiskom na niže prikazani gumb.", - "finish": "Završite" - }, - "install": { - "youllNeedToInstall": " Potrebno je instalirati modal", - "toContinueAfterInstalling": "za nastavak. Nakon instalacije", - "refreshThePage": "osvježite stranicu.", - "open": "Otvorite QR modal" - }, - "qr": { - "copiedToClipboard": "Kopirano u međuspremnik", - "failedToCopy": "Neupsješno kopiranje u međuspremnik", - "scanWithYourMobile": "Skenirajte svojim mobilnim uređajem", - "copyToClipboard": " Kopirajte u međuspremnik", - "preferTheOfficial": "Odaberite službeni dijalog", - "open": "Otvorite" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Odaberi Wallet", - "transferYourAccounts": "Prenesi svoje naloge", - "selectAWallet": "Odaberite wallet koji odgovara vašim potrebama i podržava vaše povezane naloge.", - "selectYourAccounts": "Odaberi svoje naloge", - "afterDecide": "Nakon što odlučite koji wallet koristite, možete odabrati koje račune želite prebaciti.", - "disclaimer": "Nećete moći prebaciti naloge koji nisu nikada bili korišteni na NEAR-u.", - "warning": "ne podržava izvoz naloga u ovom trenutku. Molimo odaberite drugi wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Odaberi naloge za prijenos", - "button": "Generiraj lozinku", - "deselectAll": "Makni odabir sa svih", - "selectAll": "Odaberi sve", - "unavailable": "Prijenos nije dostupan", - "error": "Nalog ne postoji", - "warningLedger": "Potrebna ledger podrška", - "noBalance": "Nalog nema sredstava" - }, - "getPassphrase": { - "title": "Kopiraj privremenu lozinku", - "desc": "Bit će potrebno unijeti ovu lozinku na početku izvoza naloga na drugi wallet.", - "button": "Nastavi", - "label": "Klikni za kopiju", - "checkLabel": "Kopirao sam ili zapisao lozinku" - }, - "complete": { - "title": "Završi prijenos", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Kada je unos s odabranog walleta završen, pritisnite gumb da biste završili prijenos.", - "button": "Završi" - } - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/ko.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/ko.json deleted file mode 100644 index e5c20d2d6..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/ko.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "지갑 연결하기", - "whatIsAWallet": "지갑은 무슨 역할을 하나요?", - "secureAndManage": "당신의 디지털 자산을 보호하고 관리합니다.", - "safelyStore": "암호화폐와 NFT를 안전하게 저장하고 전송할 수 있습니다.", - "logInToAny": "NEAR App에 로그인합니다.", - "noNeedToCreate": "새로운 계정이나 비밀번호를 만들 필요 없이 지갑을 연결한 후 바로 사용할 수 있습니다.", - "getAWallet": "지갑 가져오기", - "useAWallet": "지갑을 사용하여 NEAR 자산을 보호·관리하고, 아이디와 비밀번호 없이 NEAR 앱에 로그인할 수 있습니다.", - "connectionFailed": "연결 실패", - "connectionSuccessful": "연결 성공", - "rememberWallet": "지갑들 기억하기", - "connected": "Connected", - "connectingTo": "연결 중: ", - "connectingMessage": { - "injected": "익스텐션 창에서 연결을 확인하세요", - "browser": "리다이렉트 된 지갑에서 연결을 확인하세요", - "hardware": "Ledger 기기에서 연결을 확인하세요", - "bridge": "지갑에서 연결 확인" - } - }, - "ledger": { - "connectWithLedger": "Ledger 연결하기", - "makeSureYourLedger": "Ledger가 안전하게 연결되어 있고, NEAR 앱이 열려 있는 지 확인하세요", - "continue": "계속하기", - "specifyHDPath": "HD Path 지정하기", - "enterYourPreferredHDPath": "원하는 HD Path를 선택하고, 활성화된 계정이 있는 지 검색하세요", - "scan": "검색", - "retry": "다시 시도", - "ledgerIsNotAvailable": "Ledger를 사용할 수 없습니다", - "accessDeniedToUseLedgerDevice": "Ledger 기기 접근 권한이 거부되었습니다", - "noAccountsFound": "계정을 찾을 수 없습니다", - "selectYourAccounts": "계정 선택하기", - "connecting1Account": "하나의 계정에 연결", - "cantFindAnyAccount": "Ledger와 연결된 계정을 찾을 수 없습니다. 새로운 계정을 생성하거나 ", - "orConnectAnAnotherLedger": "다른 Ledger를 연결하세요", - "connecting": "계정 연결하기: ", - "ofAccounts": "개 계정을 찾았습니다", - "failedToAutomatically": "계정 ID를 찾지 못했습니다. 수동으로 입력해주세요.", - "overviewTheListOfAuthorized": "인증된 계정 목록을 확인한 후 아래 버튼을 클릭하여 로그인을 완료하세요", - "finish": "완료" - }, - "walletTypes": { - "hardware": "하드웨어 지갑", - "browser": "브라우저 지갑", - "injected": "지갑 확장", - "bridge": "브리지 지갑", - "mobile": "모바일 지갑", - "instant-link": "인스턴트 지갑" - }, - "install": { - "youllNeedToInstall": "다음 확장 프로그램을 설치해주세요:", - "toContinueAfterInstalling": ". 설치 완료 후 페이지 새로 고침이 필요합니다. ", - "refreshThePage": "새로 고침", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "클립보드에 복사 완료", - "failedToCopy": "클립보드에 복사 실패", - "scanWithYourMobile": "모바일 장치를 사용하여 스캔해주세요", - "copyToClipboard": " 클립보드에 복사하기", - "preferTheOfficial": "다음 프로그램에서 제공하는 공식 프로세스를 선호하십니까: ", - "open": "Open" - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/mk.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/mk.json deleted file mode 100644 index f75e74659..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/mk.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Поврзете го вашиот новчаник!", - "whatIsAWallet": "Што е новчаник?", - "secureAndManage": "Заштитете ги и управувајте со вашите дигитални средства.", - "safelyStore": "Безбедно складирајте и извршувајте трансакции со вашите крипто и NFT.", - "logInToAny": "Најавете се на која било NEAR апликација", - "noNeedToCreate": "Нема потреба да креирате нови сметки или ингеренции. Поврзете го вашиот паричник и сте подготвени!", - "getAWallet": "Направете новчаник", - "useAWallet": "Користете паричник за да ги заштитите и управувате вашите NEAR средства и да се најавите на која било NEAR апликација без потреба од кориснички имиња и лозинки.", - "connectionFailed": "Поврзувањето не беше успешно.", - "connectionSuccessful": "Успешно поврзување.", - "rememberWallet": "Запомни паричници", - "connected": "Поврзано.", - "connectingTo": "Поврзување со", - "connectingMessage": { - "injected": "Потврдете го поврзувањето во екстерниот прозорец", - "browser": "По преусмерувањето, потврдете го поврзувањето од новчаниокт", - "hardware": "Потврдете го поврзувањето со ладен новчаник", - "bridge": "Потврдете ја врската во новчаникот" - } - }, - "ledger": { - "connectWithLedger": "Поврзете се со Леџер", - "makeSureYourLedger": "Осигурајте се дека вашиот Леџер е поврзан безбедно, и дека NEAR апликацијата е отворена на вашиот уред", - "continue": "Продолжете", - "specifyHDPath": "Наведете ХД локација", - "enterYourPreferredHDPath": "Внесете ја вашата преферирана ХД локација, а потоа скенирајте да ги најдете активните сметки.", - "scan": "Скенирајте", - "retry": "Обидете се повторно", - "ledgerIsNotAvailable": "Леџерот не е достапен.", - "accessDeniedToUseLedgerDevice": "Пристапот за користење на Леџер уред е одбиен", - "noAccountsFound": "Нема најдени сметки", - "selectYourAccounts": "Изберете ги вашите сметки", - "connecting1Account": "Поврзување на една сметка", - "cantFindAnyAccount": "Не се најдени сметки поврзани со овој Леџер. Ве молиме креирајте нова NEAR сметка ", - "orConnectAnAnotherLedger": "или поврзете друг Леџер.", - "connecting": "Поврзување", - "ofAccounts": "на сметки", - "failedToAutomatically": "Неуспешно автоматско барање на ИД на сметката. Внесете го рачно:", - "overviewTheListOfAuthorized": "Преглед на листата на овластени сметки, завршете се најавата со кликнување на копчето подолу.", - "finish": "Завршете" - }, - "install": { - "youllNeedToInstall": "Треба да инсталирате", - "toContinueAfterInstalling": "за да продолжите. По инсталирањето", - "refreshThePage": "Освежете ја страната.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано на клипбордот", - "failedToCopy": "Неуспешно копирање на клипборд", - "scanWithYourMobile": "Скенирајте со вашиот телефонски уред", - "copyToClipboard": "Копирајте на клипборд", - "preferTheOfficial": "Преферирајте официјален диалог на", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник", - "instant-link": "Инстант паричник" - }, - "exportAccounts": { - "chooseAWallet": "Одберете паричник", - "transferYourAccounts": "Префрлете ги вашите кориснички сметки", - "selectAWallet": "Изберетен новчаник кој ги задоволува вашите баранња и ги поддржува вашите поврзани кориснички сметки.", - "selectYourAccounts": "Изберете ги вашите кориснички сметки", - "afterDecide": "Одкако ќе изберете новчаник, можете да изберете кои кориснички сметки сакате да ги префрлите.", - "disclaimer": "Не можете да прфрлате кориснички сметки кои никогаш не биле надополнати или користени на NEAR.", - "warning": "не поддржува извезување на кориснички сметки во овој момент. Ве молиме изберете друг новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник" - }, - "selectAccounts": { - "title": "Изберете ги корисничките сметки за да ги префрлите.", - "button": "Добијте лозинка", - "deselectAll": "Отселектирајте се", - "selectAll": "Изберете се", - "unavailable": "Трансферот е недостапен", - "error": "Корисничката сметка не постои", - "warningLedger": "Потребна е поддршка од Леџер", - "noBalance": "Сметката не е финансирана" - }, - "getPassphrase": { - "title": "Копирајте ја привремената лозинка", - "desc": "Ќе треба да ја внесете оваа лозинка кога ќе започнете да ги извезувате вашите сметки на друг новчаник.", - "button": "Продолжете", - "label": "Кликнете за да копирате", - "checkLabel": "Ја копирав или запишав лозинката" - }, - "complete": { - "title": "Завршете го преносот", - "descOne": "Сега ќе бидете пренасочени на избраниот новчаник за завршување на преносот.", - "descTwo": "Откако ќе заврши увозот од избраниот новчаник, притиснете го копчето за да го завршите преносот.", - "button": "Завршете" - } - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/sl.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/sl.json deleted file mode 100644 index 20b795b9a..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/sl.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Povežite svojo denarnico!", - "whatIsAWallet": "Kaj je denarnica?", - "secureAndManage": "Zavarujte in upravljajte svoja digitalna sredstva.", - "safelyStore": "Varno shranjujte in prenašajte svoje kriptovalute in NFTje.", - "logInToAny": "Prijavite se v katero koli aplikacijo na NEAR", - "noNeedToCreate": "Ni vam treba ustvarjati novih računov. Povežite svojo denarnico in začnite!", - "getAWallet": "Ustvarite denarnico", - "useAWallet": "Uporabite denarnico, da bi zavarovali in upravljali s svoja NEAR digitalna sredstva, in se prijavite v katero koli aplikacijo ekosistema NEAR", - "connectionFailed": "Povezava ni bila uspešna.", - "connectionSuccessful": "Povezava je bila uspešna.", - "rememberWallet": "Zapomni si denarnice", - "connected": "Vaša denarnica je povezana.", - "connectingTo": "Povezovanje z", - "connectingMessage": { - "injected": "Potrdite povezavo v oknu razširitve", - "browser": "Po preusmeritvi potrdite povezavo v denarnici", - "hardware": "Potrdite povezavo s hladno denarnico", - "bridge": "Potrdite povezavo v denarnici" - } - }, - "ledger": { - "connectWithLedger": "Povežite se z Ledger", - "makeSureYourLedger": "Prepričajte se, da je vaš Ledger varno povezan in da je aplikacija NEAR odprta v vaši napravi", - "continue": "Nadaljuj", - "specifyHDPath": "Določite HD pot", - "enterYourPreferredHDPath": "Vnesite želeno HD pot, nato poiščite vse aktivne račune.", - "scan": "Skenirajte", - "retry": "Poskusite znova", - "ledgerIsNotAvailable": "Ledger ni na voljo", - "accessDeniedToUseLedgerDevice": "Dostop za uporabo naprave Ledger zavrnjen", - "noAccountsFound": "Ni najdenih računov", - "selectYourAccounts": "Izberite Vaši računi", - "connecting1Account": "Povezovanje enega računa", - "cantFindAnyAccount": "Ni mogoče najti nobenega računa, povezanega s tem Ledgerjem. Ustvarite nov NEAR račun ", - "orConnectAnAnotherLedger": "ali povežite drug Ledger..", - "connecting": "Povezovanje", - "ofAccounts": "računov", - "failedToAutomatically": "ID-ja računa ni bilo mogoče samodejno najti. Zagotovite ga ročno:", - "overviewTheListOfAuthorized": "Oglejte si seznam pooblaščenih računov, dokončajte prijavo s klikom na spodnji gumb.", - "finish": "Končajte" - }, - "install": { - "youllNeedToInstall": "Morali ga boste namestiti", - "toContinueAfterInstalling": "nadaljevati. Po namestitvi", - "refreshThePage": "Osvežite stran.", - "open": "Odprite" - }, - "qr": { - "copiedToClipboard": "Kopirano v podložni mapi", - "failedToCopy": "Kopiranje v podložni mapi ni uspelo", - "scanWithYourMobile": "Skenirajte s svojo mobilno napravo", - "copyToClipboard": " Kopirajte v podložni mapi", - "preferTheOfficial": "Preferirajte uradno pogovorno okno", - "open": "Odprite" - }, - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica", - "instant-link": "Takojšnja denarnica" - }, - "exportAccounts": { - "chooseAWallet": "Izberite denarnico", - "transferYourAccounts": "Prenesite svoje račune", - "selectAWallet": "Izberite denarnico, ki ustreza vašim potrebam in podpira vaše povezane račune.", - "selectYourAccounts": "Izberite vaši računi", - "afterDecide": "Ko se odločite za denarnico, lahko izberete, katere račune želite prenesti.", - "disclaimer": "Ne boste mogli prenesti Računov, ki nikoli niso bili financirani ali uporabljeni na NEAR.", - "warning": "trenutno ne podpira izvoza računa. Izberite drugo denarnico", - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica" - }, - "selectAccounts": { - "title": "Izberite računi za prenos.", - "button": "Pridobite geslo", - "deselectAll": "Prekliči izbiro vseh", - "selectAll": "Izberi vse", - "unavailable": "Prenos ni na voljo", - "error": "Račun ne obstaja", - "warningLedger": "Potrebna je podpora za Ledger", - "noBalance": "Račun ni financiran" - }, - "getPassphrase": { - "title": "Kopiraj začasno geslo", - "desc": "To geslo boste morali vnesti, ko boste začeli izvažati svoje račune v drugo denarnico.", - "button": "Nadaljujte", - "label": "Kliknite za kopiranje", - "checkLabel": "Geslo sem kopiral ali zapisal" - }, - "complete": { - "title": "Dokončajte prenos", - "descOne": "Zdaj boste preusmerjeni v denarnico, ki ste jo izbrali za dokončanje prenosa.", - "descTwo": "Ko je uvozni del postopka končan iz izbrane denarnice, pritisnite gumb za dokončanje postopka prenosa.", - "button": "Končajte" - } - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/sr.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/sr.json deleted file mode 100644 index 094c75982..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/sr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Повежите свој новчаник!", - "whatIsAWallet": "Шта је новчаник?", - "secureAndManage": "Обезбедите и управљајте својом дигиталном имовином.", - "safelyStore": "Безбедно чувајте и преносите своје криптовалуте и NFT.", - "logInToAny": "Пријавите се на било коју апликацију NEAR", - "noNeedToCreate": "Нема потребе да креирате нове налоге или акредитиве. Повежите новчаник и спремни стe!", - "getAWallet": "Набавите новчаник", - "useAWallet": "Користите новчаник да обезбедите и управљате својим NEAR средствима и да се пријавите у било коју апликацију NEAR без потребе за корисничким именима и лозинкама.", - "connectionFailed": "Веза није успостављена.", - "connectionSuccessful": "Веза је успела.", - "rememberWallet": "Запамти новчанике", - "connected": "Повезан.", - "connectingTo": "Повезивање на", - "connectingMessage": { - "injected": "Потврдите везу у спољном прозору", - "browser": "Након преусмеравања, потврдите везу у новчанику", - "hardware": "Потврдите везу са хладним новчаником", - "bridge": "Потврдите везу са новчаником" - } - }, - "ledger": { - "connectWithLedger": "Повежите се са Ledger", - "makeSureYourLedger": "Уверите се да је ваш Ledger безбедно повезан и да је апликација NEAR отворена на вашем уређају", - "continue": "Настави", - "specifyHDPath": "Наведите ХД путању", - "enterYourPreferredHDPath": "Унесите жељену жељену ХД путању, а затим скенирајте све активне налоге.", - "scan": "Скенирајте", - "retry": "Покушај поново", - "ledgerIsNotAvailable": "Ledger није доступан.", - "accessDeniedToUseLedgerDevice": "Приступ је одбијен за коришћење Ledger уређаја", - "noAccountsFound": "Наlози нису пронађени", - "selectYourAccounts": "Изаберите Ваш наlог", - "connecting1Account": "Повезати 1 наlог", - "cantFindAnyAccount": "Није могуће пронаћи ниједан наlог повезан са овим Ledger-ом. Направите нови NEAR наlог", - "orConnectAnAnotherLedger": "или повежите други Ledger.", - "connecting": "Повезивање", - "ofAccounts": "наlога", - "failedToAutomatically": "Аутоматско проналажење ID-a наlога није успело. Наведите га ручно:", - "overviewTheListOfAuthorized": "Прегледајте листу овлашћених рачуна, завршите пријаву кликом на дугме испод.", - "finish": "Заврши" - }, - "install": { - "youllNeedToInstall": "Мораћете да инсталирате", - "toContinueAfterInstalling": "за наставак. Након инсталирања", - "refreshThePage": "поново учитати страницу.", - "open": "Отвори" - }, - "qr": { - "copiedToClipboard": "Копирано у међуспремник", - "failedToCopy": "Копирање у међуспремник није успело", - "scanWithYourMobile": "Скенирајте помоћу мобилног уређаја", - "copyToClipboard": " Копирај у међуспремник", - "preferTheOfficial": "Преферирате званични дијалог од", - "open": "Отвори" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник", - "instant-link": "Инстант новчаник" - }, - "exportAccounts": { - "chooseAWallet": "Изаберите новчаник", - "transferYourAccounts": "Пренесите своје налоге", - "selectAWallet": "Изаберите новчаник који одговара вашим потребама и који подржава ваше повезане налоге.", - "selectYourAccounts": "Изаберите ваше налоге", - "afterDecide": "Након што се одлучите за новчаник, можете изабрати које налоге желите да пренесете.", - "disclaimer": "Нећете моћи да пренесете налоге који никада нису били финансирани или коришћени на NEAR.", - "warning": "тренутно не подржава извоз налога. Изаберите други новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник" - }, - "selectAccounts": { - "title": "Изаберите налоге за пренос.", - "button": "Добијте приступну фразу", - "deselectAll": "Поништите избор", - "selectAll": "Изаберите све", - "unavailable": "Трансфер није доступан", - "error": "Налог не постоји", - "warningLedger": "Потребна подршка за Ledger", - "noBalance": "Налог није финансиран" - }, - "getPassphrase": { - "title": "Копирај привремену лозинку", - "desc": "Мораћете да унесете ову лозинку када почнете да извозите своје налоге у други новчаник.", - "button": "Наставите", - "label": "Кликните да бисте копирали", - "checkLabel": "Копирао сам или записао лозинку" - }, - "complete": { - "title": "Довршите трансфер", - "descOne": "Сада ћете бити преусмерени на новчаник који сте изабрали да завршите трансфер.", - "descTwo": "Када се део процеса увоза заврши из изабраног новчаника, притисните дугме да завршите процес преноса.", - "button": "Завршите" - } - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/vi.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/vi.json deleted file mode 100644 index 025d762e7..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/vi.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Kết nối ví của bạn", - "whatIsAWallet": "Ví là gì?", - "secureAndManage": "Bảo mật & Quản lý tài sản số của bạn", - "safelyStore": "Lưu trữ và chuyển tiền điện tử và NFT của bạn một cách an toàn.", - "logInToAny": "Đăng nhập vào bất kỳ ứng dụng trên NEAR", - "noNeedToCreate": "Không cần tạo tài khoản hoặc thông tin đăng nhập mới. Kết nối ví của bạn và bắt đầu!", - "getAWallet": "Tạo Ví", - "useAWallet": "Sử dụng ví để bảo mật và quản lý tài sản trên NEAR của bạn và đăng nhập vào bất kỳ ứng dụng NEAR nào, không cần tên người dùng và mật khẩu.", - "connectionFailed": "Kết nối thất bại", - "connectionSuccessful": "Kết nối thành công", - "rememberWallet": "Ghi nhớ lựa chọn ví", - "connected": "Đã kết nối", - "connectingTo": "Đang kết nối tới", - "connectingMessage": { - "injected": "Xác nhận kết nối trong cửa sổ tiện ích mở rộng", - "browser": "Xác nhận kết nối trong ví sau khi được chuyển hướng", - "hardware": "Xác nhận kết nối với ví lạnh", - "bridge": "Xác nhận kết nối trong ví" - } - }, - "ledger": { - "connectWithLedger": "Kết nối ví Ledger", - "makeSureYourLedger": "Đảm bảo Ledger của bạn được kết nối an toàn và ứng dụng NEAR đang mở sẵn trên thiết bị", - "continue": "Tiếp tục", - "specifyHDPath": "Chỉ định HD Path", - "enterYourPreferredHDPath": "Nhập HD Path của bạn, sau đó quét tìm các tài khoản hoạt động", - "scan": "Quét", - "retry": "Thử lại", - "ledgerIsNotAvailable": "Ledger không khả dụng", - "accessDeniedToUseLedgerDevice": "Truy cập Ledger bị từ chối", - "noAccountsFound": "Không tìm thấy tài khoản", - "selectYourAccounts": "Chọn tài khoản của bạn", - "connecting1Account": "Đang kết nối 1 tài khoản", - "cantFindAnyAccount": "Không thể tìm thấy bất kỳ tài khoản nào được liên kết với Ledger này. Vui lòng tạo một tài khoản NEAR mới", - "orConnectAnAnotherLedger": "hoặc kết nối với ví Ledger khác.", - "connecting": "Đang kết nối", - "ofAccounts": "của tài khoản", - "failedToAutomatically": "Không thể tự động tìm id tài khoản. Nhập thủ công:", - "overviewTheListOfAuthorized": "Tổng quan danh sách các tài khoản được ủy quyền, hoàn tất đăng nhập bằng cách bấm vào nút bên dưới.", - "finish": "Hoàn thành" - }, - "install": { - "youllNeedToInstall": "Bạn sẽ cần cài đặt", - "toContinueAfterInstalling": "để bắt đầu. Sau khi cài đặt xong", - "refreshThePage": "Tải lại trang.", - "open": "Mở" - }, - "qr": { - "copiedToClipboard": "Đã sao chép vào bảng ghi tạm", - "failedToCopy": "Sao chép vào bảng ghi tạm thất bại", - "scanWithYourMobile": "Quét với điện thoại của bạn", - "copyToClipboard": " Sao chép vào bảng ghi tạm", - "preferTheOfficial": "Dialogue chính thức của", - "open": "Mở" - }, - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile", - "instant-link": "Ví tức thì" - }, - "exportAccounts": { - "chooseAWallet": "Chọn ví", - "transferYourAccounts": "Chuyển tài khoản", - "selectAWallet": "Chọn ví phù hợp với nhu cầu của bạn, ví được chọn cần hỗ trợ các tài khoản đang sử dụng.", - "selectYourAccounts": "Chọn tài khoản", - "afterDecide": "Sau khi chọn được tài khoản bạn có chuyển.", - "disclaimer": "Bạn không thể chuyển tài khoản nếu tài khoản đó chưa được nhận tiền hoặc chưa phát sinh giao dịch trên NEAR.", - "warning": "không hỗ trợ xuất tài khoản. Vui lòng chọn ví khác.", - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile" - }, - "selectAccounts": { - "title": "Chọn tài khoản để chuyển", - "button": "Lấy cụm mật khẩu", - "deselectAll": "Bỏ chọn tất cả", - "selectAll": "Chọn tất cả", - "unavailable": "Chuyển không khả dụng", - "error": "Tài khoản không tồn tại", - "warningLedger": "Yêu cầu hỗ trợ Ledger", - "noBalance": "Tài khoản trống" - }, - "getPassphrase": { - "title": "Sao chép mật khẩu tạm thời", - "desc": "Bạn sẽ cần nhập mật khẩu khi bắt đầu xuất các khoản tới ví khác.", - "button": "Tiếp tục", - "label": "Bấm để sao chép", - "checkLabel": "Tôi đã chép hoặc ghi lại mật khẩu" - }, - "complete": { - "title": "Hoàn thành chuyển", - "descOne": "Bạn sẽ được chuyển hướng tới tài khoản đã chọn để hoàn tất quá trình.", - "descTwo": "Sau khi nhập, nhấn nút để hoàn tất quy trình chuyển.", - "button": "Hoàn thành" - } - } - }, - "component": { - "clickToCopy": { - "label": "Đã sao chép", - "tooltip": "Bấm để sao chép" - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/locale/zh.json b/packages/my-near-wallet/dist/esm/core/src/lib/locale/zh.json deleted file mode 100644 index 2f363c7b1..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/locale/zh.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "连接你的钱包", - "whatIsAWallet": "什么是钱包?", - "secureAndManage": "保护和管理你的数字资产", - "safelyStore": "安全存储和转移你的加密货币和NFT", - "logInToAny": "登录任何 NEAR 应用", - "noNeedToCreate": "不需要创建新账户或密码。连接你的钱包,即可开始使用!", - "getAWallet": "获取新账户", - "useAWallet": "使用钱包来保护和管理你的 NEAR 资产,无需用户名和密码即可登录任何 NEAR 应用", - "connectionFailed": "连接失败", - "connectionSuccessful": "连接成功", - "rememberWallet": "记住钱包选择", - "connected": "已连接", - "connectingTo": "正在连接" - }, - "ledger": { - "connectWithLedger": "连接 Ledger", - "makeSureYourLedger": "确保你的 Ledger 已经安全连接,并且 NEAR 应用已经在你设备上打开", - "continue": "继续", - "specifyHDPath": "指定 HD 路径", - "enterYourPreferredHDPath": "输入你偏好的 HD 路径,然后为任意活跃账户扫码", - "scan": "扫码", - "retry": "重试", - "ledgerIsNotAvailable": "Ledger 不可用", - "accessDeniedToUseLedgerDevice": "访问 Ledger 设备被拒绝", - "noAccountsFound": "没有找到账户", - "selectYourAccounts": "选择你的账户", - "connecting1Account": "正在连接1个账户", - "cantFindAnyAccount": "没有找到任何与这个 Ledger 相关联的账户。请创建新账户于", - "orConnectAnAnotherLedger.": "或连接另一个 Ledger", - "connecting": "正在连接", - "ofAccounts": "个账户", - "failedToAutomatically": "无法自动找到账户ID,请主动提供:", - "overviewTheListOfAuthorized": "请查看已授权的账户列表,点击以下按钮完成登录", - "finish": "完成" - }, - "install": { - "youllNeedToInstall": "你将需要安装", - "toContinueAfterInstalling": "以继续。安装完", - "refreshThePage": "请刷新页面", - "open": "打开" - }, - "qr": { - "copiedToClipboard": "复制到了剪贴板", - "failedToCopy": "复制到剪贴板失败", - "scanWithYourMobile": "用你的移动设备扫码", - "copyToClipboard": " 复制到剪贴板", - "preferTheOfficial": "希望使用官方对话框于", - "open": "打开" - }, - "walletTypes": { - "hardware": "硬件钱包", - "browser": "浏览器钱包", - "injected": "钱包扩展", - "bridge": "桥接钱包", - "mobile": "移动钱包", - "instant-link": "即时钱包" - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/options.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/options.d.ts deleted file mode 100644 index bc6d1111b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/options.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { WalletSelectorParams } from "./wallet-selector.types"; -import type { Options, Network, NetworkId } from "./options.types"; -export declare const getNetworkPreset: (networkId: NetworkId, fallbackRpcUrls?: Array) => Network; -export declare const resolveNetwork: (network: NetworkId | Network) => Network; -export declare const resolveOptions: (params: WalletSelectorParams) => { - options: Options; - storage: import("./services").StorageService; -}; -//# sourceMappingURL=options.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/options.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/options.d.ts.map deleted file mode 100644 index e8ce7bf80..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/options.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGnE,eAAO,MAAM,gBAAgB,cAChB,SAAS,oBACF,KAAK,CAAC,MAAM,CAAC,KAC9B,OAqBF,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,SAAS,GAAG,OAAO,KAAG,OAE7D,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,oBAAoB;;;CAc1D,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/options.js b/packages/my-near-wallet/dist/esm/core/src/lib/options.js deleted file mode 100644 index fa6b65f26..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/options.js +++ /dev/null @@ -1,40 +0,0 @@ -import { WebStorageService } from "./services"; -export const getNetworkPreset = (networkId, fallbackRpcUrls) => { - switch (networkId) { - case "mainnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.mainnet.near.org", - helperUrl: "https://helper.mainnet.near.org", - explorerUrl: "https://nearblocks.io", - indexerUrl: "https://api.kitwallet.app", - }; - case "testnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.testnet.near.org", - helperUrl: "https://helper.testnet.near.org", - explorerUrl: "https://testnet.nearblocks.io", - indexerUrl: "https://testnet-api.kitwallet.app", - }; - default: - throw Error(`Failed to find config for: '${networkId}'`); - } -}; -export const resolveNetwork = (network) => { - return typeof network === "string" ? getNetworkPreset(network) : network; -}; -export const resolveOptions = (params) => { - const options = { - languageCode: params.languageCode || undefined, - network: resolveNetwork(params.network), - debug: params.debug || false, - optimizeWalletOrder: params.optimizeWalletOrder === false ? false : true, - randomizeWalletOrder: params.randomizeWalletOrder || false, - relayerUrl: params.relayerUrl || undefined, - }; - return { - options, - storage: params.storage || new WebStorageService(), - }; -}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/options.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/options.types.d.ts deleted file mode 100644 index 45a8b9888..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/options.types.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { SupportedLanguage } from "./translate/translate"; -export type NetworkId = "mainnet" | "testnet"; -export interface Network { - /** - * Network ID (e.g. `testnet`). - */ - networkId: string; - /** - * URL for RPC requests. - */ - nodeUrl: string; - /** - * URL for creating accounts. - */ - helperUrl: string; - /** - * URL for the NEAR explorer. - */ - explorerUrl: string; - /** - * URL for the NEAR indexer. - */ - indexerUrl: string; -} -export interface Options { - /** - * ISO 639-1 two-letter language code. - */ - languageCode: SupportedLanguage | undefined; - /** - * Resolved network configuration. - */ - network: Network; - /** - * Whether internal logging is enabled. - */ - debug: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder: boolean; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl: string | undefined; -} -//# sourceMappingURL=options.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/options.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/options.types.d.ts.map deleted file mode 100644 index 663fb6879..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/options.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/options.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/options.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/options.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts deleted file mode 100644 index 00a0b6840..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { EventEmitterService, Subscription } from "./event-emitter.types"; -export declare class EventEmitter> implements EventEmitterService { - private emitter; - on(eventName: Event, callback: (event: Events[Event]) => void): Subscription; - off(eventName: Event, callback: (event: Events[Event]) => void): void; - emit(eventName: Event, event: Events[Event]): void; -} -//# sourceMappingURL=event-emitter.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map deleted file mode 100644 index 80b80c736..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/E,qBAAa,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC9D,YAAW,mBAAmB,CAAC,MAAM,CAAC;IAEtC,OAAO,CAAC,OAAO,CAAuB;IAEtC,EAAE,CAAC,KAAK,SAAS,MAAM,MAAM,EAC3B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,GACvC,YAAY;IAQf,GAAG,CAAC,KAAK,SAAS,MAAM,MAAM,EAC5B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;IAK1C,IAAI,CAAC,KAAK,SAAS,MAAM,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;CAGxE"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.js deleted file mode 100644 index 304200d75..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.js +++ /dev/null @@ -1,16 +0,0 @@ -import { EventEmitter as NEventEmitter } from "events"; -export class EventEmitter { - emitter = new NEventEmitter(); - on(eventName, callback) { - this.emitter.on(eventName, callback); - return { - remove: () => this.emitter.off(eventName, callback), - }; - } - off(eventName, callback) { - this.emitter.off(eventName, callback); - } - emit(eventName, event) { - this.emitter.emit(eventName, event); - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts deleted file mode 100644 index 3a25067e0..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface Subscription { - remove: () => void; -} -export interface EventEmitterService> { - on(eventName: EventName, callback: (event: Events[EventName]) => void): Subscription; - off(eventName: EventName, callback: (event: Events[EventName]) => void): void; - emit(eventName: EventName, event: Events[EventName]): void; -} -//# sourceMappingURL=event-emitter.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map deleted file mode 100644 index 6e4178d43..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzE,EAAE,CAAC,SAAS,SAAS,MAAM,MAAM,EAC/B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,YAAY,CAAC;IAEhB,GAAG,CAAC,SAAS,SAAS,MAAM,MAAM,EAChC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,IAAI,CAAC;IAER,IAAI,CAAC,SAAS,SAAS,MAAM,MAAM,EACjC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,GACvB,IAAI,CAAC;CACT"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/index.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/index.d.ts deleted file mode 100644 index 7f06b3d8e..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * from "./provider/provider.service"; -export * from "./provider/provider.service.types"; -export * from "./storage/storage.service.types"; -export * from "./storage/json-storage.service.types"; -export * from "./storage/json-storage.service"; -export * from "./storage/web-storage.service"; -export * from "./logger/logger.service"; -export * from "./logger/logger.service.types"; -export * from "./wallet-modules/wallet-modules.service"; -export * from "./event-emitter/event-emitter.service"; -export * from "./event-emitter/event-emitter.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/index.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/index.d.ts.map deleted file mode 100644 index f34146ce5..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/index.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/index.js deleted file mode 100644 index 5301a0f98..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/index.js +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./provider/provider.service"; -export * from "./provider/provider.service.types"; -export * from "./storage/storage.service.types"; -export * from "./storage/json-storage.service.types"; -export * from "./storage/json-storage.service"; -export * from "./storage/web-storage.service"; -export * from "./logger/logger.service"; -export * from "./logger/logger.service.types"; -export * from "./wallet-modules/wallet-modules.service"; -export * from "./event-emitter/event-emitter.service"; -export * from "./event-emitter/event-emitter.types"; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.d.ts deleted file mode 100644 index 305cafb84..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { LoggerService } from "./logger.service.types"; -export declare class Logger implements LoggerService { - static debug: boolean; - namespace?: string; - constructor(namespace?: string); - private emit; - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -export declare const logger: Logger; -//# sourceMappingURL=logger.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.d.ts.map deleted file mode 100644 index 3819238b2..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,qBAAa,MAAO,YAAW,aAAa;IAC1C,MAAM,CAAC,KAAK,UAAS;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEP,SAAS,CAAC,EAAE,MAAM;IAI9B,OAAO,CAAC,IAAI;IAgBZ,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI7B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;CAGhC;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.js deleted file mode 100644 index d1ca57bc4..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.js +++ /dev/null @@ -1,32 +0,0 @@ -export class Logger { - static debug = false; - namespace; - constructor(namespace) { - this.namespace = namespace; - } - emit(method, ...params) { - if (!Logger.debug) { - return; - } - if (this.namespace && method !== "error") { - // eslint-disable-next-line no-console - console[method](this.namespace, ...params); - return; - } - // eslint-disable-next-line no-console - console[method](...params); - } - log(...params) { - this.emit("log", ...params); - } - info(...params) { - this.emit("info", ...params); - } - warn(...params) { - this.emit("warn", ...params); - } - error(...params) { - this.emit("error", ...params); - } -} -export const logger = new Logger(); diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts deleted file mode 100644 index 8c891f4f2..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface LoggerService { - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -//# sourceMappingURL=logger.service.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts.map deleted file mode 100644 index 0160d352c..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/logger/logger.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.d.ts deleted file mode 100644 index 07f2954c5..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { AccessKeyView, BlockReference, QueryResponseKind, RpcQueryRequest } from "@near-js/types"; -import type { ProviderService, QueryParams, ViewAccessKeyParams } from "./provider.service.types"; -import type { SignedTransaction } from "@near-js/transactions"; -export declare class Provider implements ProviderService { - private provider; - constructor(urls: Array); - query(paramsOrPath: QueryParams | RpcQueryRequest | string, data?: string): Promise; - viewAccessKey({ accountId, publicKey }: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; - private urlsToProviders; -} -//# sourceMappingURL=provider.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.d.ts.map deleted file mode 100644 index 02d2f07b3..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,qBAAa,QAAS,YAAW,eAAe;IAW9C,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;IAM/B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,EACpD,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC;IAQpB,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,mBAAmB;IAS3D,KAAK,CAAC,SAAS,EAAE,cAAc;IAI/B,eAAe,CAAC,iBAAiB,EAAE,iBAAiB;IAIpD,OAAO,CAAC,eAAe;CAKxB"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.js deleted file mode 100644 index bfcf13b62..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.js +++ /dev/null @@ -1,43 +0,0 @@ -import { JsonRpcProvider, FailoverRpcProvider } from "@near-js/providers"; -export class Provider { - /* - private provider: JsonRpcProvider; - - constructor(urls: Array) { - this.provider = new JsonRpcProvider( - this.urlsToProviders(urls) - ); - } - */ - provider; - constructor(urls) { - this.provider = new FailoverRpcProvider(this.urlsToProviders(urls)); - } - query(paramsOrPath, data) { - if (typeof paramsOrPath === "string" && data !== undefined) { - return this.provider.query(paramsOrPath, data); - } - else { - return this.provider.query(paramsOrPath); - } - } - viewAccessKey({ accountId, publicKey }) { - return this.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountId, - public_key: publicKey, - }); - } - block(reference) { - return this.provider.block(reference); - } - sendTransaction(signedTransaction) { - return this.provider.sendTransaction(signedTransaction); - } - urlsToProviders(urls) { - return urls && urls.length > 0 - ? urls.map((url) => new JsonRpcProvider({ url })) - : []; - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts deleted file mode 100644 index cba6ca3cd..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { AccessKeyView, BlockReference, BlockResult, QueryResponseKind, FinalExecutionOutcome } from "@near-js/types"; -import type { SignedTransaction } from "@near-js/transactions"; -export type QueryParams = { - [key in string]: unknown; -}; -export interface ViewAccessKeyParams { - accountId: string; - publicKey: string; -} -export interface ProviderService { - query(params: QueryParams): Promise; - viewAccessKey(params: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; -} -//# sourceMappingURL=provider.service.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts.map deleted file mode 100644 index 94a2e9755..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG;KAAG,GAAG,IAAI,MAAM,GAAG,OAAO;CAAE,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,eAAe,CACb,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/provider/provider.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts deleted file mode 100644 index 8e5c8063a..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -import type { JsonStorageService } from "./json-storage.service.types"; -export declare class JsonStorage implements JsonStorageService { - storage: StorageService; - namespace: string; - constructor(storage: StorageService, namespace: string | Array); - private resolveKey; - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts.map deleted file mode 100644 index 9cf929933..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,qBAAa,WAAY,YAAW,kBAAkB;IACpD,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;gBAEN,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAOtE,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAMlD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.js deleted file mode 100644 index a9175d614..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.js +++ /dev/null @@ -1,25 +0,0 @@ -const KEY_DELIMITER = ":"; -export class JsonStorage { - storage; - namespace; - constructor(storage, namespace) { - this.storage = storage; - this.namespace = Array.isArray(namespace) - ? namespace.join(KEY_DELIMITER) - : namespace; - } - resolveKey(key) { - return [this.namespace, key].join(KEY_DELIMITER); - } - getItem(key) { - return this.storage.getItem(this.resolveKey(key)).then((item) => { - return typeof item === "string" ? JSON.parse(item) : null; - }); - } - setItem(key, value) { - return this.storage.setItem(this.resolveKey(key), JSON.stringify(value)); - } - removeItem(key) { - return this.storage.removeItem(this.resolveKey(key)); - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts deleted file mode 100644 index 0cfff07a0..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface JsonStorageService { - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts.map deleted file mode 100644 index 00ce8794a..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/json-storage.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts deleted file mode 100644 index 64ff2e6d3..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts.map deleted file mode 100644 index afbf46e25..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/storage.service.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/storage.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/storage.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts deleted file mode 100644 index f13fefc9a..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -export declare class WebStorageService implements StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=web-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts.map deleted file mode 100644 index fbed55367..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/web-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/web-storage.service.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/web-storage.service.js deleted file mode 100644 index 3b6ee32f5..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/storage/web-storage.service.js +++ /dev/null @@ -1,20 +0,0 @@ -export class WebStorageService { - getItem(key) { - return new Promise((resolve) => { - const value = localStorage.getItem(key); - resolve(value); - }); - } - setItem(key, value) { - return new Promise((resolve) => { - localStorage.setItem(key, value); - resolve(); - }); - } - removeItem(key) { - return new Promise((resolve) => { - localStorage.removeItem(key); - resolve(); - }); - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts deleted file mode 100644 index 28c9880c2..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { WalletModulesParams } from "./wallet-modules.service.types"; -import type { Wallet } from "../../wallet"; -export declare class WalletModules { - private factories; - private storage; - private options; - private store; - private emitter; - private provider; - private modules; - private instances; - constructor({ factories, storage, options, store, emitter, provider, }: WalletModulesParams); - private validateWallet; - private resolveStorageState; - private setWalletAsRecentlySignedIn; - private signOutWallet; - private onWalletSignedIn; - private onWalletSignedOut; - private setupWalletEmitter; - private validateSignMessageParams; - private decorateWallet; - private setupInstance; - private getModule; - getWallet(id: string | null): Promise; - setup(): Promise; -} -//# sourceMappingURL=wallet-modules.service.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map deleted file mode 100644 index 94b2e90a9..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAEV,MAAM,EAOP,MAAM,cAAc,CAAC;AAmBtB,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAA6C;gBAElD,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,mBAAmB;YAYR,cAAc;YAkBd,mBAAmB;YAyEnB,2BAA2B;YAuB3B,aAAa;YAYb,gBAAgB;IAkD9B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,cAAc;YAsCR,aAAa;IA6B3B,OAAO,CAAC,SAAS;IAIX,SAAS,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAoB9D,KAAK;CAkFZ"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.js deleted file mode 100644 index d5aa498d4..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.js +++ /dev/null @@ -1,321 +0,0 @@ -import { EventEmitter } from "../event-emitter/event-emitter.service"; -import { Logger, logger } from "../logger/logger.service"; -import { RECENTLY_SIGNED_IN_WALLETS, PACKAGE_NAME, PENDING_CONTRACT, PENDING_SELECTED_WALLET_ID, REMEMBER_RECENT_WALLETS, REMEMBER_RECENT_WALLETS_STATE, } from "../../constants"; -import { JsonStorage } from "../storage/json-storage.service"; -export class WalletModules { - factories; - storage; - options; - store; - emitter; - provider; - modules; - instances; - constructor({ factories, storage, options, store, emitter, provider, }) { - this.factories = factories; - this.storage = storage; - this.options = options; - this.store = store; - this.emitter = emitter; - this.provider = provider; - this.modules = []; - this.instances = {}; - } - async validateWallet(id) { - let accounts = []; - const wallet = await this.getWallet(id); - if (wallet) { - // Ensure our persistent state aligns with the selected wallet. - // For example a wallet is selected, but it returns no accounts (not signed in). - accounts = await wallet.getAccounts().catch((err) => { - logger.log(`Failed to validate ${wallet.id} during setup`); - logger.error(err); - return []; - }); - } - return accounts; - } - async resolveStorageState() { - const jsonStorage = new JsonStorage(this.storage, PACKAGE_NAME); - const pendingSelectedWalletId = await jsonStorage.getItem(PENDING_SELECTED_WALLET_ID); - const pendingContract = await jsonStorage.getItem(PENDING_CONTRACT); - const rememberRecentWallets = await jsonStorage.getItem(REMEMBER_RECENT_WALLETS); - if (pendingSelectedWalletId && pendingContract) { - const accounts = await this.validateWallet(pendingSelectedWalletId); - await jsonStorage.removeItem(PENDING_SELECTED_WALLET_ID); - await jsonStorage.removeItem(PENDING_CONTRACT); - if (accounts.length) { - const { selectedWalletId } = this.store.getState(); - const selectedWallet = await this.getWallet(selectedWalletId); - if (selectedWallet && pendingSelectedWalletId !== selectedWalletId) { - await selectedWallet.signOut().catch((err) => { - logger.log("Failed to sign out existing wallet"); - logger.error(err); - }); - } - let recentlySignedInWalletsFromPending = []; - if (rememberRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWalletsFromPending = - await this.setWalletAsRecentlySignedIn(pendingSelectedWalletId); - } - return { - accounts, - contract: pendingContract, - selectedWalletId: pendingSelectedWalletId, - recentlySignedInWallets: recentlySignedInWalletsFromPending, - rememberRecentWallets: rememberRecentWallets || REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - } - const { contract, selectedWalletId } = this.store.getState(); - const accounts = await this.validateWallet(selectedWalletId); - const recentlySignedInWallets = await jsonStorage.getItem(RECENTLY_SIGNED_IN_WALLETS); - if (!accounts.length) { - return { - accounts: [], - contract: null, - selectedWalletId: null, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - return { - accounts, - contract, - selectedWalletId, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - async setWalletAsRecentlySignedIn(walletId) { - const jsonStorage = new JsonStorage(this.storage, PACKAGE_NAME); - let recentlySignedInWallets = await jsonStorage.getItem(RECENTLY_SIGNED_IN_WALLETS); - if (!recentlySignedInWallets) { - recentlySignedInWallets = []; - } - if (!recentlySignedInWallets.includes(walletId)) { - recentlySignedInWallets.unshift(walletId); - recentlySignedInWallets = recentlySignedInWallets.slice(0, 5); - await jsonStorage.setItem(RECENTLY_SIGNED_IN_WALLETS, recentlySignedInWallets); - } - return recentlySignedInWallets; - } - async signOutWallet(walletId) { - const wallet = (await this.getWallet(walletId)); - await wallet.signOut().catch((err) => { - logger.log(`Failed to sign out ${wallet.id}`); - logger.error(err); - // At least clean up state on our side. - this.onWalletSignedOut(wallet.id); - }); - } - async onWalletSignedIn(walletId, { accounts, contractId, methodNames }) { - const { selectedWalletId, rememberRecentWallets } = this.store.getState(); - const jsonStorage = new JsonStorage(this.storage, PACKAGE_NAME); - const contract = { contractId, methodNames }; - if (!accounts.length) { - const module = this.getModule(walletId); - // We can't guarantee the user will actually sign in with browser wallets. - // Best we can do is set in storage and validate on init. - if (module.type === "browser") { - await jsonStorage.setItem(PENDING_SELECTED_WALLET_ID, walletId); - await jsonStorage.setItem(PENDING_CONTRACT, contract); - } - return; - } - if (selectedWalletId && selectedWalletId !== walletId) { - await this.signOutWallet(selectedWalletId); - } - let recentlySignedInWallets = []; - if (rememberRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWallets = await this.setWalletAsRecentlySignedIn(walletId); - } - this.store.dispatch({ - type: "WALLET_CONNECTED", - payload: { - walletId, - contract, - accounts, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - this.emitter.emit("signedIn", { - walletId, - contractId, - methodNames, - accounts, - }); - } - onWalletSignedOut(walletId) { - this.store.dispatch({ - type: "WALLET_DISCONNECTED", - payload: { walletId }, - }); - this.emitter.emit("signedOut", { walletId }); - } - setupWalletEmitter(module) { - const emitter = new EventEmitter(); - emitter.on("signedOut", () => { - this.onWalletSignedOut(module.id); - }); - emitter.on("signedIn", (event) => { - this.onWalletSignedIn(module.id, event); - }); - emitter.on("accountsChanged", async ({ accounts }) => { - this.emitter.emit("accountsChanged", { walletId: module.id, accounts }); - if (!accounts.length) { - return this.signOutWallet(module.id); - } - this.store.dispatch({ - type: "ACCOUNTS_CHANGED", - payload: { walletId: module.id, accounts }, - }); - }); - emitter.on("networkChanged", ({ networkId }) => { - this.emitter.emit("networkChanged", { walletId: module.id, networkId }); - }); - emitter.on("uriChanged", ({ uri }) => { - this.emitter.emit("uriChanged", { walletId: module.id, uri }); - }); - return emitter; - } - validateSignMessageParams({ message, nonce, recipient, }) { - if (!message || message.trim() === "") { - throw new Error("Invalid message. It must be a non-empty string."); - } - if (!Buffer.isBuffer(nonce) || nonce.length !== 32) { - throw new Error("Invalid nonce. It must be a Buffer with a length of 32 bytes."); - } - if (!recipient || recipient.trim() === "") { - throw new Error("Invalid recipient. It must be a non-empty string."); - } - } - decorateWallet(wallet) { - const _signIn = wallet.signIn; - const _signOut = wallet.signOut; - const _signMessage = wallet.signMessage; - wallet.signIn = async (params) => { - const accounts = await _signIn(params); - const { contractId, methodNames = [] } = params; - await this.onWalletSignedIn(wallet.id, { - accounts, - contractId, - methodNames, - }); - return accounts; - }; - wallet.signOut = async () => { - await _signOut(); - this.onWalletSignedOut(wallet.id); - }; - wallet.signMessage = async (params) => { - if (_signMessage === undefined) { - throw Error(`The signMessage method is not supported by ${wallet.metadata.name}`); - } - this.validateSignMessageParams(params); - return await _signMessage(params); - }; - return wallet; - } - async setupInstance(module) { - if (!module.metadata.available) { - const message = module.type === "injected" ? "not installed" : "not available"; - throw Error(`${module.metadata.name} is ${message}`); - } - const wallet = { - id: module.id, - type: module.type, - metadata: module.metadata, - ...(await module.init({ - id: module.id, - type: module.type, - metadata: module.metadata, - options: this.options, - store: this.store.toReadOnly(), - provider: this.provider, - emitter: this.setupWalletEmitter(module), - logger: new Logger(module.id), - storage: new JsonStorage(this.storage, [PACKAGE_NAME, module.id]), - })), - }; - return this.decorateWallet(wallet); - } - getModule(id) { - return this.modules.find((x) => x.id === id); - } - async getWallet(id) { - const module = this.getModule(id); - if (!module) { - return null; - } - const { selectedWalletId } = this.store.getState(); - // If user uninstalled/removed a wallet which was previously signed in with - // best we can do is clean up state on our side. - if (!module.metadata.available && selectedWalletId) { - this.onWalletSignedOut(selectedWalletId); - return null; - } - return (await module.wallet()); - } - async setup() { - const modules = []; - for (let i = 0; i < this.factories.length; i += 1) { - const module = await this.factories[i]({ options: this.options }).catch((err) => { - logger.log("Failed to setup module"); - logger.error(err); - return null; - }); - // Filter out wallets that aren't available. - if (!module) { - continue; - } - // Skip duplicated module. - if (modules.some((x) => x.id === module.id)) { - continue; - } - modules.push({ - id: module.id, - type: module.type, - metadata: module.metadata, - wallet: async () => { - let instance = this.instances[module.id]; - if (instance) { - return instance; - } - instance = await this.setupInstance(module); - this.instances[module.id] = instance; - return instance; - }, - }); - } - this.modules = modules; - const { accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = await this.resolveStorageState(); - this.store.dispatch({ - type: "SETUP_WALLET_MODULES", - payload: { - modules, - accounts, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - for (let i = 0; i < this.modules.length; i++) { - if (this.modules[i].type !== "instant-link") { - continue; - } - const wallet = (await this.modules[i].wallet()); - if (!wallet.metadata.runOnStartup) { - continue; - } - try { - await wallet.signIn({ contractId: wallet.getContractId() }); - } - catch (err) { - logger.error("Failed to sign in to wallet. " + err); - } - } - } -} diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts deleted file mode 100644 index 339f296e7..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { WalletModuleFactory } from "../../wallet"; -import type { StorageService } from "../storage/storage.service.types"; -import type { Options } from "../../options.types"; -import type { Store } from "../../store.types"; -import type { EventEmitter } from "../event-emitter/event-emitter.service"; -import type { WalletSelectorEvents } from "../../wallet-selector.types"; -import type { ProviderService } from "../provider/provider.service.types"; -export interface WalletModulesParams { - factories: Array; - storage: StorageService; - options: Options; - store: Store; - emitter: EventEmitter; - provider: ProviderService; -} -//# sourceMappingURL=wallet-modules.service.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map deleted file mode 100644 index 231a8d586..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC5C,QAAQ,EAAE,eAAe,CAAC;CAC3B"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/store.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/store.d.ts deleted file mode 100644 index dd8b9c03c..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/store.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { StorageService } from "./services"; -import type { Store } from "./store.types"; -export declare const createStore: (storage: StorageService) => Promise; -//# sourceMappingURL=store.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/store.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/store.d.ts.map deleted file mode 100644 index d1628d160..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/store.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EACV,KAAK,EAGN,MAAM,eAAe,CAAC;AA+JvB,eAAO,MAAM,WAAW,YAAmB,cAAc,KAAG,OAAO,CAAC,KAAK,CAgExE,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/store.js b/packages/my-near-wallet/dist/esm/core/src/lib/store.js deleted file mode 100644 index 32dc79078..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/store.js +++ /dev/null @@ -1,154 +0,0 @@ -import { Subject, BehaviorSubject, scan } from "rxjs"; -import { logger, JsonStorage } from "./services"; -import { PACKAGE_NAME, CONTRACT, SELECTED_WALLET_ID, RECENTLY_SIGNED_IN_WALLETS, REMEMBER_RECENT_WALLETS, REMEMBER_RECENT_WALLETS_STATE, } from "./constants"; -const reducer = (state, action) => { - logger.log("Store Action", action); - switch (action.type) { - case "SETUP_WALLET_MODULES": { - const { modules, accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = action.payload; - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === 0, - }; - }); - return { - ...state, - modules, - accounts: accountStates, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }; - } - case "WALLET_CONNECTED": { - const { walletId, contract, accounts, recentlySignedInWallets } = action.payload; - if (!accounts.length) { - return state; - } - const activeAccountIndex = state.accounts.findIndex((account) => account.active); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === (activeAccountIndex > -1 ? activeAccountIndex : 0), - }; - }); - return { - ...state, - contract, - accounts: accountStates, - selectedWalletId: walletId, - recentlySignedInWallets, - }; - } - case "WALLET_DISCONNECTED": { - const { walletId } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - return { - ...state, - contract: null, - accounts: [], - selectedWalletId: null, - }; - } - case "ACCOUNTS_CHANGED": { - const { walletId, accounts } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - const activeAccount = state.accounts.find((account) => account.active); - const isActiveAccountRemoved = !accounts.some((account) => account.accountId === activeAccount?.accountId); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: isActiveAccountRemoved - ? i === 0 - : account.accountId === activeAccount?.accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_ACTIVE_ACCOUNT": { - const { accountId } = action.payload; - const accountStates = state.accounts.map((account) => { - return { - ...account, - active: account.accountId === accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_REMEMBER_RECENT_WALLETS": { - const { selectedWalletId, recentlySignedInWallets } = state; - const { rememberRecentWallets } = action.payload; - const newRecentWallets = rememberRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? REMEMBER_RECENT_WALLETS_STATE.DISABLED - : REMEMBER_RECENT_WALLETS_STATE.ENABLED; - const newWalletsVal = [...recentlySignedInWallets]; - if (selectedWalletId && - !recentlySignedInWallets.includes(selectedWalletId)) { - newWalletsVal.push(selectedWalletId); - } - const newRecentlySignedInWallets = newRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? newWalletsVal - : []; - return { - ...state, - rememberRecentWallets: newRecentWallets, - recentlySignedInWallets: newRecentlySignedInWallets, - }; - } - default: - return state; - } -}; -export const createStore = async (storage) => { - const jsonStorage = new JsonStorage(storage, PACKAGE_NAME); - const initialState = { - modules: [], - accounts: [], - contract: await jsonStorage.getItem(CONTRACT), - selectedWalletId: await jsonStorage.getItem(SELECTED_WALLET_ID), - recentlySignedInWallets: (await jsonStorage.getItem(RECENTLY_SIGNED_IN_WALLETS)) || [], - rememberRecentWallets: (await jsonStorage.getItem(REMEMBER_RECENT_WALLETS)) || "", - }; - const state$ = new BehaviorSubject(initialState); - const actions$ = new Subject(); - actions$.pipe(scan(reducer, initialState)).subscribe(state$); - const syncStorage = async (prevState, state, storageKey, property) => { - if (state[property] === prevState[property]) { - return; - } - if (state[property]) { - await jsonStorage.setItem(storageKey, state[property]); - return; - } - await jsonStorage.removeItem(storageKey); - }; - let prevState = state$.getValue(); - state$.subscribe((state) => { - syncStorage(prevState, state, SELECTED_WALLET_ID, "selectedWalletId"); - syncStorage(prevState, state, CONTRACT, "contract"); - syncStorage(prevState, state, RECENTLY_SIGNED_IN_WALLETS, "recentlySignedInWallets"); - syncStorage(prevState, state, REMEMBER_RECENT_WALLETS, "rememberRecentWallets"); - prevState = state; - }); - return { - observable: state$, - getState: () => state$.getValue(), - dispatch: (action) => actions$.next(action), - toReadOnly: () => ({ - getState: () => state$.getValue(), - observable: state$.asObservable(), - }), - }; -}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/store.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/store.types.d.ts deleted file mode 100644 index 3d93e104e..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/store.types.d.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type { BehaviorSubject, Observable } from "rxjs"; -import type { Wallet, Account } from "./wallet"; -import type { SignMessageMethod } from "./wallet"; -export interface ContractState { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * List of methods that can only be invoked on the Smart Contract. Empty list means no restriction. - */ - methodNames: Array; -} -export type ModuleState = { - /** - * Unique identifier for the wallet. - */ - id: Variation["id"]; - /** - * Type of the wallet. - */ - type: Variation["type"]; - /** - * Meta information about the wallet. - */ - metadata: Variation["metadata"]; - /** - * Access functionality of the wallet. - */ - wallet(): Promise; -}; -export type AccountState = Account & { - /** - * Is account set as active. - */ - active: boolean; -}; -export interface WalletSelectorState { - /** - * Returns the signed in contract. - */ - contract: ContractState | null; - /** - * Returns the list of available modules. - */ - modules: Array; - /** - * Returns the list of signed in accounts. - */ - accounts: Array; - /** - * Returns the ID of the selected wallet. - */ - selectedWalletId: string | null; - /** - * Returns ID-s of 5 recently signed in wallets. - */ - recentlySignedInWallets: Array; - /** - * Returns a string, which indicates if the functionality about recentlySignedInWallets is active. - */ - rememberRecentWallets: string; -} -export type WalletSelectorAction = { - type: "SETUP_WALLET_MODULES"; - payload: { - modules: Array; - accounts: Array; - contract: ContractState | null; - selectedWalletId: string | null; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_CONNECTED"; - payload: { - walletId: string; - contract: ContractState; - accounts: Array; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_DISCONNECTED"; - payload: { - walletId: string; - }; -} | { - type: "ACCOUNTS_CHANGED"; - payload: { - walletId: string; - accounts: Array; - }; -} | { - type: "SET_ACTIVE_ACCOUNT"; - payload: { - accountId: string; - }; -} | { - type: "SET_REMEMBER_RECENT_WALLETS"; - payload: { - rememberRecentWallets: string; - }; -}; -export interface ReadOnlyStore { - /** - * Retrieve the current state. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - getState(): WalletSelectorState; - /** - * Subscribe to state changes using the (RxJS) Observable pattern. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - observable: Observable; -} -export interface Store { - observable: BehaviorSubject; - getState(): WalletSelectorState; - dispatch(action: WalletSelectorAction): void; - toReadOnly(): ReadOnlyStore; -} -//# sourceMappingURL=store.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/store.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/store.types.d.ts.map deleted file mode 100644 index 5854551fa..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/store.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/store.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/store.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/store.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/testUtils.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/testUtils.d.ts deleted file mode 100644 index ace50a39a..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/testUtils.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { WalletModuleFactory, Wallet } from "./wallet"; -import type { ProviderService, StorageService } from "./services"; -import type { Options } from "./options.types"; -export interface MockWalletDependencies { - options?: Options; - provider?: ProviderService; -} -export declare const mockWallet: (factory: WalletModuleFactory, deps?: MockWalletDependencies) => Promise<{ - wallet: Variation; - storage: StorageService; -}>; -//# sourceMappingURL=testUtils.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/testUtils.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/testUtils.d.ts.map deleted file mode 100644 index dbc9d8f55..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/testUtils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/testUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAmB/C,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,GAAU,SAAS,SAAS,MAAM,WAC9C,mBAAmB,SACrB,sBAAsB;;;EA4B9B,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/testUtils.js b/packages/my-near-wallet/dist/esm/core/src/lib/testUtils.js deleted file mode 100644 index 7e90e1ce8..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/testUtils.js +++ /dev/null @@ -1,103 +0,0 @@ -// Remove Jest import -// import * as jest from "jest"; -import { mock } from "jest-mock-extended"; -import { getNetworkPreset, resolveOptions } from "./options"; -import { createStore } from "./store"; -import { EventEmitter, WalletModules } from "./services"; -const createStorageMock = () => { - const _state = {}; - return { - getItem: async (key) => _state[key] || null, // Replace jest.fn() with plain async functions - setItem: async (key, value) => { - _state[key] = value; - }, - removeItem: async (key) => { - delete _state[key]; - }, - }; -}; -export const mockWallet = async (factory, deps) => { - const { options, storage } = resolveOptions({ - network: getNetworkPreset("testnet"), - storage: createStorageMock(), - modules: [factory], - ...deps?.options, - }); - const emitter = new EventEmitter(); - const store = await createStore(storage); - const walletModules = new WalletModules({ - factories: [factory], - storage, - options, - store, - emitter, - provider: deps?.provider || mock(), - }); - await walletModules.setup(); - const { modules } = store.getState(); - const wallet = await walletModules.getWallet(modules[0].id); - return { - wallet: wallet, - storage, - }; -}; -// import * as jest from "jest" -// import { mock } from "jest-mock-extended"; -// import type { WalletModuleFactory, Wallet } from "./wallet"; -// import type { ProviderService, StorageService } from "./services"; -// import type { WalletSelectorEvents } from "./wallet-selector.types"; -// import type { Options } from "./options.types"; -// import { getNetworkPreset, resolveOptions } from "./options"; -// import { createStore } from "./store"; -// import { EventEmitter, WalletModules } from "./services"; -// -// const createStorageMock = (): StorageService => { -// const _state: Record = {}; -// -// return { -// getItem: jest.fn(async (key) => _state[key] || null), -// setItem: jest.fn(async (key, value) => { -// _state[key] = value; -// }), -// removeItem: jest.fn(async (key) => { -// delete _state[key]; -// }), -// }; -// }; -// -// export interface MockWalletDependencies { -// options?: Options; -// provider?: ProviderService; -// } -// -// export const mockWallet = async ( -// factory: WalletModuleFactory, -// deps?: MockWalletDependencies -// ) => { -// const { options, storage } = resolveOptions({ -// network: getNetworkPreset("testnet"), -// storage: createStorageMock(), -// modules: [factory], -// ...deps?.options, -// }); -// const emitter = new EventEmitter(); -// const store = await createStore(storage); -// const walletModules = new WalletModules({ -// factories: [factory], -// storage, -// options, -// store, -// emitter, -// provider: deps?.provider || mock(), -// }); -// -// await walletModules.setup(); -// -// const { modules } = store.getState(); -// const wallet = await walletModules.getWallet(modules[0].id); -// -// return { -// wallet: wallet!, -// storage, -// }; -// }; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/translate/translate.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/translate/translate.d.ts deleted file mode 100644 index 8706ed5a9..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/translate/translate.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type SupportedLanguage = "en" | "es" | "zh" | "bg" | "ko" | "vi" | "hi" | "ar" | "hr" | "mk" | "sl" | "sr"; -export declare const allowOnlyLanguage: (langCode: SupportedLanguage | undefined) => void; -export declare const translate: (path: string) => string; -//# sourceMappingURL=translate.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/translate/translate.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/translate/translate.d.ts.map deleted file mode 100644 index b2ac2d105..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/translate/translate.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/translate/translate.ts"],"names":[],"mappings":"AA4CA,MAAM,MAAM,iBAAiB,GACzB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,eAAO,MAAM,iBAAiB,aAAc,iBAAiB,GAAG,SAAS,SAExE,CAAC;AAuBF,eAAO,MAAM,SAAS,SAAU,MAAM,WAarC,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/translate/translate.js b/packages/my-near-wallet/dist/esm/core/src/lib/translate/translate.js deleted file mode 100644 index 610c02a94..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/translate/translate.js +++ /dev/null @@ -1,73 +0,0 @@ -import en from "../locale/en.json"; -import es from "../locale/es.json"; -import zh from "../locale/zh.json"; -import bg from "../locale/bg.json"; -import ko from "../locale/ko.json"; -import vi from "../locale/vi.json"; -import hi from "../locale/hi.json"; -import ar from "../locale/ar.json"; -import hr from "../locale/hr.json"; -import mk from "../locale/mk.json"; -import sl from "../locale/sl.json"; -import sr from "../locale/sr.json"; -const getLanguage = (languageCode) => { - switch (languageCode) { - case "en": - return en; - case "es": - return es; - case "zh": - return zh; - case "bg": - return bg; - case "ko": - return ko; - case "vi": - return vi; - case "hi": - return hi; - case "ar": - return ar; - case "hr": - return hr; - case "mk": - return mk; - case "sl": - return sl; - case "sr": - return sr; - default: - return en; - } -}; -let chosenLang; -export const allowOnlyLanguage = (langCode) => { - chosenLang = langCode; -}; -// (i.e en-CA returns just en) -const shortenLanguageCode = (lang) => { - return lang.indexOf("-") !== -1 ? lang.split("-")[0] : lang.split("_")[0]; -}; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const findObjectPropByStringPath = (obj, prop) => { - if (!obj) { - return ""; - } - const _index = prop.indexOf("."); - if (_index > -1) { - const currentProp = prop.substring(0, _index); - const nextProp = prop.substring(_index + 1); - return findObjectPropByStringPath(obj[currentProp], nextProp); - } - return obj[prop]; -}; -export const translate = (path) => { - let browserLang = window.navigator.languages - ? window.navigator.languages[0] - : null; - browserLang = browserLang || window.navigator.language; - const languageCode = shortenLanguageCode(chosenLang || browserLang); - const selectedLanguage = getLanguage(languageCode); - const text = findObjectPropByStringPath(selectedLanguage, path); - return text && typeof text === "string" ? text : path; -}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/utils.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/utils.types.d.ts deleted file mode 100644 index fbcda75c6..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/utils.types.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Optional = Omit & Partial>; -export type Modify = Omit & R; -//# sourceMappingURL=utils.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/utils.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/utils.types.d.ts.map deleted file mode 100644 index 0c4119292..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/utils.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/utils.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/utils.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/utils.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/utils.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.d.ts deleted file mode 100644 index 8dd8656b7..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { WalletSelector, WalletSelectorParams } from "./wallet-selector.types"; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -export declare const setupWalletSelector: (params: WalletSelectorParams) => Promise; -//# sourceMappingURL=wallet-selector.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.d.ts.map deleted file mode 100644 index e613937ba..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAmEjC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,WACtB,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CAyCxB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.js b/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.js deleted file mode 100644 index af67afbb6..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.js +++ /dev/null @@ -1,79 +0,0 @@ -import { getNetworkPreset, resolveOptions } from "./options"; -import { createStore } from "./store"; -import { EventEmitter, Logger, WalletModules, Provider } from "./services"; -let walletSelectorInstance = null; -const createSelector = (options, store, walletModules, emitter) => { - return { - options, - store: store.toReadOnly(), - wallet: async (id) => { - const { selectedWalletId } = store.getState(); - const wallet = await walletModules.getWallet(id || selectedWalletId); - if (!wallet) { - if (id) { - throw new Error("Invalid wallet id"); - } - throw new Error("No wallet selected"); - } - return wallet; - }, - setActiveAccount: (accountId) => { - const { accounts } = store.getState(); - if (!accounts.some((account) => account.accountId === accountId)) { - throw new Error("Invalid account id"); - } - store.dispatch({ - type: "SET_ACTIVE_ACCOUNT", - payload: { accountId }, - }); - }, - setRememberRecentWallets: () => { - const { rememberRecentWallets } = store.getState(); - store.dispatch({ - type: "SET_REMEMBER_RECENT_WALLETS", - payload: { rememberRecentWallets }, - }); - }, - isSignedIn() { - const { accounts } = store.getState(); - return Boolean(accounts.length); - }, - on: (eventName, callback) => { - return emitter.on(eventName, callback); - }, - off: (eventName, callback) => { - emitter.off(eventName, callback); - }, - }; -}; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -export const setupWalletSelector = async (params) => { - const { options, storage } = resolveOptions(params); - Logger.debug = options.debug; - const emitter = new EventEmitter(); - const store = await createStore(storage); - const network = await getNetworkPreset(options.network.networkId, params.fallbackRpcUrls); - const rpcProviderUrls = params.fallbackRpcUrls && params.fallbackRpcUrls.length > 0 - ? params.fallbackRpcUrls - : [network.nodeUrl]; - const walletModules = new WalletModules({ - factories: params.modules, - storage, - options, - store, - emitter, - provider: new Provider(rpcProviderUrls), - }); - await walletModules.setup(); - if (params.allowMultipleSelectors) { - return createSelector(options, store, walletModules, emitter); - } - if (!walletSelectorInstance) { - walletSelectorInstance = createSelector(options, store, walletModules, emitter); - } - return walletSelectorInstance; -}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.types.d.ts deleted file mode 100644 index 327a9db79..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.types.d.ts +++ /dev/null @@ -1,109 +0,0 @@ -import type { Account, Wallet, WalletModuleFactory } from "./wallet/wallet.types"; -import type { ReadOnlyStore } from "./store.types"; -import type { Network, NetworkId, Options } from "./options.types"; -import type { Subscription, StorageService } from "./services"; -import type { SupportedLanguage } from "./translate/translate"; -import type { SignMessageMethod } from "./wallet/wallet.types"; -export interface WalletSelectorParams { - /** - * Resolved network configuration. - */ - network: NetworkId | Network; - /** - * List of wallet module factory functions - */ - modules: Array; - /** - * Custom storage service - */ - storage?: StorageService; - /** - * Whether internal logging is enabled. - */ - debug?: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder?: boolean; - /** - * Wether to allow multiple wallet selector instances to be created. - */ - allowMultipleSelectors?: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder?: boolean; - /** - * ISO 639-1 two-letter language code. - */ - languageCode?: SupportedLanguage; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl?: string; - /** - * Whether multiple RPC URLs are included, used for the FailoverRpcProvider. - */ - fallbackRpcUrls?: Array; -} -export type WalletSelectorStore = ReadOnlyStore; -export type WalletSelectorEvents = { - signedIn: { - walletId: string; - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: { - walletId: string; - }; - accountsChanged: { - walletId: string; - accounts: Array; - }; - networkChanged: { - walletId: string; - networkId: string; - }; - uriChanged: { - walletId: string; - uri: string; - }; -}; -export interface WalletSelector { - /** - * Resolved variation of the options passed to `setupWalletSelector`. - */ - options: Options; - /** - * Wallet selector storage service - */ - store: WalletSelectorStore; - /** - * Programmatically access wallets and call their methods. - * It's advised to use `state.modules` if you only need access to `id`, `type` or `metadata` as it avoids initialising. - * You can find more information on Wallet {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/wallet.md | here}. - */ - wallet(id?: string): Promise; - /** - * Determines whether we're signed in to one or more accounts. - */ - isSignedIn(): boolean; - /** - * Programmatically change active account which will be used to sign and send transactions. - */ - setActiveAccount(accountId: string): void; - /** - * Programmatically changes the rememberRecentWallets behavior, it can deactivate and activate rememberRecentWallets. - */ - setRememberRecentWallets(): void; - /** - * Attach an event handler to important events. - */ - on(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): Subscription; - /** - * Removes the event handler attached to the given `event`. - */ - off(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): void; -} -//# sourceMappingURL=wallet-selector.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.types.d.ts.map deleted file mode 100644 index 2ab329a5f..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet-selector.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/index.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/wallet/index.d.ts deleted file mode 100644 index df9c381db..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./wallet.types"; -export * from "./transactions.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/index.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/wallet/index.d.ts.map deleted file mode 100644 index 223147a0a..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/index.js b/packages/my-near-wallet/dist/esm/core/src/lib/wallet/index.js deleted file mode 100644 index bd35cba8b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./wallet.types"; -export * from "./transactions.types"; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/transactions.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/wallet/transactions.types.d.ts deleted file mode 100644 index edbe827c4..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/transactions.types.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -export interface CreateAccountAction { - type: "CreateAccount"; -} -export interface DeployContractAction { - type: "DeployContract"; - params: { - code: Uint8Array; - }; -} -export interface FunctionCallAction { - type: "FunctionCall"; - params: { - methodName: string; - args: object; - gas: string; - deposit: string; - }; -} -export interface TransferAction { - type: "Transfer"; - params: { - deposit: string; - }; -} -export interface StakeAction { - type: "Stake"; - params: { - stake: string; - publicKey: string; - }; -} -export type AddKeyPermission = "FullAccess" | { - receiverId: string; - allowance?: string; - methodNames?: Array; -}; -export interface AddKeyAction { - type: "AddKey"; - params: { - publicKey: string; - accessKey: { - nonce?: number; - permission: AddKeyPermission; - }; - }; -} -export interface DeleteKeyAction { - type: "DeleteKey"; - params: { - publicKey: string; - }; -} -export interface DeleteAccountAction { - type: "DeleteAccount"; - params: { - beneficiaryId: string; - }; -} -export type Action = CreateAccountAction | DeployContractAction | FunctionCallAction | TransferAction | StakeAction | AddKeyAction | DeleteKeyAction | DeleteAccountAction; -export type ActionType = Action["type"]; -export interface Transaction { - signerId: string; - receiverId: string; - actions: Array; -} -//# sourceMappingURL=transactions.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/transactions.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/wallet/transactions.types.d.ts.map deleted file mode 100644 index 4236471a2..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/transactions.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transactions.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/transactions.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE;QACN,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE;YACT,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,gBAAgB,CAAC;SAC9B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,MAAM,MAAM,GACd,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,WAAW,GACX,YAAY,GACZ,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/transactions.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/wallet/transactions.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/transactions.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/wallet.types.d.ts b/packages/my-near-wallet/dist/esm/core/src/lib/wallet/wallet.types.d.ts deleted file mode 100644 index ac2631a0c..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/wallet.types.d.ts +++ /dev/null @@ -1,295 +0,0 @@ -import type { EventEmitterService, LoggerService, ProviderService, JsonStorageService } from "../services"; -import type { Options } from "../options.types"; -import type { ReadOnlyStore } from "../store.types"; -import type { Transaction, Action } from "./transactions.types"; -import type { Modify, Optional } from "../utils.types"; -import type { FinalExecutionOutcome } from "@near-js/types"; -import { KeyType } from "@near-js/crypto"; -interface BaseWalletMetadata { - /** - * Wallet name. - */ - name: string; - /** - * Wallet description. - */ - description: string | null; - /** - * Wallet icon url. - */ - iconUrl: string; - /** - * Is wallet deprecated. - */ - deprecated: boolean; - /** - * Will the wallet be shown in modal. - */ - available: boolean; -} -export interface Account { - /** - * NEAR account identifier. - */ - accountId: string; - /** - * Account public key. - */ - publicKey?: string; -} -export interface SignInParams { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * Specify limited access to particular methods on the Smart Contract. - */ - methodNames?: Array; -} -export interface VerifyOwnerParams { - /** - * The message requested sign. Defaults to `verify owner` string. - */ - message: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet). This is the callback url once the signing is approved. Defaults to `window.location.href`. - */ - callbackUrl?: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet) extra data that will be passed to the callback url once the signing is approved. - */ - meta?: string; -} -export interface VerifiedOwner { - accountId: string; - message: string; - blockId: string; - publicKey: string; - signature: string; - keyType: KeyType; -} -export interface SignMessageParams { - message: string; - recipient: string; - nonce: Buffer; - callbackUrl?: string; - state?: string; -} -export interface SignedMessage { - accountId: string; - publicKey: string; - signature: string; - state?: string; -} -export type SignMessageMethod = { - signMessage(params: SignMessageParams): Promise; -}; -interface SignAndSendTransactionParams { - /** - * Account ID used to sign the transaction. Defaults to the first account. - */ - signerId?: string; - /** - * Account ID to receive the transaction. Defaults to `contractId` defined in `init`. - */ - receiverId?: string; - /** - * NEAR Action(s) to sign and send to the network (e.g. `FunctionCall`). You can find more information on `Action` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - actions: Array; -} -interface SignAndSendTransactionsParams { - /** - * NEAR Transactions(s) to sign and send to the network. You can find more information on `Transaction` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - transactions: Array>; -} -interface BaseWalletBehaviour { - /** - * Programmatically sign in. Hardware wallets (e.g. Ledger) require `derivationPaths` to validate access key permissions. - */ - signIn(params: SignInParams): Promise>; - /** - * Sign out from the wallet. - */ - signOut(): Promise; - /** - * Returns one or more accounts when signed in. - * This method can be useful for wallets that support accounts at once such as WalletConnect. - * In this case, you can use an `accountId` returned as the `signerId` for `signAndSendTransaction`. - */ - getAccounts(): Promise>; - /** - * Signs the message and verifies the owner. Message is not sent to blockchain. - */ - verifyOwner(params: VerifyOwnerParams): Promise; - /** - * Signs one or more NEAR Actions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransaction(params: SignAndSendTransactionParams): Promise; - /** - * Signs one or more transactions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransactions(params: SignAndSendTransactionsParams): Promise>; - signMessage?(params: SignMessageParams): Promise; -} -type BaseWallet = { - /** - * Unique identifier of the wallet. - */ - id: string; - /** - * Returns the type of wallet. This is particular useful when using functionality that's wallet specific (see hardware wallet example). - */ - type: Type; - /** - * Returns meta information about the wallet such as `name`, `description`, `iconUrl`, `deprecated` and `available` but can include wallet-specific properties such as `downloadUrl` and `useUrlAccountImport` for injected wallets or `contractId`, `runOnStartup` for instant-link wallets and walletUrl for browser wallets. - */ - metadata: Metadata; -} & Behaviour; -export type WalletEvents = { - signedIn: { - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: null; - accountsChanged: { - accounts: Array; - }; - networkChanged: { - networkId: string; - }; - uriChanged: { - uri: string; - }; -}; -export type BrowserWalletMetadata = BaseWalletMetadata & { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; - /** - * The URL of the wallet exposed in the metadata of the module. - */ - walletUrl: string; -}; -interface BrowserWalletSignInParams extends SignInParams { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; -} -interface BrowserWalletSignAndSendTransactionParams extends SignAndSendTransactionParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -interface BrowserWalletSignAndSendTransactionsParams extends SignAndSendTransactionsParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -export type BrowserWalletBehaviour = Modify>; - signAndSendTransaction(params: BrowserWalletSignAndSendTransactionParams): Promise; - signAndSendTransactions(params: BrowserWalletSignAndSendTransactionsParams): Promise; -}>; -export type BrowserWallet = BaseWallet<"browser", BrowserWalletMetadata, BrowserWalletBehaviour>; -export type InjectedWalletMetadata = BaseWalletMetadata & { - downloadUrl: string; - topLevelInjected?: boolean; - useUrlAccountImport?: boolean; -}; -export interface AccountImportData { - accountId: string; - privateKey: string; -} -export interface AccountImportSecureContextParams { - accounts: Array; -} -export type InjectedWalletBehaviour = Modify; -}>; -export type InjectedWallet = BaseWallet<"injected", InjectedWalletMetadata, InjectedWalletBehaviour>; -export type InstantLinkWalletMetadata = BaseWalletMetadata & { - contractId: string; - runOnStartup: boolean; -}; -export type InstantLinkWalletBehaviour = BaseWalletBehaviour & { - getContractId(): string; -}; -export type InstantLinkWallet = BaseWallet<"instant-link", InstantLinkWalletMetadata, InstantLinkWalletBehaviour>; -export type HardwareWalletMetadata = BaseWalletMetadata; -export interface HardwareWalletAccount { - derivationPath: string; - publicKey: string; - accountId: string; -} -export interface HardwareWalletSignInParams extends SignInParams { - /** - * Required for hardware wallets (e.g. Ledger). This is a list of `accounts` linked to public keys on your device. - */ - accounts: Array; -} -export type HardwareWalletBehaviour = Modify>; -}> & { - getPublicKey(derivationPath: string): Promise; -}; -export type HardwareWallet = BaseWallet<"hardware", HardwareWalletMetadata, HardwareWalletBehaviour>; -interface BridgeWalletSignInParams extends SignInParams { - /** - * Optional for bridge wallets (e.g Wallet Connect). - * This indicates whether to render QR Code in wallet selector modal or use the default vendor modal. - */ - qrCodeModal?: boolean; -} -export type BridgeWalletMetadata = BaseWalletMetadata; -export type BridgeWalletBehaviour = Modify>; -}>; -export type BridgeWallet = BaseWallet<"bridge", BridgeWalletMetadata, BridgeWalletBehaviour>; -export type WalletMetadata = BrowserWalletMetadata | InjectedWalletMetadata | InstantLinkWalletMetadata | HardwareWalletMetadata | BridgeWalletMetadata; -export type Wallet = BrowserWallet | InjectedWallet | InstantLinkWallet | HardwareWallet | BridgeWallet; -export type WalletType = Wallet["type"]; -interface WalletModuleOptions { - options: Options; -} -export interface WalletBehaviourOptions { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - options: Options; - store: ReadOnlyStore; - provider: ProviderService; - emitter: EventEmitterService; - logger: LoggerService; - storage: JsonStorageService; -} -export type WalletBehaviourFactory = (options: WalletBehaviourOptions & ExtraOptions) => Promise>; -export type WalletModule = { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - init(options: WalletBehaviourOptions): Promise>; -}; -export type WalletModuleFactory = (options: WalletModuleOptions) => Promise | null>; -export {}; -//# sourceMappingURL=wallet.types.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/wallet.types.d.ts.map b/packages/my-near-wallet/dist/esm/core/src/lib/wallet/wallet.types.d.ts.map deleted file mode 100644 index c9ebc6eb8..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/wallet.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/wallet.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,UAAU,kBAAkB;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CACvE,CAAC;AAEF,UAAU,4BAA4B;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB;AAED,UAAU,6BAA6B;IACrC;;OAEG;IACH,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;CACxD;AAED,UAAU,mBAAmB;IAC3B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACtE;;;OAGG;IACH,sBAAsB,CACpB,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClC;;;OAGG;IACH,uBAAuB,CACrB,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACzC,WAAW,CAAC,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CACxE;AAED,KAAK,UAAU,CACb,IAAI,SAAS,MAAM,EACnB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,IACP;IACF;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IACX;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;CACpB,GAAG,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B,CAAC;IACF,SAAS,EAAE,IAAI,CAAC;IAChB,eAAe,EAAE;QAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAC9C,cAAc,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B,CAAC;AAIF,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IACvD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,UAAU,yBAA0B,SAAQ,YAAY;IACtD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,yCACR,SAAQ,4BAA4B;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,0CACR,SAAQ,6BAA6B;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACzC,mBAAmB,EACnB;IACE,sBAAsB,CAAC,IAAI,MAAM,CAAC;IAClC,6BAA6B,CAAC,EAAE,KAAK,CAAC;IACtC,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,sBAAsB,CACpB,MAAM,EAAE,yCAAyC,GAChD,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IACzC,uBAAuB,CACrB,MAAM,EAAE,0CAA0C,GACjD,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB,CACF,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CACpC,SAAS,EACT,qBAAqB,EACrB,sBAAsB,CACvB,CAAC;AAIF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C,mBAAmB,EACnB;IACE,sBAAsB,CAAC,IAAI,MAAM,CAAC;IAClC,6BAA6B,CAAC,CAC5B,MAAM,EAAE,gCAAgC,GACvC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB,CACF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,CACrC,UAAU,EACV,sBAAsB,EACtB,uBAAuB,CACxB,CAAC;AAIF,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,GAAG;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,mBAAmB,GAAG;IAC7D,aAAa,IAAI,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,UAAU,CACxC,cAAc,EACd,yBAAyB,EACzB,0BAA0B,CAC3B,CAAC;AAIF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C,mBAAmB,EACnB;IAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;CAAE,CACxE,GAAG;IACF,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,CACrC,UAAU,EACV,sBAAsB,EACtB,uBAAuB,CACxB,CAAC;AAIF,UAAU,wBAAyB,SAAQ,YAAY;IACrD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEtD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACxC,mBAAmB,EACnB;IAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;CAAE,CACtE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,UAAU,CACnC,QAAQ,EACR,oBAAoB,EACpB,qBAAqB,CACtB,CAAC;AAIF,MAAM,MAAM,cAAc,GACtB,qBAAqB,GACrB,sBAAsB,GACtB,yBAAyB,GACzB,sBAAsB,GACtB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,MAAM,GACd,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,YAAY,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB,CAAC,SAAS,SAAS,MAAM;IAC9D,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAGD,MAAM,MAAM,sBAAsB,CAChC,SAAS,SAAS,MAAM,EACxB,YAAY,SAAS,MAAM,GAAG,MAAM,IAClC,CACF,OAAO,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG,YAAY,KACtD,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;AAE1D,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,IAAI;IAC5D,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,IAAI,CACF,OAAO,EAAE,sBAAsB,CAAC,SAAS,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,IAAI,CACnE,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/wallet.types.js b/packages/my-near-wallet/dist/esm/core/src/lib/wallet/wallet.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/my-near-wallet/dist/esm/core/src/lib/wallet/wallet.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/my-near-wallet/dist/esm/my-near-wallet/src/index.d.ts b/packages/my-near-wallet/dist/esm/my-near-wallet/src/index.d.ts deleted file mode 100644 index 1cfb7b4f7..000000000 --- a/packages/my-near-wallet/dist/esm/my-near-wallet/src/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { setupMyNearWallet } from "./lib/my-near-wallet.js"; -export type { MyNearWalletParams } from "./lib/my-near-wallet.js"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/my-near-wallet/src/index.d.ts.map b/packages/my-near-wallet/dist/esm/my-near-wallet/src/index.d.ts.map deleted file mode 100644 index 4b4528b7c..000000000 --- a/packages/my-near-wallet/dist/esm/my-near-wallet/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/my-near-wallet/src/index.js b/packages/my-near-wallet/dist/esm/my-near-wallet/src/index.js deleted file mode 100644 index a4b623a1d..000000000 --- a/packages/my-near-wallet/dist/esm/my-near-wallet/src/index.js +++ /dev/null @@ -1 +0,0 @@ -export { setupMyNearWallet } from "./lib/my-near-wallet.js"; diff --git a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/icon.d.ts b/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/icon.d.ts deleted file mode 100644 index 7cf9a6062..000000000 --- a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/icon.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _default: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAD8UExURUdwTGx5rpLO8YOYx1Og0ly29X5ezR4mT0tiji4eWJ953KGn1Jxs7qB9xvfD/Us0gduu8yeh4HOq74dD647R91256eSz+j82cbvg/dSj/LuL79Wp6zCf24KN9xANGRANF59d/0W+/taa/8iN/3HL9uOn/z638Bil7l3G84TP+FHB8o5A/0i9/ZjU+47S+vq8/4Qy/S6w8O+x/5Rp/wyg7G2T/s+T/vO2/+qt/1qp/qDV/HyD/ki4+4R7/qnY/tyh/1Gx/ptU/76E/2bJ9Ld8/4t0/pxe+XvN9iOq7rB0/0i88aRk/6ps/z++/naL/mab/mGh/pVM/wub5mGd+fAEOhEAAAAgdFJOUwBEyWKA47EKJhnFluGA6l3H67Du6crdNOXs5q/I65rcQbfB9AAAIABJREFUeNrsnE9r4zoXxidOG9tNQqBvSrLKeKGF7WIz4J0WgSCuDc1s7vf/Mq/+S0d2p7Zkd7i0SsZJh3th+PGcR4+OpP748T3+4yNODofDKY2/SYxgdbhcfl4ul9M3rY9ZpZefbFwu6TeMD8dJwPp5Sb6l9eFIL5zW5TDoWrEc35wEjtOFDWPxjE2aJMkqWa3W6/WevuigPyVJ+tWngTg+HQ58PmSDQlqvt5Eax+jIBv2UY7umyL6u0JiMBK6DpETp4KqmL/ngX9hnwcEJYl8TGIV1EpzOEaNUCUBqFPwPfRX0W8GfFSPGgX255JCcTpwUByVY1WAU/FHwLxRWV3RdIYGtvhIvKqoVI0WriwoGK1CDvLi8JDouse5L8YqT08M2Op+vVFOYl54wJ+5PkppkJUkJZYlipN9RV1Ne69UXmCOT0zY6Xq+4Kip7GEYGmKZVyNF1ghj9whx//ZfltXQYTE/b8xnTUeFr1R82Lm7vwuPh6Cgz9jr+TVx8Mt+zcTgt0w6Ik310xIJVJXxdUaqgsIzH1w6tjlekxrVdpX/FSlb7zW63a+lrt3vazG8JFiqHVa2ewOQLlR70W1oX58XlhSiv7aerKz4xUvd7Rse9pWO32xxm/VfE6To64yt1KyEsgUt8ckT99GDsHUpL6oq9EaKT4+cWY5weNrvfbZtlNwqLfkpcM0o8XtFMhZlRUT7YYDLKEtmhsurQJNO6R0sEL0brk3FRWe3+ydpMDvblzpDtnvYz/SPihIYFzHRFYYE6xMazBnJWYTyrhsri4uqEfSESPX+WdcWnza7NbjemKyYpVob/Ml5Zu9vP0cmME1aBxZXDuSpdKWSGlK0qxUqteSxUphA7hLoOsednWVe8YiV4y34zTYkX9a4bhXejtbgJp8VQcVmJuDA4Gyp7d2K8TFn1oGnJWbEjqO5ywnLE5+iK8mGyEnbFlMV0dWO1GEyLmhWdA1kKrdiTG7y2duPvss3QWx1qVLVLSxZiJwRWdOQTxJXsd9qrGKvMHsznn4JocbNic6B5KWW5wlLMBmbDesjcOzN4KZLj0uKKD7tWcslcVIJgiLbi1fasSYk3p2WUJTsOdsqqHGVBw9I5q7BQcVp0XlxYXKdNa4Tlqkp8/uNNi0UrzupqawsLd8cYqqoXSkHOqu0ED5SF1AshQo1+tRyteM+F1RhGjXy0oiwZLU9txWwdKEhpTKIIjWv1pDUQHGpXW66uUGfTWi8WIk5Pd6Ao5VqNNDCGq7170WIx9IqFqq4iuXNUVyWr95RVDeYsSKqwPEvSkrgQLcXFhHW/STz8T2uqz9DKfHwrPVisMP/GSV0tZdkxvq6qgf6fzu+1hQsoC+mwRQd/Pi5kXOnmt+Jh53fH4mkG220m/gOSh0gpyuBSVVhhuNxRsbRfh+5sCH1LCqpjvNg39kHYrLiIcfEqZHwah5DzM8tbk2glbBbEVgHKqVANMxViJzvApWFd9wOWcng9FSrHQtLpaUJdgFa8euqHheExzeWptRuzMgqzgpaO8bClVVXuhoXSVT0kLCEtwUo+mG2hxwVoxetdNhYW09YkXUFQ3LIMJ1OJGPJyFoiqVVrD6K6VpSdCpS0xlqjEdD8a1hRa8fYs8DiuBUrRpSWF1e/+DbSzrCq0YpaaDjv2mJ9Wutll9w8xNWKGpLT242gl0fnDEsRDylKkqoF2Vu24FoxYcsGjypDQEa3npRVvRllWw8MXXWGPpJVE0bXvWCad2sLCfc9yZkSoqkI3suyljnQrrimOi+Q5mplWuhnp7zKqUm2lo6wQlqGqQygsteDBoAFfuWsdp1Oquu+82dBZyoKuRdhr3kqksMbSov8dja8jtZVsoyFlye6DrSwtLVxbydQA05hqW1qOZ1mrQ1GENGyxx7y0KKzbOFgNz6ajXT5xogO+2j0H4Fm2tNxeqZXgB5SF3JQFBnWtefPW2DJsVLRvR9KKk4GgpV1LSQv0HjDcwh8CpTfCQHPGWJampF1+zrw12rPElDghQXBa2PV3LFc9lrIwbCtbs2ExBMzOo9ZEqCtQUpLFmOfH59lW1emYAN+2rb1snEDrHWm56QE7uAZmQ1iInb3QkaTEgwhgiIgPNCetdNxqpzUmn4kexFhauOdbYDVtdwAr9zzb8JahyqSwCjtkS4vwwX/K82g7T38rnqgs9Rf30S5/xX9QlhO1avNyldVzeKejbKpQSosI46Jhi+Rzxa109DoajFs2ntYfpNWbEHstmrofsmQZFrD5Dk2LCJNnpkWBoXlMPh4Jq4ENG563vLTVC1qgDut+F75/5AiUIfR36er6Wy4URrp5bCsZBavpb2fcRva3+tqCMb7CTg+w6p8qfb8MkeblmpaweOZblFl5nKPRHHuW4fj+FshbeIgXPPBQgSNa8iwpnAjtIjTuToBpyaW0GvPYFlXWPYTWhDnRNJcx1rs8yrC0ZfWOO4CGA5gLkW1ZrJ2skAlBWQPl5CXctpiyfGG12ciVz0lWIjZLa6Osyj3XVtfvG5YmVViGZa11pGUREUpFepDSIjPYlqeyGtXfmpK3sNUAtGj1TmnB3p+7aWiON1jW3klJ6ToEwqKoaNp6iP8KrEa5/di8dbLnRNxrl1Z21JLLRJgd3MMzrrur7E6QeQBYpCRRMkPO8itDtbc4tmNzBgZvw3Kb8AM7PEJbmhXYMESgj0V0yDI1mHNplcdgafkbPKfF9hPHnA0cWPmArGV1acCJtt5+YQH9ynYsgvS6EDllSGnRKB/s8QEGb3Yxxs6Jg5YFtyyArApnbSjPdPcSKQLKUgbveFYe7vFB0WFKf6u3kYhB9wH2ljUrFUrroe1CI6qOGGERhFCfE/8IlVaYsqZ0bNTKB2OVIrBTifJy4cAR3HcWOhKYG0d7M+Fc0vJTlld/C86JIGrpJQ/olaqLTXVtoSqsRGpWOTC5m3DFKTFQ3LVCc7yXstp+f2vUno/JW043XsbSuhq4kDJ07hZurMJAOmBXiloZJi3fBN/CoyNsPzGdsPKxYZmzy8KvsK5F9WUok0LXIqCfbCJDrljlYpRh0krDytBaJ07RluNa8Jj3UV0if5b3pu2DpI6yYMAyjQYrMhD9CpVWHBwdVH/r9xRaIMTbTRoBar9aJWKs+H1XSqxn8JpVJ2dDiQrBKEqAsgKlFbaQhnlrdCVewTa+Vha/X89+iUMM/49EACsKc/IdwfMNBLRIkWtYufb5IGkxZbE7AtMXh9nAefnt6P1ErNfV8iYPxmd2QeKdS3txslpTXPJeU1cg5PRnUK/+BB9LVDNIi+0btu2f3Gg0vZFnbHQPomK3U0Qgra7nj26Is9s/xyOlUxRDZ9d0KLXjlealPCsnQdJK+CZrm80w2imVKLqB/HoKV9W7ooK4okJ1sxCMWUQld2QbFvArupbmrZpVgLL+xy6DZfdwUqzLNS1viWXO9Rptk1E7e1xdtAaVbSHU26oAwT03ZiWZlbQO/ZsPFNbrLbsNH7qd0gzU57fS8VmeX9SkFTj+kH+SbKNanGCTJ7E63vgjCEYsouZBRYm7OzP4kL4WhfXr9XYb3H+ePjfesmYCLd6Jv068bMPEpY/O2Cdm1E40sqrQrUTOy9/iGSxFqwlgpc9vNU9jK5HdAJ4kK3W++vkIt+w7qzmK+v0GC1Qelh44rF//3uTN6CbMuW6j89aPlHdsztH0y7rsArGqxM5q+BF3BW3lK0WLLRD9LV7Aotq6ZzJvNb7RwfS3Rs2JlBaNml7XRpLt8UiorApwykjHhtwOC4ZUKT/KR986lLAorYErdF7r63a0ttbedwOpcRHSdXCXAsYG1fIjDi/28K1DBYvTalvv4OD0t0ZpK/b/JRuMlrMJTdw8CrO7paz8JRSW0FZIx9Ta8hmprZBuCaWVy/1CGLGsuK54lcLdpbJy7zo0sLhvZd77Yg04NHJfntY2Mg1lgnrtPuDrSloS1+NzGgpLJoh7gLIm97dCGuLbI4E79o6/W7hIqVmVtAx969CG1U+nPnOizBC/F6e1itR2DhlY5pjuqO1ZUlovq3BYglbr5fONX38rpCW+juz9HOT0sGzLKqVxleLta1oQFvetW3Zv5+lBbBf+HQvUtuSBoj/VoPH4UqAqc+JnWg4sOSe2QctEfdBmwv1EP9uKOnUeC2gqH/YrSYo9/JKWC4vTus0grAnpNLAQYcJyls9lbmJDKQ2ePl7mgRWUt5yY2ixNK3k+8gPJTsCydSVQKUxSWW+PXhv5fVgib4V2A6f1t/yldRwMDU5TRvAy0aEs0cNMsGbpb8lfntE0y9JKoiM76O4IK7eDOzAshuqNKeshnQmWS6v1tq3x9xP9XYvYsKyOe8nempYsQEXMz+FF82+YVtuG2tZtcd+iyZRYW6nvKctQkuMlmUtZpr/VhvsWpbVdjla6PZZcWQ4qKCrbsdh4K70yvFbW68Cc6N+yUbm0bTit5bQVr6J8uN0ODMtW1hufDn0yPNvd+TWsLf9EqhY+7LNZ2OWTl37/2O7J6LhgAXsLgcVxvc6Yt8zvSWKLxmZJWunzsXRxldzaS9utchsVez94K+v11+uwbwVKq2kFrHY5WjRqlWYjh6jFoFw8A1BvFqvH5yBlDWnLt2Uj9qcbRqvhymr+T9vZtTaOZGG4m51O3M3AsDOEgaEDXhjsxr6JcXxh3AKLHQnFDk68/v//ZavOV51TVfKHpJRkxUl6LubhOW+dKtlO9VG0fGhFrajsxiihfqi8grPLUpphtbhV9lhH4wdN4fjA3Pr88PcPvcahXQZdgRoVserUaHEZiluGGd5P7BD0TqeyFq18xn8YrdHvf4fmXWJd1oNRg7Wj8z8P3WA9zcmsltwqO9JybQMdOD6oEu//lXRY0X6MTIEECi4dYc0F1DzfQdy8v+UJ4bnU4/FDaEGnlZglpH7sog6LaHWGRbjmuZiH/a36JqfGJbGKYDm3PuJDMSHhCdR/bRf6Q9XezuT7rpdZ8/ZK7HDHgutPToL17QNoueUhvxg5tA2zdDm4I2a7fmXIauV53XY/sQ51aMWq3OHduv8QWDOJLIXqh4703Uyfuy6LQzILec3T+TB7P7E+qxaQqmOriNcH0Bo9yEvVeB6cmbTaxcB2HVfSbBYAw2JM7bpyfwuLcImJtRwniQWX6tvQtD4/SNdOG6N6caP7djnc+PJ5gMxq706vuZ+4ZLeYVSSWgzW4W86szK6MXTdrWjt4dHk7nZg1n8/VtBhXI+xvjc/uby3JqmWmaSCxMLaGdotghbUg35UIMs0w1yned2jWfefM0p3pvGUP4qJZwoucGusCJFp+fBv0k/hGDz/0YtDs8dneKqCaDGKWZNdT4tbljrTWdbhMpkJmVT3+OiQtB2um7jnbxY0qQJ1YPcyai1y6i8j2W/t2qZYRqXEovzpYVQ3uFpo1i7YZQv3586cpQW9Wl92/XGaZ6DK5db4/LTmyIrGqcHwELc4sm+ncJESUhoL1FBqurFpP6t0F7QvCjFdwFlqsQWn5MkxWzrtMtyCgJu4yhFmm45onbpXnb1EsWxosa1WBtIaaEwFWvBZUC5uIFdLqDusYVaEqQusXvV7+TOfOk+BYNe2+XYi88mOolIeAT2/ghElwNrOoepnlWR3n84xhmQ6i9fVb3F2N064dkSmzCj8eB3Jr9CDNle7Wd7swD052P9GncBmoDMPM+DTP3/NJtmw8onKZmwi5Fw2kioqOohiGlocFbu1UtxDSPVSeOXqU4TFHLJv14FYN7xVe2i0stcixabXUNViwWJV3a4hKFLNmihdTwifCKDzpUYZHC0zahywtiK19VIDpRMiNu80rJZaj9fsAtBjWTjUMO92ua7Xw7BnwSOqYmpVu2+A6Mbzblxv3fIdly7CAMgxjiA4CYamJb5ZMfgGVXL/80sMsVqtlZmztIJZxgxUCq9LrQc0KcG38uRmgEo1ZyqbJ2aM7LMaVZpfs3cyztPCtFRmvKu5IbbqHCgRag1QiwFJTn2GlmanI6m+W+HWMaCVuHZlW3da5i1TWrFCDHtVmsxmAloMlQTWTXQWKp0kUVSHgf+kd8MfsnJj2XEfcCoTw2ktoRfvtUeMeEqsiq1wZAq1+f6uKzOJdPV2CkxSS59cPVnokXVfccdWv+HmS/iVY+2XYw4q2RTWqQoe7w7QZhhaYtTPrZQ3JcuJHH1hH/7DhdcxFl4w7/5dJa9pp2OdWg8s42yuNisXyoyctb1ayUtZJBXAmhItpdYSFlEItJlH/xIvroNcfd3/+dkevvvKvWEv3RdMaND0DmMW0Nr1oebNyLdXErnCi0RkWD7aLWJ1x64/fvn79fId/7HZZi1e1whRt91FYVRmzerpFZXi2X5jIV8bWDVZ9LAWUkMo1EtJ1Aaz7T/fOrVevVT3WVsUb7rJyjkixWQd39HILzTJNekBjrhOFqxesSK44up4ULoL16etvd/tXvPds072qkiosKqa1kcZBxPK4utNCWJNs/ck1HovesCDobXTlNm3mHhb8x86t2t7ICbcmosCy6b7hA8069KFFZsVa7VSq6yeTvmVYGrtEMNui6m1nMMv915/vKKdqulTSt5ttGdlpUGFlxDocDo933WiNHtKEujAWPc0qLau5jq9owRhgebd0uHupinQbWa8HqXUnXAcgBaxWh45uxbAmqldQeOiER68yLMsScSlk8zpdWwsyhgWViFpVyzTZk/WglKASC6rw4HF1oxVgtXQJA5tVloKq1Dmvp8fjXG1yCSxPqwpuKbVUMxol1maz4XTHqRBjyz2+dKE1ejgPCYyyhzs7wgJSZUlfkuyisrSGBVi+g6jiFWGVqEW0glgqsCCywK1OKe9gRY1CWnxcfwuB1xkWc4IncTWa3YgjNRAKFtGqlrl90ciqWCzMduAEo1NueViZOmOFBJvF1QXWCM2CzEJmx1SxOOafDCxPCzjV0GApXoXZdGepCh1X9GBYqw65hWYlrGwJmktvsxAXSEWtRGnnRtN6GVjgVpXZkpEVYdUa7oeN9srBWt2cWzmzJtqsuBi7Z9Y3gCU1SJXIlqXtRA4Wp3yyHoxQ8RZWCCsK9kDLfXcrLQ9rkYZ5kCgN+K5mMSxGFqqR7Kqj+IJLBAtzq1qmPYPdwrK9aJgHoQLJrMOtuQVmJYjgXOgiNN9MBoClHHOUyriz5+g6xrDAragOw3KwkPWNFCEtcgQVksLr6TZaZFb7KZR6Z5aDNfbv/ir5UqoqlGqsfYuq6jGBhbRyN1PNPFgYs6QAV+HwxG7LLQernU/4brHAi79O+phV+3Os1QpVidkPvKivd5cUVkRLbnpVIlZh58GDqkGsQjpXb7f18lSGhtWCSjBAmqjrortZY4+pRrESwUqFS6mVgWVpFYlaG7V8Pti8Ikj0ZXXjnAhmLfQ5YVDqqYDql1ke1jjQMry4Eo/Y53PY58yiDsJsM5gGy/buB91fHYhVGDek/Oi7AWN1khqkn6FYPc1CYgxprHDRUsi2qVlYwa1CZ9aGOyyn1SFaO4cGS+N6W51ucGv0fTGxXlnBFgttFz/vCsvfLGVa4NhYcCGyY62v3rA8rOBW6LA20jUUei3Im1hhKgyk4Pp29arawbJjop43Ot0n8rNFD1j0MVBAyrHSuPx3ZoKEamyBxbQKfTdHljgFpxUvni0qKcM3h8qN1ZX3qhWsiSq/JsKmYPpf/bsrrJI+6hftGktdcoJFRXlsNYtpFXaJYzZGD3bxvDJinUgsr9bpykqMzGqUPnSNqPkfTjrC2qcfkFyOpSxrnfiyOfFrGyykpefBTaEXz9E8uJJ+VInlI4vduoJWBGvSLK4ZA8ESZPi1DGVZcpNRtpoFtEzPYBpRnALtrowpQc4sxHX6ckUlOlgN+nQBk9arh1l7OrLAalWTXJXtZqFbUS9qbk4c1EYyLQkF1xtVIMXW++mKSiSzCFdDlwy5ZjCz8NPYWqjpyMce9gwscMvcdi4MqDiwbIPlig9JrQDW6XLKs1lGL/u0SdB1N2vvxhgeltWeQOFnO2F/AW7V58zCfqsw97z0grAt3FEsZPUORXg6gVsXaOnMaoSOMo1/1ah/1nSHxQcz4xPJ7eUznsSzs2ZRJRZF1LdT9W3OouLGwU2GDta7w3aJFpnVhPJrDJ7G/gwf/cxiu1gxOeGo4aAPfPefnHwelneL2lHdim7OspIqpHHy4/39Ii0d8E2sUfhBNAv0gIVA9qKXyMWo8M8QwMce+uMSLMotuxq02wwZrzwqYYW0PKwLtDwsB6KhSxNUEoKNqVP4TVdY2RFwuVHTQ8ZFWOBWYe7Qm3VzbpHDnTtOhG/vPNbvp3O0Rt+bhlGFcmzEpsY84cegsOzwRYiVCI8rYHm3HjniDxu7MarMsmqFxDoJqbW7nnOLYZFYGlljZsfmw8w6P66ABbSCVXb/KrCKpsFQgGTWybFar8/RElgtgkXNF3zpDOvV/c+/wtk2kl+91lfA8q+xeTQNVnTXK+MV8joRrTcQy7t1WrfT8rCm7rDEwhFCKyRZD1ivROsVTz7CU48Hjj3942vMgtx6DHtYuRoM+wzgFdegEwraBjDrtPZne245WFODa5EyW1hinc16JRpBL4WIkfkTBn7zch2sT/d/3lVKLLMzGtL9zezMYLxLuK9JrnWrW6Pv0ymgmvqvLQOLk89FH1ivTIUhAROtGP8S/+XrlbA+3VMl4vbVJocq6q5wInS03kLCr5lW9p1cDhZyimuxaTLJz5r1MUtXnsYkHMUtP16uhoW0HKeVeQVI3GCtQsC/265BxPIpn/3kCjZrinKdI7YI0HqZJVwUMEtIf3ctLKjEx41e56R3clCslXglWgGkdzrWbZUIsIDV9KJbIfS7wopNujxerof16SvQStbPqh19W0WstFlrMWvrjhwthBWAYX41TWt+NU0/WFcRen2h8+UWWOiWbbHS2xOrRKt3UYpTfutwZWgFWOQWxDxNkPkkW0y7wnrZnyUEpx9Myz/55wZYQCu8SkZe0hDFO+z5ua7hzXglgYVjkqHlYT1PY2DypSX3hzbrhVGFg8S6ySyitUn7dtW4UzNKvZUmpVk5uVJaDtYzY9K0zrLqCusl8QiBvITn8iMef90Ei93KRLtZ5mSLkONq61vTHK3R92ej1tRY1UiG6THtAYvNoZMtwrrjIlTjn9vMIlq5lbPak1G5rkgJLjdmp+02peVhAa7nJkn6WLJesO4BFvIJGW4jKgL18o87bjTLDaAVrQdDWtEsqHCZuNqiXOstDttvEayp8at5bkI3kavHHma9hHKTQE8oMSl33A4rdSvpGUJgSXvlzi2H1RaKMXWLyjCuxQSUUqyzWVJsJphSTMypo1mf7kdIK4DSeaXbqzWtCY1ZAsqPn5qWg/X8jLQI2rT5nyR+nldXs15UQOkyNJg0KT86wLK01B7y6i1e5di2fcsZvyW9ttv/83Z+PY3kWBSHpdkkZBtlHjYtQr9UlaCkliXUKGuIZClRKQ8QbQlU+f7fZe17/edel9MTXMlWMmmGHqTh1+ceHx9XB0FpASxnW7XV19uyb161TxTZBv9OEkHq2vLHFv7JejsnQ4t2ok5Ze8fKVDOfetEzjd+Ki8rL6pcR1urxMdCa/DSoGC+trC6o641RsmIbAovO3n8PiMqj0srKei8GT4tW7vuervYrlkYBlMe12uEgBm15ZcFLZ4B1b5yTw1UP8iyAlRBWwBNe6LXIfOMKoPXxYW9Y2//nY7+PhtDPn98PkhFU9lXpy7v85CfoarnUcqqJvKzfL98It8BsAKweKfvqTCpoatuYR45nMW3t9dOdOn+QLJrK7ZvVhrq7sayNMNrCBDH52SEqa/PE6Ol+0UsMX08Ea+ul5fhwVTX6uch+S5TxP6/hFhm8FQssa0+ncPUZzyCbQ60tYXBpYKq4/of53xgjLFRWR5TFokScU/NgbWOHsoMXJpCBgscAWCNDC6Koze57X7f7JOpZbbyugrLEBqdQCVGYe2xGZm+4tLyctpZ8FD2wN6+vXFhbMn3bSFRJVEOUhdr6cJEU7pQBTh9hCtnFSCnrWRqVVlZr1sTxj5+1QQW4nLaiWXzju+xBytoGUfE49Z4gBdcQWIbWB4mjENo/yAjS/TOCoroCezdjKIq2ba///e3bz87pCrVFvQscfslBwcdDYPUiQkpSICoANgjWhZtER2tF94Mstq+YtysrK41KGGKFxnV9ff2XhtWhtGqnrbAq8j2QP9sYMIY9Ub0fGsATKIvR6jUNn/EySMYQdWXsSr8abcH1WHeIy0qrphvr5VsoI2qyCcqHFRC9p43KU8KrWgx9g7Bvek2047fHzSAxrE/r7DwyWF2Z0CBUIdQv7VpFWxQaWW0Gsevq9CxaeXGvz4S15VuZ9yglbPkAGlTDYRlaRlQmv/ePU10rs+EJSxhXN7TEpoA5dNJq2zeqrc5vrP0vxMLsJObCOjx7yCpSVnUCZekEoWkZZe0/UVurz55fRbJyjmWEZUSlgRlVaZEhrSWZRKetlKgGKiusfO9pT2cj2FTVcFigLXunzH7fWwXjAssqC0htQFqgKGGYASzU1rKjq2LtaHmNLUM1mA8r7VV9XBWwak4Cy2gLItZ+7/srnq74MiiU3RQKq6y2LdzVIi3CqrZPjwsF9rY8jbKSsgJM20hWp/Asq61Pcwix/4zWwY2vGryyhN0/Y2wwBl+wy2srTlxdWBxJjljWA2AxaTV+DWxIDnWiAlwngWW0Ze/s49vBOLe7rgG2hPphrp0A14IRLITo06ptogdp9TY/g5WVSFXc1wOuxWney91M4iqxErLcDnvnYFdGWIBMGVYQTAtM823NJtE3gh1fGHE9PAmsHiSNaFv5+TulsqxvOVR7XvWtIllZUgBIuCn0w4jawry1rLl18YrLfmIgrKb/oFbVBFQng4W+FUh5Wa2ItVtZbUBROikQQu6DHX46sSZ6YFxay2GwGp4XmjgveGWdFhbSYstgcPcI6FJiAAASE0lEQVRQNIBZaWIGijP3yOJ3zuUJrM6VzXXweEttAKwmmr8tD1aoqSYM4uKEPwmG0Nq4jMWmUOAiuAFdCcQUxhA/2rXpNbGrvXeBdXVuHLNhNdtD80eiFVGWlCeEZXyLnTvTgAUrILRX2I3iI9JUAVtEKy3UVnShprrwSz0EVjKruxXQ6coP4UmVBdpiLXLQlYIO2ccrE0VVawaxcN6lGDNVJGjV4eiH9Db5sJreZpmJinECaZ0UltfWph+wbCVj94PWs4qIkGiDifV2PmRx7IysrMByYTmv2vZUZXn5LHoeWJggrFWtwrmzcr0oqqpVrfAzVxR9ajuBnU1bp/eJ/mCxyx9Db+69FFr5dEVRyZPDsrT4aWrQFZbIkBsEiiteCp2yIKQWpN86FCKWy2xYyW6hYcHKfSBPbvDBt1jZ/mjrmLAOqp6tk2URgykw1Z/6XdM1saN53hlYPqwmHkNnV02wdmlFBR/cXZ78x9AirfhAFVVlHZ0aFqyJ7Y6jcwkfsrzRFdv+kI4rX1l/RuUEFSZRympx+p9w7GgBscfQyeB2MK0sl0a9siyuVAfhZQXtc6ayFgcmkGwGvbSke9ydHtbI0lIrUrmbGVT+ZCINrGWDCKPo+61+5HLOlQVruqj6siKJoUFhyWBYAGt6clhWWyt+kANHXgJ9XbXUrLyiRG8Qd3rpJNpKKmwArMQEelQkZUmUl4F1hh9ib7QFth4OCKEYRc+yWaFVTFHCK4poS7TK561umR7GHFij74skqortcGSQlQEm5d3NGWBdXFxqWuSGBhhCJURR9MOooFGLwCpsM6hh/a5TsAYoa3T1r2jLTLbNTUDlE5a9ZuNzwLrw2jLhARq+X86wqDfxrNUzMnCuonD9Fjh6F81jFqzLBeHkHcuLSpIBNJqytMrZ5ehstADW4wZEFQ4Hv3IplyDImuiP+FFdWbB+zMLWpgp7G/2AkSNRFJFZXPOr88BC34JbioATFsi0wHJBVJiQJeKkhToT9ouifmuosi4AVt/VUVmNdJx8aLDXmUzL0wKbh+8bTijcrKVVJrCDUNGqyPstrqw8WOOblLHTnkHa5EAcS8r1mUwLaYGqrLebUewzOpRQhbctVFbc2HjHz4KFEb6i5UKvkeETKM86h4GWu5lB4bGXlY7oc1IJXm59DLT43qfOh1Vxw/Lbm/QMlrIszxNLKS17WI8nN2n9GMcSETIVBhG+OJxVW2SWWBas0XRBW74qLvuca+EQVo7WGefQ+ZaAATTDJBIxQdjaPSEx5feJqqDniR3ND3nKurzbVtGpoI+fvpIJU1jio6zm30dnpaVshSASXV+UT6nAqMUXzuxs3iJxq8tT1uWC1XxEYBVtsIhflRLm8P580gJaQrV2Z6iK/jYwlA5t6t9cA4Fx9rfb+Xh95SlLZwfaWjWVbLysnLhoHnXKktX5LN7Ran2PwDCFIot8NqjLHZbZSWT9lh/DPGXp7CCdR5HkwHVFUFla8szSsi4P37Ld8YiCHUf/IT8UeMBvx9in086ZVpc9hpPpXRXvnoOkYAL9QljapRCe5VmlBbR+qVan0h1fDnloJ5m+JTUgftIBM0YftYF5yhpdLXp6on0Mze0WF8Bay7vZOaUF+0TjW5jgRTJOaY8SCXIicHL7xIL3W5ljqB2+Cmc4TcTLSUwGwypRWmtZnnNBdLTghiIRO1PUv8M2sWDBwX+NzhgC/4bBG0mlmbAuftykMrskyyBPWGBZa7kuy7tzdQ+EljL3qhX+kEuIY7Y+9r4kP5IGF79/KxcWmJYvZWQ4wmH5ypKynoUKO7PHO1pws7vpinHLp0Xy94cXCXi+gxgwhmBatDqWdPtMAlYp0aykxEEsy/V6Pj0/LfNtKvVoJol2ovE+cRcXhIwV3lH5O/hWLqzLWWxU9JCQ0iq9sNC5jG1Nzktrgr7lTriCHSlCSdBKXvGzV8G0Ze8NzIZlkhbt2yUVVkwKJ3FtnuXaDOLsanTxf/EtkEbRMvOmdbP4w3F13G91+bDMCY+MhSXjUqaM10KYQzkfQGs0Gn3F5TFdujrB16RhZVQpz1dMWf4em1xYbA5lhAuAlfxhRLWG14chtEaX08sjaYW8hSIr4v1PwuEVKylYvzVAWaPxTcRKVgd0FeI7sCo1rTKX1uTqdn6c5QEtPIaAb3f3x9OK5G+LqA3MhgVzSJo+CwpRVSEyBFpISssLXvNojae3t0+3t8fS+qUK51voUja779KpQSSaU8heeJ44AJYO8bKJ+/aoRi5tYCDCkmvgZWh9H39Zzfe3T/o6ntaj/jYdrSMbeUFKVbelBnVpbWXD0uvhXcOPJ6SkrEpuWWYpRHWtgdZ6Ppt+7Qc4ji41q5enp5eX2+Mm0SQIE0ahaFbpLgvVJZzszG/6/yDut+p8WKMrHeJlQxJDf/ccRGWVVeIUmqt8mN9ffSFwjb/Pb180K8PreG35xKQOnYmlT1zdEPrLZPl8WBc/ZjJq26XXVhmCu9/nrO2KuMYLbP5ocenVd377+voE18vr8bR22G/tFHekHasf1CF7xzICnprWAFi4P/TZiuqqlL0toZtBMCyA9fCg4+n99yNwjUbjqZWV1hX88vQFl29dhEjeDn+wDPSoXK3fXufD0n/YMj4frDgrNolrqiszhlpb2rlmf4drNBlPjaxeYALx+fTyhUmENlCIg86+a/HgJ/xFDOHvfRC+5jJvzfJtwNt43Nw5s5L9ZZBpStplkPPS6jJGr4dxMjosqqv7+e0zyOn1+cldL1/xrfZw5dD7GwShq+f7b+N6Q2CZ6kGy4C57wd0qax1CVgRLPzUuPY3j3j5G72zGl05Uz0/P1t2f3CAeTcv0UiSR28r5byZyJ4IcbYgYAuticnMXWneuLRm1DTSUMlRw3Rle0++X4/FkMjLXZDIZj6+m9zON6vn55fnFXd6zvkgLd9M75TpRyKnh6HB3jIu1g2Bpacn+zTJS0sAQMkOIWLgYPoTnw8Prej6fGWT6mpqX2b3mdKvn75nCeqIm/3Kky0/ifmsnxIGB3P0psKpBsLRrrdlJDstYss/K03pAXERcmtfD66vOBHO87m7/197V9CaOBNGwBGEmCkJIOEKcMHK0QpbQ+GD3wVLfkfj/f2e7+rOqus0ANtFqEq82yaz2sPvy6vWrV9VG1OrPtcGqtlA9xq3efCti1SVRnn6LcFgZgjENnDrw8qNoBcUqUswCpEoQfKF/BpD0F8CKVKEVLf1DfTu3rudbUXtYRXcxBjNLqVZxOHCl8k0hyxu0d0d1iLCy3DLwCA0T/KFtMVwn83cg1l3cYvlWVbGCO/uUSx+HPqzp/N2xgcxS1MpTviF4d9cT0irUSAWsZCkMVsJ8hQJ030WoQouVF632PpVn+Rbuf7reKH5MZukDMZVgFThywNTCCi8tVE6yNECGX74EqcC3vgI9v+7QLZRv7aveCuzzYoOZpai1OjR8WcYNc5zJgkBZUktqqWXx0lhZ5QI2aVJ5yBy1Tr4K2xOqxdvRwvlWmE2fk1JvDD3ZxRnMrJc5dIimv4FqLIjAG+cOKZYsUljJcBKWZW2p5bEKAo+5RY7DO9H6VOrel2+lr9hhyl0Gg/Xy8Us2h4KOCaPD0Hc7xGVJxCwNmAh41eFAbJFsBY+FEbvHb/F8i3Gq613jGl6GEItvi0NTsAm0mxK63F2yXocB5cAKSAl7KCaYdWqxwt/rt+yQiwcQfA0Crwg6CIeDBc60cYYh2IUQY7kmOnCrRJJFkcJw+aclttSTCjGrvT2x+cT5VnrNpkfqx2AWRDUWLdoRNrglbJLdDvZYlFmWXbVxDgnNailcj+VbzKKfA6vQ6k3g2AhgvSzeVSFagMyiLUlmcPRexL5B4m4nwIUf5LSQuj+k8nG+db4i9mc8uR6FWVCIBW6g4fvBTVYbHzdwzZJMtIwjLSmzrH8P5gEz61G0XL7V4bvT1R9s1kjMgkIsDiwZtUVImRVpFrWk2DtY6yA8Wix3iAzE4/lWxUuyS1rVkZg1VydiOAllg6Y5wV/hxMEplkMMkaoMx6EXeSZaqKNmaL3d3Ccav/Vp7iCevfPq2FUxvBFRdaOABaPiLZpQSLcEQjxDiP1KKVO+oceUuk46xDRO3eNSvGNCdtH78tH+FtEwshzRVSOBNQfZKhBeZPZFAuUS5zOo16FFaMtQJJl1aoPTah9Ay+VbnX/9n4GrSvsHN3sci1latkjgwEK/okfc0VmITsOa+Cx2HBIbT587slOUL8f51vnCOFaNySzjH2B32zHLjSh46OfR4k10KYi8Y8B0qhXxqk0YiMfzra7q3ZZ3ujUeWDBzDWZUaxaqQ4nSGdwUBoUX1Gfh3tAUYU3L8JQowkH5Fr2+Eu1MjlmGGq28CdkM7gm5yXIpKZH4kjY7tBRRtOzrMMksjVZ2o251aLvvfGWSuB+dWeq3tcsLnMzwsU7BipD7d1KIdbI3JMRK2Yfb0YLOpwqJzYV2h1qviN8aOGRN7E9tnV41XNujrpCGMyU/CyOhJ3FpGwxEohJXt+9v0XyrZ4/SBPKqDKejvlsO0DJWq0li5aYU/iiUUatjoaprFjxQT4rz0rgS83s2knC+1XGnFe75jA2WQctcaYK/Ghl5Uq9WVxTLwcVki4wtyFgs5tZtl8+yK/lWdDRWY4Ol0dKGlJ6EEtt3pFgso4m8Q8JnOWaRyXQbNz43/W/xfOvaNjP4rMnLqM98sttawUo5UjoCI71OD7FSHv7PzFrduCQX51vn3rcDKrDGvkezALSkkXncQIc+Giv8NWax7rDFVovMpaMucXn7zTOSb/kbKuHlBej9LF21Gf3S0fzj11YSVkWtDmdW1BcGWmHNQvlf29sdAla7O27pxftbFdetyjFrfLBAt3JrSMNeJNOsMNyh1KJ4mWF+GzstNmltqV7t7tqCDvkW9aM8n7+MaeAjlZcS2Xgi8bKkXbRHill4wRKtOHlIlODy3ht62dTfT6zsx/LAzxcSCyr2/R5b3x1ab7kxWqV1EQVLsiQ17wnvQJvD1IEYpha2IFuzanp3rSi0rN+CzzGi40R/GVZht37SPcmP9xxEvpTR8gxay5LJmWHiLAzMYkENppVZE1lNH7jLaKav5h75J+SmlVuUtDmXNvlPqUI7el2Z7rDEK1ncOkhmSvt8ViJZpi7LbZk+eAHbvPUHADt3x+6otBzsRNiG1xH05mkXcOeLiTkUrbYXkkwqJG116lRvGKjV+jKkIk/j5Rbk6tFrW6DynXt3ML2/ad4fcpw99WUnH2+5kEVBAmW278fNQ8lNVp/Ae3lvUUiavz/+u9d+qzOvsKEpvN3jmq2ferN7nk1XW1WGDq2SRMpsN6ukDt5zq7cMww6g+bbMd4PegaDzLfPpMu4dbdU+vPPoMnvyGxbAzecNGYKVvdNV6uB9CYq0wLPFNh00ZIM/EfCoDddlb1/C5d6VpP7B+XnqjgeKK1AuvVnLh2DSrd5a8xAx69rw8GRFy9JquRuuKIvp5viphz1ddzzqt/8YAVN2dPaavTz/WUzeVtuyARfhFmeSAU3Zw6xoxBNymlNtLqm0Il8NpZX9b93M9r/trOe815+GCHVZzdbTr8DKwJWL0otWgdRd9galxGiJVAJ4EgYpEPa3yVjzvNfZWctWePa/j/+8ZvOXL3oWIPSluTTXo1oRs5KTQ8otDVXdKmEf8deeTdf6rrCWLv31c7b5KlqZX9j84321DPfAPKd6NatGTqsvATydhFDWapwKxEf4Zvbv0b5JdzbbrL+QVki6cjq5v+azBK5AMrIIkiXq8aEycE1e1xv9rF+nky+Hypw1Ci4U/PHWsExrVjzDd3CJZf4EqEwlLLJskmWJW31fVoyGXTJK30WsWXUqKiXMWj4Nqv/LA9oVtF57L5s3hHEYmRtquPQlHrvwoKklalV/Stb/ZqjMyaivptalbKRbCHGpgyDxn2hxCRrkNFLCkGrxt0NlqvFjqvGSOpZx8QxCy2+V+mtiUI3KqgOCLSA1yb4DUgSvrbYSNbpsWCYyeCCU8lOaW8Cpt+k3QsrhpW9AA2CWXLWguXJtL7IKW4MA1E5xavHdoPKGRhFspRADWkkMV+0WQ+D8g5vA6l97n35XoJCjmb7rS/Y5YMYaRGCTvpY/zb45UKQmgWQ7hRl5dj8wXaPZQr/PQeGTLfQLHn5A+Xl+np/n53nC8x/tAMljWkeBnAAAAABJRU5ErkJggg=="; -export default _default; -//# sourceMappingURL=icon.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/icon.d.ts.map b/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/icon.d.ts.map deleted file mode 100644 index 359bd883f..000000000 --- a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/icon.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../../src/lib/icon.ts"],"names":[],"mappings":";AAAA,wBAA4wiB"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/icon.js b/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/icon.js deleted file mode 100644 index 5b5c66f8f..000000000 --- a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/icon.js +++ /dev/null @@ -1 +0,0 @@ -export default `data:image/png;base64,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`; diff --git a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/my-near-wallet.d.ts b/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/my-near-wallet.d.ts deleted file mode 100644 index e863dae1c..000000000 --- a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/my-near-wallet.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { WalletModuleFactory, BrowserWallet } from "@near-wallet-selector/core"; -export interface MyNearWalletParams { - walletUrl?: string; - iconUrl?: string; - deprecated?: boolean; - successUrl?: string; - failureUrl?: string; -} -export declare function setupMyNearWallet({ walletUrl, iconUrl, deprecated, successUrl, failureUrl, }?: MyNearWalletParams): WalletModuleFactory; -//# sourceMappingURL=my-near-wallet.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/my-near-wallet.d.ts.map b/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/my-near-wallet.d.ts.map deleted file mode 100644 index aff4d33df..000000000 --- a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/my-near-wallet.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"my-near-wallet.d.ts","sourceRoot":"","sources":["../../../../../src/lib/my-near-wallet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EAEnB,aAAa,EAKd,MAAM,4BAA4B,CAAC;AASpC,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqOD,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,OAAc,EACd,UAAkB,EAClB,UAAe,EACf,UAAe,GAChB,GAAE,kBAAuB,GAAG,mBAAmB,CAAC,aAAa,CAAC,CA0B9D"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/my-near-wallet.js b/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/my-near-wallet.js deleted file mode 100644 index 32341e43e..000000000 --- a/packages/my-near-wallet/dist/esm/my-near-wallet/src/lib/my-near-wallet.js +++ /dev/null @@ -1,175 +0,0 @@ -import { WalletConnection } from "@near-js/wallet-account"; -import { BrowserLocalStorageKeyStore } from "@near-js/keystores-browser"; -import { createTransaction } from "@near-js/transactions"; -import { baseDecode } from "@near-js/utils"; -import { PublicKey } from "@near-js/crypto"; -import { connect } from "near-api-js"; -import { createAction } from "@near-wallet-selector/wallet-utils"; -import icon from "./icon"; -const resolveWalletUrl = (network, walletUrl) => { - if (walletUrl) { - return walletUrl; - } - switch (network.networkId) { - case "mainnet": - return "https://app.mynearwallet.com"; - case "testnet": - return "https://testnet.mynearwallet.com"; - default: - throw new Error("Invalid wallet url"); - } -}; -const setupWalletState = async (params, network) => { - const keyStore = new BrowserLocalStorageKeyStore(); - const near = await connect({ - keyStore, - // deps: { keyStore }, - walletUrl: params.walletUrl, - ...network, - headers: {}, - }); - const wallet = new WalletConnection(near, "near_app"); - return { - wallet, - keyStore, - }; -}; -const MyNearWallet = async ({ metadata, options, store, params, logger, id }) => { - const _state = await setupWalletState(params, options.network); - const getAccounts = async () => { - const accountId = _state.wallet.getAccountId(); - const account = _state.wallet.account(); - if (!accountId || !account) { - return []; - } - const publicKey = await account.connection.signer.getPublicKey(account.accountId, options.network.networkId); - return [ - { - accountId, - publicKey: publicKey ? publicKey.toString() : "", - }, - ]; - }; - const transformTransactions = async (transactions) => { - const account = _state.wallet.account(); - const { networkId, signer, provider } = account.connection; - const localKey = await signer.getPublicKey(account.accountId, networkId); - return Promise.all(transactions.map(async (transaction, index) => { - const actions = transaction.actions.map((action) => createAction(action)); - const accessKey = await account.accessKeyForTransaction(transaction.receiverId, actions, localKey); - if (!accessKey) { - throw new Error(`Failed to find matching key for transaction sent to ${transaction.receiverId}`); - } - const block = await provider.block({ finality: "final" }); - const nonce = accessKey.access_key.nonce + BigInt(index + 1); - return createTransaction(account.accountId, PublicKey.from(accessKey.public_key), transaction.receiverId, nonce, actions, baseDecode(block.header.hash)); - })); - }; - return { - async signIn({ contractId, methodNames, successUrl, failureUrl }) { - const existingAccounts = await getAccounts(); - if (existingAccounts.length) { - return existingAccounts; - } - await _state.wallet.requestSignIn({ - contractId, - methodNames, - successUrl, - failureUrl, - keyType: "ed25519", - }); - return getAccounts(); - }, - async signOut() { - if (_state.wallet.isSignedIn()) { - _state.wallet.signOut(); - } - }, - async getAccounts() { - return getAccounts(); - }, - async verifyOwner() { - throw new Error(`Method not supported by ${metadata.name}`); - }, - async signMessage({ message, nonce, recipient, callbackUrl, state }) { - logger.log("sign message", { message }); - if (id !== "my-near-wallet") { - throw Error(`The signMessage method is not supported by ${metadata.name}`); - } - const locationUrl = typeof window !== "undefined" ? window.location.href : ""; - const url = callbackUrl || locationUrl; - if (!url) { - throw new Error(`The callbackUrl is missing for ${metadata.name}`); - } - const href = new URL(params.walletUrl); - href.pathname = "sign-message"; - href.searchParams.append("message", message); - href.searchParams.append("nonce", nonce.toString("base64")); - href.searchParams.append("recipient", recipient); - href.searchParams.append("callbackUrl", url); - if (state) { - href.searchParams.append("state", state); - } - window.location.replace(href.toString()); - return; - }, - async signAndSendTransaction({ signerId, receiverId, actions, callbackUrl, }) { - // console.log('alohaws mnw signAndSendTransaction', signerId, receiverId, actions, callbackUrl) - logger.log("signAndSendTransaction", { - signerId, - receiverId, - actions, - callbackUrl, - }); - const { contract } = store.getState(); - if (!_state.wallet.isSignedIn() || !contract) { - throw new Error("Wallet not signed in"); - } - const account = _state.wallet.account(); - return account["signAndSendTransaction"]({ - receiverId: receiverId || contract.contractId, - actions: actions.map((action) => createAction(action)), - walletCallbackUrl: callbackUrl, - }); - }, - async signAndSendTransactions({ transactions, callbackUrl }) { - logger.log("signAndSendTransactions", { transactions, callbackUrl }); - if (!_state.wallet.isSignedIn()) { - throw new Error("Wallet not signed in"); - } - return _state.wallet.requestSignTransactions({ - transactions: await transformTransactions(transactions), - callbackUrl, - }); - }, - buildImportAccountsUrl() { - return `${params.walletUrl}/batch-import`; - }, - }; -}; -export function setupMyNearWallet({ walletUrl, iconUrl = icon, deprecated = false, successUrl = "", failureUrl = "", } = {}) { - return async (moduleOptions) => { - return { - id: "my-near-wallet", - type: "browser", - metadata: { - name: "MyNearWallet", - description: "NEAR wallet to store, buy, send and stake assets for DeFi.", - iconUrl, - deprecated, - available: true, - successUrl, - failureUrl, - walletUrl: resolveWalletUrl(moduleOptions.options.network, walletUrl), - }, - init: (options) => { - return MyNearWallet({ - ...options, - params: { - walletUrl: resolveWalletUrl(options.options.network, walletUrl), - }, - }); - }, - }; - }; -} diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/index.d.ts b/packages/my-near-wallet/dist/esm/wallet-utils/src/index.d.ts deleted file mode 100644 index 9b70859cc..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { createAction, signTransactions } from "./lib/wallet-utils"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/index.d.ts.map b/packages/my-near-wallet/dist/esm/wallet-utils/src/index.d.ts.map deleted file mode 100644 index 0d9c8c9c2..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../wallet-utils/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/index.js b/packages/my-near-wallet/dist/esm/wallet-utils/src/index.js deleted file mode 100644 index 27b22f6ee..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/index.js +++ /dev/null @@ -1 +0,0 @@ -export { createAction, signTransactions } from "./lib/wallet-utils"; diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/create-action.d.ts b/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/create-action.d.ts deleted file mode 100644 index da65b4629..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/create-action.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as nearAPI from "near-api-js"; -import type { Action } from "@near-wallet-selector/core"; -export declare const createAction: (action: Action) => nearAPI.transactions.Action; -//# sourceMappingURL=create-action.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/create-action.d.ts.map b/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/create-action.d.ts.map deleted file mode 100644 index fe8487b52..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/create-action.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"create-action.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/create-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAoB,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAgB3E,eAAO,MAAM,YAAY,WAAY,MAAM,gCAqD1C,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/create-action.js b/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/create-action.js deleted file mode 100644 index d49ee0465..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/create-action.js +++ /dev/null @@ -1,51 +0,0 @@ -import * as nearAPI from "near-api-js"; -const { transactions, utils } = nearAPI; -const getAccessKey = (permission) => { - if (permission === "FullAccess") { - return transactions.fullAccessKey(); - } - const { receiverId, methodNames = [] } = permission; - const allowance = permission.allowance - ? BigInt(permission.allowance) - : undefined; - return transactions.functionCallAccessKey(receiverId, methodNames, allowance); -}; -export const createAction = (action) => { - switch (action.type) { - case "CreateAccount": - return transactions.createAccount(); - case "DeployContract": { - const { code } = action.params; - return transactions.deployContract(code); - } - case "FunctionCall": { - const { methodName, args, gas, deposit } = action.params; - console.log('alohaws action', action); - return transactions.functionCall(methodName, args, BigInt(gas), BigInt(deposit)); - } - case "Transfer": { - const { deposit } = action.params; - return transactions.transfer(BigInt(deposit)); - } - case "Stake": { - const { stake, publicKey } = action.params; - return transactions.stake(BigInt(stake), utils.PublicKey.from(publicKey)); - } - case "AddKey": { - const { publicKey, accessKey } = action.params; - return transactions.addKey(utils.PublicKey.from(publicKey), - // TODO: Use accessKey.nonce? near-api-js seems to think 0 is fine? - getAccessKey(accessKey.permission)); - } - case "DeleteKey": { - const { publicKey } = action.params; - return transactions.deleteKey(utils.PublicKey.from(publicKey)); - } - case "DeleteAccount": { - const { beneficiaryId } = action.params; - return transactions.deleteAccount(beneficiaryId); - } - default: - throw new Error("Invalid action type"); - } -}; diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts b/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts deleted file mode 100644 index fd0b85445..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Signer } from "@near-js/signers"; -import type { SignedTransaction } from "@near-js/transactions"; -import type { Network, Transaction } from "@near-wallet-selector/core/src"; -export declare const signTransactions: (transactions: Array, signer: Signer, network: Network) => Promise; -//# sourceMappingURL=sign-transactions.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts.map b/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts.map deleted file mode 100644 index 9624b4968..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sign-transactions.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/sign-transactions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAIzE,eAAO,MAAM,gBAAgB,iBACb,KAAK,CAAC,WAAW,CAAC,UACxB,MAAM,WACL,OAAO,iCAoDjB,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/sign-transactions.js b/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/sign-transactions.js deleted file mode 100644 index d7d30548c..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/sign-transactions.js +++ /dev/null @@ -1,34 +0,0 @@ -import { KeyType, PublicKey } from "@near-js/crypto"; -import { createTransaction, signTransaction } from "@near-js/transactions"; -import { baseDecode } from "@near-js/utils"; -// import * as nearAPI from "near-api-js"; -import { JsonRpcProvider } from "@near-js/providers"; -import { createAction } from "./create-action"; -export const signTransactions = async (transactions, signer, network) => { - const provider = new JsonRpcProvider({ - url: network.nodeUrl, - }); - const signedTransactions = []; - for (let i = 0; i < transactions.length; i++) { - const publicKey = await signer.getPublicKey(transactions[i].signerId, network.networkId); - const [block, accessKey] = await Promise.all([ - provider.block({ finality: "final" }), - provider.query({ - request_type: "view_access_key", - finality: "final", - account_id: transactions[i].signerId, - public_key: publicKey.toString(), - }), - ]); - const actions = transactions[i].actions.map((action) => createAction(action)); - const transaction = createTransaction(transactions[i].signerId, new PublicKey({ - keyType: KeyType.ED25519, - data: publicKey.data - }), - // PublicKey.from(publicKey.toString()), - transactions[i].receiverId, accessKey.nonce + i + 1, actions, baseDecode(block.header.hash)); - const response = await signTransaction(transaction, signer, transactions[i].signerId, network.networkId); - signedTransactions.push(response[1]); - } - return signedTransactions; -}; diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts b/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts deleted file mode 100644 index ca97d2268..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createAction } from "./create-action"; -import { signTransactions } from "./sign-transactions"; -export { createAction, signTransactions }; -//# sourceMappingURL=wallet-utils.d.ts.map \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts.map b/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts.map deleted file mode 100644 index 209167ee4..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-utils.d.ts","sourceRoot":"","sources":["../../../../../../wallet-utils/src/lib/wallet-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file diff --git a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/wallet-utils.js b/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/wallet-utils.js deleted file mode 100644 index d5a53e83f..000000000 --- a/packages/my-near-wallet/dist/esm/wallet-utils/src/lib/wallet-utils.js +++ /dev/null @@ -1,3 +0,0 @@ -import { createAction } from "./create-action"; -import { signTransactions } from "./sign-transactions"; -export { createAction, signTransactions }; diff --git a/packages/wallet-utils/dist/cjs/core/src/index.d.ts b/packages/wallet-utils/dist/cjs/core/src/index.d.ts deleted file mode 100644 index 18e086590..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/index.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type { WalletSelector, WalletSelectorParams, WalletSelectorEvents, WalletSelectorStore, } from "./lib/wallet-selector.types"; -export { setupWalletSelector } from "./lib/wallet-selector.js"; -export type { Network, NetworkId } from "./lib/options.types"; -export type { Subscription, StorageService, JsonStorageService, EventEmitterService, } from "./lib/services"; -export { EventEmitter } from "./lib/services"; -export type { Optional } from "./lib/utils.types"; -export type { WalletSelectorState, ContractState, ModuleState, AccountState, } from "./lib/store.types"; -export type { WalletModuleFactory, WalletModule, WalletBehaviourFactory, WalletBehaviourOptions, Wallet, WalletType, WalletMetadata, WalletEvents, SignInParams, BrowserWalletMetadata, BrowserWalletBehaviour, BrowserWallet, InjectedWalletMetadata, InjectedWalletBehaviour, InjectedWallet, InstantLinkWalletMetadata, InstantLinkWalletBehaviour, InstantLinkWallet, HardwareWalletMetadata, HardwareWalletSignInParams, HardwareWalletBehaviour, HardwareWallet, HardwareWalletAccount, BridgeWalletMetadata, BridgeWalletBehaviour, BridgeWallet, VerifiedOwner, VerifyOwnerParams, Account, Transaction, Action, ActionType, CreateAccountAction, DeployContractAction, FunctionCallAction, TransferAction, StakeAction, AddKeyAction, DeleteKeyAction, DeleteAccountAction, AddKeyPermission, AccountImportData, SignedMessage, SignMessageParams, } from "./lib/wallet"; -export type { FinalExecutionOutcome } from "@near-js/types"; -export { waitFor, getActiveAccount, isCurrentBrowserSupported, verifyFullKeyBelongsToUser, verifySignature, serializeNep413, } from "./lib/helpers"; -export { translate, allowOnlyLanguage } from "./lib/translate/translate"; -export { mockWallet } from './lib/testUtils'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/index.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/index.d.ts.map deleted file mode 100644 index f98229043..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,EACN,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/index.js b/packages/wallet-utils/dist/cjs/core/src/index.js deleted file mode 100644 index cfb828bf8..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/index.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.mockWallet = exports.allowOnlyLanguage = exports.translate = exports.serializeNep413 = exports.verifySignature = exports.verifyFullKeyBelongsToUser = exports.isCurrentBrowserSupported = exports.getActiveAccount = exports.waitFor = exports.EventEmitter = exports.setupWalletSelector = void 0; -var wallet_selector_js_1 = require("./lib/wallet-selector.js"); -Object.defineProperty(exports, "setupWalletSelector", { enumerable: true, get: function () { return wallet_selector_js_1.setupWalletSelector; } }); -var services_1 = require("./lib/services"); -Object.defineProperty(exports, "EventEmitter", { enumerable: true, get: function () { return services_1.EventEmitter; } }); -var helpers_1 = require("./lib/helpers"); -Object.defineProperty(exports, "waitFor", { enumerable: true, get: function () { return helpers_1.waitFor; } }); -Object.defineProperty(exports, "getActiveAccount", { enumerable: true, get: function () { return helpers_1.getActiveAccount; } }); -Object.defineProperty(exports, "isCurrentBrowserSupported", { enumerable: true, get: function () { return helpers_1.isCurrentBrowserSupported; } }); -Object.defineProperty(exports, "verifyFullKeyBelongsToUser", { enumerable: true, get: function () { return helpers_1.verifyFullKeyBelongsToUser; } }); -Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return helpers_1.verifySignature; } }); -Object.defineProperty(exports, "serializeNep413", { enumerable: true, get: function () { return helpers_1.serializeNep413; } }); -var translate_1 = require("./lib/translate/translate"); -Object.defineProperty(exports, "translate", { enumerable: true, get: function () { return translate_1.translate; } }); -Object.defineProperty(exports, "allowOnlyLanguage", { enumerable: true, get: function () { return translate_1.allowOnlyLanguage; } }); -var testUtils_1 = require("./lib/testUtils"); -Object.defineProperty(exports, "mockWallet", { enumerable: true, get: function () { return testUtils_1.mockWallet; } }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/constants.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/constants.d.ts deleted file mode 100644 index ea8f9e98c..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/constants.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export declare const PACKAGE_NAME = "near-wallet-selector"; -export declare const RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -export declare const REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -export declare const REMEMBER_RECENT_WALLETS_STATE: { - ENABLED: string; - DISABLED: string; -}; -export declare const CONTRACT = "contract"; -export declare const PENDING_CONTRACT = "contract:pending"; -export declare const SELECTED_WALLET_ID = "selectedWalletId"; -export declare const PENDING_SELECTED_WALLET_ID = "selectedWalletId:pending"; -//# sourceMappingURL=constants.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/constants.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/constants.d.ts.map deleted file mode 100644 index 30185737c..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/constants.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,yBAAyB,CAAC;AACnD,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,0BAA0B,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/constants.js b/packages/wallet-utils/dist/cjs/core/src/lib/constants.js deleted file mode 100644 index 50899a58d..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/constants.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PENDING_SELECTED_WALLET_ID = exports.SELECTED_WALLET_ID = exports.PENDING_CONTRACT = exports.CONTRACT = exports.REMEMBER_RECENT_WALLETS_STATE = exports.REMEMBER_RECENT_WALLETS = exports.RECENTLY_SIGNED_IN_WALLETS = exports.PACKAGE_NAME = void 0; -exports.PACKAGE_NAME = "near-wallet-selector"; -exports.RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -exports.REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -exports.REMEMBER_RECENT_WALLETS_STATE = { - ENABLED: "enabled", - DISABLED: "disabled", -}; -exports.CONTRACT = "contract"; -exports.PENDING_CONTRACT = "contract:pending"; -exports.SELECTED_WALLET_ID = `selectedWalletId`; -exports.PENDING_SELECTED_WALLET_ID = `selectedWalletId:pending`; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/detect-browser.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/detect-browser.d.ts deleted file mode 100644 index 6c6f4c418..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/detect-browser.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Browser = "aol" | "edge" | "edge-ios" | "yandexbrowser" | "kakaotalk" | "samsung" | "silk" | "miui" | "beaker" | "edge-chromium" | "chrome" | "chromium-webview" | "phantomjs" | "crios" | "firefox" | "fxios" | "opera-mini" | "opera" | "pie" | "netfront" | "ie" | "bb10" | "android" | "ios" | "safari" | "facebook" | "instagram" | "ios-webview" | "curl" | "searchbot"; -export declare const isCurrentBrowserSupported: (supportedBrowser: Array) => boolean; -//# sourceMappingURL=detect-browser.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/detect-browser.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/detect-browser.d.ts.map deleted file mode 100644 index 656e85614..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/detect-browser.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"detect-browser.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/detect-browser.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GACf,KAAK,GACL,MAAM,GACN,UAAU,GACV,eAAe,GACf,WAAW,GACX,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,OAAO,GACP,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO,GACP,KAAK,GACL,UAAU,GACV,IAAI,GACJ,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,UAAU,GACV,WAAW,GACX,aAAa,GACb,MAAM,GACN,WAAW,CAAC;AAoEhB,eAAO,MAAM,yBAAyB,qBAClB,KAAK,CAAC,OAAO,CAAC,KAC/B,OAeF,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/detect-browser.js b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/detect-browser.js deleted file mode 100644 index a03402ab2..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/detect-browser.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; -/* eslint-disable no-useless-escape */ -// https://github.com/DamonOehlman/detect-browser/blob/master/src/index.ts -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isCurrentBrowserSupported = void 0; -const SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/; -const userAgentRules = [ - ["aol", /AOLShield\/([0-9\._]+)/], - ["edge", /Edge\/([0-9\._]+)/], - ["edge-ios", /EdgiOS\/([0-9\._]+)/], - ["yandexbrowser", /YaBrowser\/([0-9\._]+)/], - ["kakaotalk", /KAKAOTALK\s([0-9\.]+)/], - ["samsung", /SamsungBrowser\/([0-9\.]+)/], - ["silk", /\bSilk\/([0-9._-]+)\b/], - ["miui", /MiuiBrowser\/([0-9\.]+)$/], - ["beaker", /BeakerBrowser\/([0-9\.]+)/], - ["edge-chromium", /EdgA?\/([0-9\.]+)/], - [ - "chromium-webview", - /(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/, - ], - ["chrome", /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/], - ["phantomjs", /PhantomJS\/([0-9\.]+)(:?\s|$)/], - ["crios", /CriOS\/([0-9\.]+)(:?\s|$)/], - ["firefox", /Firefox\/([0-9\.]+)(?:\s|$)/], - ["fxios", /FxiOS\/([0-9\.]+)/], - ["opera-mini", /Opera Mini.*Version\/([0-9\.]+)/], - ["opera", /Opera\/([0-9\.]+)(?:\s|$)/], - ["opera", /OPR\/([0-9\.]+)(:?\s|$)/], - ["pie", /^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/], - [ - "pie", - /^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/, - ], - ["netfront", /^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/], - ["ie", /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/], - ["ie", /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/], - ["ie", /MSIE\s(7\.0)/], - ["bb10", /BB10;\sTouch.*Version\/([0-9\.]+)/], - ["android", /Android\s([0-9\.]+)/], - ["ios", /Version\/([0-9\._]+).*Mobile.*Safari.*/], - ["safari", /Version\/([0-9\._]+).*Safari/], - ["facebook", /FB[AS]V\/([0-9\.]+)/], - ["instagram", /Instagram\s([0-9\.]+)/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Mobile/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Gecko\)$/], - ["curl", /^curl\/([0-9\.]+)$/], - ["searchbot", SEARCHBOX_UA_REGEX], -]; -const matchUserAgent = (ua) => { - return (ua !== "" && - userAgentRules.reduce((matched, [browser, regex]) => { - if (matched) { - return matched; - } - const uaMatch = regex.exec(ua); - return !!uaMatch && [browser, uaMatch]; - }, false)); -}; -const isCurrentBrowserSupported = (supportedBrowser) => { - if (typeof navigator === "undefined") { - return false; - } - const matchedRule = matchUserAgent(navigator.userAgent); - if (!matchedRule) { - return false; - } - const [name] = matchedRule; - if (name === "searchbot") { - return false; - } - return !!supportedBrowser.find((item) => item === name); -}; -exports.isCurrentBrowserSupported = isCurrentBrowserSupported; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts deleted file mode 100644 index 6741ffe8c..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { AccountState, WalletSelectorState } from "../store.types"; -export declare const getActiveAccount: (state: WalletSelectorState) => AccountState | null; -//# sourceMappingURL=getActiveAccount.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts.map deleted file mode 100644 index 69c3c7609..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/getActiveAccount.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"getActiveAccount.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/getActiveAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,eAAO,MAAM,gBAAgB,UACpB,mBAAmB,KACzB,YAAY,GAAG,IAEjB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/getActiveAccount.js b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/getActiveAccount.js deleted file mode 100644 index 0da744cc5..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/getActiveAccount.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getActiveAccount = void 0; -const getActiveAccount = (state) => { - return state.accounts.find((account) => account.active) || null; -}; -exports.getActiveAccount = getActiveAccount; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/index.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/index.d.ts deleted file mode 100644 index 78cea0fee..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./waitFor"; -export * from "./getActiveAccount"; -export * from "./detect-browser"; -export * from "./verify-signature/verify-signature"; -export * from "./verify-signature/payload"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/index.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/index.d.ts.map deleted file mode 100644 index e1ce0874b..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/index.js b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/index.js deleted file mode 100644 index eb80ab43a..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/index.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./waitFor"), exports); -__exportStar(require("./getActiveAccount"), exports); -__exportStar(require("./detect-browser"), exports); -__exportStar(require("./verify-signature/verify-signature"), exports); -__exportStar(require("./verify-signature/payload"), exports); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts deleted file mode 100644 index 207d814af..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Schema } from "borsh"; -import type { SignMessageParams } from "../../wallet"; -export interface Payload { - message: string; - nonce: Buffer; - recipient: string; - tag?: number; - callbackUrl?: string; -} -export declare const createPayload: (data: SignMessageParams) => Payload; -export declare const payloadSchema: Schema; -export declare const serializeNep413: (signMessageParams: SignMessageParams) => Buffer; -//# sourceMappingURL=payload.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts.map deleted file mode 100644 index 43755b9b9..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/payload.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAY,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,eAAO,MAAM,aAAa,SAAU,iBAAiB,KAAG,OAUvD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAe3B,CAAC;AAaF,eAAO,MAAM,eAAe,sBAAuB,iBAAiB,KAAG,MAGtE,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/payload.js b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/payload.js deleted file mode 100644 index 5655fd8cd..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/payload.js +++ /dev/null @@ -1,102 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.serializeNep413 = exports.payloadSchema = exports.createPayload = void 0; -const borsh_1 = require("borsh"); -const createPayload = (data) => { - return { - message: data.message, - nonce: data.nonce, - recipient: data.recipient, - // The tag's value is a hardcoded value as per - // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) - tag: 2147484061, // NEP413 tag - callbackUrl: data.callbackUrl || undefined, - }; -}; -exports.createPayload = createPayload; -exports.payloadSchema = { - struct: { - tag: "u32", - message: "string", - nonce: { - array: { - type: "u8", - len: 32 - } - }, // Assuming this is a 32-byte buffer - recipient: "string", - callbackUrl: { - option: "string" - }, - } -}; -// const payloadSchema: Schema = { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], // Assuming this is a 32-byte buffer -// ["recipient", "string"], -// ["callbackUrl", { kind: "option", type: "string" }], -// ], -// }; -const serializeNep413 = (signMessageParams) => { - const payload = (0, exports.createPayload)(signMessageParams); - return Buffer.from((0, borsh_1.serialize)(exports.payloadSchema, payload)); -}; -exports.serializeNep413 = serializeNep413; -// export const serializeNep413 = (signMessageParams: SignMessageParams): Buffer => { -// const payload = createPayload(signMessageParams); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; -// import type { SignMessageParams } from "../../wallet"; -// import { serialize } from "borsh"; -// -// export class Payload { -// tag: number; -// message: string; -// nonce: Buffer; -// recipient: string; -// callbackUrl?: string; -// -// constructor(data: SignMessageParams) { -// // The tag's value is a hardcoded value as per -// // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) -// this.tag = 2147484061; -// this.message = data.message; -// this.nonce = data.nonce; -// this.recipient = data.recipient; -// if (data.callbackUrl) { -// this.callbackUrl = data.callbackUrl; -// } -// } -// } -// -// export const payloadSchema = new Map([ -// [ -// Payload, -// { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], -// ["recipient", "string"], -// [ -// "callbackUrl", -// { -// kind: "option", -// type: "string", -// }, -// ], -// ], -// }, -// ], -// ]); -// -// export const serializeNep413 = ( -// signMessageParams: SignMessageParams -// ): Buffer => { -// const payload = new Payload({ ...signMessageParams }); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts deleted file mode 100644 index 45cd3629b..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { VerifyFullKeyBelongsToUserParams, VerifySignatureParams } from "./verify-signature.types"; -export declare const verifySignature: ({ publicKey, signature, message, nonce, recipient, callbackUrl, }: VerifySignatureParams) => boolean; -export declare const verifyFullKeyBelongsToUser: ({ publicKey, accountId, network, }: VerifyFullKeyBelongsToUserParams) => Promise; -//# sourceMappingURL=verify-signature.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map deleted file mode 100644 index 6e0eeae8d..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gCAAgC,EAChC,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAOlC,eAAO,MAAM,eAAe,sEAOzB,qBAAqB,YAkBvB,CAAC;AAiBF,eAAO,MAAM,0BAA0B,uCAIpC,gCAAgC,qBAQlC,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.js b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.js deleted file mode 100644 index 5d00297d2..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.verifyFullKeyBelongsToUser = exports.verifySignature = void 0; -const borsh_1 = require("borsh"); -const js_sha256_1 = require("js-sha256"); -const payload_1 = require("./payload"); -const crypto_1 = require("../../../../../../../near-api-js/packages/crypto"); -// import {KeyType, PublicKey, publicKeyFrom} from "@near-js/crypto"; -const providers_1 = require("@near-js/providers"); -const verifySignature = ({ publicKey, signature, message, nonce, recipient, callbackUrl, }) => { - // Reconstruct the payload that was **actually signed** - const payload = { message, nonce, recipient, callbackUrl }; - // Serialize payload based on payloadSchema - const borshPayload = (0, borsh_1.serialize)(payload_1.payloadSchema, payload); - // Hash the payload as in the NEP0413 referenced example - // https://github.com/near/NEPs/blob/master/neps/nep-0413.md#references - // https://github.com/gagdiez/near-login/blob/main/authenticate/wallet-authenticate.js#L21 - const hashedPayload = Uint8Array.from(js_sha256_1.sha256.array(borshPayload)); - // Convert real signature to buffer base64 - const realSignature = Buffer.from(signature, "base64"); - const pk = (0, crypto_1.publicKeyFrom)(publicKey); - // Verify the signature - return pk.verify(hashedPayload, realSignature); -}; -exports.verifySignature = verifySignature; -const fetchAllUserKeys = async ({ accountId, network, publicKey, }) => { - const provider = new providers_1.JsonRpcProvider({ url: network.nodeUrl }); - const key = await provider.query({ - request_type: "view_access_key", - account_id: accountId, - finality: "final", - public_key: publicKey, - }); - return key; -}; -const verifyFullKeyBelongsToUser = async ({ publicKey, accountId, network, }) => { - const { permission } = await fetchAllUserKeys({ - accountId, - network, - publicKey, - }); - return permission === "FullAccess"; -}; -exports.verifyFullKeyBelongsToUser = verifyFullKeyBelongsToUser; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts deleted file mode 100644 index 50312b798..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Network } from "../../options.types"; -import { KeyType } from "@near-js/crypto"; -export interface IPublicKey { - keyType: KeyType; - data: Uint8Array; -} -export interface VerifySignatureParams { - publicKey: IPublicKey; - signature: string; - message: string; - nonce: Buffer; - recipient: string; - callbackUrl?: string; -} -export interface VerifyFullKeyBelongsToUserParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -export interface ViewAccessKeyParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -//# sourceMappingURL=verify-signature.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map deleted file mode 100644 index ad3eabbdf..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/verify-signature/verify-signature.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/waitFor.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/waitFor.d.ts deleted file mode 100644 index c73405a42..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/waitFor.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export declare const waitFor: (cb: () => boolean, opts?: { - timeout?: number; - interval?: number; -}) => Promise; -//# sourceMappingURL=waitFor.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/waitFor.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/waitFor.d.ts.map deleted file mode 100644 index 01d36b6d7..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/waitFor.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"waitFor.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/waitFor.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,OAAO,OACd,MAAM,OAAO,SACX;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,qBAU9C,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/waitFor.js b/packages/wallet-utils/dist/cjs/core/src/lib/helpers/waitFor.js deleted file mode 100644 index 8d37d4cef..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/helpers/waitFor.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.waitFor = void 0; -const wait = (ms) => { - return new Promise((resolve) => setTimeout(resolve, ms)); -}; -const poll = async (cb, interval, remaining) => { - const result = cb(); - if (result) { - return result; - } - if (!remaining) { - throw new Error("Exceeded timeout"); - } - return wait(interval).then(() => poll(cb, interval, remaining - 1)); -}; -const waitFor = async (cb, opts = {}) => { - const { timeout = 100, interval = 50 } = opts; - return Promise.race([ - wait(timeout).then(() => { - throw new Error("Exceeded timeout"); - }), - poll(cb, interval, Math.floor(timeout / interval)), - ]); -}; -exports.waitFor = waitFor; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/ar.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/ar.json deleted file mode 100644 index ebe6801b2..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/ar.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "صل محفظتك", - "whatIsAWallet": "ما هي المحفظة؟", - "secureAndManage": "تأمين وإدارة الممتلكات الرقمية الخاصة بك", - "safelyStore": "قم بتخزين و ارسال عملاتك و أصولك الرقمية بأمان", - "logInToAny": "سجل الدخول إلى أي تطبيق يستخدم نير", - "noNeedToCreate": ".لا داعي لإنشاء حساب جديد. فقط قم بتوصيل محفظتك وانطلق", - "getAWallet": "احصل على محفظة", - "useAWallet": "استخدم محفظة لتأمين وإدارة أصول نير الخاصة بك، وادخل لأي تطبيق يستخدم نير دون الحاجة إلى اسم المستخدم وكلمةالمرور", - "connectionFailed": "اتصال فاشل", - "connectionSuccessful": "اتصال ناجح", - "rememberWallet": "تذكر المحافظ", - "connected": "متصل", - "connectingTo": "جاري الاتصال ب", - "connectingMessage": { - "injected": "وافق على الاتصال في نافذة الإضافة", - "browser": "وافق على الاتصال في المحفظة بعد إعادة توجيه", - "hardware": "وافق على الاتصال في جهاز ليدجر", - "bridge": "وافق على الاتصال في المحفظة" - } - }, - "ledger": { - "connectWithLedger": "اتصل مع ليدجر", - "makeSureYourLedger": "تأكد أن ليدجر متصل بأمان, و أن تطبيق نير مفتوح في جهازك", - "continue": "تابع", - "specifyHDPath": "حدد مسار الحساب", - "enterYourPreferredHDPath": "أدخل مسار الحساب المفضل، ثم ابحث عن كل الحسابات النشطة", - "scan": "مسح", - "retry": "أعد المحاولة", - "ledgerIsNotAvailable": "ليدجر غير متوفر", - "accessDeniedToUseLedgerDevice": "تم رفض الاتصال بليدجر", - "noAccountsFound": "لم يتم العثور على أي حسابات", - "selectYourAccounts": "حدد حساباتك", - "connecting1Account": "جاري الاتصال بحساب واحد", - "cantFindAnyAccount": "لا يمكن العثور على أي حساب مرتبط بهذا ليدجر الرجاء إنشاء حساب نير جديد على", - "orConnectAnAnotherLedger": "او اربط جهاز ليدجر آخر", - "connecting": "جاري الاتصال", - "ofAccounts": "من الحسابات", - "failedToAutomatically": "فشل في الاتصال بالحساب تلقائيا. يرجى الاتصال بالحساب يدويا", - "overviewTheListOfAuthorized": "لائحة الحسابات المصرح بها, أكمل تسجيل الدخول بالنقر على الزر أدناه", - "finish": "إنهاء" - }, - "install": { - "youllNeedToInstall": "ستحتاج لتثبيت", - "toContinueAfterInstalling": "للاستكمال. بعد التثبيت", - "refreshThePage": "قم بتحديث الصفحة", - "open": "افتح" - }, - "qr": { - "copiedToClipboard": "تم النسخ", - "failedToCopy": "فشل النسخ", - "scanWithYourMobile": "امسح بجهازك المحمول", - "copyToClipboard": "نسخ", - "preferTheOfficial": "تفضل الحوار الرسمي ل", - "open": "فتح" - }, - "walletTypes": { - "hardware": "محفظة الأجهزة", - "browser": "محفظة المتصفح", - "injected": "ملحق المحفظة", - "bridge": "محفظة الجسر", - "mobile": "محفظة الجوال", - "instant-link": "محفظة الرابط الفوري" - }, - "exportAccounts": { - "afterDecide": "بعد اتخاذ قرار بشأن محفظة، يمكنك اختيار الحسابات التي تريد نقلها.", - "chooseAWallet": "اختر محفظة", - "disclaimer": "لن تتمكن من نقل الحسابات التي لم يتم تمويلها أو استخدامها على NEAR.", - "selectAWallet": "اختر محفظة تناسب احتياجاتك وتدعم حساباتك المتصلة.", - "selectYourAccounts": "حدد حساباتك", - "transferYourAccounts": "نقل حساباتك", - "warning": "لا تدعم تصدير الحسابات في الوقت الحالي. يرجى اختيار محفظة أخرى.", - "complete": { - "button": "أكمل", - "descOne": "سيتم توجيهك الآن إلى المحفظة التي اخترتها لإكمال النقل.", - "descTwo": "بمجرد إكمال جزء الاستيراد من العملية من المحفظة المحددة، اضغط على الزر لإكمال عملية النقل.", - "startOverButton": "ابدأ من جديد", - "title": "أكمل النقل" - }, - "getPassphrase": { - "button": "تابع", - "checkLabel": "لقد قمت بنسخ أو كتابة كلمة المرور", - "desc": "ستحتاج إلى إدخال هذه الكلمة السرية عند بدء تصدير حساباتك إلى محفظة مختلفة.", - "label": "انقر لنسخ", - "title": "انسخ كلمة المرور المؤقتة", - "transferButton": "نقل الحسابات" - }, - "selectAccounts": { - "button": "تابع", - "deselectAll": "إلغاء تحديد الكل", - "error": "الحساب غير موجود", - "noBalance": "الحساب غير ممول", - "selectAll": "تحديد الكل", - "title": "حدد الحسابات لنقلها", - "unavailable": "النقل غير متاح", - "warningLedger": "دعم Ledger مطلوب" - }, - "walletTypes": { - "bridge": "محفظة الجسر", - "browser": "محفظة المتصفح", - "hardware": "محفظة الأجهزة", - "injected": "ملحق المحفظة", - "mobile": "محفظة الجوال" - } - } - }, - "component": { - "clickToCopy": { - "label": "تم النسخ", - "tooltip": "انقر لنسخ" - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/bg.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/bg.json deleted file mode 100644 index 5fd192bad..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/bg.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Свържете вашия Портфейл", - "whatIsAWallet": "Какво е Портфейл?", - "secureAndManage": "Защитете и управлявайте дигиталните си активи", - "safelyStore": "Съхранявайте и прехвърляйте безопасно вашите крипто и NFT.", - "logInToAny": "Използвайте всяко приложение на NEAR", - "noNeedToCreate": "Няма нужда да създавате нови профили. Свържете портфейла си и сте готови!", - "getAWallet": "Създайте Портфейл", - "useAWallet": "Използвайте портфейла, за да защитите и управлявате активите си на NEAR както и да използвате всяко приложение на NEAR без нужда от потребителски имена и пароли.", - "connectionFailed": "Свързването неуспешно", - "connectionSuccessful": "Свързването успешно", - "rememberWallet": "Запази портфейлите", - "connected": "Свързан", - "connectingTo": "Свързване към", - "connectingMessage": { - "injected": "Потвърдете свързването в прозореца на разширението", - "browser": "Потвърдете свързването в портфейла след пренасочването", - "hardware": "Потвърдете свързването в хардуерния портфейл", - "bridge": "Потвърдете връзката в портфейла" - } - }, - "ledger": { - "connectWithLedger": "Свържете се с Ledger", - "makeSureYourLedger": "Уверете се, че вашият Ledger е свързан и че приложението NEAR е отворено нa него.", - "continue": "Продължете", - "specifyHDPath": "Посочете HD път", - "enterYourPreferredHDPath": "Въведете предпочитания HD път, след което сканирайте за активни акаунти.", - "scan": "Сканирайте", - "retry": "Опитайте отново", - "ledgerIsNotAvailable": "Ledger устройството не е достъпно", - "accessDeniedToUseLedgerDevice": "Достъпът за използване на Ledger е отказан", - "noAccountsFound": "Няма намерени профили", - "selectYourAccounts": "Изберете вашите профили", - "connecting1Account": "Свързване на 1 профил", - "cantFindAnyAccount": "Няма намерени профили, съврзани с този Ledger. Моля, създайте нов NEAR профил на", - "orConnectAnAnotherLedger": "или свържете друг Ledger.", - "connecting": "Свързване", - "ofAccounts": "от профили", - "failedToAutomatically": "Автоматичното намиране на профила не бе успешно. Въведете го ръчно:", - "overviewTheListOfAuthorized": "Прегледайте списъка с упълномощени профили, завършете влизането, като щракнете върху бутона по-долу..", - "finish": "Завършете" - }, - "install": { - "youllNeedToInstall": "Ще трябва да инсталирате", - "toContinueAfterInstalling": "за да продължите. След инсталиране", - "refreshThePage": "презаредете страницата.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано в клипборда", - "failedToCopy": "Неуспешно копиране в клипборда", - "scanWithYourMobile": " Сканирайте с мобилното си устройство", - "copyToClipboard": " Копирайте в клипборда", - "preferTheOfficial": "Предпочитан език за кореспонденция", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардуерен портфейл", - "browser": "Портфейл в браузъра", - "injected": "Разширение на портфейл", - "bridge": "Мостов портфейл", - "mobile": "Мобилен портфейл", - "instant-link": "Мигновен портфейл" - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/en.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/en.json deleted file mode 100644 index ec6ae2981..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/en.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Connect Your Wallet", - "whatIsAWallet": "What is a Wallet?", - "secureAndManage": "Secure & Manage Your Digital Assets", - "safelyStore": "Safely store and transfer your crypto and NFTs.", - "logInToAny": "Log In to Any NEAR App", - "noNeedToCreate": "No need to create new accounts or credentials. Connect your wallet and you are good to go!", - "getAWallet": "Get a Wallet", - "useAWallet": "Use a wallet to secure and manage your NEAR assets, and to log in to any NEAR app without the need for usernames and passwords.", - "connectionFailed": "Connection Failed", - "connectionSuccessful": "Connection Successful", - "rememberWallet": "Remember wallets", - "connected": "Connected", - "connectingTo": "Connecting to", - "connectingMessage": { - "injected": "Confirm the connection in the extension window", - "browser": "Confirm the connection in the wallet after redirect", - "hardware": "Confirm the connection in the ledger device", - "bridge": "Confirm the connection in the wallet" - } - }, - "ledger": { - "connectWithLedger": "Connect with Ledger", - "makeSureYourLedger": "Make sure your Ledger is connected securely, and that the NEAR app is open on your device", - "continue": "Continue", - "specifyHDPath": "Specify HD Path", - "enterYourPreferredHDPath": "Enter your preferred HD path, then scan for any active accounts.", - "scan": "Scan", - "retry": "Retry", - "ledgerIsNotAvailable": "Ledger is not available", - "accessDeniedToUseLedgerDevice": "Access denied to use Ledger device", - "noAccountsFound": "No Accounts Found", - "selectYourAccounts": "Select Your Accounts", - "connecting1Account": "Connecting 1 Account", - "cantFindAnyAccount": "Can't find any account associated with this Ledger. Please create a new NEAR account on", - "orConnectAnAnotherLedger": "or connect an another Ledger.", - "connecting": "Connecting", - "ofAccounts": "of Accounts", - "failedToAutomatically": "Failed to automatically find account id. Provide it manually:", - "overviewTheListOfAuthorized": "Overview the list of authorized account(s), complete sign in by clicking the button below.", - "finish": "Finish" - }, - "install": { - "youllNeedToInstall": "You'll need to install", - "toContinueAfterInstalling": "to continue. After installing", - "refreshThePage": "refresh the page.", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "Copied to clipboard", - "failedToCopy": "Failed to copy to clipboard", - "scanWithYourMobile": "Scan with Your Mobile Device", - "copyToClipboard": " Copy to clipboard", - "preferTheOfficial": "Prefer the official dialogue of", - "open": "Open" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Choose a Wallet", - "transferYourAccounts": "Transfer Your Accounts", - "selectAWallet": "Select a wallet that fits your needs and supports your connected accounts.", - "selectYourAccounts": "Select Your Accounts", - "afterDecide": "After you decide on a wallet, you can select which accounts you want to transfer.", - "disclaimer": "You won’t be able to transfer accounts that have never been funded or used on NEAR.", - "warning": "does not support account export at this time. Please select another wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Select Accounts to Transfer", - "button": "Continue", - "deselectAll": "Deselect All", - "selectAll": "Select All", - "unavailable": "Transfer Unavailable", - "error": "Account does not exist", - "warningLedger": "Ledger support required", - "noBalance": "Account not funded" - }, - "getPassphrase": { - "title": "Copy Temporary Password", - "desc": "You’ll need to enter this password when you begin exporting your accounts to a different wallet.", - "button": "Continue", - "transferButton": "Transfer Accounts", - "label": "Click to Copy", - "checkLabel": "I copied or wrote down the password" - }, - "complete": { - "title": "Complete the Transfer", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Once import part of process is completed from selected wallet, press button to complete the transfer process.", - "startOverButton": "Start Over", - "button": "Complete" - } - } - }, - "component": { - "clickToCopy": { - "label": "Copied", - "tooltip": "Click to copy" - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/es.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/es.json deleted file mode 100644 index 34f9ef864..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/es.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Conecta Tu Billetera", - "whatIsAWallet": "¿Que es una Billetera?", - "secureAndManage": "Resguarda y Administrar Tus Activos Digitales", - "safelyStore": "Almacena de forma segura y transfiere tus cryptos y NFT's", - "logInToAny": "Inicie sesión en Cualquier Aplicacion NEAR", - "noNeedToCreate": "No es necesario crear nuevas cuentas o credenciales, ¡Conecta tu billetera y listo!", - "getAWallet": "Obten una Billetera", - "useAWallet": "Usa tu Billetera para resguardar y administrar tus activos en NEAR, e Iniciar sesión en cualquier aplicacion NEAR sin la necesidad de nombres de usuarios y contraseñas", - "connectionFailed": "Conexión Fallida", - "connectionSuccessful": "Conexión Existosa", - "rememberWallet": "Recordar las carteras", - "connected": "Conectado", - "connectingTo": "Conectando a ", - "connectingMessage": { - "injected": "Confirme la conexión en la ventana de extensión", - "browser": "Confirme la conexión en la billetera después de la redirección", - "hardware": "Confirme la conexión en el dispositivo de libro mayor", - "bridge": "Confirmar la conexión en la billetera" - } - }, - "ledger": { - "connectWithLedger": "Conectar con Ledger", - "makeSureYourLedger": "Asegúrese de que su ledger está conectada de forma segura y que la aplicacion NEAR esté abierta en su dispositivo", - "continue": "Continuar", - "specifyHDPath": "Especifique la ruta HD", - "enterYourPreferredHDPath": "Ingrese su ruta HD prerida,y luego busque cualquier cuenta activa.", - "scan": "Escanear", - "retry": "Reintentar", - "ledgerIsNotAvailable": "El Ledger no está disponible", - "accessDeniedToUseLedgerDevice": "Acceso denegado para usar el dispositivo ledger", - "noAccountsFound": "No se encontraron cuentas", - "selectYourAccounts": "Selecciona tus cuentas", - "connecting1Account": "Conectando a 1 cuenta", - "cantFindAnyAccount": "No se pudo encontrar ninguna cuenta asociada con este ledger,Por favor crea una nueva cuenta en NEAR", - "orConnectAnAnotherLedger": "o conecta otro ledger", - "connecting": "Conectando", - "ofAccounts": "de Cuentas", - "failedToAutomatically": "No se pudo encontrar automaticamente el id de la cuenta,Ingresalo manualmente:", - "overviewTheListOfAuthorized": "Revise la lista de las cuentas autorizadas,Complete el inicio de sesión haciedo click a countinuacion.", - "finish": "Finalizar" - }, - "install": { - "youllNeedToInstall": "Tendrás que instalar", - "toContinueAfterInstalling": "Para continuar, Despues de instalar", - "refreshThePage": "Recarga la pagina", - "open": "Abrir" - }, - "qr": { - "copiedToClipboard": "Copiado al Portapapeles", - "failedToCopy": "Falló la copia al Portapapeles", - "scanWithYourMobile": "Busca con tu dispositivo movil", - "copyToClipboard": " Copiar al Portapapeles", - "preferTheOfficial": "¿Prefires el diálogo oficial de", - "open": "Abrir" - }, - "walletTypes": { - "hardware": "Cartera de Hardware", - "browser": "Cartera de Navegador", - "injected": "Extensión de Cartera", - "bridge": "Cartera de Puente", - "mobile": "Cartera Móvil", - "instant-link": "Cartera Instantánea" - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/hi.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/hi.json deleted file mode 100644 index c8c5866ef..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/hi.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "अपना वॉलेट (Wallet) कनेक्ट करें।", - "whatIsAWallet": "वॉलेट क्या है?", - "secureAndManage": "सुरक्षित और प्रबंधित करें।", - "safelyStore": "अपनी क्रिप्टोकरेंसी और एनएफटी को सुरक्षित रूप से स्टोर और ट्रांसफर करें।", - "logInToAny": "NEAR पर किसी भी ऐप में साइन इन करें।", - "noNeedToCreate": "नए खाते या लॉगिन बनाने की आवश्यकता नहीं है। अपना वॉलेट(NEAR Wallet)कनेक्ट करें और आरंभ करें।", - "getAWallet": "एक वॉलेट बनाएँ।", - "useAWallet": "अपनी NEAR संपत्तियों को सुरक्षित और प्रबंधित करने के लिए वॉलेट का उपयोग करें और किसी भी NEAR ऐप (app) में लॉग इन करें, किसी उपयोगकर्ता (user) नाम और पासवर्ड की आवश्यकता नहीं है।", - "connectionFailed": "कनेक्शन विफल|", - "connectionSuccessful": "कनेक्शन सफल|", - "rememberWallet": "वॉलेटों को याद रखें", - "connected": "वॉलेट जुड़ गया|", - "connectingTo": "वॉलेट जुड़ रहा हे|", - "connectingMessage": { - "injected": "एक्सटेंशन विंडो में कनेक्शन की पुष्टि करें|", - "browser": "रीडायरेक्ट होने के बाद वॉलेट में कनेक्शन की पुष्टि करें|", - "hardware": "कोल्ड वॉलेट के साथ कनेक्शन की पुष्टि करें|" - } - }, - "ledger": { - "connectWithLedger": "लेजर(Ledger)वॉलेट कनेक्ट करें|", - "makeSureYourLedger": "सुनिश्चित करें कि आपका लेजर सुरक्षित रूप से जुड़ा हुआ है और NEAR ऐप आपके डिवाइस (Device)पर पहले से ही खुला है|", - "continue": "जारी रखे|", - "specifyHDPath": "हार्ड डिस्क(Hard Disk)पथ(Path)निर्धारित करे|", - "enterYourPreferredHDPath": "अपना एचडी पथ दर्ज करें, फिर सक्रिय खातों के लिए स्कैन करें|", - "scan": "स्कैन करे|", - "retry": "दोबारा प्रयास करे|", - "ledgerIsNotAvailable": "लेजर उपलब्ध नहीं है|", - "accessDeniedToUseLedgerDevice": "लेजर डिवाइस का उपयोग करने के लिए प्रवेश निषेध|", - "noAccountsFound": "खाता नहीं मिला|", - "selectYourAccounts": "अपने खाते चुनें|", - "connecting1Account": "एक खाता कनेक्ट हो रहा है|", - "cantFindAnyAccount": "इस लेजर से जुड़ा कोई खाता नहीं मिला। कृपया एक नया NEAR खाता बनाएँ|", - "orConnectAnAnotherLedger": "अथवा दूसरे लेजर वॉलेट से कनेक्ट करें।", - "connecting": "जुड़ रहा हे|", - "ofAccounts": "खाता अब जुड़ा नहीं हे|", - "failedToAutomatically": "खाता आईडी स्वचालित रूप से खोजने में असमर्थ। मैन्युअल (Manuall) रूप से कोशिश करें|", - "overviewTheListOfAuthorized": "अवलोकन अधिकृत की सूची, नीचे दिए गए बटन पर क्लिक करके लॉगिन पूरा करें।", - "finish": "समाप्त|" - }, - "install": { - "youllNeedToInstall": "आपको इंस्टॉल करना होगा|", - "toContinueAfterInstalling": "इंस्टॉल करने के बाद जारी रखे|", - "refreshThePage": "पुन: लोड करें।", - "open": "खोले|" - }, - "qr": { - "copiedToClipboard": "क्लिपबोर्ड(Clipboard)पर कॉपी किया गया|", - "failedToCopy": "क्लिपबोर्ड पर कॉपी करना विफल रहा|", - "scanWithYourMobile": "अपने फोन (Mobile)से स्कैन करें|", - "copyToClipboard": " क्लिपबोर्ड पर कॉपी करें|", - "preferTheOfficial": "आधिकारिक संवाद को प्राथमिकता दें|", - "open": "खोले|" - }, - "walletTypes": { - "hardware": "हार्डवेयर वॉलेट", - "browser": "ब्राउज़र वॉलेट", - "injected": "वॉलेट एक्सटेंशन", - "bridge": "ब्रिज वॉलेट", - "mobile": "मोबाइल वॉलेट", - "instant-link": "इंस्टेंट वॉलेट" - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/hr.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/hr.json deleted file mode 100644 index 1a6cc0967..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/hr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Spojite crypto novčanik!", - "whatIsAWallet": "Što je to crypto novčanik?", - "secureAndManage": "Osigurajte i upravljajte svojom digitalnom imovinom.", - "safelyStore": "Sigurno pohranite i prebacite svoj crypto i NFT-eve.", - "logInToAny": " Prijavite se u bilo koju NEAR aplikaciju", - "noNeedToCreate": "Nema potrebe za stvaranjem novih naloga ili korisničkih podataka. Spojite svoj crypto novčanik i spremni ste!", - "getAWallet": "Otvorite crypto novčanik", - "useAWallet": "Koristite crypto novčanik da biste osigurali i upravljali svojom NEAR imovinom, te se prijavite u bilo koju NEAR aplikaciju bez korisničkog imena i lozinke.", - "connectionFailed": "Neuspješno povezivanje.", - "connectionSuccessful": "Uspješno povezivanje.", - "rememberWallet": "Zapamti novčanike", - "connected": "Povezano.", - "connectingTo": "Povezivanje u tijeku", - "connectingMessage": { - "injected": "Potvrdite vezu u eksternom prozoru", - "browser": "Nakon redirekcije, potvrdite vezu u novčaniku", - "hardware": "Potvrdite vezu sa novčanikom", - "bridge": "Potvrdite vezu u novčaniku" - } - }, - "ledger": { - "connectWithLedger": "Povežite se hardverskim novčanikom", - "makeSureYourLedger": "Osigurajte sigurnu vezu s hardverskim novčanikom, te da je NEAR aplikacija otvorena na vašem uređaju", - "continue": "Nastavite", - "specifyHDPath": "Specificirajte HD putanju", - "enterYourPreferredHDPath": "Upišite preferiranu HD putanju, zatim skenirajte aktivne naloge", - "scan": "Skenirajte", - "retry": "Pokušajte ponovno", - "ledgerIsNotAvailable": "Hardverski novčanik nije dostupan.", - "accessDeniedToUseLedgerDevice": "Odbijen pristup za korištenjem hardverskog novčanika", - "noAccountsFound": "Nalozi nisu pronađeni", - "selectYourAccounts": "Odaberite svoje naloge", - "connecting1Account": "Povezivanje 1 naloga", - "cantFindAnyAccount": "Nije moguće pronaći niti jedan nalog povezan s ovim hardverskim novčanikom. Molimo vas, kreirajte novi NEAR nalog", - "orConnectAnAnotherLedger": "Ili povežite drugi hardverski novčanik.", - "connecting": "Povezivanje", - "ofAccounts": "naloga", - "failedToAutomatically": "Neuspješno automatsko pronalaženje ID naloga. Unesite ručno:", - "overviewTheListOfAuthorized": "Pregledajte popis odobrenih naloga, završite prijavu pritiskom na niže prikazani gumb.", - "finish": "Završite" - }, - "install": { - "youllNeedToInstall": " Potrebno je instalirati modal", - "toContinueAfterInstalling": "za nastavak. Nakon instalacije", - "refreshThePage": "osvježite stranicu.", - "open": "Otvorite QR modal" - }, - "qr": { - "copiedToClipboard": "Kopirano u međuspremnik", - "failedToCopy": "Neupsješno kopiranje u međuspremnik", - "scanWithYourMobile": "Skenirajte svojim mobilnim uređajem", - "copyToClipboard": " Kopirajte u međuspremnik", - "preferTheOfficial": "Odaberite službeni dijalog", - "open": "Otvorite" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Odaberi Wallet", - "transferYourAccounts": "Prenesi svoje naloge", - "selectAWallet": "Odaberite wallet koji odgovara vašim potrebama i podržava vaše povezane naloge.", - "selectYourAccounts": "Odaberi svoje naloge", - "afterDecide": "Nakon što odlučite koji wallet koristite, možete odabrati koje račune želite prebaciti.", - "disclaimer": "Nećete moći prebaciti naloge koji nisu nikada bili korišteni na NEAR-u.", - "warning": "ne podržava izvoz naloga u ovom trenutku. Molimo odaberite drugi wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Odaberi naloge za prijenos", - "button": "Generiraj lozinku", - "deselectAll": "Makni odabir sa svih", - "selectAll": "Odaberi sve", - "unavailable": "Prijenos nije dostupan", - "error": "Nalog ne postoji", - "warningLedger": "Potrebna ledger podrška", - "noBalance": "Nalog nema sredstava" - }, - "getPassphrase": { - "title": "Kopiraj privremenu lozinku", - "desc": "Bit će potrebno unijeti ovu lozinku na početku izvoza naloga na drugi wallet.", - "button": "Nastavi", - "label": "Klikni za kopiju", - "checkLabel": "Kopirao sam ili zapisao lozinku" - }, - "complete": { - "title": "Završi prijenos", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Kada je unos s odabranog walleta završen, pritisnite gumb da biste završili prijenos.", - "button": "Završi" - } - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/ko.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/ko.json deleted file mode 100644 index e5c20d2d6..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/ko.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "지갑 연결하기", - "whatIsAWallet": "지갑은 무슨 역할을 하나요?", - "secureAndManage": "당신의 디지털 자산을 보호하고 관리합니다.", - "safelyStore": "암호화폐와 NFT를 안전하게 저장하고 전송할 수 있습니다.", - "logInToAny": "NEAR App에 로그인합니다.", - "noNeedToCreate": "새로운 계정이나 비밀번호를 만들 필요 없이 지갑을 연결한 후 바로 사용할 수 있습니다.", - "getAWallet": "지갑 가져오기", - "useAWallet": "지갑을 사용하여 NEAR 자산을 보호·관리하고, 아이디와 비밀번호 없이 NEAR 앱에 로그인할 수 있습니다.", - "connectionFailed": "연결 실패", - "connectionSuccessful": "연결 성공", - "rememberWallet": "지갑들 기억하기", - "connected": "Connected", - "connectingTo": "연결 중: ", - "connectingMessage": { - "injected": "익스텐션 창에서 연결을 확인하세요", - "browser": "리다이렉트 된 지갑에서 연결을 확인하세요", - "hardware": "Ledger 기기에서 연결을 확인하세요", - "bridge": "지갑에서 연결 확인" - } - }, - "ledger": { - "connectWithLedger": "Ledger 연결하기", - "makeSureYourLedger": "Ledger가 안전하게 연결되어 있고, NEAR 앱이 열려 있는 지 확인하세요", - "continue": "계속하기", - "specifyHDPath": "HD Path 지정하기", - "enterYourPreferredHDPath": "원하는 HD Path를 선택하고, 활성화된 계정이 있는 지 검색하세요", - "scan": "검색", - "retry": "다시 시도", - "ledgerIsNotAvailable": "Ledger를 사용할 수 없습니다", - "accessDeniedToUseLedgerDevice": "Ledger 기기 접근 권한이 거부되었습니다", - "noAccountsFound": "계정을 찾을 수 없습니다", - "selectYourAccounts": "계정 선택하기", - "connecting1Account": "하나의 계정에 연결", - "cantFindAnyAccount": "Ledger와 연결된 계정을 찾을 수 없습니다. 새로운 계정을 생성하거나 ", - "orConnectAnAnotherLedger": "다른 Ledger를 연결하세요", - "connecting": "계정 연결하기: ", - "ofAccounts": "개 계정을 찾았습니다", - "failedToAutomatically": "계정 ID를 찾지 못했습니다. 수동으로 입력해주세요.", - "overviewTheListOfAuthorized": "인증된 계정 목록을 확인한 후 아래 버튼을 클릭하여 로그인을 완료하세요", - "finish": "완료" - }, - "walletTypes": { - "hardware": "하드웨어 지갑", - "browser": "브라우저 지갑", - "injected": "지갑 확장", - "bridge": "브리지 지갑", - "mobile": "모바일 지갑", - "instant-link": "인스턴트 지갑" - }, - "install": { - "youllNeedToInstall": "다음 확장 프로그램을 설치해주세요:", - "toContinueAfterInstalling": ". 설치 완료 후 페이지 새로 고침이 필요합니다. ", - "refreshThePage": "새로 고침", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "클립보드에 복사 완료", - "failedToCopy": "클립보드에 복사 실패", - "scanWithYourMobile": "모바일 장치를 사용하여 스캔해주세요", - "copyToClipboard": " 클립보드에 복사하기", - "preferTheOfficial": "다음 프로그램에서 제공하는 공식 프로세스를 선호하십니까: ", - "open": "Open" - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/mk.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/mk.json deleted file mode 100644 index f75e74659..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/mk.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Поврзете го вашиот новчаник!", - "whatIsAWallet": "Што е новчаник?", - "secureAndManage": "Заштитете ги и управувајте со вашите дигитални средства.", - "safelyStore": "Безбедно складирајте и извршувајте трансакции со вашите крипто и NFT.", - "logInToAny": "Најавете се на која било NEAR апликација", - "noNeedToCreate": "Нема потреба да креирате нови сметки или ингеренции. Поврзете го вашиот паричник и сте подготвени!", - "getAWallet": "Направете новчаник", - "useAWallet": "Користете паричник за да ги заштитите и управувате вашите NEAR средства и да се најавите на која било NEAR апликација без потреба од кориснички имиња и лозинки.", - "connectionFailed": "Поврзувањето не беше успешно.", - "connectionSuccessful": "Успешно поврзување.", - "rememberWallet": "Запомни паричници", - "connected": "Поврзано.", - "connectingTo": "Поврзување со", - "connectingMessage": { - "injected": "Потврдете го поврзувањето во екстерниот прозорец", - "browser": "По преусмерувањето, потврдете го поврзувањето од новчаниокт", - "hardware": "Потврдете го поврзувањето со ладен новчаник", - "bridge": "Потврдете ја врската во новчаникот" - } - }, - "ledger": { - "connectWithLedger": "Поврзете се со Леџер", - "makeSureYourLedger": "Осигурајте се дека вашиот Леџер е поврзан безбедно, и дека NEAR апликацијата е отворена на вашиот уред", - "continue": "Продолжете", - "specifyHDPath": "Наведете ХД локација", - "enterYourPreferredHDPath": "Внесете ја вашата преферирана ХД локација, а потоа скенирајте да ги најдете активните сметки.", - "scan": "Скенирајте", - "retry": "Обидете се повторно", - "ledgerIsNotAvailable": "Леџерот не е достапен.", - "accessDeniedToUseLedgerDevice": "Пристапот за користење на Леџер уред е одбиен", - "noAccountsFound": "Нема најдени сметки", - "selectYourAccounts": "Изберете ги вашите сметки", - "connecting1Account": "Поврзување на една сметка", - "cantFindAnyAccount": "Не се најдени сметки поврзани со овој Леџер. Ве молиме креирајте нова NEAR сметка ", - "orConnectAnAnotherLedger": "или поврзете друг Леџер.", - "connecting": "Поврзување", - "ofAccounts": "на сметки", - "failedToAutomatically": "Неуспешно автоматско барање на ИД на сметката. Внесете го рачно:", - "overviewTheListOfAuthorized": "Преглед на листата на овластени сметки, завршете се најавата со кликнување на копчето подолу.", - "finish": "Завршете" - }, - "install": { - "youllNeedToInstall": "Треба да инсталирате", - "toContinueAfterInstalling": "за да продолжите. По инсталирањето", - "refreshThePage": "Освежете ја страната.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано на клипбордот", - "failedToCopy": "Неуспешно копирање на клипборд", - "scanWithYourMobile": "Скенирајте со вашиот телефонски уред", - "copyToClipboard": "Копирајте на клипборд", - "preferTheOfficial": "Преферирајте официјален диалог на", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник", - "instant-link": "Инстант паричник" - }, - "exportAccounts": { - "chooseAWallet": "Одберете паричник", - "transferYourAccounts": "Префрлете ги вашите кориснички сметки", - "selectAWallet": "Изберетен новчаник кој ги задоволува вашите баранња и ги поддржува вашите поврзани кориснички сметки.", - "selectYourAccounts": "Изберете ги вашите кориснички сметки", - "afterDecide": "Одкако ќе изберете новчаник, можете да изберете кои кориснички сметки сакате да ги префрлите.", - "disclaimer": "Не можете да прфрлате кориснички сметки кои никогаш не биле надополнати или користени на NEAR.", - "warning": "не поддржува извезување на кориснички сметки во овој момент. Ве молиме изберете друг новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник" - }, - "selectAccounts": { - "title": "Изберете ги корисничките сметки за да ги префрлите.", - "button": "Добијте лозинка", - "deselectAll": "Отселектирајте се", - "selectAll": "Изберете се", - "unavailable": "Трансферот е недостапен", - "error": "Корисничката сметка не постои", - "warningLedger": "Потребна е поддршка од Леџер", - "noBalance": "Сметката не е финансирана" - }, - "getPassphrase": { - "title": "Копирајте ја привремената лозинка", - "desc": "Ќе треба да ја внесете оваа лозинка кога ќе започнете да ги извезувате вашите сметки на друг новчаник.", - "button": "Продолжете", - "label": "Кликнете за да копирате", - "checkLabel": "Ја копирав или запишав лозинката" - }, - "complete": { - "title": "Завршете го преносот", - "descOne": "Сега ќе бидете пренасочени на избраниот новчаник за завршување на преносот.", - "descTwo": "Откако ќе заврши увозот од избраниот новчаник, притиснете го копчето за да го завршите преносот.", - "button": "Завршете" - } - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/sl.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/sl.json deleted file mode 100644 index 20b795b9a..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/sl.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Povežite svojo denarnico!", - "whatIsAWallet": "Kaj je denarnica?", - "secureAndManage": "Zavarujte in upravljajte svoja digitalna sredstva.", - "safelyStore": "Varno shranjujte in prenašajte svoje kriptovalute in NFTje.", - "logInToAny": "Prijavite se v katero koli aplikacijo na NEAR", - "noNeedToCreate": "Ni vam treba ustvarjati novih računov. Povežite svojo denarnico in začnite!", - "getAWallet": "Ustvarite denarnico", - "useAWallet": "Uporabite denarnico, da bi zavarovali in upravljali s svoja NEAR digitalna sredstva, in se prijavite v katero koli aplikacijo ekosistema NEAR", - "connectionFailed": "Povezava ni bila uspešna.", - "connectionSuccessful": "Povezava je bila uspešna.", - "rememberWallet": "Zapomni si denarnice", - "connected": "Vaša denarnica je povezana.", - "connectingTo": "Povezovanje z", - "connectingMessage": { - "injected": "Potrdite povezavo v oknu razširitve", - "browser": "Po preusmeritvi potrdite povezavo v denarnici", - "hardware": "Potrdite povezavo s hladno denarnico", - "bridge": "Potrdite povezavo v denarnici" - } - }, - "ledger": { - "connectWithLedger": "Povežite se z Ledger", - "makeSureYourLedger": "Prepričajte se, da je vaš Ledger varno povezan in da je aplikacija NEAR odprta v vaši napravi", - "continue": "Nadaljuj", - "specifyHDPath": "Določite HD pot", - "enterYourPreferredHDPath": "Vnesite želeno HD pot, nato poiščite vse aktivne račune.", - "scan": "Skenirajte", - "retry": "Poskusite znova", - "ledgerIsNotAvailable": "Ledger ni na voljo", - "accessDeniedToUseLedgerDevice": "Dostop za uporabo naprave Ledger zavrnjen", - "noAccountsFound": "Ni najdenih računov", - "selectYourAccounts": "Izberite Vaši računi", - "connecting1Account": "Povezovanje enega računa", - "cantFindAnyAccount": "Ni mogoče najti nobenega računa, povezanega s tem Ledgerjem. Ustvarite nov NEAR račun ", - "orConnectAnAnotherLedger": "ali povežite drug Ledger..", - "connecting": "Povezovanje", - "ofAccounts": "računov", - "failedToAutomatically": "ID-ja računa ni bilo mogoče samodejno najti. Zagotovite ga ročno:", - "overviewTheListOfAuthorized": "Oglejte si seznam pooblaščenih računov, dokončajte prijavo s klikom na spodnji gumb.", - "finish": "Končajte" - }, - "install": { - "youllNeedToInstall": "Morali ga boste namestiti", - "toContinueAfterInstalling": "nadaljevati. Po namestitvi", - "refreshThePage": "Osvežite stran.", - "open": "Odprite" - }, - "qr": { - "copiedToClipboard": "Kopirano v podložni mapi", - "failedToCopy": "Kopiranje v podložni mapi ni uspelo", - "scanWithYourMobile": "Skenirajte s svojo mobilno napravo", - "copyToClipboard": " Kopirajte v podložni mapi", - "preferTheOfficial": "Preferirajte uradno pogovorno okno", - "open": "Odprite" - }, - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica", - "instant-link": "Takojšnja denarnica" - }, - "exportAccounts": { - "chooseAWallet": "Izberite denarnico", - "transferYourAccounts": "Prenesite svoje račune", - "selectAWallet": "Izberite denarnico, ki ustreza vašim potrebam in podpira vaše povezane račune.", - "selectYourAccounts": "Izberite vaši računi", - "afterDecide": "Ko se odločite za denarnico, lahko izberete, katere račune želite prenesti.", - "disclaimer": "Ne boste mogli prenesti Računov, ki nikoli niso bili financirani ali uporabljeni na NEAR.", - "warning": "trenutno ne podpira izvoza računa. Izberite drugo denarnico", - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica" - }, - "selectAccounts": { - "title": "Izberite računi za prenos.", - "button": "Pridobite geslo", - "deselectAll": "Prekliči izbiro vseh", - "selectAll": "Izberi vse", - "unavailable": "Prenos ni na voljo", - "error": "Račun ne obstaja", - "warningLedger": "Potrebna je podpora za Ledger", - "noBalance": "Račun ni financiran" - }, - "getPassphrase": { - "title": "Kopiraj začasno geslo", - "desc": "To geslo boste morali vnesti, ko boste začeli izvažati svoje račune v drugo denarnico.", - "button": "Nadaljujte", - "label": "Kliknite za kopiranje", - "checkLabel": "Geslo sem kopiral ali zapisal" - }, - "complete": { - "title": "Dokončajte prenos", - "descOne": "Zdaj boste preusmerjeni v denarnico, ki ste jo izbrali za dokončanje prenosa.", - "descTwo": "Ko je uvozni del postopka končan iz izbrane denarnice, pritisnite gumb za dokončanje postopka prenosa.", - "button": "Končajte" - } - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/sr.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/sr.json deleted file mode 100644 index 094c75982..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/sr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Повежите свој новчаник!", - "whatIsAWallet": "Шта је новчаник?", - "secureAndManage": "Обезбедите и управљајте својом дигиталном имовином.", - "safelyStore": "Безбедно чувајте и преносите своје криптовалуте и NFT.", - "logInToAny": "Пријавите се на било коју апликацију NEAR", - "noNeedToCreate": "Нема потребе да креирате нове налоге или акредитиве. Повежите новчаник и спремни стe!", - "getAWallet": "Набавите новчаник", - "useAWallet": "Користите новчаник да обезбедите и управљате својим NEAR средствима и да се пријавите у било коју апликацију NEAR без потребе за корисничким именима и лозинкама.", - "connectionFailed": "Веза није успостављена.", - "connectionSuccessful": "Веза је успела.", - "rememberWallet": "Запамти новчанике", - "connected": "Повезан.", - "connectingTo": "Повезивање на", - "connectingMessage": { - "injected": "Потврдите везу у спољном прозору", - "browser": "Након преусмеравања, потврдите везу у новчанику", - "hardware": "Потврдите везу са хладним новчаником", - "bridge": "Потврдите везу са новчаником" - } - }, - "ledger": { - "connectWithLedger": "Повежите се са Ledger", - "makeSureYourLedger": "Уверите се да је ваш Ledger безбедно повезан и да је апликација NEAR отворена на вашем уређају", - "continue": "Настави", - "specifyHDPath": "Наведите ХД путању", - "enterYourPreferredHDPath": "Унесите жељену жељену ХД путању, а затим скенирајте све активне налоге.", - "scan": "Скенирајте", - "retry": "Покушај поново", - "ledgerIsNotAvailable": "Ledger није доступан.", - "accessDeniedToUseLedgerDevice": "Приступ је одбијен за коришћење Ledger уређаја", - "noAccountsFound": "Наlози нису пронађени", - "selectYourAccounts": "Изаберите Ваш наlог", - "connecting1Account": "Повезати 1 наlог", - "cantFindAnyAccount": "Није могуће пронаћи ниједан наlог повезан са овим Ledger-ом. Направите нови NEAR наlог", - "orConnectAnAnotherLedger": "или повежите други Ledger.", - "connecting": "Повезивање", - "ofAccounts": "наlога", - "failedToAutomatically": "Аутоматско проналажење ID-a наlога није успело. Наведите га ручно:", - "overviewTheListOfAuthorized": "Прегледајте листу овлашћених рачуна, завршите пријаву кликом на дугме испод.", - "finish": "Заврши" - }, - "install": { - "youllNeedToInstall": "Мораћете да инсталирате", - "toContinueAfterInstalling": "за наставак. Након инсталирања", - "refreshThePage": "поново учитати страницу.", - "open": "Отвори" - }, - "qr": { - "copiedToClipboard": "Копирано у међуспремник", - "failedToCopy": "Копирање у међуспремник није успело", - "scanWithYourMobile": "Скенирајте помоћу мобилног уређаја", - "copyToClipboard": " Копирај у међуспремник", - "preferTheOfficial": "Преферирате званични дијалог од", - "open": "Отвори" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник", - "instant-link": "Инстант новчаник" - }, - "exportAccounts": { - "chooseAWallet": "Изаберите новчаник", - "transferYourAccounts": "Пренесите своје налоге", - "selectAWallet": "Изаберите новчаник који одговара вашим потребама и који подржава ваше повезане налоге.", - "selectYourAccounts": "Изаберите ваше налоге", - "afterDecide": "Након што се одлучите за новчаник, можете изабрати које налоге желите да пренесете.", - "disclaimer": "Нећете моћи да пренесете налоге који никада нису били финансирани или коришћени на NEAR.", - "warning": "тренутно не подржава извоз налога. Изаберите други новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник" - }, - "selectAccounts": { - "title": "Изаберите налоге за пренос.", - "button": "Добијте приступну фразу", - "deselectAll": "Поништите избор", - "selectAll": "Изаберите све", - "unavailable": "Трансфер није доступан", - "error": "Налог не постоји", - "warningLedger": "Потребна подршка за Ledger", - "noBalance": "Налог није финансиран" - }, - "getPassphrase": { - "title": "Копирај привремену лозинку", - "desc": "Мораћете да унесете ову лозинку када почнете да извозите своје налоге у други новчаник.", - "button": "Наставите", - "label": "Кликните да бисте копирали", - "checkLabel": "Копирао сам или записао лозинку" - }, - "complete": { - "title": "Довршите трансфер", - "descOne": "Сада ћете бити преусмерени на новчаник који сте изабрали да завршите трансфер.", - "descTwo": "Када се део процеса увоза заврши из изабраног новчаника, притисните дугме да завршите процес преноса.", - "button": "Завршите" - } - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/vi.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/vi.json deleted file mode 100644 index 025d762e7..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/vi.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Kết nối ví của bạn", - "whatIsAWallet": "Ví là gì?", - "secureAndManage": "Bảo mật & Quản lý tài sản số của bạn", - "safelyStore": "Lưu trữ và chuyển tiền điện tử và NFT của bạn một cách an toàn.", - "logInToAny": "Đăng nhập vào bất kỳ ứng dụng trên NEAR", - "noNeedToCreate": "Không cần tạo tài khoản hoặc thông tin đăng nhập mới. Kết nối ví của bạn và bắt đầu!", - "getAWallet": "Tạo Ví", - "useAWallet": "Sử dụng ví để bảo mật và quản lý tài sản trên NEAR của bạn và đăng nhập vào bất kỳ ứng dụng NEAR nào, không cần tên người dùng và mật khẩu.", - "connectionFailed": "Kết nối thất bại", - "connectionSuccessful": "Kết nối thành công", - "rememberWallet": "Ghi nhớ lựa chọn ví", - "connected": "Đã kết nối", - "connectingTo": "Đang kết nối tới", - "connectingMessage": { - "injected": "Xác nhận kết nối trong cửa sổ tiện ích mở rộng", - "browser": "Xác nhận kết nối trong ví sau khi được chuyển hướng", - "hardware": "Xác nhận kết nối với ví lạnh", - "bridge": "Xác nhận kết nối trong ví" - } - }, - "ledger": { - "connectWithLedger": "Kết nối ví Ledger", - "makeSureYourLedger": "Đảm bảo Ledger của bạn được kết nối an toàn và ứng dụng NEAR đang mở sẵn trên thiết bị", - "continue": "Tiếp tục", - "specifyHDPath": "Chỉ định HD Path", - "enterYourPreferredHDPath": "Nhập HD Path của bạn, sau đó quét tìm các tài khoản hoạt động", - "scan": "Quét", - "retry": "Thử lại", - "ledgerIsNotAvailable": "Ledger không khả dụng", - "accessDeniedToUseLedgerDevice": "Truy cập Ledger bị từ chối", - "noAccountsFound": "Không tìm thấy tài khoản", - "selectYourAccounts": "Chọn tài khoản của bạn", - "connecting1Account": "Đang kết nối 1 tài khoản", - "cantFindAnyAccount": "Không thể tìm thấy bất kỳ tài khoản nào được liên kết với Ledger này. Vui lòng tạo một tài khoản NEAR mới", - "orConnectAnAnotherLedger": "hoặc kết nối với ví Ledger khác.", - "connecting": "Đang kết nối", - "ofAccounts": "của tài khoản", - "failedToAutomatically": "Không thể tự động tìm id tài khoản. Nhập thủ công:", - "overviewTheListOfAuthorized": "Tổng quan danh sách các tài khoản được ủy quyền, hoàn tất đăng nhập bằng cách bấm vào nút bên dưới.", - "finish": "Hoàn thành" - }, - "install": { - "youllNeedToInstall": "Bạn sẽ cần cài đặt", - "toContinueAfterInstalling": "để bắt đầu. Sau khi cài đặt xong", - "refreshThePage": "Tải lại trang.", - "open": "Mở" - }, - "qr": { - "copiedToClipboard": "Đã sao chép vào bảng ghi tạm", - "failedToCopy": "Sao chép vào bảng ghi tạm thất bại", - "scanWithYourMobile": "Quét với điện thoại của bạn", - "copyToClipboard": " Sao chép vào bảng ghi tạm", - "preferTheOfficial": "Dialogue chính thức của", - "open": "Mở" - }, - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile", - "instant-link": "Ví tức thì" - }, - "exportAccounts": { - "chooseAWallet": "Chọn ví", - "transferYourAccounts": "Chuyển tài khoản", - "selectAWallet": "Chọn ví phù hợp với nhu cầu của bạn, ví được chọn cần hỗ trợ các tài khoản đang sử dụng.", - "selectYourAccounts": "Chọn tài khoản", - "afterDecide": "Sau khi chọn được tài khoản bạn có chuyển.", - "disclaimer": "Bạn không thể chuyển tài khoản nếu tài khoản đó chưa được nhận tiền hoặc chưa phát sinh giao dịch trên NEAR.", - "warning": "không hỗ trợ xuất tài khoản. Vui lòng chọn ví khác.", - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile" - }, - "selectAccounts": { - "title": "Chọn tài khoản để chuyển", - "button": "Lấy cụm mật khẩu", - "deselectAll": "Bỏ chọn tất cả", - "selectAll": "Chọn tất cả", - "unavailable": "Chuyển không khả dụng", - "error": "Tài khoản không tồn tại", - "warningLedger": "Yêu cầu hỗ trợ Ledger", - "noBalance": "Tài khoản trống" - }, - "getPassphrase": { - "title": "Sao chép mật khẩu tạm thời", - "desc": "Bạn sẽ cần nhập mật khẩu khi bắt đầu xuất các khoản tới ví khác.", - "button": "Tiếp tục", - "label": "Bấm để sao chép", - "checkLabel": "Tôi đã chép hoặc ghi lại mật khẩu" - }, - "complete": { - "title": "Hoàn thành chuyển", - "descOne": "Bạn sẽ được chuyển hướng tới tài khoản đã chọn để hoàn tất quá trình.", - "descTwo": "Sau khi nhập, nhấn nút để hoàn tất quy trình chuyển.", - "button": "Hoàn thành" - } - } - }, - "component": { - "clickToCopy": { - "label": "Đã sao chép", - "tooltip": "Bấm để sao chép" - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/locale/zh.json b/packages/wallet-utils/dist/cjs/core/src/lib/locale/zh.json deleted file mode 100644 index 2f363c7b1..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/locale/zh.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "连接你的钱包", - "whatIsAWallet": "什么是钱包?", - "secureAndManage": "保护和管理你的数字资产", - "safelyStore": "安全存储和转移你的加密货币和NFT", - "logInToAny": "登录任何 NEAR 应用", - "noNeedToCreate": "不需要创建新账户或密码。连接你的钱包,即可开始使用!", - "getAWallet": "获取新账户", - "useAWallet": "使用钱包来保护和管理你的 NEAR 资产,无需用户名和密码即可登录任何 NEAR 应用", - "connectionFailed": "连接失败", - "connectionSuccessful": "连接成功", - "rememberWallet": "记住钱包选择", - "connected": "已连接", - "connectingTo": "正在连接" - }, - "ledger": { - "connectWithLedger": "连接 Ledger", - "makeSureYourLedger": "确保你的 Ledger 已经安全连接,并且 NEAR 应用已经在你设备上打开", - "continue": "继续", - "specifyHDPath": "指定 HD 路径", - "enterYourPreferredHDPath": "输入你偏好的 HD 路径,然后为任意活跃账户扫码", - "scan": "扫码", - "retry": "重试", - "ledgerIsNotAvailable": "Ledger 不可用", - "accessDeniedToUseLedgerDevice": "访问 Ledger 设备被拒绝", - "noAccountsFound": "没有找到账户", - "selectYourAccounts": "选择你的账户", - "connecting1Account": "正在连接1个账户", - "cantFindAnyAccount": "没有找到任何与这个 Ledger 相关联的账户。请创建新账户于", - "orConnectAnAnotherLedger.": "或连接另一个 Ledger", - "connecting": "正在连接", - "ofAccounts": "个账户", - "failedToAutomatically": "无法自动找到账户ID,请主动提供:", - "overviewTheListOfAuthorized": "请查看已授权的账户列表,点击以下按钮完成登录", - "finish": "完成" - }, - "install": { - "youllNeedToInstall": "你将需要安装", - "toContinueAfterInstalling": "以继续。安装完", - "refreshThePage": "请刷新页面", - "open": "打开" - }, - "qr": { - "copiedToClipboard": "复制到了剪贴板", - "failedToCopy": "复制到剪贴板失败", - "scanWithYourMobile": "用你的移动设备扫码", - "copyToClipboard": " 复制到剪贴板", - "preferTheOfficial": "希望使用官方对话框于", - "open": "打开" - }, - "walletTypes": { - "hardware": "硬件钱包", - "browser": "浏览器钱包", - "injected": "钱包扩展", - "bridge": "桥接钱包", - "mobile": "移动钱包", - "instant-link": "即时钱包" - } - } -} diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/options.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/options.d.ts deleted file mode 100644 index bc6d1111b..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/options.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { WalletSelectorParams } from "./wallet-selector.types"; -import type { Options, Network, NetworkId } from "./options.types"; -export declare const getNetworkPreset: (networkId: NetworkId, fallbackRpcUrls?: Array) => Network; -export declare const resolveNetwork: (network: NetworkId | Network) => Network; -export declare const resolveOptions: (params: WalletSelectorParams) => { - options: Options; - storage: import("./services").StorageService; -}; -//# sourceMappingURL=options.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/options.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/options.d.ts.map deleted file mode 100644 index e8ce7bf80..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/options.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGnE,eAAO,MAAM,gBAAgB,cAChB,SAAS,oBACF,KAAK,CAAC,MAAM,CAAC,KAC9B,OAqBF,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,SAAS,GAAG,OAAO,KAAG,OAE7D,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,oBAAoB;;;CAc1D,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/options.js b/packages/wallet-utils/dist/cjs/core/src/lib/options.js deleted file mode 100644 index 587fab7eb..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/options.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.resolveOptions = exports.resolveNetwork = exports.getNetworkPreset = void 0; -const services_1 = require("./services"); -const getNetworkPreset = (networkId, fallbackRpcUrls) => { - switch (networkId) { - case "mainnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.mainnet.near.org", - helperUrl: "https://helper.mainnet.near.org", - explorerUrl: "https://nearblocks.io", - indexerUrl: "https://api.kitwallet.app", - }; - case "testnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.testnet.near.org", - helperUrl: "https://helper.testnet.near.org", - explorerUrl: "https://testnet.nearblocks.io", - indexerUrl: "https://testnet-api.kitwallet.app", - }; - default: - throw Error(`Failed to find config for: '${networkId}'`); - } -}; -exports.getNetworkPreset = getNetworkPreset; -const resolveNetwork = (network) => { - return typeof network === "string" ? (0, exports.getNetworkPreset)(network) : network; -}; -exports.resolveNetwork = resolveNetwork; -const resolveOptions = (params) => { - const options = { - languageCode: params.languageCode || undefined, - network: (0, exports.resolveNetwork)(params.network), - debug: params.debug || false, - optimizeWalletOrder: params.optimizeWalletOrder === false ? false : true, - randomizeWalletOrder: params.randomizeWalletOrder || false, - relayerUrl: params.relayerUrl || undefined, - }; - return { - options, - storage: params.storage || new services_1.WebStorageService(), - }; -}; -exports.resolveOptions = resolveOptions; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/options.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/options.types.d.ts deleted file mode 100644 index 45a8b9888..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/options.types.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { SupportedLanguage } from "./translate/translate"; -export type NetworkId = "mainnet" | "testnet"; -export interface Network { - /** - * Network ID (e.g. `testnet`). - */ - networkId: string; - /** - * URL for RPC requests. - */ - nodeUrl: string; - /** - * URL for creating accounts. - */ - helperUrl: string; - /** - * URL for the NEAR explorer. - */ - explorerUrl: string; - /** - * URL for the NEAR indexer. - */ - indexerUrl: string; -} -export interface Options { - /** - * ISO 639-1 two-letter language code. - */ - languageCode: SupportedLanguage | undefined; - /** - * Resolved network configuration. - */ - network: Network; - /** - * Whether internal logging is enabled. - */ - debug: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder: boolean; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl: string | undefined; -} -//# sourceMappingURL=options.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/options.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/options.types.d.ts.map deleted file mode 100644 index 663fb6879..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/options.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/options.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/options.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/options.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts deleted file mode 100644 index 00a0b6840..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { EventEmitterService, Subscription } from "./event-emitter.types"; -export declare class EventEmitter> implements EventEmitterService { - private emitter; - on(eventName: Event, callback: (event: Events[Event]) => void): Subscription; - off(eventName: Event, callback: (event: Events[Event]) => void): void; - emit(eventName: Event, event: Events[Event]): void; -} -//# sourceMappingURL=event-emitter.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map deleted file mode 100644 index 80b80c736..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/E,qBAAa,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC9D,YAAW,mBAAmB,CAAC,MAAM,CAAC;IAEtC,OAAO,CAAC,OAAO,CAAuB;IAEtC,EAAE,CAAC,KAAK,SAAS,MAAM,MAAM,EAC3B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,GACvC,YAAY;IAQf,GAAG,CAAC,KAAK,SAAS,MAAM,MAAM,EAC5B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;IAK1C,IAAI,CAAC,KAAK,SAAS,MAAM,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;CAGxE"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.js deleted file mode 100644 index 1129f4fc6..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.service.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.EventEmitter = void 0; -const events_1 = require("events"); -class EventEmitter { - emitter = new events_1.EventEmitter(); - on(eventName, callback) { - this.emitter.on(eventName, callback); - return { - remove: () => this.emitter.off(eventName, callback), - }; - } - off(eventName, callback) { - this.emitter.off(eventName, callback); - } - emit(eventName, event) { - this.emitter.emit(eventName, event); - } -} -exports.EventEmitter = EventEmitter; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts deleted file mode 100644 index 3a25067e0..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface Subscription { - remove: () => void; -} -export interface EventEmitterService> { - on(eventName: EventName, callback: (event: Events[EventName]) => void): Subscription; - off(eventName: EventName, callback: (event: Events[EventName]) => void): void; - emit(eventName: EventName, event: Events[EventName]): void; -} -//# sourceMappingURL=event-emitter.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map deleted file mode 100644 index 6e4178d43..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzE,EAAE,CAAC,SAAS,SAAS,MAAM,MAAM,EAC/B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,YAAY,CAAC;IAEhB,GAAG,CAAC,SAAS,SAAS,MAAM,MAAM,EAChC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,IAAI,CAAC;IAER,IAAI,CAAC,SAAS,SAAS,MAAM,MAAM,EACjC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,GACvB,IAAI,CAAC;CACT"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/event-emitter/event-emitter.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/index.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/index.d.ts deleted file mode 100644 index 7f06b3d8e..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * from "./provider/provider.service"; -export * from "./provider/provider.service.types"; -export * from "./storage/storage.service.types"; -export * from "./storage/json-storage.service.types"; -export * from "./storage/json-storage.service"; -export * from "./storage/web-storage.service"; -export * from "./logger/logger.service"; -export * from "./logger/logger.service.types"; -export * from "./wallet-modules/wallet-modules.service"; -export * from "./event-emitter/event-emitter.service"; -export * from "./event-emitter/event-emitter.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/index.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/index.d.ts.map deleted file mode 100644 index f34146ce5..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/index.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/index.js deleted file mode 100644 index 771f7ca4c..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/index.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./provider/provider.service"), exports); -__exportStar(require("./provider/provider.service.types"), exports); -__exportStar(require("./storage/storage.service.types"), exports); -__exportStar(require("./storage/json-storage.service.types"), exports); -__exportStar(require("./storage/json-storage.service"), exports); -__exportStar(require("./storage/web-storage.service"), exports); -__exportStar(require("./logger/logger.service"), exports); -__exportStar(require("./logger/logger.service.types"), exports); -__exportStar(require("./wallet-modules/wallet-modules.service"), exports); -__exportStar(require("./event-emitter/event-emitter.service"), exports); -__exportStar(require("./event-emitter/event-emitter.types"), exports); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.d.ts deleted file mode 100644 index 305cafb84..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { LoggerService } from "./logger.service.types"; -export declare class Logger implements LoggerService { - static debug: boolean; - namespace?: string; - constructor(namespace?: string); - private emit; - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -export declare const logger: Logger; -//# sourceMappingURL=logger.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.d.ts.map deleted file mode 100644 index 3819238b2..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,qBAAa,MAAO,YAAW,aAAa;IAC1C,MAAM,CAAC,KAAK,UAAS;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEP,SAAS,CAAC,EAAE,MAAM;IAI9B,OAAO,CAAC,IAAI;IAgBZ,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI7B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;CAGhC;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.js deleted file mode 100644 index f2365f6b4..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.logger = exports.Logger = void 0; -class Logger { - static debug = false; - namespace; - constructor(namespace) { - this.namespace = namespace; - } - emit(method, ...params) { - if (!Logger.debug) { - return; - } - if (this.namespace && method !== "error") { - // eslint-disable-next-line no-console - console[method](this.namespace, ...params); - return; - } - // eslint-disable-next-line no-console - console[method](...params); - } - log(...params) { - this.emit("log", ...params); - } - info(...params) { - this.emit("info", ...params); - } - warn(...params) { - this.emit("warn", ...params); - } - error(...params) { - this.emit("error", ...params); - } -} -exports.Logger = Logger; -exports.logger = new Logger(); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts deleted file mode 100644 index 8c891f4f2..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface LoggerService { - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -//# sourceMappingURL=logger.service.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts.map deleted file mode 100644 index 0160d352c..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/logger/logger.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.d.ts deleted file mode 100644 index 07f2954c5..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { AccessKeyView, BlockReference, QueryResponseKind, RpcQueryRequest } from "@near-js/types"; -import type { ProviderService, QueryParams, ViewAccessKeyParams } from "./provider.service.types"; -import type { SignedTransaction } from "@near-js/transactions"; -export declare class Provider implements ProviderService { - private provider; - constructor(urls: Array); - query(paramsOrPath: QueryParams | RpcQueryRequest | string, data?: string): Promise; - viewAccessKey({ accountId, publicKey }: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; - private urlsToProviders; -} -//# sourceMappingURL=provider.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.d.ts.map deleted file mode 100644 index 02d2f07b3..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,qBAAa,QAAS,YAAW,eAAe;IAW9C,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;IAM/B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,EACpD,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC;IAQpB,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,mBAAmB;IAS3D,KAAK,CAAC,SAAS,EAAE,cAAc;IAI/B,eAAe,CAAC,iBAAiB,EAAE,iBAAiB;IAIpD,OAAO,CAAC,eAAe;CAKxB"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.js deleted file mode 100644 index 7798a5f3f..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Provider = void 0; -const providers_1 = require("@near-js/providers"); -class Provider { - /* - private provider: JsonRpcProvider; - - constructor(urls: Array) { - this.provider = new JsonRpcProvider( - this.urlsToProviders(urls) - ); - } - */ - provider; - constructor(urls) { - this.provider = new providers_1.FailoverRpcProvider(this.urlsToProviders(urls)); - } - query(paramsOrPath, data) { - if (typeof paramsOrPath === "string" && data !== undefined) { - return this.provider.query(paramsOrPath, data); - } - else { - return this.provider.query(paramsOrPath); - } - } - viewAccessKey({ accountId, publicKey }) { - return this.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountId, - public_key: publicKey, - }); - } - block(reference) { - return this.provider.block(reference); - } - sendTransaction(signedTransaction) { - return this.provider.sendTransaction(signedTransaction); - } - urlsToProviders(urls) { - return urls && urls.length > 0 - ? urls.map((url) => new providers_1.JsonRpcProvider({ url })) - : []; - } -} -exports.Provider = Provider; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts deleted file mode 100644 index cba6ca3cd..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { AccessKeyView, BlockReference, BlockResult, QueryResponseKind, FinalExecutionOutcome } from "@near-js/types"; -import type { SignedTransaction } from "@near-js/transactions"; -export type QueryParams = { - [key in string]: unknown; -}; -export interface ViewAccessKeyParams { - accountId: string; - publicKey: string; -} -export interface ProviderService { - query(params: QueryParams): Promise; - viewAccessKey(params: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; -} -//# sourceMappingURL=provider.service.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts.map deleted file mode 100644 index 94a2e9755..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG;KAAG,GAAG,IAAI,MAAM,GAAG,OAAO;CAAE,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,eAAe,CACb,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/provider/provider.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts deleted file mode 100644 index 8e5c8063a..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -import type { JsonStorageService } from "./json-storage.service.types"; -export declare class JsonStorage implements JsonStorageService { - storage: StorageService; - namespace: string; - constructor(storage: StorageService, namespace: string | Array); - private resolveKey; - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts.map deleted file mode 100644 index 9cf929933..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,qBAAa,WAAY,YAAW,kBAAkB;IACpD,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;gBAEN,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAOtE,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAMlD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.js deleted file mode 100644 index 1d1ed0bf1..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.JsonStorage = void 0; -const KEY_DELIMITER = ":"; -class JsonStorage { - storage; - namespace; - constructor(storage, namespace) { - this.storage = storage; - this.namespace = Array.isArray(namespace) - ? namespace.join(KEY_DELIMITER) - : namespace; - } - resolveKey(key) { - return [this.namespace, key].join(KEY_DELIMITER); - } - getItem(key) { - return this.storage.getItem(this.resolveKey(key)).then((item) => { - return typeof item === "string" ? JSON.parse(item) : null; - }); - } - setItem(key, value) { - return this.storage.setItem(this.resolveKey(key), JSON.stringify(value)); - } - removeItem(key) { - return this.storage.removeItem(this.resolveKey(key)); - } -} -exports.JsonStorage = JsonStorage; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts deleted file mode 100644 index 0cfff07a0..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface JsonStorageService { - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts.map deleted file mode 100644 index 00ce8794a..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/json-storage.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts deleted file mode 100644 index 64ff2e6d3..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts.map deleted file mode 100644 index afbf46e25..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/storage.service.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/storage.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/storage.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts deleted file mode 100644 index f13fefc9a..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -export declare class WebStorageService implements StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=web-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts.map deleted file mode 100644 index fbed55367..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/web-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/web-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/web-storage.service.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/web-storage.service.js deleted file mode 100644 index b1b3430c7..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/storage/web-storage.service.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.WebStorageService = void 0; -class WebStorageService { - getItem(key) { - return new Promise((resolve) => { - const value = localStorage.getItem(key); - resolve(value); - }); - } - setItem(key, value) { - return new Promise((resolve) => { - localStorage.setItem(key, value); - resolve(); - }); - } - removeItem(key) { - return new Promise((resolve) => { - localStorage.removeItem(key); - resolve(); - }); - } -} -exports.WebStorageService = WebStorageService; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts deleted file mode 100644 index 28c9880c2..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { WalletModulesParams } from "./wallet-modules.service.types"; -import type { Wallet } from "../../wallet"; -export declare class WalletModules { - private factories; - private storage; - private options; - private store; - private emitter; - private provider; - private modules; - private instances; - constructor({ factories, storage, options, store, emitter, provider, }: WalletModulesParams); - private validateWallet; - private resolveStorageState; - private setWalletAsRecentlySignedIn; - private signOutWallet; - private onWalletSignedIn; - private onWalletSignedOut; - private setupWalletEmitter; - private validateSignMessageParams; - private decorateWallet; - private setupInstance; - private getModule; - getWallet(id: string | null): Promise; - setup(): Promise; -} -//# sourceMappingURL=wallet-modules.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map deleted file mode 100644 index 94b2e90a9..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAEV,MAAM,EAOP,MAAM,cAAc,CAAC;AAmBtB,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAA6C;gBAElD,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,mBAAmB;YAYR,cAAc;YAkBd,mBAAmB;YAyEnB,2BAA2B;YAuB3B,aAAa;YAYb,gBAAgB;IAkD9B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,cAAc;YAsCR,aAAa;IA6B3B,OAAO,CAAC,SAAS;IAIX,SAAS,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAoB9D,KAAK;CAkFZ"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.js deleted file mode 100644 index a27acfb1e..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.js +++ /dev/null @@ -1,325 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.WalletModules = void 0; -const event_emitter_service_1 = require("../event-emitter/event-emitter.service"); -const logger_service_1 = require("../logger/logger.service"); -const constants_1 = require("../../constants"); -const json_storage_service_1 = require("../storage/json-storage.service"); -class WalletModules { - factories; - storage; - options; - store; - emitter; - provider; - modules; - instances; - constructor({ factories, storage, options, store, emitter, provider, }) { - this.factories = factories; - this.storage = storage; - this.options = options; - this.store = store; - this.emitter = emitter; - this.provider = provider; - this.modules = []; - this.instances = {}; - } - async validateWallet(id) { - let accounts = []; - const wallet = await this.getWallet(id); - if (wallet) { - // Ensure our persistent state aligns with the selected wallet. - // For example a wallet is selected, but it returns no accounts (not signed in). - accounts = await wallet.getAccounts().catch((err) => { - logger_service_1.logger.log(`Failed to validate ${wallet.id} during setup`); - logger_service_1.logger.error(err); - return []; - }); - } - return accounts; - } - async resolveStorageState() { - const jsonStorage = new json_storage_service_1.JsonStorage(this.storage, constants_1.PACKAGE_NAME); - const pendingSelectedWalletId = await jsonStorage.getItem(constants_1.PENDING_SELECTED_WALLET_ID); - const pendingContract = await jsonStorage.getItem(constants_1.PENDING_CONTRACT); - const rememberRecentWallets = await jsonStorage.getItem(constants_1.REMEMBER_RECENT_WALLETS); - if (pendingSelectedWalletId && pendingContract) { - const accounts = await this.validateWallet(pendingSelectedWalletId); - await jsonStorage.removeItem(constants_1.PENDING_SELECTED_WALLET_ID); - await jsonStorage.removeItem(constants_1.PENDING_CONTRACT); - if (accounts.length) { - const { selectedWalletId } = this.store.getState(); - const selectedWallet = await this.getWallet(selectedWalletId); - if (selectedWallet && pendingSelectedWalletId !== selectedWalletId) { - await selectedWallet.signOut().catch((err) => { - logger_service_1.logger.log("Failed to sign out existing wallet"); - logger_service_1.logger.error(err); - }); - } - let recentlySignedInWalletsFromPending = []; - if (rememberRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWalletsFromPending = - await this.setWalletAsRecentlySignedIn(pendingSelectedWalletId); - } - return { - accounts, - contract: pendingContract, - selectedWalletId: pendingSelectedWalletId, - recentlySignedInWallets: recentlySignedInWalletsFromPending, - rememberRecentWallets: rememberRecentWallets || constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - } - const { contract, selectedWalletId } = this.store.getState(); - const accounts = await this.validateWallet(selectedWalletId); - const recentlySignedInWallets = await jsonStorage.getItem(constants_1.RECENTLY_SIGNED_IN_WALLETS); - if (!accounts.length) { - return { - accounts: [], - contract: null, - selectedWalletId: null, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - return { - accounts, - contract, - selectedWalletId, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - async setWalletAsRecentlySignedIn(walletId) { - const jsonStorage = new json_storage_service_1.JsonStorage(this.storage, constants_1.PACKAGE_NAME); - let recentlySignedInWallets = await jsonStorage.getItem(constants_1.RECENTLY_SIGNED_IN_WALLETS); - if (!recentlySignedInWallets) { - recentlySignedInWallets = []; - } - if (!recentlySignedInWallets.includes(walletId)) { - recentlySignedInWallets.unshift(walletId); - recentlySignedInWallets = recentlySignedInWallets.slice(0, 5); - await jsonStorage.setItem(constants_1.RECENTLY_SIGNED_IN_WALLETS, recentlySignedInWallets); - } - return recentlySignedInWallets; - } - async signOutWallet(walletId) { - const wallet = (await this.getWallet(walletId)); - await wallet.signOut().catch((err) => { - logger_service_1.logger.log(`Failed to sign out ${wallet.id}`); - logger_service_1.logger.error(err); - // At least clean up state on our side. - this.onWalletSignedOut(wallet.id); - }); - } - async onWalletSignedIn(walletId, { accounts, contractId, methodNames }) { - const { selectedWalletId, rememberRecentWallets } = this.store.getState(); - const jsonStorage = new json_storage_service_1.JsonStorage(this.storage, constants_1.PACKAGE_NAME); - const contract = { contractId, methodNames }; - if (!accounts.length) { - const module = this.getModule(walletId); - // We can't guarantee the user will actually sign in with browser wallets. - // Best we can do is set in storage and validate on init. - if (module.type === "browser") { - await jsonStorage.setItem(constants_1.PENDING_SELECTED_WALLET_ID, walletId); - await jsonStorage.setItem(constants_1.PENDING_CONTRACT, contract); - } - return; - } - if (selectedWalletId && selectedWalletId !== walletId) { - await this.signOutWallet(selectedWalletId); - } - let recentlySignedInWallets = []; - if (rememberRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWallets = await this.setWalletAsRecentlySignedIn(walletId); - } - this.store.dispatch({ - type: "WALLET_CONNECTED", - payload: { - walletId, - contract, - accounts, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - this.emitter.emit("signedIn", { - walletId, - contractId, - methodNames, - accounts, - }); - } - onWalletSignedOut(walletId) { - this.store.dispatch({ - type: "WALLET_DISCONNECTED", - payload: { walletId }, - }); - this.emitter.emit("signedOut", { walletId }); - } - setupWalletEmitter(module) { - const emitter = new event_emitter_service_1.EventEmitter(); - emitter.on("signedOut", () => { - this.onWalletSignedOut(module.id); - }); - emitter.on("signedIn", (event) => { - this.onWalletSignedIn(module.id, event); - }); - emitter.on("accountsChanged", async ({ accounts }) => { - this.emitter.emit("accountsChanged", { walletId: module.id, accounts }); - if (!accounts.length) { - return this.signOutWallet(module.id); - } - this.store.dispatch({ - type: "ACCOUNTS_CHANGED", - payload: { walletId: module.id, accounts }, - }); - }); - emitter.on("networkChanged", ({ networkId }) => { - this.emitter.emit("networkChanged", { walletId: module.id, networkId }); - }); - emitter.on("uriChanged", ({ uri }) => { - this.emitter.emit("uriChanged", { walletId: module.id, uri }); - }); - return emitter; - } - validateSignMessageParams({ message, nonce, recipient, }) { - if (!message || message.trim() === "") { - throw new Error("Invalid message. It must be a non-empty string."); - } - if (!Buffer.isBuffer(nonce) || nonce.length !== 32) { - throw new Error("Invalid nonce. It must be a Buffer with a length of 32 bytes."); - } - if (!recipient || recipient.trim() === "") { - throw new Error("Invalid recipient. It must be a non-empty string."); - } - } - decorateWallet(wallet) { - const _signIn = wallet.signIn; - const _signOut = wallet.signOut; - const _signMessage = wallet.signMessage; - wallet.signIn = async (params) => { - const accounts = await _signIn(params); - const { contractId, methodNames = [] } = params; - await this.onWalletSignedIn(wallet.id, { - accounts, - contractId, - methodNames, - }); - return accounts; - }; - wallet.signOut = async () => { - await _signOut(); - this.onWalletSignedOut(wallet.id); - }; - wallet.signMessage = async (params) => { - if (_signMessage === undefined) { - throw Error(`The signMessage method is not supported by ${wallet.metadata.name}`); - } - this.validateSignMessageParams(params); - return await _signMessage(params); - }; - return wallet; - } - async setupInstance(module) { - if (!module.metadata.available) { - const message = module.type === "injected" ? "not installed" : "not available"; - throw Error(`${module.metadata.name} is ${message}`); - } - const wallet = { - id: module.id, - type: module.type, - metadata: module.metadata, - ...(await module.init({ - id: module.id, - type: module.type, - metadata: module.metadata, - options: this.options, - store: this.store.toReadOnly(), - provider: this.provider, - emitter: this.setupWalletEmitter(module), - logger: new logger_service_1.Logger(module.id), - storage: new json_storage_service_1.JsonStorage(this.storage, [constants_1.PACKAGE_NAME, module.id]), - })), - }; - return this.decorateWallet(wallet); - } - getModule(id) { - return this.modules.find((x) => x.id === id); - } - async getWallet(id) { - const module = this.getModule(id); - if (!module) { - return null; - } - const { selectedWalletId } = this.store.getState(); - // If user uninstalled/removed a wallet which was previously signed in with - // best we can do is clean up state on our side. - if (!module.metadata.available && selectedWalletId) { - this.onWalletSignedOut(selectedWalletId); - return null; - } - return (await module.wallet()); - } - async setup() { - const modules = []; - for (let i = 0; i < this.factories.length; i += 1) { - const module = await this.factories[i]({ options: this.options }).catch((err) => { - logger_service_1.logger.log("Failed to setup module"); - logger_service_1.logger.error(err); - return null; - }); - // Filter out wallets that aren't available. - if (!module) { - continue; - } - // Skip duplicated module. - if (modules.some((x) => x.id === module.id)) { - continue; - } - modules.push({ - id: module.id, - type: module.type, - metadata: module.metadata, - wallet: async () => { - let instance = this.instances[module.id]; - if (instance) { - return instance; - } - instance = await this.setupInstance(module); - this.instances[module.id] = instance; - return instance; - }, - }); - } - this.modules = modules; - const { accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = await this.resolveStorageState(); - this.store.dispatch({ - type: "SETUP_WALLET_MODULES", - payload: { - modules, - accounts, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - for (let i = 0; i < this.modules.length; i++) { - if (this.modules[i].type !== "instant-link") { - continue; - } - const wallet = (await this.modules[i].wallet()); - if (!wallet.metadata.runOnStartup) { - continue; - } - try { - await wallet.signIn({ contractId: wallet.getContractId() }); - } - catch (err) { - logger_service_1.logger.error("Failed to sign in to wallet. " + err); - } - } - } -} -exports.WalletModules = WalletModules; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts deleted file mode 100644 index 339f296e7..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { WalletModuleFactory } from "../../wallet"; -import type { StorageService } from "../storage/storage.service.types"; -import type { Options } from "../../options.types"; -import type { Store } from "../../store.types"; -import type { EventEmitter } from "../event-emitter/event-emitter.service"; -import type { WalletSelectorEvents } from "../../wallet-selector.types"; -import type { ProviderService } from "../provider/provider.service.types"; -export interface WalletModulesParams { - factories: Array; - storage: StorageService; - options: Options; - store: Store; - emitter: EventEmitter; - provider: ProviderService; -} -//# sourceMappingURL=wallet-modules.service.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map deleted file mode 100644 index 231a8d586..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC5C,QAAQ,EAAE,eAAe,CAAC;CAC3B"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/services/wallet-modules/wallet-modules.service.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/store.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/store.d.ts deleted file mode 100644 index dd8b9c03c..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/store.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { StorageService } from "./services"; -import type { Store } from "./store.types"; -export declare const createStore: (storage: StorageService) => Promise; -//# sourceMappingURL=store.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/store.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/store.d.ts.map deleted file mode 100644 index d1628d160..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/store.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EACV,KAAK,EAGN,MAAM,eAAe,CAAC;AA+JvB,eAAO,MAAM,WAAW,YAAmB,cAAc,KAAG,OAAO,CAAC,KAAK,CAgExE,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/store.js b/packages/wallet-utils/dist/cjs/core/src/lib/store.js deleted file mode 100644 index fc078e464..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/store.js +++ /dev/null @@ -1,158 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createStore = void 0; -const rxjs_1 = require("rxjs"); -const services_1 = require("./services"); -const constants_1 = require("./constants"); -const reducer = (state, action) => { - services_1.logger.log("Store Action", action); - switch (action.type) { - case "SETUP_WALLET_MODULES": { - const { modules, accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = action.payload; - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === 0, - }; - }); - return { - ...state, - modules, - accounts: accountStates, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }; - } - case "WALLET_CONNECTED": { - const { walletId, contract, accounts, recentlySignedInWallets } = action.payload; - if (!accounts.length) { - return state; - } - const activeAccountIndex = state.accounts.findIndex((account) => account.active); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === (activeAccountIndex > -1 ? activeAccountIndex : 0), - }; - }); - return { - ...state, - contract, - accounts: accountStates, - selectedWalletId: walletId, - recentlySignedInWallets, - }; - } - case "WALLET_DISCONNECTED": { - const { walletId } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - return { - ...state, - contract: null, - accounts: [], - selectedWalletId: null, - }; - } - case "ACCOUNTS_CHANGED": { - const { walletId, accounts } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - const activeAccount = state.accounts.find((account) => account.active); - const isActiveAccountRemoved = !accounts.some((account) => account.accountId === activeAccount?.accountId); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: isActiveAccountRemoved - ? i === 0 - : account.accountId === activeAccount?.accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_ACTIVE_ACCOUNT": { - const { accountId } = action.payload; - const accountStates = state.accounts.map((account) => { - return { - ...account, - active: account.accountId === accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_REMEMBER_RECENT_WALLETS": { - const { selectedWalletId, recentlySignedInWallets } = state; - const { rememberRecentWallets } = action.payload; - const newRecentWallets = rememberRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? constants_1.REMEMBER_RECENT_WALLETS_STATE.DISABLED - : constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED; - const newWalletsVal = [...recentlySignedInWallets]; - if (selectedWalletId && - !recentlySignedInWallets.includes(selectedWalletId)) { - newWalletsVal.push(selectedWalletId); - } - const newRecentlySignedInWallets = newRecentWallets === constants_1.REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? newWalletsVal - : []; - return { - ...state, - rememberRecentWallets: newRecentWallets, - recentlySignedInWallets: newRecentlySignedInWallets, - }; - } - default: - return state; - } -}; -const createStore = async (storage) => { - const jsonStorage = new services_1.JsonStorage(storage, constants_1.PACKAGE_NAME); - const initialState = { - modules: [], - accounts: [], - contract: await jsonStorage.getItem(constants_1.CONTRACT), - selectedWalletId: await jsonStorage.getItem(constants_1.SELECTED_WALLET_ID), - recentlySignedInWallets: (await jsonStorage.getItem(constants_1.RECENTLY_SIGNED_IN_WALLETS)) || [], - rememberRecentWallets: (await jsonStorage.getItem(constants_1.REMEMBER_RECENT_WALLETS)) || "", - }; - const state$ = new rxjs_1.BehaviorSubject(initialState); - const actions$ = new rxjs_1.Subject(); - actions$.pipe((0, rxjs_1.scan)(reducer, initialState)).subscribe(state$); - const syncStorage = async (prevState, state, storageKey, property) => { - if (state[property] === prevState[property]) { - return; - } - if (state[property]) { - await jsonStorage.setItem(storageKey, state[property]); - return; - } - await jsonStorage.removeItem(storageKey); - }; - let prevState = state$.getValue(); - state$.subscribe((state) => { - syncStorage(prevState, state, constants_1.SELECTED_WALLET_ID, "selectedWalletId"); - syncStorage(prevState, state, constants_1.CONTRACT, "contract"); - syncStorage(prevState, state, constants_1.RECENTLY_SIGNED_IN_WALLETS, "recentlySignedInWallets"); - syncStorage(prevState, state, constants_1.REMEMBER_RECENT_WALLETS, "rememberRecentWallets"); - prevState = state; - }); - return { - observable: state$, - getState: () => state$.getValue(), - dispatch: (action) => actions$.next(action), - toReadOnly: () => ({ - getState: () => state$.getValue(), - observable: state$.asObservable(), - }), - }; -}; -exports.createStore = createStore; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/store.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/store.types.d.ts deleted file mode 100644 index 3d93e104e..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/store.types.d.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type { BehaviorSubject, Observable } from "rxjs"; -import type { Wallet, Account } from "./wallet"; -import type { SignMessageMethod } from "./wallet"; -export interface ContractState { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * List of methods that can only be invoked on the Smart Contract. Empty list means no restriction. - */ - methodNames: Array; -} -export type ModuleState = { - /** - * Unique identifier for the wallet. - */ - id: Variation["id"]; - /** - * Type of the wallet. - */ - type: Variation["type"]; - /** - * Meta information about the wallet. - */ - metadata: Variation["metadata"]; - /** - * Access functionality of the wallet. - */ - wallet(): Promise; -}; -export type AccountState = Account & { - /** - * Is account set as active. - */ - active: boolean; -}; -export interface WalletSelectorState { - /** - * Returns the signed in contract. - */ - contract: ContractState | null; - /** - * Returns the list of available modules. - */ - modules: Array; - /** - * Returns the list of signed in accounts. - */ - accounts: Array; - /** - * Returns the ID of the selected wallet. - */ - selectedWalletId: string | null; - /** - * Returns ID-s of 5 recently signed in wallets. - */ - recentlySignedInWallets: Array; - /** - * Returns a string, which indicates if the functionality about recentlySignedInWallets is active. - */ - rememberRecentWallets: string; -} -export type WalletSelectorAction = { - type: "SETUP_WALLET_MODULES"; - payload: { - modules: Array; - accounts: Array; - contract: ContractState | null; - selectedWalletId: string | null; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_CONNECTED"; - payload: { - walletId: string; - contract: ContractState; - accounts: Array; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_DISCONNECTED"; - payload: { - walletId: string; - }; -} | { - type: "ACCOUNTS_CHANGED"; - payload: { - walletId: string; - accounts: Array; - }; -} | { - type: "SET_ACTIVE_ACCOUNT"; - payload: { - accountId: string; - }; -} | { - type: "SET_REMEMBER_RECENT_WALLETS"; - payload: { - rememberRecentWallets: string; - }; -}; -export interface ReadOnlyStore { - /** - * Retrieve the current state. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - getState(): WalletSelectorState; - /** - * Subscribe to state changes using the (RxJS) Observable pattern. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - observable: Observable; -} -export interface Store { - observable: BehaviorSubject; - getState(): WalletSelectorState; - dispatch(action: WalletSelectorAction): void; - toReadOnly(): ReadOnlyStore; -} -//# sourceMappingURL=store.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/store.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/store.types.d.ts.map deleted file mode 100644 index 5854551fa..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/store.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/store.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/store.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/store.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/testUtils.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/testUtils.d.ts deleted file mode 100644 index ace50a39a..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/testUtils.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { WalletModuleFactory, Wallet } from "./wallet"; -import type { ProviderService, StorageService } from "./services"; -import type { Options } from "./options.types"; -export interface MockWalletDependencies { - options?: Options; - provider?: ProviderService; -} -export declare const mockWallet: (factory: WalletModuleFactory, deps?: MockWalletDependencies) => Promise<{ - wallet: Variation; - storage: StorageService; -}>; -//# sourceMappingURL=testUtils.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/testUtils.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/testUtils.d.ts.map deleted file mode 100644 index dbc9d8f55..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/testUtils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/testUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAmB/C,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,GAAU,SAAS,SAAS,MAAM,WAC9C,mBAAmB,SACrB,sBAAsB;;;EA4B9B,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/testUtils.js b/packages/wallet-utils/dist/cjs/core/src/lib/testUtils.js deleted file mode 100644 index 5e0cc0df9..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/testUtils.js +++ /dev/null @@ -1,107 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.mockWallet = void 0; -// Remove Jest import -// import * as jest from "jest"; -const jest_mock_extended_1 = require("jest-mock-extended"); -const options_1 = require("./options"); -const store_1 = require("./store"); -const services_1 = require("./services"); -const createStorageMock = () => { - const _state = {}; - return { - getItem: async (key) => _state[key] || null, // Replace jest.fn() with plain async functions - setItem: async (key, value) => { - _state[key] = value; - }, - removeItem: async (key) => { - delete _state[key]; - }, - }; -}; -const mockWallet = async (factory, deps) => { - const { options, storage } = (0, options_1.resolveOptions)({ - network: (0, options_1.getNetworkPreset)("testnet"), - storage: createStorageMock(), - modules: [factory], - ...deps?.options, - }); - const emitter = new services_1.EventEmitter(); - const store = await (0, store_1.createStore)(storage); - const walletModules = new services_1.WalletModules({ - factories: [factory], - storage, - options, - store, - emitter, - provider: deps?.provider || (0, jest_mock_extended_1.mock)(), - }); - await walletModules.setup(); - const { modules } = store.getState(); - const wallet = await walletModules.getWallet(modules[0].id); - return { - wallet: wallet, - storage, - }; -}; -exports.mockWallet = mockWallet; -// import * as jest from "jest" -// import { mock } from "jest-mock-extended"; -// import type { WalletModuleFactory, Wallet } from "./wallet"; -// import type { ProviderService, StorageService } from "./services"; -// import type { WalletSelectorEvents } from "./wallet-selector.types"; -// import type { Options } from "./options.types"; -// import { getNetworkPreset, resolveOptions } from "./options"; -// import { createStore } from "./store"; -// import { EventEmitter, WalletModules } from "./services"; -// -// const createStorageMock = (): StorageService => { -// const _state: Record = {}; -// -// return { -// getItem: jest.fn(async (key) => _state[key] || null), -// setItem: jest.fn(async (key, value) => { -// _state[key] = value; -// }), -// removeItem: jest.fn(async (key) => { -// delete _state[key]; -// }), -// }; -// }; -// -// export interface MockWalletDependencies { -// options?: Options; -// provider?: ProviderService; -// } -// -// export const mockWallet = async ( -// factory: WalletModuleFactory, -// deps?: MockWalletDependencies -// ) => { -// const { options, storage } = resolveOptions({ -// network: getNetworkPreset("testnet"), -// storage: createStorageMock(), -// modules: [factory], -// ...deps?.options, -// }); -// const emitter = new EventEmitter(); -// const store = await createStore(storage); -// const walletModules = new WalletModules({ -// factories: [factory], -// storage, -// options, -// store, -// emitter, -// provider: deps?.provider || mock(), -// }); -// -// await walletModules.setup(); -// -// const { modules } = store.getState(); -// const wallet = await walletModules.getWallet(modules[0].id); -// -// return { -// wallet: wallet!, -// storage, -// }; -// }; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/translate/translate.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/translate/translate.d.ts deleted file mode 100644 index 8706ed5a9..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/translate/translate.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type SupportedLanguage = "en" | "es" | "zh" | "bg" | "ko" | "vi" | "hi" | "ar" | "hr" | "mk" | "sl" | "sr"; -export declare const allowOnlyLanguage: (langCode: SupportedLanguage | undefined) => void; -export declare const translate: (path: string) => string; -//# sourceMappingURL=translate.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/translate/translate.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/translate/translate.d.ts.map deleted file mode 100644 index b2ac2d105..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/translate/translate.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/translate/translate.ts"],"names":[],"mappings":"AA4CA,MAAM,MAAM,iBAAiB,GACzB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,eAAO,MAAM,iBAAiB,aAAc,iBAAiB,GAAG,SAAS,SAExE,CAAC;AAuBF,eAAO,MAAM,SAAS,SAAU,MAAM,WAarC,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/translate/translate.js b/packages/wallet-utils/dist/cjs/core/src/lib/translate/translate.js deleted file mode 100644 index c5573a87c..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/translate/translate.js +++ /dev/null @@ -1,81 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.translate = exports.allowOnlyLanguage = void 0; -const en_json_1 = __importDefault(require("../locale/en.json")); -const es_json_1 = __importDefault(require("../locale/es.json")); -const zh_json_1 = __importDefault(require("../locale/zh.json")); -const bg_json_1 = __importDefault(require("../locale/bg.json")); -const ko_json_1 = __importDefault(require("../locale/ko.json")); -const vi_json_1 = __importDefault(require("../locale/vi.json")); -const hi_json_1 = __importDefault(require("../locale/hi.json")); -const ar_json_1 = __importDefault(require("../locale/ar.json")); -const hr_json_1 = __importDefault(require("../locale/hr.json")); -const mk_json_1 = __importDefault(require("../locale/mk.json")); -const sl_json_1 = __importDefault(require("../locale/sl.json")); -const sr_json_1 = __importDefault(require("../locale/sr.json")); -const getLanguage = (languageCode) => { - switch (languageCode) { - case "en": - return en_json_1.default; - case "es": - return es_json_1.default; - case "zh": - return zh_json_1.default; - case "bg": - return bg_json_1.default; - case "ko": - return ko_json_1.default; - case "vi": - return vi_json_1.default; - case "hi": - return hi_json_1.default; - case "ar": - return ar_json_1.default; - case "hr": - return hr_json_1.default; - case "mk": - return mk_json_1.default; - case "sl": - return sl_json_1.default; - case "sr": - return sr_json_1.default; - default: - return en_json_1.default; - } -}; -let chosenLang; -const allowOnlyLanguage = (langCode) => { - chosenLang = langCode; -}; -exports.allowOnlyLanguage = allowOnlyLanguage; -// (i.e en-CA returns just en) -const shortenLanguageCode = (lang) => { - return lang.indexOf("-") !== -1 ? lang.split("-")[0] : lang.split("_")[0]; -}; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const findObjectPropByStringPath = (obj, prop) => { - if (!obj) { - return ""; - } - const _index = prop.indexOf("."); - if (_index > -1) { - const currentProp = prop.substring(0, _index); - const nextProp = prop.substring(_index + 1); - return findObjectPropByStringPath(obj[currentProp], nextProp); - } - return obj[prop]; -}; -const translate = (path) => { - let browserLang = window.navigator.languages - ? window.navigator.languages[0] - : null; - browserLang = browserLang || window.navigator.language; - const languageCode = shortenLanguageCode(chosenLang || browserLang); - const selectedLanguage = getLanguage(languageCode); - const text = findObjectPropByStringPath(selectedLanguage, path); - return text && typeof text === "string" ? text : path; -}; -exports.translate = translate; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/utils.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/utils.types.d.ts deleted file mode 100644 index fbcda75c6..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/utils.types.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Optional = Omit & Partial>; -export type Modify = Omit & R; -//# sourceMappingURL=utils.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/utils.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/utils.types.d.ts.map deleted file mode 100644 index 0c4119292..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/utils.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/utils.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/utils.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/utils.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/utils.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.d.ts deleted file mode 100644 index 8dd8656b7..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { WalletSelector, WalletSelectorParams } from "./wallet-selector.types"; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -export declare const setupWalletSelector: (params: WalletSelectorParams) => Promise; -//# sourceMappingURL=wallet-selector.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.d.ts.map deleted file mode 100644 index e613937ba..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAmEjC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,WACtB,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CAyCxB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.js b/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.js deleted file mode 100644 index 8ffb4cc07..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.js +++ /dev/null @@ -1,83 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setupWalletSelector = void 0; -const options_1 = require("./options"); -const store_1 = require("./store"); -const services_1 = require("./services"); -let walletSelectorInstance = null; -const createSelector = (options, store, walletModules, emitter) => { - return { - options, - store: store.toReadOnly(), - wallet: async (id) => { - const { selectedWalletId } = store.getState(); - const wallet = await walletModules.getWallet(id || selectedWalletId); - if (!wallet) { - if (id) { - throw new Error("Invalid wallet id"); - } - throw new Error("No wallet selected"); - } - return wallet; - }, - setActiveAccount: (accountId) => { - const { accounts } = store.getState(); - if (!accounts.some((account) => account.accountId === accountId)) { - throw new Error("Invalid account id"); - } - store.dispatch({ - type: "SET_ACTIVE_ACCOUNT", - payload: { accountId }, - }); - }, - setRememberRecentWallets: () => { - const { rememberRecentWallets } = store.getState(); - store.dispatch({ - type: "SET_REMEMBER_RECENT_WALLETS", - payload: { rememberRecentWallets }, - }); - }, - isSignedIn() { - const { accounts } = store.getState(); - return Boolean(accounts.length); - }, - on: (eventName, callback) => { - return emitter.on(eventName, callback); - }, - off: (eventName, callback) => { - emitter.off(eventName, callback); - }, - }; -}; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -const setupWalletSelector = async (params) => { - const { options, storage } = (0, options_1.resolveOptions)(params); - services_1.Logger.debug = options.debug; - const emitter = new services_1.EventEmitter(); - const store = await (0, store_1.createStore)(storage); - const network = await (0, options_1.getNetworkPreset)(options.network.networkId, params.fallbackRpcUrls); - const rpcProviderUrls = params.fallbackRpcUrls && params.fallbackRpcUrls.length > 0 - ? params.fallbackRpcUrls - : [network.nodeUrl]; - const walletModules = new services_1.WalletModules({ - factories: params.modules, - storage, - options, - store, - emitter, - provider: new services_1.Provider(rpcProviderUrls), - }); - await walletModules.setup(); - if (params.allowMultipleSelectors) { - return createSelector(options, store, walletModules, emitter); - } - if (!walletSelectorInstance) { - walletSelectorInstance = createSelector(options, store, walletModules, emitter); - } - return walletSelectorInstance; -}; -exports.setupWalletSelector = setupWalletSelector; diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.types.d.ts deleted file mode 100644 index 327a9db79..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.types.d.ts +++ /dev/null @@ -1,109 +0,0 @@ -import type { Account, Wallet, WalletModuleFactory } from "./wallet/wallet.types"; -import type { ReadOnlyStore } from "./store.types"; -import type { Network, NetworkId, Options } from "./options.types"; -import type { Subscription, StorageService } from "./services"; -import type { SupportedLanguage } from "./translate/translate"; -import type { SignMessageMethod } from "./wallet/wallet.types"; -export interface WalletSelectorParams { - /** - * Resolved network configuration. - */ - network: NetworkId | Network; - /** - * List of wallet module factory functions - */ - modules: Array; - /** - * Custom storage service - */ - storage?: StorageService; - /** - * Whether internal logging is enabled. - */ - debug?: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder?: boolean; - /** - * Wether to allow multiple wallet selector instances to be created. - */ - allowMultipleSelectors?: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder?: boolean; - /** - * ISO 639-1 two-letter language code. - */ - languageCode?: SupportedLanguage; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl?: string; - /** - * Whether multiple RPC URLs are included, used for the FailoverRpcProvider. - */ - fallbackRpcUrls?: Array; -} -export type WalletSelectorStore = ReadOnlyStore; -export type WalletSelectorEvents = { - signedIn: { - walletId: string; - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: { - walletId: string; - }; - accountsChanged: { - walletId: string; - accounts: Array; - }; - networkChanged: { - walletId: string; - networkId: string; - }; - uriChanged: { - walletId: string; - uri: string; - }; -}; -export interface WalletSelector { - /** - * Resolved variation of the options passed to `setupWalletSelector`. - */ - options: Options; - /** - * Wallet selector storage service - */ - store: WalletSelectorStore; - /** - * Programmatically access wallets and call their methods. - * It's advised to use `state.modules` if you only need access to `id`, `type` or `metadata` as it avoids initialising. - * You can find more information on Wallet {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/wallet.md | here}. - */ - wallet(id?: string): Promise; - /** - * Determines whether we're signed in to one or more accounts. - */ - isSignedIn(): boolean; - /** - * Programmatically change active account which will be used to sign and send transactions. - */ - setActiveAccount(accountId: string): void; - /** - * Programmatically changes the rememberRecentWallets behavior, it can deactivate and activate rememberRecentWallets. - */ - setRememberRecentWallets(): void; - /** - * Attach an event handler to important events. - */ - on(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): Subscription; - /** - * Removes the event handler attached to the given `event`. - */ - off(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): void; -} -//# sourceMappingURL=wallet-selector.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.types.d.ts.map deleted file mode 100644 index 2ab329a5f..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet-selector.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/index.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/wallet/index.d.ts deleted file mode 100644 index df9c381db..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./wallet.types"; -export * from "./transactions.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/index.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/wallet/index.d.ts.map deleted file mode 100644 index 223147a0a..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/index.js b/packages/wallet-utils/dist/cjs/core/src/lib/wallet/index.js deleted file mode 100644 index d7ee97f6b..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/index.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./wallet.types"), exports); -__exportStar(require("./transactions.types"), exports); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/transactions.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/wallet/transactions.types.d.ts deleted file mode 100644 index edbe827c4..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/transactions.types.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -export interface CreateAccountAction { - type: "CreateAccount"; -} -export interface DeployContractAction { - type: "DeployContract"; - params: { - code: Uint8Array; - }; -} -export interface FunctionCallAction { - type: "FunctionCall"; - params: { - methodName: string; - args: object; - gas: string; - deposit: string; - }; -} -export interface TransferAction { - type: "Transfer"; - params: { - deposit: string; - }; -} -export interface StakeAction { - type: "Stake"; - params: { - stake: string; - publicKey: string; - }; -} -export type AddKeyPermission = "FullAccess" | { - receiverId: string; - allowance?: string; - methodNames?: Array; -}; -export interface AddKeyAction { - type: "AddKey"; - params: { - publicKey: string; - accessKey: { - nonce?: number; - permission: AddKeyPermission; - }; - }; -} -export interface DeleteKeyAction { - type: "DeleteKey"; - params: { - publicKey: string; - }; -} -export interface DeleteAccountAction { - type: "DeleteAccount"; - params: { - beneficiaryId: string; - }; -} -export type Action = CreateAccountAction | DeployContractAction | FunctionCallAction | TransferAction | StakeAction | AddKeyAction | DeleteKeyAction | DeleteAccountAction; -export type ActionType = Action["type"]; -export interface Transaction { - signerId: string; - receiverId: string; - actions: Array; -} -//# sourceMappingURL=transactions.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/transactions.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/wallet/transactions.types.d.ts.map deleted file mode 100644 index 4236471a2..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/transactions.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transactions.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/transactions.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE;QACN,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE;YACT,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,gBAAgB,CAAC;SAC9B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,MAAM,MAAM,GACd,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,WAAW,GACX,YAAY,GACZ,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/transactions.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/wallet/transactions.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/transactions.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/wallet.types.d.ts b/packages/wallet-utils/dist/cjs/core/src/lib/wallet/wallet.types.d.ts deleted file mode 100644 index ac2631a0c..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/wallet.types.d.ts +++ /dev/null @@ -1,295 +0,0 @@ -import type { EventEmitterService, LoggerService, ProviderService, JsonStorageService } from "../services"; -import type { Options } from "../options.types"; -import type { ReadOnlyStore } from "../store.types"; -import type { Transaction, Action } from "./transactions.types"; -import type { Modify, Optional } from "../utils.types"; -import type { FinalExecutionOutcome } from "@near-js/types"; -import { KeyType } from "@near-js/crypto"; -interface BaseWalletMetadata { - /** - * Wallet name. - */ - name: string; - /** - * Wallet description. - */ - description: string | null; - /** - * Wallet icon url. - */ - iconUrl: string; - /** - * Is wallet deprecated. - */ - deprecated: boolean; - /** - * Will the wallet be shown in modal. - */ - available: boolean; -} -export interface Account { - /** - * NEAR account identifier. - */ - accountId: string; - /** - * Account public key. - */ - publicKey?: string; -} -export interface SignInParams { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * Specify limited access to particular methods on the Smart Contract. - */ - methodNames?: Array; -} -export interface VerifyOwnerParams { - /** - * The message requested sign. Defaults to `verify owner` string. - */ - message: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet). This is the callback url once the signing is approved. Defaults to `window.location.href`. - */ - callbackUrl?: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet) extra data that will be passed to the callback url once the signing is approved. - */ - meta?: string; -} -export interface VerifiedOwner { - accountId: string; - message: string; - blockId: string; - publicKey: string; - signature: string; - keyType: KeyType; -} -export interface SignMessageParams { - message: string; - recipient: string; - nonce: Buffer; - callbackUrl?: string; - state?: string; -} -export interface SignedMessage { - accountId: string; - publicKey: string; - signature: string; - state?: string; -} -export type SignMessageMethod = { - signMessage(params: SignMessageParams): Promise; -}; -interface SignAndSendTransactionParams { - /** - * Account ID used to sign the transaction. Defaults to the first account. - */ - signerId?: string; - /** - * Account ID to receive the transaction. Defaults to `contractId` defined in `init`. - */ - receiverId?: string; - /** - * NEAR Action(s) to sign and send to the network (e.g. `FunctionCall`). You can find more information on `Action` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - actions: Array; -} -interface SignAndSendTransactionsParams { - /** - * NEAR Transactions(s) to sign and send to the network. You can find more information on `Transaction` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - transactions: Array>; -} -interface BaseWalletBehaviour { - /** - * Programmatically sign in. Hardware wallets (e.g. Ledger) require `derivationPaths` to validate access key permissions. - */ - signIn(params: SignInParams): Promise>; - /** - * Sign out from the wallet. - */ - signOut(): Promise; - /** - * Returns one or more accounts when signed in. - * This method can be useful for wallets that support accounts at once such as WalletConnect. - * In this case, you can use an `accountId` returned as the `signerId` for `signAndSendTransaction`. - */ - getAccounts(): Promise>; - /** - * Signs the message and verifies the owner. Message is not sent to blockchain. - */ - verifyOwner(params: VerifyOwnerParams): Promise; - /** - * Signs one or more NEAR Actions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransaction(params: SignAndSendTransactionParams): Promise; - /** - * Signs one or more transactions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransactions(params: SignAndSendTransactionsParams): Promise>; - signMessage?(params: SignMessageParams): Promise; -} -type BaseWallet = { - /** - * Unique identifier of the wallet. - */ - id: string; - /** - * Returns the type of wallet. This is particular useful when using functionality that's wallet specific (see hardware wallet example). - */ - type: Type; - /** - * Returns meta information about the wallet such as `name`, `description`, `iconUrl`, `deprecated` and `available` but can include wallet-specific properties such as `downloadUrl` and `useUrlAccountImport` for injected wallets or `contractId`, `runOnStartup` for instant-link wallets and walletUrl for browser wallets. - */ - metadata: Metadata; -} & Behaviour; -export type WalletEvents = { - signedIn: { - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: null; - accountsChanged: { - accounts: Array; - }; - networkChanged: { - networkId: string; - }; - uriChanged: { - uri: string; - }; -}; -export type BrowserWalletMetadata = BaseWalletMetadata & { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; - /** - * The URL of the wallet exposed in the metadata of the module. - */ - walletUrl: string; -}; -interface BrowserWalletSignInParams extends SignInParams { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; -} -interface BrowserWalletSignAndSendTransactionParams extends SignAndSendTransactionParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -interface BrowserWalletSignAndSendTransactionsParams extends SignAndSendTransactionsParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -export type BrowserWalletBehaviour = Modify>; - signAndSendTransaction(params: BrowserWalletSignAndSendTransactionParams): Promise; - signAndSendTransactions(params: BrowserWalletSignAndSendTransactionsParams): Promise; -}>; -export type BrowserWallet = BaseWallet<"browser", BrowserWalletMetadata, BrowserWalletBehaviour>; -export type InjectedWalletMetadata = BaseWalletMetadata & { - downloadUrl: string; - topLevelInjected?: boolean; - useUrlAccountImport?: boolean; -}; -export interface AccountImportData { - accountId: string; - privateKey: string; -} -export interface AccountImportSecureContextParams { - accounts: Array; -} -export type InjectedWalletBehaviour = Modify; -}>; -export type InjectedWallet = BaseWallet<"injected", InjectedWalletMetadata, InjectedWalletBehaviour>; -export type InstantLinkWalletMetadata = BaseWalletMetadata & { - contractId: string; - runOnStartup: boolean; -}; -export type InstantLinkWalletBehaviour = BaseWalletBehaviour & { - getContractId(): string; -}; -export type InstantLinkWallet = BaseWallet<"instant-link", InstantLinkWalletMetadata, InstantLinkWalletBehaviour>; -export type HardwareWalletMetadata = BaseWalletMetadata; -export interface HardwareWalletAccount { - derivationPath: string; - publicKey: string; - accountId: string; -} -export interface HardwareWalletSignInParams extends SignInParams { - /** - * Required for hardware wallets (e.g. Ledger). This is a list of `accounts` linked to public keys on your device. - */ - accounts: Array; -} -export type HardwareWalletBehaviour = Modify>; -}> & { - getPublicKey(derivationPath: string): Promise; -}; -export type HardwareWallet = BaseWallet<"hardware", HardwareWalletMetadata, HardwareWalletBehaviour>; -interface BridgeWalletSignInParams extends SignInParams { - /** - * Optional for bridge wallets (e.g Wallet Connect). - * This indicates whether to render QR Code in wallet selector modal or use the default vendor modal. - */ - qrCodeModal?: boolean; -} -export type BridgeWalletMetadata = BaseWalletMetadata; -export type BridgeWalletBehaviour = Modify>; -}>; -export type BridgeWallet = BaseWallet<"bridge", BridgeWalletMetadata, BridgeWalletBehaviour>; -export type WalletMetadata = BrowserWalletMetadata | InjectedWalletMetadata | InstantLinkWalletMetadata | HardwareWalletMetadata | BridgeWalletMetadata; -export type Wallet = BrowserWallet | InjectedWallet | InstantLinkWallet | HardwareWallet | BridgeWallet; -export type WalletType = Wallet["type"]; -interface WalletModuleOptions { - options: Options; -} -export interface WalletBehaviourOptions { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - options: Options; - store: ReadOnlyStore; - provider: ProviderService; - emitter: EventEmitterService; - logger: LoggerService; - storage: JsonStorageService; -} -export type WalletBehaviourFactory = (options: WalletBehaviourOptions & ExtraOptions) => Promise>; -export type WalletModule = { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - init(options: WalletBehaviourOptions): Promise>; -}; -export type WalletModuleFactory = (options: WalletModuleOptions) => Promise | null>; -export {}; -//# sourceMappingURL=wallet.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/wallet.types.d.ts.map b/packages/wallet-utils/dist/cjs/core/src/lib/wallet/wallet.types.d.ts.map deleted file mode 100644 index c9ebc6eb8..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/wallet.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/wallet.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/wallet.types.js b/packages/wallet-utils/dist/cjs/core/src/lib/wallet/wallet.types.js deleted file mode 100644 index c8ad2e549..000000000 --- a/packages/wallet-utils/dist/cjs/core/src/lib/wallet/wallet.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/index.d.ts b/packages/wallet-utils/dist/cjs/wallet-utils/src/index.d.ts deleted file mode 100644 index 9b70859cc..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { createAction, signTransactions } from "./lib/wallet-utils"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/index.d.ts.map b/packages/wallet-utils/dist/cjs/wallet-utils/src/index.d.ts.map deleted file mode 100644 index 0f953dcab..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/index.js b/packages/wallet-utils/dist/cjs/wallet-utils/src/index.js deleted file mode 100644 index 309bdb658..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/index.js +++ /dev/null @@ -1,6 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.signTransactions = exports.createAction = void 0; -var wallet_utils_1 = require("./lib/wallet-utils"); -Object.defineProperty(exports, "createAction", { enumerable: true, get: function () { return wallet_utils_1.createAction; } }); -Object.defineProperty(exports, "signTransactions", { enumerable: true, get: function () { return wallet_utils_1.signTransactions; } }); diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/create-action.d.ts b/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/create-action.d.ts deleted file mode 100644 index da65b4629..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/create-action.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as nearAPI from "near-api-js"; -import type { Action } from "@near-wallet-selector/core"; -export declare const createAction: (action: Action) => nearAPI.transactions.Action; -//# sourceMappingURL=create-action.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/create-action.d.ts.map b/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/create-action.d.ts.map deleted file mode 100644 index 7a0b17623..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/create-action.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"create-action.d.ts","sourceRoot":"","sources":["../../../../../src/lib/create-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAoB,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAgB3E,eAAO,MAAM,YAAY,WAAY,MAAM,gCAqD1C,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/create-action.js b/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/create-action.js deleted file mode 100644 index b4a01ef64..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/create-action.js +++ /dev/null @@ -1,78 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createAction = void 0; -const nearAPI = __importStar(require("near-api-js")); -const { transactions, utils } = nearAPI; -const getAccessKey = (permission) => { - if (permission === "FullAccess") { - return transactions.fullAccessKey(); - } - const { receiverId, methodNames = [] } = permission; - const allowance = permission.allowance - ? BigInt(permission.allowance) - : undefined; - return transactions.functionCallAccessKey(receiverId, methodNames, allowance); -}; -const createAction = (action) => { - switch (action.type) { - case "CreateAccount": - return transactions.createAccount(); - case "DeployContract": { - const { code } = action.params; - return transactions.deployContract(code); - } - case "FunctionCall": { - const { methodName, args, gas, deposit } = action.params; - console.log('alohaws action', action); - return transactions.functionCall(methodName, args, BigInt(gas), BigInt(deposit)); - } - case "Transfer": { - const { deposit } = action.params; - return transactions.transfer(BigInt(deposit)); - } - case "Stake": { - const { stake, publicKey } = action.params; - return transactions.stake(BigInt(stake), utils.PublicKey.from(publicKey)); - } - case "AddKey": { - const { publicKey, accessKey } = action.params; - return transactions.addKey(utils.PublicKey.from(publicKey), - // TODO: Use accessKey.nonce? near-api-js seems to think 0 is fine? - getAccessKey(accessKey.permission)); - } - case "DeleteKey": { - const { publicKey } = action.params; - return transactions.deleteKey(utils.PublicKey.from(publicKey)); - } - case "DeleteAccount": { - const { beneficiaryId } = action.params; - return transactions.deleteAccount(beneficiaryId); - } - default: - throw new Error("Invalid action type"); - } -}; -exports.createAction = createAction; diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts b/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts deleted file mode 100644 index fd0b85445..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Signer } from "@near-js/signers"; -import type { SignedTransaction } from "@near-js/transactions"; -import type { Network, Transaction } from "@near-wallet-selector/core/src"; -export declare const signTransactions: (transactions: Array, signer: Signer, network: Network) => Promise; -//# sourceMappingURL=sign-transactions.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts.map b/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts.map deleted file mode 100644 index bdd8c1195..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/sign-transactions.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sign-transactions.d.ts","sourceRoot":"","sources":["../../../../../src/lib/sign-transactions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAIzE,eAAO,MAAM,gBAAgB,iBACb,KAAK,CAAC,WAAW,CAAC,UACxB,MAAM,WACL,OAAO,iCAoDjB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/sign-transactions.js b/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/sign-transactions.js deleted file mode 100644 index c8c3b6519..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/sign-transactions.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.signTransactions = void 0; -const crypto_1 = require("@near-js/crypto"); -const transactions_1 = require("@near-js/transactions"); -const utils_1 = require("@near-js/utils"); -// import * as nearAPI from "near-api-js"; -const providers_1 = require("@near-js/providers"); -const create_action_1 = require("./create-action"); -const signTransactions = async (transactions, signer, network) => { - const provider = new providers_1.JsonRpcProvider({ - url: network.nodeUrl, - }); - const signedTransactions = []; - for (let i = 0; i < transactions.length; i++) { - const publicKey = await signer.getPublicKey(transactions[i].signerId, network.networkId); - const [block, accessKey] = await Promise.all([ - provider.block({ finality: "final" }), - provider.query({ - request_type: "view_access_key", - finality: "final", - account_id: transactions[i].signerId, - public_key: publicKey.toString(), - }), - ]); - const actions = transactions[i].actions.map((action) => (0, create_action_1.createAction)(action)); - const transaction = (0, transactions_1.createTransaction)(transactions[i].signerId, new crypto_1.PublicKey({ - keyType: crypto_1.KeyType.ED25519, - data: publicKey.data - }), - // PublicKey.from(publicKey.toString()), - transactions[i].receiverId, accessKey.nonce + i + 1, actions, (0, utils_1.baseDecode)(block.header.hash)); - const response = await (0, transactions_1.signTransaction)(transaction, signer, transactions[i].signerId, network.networkId); - signedTransactions.push(response[1]); - } - return signedTransactions; -}; -exports.signTransactions = signTransactions; diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts b/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts deleted file mode 100644 index ca97d2268..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createAction } from "./create-action"; -import { signTransactions } from "./sign-transactions"; -export { createAction, signTransactions }; -//# sourceMappingURL=wallet-utils.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts.map b/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts.map deleted file mode 100644 index ffc675757..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/wallet-utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-utils.d.ts","sourceRoot":"","sources":["../../../../../src/lib/wallet-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/wallet-utils.js b/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/wallet-utils.js deleted file mode 100644 index 1d0db17bd..000000000 --- a/packages/wallet-utils/dist/cjs/wallet-utils/src/lib/wallet-utils.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.signTransactions = exports.createAction = void 0; -const create_action_1 = require("./create-action"); -Object.defineProperty(exports, "createAction", { enumerable: true, get: function () { return create_action_1.createAction; } }); -const sign_transactions_1 = require("./sign-transactions"); -Object.defineProperty(exports, "signTransactions", { enumerable: true, get: function () { return sign_transactions_1.signTransactions; } }); diff --git a/packages/wallet-utils/dist/esm/core/src/index.d.ts b/packages/wallet-utils/dist/esm/core/src/index.d.ts deleted file mode 100644 index 18e086590..000000000 --- a/packages/wallet-utils/dist/esm/core/src/index.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type { WalletSelector, WalletSelectorParams, WalletSelectorEvents, WalletSelectorStore, } from "./lib/wallet-selector.types"; -export { setupWalletSelector } from "./lib/wallet-selector.js"; -export type { Network, NetworkId } from "./lib/options.types"; -export type { Subscription, StorageService, JsonStorageService, EventEmitterService, } from "./lib/services"; -export { EventEmitter } from "./lib/services"; -export type { Optional } from "./lib/utils.types"; -export type { WalletSelectorState, ContractState, ModuleState, AccountState, } from "./lib/store.types"; -export type { WalletModuleFactory, WalletModule, WalletBehaviourFactory, WalletBehaviourOptions, Wallet, WalletType, WalletMetadata, WalletEvents, SignInParams, BrowserWalletMetadata, BrowserWalletBehaviour, BrowserWallet, InjectedWalletMetadata, InjectedWalletBehaviour, InjectedWallet, InstantLinkWalletMetadata, InstantLinkWalletBehaviour, InstantLinkWallet, HardwareWalletMetadata, HardwareWalletSignInParams, HardwareWalletBehaviour, HardwareWallet, HardwareWalletAccount, BridgeWalletMetadata, BridgeWalletBehaviour, BridgeWallet, VerifiedOwner, VerifyOwnerParams, Account, Transaction, Action, ActionType, CreateAccountAction, DeployContractAction, FunctionCallAction, TransferAction, StakeAction, AddKeyAction, DeleteKeyAction, DeleteAccountAction, AddKeyPermission, AccountImportData, SignedMessage, SignMessageParams, } from "./lib/wallet"; -export type { FinalExecutionOutcome } from "@near-js/types"; -export { waitFor, getActiveAccount, isCurrentBrowserSupported, verifyFullKeyBelongsToUser, verifySignature, serializeNep413, } from "./lib/helpers"; -export { translate, allowOnlyLanguage } from "./lib/translate/translate"; -export { mockWallet } from './lib/testUtils'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/index.d.ts.map b/packages/wallet-utils/dist/esm/core/src/index.d.ts.map deleted file mode 100644 index f98229043..000000000 --- a/packages/wallet-utils/dist/esm/core/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,EACN,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/index.js b/packages/wallet-utils/dist/esm/core/src/index.js deleted file mode 100644 index a545ffa59..000000000 --- a/packages/wallet-utils/dist/esm/core/src/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export { setupWalletSelector } from "./lib/wallet-selector.js"; -export { EventEmitter } from "./lib/services"; -export { waitFor, getActiveAccount, isCurrentBrowserSupported, verifyFullKeyBelongsToUser, verifySignature, serializeNep413, } from "./lib/helpers"; -export { translate, allowOnlyLanguage } from "./lib/translate/translate"; -export { mockWallet } from './lib/testUtils'; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/constants.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/constants.d.ts deleted file mode 100644 index ea8f9e98c..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/constants.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export declare const PACKAGE_NAME = "near-wallet-selector"; -export declare const RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -export declare const REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -export declare const REMEMBER_RECENT_WALLETS_STATE: { - ENABLED: string; - DISABLED: string; -}; -export declare const CONTRACT = "contract"; -export declare const PENDING_CONTRACT = "contract:pending"; -export declare const SELECTED_WALLET_ID = "selectedWalletId"; -export declare const PENDING_SELECTED_WALLET_ID = "selectedWalletId:pending"; -//# sourceMappingURL=constants.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/constants.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/constants.d.ts.map deleted file mode 100644 index 30185737c..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/constants.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,yBAAyB,CAAC;AACnD,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,0BAA0B,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/constants.js b/packages/wallet-utils/dist/esm/core/src/lib/constants.js deleted file mode 100644 index a75f1a50e..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/constants.js +++ /dev/null @@ -1,11 +0,0 @@ -export const PACKAGE_NAME = "near-wallet-selector"; -export const RECENTLY_SIGNED_IN_WALLETS = "recentlySignedInWallets"; -export const REMEMBER_RECENT_WALLETS = "rememberRecentWallets"; -export const REMEMBER_RECENT_WALLETS_STATE = { - ENABLED: "enabled", - DISABLED: "disabled", -}; -export const CONTRACT = "contract"; -export const PENDING_CONTRACT = "contract:pending"; -export const SELECTED_WALLET_ID = `selectedWalletId`; -export const PENDING_SELECTED_WALLET_ID = `selectedWalletId:pending`; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/detect-browser.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/helpers/detect-browser.d.ts deleted file mode 100644 index 6c6f4c418..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/detect-browser.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Browser = "aol" | "edge" | "edge-ios" | "yandexbrowser" | "kakaotalk" | "samsung" | "silk" | "miui" | "beaker" | "edge-chromium" | "chrome" | "chromium-webview" | "phantomjs" | "crios" | "firefox" | "fxios" | "opera-mini" | "opera" | "pie" | "netfront" | "ie" | "bb10" | "android" | "ios" | "safari" | "facebook" | "instagram" | "ios-webview" | "curl" | "searchbot"; -export declare const isCurrentBrowserSupported: (supportedBrowser: Array) => boolean; -//# sourceMappingURL=detect-browser.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/detect-browser.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/helpers/detect-browser.d.ts.map deleted file mode 100644 index 656e85614..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/detect-browser.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"detect-browser.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/detect-browser.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GACf,KAAK,GACL,MAAM,GACN,UAAU,GACV,eAAe,GACf,WAAW,GACX,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,OAAO,GACP,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO,GACP,KAAK,GACL,UAAU,GACV,IAAI,GACJ,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,UAAU,GACV,WAAW,GACX,aAAa,GACb,MAAM,GACN,WAAW,CAAC;AAoEhB,eAAO,MAAM,yBAAyB,qBAClB,KAAK,CAAC,OAAO,CAAC,KAC/B,OAeF,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/detect-browser.js b/packages/wallet-utils/dist/esm/core/src/lib/helpers/detect-browser.js deleted file mode 100644 index c4e583914..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/detect-browser.js +++ /dev/null @@ -1,70 +0,0 @@ -/* eslint-disable no-useless-escape */ -// https://github.com/DamonOehlman/detect-browser/blob/master/src/index.ts -const SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/; -const userAgentRules = [ - ["aol", /AOLShield\/([0-9\._]+)/], - ["edge", /Edge\/([0-9\._]+)/], - ["edge-ios", /EdgiOS\/([0-9\._]+)/], - ["yandexbrowser", /YaBrowser\/([0-9\._]+)/], - ["kakaotalk", /KAKAOTALK\s([0-9\.]+)/], - ["samsung", /SamsungBrowser\/([0-9\.]+)/], - ["silk", /\bSilk\/([0-9._-]+)\b/], - ["miui", /MiuiBrowser\/([0-9\.]+)$/], - ["beaker", /BeakerBrowser\/([0-9\.]+)/], - ["edge-chromium", /EdgA?\/([0-9\.]+)/], - [ - "chromium-webview", - /(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/, - ], - ["chrome", /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/], - ["phantomjs", /PhantomJS\/([0-9\.]+)(:?\s|$)/], - ["crios", /CriOS\/([0-9\.]+)(:?\s|$)/], - ["firefox", /Firefox\/([0-9\.]+)(?:\s|$)/], - ["fxios", /FxiOS\/([0-9\.]+)/], - ["opera-mini", /Opera Mini.*Version\/([0-9\.]+)/], - ["opera", /Opera\/([0-9\.]+)(?:\s|$)/], - ["opera", /OPR\/([0-9\.]+)(:?\s|$)/], - ["pie", /^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/], - [ - "pie", - /^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/, - ], - ["netfront", /^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/], - ["ie", /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/], - ["ie", /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/], - ["ie", /MSIE\s(7\.0)/], - ["bb10", /BB10;\sTouch.*Version\/([0-9\.]+)/], - ["android", /Android\s([0-9\.]+)/], - ["ios", /Version\/([0-9\._]+).*Mobile.*Safari.*/], - ["safari", /Version\/([0-9\._]+).*Safari/], - ["facebook", /FB[AS]V\/([0-9\.]+)/], - ["instagram", /Instagram\s([0-9\.]+)/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Mobile/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Gecko\)$/], - ["curl", /^curl\/([0-9\.]+)$/], - ["searchbot", SEARCHBOX_UA_REGEX], -]; -const matchUserAgent = (ua) => { - return (ua !== "" && - userAgentRules.reduce((matched, [browser, regex]) => { - if (matched) { - return matched; - } - const uaMatch = regex.exec(ua); - return !!uaMatch && [browser, uaMatch]; - }, false)); -}; -export const isCurrentBrowserSupported = (supportedBrowser) => { - if (typeof navigator === "undefined") { - return false; - } - const matchedRule = matchUserAgent(navigator.userAgent); - if (!matchedRule) { - return false; - } - const [name] = matchedRule; - if (name === "searchbot") { - return false; - } - return !!supportedBrowser.find((item) => item === name); -}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts deleted file mode 100644 index 6741ffe8c..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { AccountState, WalletSelectorState } from "../store.types"; -export declare const getActiveAccount: (state: WalletSelectorState) => AccountState | null; -//# sourceMappingURL=getActiveAccount.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts.map deleted file mode 100644 index 69c3c7609..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/getActiveAccount.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"getActiveAccount.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/getActiveAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,eAAO,MAAM,gBAAgB,UACpB,mBAAmB,KACzB,YAAY,GAAG,IAEjB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/getActiveAccount.js b/packages/wallet-utils/dist/esm/core/src/lib/helpers/getActiveAccount.js deleted file mode 100644 index b2db314cb..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/getActiveAccount.js +++ /dev/null @@ -1,3 +0,0 @@ -export const getActiveAccount = (state) => { - return state.accounts.find((account) => account.active) || null; -}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/index.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/helpers/index.d.ts deleted file mode 100644 index 78cea0fee..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./waitFor"; -export * from "./getActiveAccount"; -export * from "./detect-browser"; -export * from "./verify-signature/verify-signature"; -export * from "./verify-signature/payload"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/index.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/helpers/index.d.ts.map deleted file mode 100644 index e1ce0874b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/index.js b/packages/wallet-utils/dist/esm/core/src/lib/helpers/index.js deleted file mode 100644 index 69aaf908c..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./waitFor"; -export * from "./getActiveAccount"; -export * from "./detect-browser"; -export * from "./verify-signature/verify-signature"; -export * from "./verify-signature/payload"; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts deleted file mode 100644 index 207d814af..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Schema } from "borsh"; -import type { SignMessageParams } from "../../wallet"; -export interface Payload { - message: string; - nonce: Buffer; - recipient: string; - tag?: number; - callbackUrl?: string; -} -export declare const createPayload: (data: SignMessageParams) => Payload; -export declare const payloadSchema: Schema; -export declare const serializeNep413: (signMessageParams: SignMessageParams) => Buffer; -//# sourceMappingURL=payload.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts.map deleted file mode 100644 index 43755b9b9..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/payload.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAY,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,eAAO,MAAM,aAAa,SAAU,iBAAiB,KAAG,OAUvD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAe3B,CAAC;AAaF,eAAO,MAAM,eAAe,sBAAuB,iBAAiB,KAAG,MAGtE,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/payload.js b/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/payload.js deleted file mode 100644 index f2a7f147e..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/payload.js +++ /dev/null @@ -1,97 +0,0 @@ -import { serialize } from "borsh"; -export const createPayload = (data) => { - return { - message: data.message, - nonce: data.nonce, - recipient: data.recipient, - // The tag's value is a hardcoded value as per - // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) - tag: 2147484061, // NEP413 tag - callbackUrl: data.callbackUrl || undefined, - }; -}; -export const payloadSchema = { - struct: { - tag: "u32", - message: "string", - nonce: { - array: { - type: "u8", - len: 32 - } - }, // Assuming this is a 32-byte buffer - recipient: "string", - callbackUrl: { - option: "string" - }, - } -}; -// const payloadSchema: Schema = { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], // Assuming this is a 32-byte buffer -// ["recipient", "string"], -// ["callbackUrl", { kind: "option", type: "string" }], -// ], -// }; -export const serializeNep413 = (signMessageParams) => { - const payload = createPayload(signMessageParams); - return Buffer.from(serialize(payloadSchema, payload)); -}; -// export const serializeNep413 = (signMessageParams: SignMessageParams): Buffer => { -// const payload = createPayload(signMessageParams); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; -// import type { SignMessageParams } from "../../wallet"; -// import { serialize } from "borsh"; -// -// export class Payload { -// tag: number; -// message: string; -// nonce: Buffer; -// recipient: string; -// callbackUrl?: string; -// -// constructor(data: SignMessageParams) { -// // The tag's value is a hardcoded value as per -// // defined in the NEP [NEP413](https://github.com/near/NEPs/blob/master/neps/nep-0413.md) -// this.tag = 2147484061; -// this.message = data.message; -// this.nonce = data.nonce; -// this.recipient = data.recipient; -// if (data.callbackUrl) { -// this.callbackUrl = data.callbackUrl; -// } -// } -// } -// -// export const payloadSchema = new Map([ -// [ -// Payload, -// { -// kind: "struct", -// fields: [ -// ["tag", "u32"], -// ["message", "string"], -// ["nonce", [32]], -// ["recipient", "string"], -// [ -// "callbackUrl", -// { -// kind: "option", -// type: "string", -// }, -// ], -// ], -// }, -// ], -// ]); -// -// export const serializeNep413 = ( -// signMessageParams: SignMessageParams -// ): Buffer => { -// const payload = new Payload({ ...signMessageParams }); -// return Buffer.from(serialize(payloadSchema, payload)); -// }; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts deleted file mode 100644 index 45cd3629b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { VerifyFullKeyBelongsToUserParams, VerifySignatureParams } from "./verify-signature.types"; -export declare const verifySignature: ({ publicKey, signature, message, nonce, recipient, callbackUrl, }: VerifySignatureParams) => boolean; -export declare const verifyFullKeyBelongsToUser: ({ publicKey, accountId, network, }: VerifyFullKeyBelongsToUserParams) => Promise; -//# sourceMappingURL=verify-signature.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map deleted file mode 100644 index 6e0eeae8d..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gCAAgC,EAChC,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAOlC,eAAO,MAAM,eAAe,sEAOzB,qBAAqB,YAkBvB,CAAC;AAiBF,eAAO,MAAM,0BAA0B,uCAIpC,gCAAgC,qBAQlC,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.js b/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.js deleted file mode 100644 index f08e83f02..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.js +++ /dev/null @@ -1,39 +0,0 @@ -import { serialize } from "borsh"; -import { sha256 } from "js-sha256"; -import { payloadSchema } from "./payload"; -import { publicKeyFrom } from "../../../../../../../near-api-js/packages/crypto"; -// import {KeyType, PublicKey, publicKeyFrom} from "@near-js/crypto"; -import { JsonRpcProvider } from "@near-js/providers"; -export const verifySignature = ({ publicKey, signature, message, nonce, recipient, callbackUrl, }) => { - // Reconstruct the payload that was **actually signed** - const payload = { message, nonce, recipient, callbackUrl }; - // Serialize payload based on payloadSchema - const borshPayload = serialize(payloadSchema, payload); - // Hash the payload as in the NEP0413 referenced example - // https://github.com/near/NEPs/blob/master/neps/nep-0413.md#references - // https://github.com/gagdiez/near-login/blob/main/authenticate/wallet-authenticate.js#L21 - const hashedPayload = Uint8Array.from(sha256.array(borshPayload)); - // Convert real signature to buffer base64 - const realSignature = Buffer.from(signature, "base64"); - const pk = publicKeyFrom(publicKey); - // Verify the signature - return pk.verify(hashedPayload, realSignature); -}; -const fetchAllUserKeys = async ({ accountId, network, publicKey, }) => { - const provider = new JsonRpcProvider({ url: network.nodeUrl }); - const key = await provider.query({ - request_type: "view_access_key", - account_id: accountId, - finality: "final", - public_key: publicKey, - }); - return key; -}; -export const verifyFullKeyBelongsToUser = async ({ publicKey, accountId, network, }) => { - const { permission } = await fetchAllUserKeys({ - accountId, - network, - publicKey, - }); - return permission === "FullAccess"; -}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts deleted file mode 100644 index 50312b798..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Network } from "../../options.types"; -import { KeyType } from "@near-js/crypto"; -export interface IPublicKey { - keyType: KeyType; - data: Uint8Array; -} -export interface VerifySignatureParams { - publicKey: IPublicKey; - signature: string; - message: string; - nonce: Buffer; - recipient: string; - callbackUrl?: string; -} -export interface VerifyFullKeyBelongsToUserParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -export interface ViewAccessKeyParams { - publicKey: IPublicKey; - accountId: string; - network: Network; -} -//# sourceMappingURL=verify-signature.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map deleted file mode 100644 index ad3eabbdf..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"verify-signature.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/helpers/verify-signature/verify-signature.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.js b/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/verify-signature/verify-signature.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/waitFor.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/helpers/waitFor.d.ts deleted file mode 100644 index c73405a42..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/waitFor.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export declare const waitFor: (cb: () => boolean, opts?: { - timeout?: number; - interval?: number; -}) => Promise; -//# sourceMappingURL=waitFor.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/waitFor.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/helpers/waitFor.d.ts.map deleted file mode 100644 index 01d36b6d7..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/waitFor.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"waitFor.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/helpers/waitFor.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,OAAO,OACd,MAAM,OAAO,SACX;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,qBAU9C,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/helpers/waitFor.js b/packages/wallet-utils/dist/esm/core/src/lib/helpers/waitFor.js deleted file mode 100644 index 55fc5398f..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/helpers/waitFor.js +++ /dev/null @@ -1,22 +0,0 @@ -const wait = (ms) => { - return new Promise((resolve) => setTimeout(resolve, ms)); -}; -const poll = async (cb, interval, remaining) => { - const result = cb(); - if (result) { - return result; - } - if (!remaining) { - throw new Error("Exceeded timeout"); - } - return wait(interval).then(() => poll(cb, interval, remaining - 1)); -}; -export const waitFor = async (cb, opts = {}) => { - const { timeout = 100, interval = 50 } = opts; - return Promise.race([ - wait(timeout).then(() => { - throw new Error("Exceeded timeout"); - }), - poll(cb, interval, Math.floor(timeout / interval)), - ]); -}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/ar.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/ar.json deleted file mode 100644 index ebe6801b2..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/ar.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "صل محفظتك", - "whatIsAWallet": "ما هي المحفظة؟", - "secureAndManage": "تأمين وإدارة الممتلكات الرقمية الخاصة بك", - "safelyStore": "قم بتخزين و ارسال عملاتك و أصولك الرقمية بأمان", - "logInToAny": "سجل الدخول إلى أي تطبيق يستخدم نير", - "noNeedToCreate": ".لا داعي لإنشاء حساب جديد. فقط قم بتوصيل محفظتك وانطلق", - "getAWallet": "احصل على محفظة", - "useAWallet": "استخدم محفظة لتأمين وإدارة أصول نير الخاصة بك، وادخل لأي تطبيق يستخدم نير دون الحاجة إلى اسم المستخدم وكلمةالمرور", - "connectionFailed": "اتصال فاشل", - "connectionSuccessful": "اتصال ناجح", - "rememberWallet": "تذكر المحافظ", - "connected": "متصل", - "connectingTo": "جاري الاتصال ب", - "connectingMessage": { - "injected": "وافق على الاتصال في نافذة الإضافة", - "browser": "وافق على الاتصال في المحفظة بعد إعادة توجيه", - "hardware": "وافق على الاتصال في جهاز ليدجر", - "bridge": "وافق على الاتصال في المحفظة" - } - }, - "ledger": { - "connectWithLedger": "اتصل مع ليدجر", - "makeSureYourLedger": "تأكد أن ليدجر متصل بأمان, و أن تطبيق نير مفتوح في جهازك", - "continue": "تابع", - "specifyHDPath": "حدد مسار الحساب", - "enterYourPreferredHDPath": "أدخل مسار الحساب المفضل، ثم ابحث عن كل الحسابات النشطة", - "scan": "مسح", - "retry": "أعد المحاولة", - "ledgerIsNotAvailable": "ليدجر غير متوفر", - "accessDeniedToUseLedgerDevice": "تم رفض الاتصال بليدجر", - "noAccountsFound": "لم يتم العثور على أي حسابات", - "selectYourAccounts": "حدد حساباتك", - "connecting1Account": "جاري الاتصال بحساب واحد", - "cantFindAnyAccount": "لا يمكن العثور على أي حساب مرتبط بهذا ليدجر الرجاء إنشاء حساب نير جديد على", - "orConnectAnAnotherLedger": "او اربط جهاز ليدجر آخر", - "connecting": "جاري الاتصال", - "ofAccounts": "من الحسابات", - "failedToAutomatically": "فشل في الاتصال بالحساب تلقائيا. يرجى الاتصال بالحساب يدويا", - "overviewTheListOfAuthorized": "لائحة الحسابات المصرح بها, أكمل تسجيل الدخول بالنقر على الزر أدناه", - "finish": "إنهاء" - }, - "install": { - "youllNeedToInstall": "ستحتاج لتثبيت", - "toContinueAfterInstalling": "للاستكمال. بعد التثبيت", - "refreshThePage": "قم بتحديث الصفحة", - "open": "افتح" - }, - "qr": { - "copiedToClipboard": "تم النسخ", - "failedToCopy": "فشل النسخ", - "scanWithYourMobile": "امسح بجهازك المحمول", - "copyToClipboard": "نسخ", - "preferTheOfficial": "تفضل الحوار الرسمي ل", - "open": "فتح" - }, - "walletTypes": { - "hardware": "محفظة الأجهزة", - "browser": "محفظة المتصفح", - "injected": "ملحق المحفظة", - "bridge": "محفظة الجسر", - "mobile": "محفظة الجوال", - "instant-link": "محفظة الرابط الفوري" - }, - "exportAccounts": { - "afterDecide": "بعد اتخاذ قرار بشأن محفظة، يمكنك اختيار الحسابات التي تريد نقلها.", - "chooseAWallet": "اختر محفظة", - "disclaimer": "لن تتمكن من نقل الحسابات التي لم يتم تمويلها أو استخدامها على NEAR.", - "selectAWallet": "اختر محفظة تناسب احتياجاتك وتدعم حساباتك المتصلة.", - "selectYourAccounts": "حدد حساباتك", - "transferYourAccounts": "نقل حساباتك", - "warning": "لا تدعم تصدير الحسابات في الوقت الحالي. يرجى اختيار محفظة أخرى.", - "complete": { - "button": "أكمل", - "descOne": "سيتم توجيهك الآن إلى المحفظة التي اخترتها لإكمال النقل.", - "descTwo": "بمجرد إكمال جزء الاستيراد من العملية من المحفظة المحددة، اضغط على الزر لإكمال عملية النقل.", - "startOverButton": "ابدأ من جديد", - "title": "أكمل النقل" - }, - "getPassphrase": { - "button": "تابع", - "checkLabel": "لقد قمت بنسخ أو كتابة كلمة المرور", - "desc": "ستحتاج إلى إدخال هذه الكلمة السرية عند بدء تصدير حساباتك إلى محفظة مختلفة.", - "label": "انقر لنسخ", - "title": "انسخ كلمة المرور المؤقتة", - "transferButton": "نقل الحسابات" - }, - "selectAccounts": { - "button": "تابع", - "deselectAll": "إلغاء تحديد الكل", - "error": "الحساب غير موجود", - "noBalance": "الحساب غير ممول", - "selectAll": "تحديد الكل", - "title": "حدد الحسابات لنقلها", - "unavailable": "النقل غير متاح", - "warningLedger": "دعم Ledger مطلوب" - }, - "walletTypes": { - "bridge": "محفظة الجسر", - "browser": "محفظة المتصفح", - "hardware": "محفظة الأجهزة", - "injected": "ملحق المحفظة", - "mobile": "محفظة الجوال" - } - } - }, - "component": { - "clickToCopy": { - "label": "تم النسخ", - "tooltip": "انقر لنسخ" - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/bg.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/bg.json deleted file mode 100644 index 5fd192bad..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/bg.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Свържете вашия Портфейл", - "whatIsAWallet": "Какво е Портфейл?", - "secureAndManage": "Защитете и управлявайте дигиталните си активи", - "safelyStore": "Съхранявайте и прехвърляйте безопасно вашите крипто и NFT.", - "logInToAny": "Използвайте всяко приложение на NEAR", - "noNeedToCreate": "Няма нужда да създавате нови профили. Свържете портфейла си и сте готови!", - "getAWallet": "Създайте Портфейл", - "useAWallet": "Използвайте портфейла, за да защитите и управлявате активите си на NEAR както и да използвате всяко приложение на NEAR без нужда от потребителски имена и пароли.", - "connectionFailed": "Свързването неуспешно", - "connectionSuccessful": "Свързването успешно", - "rememberWallet": "Запази портфейлите", - "connected": "Свързан", - "connectingTo": "Свързване към", - "connectingMessage": { - "injected": "Потвърдете свързването в прозореца на разширението", - "browser": "Потвърдете свързването в портфейла след пренасочването", - "hardware": "Потвърдете свързването в хардуерния портфейл", - "bridge": "Потвърдете връзката в портфейла" - } - }, - "ledger": { - "connectWithLedger": "Свържете се с Ledger", - "makeSureYourLedger": "Уверете се, че вашият Ledger е свързан и че приложението NEAR е отворено нa него.", - "continue": "Продължете", - "specifyHDPath": "Посочете HD път", - "enterYourPreferredHDPath": "Въведете предпочитания HD път, след което сканирайте за активни акаунти.", - "scan": "Сканирайте", - "retry": "Опитайте отново", - "ledgerIsNotAvailable": "Ledger устройството не е достъпно", - "accessDeniedToUseLedgerDevice": "Достъпът за използване на Ledger е отказан", - "noAccountsFound": "Няма намерени профили", - "selectYourAccounts": "Изберете вашите профили", - "connecting1Account": "Свързване на 1 профил", - "cantFindAnyAccount": "Няма намерени профили, съврзани с този Ledger. Моля, създайте нов NEAR профил на", - "orConnectAnAnotherLedger": "или свържете друг Ledger.", - "connecting": "Свързване", - "ofAccounts": "от профили", - "failedToAutomatically": "Автоматичното намиране на профила не бе успешно. Въведете го ръчно:", - "overviewTheListOfAuthorized": "Прегледайте списъка с упълномощени профили, завършете влизането, като щракнете върху бутона по-долу..", - "finish": "Завършете" - }, - "install": { - "youllNeedToInstall": "Ще трябва да инсталирате", - "toContinueAfterInstalling": "за да продължите. След инсталиране", - "refreshThePage": "презаредете страницата.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано в клипборда", - "failedToCopy": "Неуспешно копиране в клипборда", - "scanWithYourMobile": " Сканирайте с мобилното си устройство", - "copyToClipboard": " Копирайте в клипборда", - "preferTheOfficial": "Предпочитан език за кореспонденция", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардуерен портфейл", - "browser": "Портфейл в браузъра", - "injected": "Разширение на портфейл", - "bridge": "Мостов портфейл", - "mobile": "Мобилен портфейл", - "instant-link": "Мигновен портфейл" - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/en.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/en.json deleted file mode 100644 index ec6ae2981..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/en.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Connect Your Wallet", - "whatIsAWallet": "What is a Wallet?", - "secureAndManage": "Secure & Manage Your Digital Assets", - "safelyStore": "Safely store and transfer your crypto and NFTs.", - "logInToAny": "Log In to Any NEAR App", - "noNeedToCreate": "No need to create new accounts or credentials. Connect your wallet and you are good to go!", - "getAWallet": "Get a Wallet", - "useAWallet": "Use a wallet to secure and manage your NEAR assets, and to log in to any NEAR app without the need for usernames and passwords.", - "connectionFailed": "Connection Failed", - "connectionSuccessful": "Connection Successful", - "rememberWallet": "Remember wallets", - "connected": "Connected", - "connectingTo": "Connecting to", - "connectingMessage": { - "injected": "Confirm the connection in the extension window", - "browser": "Confirm the connection in the wallet after redirect", - "hardware": "Confirm the connection in the ledger device", - "bridge": "Confirm the connection in the wallet" - } - }, - "ledger": { - "connectWithLedger": "Connect with Ledger", - "makeSureYourLedger": "Make sure your Ledger is connected securely, and that the NEAR app is open on your device", - "continue": "Continue", - "specifyHDPath": "Specify HD Path", - "enterYourPreferredHDPath": "Enter your preferred HD path, then scan for any active accounts.", - "scan": "Scan", - "retry": "Retry", - "ledgerIsNotAvailable": "Ledger is not available", - "accessDeniedToUseLedgerDevice": "Access denied to use Ledger device", - "noAccountsFound": "No Accounts Found", - "selectYourAccounts": "Select Your Accounts", - "connecting1Account": "Connecting 1 Account", - "cantFindAnyAccount": "Can't find any account associated with this Ledger. Please create a new NEAR account on", - "orConnectAnAnotherLedger": "or connect an another Ledger.", - "connecting": "Connecting", - "ofAccounts": "of Accounts", - "failedToAutomatically": "Failed to automatically find account id. Provide it manually:", - "overviewTheListOfAuthorized": "Overview the list of authorized account(s), complete sign in by clicking the button below.", - "finish": "Finish" - }, - "install": { - "youllNeedToInstall": "You'll need to install", - "toContinueAfterInstalling": "to continue. After installing", - "refreshThePage": "refresh the page.", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "Copied to clipboard", - "failedToCopy": "Failed to copy to clipboard", - "scanWithYourMobile": "Scan with Your Mobile Device", - "copyToClipboard": " Copy to clipboard", - "preferTheOfficial": "Prefer the official dialogue of", - "open": "Open" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Choose a Wallet", - "transferYourAccounts": "Transfer Your Accounts", - "selectAWallet": "Select a wallet that fits your needs and supports your connected accounts.", - "selectYourAccounts": "Select Your Accounts", - "afterDecide": "After you decide on a wallet, you can select which accounts you want to transfer.", - "disclaimer": "You won’t be able to transfer accounts that have never been funded or used on NEAR.", - "warning": "does not support account export at this time. Please select another wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Select Accounts to Transfer", - "button": "Continue", - "deselectAll": "Deselect All", - "selectAll": "Select All", - "unavailable": "Transfer Unavailable", - "error": "Account does not exist", - "warningLedger": "Ledger support required", - "noBalance": "Account not funded" - }, - "getPassphrase": { - "title": "Copy Temporary Password", - "desc": "You’ll need to enter this password when you begin exporting your accounts to a different wallet.", - "button": "Continue", - "transferButton": "Transfer Accounts", - "label": "Click to Copy", - "checkLabel": "I copied or wrote down the password" - }, - "complete": { - "title": "Complete the Transfer", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Once import part of process is completed from selected wallet, press button to complete the transfer process.", - "startOverButton": "Start Over", - "button": "Complete" - } - } - }, - "component": { - "clickToCopy": { - "label": "Copied", - "tooltip": "Click to copy" - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/es.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/es.json deleted file mode 100644 index 34f9ef864..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/es.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Conecta Tu Billetera", - "whatIsAWallet": "¿Que es una Billetera?", - "secureAndManage": "Resguarda y Administrar Tus Activos Digitales", - "safelyStore": "Almacena de forma segura y transfiere tus cryptos y NFT's", - "logInToAny": "Inicie sesión en Cualquier Aplicacion NEAR", - "noNeedToCreate": "No es necesario crear nuevas cuentas o credenciales, ¡Conecta tu billetera y listo!", - "getAWallet": "Obten una Billetera", - "useAWallet": "Usa tu Billetera para resguardar y administrar tus activos en NEAR, e Iniciar sesión en cualquier aplicacion NEAR sin la necesidad de nombres de usuarios y contraseñas", - "connectionFailed": "Conexión Fallida", - "connectionSuccessful": "Conexión Existosa", - "rememberWallet": "Recordar las carteras", - "connected": "Conectado", - "connectingTo": "Conectando a ", - "connectingMessage": { - "injected": "Confirme la conexión en la ventana de extensión", - "browser": "Confirme la conexión en la billetera después de la redirección", - "hardware": "Confirme la conexión en el dispositivo de libro mayor", - "bridge": "Confirmar la conexión en la billetera" - } - }, - "ledger": { - "connectWithLedger": "Conectar con Ledger", - "makeSureYourLedger": "Asegúrese de que su ledger está conectada de forma segura y que la aplicacion NEAR esté abierta en su dispositivo", - "continue": "Continuar", - "specifyHDPath": "Especifique la ruta HD", - "enterYourPreferredHDPath": "Ingrese su ruta HD prerida,y luego busque cualquier cuenta activa.", - "scan": "Escanear", - "retry": "Reintentar", - "ledgerIsNotAvailable": "El Ledger no está disponible", - "accessDeniedToUseLedgerDevice": "Acceso denegado para usar el dispositivo ledger", - "noAccountsFound": "No se encontraron cuentas", - "selectYourAccounts": "Selecciona tus cuentas", - "connecting1Account": "Conectando a 1 cuenta", - "cantFindAnyAccount": "No se pudo encontrar ninguna cuenta asociada con este ledger,Por favor crea una nueva cuenta en NEAR", - "orConnectAnAnotherLedger": "o conecta otro ledger", - "connecting": "Conectando", - "ofAccounts": "de Cuentas", - "failedToAutomatically": "No se pudo encontrar automaticamente el id de la cuenta,Ingresalo manualmente:", - "overviewTheListOfAuthorized": "Revise la lista de las cuentas autorizadas,Complete el inicio de sesión haciedo click a countinuacion.", - "finish": "Finalizar" - }, - "install": { - "youllNeedToInstall": "Tendrás que instalar", - "toContinueAfterInstalling": "Para continuar, Despues de instalar", - "refreshThePage": "Recarga la pagina", - "open": "Abrir" - }, - "qr": { - "copiedToClipboard": "Copiado al Portapapeles", - "failedToCopy": "Falló la copia al Portapapeles", - "scanWithYourMobile": "Busca con tu dispositivo movil", - "copyToClipboard": " Copiar al Portapapeles", - "preferTheOfficial": "¿Prefires el diálogo oficial de", - "open": "Abrir" - }, - "walletTypes": { - "hardware": "Cartera de Hardware", - "browser": "Cartera de Navegador", - "injected": "Extensión de Cartera", - "bridge": "Cartera de Puente", - "mobile": "Cartera Móvil", - "instant-link": "Cartera Instantánea" - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/hi.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/hi.json deleted file mode 100644 index c8c5866ef..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/hi.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "अपना वॉलेट (Wallet) कनेक्ट करें।", - "whatIsAWallet": "वॉलेट क्या है?", - "secureAndManage": "सुरक्षित और प्रबंधित करें।", - "safelyStore": "अपनी क्रिप्टोकरेंसी और एनएफटी को सुरक्षित रूप से स्टोर और ट्रांसफर करें।", - "logInToAny": "NEAR पर किसी भी ऐप में साइन इन करें।", - "noNeedToCreate": "नए खाते या लॉगिन बनाने की आवश्यकता नहीं है। अपना वॉलेट(NEAR Wallet)कनेक्ट करें और आरंभ करें।", - "getAWallet": "एक वॉलेट बनाएँ।", - "useAWallet": "अपनी NEAR संपत्तियों को सुरक्षित और प्रबंधित करने के लिए वॉलेट का उपयोग करें और किसी भी NEAR ऐप (app) में लॉग इन करें, किसी उपयोगकर्ता (user) नाम और पासवर्ड की आवश्यकता नहीं है।", - "connectionFailed": "कनेक्शन विफल|", - "connectionSuccessful": "कनेक्शन सफल|", - "rememberWallet": "वॉलेटों को याद रखें", - "connected": "वॉलेट जुड़ गया|", - "connectingTo": "वॉलेट जुड़ रहा हे|", - "connectingMessage": { - "injected": "एक्सटेंशन विंडो में कनेक्शन की पुष्टि करें|", - "browser": "रीडायरेक्ट होने के बाद वॉलेट में कनेक्शन की पुष्टि करें|", - "hardware": "कोल्ड वॉलेट के साथ कनेक्शन की पुष्टि करें|" - } - }, - "ledger": { - "connectWithLedger": "लेजर(Ledger)वॉलेट कनेक्ट करें|", - "makeSureYourLedger": "सुनिश्चित करें कि आपका लेजर सुरक्षित रूप से जुड़ा हुआ है और NEAR ऐप आपके डिवाइस (Device)पर पहले से ही खुला है|", - "continue": "जारी रखे|", - "specifyHDPath": "हार्ड डिस्क(Hard Disk)पथ(Path)निर्धारित करे|", - "enterYourPreferredHDPath": "अपना एचडी पथ दर्ज करें, फिर सक्रिय खातों के लिए स्कैन करें|", - "scan": "स्कैन करे|", - "retry": "दोबारा प्रयास करे|", - "ledgerIsNotAvailable": "लेजर उपलब्ध नहीं है|", - "accessDeniedToUseLedgerDevice": "लेजर डिवाइस का उपयोग करने के लिए प्रवेश निषेध|", - "noAccountsFound": "खाता नहीं मिला|", - "selectYourAccounts": "अपने खाते चुनें|", - "connecting1Account": "एक खाता कनेक्ट हो रहा है|", - "cantFindAnyAccount": "इस लेजर से जुड़ा कोई खाता नहीं मिला। कृपया एक नया NEAR खाता बनाएँ|", - "orConnectAnAnotherLedger": "अथवा दूसरे लेजर वॉलेट से कनेक्ट करें।", - "connecting": "जुड़ रहा हे|", - "ofAccounts": "खाता अब जुड़ा नहीं हे|", - "failedToAutomatically": "खाता आईडी स्वचालित रूप से खोजने में असमर्थ। मैन्युअल (Manuall) रूप से कोशिश करें|", - "overviewTheListOfAuthorized": "अवलोकन अधिकृत की सूची, नीचे दिए गए बटन पर क्लिक करके लॉगिन पूरा करें।", - "finish": "समाप्त|" - }, - "install": { - "youllNeedToInstall": "आपको इंस्टॉल करना होगा|", - "toContinueAfterInstalling": "इंस्टॉल करने के बाद जारी रखे|", - "refreshThePage": "पुन: लोड करें।", - "open": "खोले|" - }, - "qr": { - "copiedToClipboard": "क्लिपबोर्ड(Clipboard)पर कॉपी किया गया|", - "failedToCopy": "क्लिपबोर्ड पर कॉपी करना विफल रहा|", - "scanWithYourMobile": "अपने फोन (Mobile)से स्कैन करें|", - "copyToClipboard": " क्लिपबोर्ड पर कॉपी करें|", - "preferTheOfficial": "आधिकारिक संवाद को प्राथमिकता दें|", - "open": "खोले|" - }, - "walletTypes": { - "hardware": "हार्डवेयर वॉलेट", - "browser": "ब्राउज़र वॉलेट", - "injected": "वॉलेट एक्सटेंशन", - "bridge": "ब्रिज वॉलेट", - "mobile": "मोबाइल वॉलेट", - "instant-link": "इंस्टेंट वॉलेट" - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/hr.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/hr.json deleted file mode 100644 index 1a6cc0967..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/hr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Spojite crypto novčanik!", - "whatIsAWallet": "Što je to crypto novčanik?", - "secureAndManage": "Osigurajte i upravljajte svojom digitalnom imovinom.", - "safelyStore": "Sigurno pohranite i prebacite svoj crypto i NFT-eve.", - "logInToAny": " Prijavite se u bilo koju NEAR aplikaciju", - "noNeedToCreate": "Nema potrebe za stvaranjem novih naloga ili korisničkih podataka. Spojite svoj crypto novčanik i spremni ste!", - "getAWallet": "Otvorite crypto novčanik", - "useAWallet": "Koristite crypto novčanik da biste osigurali i upravljali svojom NEAR imovinom, te se prijavite u bilo koju NEAR aplikaciju bez korisničkog imena i lozinke.", - "connectionFailed": "Neuspješno povezivanje.", - "connectionSuccessful": "Uspješno povezivanje.", - "rememberWallet": "Zapamti novčanike", - "connected": "Povezano.", - "connectingTo": "Povezivanje u tijeku", - "connectingMessage": { - "injected": "Potvrdite vezu u eksternom prozoru", - "browser": "Nakon redirekcije, potvrdite vezu u novčaniku", - "hardware": "Potvrdite vezu sa novčanikom", - "bridge": "Potvrdite vezu u novčaniku" - } - }, - "ledger": { - "connectWithLedger": "Povežite se hardverskim novčanikom", - "makeSureYourLedger": "Osigurajte sigurnu vezu s hardverskim novčanikom, te da je NEAR aplikacija otvorena na vašem uređaju", - "continue": "Nastavite", - "specifyHDPath": "Specificirajte HD putanju", - "enterYourPreferredHDPath": "Upišite preferiranu HD putanju, zatim skenirajte aktivne naloge", - "scan": "Skenirajte", - "retry": "Pokušajte ponovno", - "ledgerIsNotAvailable": "Hardverski novčanik nije dostupan.", - "accessDeniedToUseLedgerDevice": "Odbijen pristup za korištenjem hardverskog novčanika", - "noAccountsFound": "Nalozi nisu pronađeni", - "selectYourAccounts": "Odaberite svoje naloge", - "connecting1Account": "Povezivanje 1 naloga", - "cantFindAnyAccount": "Nije moguće pronaći niti jedan nalog povezan s ovim hardverskim novčanikom. Molimo vas, kreirajte novi NEAR nalog", - "orConnectAnAnotherLedger": "Ili povežite drugi hardverski novčanik.", - "connecting": "Povezivanje", - "ofAccounts": "naloga", - "failedToAutomatically": "Neuspješno automatsko pronalaženje ID naloga. Unesite ručno:", - "overviewTheListOfAuthorized": "Pregledajte popis odobrenih naloga, završite prijavu pritiskom na niže prikazani gumb.", - "finish": "Završite" - }, - "install": { - "youllNeedToInstall": " Potrebno je instalirati modal", - "toContinueAfterInstalling": "za nastavak. Nakon instalacije", - "refreshThePage": "osvježite stranicu.", - "open": "Otvorite QR modal" - }, - "qr": { - "copiedToClipboard": "Kopirano u međuspremnik", - "failedToCopy": "Neupsješno kopiranje u međuspremnik", - "scanWithYourMobile": "Skenirajte svojim mobilnim uređajem", - "copyToClipboard": " Kopirajte u međuspremnik", - "preferTheOfficial": "Odaberite službeni dijalog", - "open": "Otvorite" - }, - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet", - "instant-link": "Instant Wallet" - }, - "exportAccounts": { - "chooseAWallet": "Odaberi Wallet", - "transferYourAccounts": "Prenesi svoje naloge", - "selectAWallet": "Odaberite wallet koji odgovara vašim potrebama i podržava vaše povezane naloge.", - "selectYourAccounts": "Odaberi svoje naloge", - "afterDecide": "Nakon što odlučite koji wallet koristite, možete odabrati koje račune želite prebaciti.", - "disclaimer": "Nećete moći prebaciti naloge koji nisu nikada bili korišteni na NEAR-u.", - "warning": "ne podržava izvoz naloga u ovom trenutku. Molimo odaberite drugi wallet.", - "walletTypes": { - "hardware": "Hardware Wallet", - "browser": "Browser Wallet", - "injected": "Wallet Extension", - "bridge": "Bridge Wallet", - "mobile": "Mobile Wallet" - }, - "selectAccounts": { - "title": "Odaberi naloge za prijenos", - "button": "Generiraj lozinku", - "deselectAll": "Makni odabir sa svih", - "selectAll": "Odaberi sve", - "unavailable": "Prijenos nije dostupan", - "error": "Nalog ne postoji", - "warningLedger": "Potrebna ledger podrška", - "noBalance": "Nalog nema sredstava" - }, - "getPassphrase": { - "title": "Kopiraj privremenu lozinku", - "desc": "Bit će potrebno unijeti ovu lozinku na početku izvoza naloga na drugi wallet.", - "button": "Nastavi", - "label": "Klikni za kopiju", - "checkLabel": "Kopirao sam ili zapisao lozinku" - }, - "complete": { - "title": "Završi prijenos", - "descOne": "You will now be redirected to the wallet you selected to complete the transfer.", - "descTwo": "Kada je unos s odabranog walleta završen, pritisnite gumb da biste završili prijenos.", - "button": "Završi" - } - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/ko.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/ko.json deleted file mode 100644 index e5c20d2d6..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/ko.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "지갑 연결하기", - "whatIsAWallet": "지갑은 무슨 역할을 하나요?", - "secureAndManage": "당신의 디지털 자산을 보호하고 관리합니다.", - "safelyStore": "암호화폐와 NFT를 안전하게 저장하고 전송할 수 있습니다.", - "logInToAny": "NEAR App에 로그인합니다.", - "noNeedToCreate": "새로운 계정이나 비밀번호를 만들 필요 없이 지갑을 연결한 후 바로 사용할 수 있습니다.", - "getAWallet": "지갑 가져오기", - "useAWallet": "지갑을 사용하여 NEAR 자산을 보호·관리하고, 아이디와 비밀번호 없이 NEAR 앱에 로그인할 수 있습니다.", - "connectionFailed": "연결 실패", - "connectionSuccessful": "연결 성공", - "rememberWallet": "지갑들 기억하기", - "connected": "Connected", - "connectingTo": "연결 중: ", - "connectingMessage": { - "injected": "익스텐션 창에서 연결을 확인하세요", - "browser": "리다이렉트 된 지갑에서 연결을 확인하세요", - "hardware": "Ledger 기기에서 연결을 확인하세요", - "bridge": "지갑에서 연결 확인" - } - }, - "ledger": { - "connectWithLedger": "Ledger 연결하기", - "makeSureYourLedger": "Ledger가 안전하게 연결되어 있고, NEAR 앱이 열려 있는 지 확인하세요", - "continue": "계속하기", - "specifyHDPath": "HD Path 지정하기", - "enterYourPreferredHDPath": "원하는 HD Path를 선택하고, 활성화된 계정이 있는 지 검색하세요", - "scan": "검색", - "retry": "다시 시도", - "ledgerIsNotAvailable": "Ledger를 사용할 수 없습니다", - "accessDeniedToUseLedgerDevice": "Ledger 기기 접근 권한이 거부되었습니다", - "noAccountsFound": "계정을 찾을 수 없습니다", - "selectYourAccounts": "계정 선택하기", - "connecting1Account": "하나의 계정에 연결", - "cantFindAnyAccount": "Ledger와 연결된 계정을 찾을 수 없습니다. 새로운 계정을 생성하거나 ", - "orConnectAnAnotherLedger": "다른 Ledger를 연결하세요", - "connecting": "계정 연결하기: ", - "ofAccounts": "개 계정을 찾았습니다", - "failedToAutomatically": "계정 ID를 찾지 못했습니다. 수동으로 입력해주세요.", - "overviewTheListOfAuthorized": "인증된 계정 목록을 확인한 후 아래 버튼을 클릭하여 로그인을 완료하세요", - "finish": "완료" - }, - "walletTypes": { - "hardware": "하드웨어 지갑", - "browser": "브라우저 지갑", - "injected": "지갑 확장", - "bridge": "브리지 지갑", - "mobile": "모바일 지갑", - "instant-link": "인스턴트 지갑" - }, - "install": { - "youllNeedToInstall": "다음 확장 프로그램을 설치해주세요:", - "toContinueAfterInstalling": ". 설치 완료 후 페이지 새로 고침이 필요합니다. ", - "refreshThePage": "새로 고침", - "open": "Open" - }, - "qr": { - "copiedToClipboard": "클립보드에 복사 완료", - "failedToCopy": "클립보드에 복사 실패", - "scanWithYourMobile": "모바일 장치를 사용하여 스캔해주세요", - "copyToClipboard": " 클립보드에 복사하기", - "preferTheOfficial": "다음 프로그램에서 제공하는 공식 프로세스를 선호하십니까: ", - "open": "Open" - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/mk.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/mk.json deleted file mode 100644 index f75e74659..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/mk.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Поврзете го вашиот новчаник!", - "whatIsAWallet": "Што е новчаник?", - "secureAndManage": "Заштитете ги и управувајте со вашите дигитални средства.", - "safelyStore": "Безбедно складирајте и извршувајте трансакции со вашите крипто и NFT.", - "logInToAny": "Најавете се на која било NEAR апликација", - "noNeedToCreate": "Нема потреба да креирате нови сметки или ингеренции. Поврзете го вашиот паричник и сте подготвени!", - "getAWallet": "Направете новчаник", - "useAWallet": "Користете паричник за да ги заштитите и управувате вашите NEAR средства и да се најавите на која било NEAR апликација без потреба од кориснички имиња и лозинки.", - "connectionFailed": "Поврзувањето не беше успешно.", - "connectionSuccessful": "Успешно поврзување.", - "rememberWallet": "Запомни паричници", - "connected": "Поврзано.", - "connectingTo": "Поврзување со", - "connectingMessage": { - "injected": "Потврдете го поврзувањето во екстерниот прозорец", - "browser": "По преусмерувањето, потврдете го поврзувањето од новчаниокт", - "hardware": "Потврдете го поврзувањето со ладен новчаник", - "bridge": "Потврдете ја врската во новчаникот" - } - }, - "ledger": { - "connectWithLedger": "Поврзете се со Леџер", - "makeSureYourLedger": "Осигурајте се дека вашиот Леџер е поврзан безбедно, и дека NEAR апликацијата е отворена на вашиот уред", - "continue": "Продолжете", - "specifyHDPath": "Наведете ХД локација", - "enterYourPreferredHDPath": "Внесете ја вашата преферирана ХД локација, а потоа скенирајте да ги најдете активните сметки.", - "scan": "Скенирајте", - "retry": "Обидете се повторно", - "ledgerIsNotAvailable": "Леџерот не е достапен.", - "accessDeniedToUseLedgerDevice": "Пристапот за користење на Леџер уред е одбиен", - "noAccountsFound": "Нема најдени сметки", - "selectYourAccounts": "Изберете ги вашите сметки", - "connecting1Account": "Поврзување на една сметка", - "cantFindAnyAccount": "Не се најдени сметки поврзани со овој Леџер. Ве молиме креирајте нова NEAR сметка ", - "orConnectAnAnotherLedger": "или поврзете друг Леџер.", - "connecting": "Поврзување", - "ofAccounts": "на сметки", - "failedToAutomatically": "Неуспешно автоматско барање на ИД на сметката. Внесете го рачно:", - "overviewTheListOfAuthorized": "Преглед на листата на овластени сметки, завршете се најавата со кликнување на копчето подолу.", - "finish": "Завршете" - }, - "install": { - "youllNeedToInstall": "Треба да инсталирате", - "toContinueAfterInstalling": "за да продолжите. По инсталирањето", - "refreshThePage": "Освежете ја страната.", - "open": "Отворете" - }, - "qr": { - "copiedToClipboard": "Копирано на клипбордот", - "failedToCopy": "Неуспешно копирање на клипборд", - "scanWithYourMobile": "Скенирајте со вашиот телефонски уред", - "copyToClipboard": "Копирајте на клипборд", - "preferTheOfficial": "Преферирајте официјален диалог на", - "open": "Отворете" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник", - "instant-link": "Инстант паричник" - }, - "exportAccounts": { - "chooseAWallet": "Одберете паричник", - "transferYourAccounts": "Префрлете ги вашите кориснички сметки", - "selectAWallet": "Изберетен новчаник кој ги задоволува вашите баранња и ги поддржува вашите поврзани кориснички сметки.", - "selectYourAccounts": "Изберете ги вашите кориснички сметки", - "afterDecide": "Одкако ќе изберете новчаник, можете да изберете кои кориснички сметки сакате да ги префрлите.", - "disclaimer": "Не можете да прфрлате кориснички сметки кои никогаш не биле надополнати или користени на NEAR.", - "warning": "не поддржува извезување на кориснички сметки во овој момент. Ве молиме изберете друг новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник на интернет прелистувач", - "injected": "Екстензија за новчаник", - "bridge": "Bridge новчаник", - "mobile": "Мобилен новчаник" - }, - "selectAccounts": { - "title": "Изберете ги корисничките сметки за да ги префрлите.", - "button": "Добијте лозинка", - "deselectAll": "Отселектирајте се", - "selectAll": "Изберете се", - "unavailable": "Трансферот е недостапен", - "error": "Корисничката сметка не постои", - "warningLedger": "Потребна е поддршка од Леџер", - "noBalance": "Сметката не е финансирана" - }, - "getPassphrase": { - "title": "Копирајте ја привремената лозинка", - "desc": "Ќе треба да ја внесете оваа лозинка кога ќе започнете да ги извезувате вашите сметки на друг новчаник.", - "button": "Продолжете", - "label": "Кликнете за да копирате", - "checkLabel": "Ја копирав или запишав лозинката" - }, - "complete": { - "title": "Завршете го преносот", - "descOne": "Сега ќе бидете пренасочени на избраниот новчаник за завршување на преносот.", - "descTwo": "Откако ќе заврши увозот од избраниот новчаник, притиснете го копчето за да го завршите преносот.", - "button": "Завршете" - } - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/sl.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/sl.json deleted file mode 100644 index 20b795b9a..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/sl.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Povežite svojo denarnico!", - "whatIsAWallet": "Kaj je denarnica?", - "secureAndManage": "Zavarujte in upravljajte svoja digitalna sredstva.", - "safelyStore": "Varno shranjujte in prenašajte svoje kriptovalute in NFTje.", - "logInToAny": "Prijavite se v katero koli aplikacijo na NEAR", - "noNeedToCreate": "Ni vam treba ustvarjati novih računov. Povežite svojo denarnico in začnite!", - "getAWallet": "Ustvarite denarnico", - "useAWallet": "Uporabite denarnico, da bi zavarovali in upravljali s svoja NEAR digitalna sredstva, in se prijavite v katero koli aplikacijo ekosistema NEAR", - "connectionFailed": "Povezava ni bila uspešna.", - "connectionSuccessful": "Povezava je bila uspešna.", - "rememberWallet": "Zapomni si denarnice", - "connected": "Vaša denarnica je povezana.", - "connectingTo": "Povezovanje z", - "connectingMessage": { - "injected": "Potrdite povezavo v oknu razširitve", - "browser": "Po preusmeritvi potrdite povezavo v denarnici", - "hardware": "Potrdite povezavo s hladno denarnico", - "bridge": "Potrdite povezavo v denarnici" - } - }, - "ledger": { - "connectWithLedger": "Povežite se z Ledger", - "makeSureYourLedger": "Prepričajte se, da je vaš Ledger varno povezan in da je aplikacija NEAR odprta v vaši napravi", - "continue": "Nadaljuj", - "specifyHDPath": "Določite HD pot", - "enterYourPreferredHDPath": "Vnesite želeno HD pot, nato poiščite vse aktivne račune.", - "scan": "Skenirajte", - "retry": "Poskusite znova", - "ledgerIsNotAvailable": "Ledger ni na voljo", - "accessDeniedToUseLedgerDevice": "Dostop za uporabo naprave Ledger zavrnjen", - "noAccountsFound": "Ni najdenih računov", - "selectYourAccounts": "Izberite Vaši računi", - "connecting1Account": "Povezovanje enega računa", - "cantFindAnyAccount": "Ni mogoče najti nobenega računa, povezanega s tem Ledgerjem. Ustvarite nov NEAR račun ", - "orConnectAnAnotherLedger": "ali povežite drug Ledger..", - "connecting": "Povezovanje", - "ofAccounts": "računov", - "failedToAutomatically": "ID-ja računa ni bilo mogoče samodejno najti. Zagotovite ga ročno:", - "overviewTheListOfAuthorized": "Oglejte si seznam pooblaščenih računov, dokončajte prijavo s klikom na spodnji gumb.", - "finish": "Končajte" - }, - "install": { - "youllNeedToInstall": "Morali ga boste namestiti", - "toContinueAfterInstalling": "nadaljevati. Po namestitvi", - "refreshThePage": "Osvežite stran.", - "open": "Odprite" - }, - "qr": { - "copiedToClipboard": "Kopirano v podložni mapi", - "failedToCopy": "Kopiranje v podložni mapi ni uspelo", - "scanWithYourMobile": "Skenirajte s svojo mobilno napravo", - "copyToClipboard": " Kopirajte v podložni mapi", - "preferTheOfficial": "Preferirajte uradno pogovorno okno", - "open": "Odprite" - }, - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica", - "instant-link": "Takojšnja denarnica" - }, - "exportAccounts": { - "chooseAWallet": "Izberite denarnico", - "transferYourAccounts": "Prenesite svoje račune", - "selectAWallet": "Izberite denarnico, ki ustreza vašim potrebam in podpira vaše povezane račune.", - "selectYourAccounts": "Izberite vaši računi", - "afterDecide": "Ko se odločite za denarnico, lahko izberete, katere račune želite prenesti.", - "disclaimer": "Ne boste mogli prenesti Računov, ki nikoli niso bili financirani ali uporabljeni na NEAR.", - "warning": "trenutno ne podpira izvoza računa. Izberite drugo denarnico", - "walletTypes": { - "hardware": "Hladna denarnica", - "browser": "Denarnica brskalnika", - "injected": "Razširitev za denarnico", - "bridge": "Bridge denarnica", - "mobile": "Mobilna denarnica" - }, - "selectAccounts": { - "title": "Izberite računi za prenos.", - "button": "Pridobite geslo", - "deselectAll": "Prekliči izbiro vseh", - "selectAll": "Izberi vse", - "unavailable": "Prenos ni na voljo", - "error": "Račun ne obstaja", - "warningLedger": "Potrebna je podpora za Ledger", - "noBalance": "Račun ni financiran" - }, - "getPassphrase": { - "title": "Kopiraj začasno geslo", - "desc": "To geslo boste morali vnesti, ko boste začeli izvažati svoje račune v drugo denarnico.", - "button": "Nadaljujte", - "label": "Kliknite za kopiranje", - "checkLabel": "Geslo sem kopiral ali zapisal" - }, - "complete": { - "title": "Dokončajte prenos", - "descOne": "Zdaj boste preusmerjeni v denarnico, ki ste jo izbrali za dokončanje prenosa.", - "descTwo": "Ko je uvozni del postopka končan iz izbrane denarnice, pritisnite gumb za dokončanje postopka prenosa.", - "button": "Končajte" - } - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/sr.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/sr.json deleted file mode 100644 index 094c75982..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/sr.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Повежите свој новчаник!", - "whatIsAWallet": "Шта је новчаник?", - "secureAndManage": "Обезбедите и управљајте својом дигиталном имовином.", - "safelyStore": "Безбедно чувајте и преносите своје криптовалуте и NFT.", - "logInToAny": "Пријавите се на било коју апликацију NEAR", - "noNeedToCreate": "Нема потребе да креирате нове налоге или акредитиве. Повежите новчаник и спремни стe!", - "getAWallet": "Набавите новчаник", - "useAWallet": "Користите новчаник да обезбедите и управљате својим NEAR средствима и да се пријавите у било коју апликацију NEAR без потребе за корисничким именима и лозинкама.", - "connectionFailed": "Веза није успостављена.", - "connectionSuccessful": "Веза је успела.", - "rememberWallet": "Запамти новчанике", - "connected": "Повезан.", - "connectingTo": "Повезивање на", - "connectingMessage": { - "injected": "Потврдите везу у спољном прозору", - "browser": "Након преусмеравања, потврдите везу у новчанику", - "hardware": "Потврдите везу са хладним новчаником", - "bridge": "Потврдите везу са новчаником" - } - }, - "ledger": { - "connectWithLedger": "Повежите се са Ledger", - "makeSureYourLedger": "Уверите се да је ваш Ledger безбедно повезан и да је апликација NEAR отворена на вашем уређају", - "continue": "Настави", - "specifyHDPath": "Наведите ХД путању", - "enterYourPreferredHDPath": "Унесите жељену жељену ХД путању, а затим скенирајте све активне налоге.", - "scan": "Скенирајте", - "retry": "Покушај поново", - "ledgerIsNotAvailable": "Ledger није доступан.", - "accessDeniedToUseLedgerDevice": "Приступ је одбијен за коришћење Ledger уређаја", - "noAccountsFound": "Наlози нису пронађени", - "selectYourAccounts": "Изаберите Ваш наlог", - "connecting1Account": "Повезати 1 наlог", - "cantFindAnyAccount": "Није могуће пронаћи ниједан наlог повезан са овим Ledger-ом. Направите нови NEAR наlог", - "orConnectAnAnotherLedger": "или повежите други Ledger.", - "connecting": "Повезивање", - "ofAccounts": "наlога", - "failedToAutomatically": "Аутоматско проналажење ID-a наlога није успело. Наведите га ручно:", - "overviewTheListOfAuthorized": "Прегледајте листу овлашћених рачуна, завршите пријаву кликом на дугме испод.", - "finish": "Заврши" - }, - "install": { - "youllNeedToInstall": "Мораћете да инсталирате", - "toContinueAfterInstalling": "за наставак. Након инсталирања", - "refreshThePage": "поново учитати страницу.", - "open": "Отвори" - }, - "qr": { - "copiedToClipboard": "Копирано у међуспремник", - "failedToCopy": "Копирање у међуспремник није успело", - "scanWithYourMobile": "Скенирајте помоћу мобилног уређаја", - "copyToClipboard": " Копирај у међуспремник", - "preferTheOfficial": "Преферирате званични дијалог од", - "open": "Отвори" - }, - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник", - "instant-link": "Инстант новчаник" - }, - "exportAccounts": { - "chooseAWallet": "Изаберите новчаник", - "transferYourAccounts": "Пренесите своје налоге", - "selectAWallet": "Изаберите новчаник који одговара вашим потребама и који подржава ваше повезане налоге.", - "selectYourAccounts": "Изаберите ваше налоге", - "afterDecide": "Након што се одлучите за новчаник, можете изабрати које налоге желите да пренесете.", - "disclaimer": "Нећете моћи да пренесете налоге који никада нису били финансирани или коришћени на NEAR.", - "warning": "тренутно не подржава извоз налога. Изаберите други новчаник.", - "walletTypes": { - "hardware": "Хардверски новчаник", - "browser": "Новчаник претраживача,", - "injected": "Додатак за новчаник,", - "bridge": "Bridge новчаник", - "mobile": "Мобилни новчаник" - }, - "selectAccounts": { - "title": "Изаберите налоге за пренос.", - "button": "Добијте приступну фразу", - "deselectAll": "Поништите избор", - "selectAll": "Изаберите све", - "unavailable": "Трансфер није доступан", - "error": "Налог не постоји", - "warningLedger": "Потребна подршка за Ledger", - "noBalance": "Налог није финансиран" - }, - "getPassphrase": { - "title": "Копирај привремену лозинку", - "desc": "Мораћете да унесете ову лозинку када почнете да извозите своје налоге у други новчаник.", - "button": "Наставите", - "label": "Кликните да бисте копирали", - "checkLabel": "Копирао сам или записао лозинку" - }, - "complete": { - "title": "Довршите трансфер", - "descOne": "Сада ћете бити преусмерени на новчаник који сте изабрали да завршите трансфер.", - "descTwo": "Када се део процеса увоза заврши из изабраног новчаника, притисните дугме да завршите процес преноса.", - "button": "Завршите" - } - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/vi.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/vi.json deleted file mode 100644 index 025d762e7..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/vi.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "Kết nối ví của bạn", - "whatIsAWallet": "Ví là gì?", - "secureAndManage": "Bảo mật & Quản lý tài sản số của bạn", - "safelyStore": "Lưu trữ và chuyển tiền điện tử và NFT của bạn một cách an toàn.", - "logInToAny": "Đăng nhập vào bất kỳ ứng dụng trên NEAR", - "noNeedToCreate": "Không cần tạo tài khoản hoặc thông tin đăng nhập mới. Kết nối ví của bạn và bắt đầu!", - "getAWallet": "Tạo Ví", - "useAWallet": "Sử dụng ví để bảo mật và quản lý tài sản trên NEAR của bạn và đăng nhập vào bất kỳ ứng dụng NEAR nào, không cần tên người dùng và mật khẩu.", - "connectionFailed": "Kết nối thất bại", - "connectionSuccessful": "Kết nối thành công", - "rememberWallet": "Ghi nhớ lựa chọn ví", - "connected": "Đã kết nối", - "connectingTo": "Đang kết nối tới", - "connectingMessage": { - "injected": "Xác nhận kết nối trong cửa sổ tiện ích mở rộng", - "browser": "Xác nhận kết nối trong ví sau khi được chuyển hướng", - "hardware": "Xác nhận kết nối với ví lạnh", - "bridge": "Xác nhận kết nối trong ví" - } - }, - "ledger": { - "connectWithLedger": "Kết nối ví Ledger", - "makeSureYourLedger": "Đảm bảo Ledger của bạn được kết nối an toàn và ứng dụng NEAR đang mở sẵn trên thiết bị", - "continue": "Tiếp tục", - "specifyHDPath": "Chỉ định HD Path", - "enterYourPreferredHDPath": "Nhập HD Path của bạn, sau đó quét tìm các tài khoản hoạt động", - "scan": "Quét", - "retry": "Thử lại", - "ledgerIsNotAvailable": "Ledger không khả dụng", - "accessDeniedToUseLedgerDevice": "Truy cập Ledger bị từ chối", - "noAccountsFound": "Không tìm thấy tài khoản", - "selectYourAccounts": "Chọn tài khoản của bạn", - "connecting1Account": "Đang kết nối 1 tài khoản", - "cantFindAnyAccount": "Không thể tìm thấy bất kỳ tài khoản nào được liên kết với Ledger này. Vui lòng tạo một tài khoản NEAR mới", - "orConnectAnAnotherLedger": "hoặc kết nối với ví Ledger khác.", - "connecting": "Đang kết nối", - "ofAccounts": "của tài khoản", - "failedToAutomatically": "Không thể tự động tìm id tài khoản. Nhập thủ công:", - "overviewTheListOfAuthorized": "Tổng quan danh sách các tài khoản được ủy quyền, hoàn tất đăng nhập bằng cách bấm vào nút bên dưới.", - "finish": "Hoàn thành" - }, - "install": { - "youllNeedToInstall": "Bạn sẽ cần cài đặt", - "toContinueAfterInstalling": "để bắt đầu. Sau khi cài đặt xong", - "refreshThePage": "Tải lại trang.", - "open": "Mở" - }, - "qr": { - "copiedToClipboard": "Đã sao chép vào bảng ghi tạm", - "failedToCopy": "Sao chép vào bảng ghi tạm thất bại", - "scanWithYourMobile": "Quét với điện thoại của bạn", - "copyToClipboard": " Sao chép vào bảng ghi tạm", - "preferTheOfficial": "Dialogue chính thức của", - "open": "Mở" - }, - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile", - "instant-link": "Ví tức thì" - }, - "exportAccounts": { - "chooseAWallet": "Chọn ví", - "transferYourAccounts": "Chuyển tài khoản", - "selectAWallet": "Chọn ví phù hợp với nhu cầu của bạn, ví được chọn cần hỗ trợ các tài khoản đang sử dụng.", - "selectYourAccounts": "Chọn tài khoản", - "afterDecide": "Sau khi chọn được tài khoản bạn có chuyển.", - "disclaimer": "Bạn không thể chuyển tài khoản nếu tài khoản đó chưa được nhận tiền hoặc chưa phát sinh giao dịch trên NEAR.", - "warning": "không hỗ trợ xuất tài khoản. Vui lòng chọn ví khác.", - "walletTypes": { - "hardware": "Ví lạnh", - "browser": "Ví trình duyệt", - "injected": "Ví tiện ích mở rộng", - "bridge": "Ví Cầu", - "mobile": "Ví Mobile" - }, - "selectAccounts": { - "title": "Chọn tài khoản để chuyển", - "button": "Lấy cụm mật khẩu", - "deselectAll": "Bỏ chọn tất cả", - "selectAll": "Chọn tất cả", - "unavailable": "Chuyển không khả dụng", - "error": "Tài khoản không tồn tại", - "warningLedger": "Yêu cầu hỗ trợ Ledger", - "noBalance": "Tài khoản trống" - }, - "getPassphrase": { - "title": "Sao chép mật khẩu tạm thời", - "desc": "Bạn sẽ cần nhập mật khẩu khi bắt đầu xuất các khoản tới ví khác.", - "button": "Tiếp tục", - "label": "Bấm để sao chép", - "checkLabel": "Tôi đã chép hoặc ghi lại mật khẩu" - }, - "complete": { - "title": "Hoàn thành chuyển", - "descOne": "Bạn sẽ được chuyển hướng tới tài khoản đã chọn để hoàn tất quá trình.", - "descTwo": "Sau khi nhập, nhấn nút để hoàn tất quy trình chuyển.", - "button": "Hoàn thành" - } - } - }, - "component": { - "clickToCopy": { - "label": "Đã sao chép", - "tooltip": "Bấm để sao chép" - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/locale/zh.json b/packages/wallet-utils/dist/esm/core/src/lib/locale/zh.json deleted file mode 100644 index 2f363c7b1..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/locale/zh.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "modal": { - "wallet": { - "connectYourWallet": "连接你的钱包", - "whatIsAWallet": "什么是钱包?", - "secureAndManage": "保护和管理你的数字资产", - "safelyStore": "安全存储和转移你的加密货币和NFT", - "logInToAny": "登录任何 NEAR 应用", - "noNeedToCreate": "不需要创建新账户或密码。连接你的钱包,即可开始使用!", - "getAWallet": "获取新账户", - "useAWallet": "使用钱包来保护和管理你的 NEAR 资产,无需用户名和密码即可登录任何 NEAR 应用", - "connectionFailed": "连接失败", - "connectionSuccessful": "连接成功", - "rememberWallet": "记住钱包选择", - "connected": "已连接", - "connectingTo": "正在连接" - }, - "ledger": { - "connectWithLedger": "连接 Ledger", - "makeSureYourLedger": "确保你的 Ledger 已经安全连接,并且 NEAR 应用已经在你设备上打开", - "continue": "继续", - "specifyHDPath": "指定 HD 路径", - "enterYourPreferredHDPath": "输入你偏好的 HD 路径,然后为任意活跃账户扫码", - "scan": "扫码", - "retry": "重试", - "ledgerIsNotAvailable": "Ledger 不可用", - "accessDeniedToUseLedgerDevice": "访问 Ledger 设备被拒绝", - "noAccountsFound": "没有找到账户", - "selectYourAccounts": "选择你的账户", - "connecting1Account": "正在连接1个账户", - "cantFindAnyAccount": "没有找到任何与这个 Ledger 相关联的账户。请创建新账户于", - "orConnectAnAnotherLedger.": "或连接另一个 Ledger", - "connecting": "正在连接", - "ofAccounts": "个账户", - "failedToAutomatically": "无法自动找到账户ID,请主动提供:", - "overviewTheListOfAuthorized": "请查看已授权的账户列表,点击以下按钮完成登录", - "finish": "完成" - }, - "install": { - "youllNeedToInstall": "你将需要安装", - "toContinueAfterInstalling": "以继续。安装完", - "refreshThePage": "请刷新页面", - "open": "打开" - }, - "qr": { - "copiedToClipboard": "复制到了剪贴板", - "failedToCopy": "复制到剪贴板失败", - "scanWithYourMobile": "用你的移动设备扫码", - "copyToClipboard": " 复制到剪贴板", - "preferTheOfficial": "希望使用官方对话框于", - "open": "打开" - }, - "walletTypes": { - "hardware": "硬件钱包", - "browser": "浏览器钱包", - "injected": "钱包扩展", - "bridge": "桥接钱包", - "mobile": "移动钱包", - "instant-link": "即时钱包" - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/options.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/options.d.ts deleted file mode 100644 index bc6d1111b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/options.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { WalletSelectorParams } from "./wallet-selector.types"; -import type { Options, Network, NetworkId } from "./options.types"; -export declare const getNetworkPreset: (networkId: NetworkId, fallbackRpcUrls?: Array) => Network; -export declare const resolveNetwork: (network: NetworkId | Network) => Network; -export declare const resolveOptions: (params: WalletSelectorParams) => { - options: Options; - storage: import("./services").StorageService; -}; -//# sourceMappingURL=options.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/options.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/options.d.ts.map deleted file mode 100644 index e8ce7bf80..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/options.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGnE,eAAO,MAAM,gBAAgB,cAChB,SAAS,oBACF,KAAK,CAAC,MAAM,CAAC,KAC9B,OAqBF,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,SAAS,GAAG,OAAO,KAAG,OAE7D,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,oBAAoB;;;CAc1D,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/options.js b/packages/wallet-utils/dist/esm/core/src/lib/options.js deleted file mode 100644 index fa6b65f26..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/options.js +++ /dev/null @@ -1,40 +0,0 @@ -import { WebStorageService } from "./services"; -export const getNetworkPreset = (networkId, fallbackRpcUrls) => { - switch (networkId) { - case "mainnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.mainnet.near.org", - helperUrl: "https://helper.mainnet.near.org", - explorerUrl: "https://nearblocks.io", - indexerUrl: "https://api.kitwallet.app", - }; - case "testnet": - return { - networkId, - nodeUrl: fallbackRpcUrls?.[0] || "https://rpc.testnet.near.org", - helperUrl: "https://helper.testnet.near.org", - explorerUrl: "https://testnet.nearblocks.io", - indexerUrl: "https://testnet-api.kitwallet.app", - }; - default: - throw Error(`Failed to find config for: '${networkId}'`); - } -}; -export const resolveNetwork = (network) => { - return typeof network === "string" ? getNetworkPreset(network) : network; -}; -export const resolveOptions = (params) => { - const options = { - languageCode: params.languageCode || undefined, - network: resolveNetwork(params.network), - debug: params.debug || false, - optimizeWalletOrder: params.optimizeWalletOrder === false ? false : true, - randomizeWalletOrder: params.randomizeWalletOrder || false, - relayerUrl: params.relayerUrl || undefined, - }; - return { - options, - storage: params.storage || new WebStorageService(), - }; -}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/options.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/options.types.d.ts deleted file mode 100644 index 45a8b9888..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/options.types.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { SupportedLanguage } from "./translate/translate"; -export type NetworkId = "mainnet" | "testnet"; -export interface Network { - /** - * Network ID (e.g. `testnet`). - */ - networkId: string; - /** - * URL for RPC requests. - */ - nodeUrl: string; - /** - * URL for creating accounts. - */ - helperUrl: string; - /** - * URL for the NEAR explorer. - */ - explorerUrl: string; - /** - * URL for the NEAR indexer. - */ - indexerUrl: string; -} -export interface Options { - /** - * ISO 639-1 two-letter language code. - */ - languageCode: SupportedLanguage | undefined; - /** - * Resolved network configuration. - */ - network: Network; - /** - * Whether internal logging is enabled. - */ - debug: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder: boolean; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl: string | undefined; -} -//# sourceMappingURL=options.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/options.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/options.types.d.ts.map deleted file mode 100644 index 663fb6879..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/options.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/options.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/options.types.js b/packages/wallet-utils/dist/esm/core/src/lib/options.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/options.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts deleted file mode 100644 index 00a0b6840..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { EventEmitterService, Subscription } from "./event-emitter.types"; -export declare class EventEmitter> implements EventEmitterService { - private emitter; - on(eventName: Event, callback: (event: Events[Event]) => void): Subscription; - off(eventName: Event, callback: (event: Events[Event]) => void): void; - emit(eventName: Event, event: Events[Event]): void; -} -//# sourceMappingURL=event-emitter.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map deleted file mode 100644 index 80b80c736..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/E,qBAAa,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC9D,YAAW,mBAAmB,CAAC,MAAM,CAAC;IAEtC,OAAO,CAAC,OAAO,CAAuB;IAEtC,EAAE,CAAC,KAAK,SAAS,MAAM,MAAM,EAC3B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,GACvC,YAAY;IAQf,GAAG,CAAC,KAAK,SAAS,MAAM,MAAM,EAC5B,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;IAK1C,IAAI,CAAC,KAAK,SAAS,MAAM,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;CAGxE"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.js b/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.js deleted file mode 100644 index 304200d75..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.service.js +++ /dev/null @@ -1,16 +0,0 @@ -import { EventEmitter as NEventEmitter } from "events"; -export class EventEmitter { - emitter = new NEventEmitter(); - on(eventName, callback) { - this.emitter.on(eventName, callback); - return { - remove: () => this.emitter.off(eventName, callback), - }; - } - off(eventName, callback) { - this.emitter.off(eventName, callback); - } - emit(eventName, event) { - this.emitter.emit(eventName, event); - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts deleted file mode 100644 index 3a25067e0..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface Subscription { - remove: () => void; -} -export interface EventEmitterService> { - on(eventName: EventName, callback: (event: Events[EventName]) => void): Subscription; - off(eventName: EventName, callback: (event: Events[EventName]) => void): void; - emit(eventName: EventName, event: Events[EventName]): void; -} -//# sourceMappingURL=event-emitter.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map deleted file mode 100644 index 6e4178d43..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-emitter.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/event-emitter/event-emitter.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzE,EAAE,CAAC,SAAS,SAAS,MAAM,MAAM,EAC/B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,YAAY,CAAC;IAEhB,GAAG,CAAC,SAAS,SAAS,MAAM,MAAM,EAChC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAC3C,IAAI,CAAC;IAER,IAAI,CAAC,SAAS,SAAS,MAAM,MAAM,EACjC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,GACvB,IAAI,CAAC;CACT"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.js b/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/event-emitter/event-emitter.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/index.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/index.d.ts deleted file mode 100644 index 7f06b3d8e..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * from "./provider/provider.service"; -export * from "./provider/provider.service.types"; -export * from "./storage/storage.service.types"; -export * from "./storage/json-storage.service.types"; -export * from "./storage/json-storage.service"; -export * from "./storage/web-storage.service"; -export * from "./logger/logger.service"; -export * from "./logger/logger.service.types"; -export * from "./wallet-modules/wallet-modules.service"; -export * from "./event-emitter/event-emitter.service"; -export * from "./event-emitter/event-emitter.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/index.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/index.d.ts.map deleted file mode 100644 index f34146ce5..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/index.js b/packages/wallet-utils/dist/esm/core/src/lib/services/index.js deleted file mode 100644 index 5301a0f98..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/index.js +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./provider/provider.service"; -export * from "./provider/provider.service.types"; -export * from "./storage/storage.service.types"; -export * from "./storage/json-storage.service.types"; -export * from "./storage/json-storage.service"; -export * from "./storage/web-storage.service"; -export * from "./logger/logger.service"; -export * from "./logger/logger.service.types"; -export * from "./wallet-modules/wallet-modules.service"; -export * from "./event-emitter/event-emitter.service"; -export * from "./event-emitter/event-emitter.types"; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.d.ts deleted file mode 100644 index 305cafb84..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { LoggerService } from "./logger.service.types"; -export declare class Logger implements LoggerService { - static debug: boolean; - namespace?: string; - constructor(namespace?: string); - private emit; - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -export declare const logger: Logger; -//# sourceMappingURL=logger.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.d.ts.map deleted file mode 100644 index 3819238b2..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,qBAAa,MAAO,YAAW,aAAa;IAC1C,MAAM,CAAC,KAAK,UAAS;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEP,SAAS,CAAC,EAAE,MAAM;IAI9B,OAAO,CAAC,IAAI;IAgBZ,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI7B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAI9B,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;CAGhC;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.js b/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.js deleted file mode 100644 index d1ca57bc4..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.js +++ /dev/null @@ -1,32 +0,0 @@ -export class Logger { - static debug = false; - namespace; - constructor(namespace) { - this.namespace = namespace; - } - emit(method, ...params) { - if (!Logger.debug) { - return; - } - if (this.namespace && method !== "error") { - // eslint-disable-next-line no-console - console[method](this.namespace, ...params); - return; - } - // eslint-disable-next-line no-console - console[method](...params); - } - log(...params) { - this.emit("log", ...params); - } - info(...params) { - this.emit("info", ...params); - } - warn(...params) { - this.emit("warn", ...params); - } - error(...params) { - this.emit("error", ...params); - } -} -export const logger = new Logger(); diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts deleted file mode 100644 index 8c891f4f2..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface LoggerService { - log(...params: Array): void; - info(...params: Array): void; - warn(...params: Array): void; - error(...params: Array): void; -} -//# sourceMappingURL=logger.service.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts.map deleted file mode 100644 index 0160d352c..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/logger/logger.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.types.js b/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/logger/logger.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.d.ts deleted file mode 100644 index 07f2954c5..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { AccessKeyView, BlockReference, QueryResponseKind, RpcQueryRequest } from "@near-js/types"; -import type { ProviderService, QueryParams, ViewAccessKeyParams } from "./provider.service.types"; -import type { SignedTransaction } from "@near-js/transactions"; -export declare class Provider implements ProviderService { - private provider; - constructor(urls: Array); - query(paramsOrPath: QueryParams | RpcQueryRequest | string, data?: string): Promise; - viewAccessKey({ accountId, publicKey }: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; - private urlsToProviders; -} -//# sourceMappingURL=provider.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.d.ts.map deleted file mode 100644 index 02d2f07b3..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,qBAAa,QAAS,YAAW,eAAe;IAW9C,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;IAM/B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,EACpD,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC;IAQpB,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,mBAAmB;IAS3D,KAAK,CAAC,SAAS,EAAE,cAAc;IAI/B,eAAe,CAAC,iBAAiB,EAAE,iBAAiB;IAIpD,OAAO,CAAC,eAAe;CAKxB"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.js b/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.js deleted file mode 100644 index bfcf13b62..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.js +++ /dev/null @@ -1,43 +0,0 @@ -import { JsonRpcProvider, FailoverRpcProvider } from "@near-js/providers"; -export class Provider { - /* - private provider: JsonRpcProvider; - - constructor(urls: Array) { - this.provider = new JsonRpcProvider( - this.urlsToProviders(urls) - ); - } - */ - provider; - constructor(urls) { - this.provider = new FailoverRpcProvider(this.urlsToProviders(urls)); - } - query(paramsOrPath, data) { - if (typeof paramsOrPath === "string" && data !== undefined) { - return this.provider.query(paramsOrPath, data); - } - else { - return this.provider.query(paramsOrPath); - } - } - viewAccessKey({ accountId, publicKey }) { - return this.query({ - request_type: "view_access_key", - finality: "final", - account_id: accountId, - public_key: publicKey, - }); - } - block(reference) { - return this.provider.block(reference); - } - sendTransaction(signedTransaction) { - return this.provider.sendTransaction(signedTransaction); - } - urlsToProviders(urls) { - return urls && urls.length > 0 - ? urls.map((url) => new JsonRpcProvider({ url })) - : []; - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts deleted file mode 100644 index cba6ca3cd..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { AccessKeyView, BlockReference, BlockResult, QueryResponseKind, FinalExecutionOutcome } from "@near-js/types"; -import type { SignedTransaction } from "@near-js/transactions"; -export type QueryParams = { - [key in string]: unknown; -}; -export interface ViewAccessKeyParams { - accountId: string; - publicKey: string; -} -export interface ProviderService { - query(params: QueryParams): Promise; - viewAccessKey(params: ViewAccessKeyParams): Promise; - block(reference: BlockReference): Promise; - sendTransaction(signedTransaction: SignedTransaction): Promise; -} -//# sourceMappingURL=provider.service.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts.map deleted file mode 100644 index 94a2e9755..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/provider/provider.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG;KAAG,GAAG,IAAI,MAAM,GAAG,OAAO;CAAE,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACtC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,eAAe,CACb,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.types.js b/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/provider/provider.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts deleted file mode 100644 index 8e5c8063a..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -import type { JsonStorageService } from "./json-storage.service.types"; -export declare class JsonStorage implements JsonStorageService { - storage: StorageService; - namespace: string; - constructor(storage: StorageService, namespace: string | Array); - private resolveKey; - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts.map deleted file mode 100644 index 9cf929933..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,qBAAa,WAAY,YAAW,kBAAkB;IACpD,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;gBAEN,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAOtE,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAMlD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.js b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.js deleted file mode 100644 index a9175d614..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.js +++ /dev/null @@ -1,25 +0,0 @@ -const KEY_DELIMITER = ":"; -export class JsonStorage { - storage; - namespace; - constructor(storage, namespace) { - this.storage = storage; - this.namespace = Array.isArray(namespace) - ? namespace.join(KEY_DELIMITER) - : namespace; - } - resolveKey(key) { - return [this.namespace, key].join(KEY_DELIMITER); - } - getItem(key) { - return this.storage.getItem(this.resolveKey(key)).then((item) => { - return typeof item === "string" ? JSON.parse(item) : null; - }); - } - setItem(key, value) { - return this.storage.setItem(this.resolveKey(key), JSON.stringify(value)); - } - removeItem(key) { - return this.storage.removeItem(this.resolveKey(key)); - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts deleted file mode 100644 index 0cfff07a0..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface JsonStorageService { - getItem(key: string): Promise; - setItem(key: string, value: Value): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=json-storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts.map deleted file mode 100644 index 00ce8794a..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/json-storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.types.js b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/json-storage.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts deleted file mode 100644 index 64ff2e6d3..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=storage.service.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts.map deleted file mode 100644 index afbf46e25..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/storage.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storage.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/storage.service.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/storage.service.types.js b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/storage.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/storage.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts deleted file mode 100644 index f13fefc9a..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { StorageService } from "./storage.service.types"; -export declare class WebStorageService implements StorageService { - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; - removeItem(key: string): Promise; -} -//# sourceMappingURL=web-storage.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts.map deleted file mode 100644 index fbed55367..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/web-storage.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web-storage.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/storage/web-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/web-storage.service.js b/packages/wallet-utils/dist/esm/core/src/lib/services/storage/web-storage.service.js deleted file mode 100644 index 3b6ee32f5..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/storage/web-storage.service.js +++ /dev/null @@ -1,20 +0,0 @@ -export class WebStorageService { - getItem(key) { - return new Promise((resolve) => { - const value = localStorage.getItem(key); - resolve(value); - }); - } - setItem(key, value) { - return new Promise((resolve) => { - localStorage.setItem(key, value); - resolve(); - }); - } - removeItem(key) { - return new Promise((resolve) => { - localStorage.removeItem(key); - resolve(); - }); - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts deleted file mode 100644 index 28c9880c2..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { WalletModulesParams } from "./wallet-modules.service.types"; -import type { Wallet } from "../../wallet"; -export declare class WalletModules { - private factories; - private storage; - private options; - private store; - private emitter; - private provider; - private modules; - private instances; - constructor({ factories, storage, options, store, emitter, provider, }: WalletModulesParams); - private validateWallet; - private resolveStorageState; - private setWalletAsRecentlySignedIn; - private signOutWallet; - private onWalletSignedIn; - private onWalletSignedOut; - private setupWalletEmitter; - private validateSignMessageParams; - private decorateWallet; - private setupInstance; - private getModule; - getWallet(id: string | null): Promise; - setup(): Promise; -} -//# sourceMappingURL=wallet-modules.service.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map deleted file mode 100644 index 94b2e90a9..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAEV,MAAM,EAOP,MAAM,cAAc,CAAC;AAmBtB,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAA6C;gBAElD,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,mBAAmB;YAYR,cAAc;YAkBd,mBAAmB;YAyEnB,2BAA2B;YAuB3B,aAAa;YAYb,gBAAgB;IAkD9B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,cAAc;YAsCR,aAAa;IA6B3B,OAAO,CAAC,SAAS;IAIX,SAAS,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAoB9D,KAAK;CAkFZ"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.js b/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.js deleted file mode 100644 index d5aa498d4..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.js +++ /dev/null @@ -1,321 +0,0 @@ -import { EventEmitter } from "../event-emitter/event-emitter.service"; -import { Logger, logger } from "../logger/logger.service"; -import { RECENTLY_SIGNED_IN_WALLETS, PACKAGE_NAME, PENDING_CONTRACT, PENDING_SELECTED_WALLET_ID, REMEMBER_RECENT_WALLETS, REMEMBER_RECENT_WALLETS_STATE, } from "../../constants"; -import { JsonStorage } from "../storage/json-storage.service"; -export class WalletModules { - factories; - storage; - options; - store; - emitter; - provider; - modules; - instances; - constructor({ factories, storage, options, store, emitter, provider, }) { - this.factories = factories; - this.storage = storage; - this.options = options; - this.store = store; - this.emitter = emitter; - this.provider = provider; - this.modules = []; - this.instances = {}; - } - async validateWallet(id) { - let accounts = []; - const wallet = await this.getWallet(id); - if (wallet) { - // Ensure our persistent state aligns with the selected wallet. - // For example a wallet is selected, but it returns no accounts (not signed in). - accounts = await wallet.getAccounts().catch((err) => { - logger.log(`Failed to validate ${wallet.id} during setup`); - logger.error(err); - return []; - }); - } - return accounts; - } - async resolveStorageState() { - const jsonStorage = new JsonStorage(this.storage, PACKAGE_NAME); - const pendingSelectedWalletId = await jsonStorage.getItem(PENDING_SELECTED_WALLET_ID); - const pendingContract = await jsonStorage.getItem(PENDING_CONTRACT); - const rememberRecentWallets = await jsonStorage.getItem(REMEMBER_RECENT_WALLETS); - if (pendingSelectedWalletId && pendingContract) { - const accounts = await this.validateWallet(pendingSelectedWalletId); - await jsonStorage.removeItem(PENDING_SELECTED_WALLET_ID); - await jsonStorage.removeItem(PENDING_CONTRACT); - if (accounts.length) { - const { selectedWalletId } = this.store.getState(); - const selectedWallet = await this.getWallet(selectedWalletId); - if (selectedWallet && pendingSelectedWalletId !== selectedWalletId) { - await selectedWallet.signOut().catch((err) => { - logger.log("Failed to sign out existing wallet"); - logger.error(err); - }); - } - let recentlySignedInWalletsFromPending = []; - if (rememberRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWalletsFromPending = - await this.setWalletAsRecentlySignedIn(pendingSelectedWalletId); - } - return { - accounts, - contract: pendingContract, - selectedWalletId: pendingSelectedWalletId, - recentlySignedInWallets: recentlySignedInWalletsFromPending, - rememberRecentWallets: rememberRecentWallets || REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - } - const { contract, selectedWalletId } = this.store.getState(); - const accounts = await this.validateWallet(selectedWalletId); - const recentlySignedInWallets = await jsonStorage.getItem(RECENTLY_SIGNED_IN_WALLETS); - if (!accounts.length) { - return { - accounts: [], - contract: null, - selectedWalletId: null, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - return { - accounts, - contract, - selectedWalletId, - recentlySignedInWallets: recentlySignedInWallets || [], - rememberRecentWallets: rememberRecentWallets || REMEMBER_RECENT_WALLETS_STATE.ENABLED, - }; - } - async setWalletAsRecentlySignedIn(walletId) { - const jsonStorage = new JsonStorage(this.storage, PACKAGE_NAME); - let recentlySignedInWallets = await jsonStorage.getItem(RECENTLY_SIGNED_IN_WALLETS); - if (!recentlySignedInWallets) { - recentlySignedInWallets = []; - } - if (!recentlySignedInWallets.includes(walletId)) { - recentlySignedInWallets.unshift(walletId); - recentlySignedInWallets = recentlySignedInWallets.slice(0, 5); - await jsonStorage.setItem(RECENTLY_SIGNED_IN_WALLETS, recentlySignedInWallets); - } - return recentlySignedInWallets; - } - async signOutWallet(walletId) { - const wallet = (await this.getWallet(walletId)); - await wallet.signOut().catch((err) => { - logger.log(`Failed to sign out ${wallet.id}`); - logger.error(err); - // At least clean up state on our side. - this.onWalletSignedOut(wallet.id); - }); - } - async onWalletSignedIn(walletId, { accounts, contractId, methodNames }) { - const { selectedWalletId, rememberRecentWallets } = this.store.getState(); - const jsonStorage = new JsonStorage(this.storage, PACKAGE_NAME); - const contract = { contractId, methodNames }; - if (!accounts.length) { - const module = this.getModule(walletId); - // We can't guarantee the user will actually sign in with browser wallets. - // Best we can do is set in storage and validate on init. - if (module.type === "browser") { - await jsonStorage.setItem(PENDING_SELECTED_WALLET_ID, walletId); - await jsonStorage.setItem(PENDING_CONTRACT, contract); - } - return; - } - if (selectedWalletId && selectedWalletId !== walletId) { - await this.signOutWallet(selectedWalletId); - } - let recentlySignedInWallets = []; - if (rememberRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED) { - recentlySignedInWallets = await this.setWalletAsRecentlySignedIn(walletId); - } - this.store.dispatch({ - type: "WALLET_CONNECTED", - payload: { - walletId, - contract, - accounts, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - this.emitter.emit("signedIn", { - walletId, - contractId, - methodNames, - accounts, - }); - } - onWalletSignedOut(walletId) { - this.store.dispatch({ - type: "WALLET_DISCONNECTED", - payload: { walletId }, - }); - this.emitter.emit("signedOut", { walletId }); - } - setupWalletEmitter(module) { - const emitter = new EventEmitter(); - emitter.on("signedOut", () => { - this.onWalletSignedOut(module.id); - }); - emitter.on("signedIn", (event) => { - this.onWalletSignedIn(module.id, event); - }); - emitter.on("accountsChanged", async ({ accounts }) => { - this.emitter.emit("accountsChanged", { walletId: module.id, accounts }); - if (!accounts.length) { - return this.signOutWallet(module.id); - } - this.store.dispatch({ - type: "ACCOUNTS_CHANGED", - payload: { walletId: module.id, accounts }, - }); - }); - emitter.on("networkChanged", ({ networkId }) => { - this.emitter.emit("networkChanged", { walletId: module.id, networkId }); - }); - emitter.on("uriChanged", ({ uri }) => { - this.emitter.emit("uriChanged", { walletId: module.id, uri }); - }); - return emitter; - } - validateSignMessageParams({ message, nonce, recipient, }) { - if (!message || message.trim() === "") { - throw new Error("Invalid message. It must be a non-empty string."); - } - if (!Buffer.isBuffer(nonce) || nonce.length !== 32) { - throw new Error("Invalid nonce. It must be a Buffer with a length of 32 bytes."); - } - if (!recipient || recipient.trim() === "") { - throw new Error("Invalid recipient. It must be a non-empty string."); - } - } - decorateWallet(wallet) { - const _signIn = wallet.signIn; - const _signOut = wallet.signOut; - const _signMessage = wallet.signMessage; - wallet.signIn = async (params) => { - const accounts = await _signIn(params); - const { contractId, methodNames = [] } = params; - await this.onWalletSignedIn(wallet.id, { - accounts, - contractId, - methodNames, - }); - return accounts; - }; - wallet.signOut = async () => { - await _signOut(); - this.onWalletSignedOut(wallet.id); - }; - wallet.signMessage = async (params) => { - if (_signMessage === undefined) { - throw Error(`The signMessage method is not supported by ${wallet.metadata.name}`); - } - this.validateSignMessageParams(params); - return await _signMessage(params); - }; - return wallet; - } - async setupInstance(module) { - if (!module.metadata.available) { - const message = module.type === "injected" ? "not installed" : "not available"; - throw Error(`${module.metadata.name} is ${message}`); - } - const wallet = { - id: module.id, - type: module.type, - metadata: module.metadata, - ...(await module.init({ - id: module.id, - type: module.type, - metadata: module.metadata, - options: this.options, - store: this.store.toReadOnly(), - provider: this.provider, - emitter: this.setupWalletEmitter(module), - logger: new Logger(module.id), - storage: new JsonStorage(this.storage, [PACKAGE_NAME, module.id]), - })), - }; - return this.decorateWallet(wallet); - } - getModule(id) { - return this.modules.find((x) => x.id === id); - } - async getWallet(id) { - const module = this.getModule(id); - if (!module) { - return null; - } - const { selectedWalletId } = this.store.getState(); - // If user uninstalled/removed a wallet which was previously signed in with - // best we can do is clean up state on our side. - if (!module.metadata.available && selectedWalletId) { - this.onWalletSignedOut(selectedWalletId); - return null; - } - return (await module.wallet()); - } - async setup() { - const modules = []; - for (let i = 0; i < this.factories.length; i += 1) { - const module = await this.factories[i]({ options: this.options }).catch((err) => { - logger.log("Failed to setup module"); - logger.error(err); - return null; - }); - // Filter out wallets that aren't available. - if (!module) { - continue; - } - // Skip duplicated module. - if (modules.some((x) => x.id === module.id)) { - continue; - } - modules.push({ - id: module.id, - type: module.type, - metadata: module.metadata, - wallet: async () => { - let instance = this.instances[module.id]; - if (instance) { - return instance; - } - instance = await this.setupInstance(module); - this.instances[module.id] = instance; - return instance; - }, - }); - } - this.modules = modules; - const { accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = await this.resolveStorageState(); - this.store.dispatch({ - type: "SETUP_WALLET_MODULES", - payload: { - modules, - accounts, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }, - }); - for (let i = 0; i < this.modules.length; i++) { - if (this.modules[i].type !== "instant-link") { - continue; - } - const wallet = (await this.modules[i].wallet()); - if (!wallet.metadata.runOnStartup) { - continue; - } - try { - await wallet.signIn({ contractId: wallet.getContractId() }); - } - catch (err) { - logger.error("Failed to sign in to wallet. " + err); - } - } - } -} diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts deleted file mode 100644 index 339f296e7..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { WalletModuleFactory } from "../../wallet"; -import type { StorageService } from "../storage/storage.service.types"; -import type { Options } from "../../options.types"; -import type { Store } from "../../store.types"; -import type { EventEmitter } from "../event-emitter/event-emitter.service"; -import type { WalletSelectorEvents } from "../../wallet-selector.types"; -import type { ProviderService } from "../provider/provider.service.types"; -export interface WalletModulesParams { - factories: Array; - storage: StorageService; - options: Options; - store: Store; - emitter: EventEmitter; - provider: ProviderService; -} -//# sourceMappingURL=wallet-modules.service.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map deleted file mode 100644 index 231a8d586..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-modules.service.types.d.ts","sourceRoot":"","sources":["../../../../../../../../core/src/lib/services/wallet-modules/wallet-modules.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC5C,QAAQ,EAAE,eAAe,CAAC;CAC3B"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.js b/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/services/wallet-modules/wallet-modules.service.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/store.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/store.d.ts deleted file mode 100644 index dd8b9c03c..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/store.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { StorageService } from "./services"; -import type { Store } from "./store.types"; -export declare const createStore: (storage: StorageService) => Promise; -//# sourceMappingURL=store.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/store.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/store.d.ts.map deleted file mode 100644 index d1628d160..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/store.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EACV,KAAK,EAGN,MAAM,eAAe,CAAC;AA+JvB,eAAO,MAAM,WAAW,YAAmB,cAAc,KAAG,OAAO,CAAC,KAAK,CAgExE,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/store.js b/packages/wallet-utils/dist/esm/core/src/lib/store.js deleted file mode 100644 index 32dc79078..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/store.js +++ /dev/null @@ -1,154 +0,0 @@ -import { Subject, BehaviorSubject, scan } from "rxjs"; -import { logger, JsonStorage } from "./services"; -import { PACKAGE_NAME, CONTRACT, SELECTED_WALLET_ID, RECENTLY_SIGNED_IN_WALLETS, REMEMBER_RECENT_WALLETS, REMEMBER_RECENT_WALLETS_STATE, } from "./constants"; -const reducer = (state, action) => { - logger.log("Store Action", action); - switch (action.type) { - case "SETUP_WALLET_MODULES": { - const { modules, accounts, contract, selectedWalletId, recentlySignedInWallets, rememberRecentWallets, } = action.payload; - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === 0, - }; - }); - return { - ...state, - modules, - accounts: accountStates, - contract, - selectedWalletId, - recentlySignedInWallets, - rememberRecentWallets, - }; - } - case "WALLET_CONNECTED": { - const { walletId, contract, accounts, recentlySignedInWallets } = action.payload; - if (!accounts.length) { - return state; - } - const activeAccountIndex = state.accounts.findIndex((account) => account.active); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: i === (activeAccountIndex > -1 ? activeAccountIndex : 0), - }; - }); - return { - ...state, - contract, - accounts: accountStates, - selectedWalletId: walletId, - recentlySignedInWallets, - }; - } - case "WALLET_DISCONNECTED": { - const { walletId } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - return { - ...state, - contract: null, - accounts: [], - selectedWalletId: null, - }; - } - case "ACCOUNTS_CHANGED": { - const { walletId, accounts } = action.payload; - if (walletId !== state.selectedWalletId) { - return state; - } - const activeAccount = state.accounts.find((account) => account.active); - const isActiveAccountRemoved = !accounts.some((account) => account.accountId === activeAccount?.accountId); - const accountStates = accounts.map((account, i) => { - return { - ...account, - active: isActiveAccountRemoved - ? i === 0 - : account.accountId === activeAccount?.accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_ACTIVE_ACCOUNT": { - const { accountId } = action.payload; - const accountStates = state.accounts.map((account) => { - return { - ...account, - active: account.accountId === accountId, - }; - }); - return { - ...state, - accounts: accountStates, - }; - } - case "SET_REMEMBER_RECENT_WALLETS": { - const { selectedWalletId, recentlySignedInWallets } = state; - const { rememberRecentWallets } = action.payload; - const newRecentWallets = rememberRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? REMEMBER_RECENT_WALLETS_STATE.DISABLED - : REMEMBER_RECENT_WALLETS_STATE.ENABLED; - const newWalletsVal = [...recentlySignedInWallets]; - if (selectedWalletId && - !recentlySignedInWallets.includes(selectedWalletId)) { - newWalletsVal.push(selectedWalletId); - } - const newRecentlySignedInWallets = newRecentWallets === REMEMBER_RECENT_WALLETS_STATE.ENABLED - ? newWalletsVal - : []; - return { - ...state, - rememberRecentWallets: newRecentWallets, - recentlySignedInWallets: newRecentlySignedInWallets, - }; - } - default: - return state; - } -}; -export const createStore = async (storage) => { - const jsonStorage = new JsonStorage(storage, PACKAGE_NAME); - const initialState = { - modules: [], - accounts: [], - contract: await jsonStorage.getItem(CONTRACT), - selectedWalletId: await jsonStorage.getItem(SELECTED_WALLET_ID), - recentlySignedInWallets: (await jsonStorage.getItem(RECENTLY_SIGNED_IN_WALLETS)) || [], - rememberRecentWallets: (await jsonStorage.getItem(REMEMBER_RECENT_WALLETS)) || "", - }; - const state$ = new BehaviorSubject(initialState); - const actions$ = new Subject(); - actions$.pipe(scan(reducer, initialState)).subscribe(state$); - const syncStorage = async (prevState, state, storageKey, property) => { - if (state[property] === prevState[property]) { - return; - } - if (state[property]) { - await jsonStorage.setItem(storageKey, state[property]); - return; - } - await jsonStorage.removeItem(storageKey); - }; - let prevState = state$.getValue(); - state$.subscribe((state) => { - syncStorage(prevState, state, SELECTED_WALLET_ID, "selectedWalletId"); - syncStorage(prevState, state, CONTRACT, "contract"); - syncStorage(prevState, state, RECENTLY_SIGNED_IN_WALLETS, "recentlySignedInWallets"); - syncStorage(prevState, state, REMEMBER_RECENT_WALLETS, "rememberRecentWallets"); - prevState = state; - }); - return { - observable: state$, - getState: () => state$.getValue(), - dispatch: (action) => actions$.next(action), - toReadOnly: () => ({ - getState: () => state$.getValue(), - observable: state$.asObservable(), - }), - }; -}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/store.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/store.types.d.ts deleted file mode 100644 index 3d93e104e..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/store.types.d.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type { BehaviorSubject, Observable } from "rxjs"; -import type { Wallet, Account } from "./wallet"; -import type { SignMessageMethod } from "./wallet"; -export interface ContractState { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * List of methods that can only be invoked on the Smart Contract. Empty list means no restriction. - */ - methodNames: Array; -} -export type ModuleState = { - /** - * Unique identifier for the wallet. - */ - id: Variation["id"]; - /** - * Type of the wallet. - */ - type: Variation["type"]; - /** - * Meta information about the wallet. - */ - metadata: Variation["metadata"]; - /** - * Access functionality of the wallet. - */ - wallet(): Promise; -}; -export type AccountState = Account & { - /** - * Is account set as active. - */ - active: boolean; -}; -export interface WalletSelectorState { - /** - * Returns the signed in contract. - */ - contract: ContractState | null; - /** - * Returns the list of available modules. - */ - modules: Array; - /** - * Returns the list of signed in accounts. - */ - accounts: Array; - /** - * Returns the ID of the selected wallet. - */ - selectedWalletId: string | null; - /** - * Returns ID-s of 5 recently signed in wallets. - */ - recentlySignedInWallets: Array; - /** - * Returns a string, which indicates if the functionality about recentlySignedInWallets is active. - */ - rememberRecentWallets: string; -} -export type WalletSelectorAction = { - type: "SETUP_WALLET_MODULES"; - payload: { - modules: Array; - accounts: Array; - contract: ContractState | null; - selectedWalletId: string | null; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_CONNECTED"; - payload: { - walletId: string; - contract: ContractState; - accounts: Array; - recentlySignedInWallets: Array; - rememberRecentWallets: string; - }; -} | { - type: "WALLET_DISCONNECTED"; - payload: { - walletId: string; - }; -} | { - type: "ACCOUNTS_CHANGED"; - payload: { - walletId: string; - accounts: Array; - }; -} | { - type: "SET_ACTIVE_ACCOUNT"; - payload: { - accountId: string; - }; -} | { - type: "SET_REMEMBER_RECENT_WALLETS"; - payload: { - rememberRecentWallets: string; - }; -}; -export interface ReadOnlyStore { - /** - * Retrieve the current state. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - getState(): WalletSelectorState; - /** - * Subscribe to state changes using the (RxJS) Observable pattern. You can find more information on `WalletSelectorState` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/state.md | here}. - */ - observable: Observable; -} -export interface Store { - observable: BehaviorSubject; - getState(): WalletSelectorState; - dispatch(action: WalletSelectorAction): void; - toReadOnly(): ReadOnlyStore; -} -//# sourceMappingURL=store.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/store.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/store.types.d.ts.map deleted file mode 100644 index 5854551fa..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/store.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/store.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/store.types.js b/packages/wallet-utils/dist/esm/core/src/lib/store.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/store.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/testUtils.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/testUtils.d.ts deleted file mode 100644 index ace50a39a..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/testUtils.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { WalletModuleFactory, Wallet } from "./wallet"; -import type { ProviderService, StorageService } from "./services"; -import type { Options } from "./options.types"; -export interface MockWalletDependencies { - options?: Options; - provider?: ProviderService; -} -export declare const mockWallet: (factory: WalletModuleFactory, deps?: MockWalletDependencies) => Promise<{ - wallet: Variation; - storage: StorageService; -}>; -//# sourceMappingURL=testUtils.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/testUtils.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/testUtils.d.ts.map deleted file mode 100644 index dbc9d8f55..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/testUtils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/testUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAmB/C,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,GAAU,SAAS,SAAS,MAAM,WAC9C,mBAAmB,SACrB,sBAAsB;;;EA4B9B,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/testUtils.js b/packages/wallet-utils/dist/esm/core/src/lib/testUtils.js deleted file mode 100644 index 7e90e1ce8..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/testUtils.js +++ /dev/null @@ -1,103 +0,0 @@ -// Remove Jest import -// import * as jest from "jest"; -import { mock } from "jest-mock-extended"; -import { getNetworkPreset, resolveOptions } from "./options"; -import { createStore } from "./store"; -import { EventEmitter, WalletModules } from "./services"; -const createStorageMock = () => { - const _state = {}; - return { - getItem: async (key) => _state[key] || null, // Replace jest.fn() with plain async functions - setItem: async (key, value) => { - _state[key] = value; - }, - removeItem: async (key) => { - delete _state[key]; - }, - }; -}; -export const mockWallet = async (factory, deps) => { - const { options, storage } = resolveOptions({ - network: getNetworkPreset("testnet"), - storage: createStorageMock(), - modules: [factory], - ...deps?.options, - }); - const emitter = new EventEmitter(); - const store = await createStore(storage); - const walletModules = new WalletModules({ - factories: [factory], - storage, - options, - store, - emitter, - provider: deps?.provider || mock(), - }); - await walletModules.setup(); - const { modules } = store.getState(); - const wallet = await walletModules.getWallet(modules[0].id); - return { - wallet: wallet, - storage, - }; -}; -// import * as jest from "jest" -// import { mock } from "jest-mock-extended"; -// import type { WalletModuleFactory, Wallet } from "./wallet"; -// import type { ProviderService, StorageService } from "./services"; -// import type { WalletSelectorEvents } from "./wallet-selector.types"; -// import type { Options } from "./options.types"; -// import { getNetworkPreset, resolveOptions } from "./options"; -// import { createStore } from "./store"; -// import { EventEmitter, WalletModules } from "./services"; -// -// const createStorageMock = (): StorageService => { -// const _state: Record = {}; -// -// return { -// getItem: jest.fn(async (key) => _state[key] || null), -// setItem: jest.fn(async (key, value) => { -// _state[key] = value; -// }), -// removeItem: jest.fn(async (key) => { -// delete _state[key]; -// }), -// }; -// }; -// -// export interface MockWalletDependencies { -// options?: Options; -// provider?: ProviderService; -// } -// -// export const mockWallet = async ( -// factory: WalletModuleFactory, -// deps?: MockWalletDependencies -// ) => { -// const { options, storage } = resolveOptions({ -// network: getNetworkPreset("testnet"), -// storage: createStorageMock(), -// modules: [factory], -// ...deps?.options, -// }); -// const emitter = new EventEmitter(); -// const store = await createStore(storage); -// const walletModules = new WalletModules({ -// factories: [factory], -// storage, -// options, -// store, -// emitter, -// provider: deps?.provider || mock(), -// }); -// -// await walletModules.setup(); -// -// const { modules } = store.getState(); -// const wallet = await walletModules.getWallet(modules[0].id); -// -// return { -// wallet: wallet!, -// storage, -// }; -// }; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/translate/translate.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/translate/translate.d.ts deleted file mode 100644 index 8706ed5a9..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/translate/translate.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type SupportedLanguage = "en" | "es" | "zh" | "bg" | "ko" | "vi" | "hi" | "ar" | "hr" | "mk" | "sl" | "sr"; -export declare const allowOnlyLanguage: (langCode: SupportedLanguage | undefined) => void; -export declare const translate: (path: string) => string; -//# sourceMappingURL=translate.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/translate/translate.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/translate/translate.d.ts.map deleted file mode 100644 index b2ac2d105..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/translate/translate.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/translate/translate.ts"],"names":[],"mappings":"AA4CA,MAAM,MAAM,iBAAiB,GACzB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,eAAO,MAAM,iBAAiB,aAAc,iBAAiB,GAAG,SAAS,SAExE,CAAC;AAuBF,eAAO,MAAM,SAAS,SAAU,MAAM,WAarC,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/translate/translate.js b/packages/wallet-utils/dist/esm/core/src/lib/translate/translate.js deleted file mode 100644 index 610c02a94..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/translate/translate.js +++ /dev/null @@ -1,73 +0,0 @@ -import en from "../locale/en.json"; -import es from "../locale/es.json"; -import zh from "../locale/zh.json"; -import bg from "../locale/bg.json"; -import ko from "../locale/ko.json"; -import vi from "../locale/vi.json"; -import hi from "../locale/hi.json"; -import ar from "../locale/ar.json"; -import hr from "../locale/hr.json"; -import mk from "../locale/mk.json"; -import sl from "../locale/sl.json"; -import sr from "../locale/sr.json"; -const getLanguage = (languageCode) => { - switch (languageCode) { - case "en": - return en; - case "es": - return es; - case "zh": - return zh; - case "bg": - return bg; - case "ko": - return ko; - case "vi": - return vi; - case "hi": - return hi; - case "ar": - return ar; - case "hr": - return hr; - case "mk": - return mk; - case "sl": - return sl; - case "sr": - return sr; - default: - return en; - } -}; -let chosenLang; -export const allowOnlyLanguage = (langCode) => { - chosenLang = langCode; -}; -// (i.e en-CA returns just en) -const shortenLanguageCode = (lang) => { - return lang.indexOf("-") !== -1 ? lang.split("-")[0] : lang.split("_")[0]; -}; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const findObjectPropByStringPath = (obj, prop) => { - if (!obj) { - return ""; - } - const _index = prop.indexOf("."); - if (_index > -1) { - const currentProp = prop.substring(0, _index); - const nextProp = prop.substring(_index + 1); - return findObjectPropByStringPath(obj[currentProp], nextProp); - } - return obj[prop]; -}; -export const translate = (path) => { - let browserLang = window.navigator.languages - ? window.navigator.languages[0] - : null; - browserLang = browserLang || window.navigator.language; - const languageCode = shortenLanguageCode(chosenLang || browserLang); - const selectedLanguage = getLanguage(languageCode); - const text = findObjectPropByStringPath(selectedLanguage, path); - return text && typeof text === "string" ? text : path; -}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/utils.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/utils.types.d.ts deleted file mode 100644 index fbcda75c6..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/utils.types.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Optional = Omit & Partial>; -export type Modify = Omit & R; -//# sourceMappingURL=utils.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/utils.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/utils.types.d.ts.map deleted file mode 100644 index 0c4119292..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/utils.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/utils.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/utils.types.js b/packages/wallet-utils/dist/esm/core/src/lib/utils.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/utils.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.d.ts deleted file mode 100644 index 8dd8656b7..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { WalletSelector, WalletSelectorParams } from "./wallet-selector.types"; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -export declare const setupWalletSelector: (params: WalletSelectorParams) => Promise; -//# sourceMappingURL=wallet-selector.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.d.ts.map deleted file mode 100644 index e613937ba..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAmEjC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,WACtB,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CAyCxB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.js b/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.js deleted file mode 100644 index af67afbb6..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.js +++ /dev/null @@ -1,79 +0,0 @@ -import { getNetworkPreset, resolveOptions } from "./options"; -import { createStore } from "./store"; -import { EventEmitter, Logger, WalletModules, Provider } from "./services"; -let walletSelectorInstance = null; -const createSelector = (options, store, walletModules, emitter) => { - return { - options, - store: store.toReadOnly(), - wallet: async (id) => { - const { selectedWalletId } = store.getState(); - const wallet = await walletModules.getWallet(id || selectedWalletId); - if (!wallet) { - if (id) { - throw new Error("Invalid wallet id"); - } - throw new Error("No wallet selected"); - } - return wallet; - }, - setActiveAccount: (accountId) => { - const { accounts } = store.getState(); - if (!accounts.some((account) => account.accountId === accountId)) { - throw new Error("Invalid account id"); - } - store.dispatch({ - type: "SET_ACTIVE_ACCOUNT", - payload: { accountId }, - }); - }, - setRememberRecentWallets: () => { - const { rememberRecentWallets } = store.getState(); - store.dispatch({ - type: "SET_REMEMBER_RECENT_WALLETS", - payload: { rememberRecentWallets }, - }); - }, - isSignedIn() { - const { accounts } = store.getState(); - return Boolean(accounts.length); - }, - on: (eventName, callback) => { - return emitter.on(eventName, callback); - }, - off: (eventName, callback) => { - emitter.off(eventName, callback); - }, - }; -}; -/** - * Initiates a wallet selector instance - * @param {WalletSelectorParams} params Selector parameters (network, modules...) - * @returns {Promise} Returns a WalletSelector object - */ -export const setupWalletSelector = async (params) => { - const { options, storage } = resolveOptions(params); - Logger.debug = options.debug; - const emitter = new EventEmitter(); - const store = await createStore(storage); - const network = await getNetworkPreset(options.network.networkId, params.fallbackRpcUrls); - const rpcProviderUrls = params.fallbackRpcUrls && params.fallbackRpcUrls.length > 0 - ? params.fallbackRpcUrls - : [network.nodeUrl]; - const walletModules = new WalletModules({ - factories: params.modules, - storage, - options, - store, - emitter, - provider: new Provider(rpcProviderUrls), - }); - await walletModules.setup(); - if (params.allowMultipleSelectors) { - return createSelector(options, store, walletModules, emitter); - } - if (!walletSelectorInstance) { - walletSelectorInstance = createSelector(options, store, walletModules, emitter); - } - return walletSelectorInstance; -}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.types.d.ts deleted file mode 100644 index 327a9db79..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.types.d.ts +++ /dev/null @@ -1,109 +0,0 @@ -import type { Account, Wallet, WalletModuleFactory } from "./wallet/wallet.types"; -import type { ReadOnlyStore } from "./store.types"; -import type { Network, NetworkId, Options } from "./options.types"; -import type { Subscription, StorageService } from "./services"; -import type { SupportedLanguage } from "./translate/translate"; -import type { SignMessageMethod } from "./wallet/wallet.types"; -export interface WalletSelectorParams { - /** - * Resolved network configuration. - */ - network: NetworkId | Network; - /** - * List of wallet module factory functions - */ - modules: Array; - /** - * Custom storage service - */ - storage?: StorageService; - /** - * Whether internal logging is enabled. - */ - debug?: boolean; - /** - * Whether wallet order optimization is enabled. - */ - optimizeWalletOrder?: boolean; - /** - * Wether to allow multiple wallet selector instances to be created. - */ - allowMultipleSelectors?: boolean; - /** - * Weather wallet order randomization is enabled. - */ - randomizeWalletOrder?: boolean; - /** - * ISO 639-1 two-letter language code. - */ - languageCode?: SupportedLanguage; - /** - * The URL where DelegateActions are sent by meta transaction enabled wallet modules. - */ - relayerUrl?: string; - /** - * Whether multiple RPC URLs are included, used for the FailoverRpcProvider. - */ - fallbackRpcUrls?: Array; -} -export type WalletSelectorStore = ReadOnlyStore; -export type WalletSelectorEvents = { - signedIn: { - walletId: string; - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: { - walletId: string; - }; - accountsChanged: { - walletId: string; - accounts: Array; - }; - networkChanged: { - walletId: string; - networkId: string; - }; - uriChanged: { - walletId: string; - uri: string; - }; -}; -export interface WalletSelector { - /** - * Resolved variation of the options passed to `setupWalletSelector`. - */ - options: Options; - /** - * Wallet selector storage service - */ - store: WalletSelectorStore; - /** - * Programmatically access wallets and call their methods. - * It's advised to use `state.modules` if you only need access to `id`, `type` or `metadata` as it avoids initialising. - * You can find more information on Wallet {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/wallet.md | here}. - */ - wallet(id?: string): Promise; - /** - * Determines whether we're signed in to one or more accounts. - */ - isSignedIn(): boolean; - /** - * Programmatically change active account which will be used to sign and send transactions. - */ - setActiveAccount(accountId: string): void; - /** - * Programmatically changes the rememberRecentWallets behavior, it can deactivate and activate rememberRecentWallets. - */ - setRememberRecentWallets(): void; - /** - * Attach an event handler to important events. - */ - on(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): Subscription; - /** - * Removes the event handler attached to the given `event`. - */ - off(eventName: EventName, callback: (event: WalletSelectorEvents[EventName]) => void): void; -} -//# sourceMappingURL=wallet-selector.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.types.d.ts.map deleted file mode 100644 index 2ab329a5f..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-selector.types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/lib/wallet-selector.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.types.js b/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet-selector.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet/index.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/wallet/index.d.ts deleted file mode 100644 index df9c381db..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./wallet.types"; -export * from "./transactions.types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet/index.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/wallet/index.d.ts.map deleted file mode 100644 index 223147a0a..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet/index.js b/packages/wallet-utils/dist/esm/core/src/lib/wallet/index.js deleted file mode 100644 index bd35cba8b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./wallet.types"; -export * from "./transactions.types"; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet/transactions.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/wallet/transactions.types.d.ts deleted file mode 100644 index edbe827c4..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet/transactions.types.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -export interface CreateAccountAction { - type: "CreateAccount"; -} -export interface DeployContractAction { - type: "DeployContract"; - params: { - code: Uint8Array; - }; -} -export interface FunctionCallAction { - type: "FunctionCall"; - params: { - methodName: string; - args: object; - gas: string; - deposit: string; - }; -} -export interface TransferAction { - type: "Transfer"; - params: { - deposit: string; - }; -} -export interface StakeAction { - type: "Stake"; - params: { - stake: string; - publicKey: string; - }; -} -export type AddKeyPermission = "FullAccess" | { - receiverId: string; - allowance?: string; - methodNames?: Array; -}; -export interface AddKeyAction { - type: "AddKey"; - params: { - publicKey: string; - accessKey: { - nonce?: number; - permission: AddKeyPermission; - }; - }; -} -export interface DeleteKeyAction { - type: "DeleteKey"; - params: { - publicKey: string; - }; -} -export interface DeleteAccountAction { - type: "DeleteAccount"; - params: { - beneficiaryId: string; - }; -} -export type Action = CreateAccountAction | DeployContractAction | FunctionCallAction | TransferAction | StakeAction | AddKeyAction | DeleteKeyAction | DeleteAccountAction; -export type ActionType = Action["type"]; -export interface Transaction { - signerId: string; - receiverId: string; - actions: Array; -} -//# sourceMappingURL=transactions.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet/transactions.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/wallet/transactions.types.d.ts.map deleted file mode 100644 index 4236471a2..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet/transactions.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transactions.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/transactions.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE;QACN,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE;YACT,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,gBAAgB,CAAC;SAC9B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,MAAM,MAAM,GACd,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,WAAW,GACX,YAAY,GACZ,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet/transactions.types.js b/packages/wallet-utils/dist/esm/core/src/lib/wallet/transactions.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet/transactions.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet/wallet.types.d.ts b/packages/wallet-utils/dist/esm/core/src/lib/wallet/wallet.types.d.ts deleted file mode 100644 index ac2631a0c..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet/wallet.types.d.ts +++ /dev/null @@ -1,295 +0,0 @@ -import type { EventEmitterService, LoggerService, ProviderService, JsonStorageService } from "../services"; -import type { Options } from "../options.types"; -import type { ReadOnlyStore } from "../store.types"; -import type { Transaction, Action } from "./transactions.types"; -import type { Modify, Optional } from "../utils.types"; -import type { FinalExecutionOutcome } from "@near-js/types"; -import { KeyType } from "@near-js/crypto"; -interface BaseWalletMetadata { - /** - * Wallet name. - */ - name: string; - /** - * Wallet description. - */ - description: string | null; - /** - * Wallet icon url. - */ - iconUrl: string; - /** - * Is wallet deprecated. - */ - deprecated: boolean; - /** - * Will the wallet be shown in modal. - */ - available: boolean; -} -export interface Account { - /** - * NEAR account identifier. - */ - accountId: string; - /** - * Account public key. - */ - publicKey?: string; -} -export interface SignInParams { - /** - * Account ID of the Smart Contract. - */ - contractId: string; - /** - * Specify limited access to particular methods on the Smart Contract. - */ - methodNames?: Array; -} -export interface VerifyOwnerParams { - /** - * The message requested sign. Defaults to `verify owner` string. - */ - message: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet). This is the callback url once the signing is approved. Defaults to `window.location.href`. - */ - callbackUrl?: string; - /** - * Applicable to browser wallets (e.g. MyNearWallet) extra data that will be passed to the callback url once the signing is approved. - */ - meta?: string; -} -export interface VerifiedOwner { - accountId: string; - message: string; - blockId: string; - publicKey: string; - signature: string; - keyType: KeyType; -} -export interface SignMessageParams { - message: string; - recipient: string; - nonce: Buffer; - callbackUrl?: string; - state?: string; -} -export interface SignedMessage { - accountId: string; - publicKey: string; - signature: string; - state?: string; -} -export type SignMessageMethod = { - signMessage(params: SignMessageParams): Promise; -}; -interface SignAndSendTransactionParams { - /** - * Account ID used to sign the transaction. Defaults to the first account. - */ - signerId?: string; - /** - * Account ID to receive the transaction. Defaults to `contractId` defined in `init`. - */ - receiverId?: string; - /** - * NEAR Action(s) to sign and send to the network (e.g. `FunctionCall`). You can find more information on `Action` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - actions: Array; -} -interface SignAndSendTransactionsParams { - /** - * NEAR Transactions(s) to sign and send to the network. You can find more information on `Transaction` {@link https://github.com/near/wallet-selector/blob/main/packages/core/docs/api/transactions.md | here}. - */ - transactions: Array>; -} -interface BaseWalletBehaviour { - /** - * Programmatically sign in. Hardware wallets (e.g. Ledger) require `derivationPaths` to validate access key permissions. - */ - signIn(params: SignInParams): Promise>; - /** - * Sign out from the wallet. - */ - signOut(): Promise; - /** - * Returns one or more accounts when signed in. - * This method can be useful for wallets that support accounts at once such as WalletConnect. - * In this case, you can use an `accountId` returned as the `signerId` for `signAndSendTransaction`. - */ - getAccounts(): Promise>; - /** - * Signs the message and verifies the owner. Message is not sent to blockchain. - */ - verifyOwner(params: VerifyOwnerParams): Promise; - /** - * Signs one or more NEAR Actions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransaction(params: SignAndSendTransactionParams): Promise; - /** - * Signs one or more transactions before sending to the network. - * The user must be signed in to call this method as there's at least charges for gas spent. - */ - signAndSendTransactions(params: SignAndSendTransactionsParams): Promise>; - signMessage?(params: SignMessageParams): Promise; -} -type BaseWallet = { - /** - * Unique identifier of the wallet. - */ - id: string; - /** - * Returns the type of wallet. This is particular useful when using functionality that's wallet specific (see hardware wallet example). - */ - type: Type; - /** - * Returns meta information about the wallet such as `name`, `description`, `iconUrl`, `deprecated` and `available` but can include wallet-specific properties such as `downloadUrl` and `useUrlAccountImport` for injected wallets or `contractId`, `runOnStartup` for instant-link wallets and walletUrl for browser wallets. - */ - metadata: Metadata; -} & Behaviour; -export type WalletEvents = { - signedIn: { - contractId: string; - methodNames: Array; - accounts: Array; - }; - signedOut: null; - accountsChanged: { - accounts: Array; - }; - networkChanged: { - networkId: string; - }; - uriChanged: { - uri: string; - }; -}; -export type BrowserWalletMetadata = BaseWalletMetadata & { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; - /** - * The URL of the wallet exposed in the metadata of the module. - */ - walletUrl: string; -}; -interface BrowserWalletSignInParams extends SignInParams { - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After successfully signing in where to redirect. - */ - successUrl?: string; - /** - * Optional for browser wallets (e.g MyNearWallet and HERE Wallet). After failing to sign in where to redirect. - */ - failureUrl?: string; -} -interface BrowserWalletSignAndSendTransactionParams extends SignAndSendTransactionParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -interface BrowserWalletSignAndSendTransactionsParams extends SignAndSendTransactionsParams { - /** - * Applicable to browser wallets (e.g. MyNearWallet). This the callback url once the transaction is approved. - */ - callbackUrl?: string; -} -export type BrowserWalletBehaviour = Modify>; - signAndSendTransaction(params: BrowserWalletSignAndSendTransactionParams): Promise; - signAndSendTransactions(params: BrowserWalletSignAndSendTransactionsParams): Promise; -}>; -export type BrowserWallet = BaseWallet<"browser", BrowserWalletMetadata, BrowserWalletBehaviour>; -export type InjectedWalletMetadata = BaseWalletMetadata & { - downloadUrl: string; - topLevelInjected?: boolean; - useUrlAccountImport?: boolean; -}; -export interface AccountImportData { - accountId: string; - privateKey: string; -} -export interface AccountImportSecureContextParams { - accounts: Array; -} -export type InjectedWalletBehaviour = Modify; -}>; -export type InjectedWallet = BaseWallet<"injected", InjectedWalletMetadata, InjectedWalletBehaviour>; -export type InstantLinkWalletMetadata = BaseWalletMetadata & { - contractId: string; - runOnStartup: boolean; -}; -export type InstantLinkWalletBehaviour = BaseWalletBehaviour & { - getContractId(): string; -}; -export type InstantLinkWallet = BaseWallet<"instant-link", InstantLinkWalletMetadata, InstantLinkWalletBehaviour>; -export type HardwareWalletMetadata = BaseWalletMetadata; -export interface HardwareWalletAccount { - derivationPath: string; - publicKey: string; - accountId: string; -} -export interface HardwareWalletSignInParams extends SignInParams { - /** - * Required for hardware wallets (e.g. Ledger). This is a list of `accounts` linked to public keys on your device. - */ - accounts: Array; -} -export type HardwareWalletBehaviour = Modify>; -}> & { - getPublicKey(derivationPath: string): Promise; -}; -export type HardwareWallet = BaseWallet<"hardware", HardwareWalletMetadata, HardwareWalletBehaviour>; -interface BridgeWalletSignInParams extends SignInParams { - /** - * Optional for bridge wallets (e.g Wallet Connect). - * This indicates whether to render QR Code in wallet selector modal or use the default vendor modal. - */ - qrCodeModal?: boolean; -} -export type BridgeWalletMetadata = BaseWalletMetadata; -export type BridgeWalletBehaviour = Modify>; -}>; -export type BridgeWallet = BaseWallet<"bridge", BridgeWalletMetadata, BridgeWalletBehaviour>; -export type WalletMetadata = BrowserWalletMetadata | InjectedWalletMetadata | InstantLinkWalletMetadata | HardwareWalletMetadata | BridgeWalletMetadata; -export type Wallet = BrowserWallet | InjectedWallet | InstantLinkWallet | HardwareWallet | BridgeWallet; -export type WalletType = Wallet["type"]; -interface WalletModuleOptions { - options: Options; -} -export interface WalletBehaviourOptions { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - options: Options; - store: ReadOnlyStore; - provider: ProviderService; - emitter: EventEmitterService; - logger: LoggerService; - storage: JsonStorageService; -} -export type WalletBehaviourFactory = (options: WalletBehaviourOptions & ExtraOptions) => Promise>; -export type WalletModule = { - id: Variation["id"]; - type: Variation["type"]; - metadata: Variation["metadata"]; - init(options: WalletBehaviourOptions): Promise>; -}; -export type WalletModuleFactory = (options: WalletModuleOptions) => Promise | null>; -export {}; -//# sourceMappingURL=wallet.types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet/wallet.types.d.ts.map b/packages/wallet-utils/dist/esm/core/src/lib/wallet/wallet.types.d.ts.map deleted file mode 100644 index c9ebc6eb8..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet/wallet.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet.types.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/lib/wallet/wallet.types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/core/src/lib/wallet/wallet.types.js b/packages/wallet-utils/dist/esm/core/src/lib/wallet/wallet.types.js deleted file mode 100644 index cb0ff5c3b..000000000 --- a/packages/wallet-utils/dist/esm/core/src/lib/wallet/wallet.types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/index.d.ts b/packages/wallet-utils/dist/esm/wallet-utils/src/index.d.ts deleted file mode 100644 index 9b70859cc..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { createAction, signTransactions } from "./lib/wallet-utils"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/index.d.ts.map b/packages/wallet-utils/dist/esm/wallet-utils/src/index.d.ts.map deleted file mode 100644 index 0f953dcab..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/index.js b/packages/wallet-utils/dist/esm/wallet-utils/src/index.js deleted file mode 100644 index 27b22f6ee..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/index.js +++ /dev/null @@ -1 +0,0 @@ -export { createAction, signTransactions } from "./lib/wallet-utils"; diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/create-action.d.ts b/packages/wallet-utils/dist/esm/wallet-utils/src/lib/create-action.d.ts deleted file mode 100644 index da65b4629..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/create-action.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as nearAPI from "near-api-js"; -import type { Action } from "@near-wallet-selector/core"; -export declare const createAction: (action: Action) => nearAPI.transactions.Action; -//# sourceMappingURL=create-action.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/create-action.d.ts.map b/packages/wallet-utils/dist/esm/wallet-utils/src/lib/create-action.d.ts.map deleted file mode 100644 index 7a0b17623..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/create-action.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"create-action.d.ts","sourceRoot":"","sources":["../../../../../src/lib/create-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAoB,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAgB3E,eAAO,MAAM,YAAY,WAAY,MAAM,gCAqD1C,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/create-action.js b/packages/wallet-utils/dist/esm/wallet-utils/src/lib/create-action.js deleted file mode 100644 index d49ee0465..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/create-action.js +++ /dev/null @@ -1,51 +0,0 @@ -import * as nearAPI from "near-api-js"; -const { transactions, utils } = nearAPI; -const getAccessKey = (permission) => { - if (permission === "FullAccess") { - return transactions.fullAccessKey(); - } - const { receiverId, methodNames = [] } = permission; - const allowance = permission.allowance - ? BigInt(permission.allowance) - : undefined; - return transactions.functionCallAccessKey(receiverId, methodNames, allowance); -}; -export const createAction = (action) => { - switch (action.type) { - case "CreateAccount": - return transactions.createAccount(); - case "DeployContract": { - const { code } = action.params; - return transactions.deployContract(code); - } - case "FunctionCall": { - const { methodName, args, gas, deposit } = action.params; - console.log('alohaws action', action); - return transactions.functionCall(methodName, args, BigInt(gas), BigInt(deposit)); - } - case "Transfer": { - const { deposit } = action.params; - return transactions.transfer(BigInt(deposit)); - } - case "Stake": { - const { stake, publicKey } = action.params; - return transactions.stake(BigInt(stake), utils.PublicKey.from(publicKey)); - } - case "AddKey": { - const { publicKey, accessKey } = action.params; - return transactions.addKey(utils.PublicKey.from(publicKey), - // TODO: Use accessKey.nonce? near-api-js seems to think 0 is fine? - getAccessKey(accessKey.permission)); - } - case "DeleteKey": { - const { publicKey } = action.params; - return transactions.deleteKey(utils.PublicKey.from(publicKey)); - } - case "DeleteAccount": { - const { beneficiaryId } = action.params; - return transactions.deleteAccount(beneficiaryId); - } - default: - throw new Error("Invalid action type"); - } -}; diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts b/packages/wallet-utils/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts deleted file mode 100644 index fd0b85445..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Signer } from "@near-js/signers"; -import type { SignedTransaction } from "@near-js/transactions"; -import type { Network, Transaction } from "@near-wallet-selector/core/src"; -export declare const signTransactions: (transactions: Array, signer: Signer, network: Network) => Promise; -//# sourceMappingURL=sign-transactions.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts.map b/packages/wallet-utils/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts.map deleted file mode 100644 index bdd8c1195..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/sign-transactions.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sign-transactions.d.ts","sourceRoot":"","sources":["../../../../../src/lib/sign-transactions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAIzE,eAAO,MAAM,gBAAgB,iBACb,KAAK,CAAC,WAAW,CAAC,UACxB,MAAM,WACL,OAAO,iCAoDjB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/sign-transactions.js b/packages/wallet-utils/dist/esm/wallet-utils/src/lib/sign-transactions.js deleted file mode 100644 index d7d30548c..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/sign-transactions.js +++ /dev/null @@ -1,34 +0,0 @@ -import { KeyType, PublicKey } from "@near-js/crypto"; -import { createTransaction, signTransaction } from "@near-js/transactions"; -import { baseDecode } from "@near-js/utils"; -// import * as nearAPI from "near-api-js"; -import { JsonRpcProvider } from "@near-js/providers"; -import { createAction } from "./create-action"; -export const signTransactions = async (transactions, signer, network) => { - const provider = new JsonRpcProvider({ - url: network.nodeUrl, - }); - const signedTransactions = []; - for (let i = 0; i < transactions.length; i++) { - const publicKey = await signer.getPublicKey(transactions[i].signerId, network.networkId); - const [block, accessKey] = await Promise.all([ - provider.block({ finality: "final" }), - provider.query({ - request_type: "view_access_key", - finality: "final", - account_id: transactions[i].signerId, - public_key: publicKey.toString(), - }), - ]); - const actions = transactions[i].actions.map((action) => createAction(action)); - const transaction = createTransaction(transactions[i].signerId, new PublicKey({ - keyType: KeyType.ED25519, - data: publicKey.data - }), - // PublicKey.from(publicKey.toString()), - transactions[i].receiverId, accessKey.nonce + i + 1, actions, baseDecode(block.header.hash)); - const response = await signTransaction(transaction, signer, transactions[i].signerId, network.networkId); - signedTransactions.push(response[1]); - } - return signedTransactions; -}; diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts b/packages/wallet-utils/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts deleted file mode 100644 index ca97d2268..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createAction } from "./create-action"; -import { signTransactions } from "./sign-transactions"; -export { createAction, signTransactions }; -//# sourceMappingURL=wallet-utils.d.ts.map \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts.map b/packages/wallet-utils/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts.map deleted file mode 100644 index ffc675757..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/wallet-utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"wallet-utils.d.ts","sourceRoot":"","sources":["../../../../../src/lib/wallet-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file diff --git a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/wallet-utils.js b/packages/wallet-utils/dist/esm/wallet-utils/src/lib/wallet-utils.js deleted file mode 100644 index d5a53e83f..000000000 --- a/packages/wallet-utils/dist/esm/wallet-utils/src/lib/wallet-utils.js +++ /dev/null @@ -1,3 +0,0 @@ -import { createAction } from "./create-action"; -import { signTransactions } from "./sign-transactions"; -export { createAction, signTransactions };