diff --git a/CHANGELOG.md b/CHANGELOG.md index d4ecf39..2270f54 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Grindery Wallet SDK Changelog +## v0.5.0 (2024-09-27) + +### Added + +- [`WalletAPI` class](https://grindery-io.github.io/grindery-wallet-sdk/classes/classes_WalletAPI.WalletAPI.html), a simple wrapper for Grindery Wallet API +- [`getUser` SDK method](https://github.com/grindery-io/grindery-wallet-sdk#getting-user-information), allowing to get information about connected Grindery user + +### Fixed + +- Pairing redirect [issue](https://github.com/grindery-io/grindery-wallet-sdk/issues/8) when SDK used in the Telegram Mini App + ## v0.4.2 (2024-08-03) - Added client events tracking diff --git a/README.md b/README.md index 1f1e668..5300ce8 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ The SDK enables your dapp to provide a seamless user experience for Grindery use - [Sending transactions](#sending-transactions) - [Signing](#signing) - [Chain switching](#chain-switching) + - [Getting user information](#getting-user-information) - [Advanced usage](#advanced-usage) - [Full documentation](#full-documentation) - [Injected Ethereum Provider](#injected-ethereum-provider) @@ -239,6 +240,16 @@ WalletSDK.on('accountsChanged', () => { }); ``` +## Getting user information + +To get information about connected Grindery Wallet User use [`getUser()`](https://grindery-io.github.io/grindery-wallet-sdk/classes/classes_WalletSDK.WalletSDK.html#getUser) method, once the wallet is connected: + +```typescript +WalletSDK.on('accountsChanged', async () => { + console.log('user', await WalletSDK.getUser()); +}); +``` + # Advanced usage ## Full documentation diff --git a/dist/classes/WalletAPI.d.ts b/dist/classes/WalletAPI.d.ts new file mode 100644 index 0000000..821a04a --- /dev/null +++ b/dist/classes/WalletAPI.d.ts @@ -0,0 +1,14 @@ +/** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ +export declare class WalletAPI { + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + sendApiRequest<T>(method: string, params?: object): Promise<T>; +} diff --git a/dist/classes/WalletSDK.d.ts b/dist/classes/WalletSDK.d.ts index cb907c0..59d43a8 100644 --- a/dist/classes/WalletSDK.d.ts +++ b/dist/classes/WalletSDK.d.ts @@ -1,6 +1,7 @@ import { ProviderEventName } from './EventEmitter'; import { Provider } from './Provider'; import { RpcRequestResults } from './Rpc'; +import { User } from '../utils/user'; export type WalletSDKConfig = { appId?: string; appUrl?: string; @@ -107,11 +108,23 @@ export declare class WalletSDK { * @returns {EventEmitter} The instance of the class itself */ removeListener(event: ProviderEventName, callback: Function): this; + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */ + getUser(): Promise<User>; /** * @summary SdkStorage class instance * @private */ private storage; + /** + * @summary The Grindery Wallet user + * @private + */ + private user; /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider diff --git a/dist/grindery-wallet-sdk.cjs.development.js b/dist/grindery-wallet-sdk.cjs.development.js index 6da6e1c..45a5eea 100644 --- a/dist/grindery-wallet-sdk.cjs.development.js +++ b/dist/grindery-wallet-sdk.cjs.development.js @@ -1070,8 +1070,8 @@ var Provider = /*#__PURE__*/function (_EventEmitter) { return _this.rpc.sendAndWaitRpcRequest(ProviderMethodNames.eth_accounts, params ? Array.isArray(params) ? params : [params] : []); case 3: result = _context3.sent; - _this.emit(ProviderEvents.accountsChanged, result); _this.storage.setValue(SdkStorageKeys.address, result[0] || ''); + _this.emit(ProviderEvents.accountsChanged, result); return _context3.abrupt("return", result); case 9: _context3.prev = 9; @@ -1416,6 +1416,78 @@ var ClientEventNames; ClientEventNames["walletAddressRequested"] = "walletAddressRequested"; })(ClientEventNames || (ClientEventNames = {})); +/** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ +var WalletAPI = /*#__PURE__*/function () { + function WalletAPI() {} + var _proto = WalletAPI.prototype; + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + _proto.sendApiRequest = + /*#__PURE__*/ + function () { + var _sendApiRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(method, params) { + var storage, sessionId, address, response, json; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + storage = new SdkStorage(); + sessionId = storage.getValue(SdkStorageKeys.sessionId); + address = storage.getValue(SdkStorageKeys.address); + if (!(!sessionId || !address)) { + _context.next = 5; + break; + } + throw new Error('Not connected to the wallet'); + case 5: + _context.next = 7; + return fetch("https://wallet-api.grindery.com/v3", { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: "Bearer " + address + ":" + sessionId + }, + body: JSON.stringify({ + jsonrpc: '2.0', + id: 1, + method: method, + params: params || {} + }) + }); + case 7: + response = _context.sent; + if (response.ok) { + _context.next = 10; + break; + } + throw new Error("Failed to call " + method); + case 10: + _context.next = 12; + return response.json(); + case 12: + json = _context.sent; + return _context.abrupt("return", json.result); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + })); + function sendApiRequest(_x, _x2) { + return _sendApiRequest.apply(this, arguments); + } + return sendApiRequest; + }(); + return WalletAPI; +}(); + /** * @summary The Wallet SDK class * @since 0.2.0 @@ -1432,6 +1504,11 @@ var WalletSDK = /*#__PURE__*/function () { * @private */ this.storage = new SdkStorage(); + /** + * @summary The Grindery Wallet user + * @private + */ + this.user = null; if (config != null && config.appId || config != null && config.appUrl) { window.Grindery = _extends({}, window.Grindery || {}, { appId: config == null ? void 0 : config.appId, @@ -1697,7 +1774,50 @@ var WalletSDK = /*#__PURE__*/function () { _proto.removeListener = function removeListener(event, callback) { this.provider.removeListener(event, callback); return this; - }; + } + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */; + _proto.getUser = + /*#__PURE__*/ + function () { + var _getUser = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() { + var api; + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (this.user) { + _context7.next = 11; + break; + } + api = new WalletAPI(); + _context7.prev = 2; + _context7.next = 5; + return api.sendApiRequest('gw_getMe'); + case 5: + this.user = _context7.sent; + _context7.next = 11; + break; + case 8: + _context7.prev = 8; + _context7.t0 = _context7["catch"](2); + throw new Error(_context7.t0 instanceof Error ? _context7.t0.message : 'Failed to fetch user information'); + case 11: + return _context7.abrupt("return", this.user); + case 12: + case "end": + return _context7.stop(); + } + }, _callee7, this, [[2, 8]]); + })); + function getUser() { + return _getUser.apply(this, arguments); + } + return getUser; + }(); /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider @@ -1724,11 +1844,12 @@ var WalletSDK = /*#__PURE__*/function () { _proto.handlePairing = function handlePairing(_ref) { var _window$Telegram; var shortToken = _ref.shortToken, + connectUrl = _ref.connectUrl, connectUrlBrowser = _ref.connectUrlBrowser; var WebApp = (_window$Telegram = window.Telegram) == null ? void 0 : _window$Telegram.WebApp; - var redirectUrl = "https://walletconnect.grindery.com/connect/wc?uri=" + shortToken; - if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown') { - WebApp.openTelegramLink(connectUrlBrowser); + var redirectUrl = connectUrlBrowser || "https://www.grindery.com/connect/wc?uri=" + shortToken; + if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown' && connectUrl) { + WebApp.openTelegramLink(connectUrl); } else { window.open(redirectUrl, '_blank'); } @@ -1743,18 +1864,18 @@ var WalletSDK = /*#__PURE__*/function () { _proto.trackClientEvent = /*#__PURE__*/ function () { - var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(name, data) { + var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(name, data) { var _window$Grindery, _window$Telegram2; var appUrl, appId, userTelegramId, _window$Telegram3, _window$Telegram4, _window$Telegram5, rpc; - return _regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: appUrl = ((_window$Grindery = window.Grindery) == null ? void 0 : _window$Grindery.appUrl) || window.location.origin; appId = getAppId(); userTelegramId = (_window$Telegram2 = window.Telegram) == null || (_window$Telegram2 = _window$Telegram2.WebApp) == null || (_window$Telegram2 = _window$Telegram2.initDataUnsafe) == null || (_window$Telegram2 = _window$Telegram2.user) == null ? void 0 : _window$Telegram2.id; - _context7.prev = 3; + _context8.prev = 3; rpc = new Rpc(); - _context7.next = 7; + _context8.next = 7; return rpc.sendRpcApiRequest(RpcMethodNames.trackClientEvent, { name: name, appUrl: appUrl, @@ -1771,16 +1892,16 @@ var WalletSDK = /*#__PURE__*/function () { }) }); case 7: - _context7.next = 11; + _context8.next = 11; break; case 9: - _context7.prev = 9; - _context7.t0 = _context7["catch"](3); + _context8.prev = 9; + _context8.t0 = _context8["catch"](3); case 11: case "end": - return _context7.stop(); + return _context8.stop(); } - }, _callee7, this, [[3, 9]]); + }, _callee8, this, [[3, 9]]); })); function trackClientEvent(_x5, _x6) { return _trackClientEvent.apply(this, arguments); diff --git a/dist/grindery-wallet-sdk.cjs.development.js.map b/dist/grindery-wallet-sdk.cjs.development.js.map index 861b565..416e460 100644 --- a/dist/grindery-wallet-sdk.cjs.development.js.map +++ b/dist/grindery-wallet-sdk.cjs.development.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.cjs.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","accountsChanged","address","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.cjs.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","address","accountsChanged","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file diff --git a/dist/grindery-wallet-sdk.cjs.production.min.js b/dist/grindery-wallet-sdk.cjs.production.min.js index cd31c84..fa826ad 100644 --- a/dist/grindery-wallet-sdk.cjs.production.min.js +++ b/dist/grindery-wallet-sdk.cjs.production.min.js @@ -1,2 +1,2 @@ -"use strict";function e(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(e=function(){return!!t})()}function t(){t=function(){return n};var e,n={},r=Object.prototype,i=r.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new O(r||[]);return o(i,"_invoke",{value:k(e,n,a)}),i}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}n.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function N(){}function m(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==r&&i.call(D,s)&&(I=D);var j=m.prototype=y.prototype=Object.create(I);function T(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function n(r,o,a,s){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var r;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}})}function k(t,n,r){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(r.method=o,r.arg=a;;){var s=r.delegate;if(s){var c=A(s,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===d)throw i=w,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=h(t,n,r);if("normal"===u.type){if(i=r.done?w:f,u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=w,r.method="throw",r.arg=u.arg)}}}function A(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,A(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=h(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var a=o.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function U(t){if(t||""===t){var n=t[s];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function n(){for(;++r<t.length;)if(i.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return N.prototype=m,o(j,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:N,configurable:!0}),N.displayName=p(m,u,"GeneratorFunction"),n.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===N||"GeneratorFunction"===(t.displayName||t.name))},n.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},n.awrap=function(e){return{__await:e}},T(x.prototype),p(x.prototype,c,(function(){return this})),n.AsyncIterator=x,n.async=function(e,t,r,i,o){void 0===o&&(o=Promise);var a=new x(l(e,t,r,i),o);return n.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},T(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),n.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},n.values=U,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(L),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,i){return s.type="throw",s.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;L(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:U(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},n}function n(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function r(e){return function(){var t=this,r=arguments;return new Promise((function(i,o){var a=e.apply(t,r);function s(e){n(a,i,o,s,c,"next",e)}function c(e){n(a,i,o,s,c,"throw",e)}s(void 0)}))}}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s(e,t)}function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function c(t){var n="function"==typeof Map?new Map:void 0;return c=function(t){if(null===t||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,r)}function r(){return function(t,n,r){if(e())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(t.bind.apply(t,i));return r&&s(o,r.prototype),o}(t,arguments,a(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),s(r,t)},c(t)}var u;Object.defineProperty(exports,"__esModule",{value:!0}),function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(u||(u={}));var p,l=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var n=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,n)}return this},t.emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,n[0]),this.events.get(e).forEach((function(e){e.apply(void 0,n)}))),this},e}(),h=function(){for(var e,t="",n=document.querySelectorAll("[data-app-id]"),r=0;r<n.length;r++){var i=n[r],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},d=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},f={uuid:d(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},g=function(e){function t(t,n,r){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=n,i.data=r,i}return o(t,e),t}(c(Error)),w={PairingFailed:new g("Pairing failed",4900),Disconnected:new g("Disconnected",4900),UnsupportedMethod:new g("Unsupported Method",4200),Unauthorized:new g("Unauthorized",4100),NoResult:new g("No result",4900),NoAppId:new g("App ID is required",4900),UserRejected:new g("User Rejected Request",4001),ChainDisconnected:new g("Chain Disconnected",4901)},v=function(e){return e instanceof g?new g(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new g(e.message||"Unknown error",4900,e):new g("Unknown error",4900,e)},y=["eip155:137","eip155:56","eip155:204"],N=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},m=function(e){return"eip155:"+parseInt(e,16)},I="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(p||(p={}));var M,D=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var n=this.getSnapshot();return n[e]=t,this.saveSnapshot(n),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||d(),chainId:this.getSnapshot().chainId||y[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(I)||"{}")}catch(e){throw localStorage.setItem(I,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(I,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(M||(M={}));var j,T=function(){function e(){}var n=e.prototype;return n.sendAndWaitRpcRequest=function(){var e=r(t().mark((function e(n,r,i){var o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(n,r);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.sendRpcRequest=function(){var e=r(t().mark((function e(n,r){var i;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new D,e.next=3,this.sendRpcApiRequest(M.request,{sessionId:i.getValue(p.sessionId),scope:i.getValue(p.chainId),request:{method:n,params:r}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.waitRpcRequest=function(){var e=r(t().mark((function e(n,r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(M.waitForRequestResult,{requestToken:n,timeout:r});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.sendRpcApiRequest=function(){var e=r(t().mark((function e(n,r){var i,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+n,params:r||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new g(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw w.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new g(e.t0.message,500,e.t0);case 18:throw new g("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,n){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(j||(j={}));var x,k=function(e){function n(){var n,i,o,a,s,c,l,d,f;return(i=e.call(this)||this).isGrinderyWallet=!0,i.storage=new D,i.rpc=new T,i.switchChain=function(){var e=r(t().mark((function e(n){var r,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=m(r=n.chainId),y.includes(o)){e.next=4;break}throw v(w.ChainDisconnected);case 4:return i.storage.setValue(p.chainId,o),i.emit(u.chainChanged,{chainId:r}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),i.methods=((n={})[j.eth_requestAccounts]=(f=r(t().mark((function e(n){var r,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!i.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,i.request({method:j.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),i.storage.setValue(p.sessionId,"");case 10:if(!i.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:i.storage.getValue(p.pairingToken)});case 14:if(r=e.sent,i.storage.clear(),i.storage.setValue(p.sessionId,r.session.sessionId),r.session.sessionId){e.next=19;break}throw w.PairingFailed;case 19:return e.next=21,i.request({method:j.eth_accounts,params:n||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),i.storage.clear();case 27:return e.prev=27,i.storage.clear(),e.next=31,i.rpc.sendRpcApiRequest(M.requestPairing,{appId:h(),clientId:i.storage.getValue(p.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw w.PairingFailed;case 34:return i.storage.setValue(p.pairingToken,o.pairingToken),i.storage.setValue(p.connectUrl,o.connectUrl),i.storage.setValue(p.connectUrlBrowser,o.connectUrlBrowser),i.storage.setValue(p.shortToken,o.shortToken),i.emit(u.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(i.storage.setValue(p.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw w.PairingFailed;case 45:return i.storage.setValue(p.pairingToken,""),i.storage.setValue(p.connectUrl,""),i.storage.setValue(p.connectUrlBrowser,""),i.storage.setValue(p.shortToken,""),e.next=51,i.request({method:j.eth_accounts,params:n||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),n[j.eth_accounts]=(d=r(t().mark((function e(n){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendAndWaitRpcRequest(j.eth_accounts,n?Array.isArray(n)?n:[n]:[]);case 3:return i.emit(u.accountsChanged,r=e.sent),i.storage.setValue(p.address,r[0]||""),e.abrupt("return",r);case 9:throw e.prev=9,e.t0=e.catch(0),v(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return d.apply(this,arguments)}),n[j.eth_sendTransaction]=(l=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.eth_sendTransaction,n?Array.isArray(n)?n:[n]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return l.apply(this,arguments)}),n[j.personal_sign]=(c=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.personal_sign,n?Array.isArray(n)?n:[n]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),n[j.gws_disconnect]=r(t().mark((function e(){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendRpcApiRequest(M.disconnect,{sessionToken:i.storage.getValue(p.sessionId)});case 3:return n=e.sent,i.emit(u.disconnect,w.Disconnected),e.abrupt("return",n);case 8:throw e.prev=8,e.t0=e.catch(0),v(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),n[j.eth_chainId]=(s=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",N(i.storage.getValue(p.chainId)||y[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),n[j.wallet_addEthereumChain]=(a=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw v(w.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),n[j.wallet_switchEthereumChain]=(o=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.switchChain(n);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),n),i.injectProvider(),i.listenForRequestProviderEvents(),i.announceProvider(),window.addEventListener("load",(function(){i.emit(u.connect,{chainId:N(i.storage.getValue(p.chainId)||y[0])}),i.restorePairing(),i.restoreSession()})),i}o(n,e);var i=n.prototype;return i.isConnected=function(){return!0},i.request=function(){var e=r(t().mark((function e(n){var r,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.method,a=n.params,e.next=3,null==(r=(i=this.methods)[o])?void 0:r.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),i.restorePairing=function(){var e=r(t().mark((function e(){var n,r,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.storage.getValue(p.pairingToken),r=this.storage.getValue(p.sessionId),!n||r){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:n});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(p.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw w.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(p.address,a[0]||""),this.emit(u.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),i.restoreSession=function(){var e=r(t().mark((function e(){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.storage.getValue(p.pairingToken),!this.storage.getValue(p.sessionId)||n){e.next=11;break}return e.prev=3,e.next=6,this.request({method:j.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),i.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},i.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:f,provider:this})}))},i.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},n}(l);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(x||(x={}));var A,b=function(){function e(e){this.provider=void 0,this.storage=new D,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=i({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(p.chainId,this.storage.getValue(p.chainId)||y[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(u.pair,this.handlePairing)}var n=e.prototype;return n.isConnected=function(){return this.provider.isConnected()},n.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(p.pairingToken)&&!this.storage.getValue(p.sessionId)},n.connect=function(){var e=r(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.disconnect=function(){var e=r(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.sendTransaction=function(){var e=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_sendTransaction,params:[n]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.signMessage=function(){var e=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.personal_sign,params:[n,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.switchChain=function(){var e=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.wallet_switchEthereumChain,params:{chainId:N(n)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.getChain=function(){return this.storage.getValue(p.chainId)||y[0]},n.getUserWalletAddress=function(){var e=r(t().mark((function e(n){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new T,this.trackClientEvent(x.walletAddressRequested,{userId:n}),e.next=4,r.sendRpcApiRequest(M.getUserWalletAddress,{appId:h(),userId:n});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.on=function(e,t){return this.provider.on(e,t),this},n.removeListener=function(e,t){return this.provider.removeListener(e,t),this},n.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof k&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof k&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new k),t},n.handlePairing=function(e){var t,n=null==(t=window.Telegram)?void 0:t.WebApp,r="https://walletconnect.grindery.com/connect/wc?uri="+e.shortToken;n&&n.openTelegramLink&&n.platform&&"unknown"!==n.platform?n.openTelegramLink(e.connectUrlBrowser):window.open(r,"_blank")},n.trackClientEvent=function(){var e=r(t().mark((function e(n,r){var o,a,s,c,u,l,d,f,g;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(o=window.Grindery)?void 0:o.appUrl)||window.location.origin,c=h(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new T,e.next=7,g.sendRpcApiRequest(M.trackClientEvent,{name:n,appUrl:s,userTelegramId:u,data:i({},r||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(p.sessionId),clientId:this.storage.getValue(p.clientId),isMiniApp:Boolean(null==(l=window.Telegram)?void 0:l.initDataUnsafe),miniAppPlatform:null==(d=window.Telegram)||null==(d=d.WebApp)?void 0:d.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,n){return e.apply(this,arguments)}}(),n.initTracking=function(){var e=this;this.trackClientEvent(x.appOpened),this.on(u.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(x.walletConnected,{wallets:t})})),this.on(u.disconnect,(function(){e.trackClientEvent(x.walletDisconnected)}))},e}(),L=b;null!=(A=window.Grindery)&&A.WalletSDK&&window.Grindery.WalletSDK instanceof b||(window.Grindery=i({},window.Grindery||{},{WalletSDK:new b})),exports.GrinderyWalletSDK=L; +"use strict";function e(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(e=function(){return!!t})()}function t(){t=function(){return r};var e,r={},n=Object.prototype,i=n.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,r){return e[t]=r}}function l(e,t,r,n){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new L(n||[]);return o(i,"_invoke",{value:T(e,r,a)}),i}function h(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}r.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function N(){}function m(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==n&&i.call(D,s)&&(I=D);var j=m.prototype=y.prototype=Object.create(I);function x(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function r(n,o,a,s){var c=h(e[n],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return r("throw",e,a,s)}))}s(c.arg)}var n;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,n){r(e,i,t,n)}))}return n=n?n.then(o,o):o()}})}function T(t,r,n){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(n.method=o,n.arg=a;;){var s=n.delegate;if(s){var c=A(s,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===d)throw i=w,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=g;var u=h(t,r,n);if("normal"===u.type){if(i=n.done?w:f,u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(i=w,n.method="throw",n.arg=u.arg)}}}function A(t,r){var n=r.method,i=t.iterator[n];if(i===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,A(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var o=h(i,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var a=o.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function U(t){if(t||""===t){var r=t[s];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function r(){for(;++n<t.length;)if(i.call(t,n))return r.value=t[n],r.done=!1,r;return r.value=e,r.done=!0,r};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return N.prototype=m,o(j,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:N,configurable:!0}),N.displayName=p(m,u,"GeneratorFunction"),r.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===N||"GeneratorFunction"===(t.displayName||t.name))},r.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},r.awrap=function(e){return{__await:e}},x(k.prototype),p(k.prototype,c,(function(){return this})),r.AsyncIterator=k,r.async=function(e,t,n,i,o){void 0===o&&(o=Promise);var a=new k(l(e,t,n,i),o);return r.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),r.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},r.values=U,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var r in this)"t"===r.charAt(0)&&i.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function n(n,i){return s.type="throw",s.arg=t,r.next=n,i&&(r.method="next",r.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;O(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:U(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},r}function r(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function n(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,c,"next",e)}function c(e){r(a,i,o,s,c,"throw",e)}s(void 0)}))}}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},i.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s(e,t)}function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function c(t){var r="function"==typeof Map?new Map:void 0;return c=function(t){if(null===t||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,n)}function n(){return function(t,r,n){if(e())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,r);var o=new(t.bind.apply(t,i));return n&&s(o,n.prototype),o}(t,arguments,a(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),s(n,t)},c(t)}var u;Object.defineProperty(exports,"__esModule",{value:!0}),function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(u||(u={}));var p,l=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var r=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,r)}return this},t.emit=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,r[0]),this.events.get(e).forEach((function(e){e.apply(void 0,r)}))),this},e}(),h=function(){for(var e,t="",r=document.querySelectorAll("[data-app-id]"),n=0;n<r.length;n++){var i=r[n],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},d=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},f={uuid:d(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},g=function(e){function t(t,r,n){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=r,i.data=n,i}return o(t,e),t}(c(Error)),w={PairingFailed:new g("Pairing failed",4900),Disconnected:new g("Disconnected",4900),UnsupportedMethod:new g("Unsupported Method",4200),Unauthorized:new g("Unauthorized",4100),NoResult:new g("No result",4900),NoAppId:new g("App ID is required",4900),UserRejected:new g("User Rejected Request",4001),ChainDisconnected:new g("Chain Disconnected",4901)},v=function(e){return e instanceof g?new g(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new g(e.message||"Unknown error",4900,e):new g("Unknown error",4900,e)},y=["eip155:137","eip155:56","eip155:204"],N=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},m=function(e){return"eip155:"+parseInt(e,16)},I="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(p||(p={}));var M,D=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var r=this.getSnapshot();return r[e]=t,this.saveSnapshot(r),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||d(),chainId:this.getSnapshot().chainId||y[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(I)||"{}")}catch(e){throw localStorage.setItem(I,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(I,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(M||(M={}));var j,x=function(){function e(){}var r=e.prototype;return r.sendAndWaitRpcRequest=function(){var e=n(t().mark((function e(r,n,i){var o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(r,n);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.sendRpcRequest=function(){var e=n(t().mark((function e(r,n){var i;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new D,e.next=3,this.sendRpcApiRequest(M.request,{sessionId:i.getValue(p.sessionId),scope:i.getValue(p.chainId),request:{method:r,params:n}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.waitRpcRequest=function(){var e=n(t().mark((function e(r,n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(M.waitForRequestResult,{requestToken:r,timeout:n});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.sendRpcApiRequest=function(){var e=n(t().mark((function e(r,n){var i,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+r,params:n||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new g(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw w.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new g(e.t0.message,500,e.t0);case 18:throw new g("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,r){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(j||(j={}));var k,T=function(e){function r(){var r,i,o,a,s,c,l,d,f;return(i=e.call(this)||this).isGrinderyWallet=!0,i.storage=new D,i.rpc=new x,i.switchChain=function(){var e=n(t().mark((function e(r){var n,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=m(n=r.chainId),y.includes(o)){e.next=4;break}throw v(w.ChainDisconnected);case 4:return i.storage.setValue(p.chainId,o),i.emit(u.chainChanged,{chainId:n}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),i.methods=((r={})[j.eth_requestAccounts]=(f=n(t().mark((function e(r){var n,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!i.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,i.request({method:j.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),i.storage.setValue(p.sessionId,"");case 10:if(!i.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:i.storage.getValue(p.pairingToken)});case 14:if(n=e.sent,i.storage.clear(),i.storage.setValue(p.sessionId,n.session.sessionId),n.session.sessionId){e.next=19;break}throw w.PairingFailed;case 19:return e.next=21,i.request({method:j.eth_accounts,params:r||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),i.storage.clear();case 27:return e.prev=27,i.storage.clear(),e.next=31,i.rpc.sendRpcApiRequest(M.requestPairing,{appId:h(),clientId:i.storage.getValue(p.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw w.PairingFailed;case 34:return i.storage.setValue(p.pairingToken,o.pairingToken),i.storage.setValue(p.connectUrl,o.connectUrl),i.storage.setValue(p.connectUrlBrowser,o.connectUrlBrowser),i.storage.setValue(p.shortToken,o.shortToken),i.emit(u.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(i.storage.setValue(p.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw w.PairingFailed;case 45:return i.storage.setValue(p.pairingToken,""),i.storage.setValue(p.connectUrl,""),i.storage.setValue(p.connectUrlBrowser,""),i.storage.setValue(p.shortToken,""),e.next=51,i.request({method:j.eth_accounts,params:r||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),r[j.eth_accounts]=(d=n(t().mark((function e(r){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendAndWaitRpcRequest(j.eth_accounts,r?Array.isArray(r)?r:[r]:[]);case 3:return i.storage.setValue(p.address,(n=e.sent)[0]||""),i.emit(u.accountsChanged,n),e.abrupt("return",n);case 9:throw e.prev=9,e.t0=e.catch(0),v(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return d.apply(this,arguments)}),r[j.eth_sendTransaction]=(l=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.eth_sendTransaction,r?Array.isArray(r)?r:[r]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return l.apply(this,arguments)}),r[j.personal_sign]=(c=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.personal_sign,r?Array.isArray(r)?r:[r]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),r[j.gws_disconnect]=n(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendRpcApiRequest(M.disconnect,{sessionToken:i.storage.getValue(p.sessionId)});case 3:return r=e.sent,i.emit(u.disconnect,w.Disconnected),e.abrupt("return",r);case 8:throw e.prev=8,e.t0=e.catch(0),v(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),r[j.eth_chainId]=(s=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",N(i.storage.getValue(p.chainId)||y[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),r[j.wallet_addEthereumChain]=(a=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw v(w.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),r[j.wallet_switchEthereumChain]=(o=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.switchChain(r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),r),i.injectProvider(),i.listenForRequestProviderEvents(),i.announceProvider(),window.addEventListener("load",(function(){i.emit(u.connect,{chainId:N(i.storage.getValue(p.chainId)||y[0])}),i.restorePairing(),i.restoreSession()})),i}o(r,e);var i=r.prototype;return i.isConnected=function(){return!0},i.request=function(){var e=n(t().mark((function e(r){var n,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.method,a=r.params,e.next=3,null==(n=(i=this.methods)[o])?void 0:n.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),i.restorePairing=function(){var e=n(t().mark((function e(){var r,n,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.storage.getValue(p.pairingToken),n=this.storage.getValue(p.sessionId),!r||n){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:r});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(p.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw w.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(p.address,a[0]||""),this.emit(u.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),i.restoreSession=function(){var e=n(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.storage.getValue(p.pairingToken),!this.storage.getValue(p.sessionId)||r){e.next=11;break}return e.prev=3,e.next=6,this.request({method:j.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),i.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},i.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:f,provider:this})}))},i.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},r}(l);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(k||(k={}));var A,b=function(){function e(){}return e.prototype.sendApiRequest=function(){var e=n(t().mark((function e(r,n){var i,o,a,s;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=new D,o=i.getValue(p.sessionId),a=i.getValue(p.address),o&&a){e.next=5;break}throw new Error("Not connected to the wallet");case 5:return e.next=7,fetch("https://wallet-api.grindery.com/v3",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+a+":"+o},body:JSON.stringify({jsonrpc:"2.0",id:1,method:r,params:n||{}})});case 7:if((s=e.sent).ok){e.next=10;break}throw new Error("Failed to call "+r);case 10:return e.next=12,s.json();case 12:return e.abrupt("return",e.sent.result);case 14:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),e}(),O=function(){function e(e){this.provider=void 0,this.storage=new D,this.user=null,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=i({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(p.chainId,this.storage.getValue(p.chainId)||y[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(u.pair,this.handlePairing)}var r=e.prototype;return r.isConnected=function(){return this.provider.isConnected()},r.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(p.pairingToken)&&!this.storage.getValue(p.sessionId)},r.connect=function(){var e=n(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.disconnect=function(){var e=n(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.sendTransaction=function(){var e=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_sendTransaction,params:[r]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.signMessage=function(){var e=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.personal_sign,params:[r,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.switchChain=function(){var e=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.wallet_switchEthereumChain,params:{chainId:N(r)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getChain=function(){return this.storage.getValue(p.chainId)||y[0]},r.getUserWalletAddress=function(){var e=n(t().mark((function e(r){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=new x,this.trackClientEvent(k.walletAddressRequested,{userId:r}),e.next=4,n.sendRpcApiRequest(M.getUserWalletAddress,{appId:h(),userId:r});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.on=function(e,t){return this.provider.on(e,t),this},r.removeListener=function(e,t){return this.provider.removeListener(e,t),this},r.getUser=function(){var e=n(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.user){e.next=11;break}return r=new b,e.prev=2,e.next=5,r.sendApiRequest("gw_getMe");case 5:this.user=e.sent,e.next=11;break;case 8:throw e.prev=8,e.t0=e.catch(2),new Error(e.t0 instanceof Error?e.t0.message:"Failed to fetch user information");case 11:return e.abrupt("return",this.user);case 12:case"end":return e.stop()}}),e,this,[[2,8]])})));return function(){return e.apply(this,arguments)}}(),r.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof T&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof T&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new T),t},r.handlePairing=function(e){var t,r=e.connectUrl,n=null==(t=window.Telegram)?void 0:t.WebApp,i=e.connectUrlBrowser||"https://www.grindery.com/connect/wc?uri="+e.shortToken;n&&n.openTelegramLink&&n.platform&&"unknown"!==n.platform&&r?n.openTelegramLink(r):window.open(i,"_blank")},r.trackClientEvent=function(){var e=n(t().mark((function e(r,n){var o,a,s,c,u,l,d,f,g;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(o=window.Grindery)?void 0:o.appUrl)||window.location.origin,c=h(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new x,e.next=7,g.sendRpcApiRequest(M.trackClientEvent,{name:r,appUrl:s,userTelegramId:u,data:i({},n||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(p.sessionId),clientId:this.storage.getValue(p.clientId),isMiniApp:Boolean(null==(l=window.Telegram)?void 0:l.initDataUnsafe),miniAppPlatform:null==(d=window.Telegram)||null==(d=d.WebApp)?void 0:d.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,r){return e.apply(this,arguments)}}(),r.initTracking=function(){var e=this;this.trackClientEvent(k.appOpened),this.on(u.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(k.walletConnected,{wallets:t})})),this.on(u.disconnect,(function(){e.trackClientEvent(k.walletDisconnected)}))},e}(),L=O;null!=(A=window.Grindery)&&A.WalletSDK&&window.Grindery.WalletSDK instanceof O||(window.Grindery=i({},window.Grindery||{},{WalletSDK:new O})),exports.GrinderyWalletSDK=L; //# sourceMappingURL=grindery-wallet-sdk.cjs.production.min.js.map diff --git a/dist/grindery-wallet-sdk.cjs.production.min.js.map b/dist/grindery-wallet-sdk.cjs.production.min.js.map index 746f52c..62f2988 100644 --- a/dist/grindery-wallet-sdk.cjs.production.min.js.map +++ b/dist/grindery-wallet-sdk.cjs.production.min.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.cjs.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","accountsChanged","address","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.cjs.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/index.ts","../src/classes/WalletSDK.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","address","accountsChanged","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file diff --git a/dist/grindery-wallet-sdk.esm.js b/dist/grindery-wallet-sdk.esm.js index 494d15e..4b1eace 100644 --- a/dist/grindery-wallet-sdk.esm.js +++ b/dist/grindery-wallet-sdk.esm.js @@ -1066,8 +1066,8 @@ var Provider = /*#__PURE__*/function (_EventEmitter) { return _this.rpc.sendAndWaitRpcRequest(ProviderMethodNames.eth_accounts, params ? Array.isArray(params) ? params : [params] : []); case 3: result = _context3.sent; - _this.emit(ProviderEvents.accountsChanged, result); _this.storage.setValue(SdkStorageKeys.address, result[0] || ''); + _this.emit(ProviderEvents.accountsChanged, result); return _context3.abrupt("return", result); case 9: _context3.prev = 9; @@ -1412,6 +1412,78 @@ var ClientEventNames; ClientEventNames["walletAddressRequested"] = "walletAddressRequested"; })(ClientEventNames || (ClientEventNames = {})); +/** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ +var WalletAPI = /*#__PURE__*/function () { + function WalletAPI() {} + var _proto = WalletAPI.prototype; + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + _proto.sendApiRequest = + /*#__PURE__*/ + function () { + var _sendApiRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(method, params) { + var storage, sessionId, address, response, json; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + storage = new SdkStorage(); + sessionId = storage.getValue(SdkStorageKeys.sessionId); + address = storage.getValue(SdkStorageKeys.address); + if (!(!sessionId || !address)) { + _context.next = 5; + break; + } + throw new Error('Not connected to the wallet'); + case 5: + _context.next = 7; + return fetch("https://wallet-api.grindery.com/v3", { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: "Bearer " + address + ":" + sessionId + }, + body: JSON.stringify({ + jsonrpc: '2.0', + id: 1, + method: method, + params: params || {} + }) + }); + case 7: + response = _context.sent; + if (response.ok) { + _context.next = 10; + break; + } + throw new Error("Failed to call " + method); + case 10: + _context.next = 12; + return response.json(); + case 12: + json = _context.sent; + return _context.abrupt("return", json.result); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + })); + function sendApiRequest(_x, _x2) { + return _sendApiRequest.apply(this, arguments); + } + return sendApiRequest; + }(); + return WalletAPI; +}(); + /** * @summary The Wallet SDK class * @since 0.2.0 @@ -1428,6 +1500,11 @@ var WalletSDK = /*#__PURE__*/function () { * @private */ this.storage = new SdkStorage(); + /** + * @summary The Grindery Wallet user + * @private + */ + this.user = null; if (config != null && config.appId || config != null && config.appUrl) { window.Grindery = _extends({}, window.Grindery || {}, { appId: config == null ? void 0 : config.appId, @@ -1693,7 +1770,50 @@ var WalletSDK = /*#__PURE__*/function () { _proto.removeListener = function removeListener(event, callback) { this.provider.removeListener(event, callback); return this; - }; + } + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */; + _proto.getUser = + /*#__PURE__*/ + function () { + var _getUser = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() { + var api; + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (this.user) { + _context7.next = 11; + break; + } + api = new WalletAPI(); + _context7.prev = 2; + _context7.next = 5; + return api.sendApiRequest('gw_getMe'); + case 5: + this.user = _context7.sent; + _context7.next = 11; + break; + case 8: + _context7.prev = 8; + _context7.t0 = _context7["catch"](2); + throw new Error(_context7.t0 instanceof Error ? _context7.t0.message : 'Failed to fetch user information'); + case 11: + return _context7.abrupt("return", this.user); + case 12: + case "end": + return _context7.stop(); + } + }, _callee7, this, [[2, 8]]); + })); + function getUser() { + return _getUser.apply(this, arguments); + } + return getUser; + }(); /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider @@ -1720,11 +1840,12 @@ var WalletSDK = /*#__PURE__*/function () { _proto.handlePairing = function handlePairing(_ref) { var _window$Telegram; var shortToken = _ref.shortToken, + connectUrl = _ref.connectUrl, connectUrlBrowser = _ref.connectUrlBrowser; var WebApp = (_window$Telegram = window.Telegram) == null ? void 0 : _window$Telegram.WebApp; - var redirectUrl = "https://walletconnect.grindery.com/connect/wc?uri=" + shortToken; - if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown') { - WebApp.openTelegramLink(connectUrlBrowser); + var redirectUrl = connectUrlBrowser || "https://www.grindery.com/connect/wc?uri=" + shortToken; + if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown' && connectUrl) { + WebApp.openTelegramLink(connectUrl); } else { window.open(redirectUrl, '_blank'); } @@ -1739,18 +1860,18 @@ var WalletSDK = /*#__PURE__*/function () { _proto.trackClientEvent = /*#__PURE__*/ function () { - var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(name, data) { + var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(name, data) { var _window$Grindery, _window$Telegram2; var appUrl, appId, userTelegramId, _window$Telegram3, _window$Telegram4, _window$Telegram5, rpc; - return _regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: appUrl = ((_window$Grindery = window.Grindery) == null ? void 0 : _window$Grindery.appUrl) || window.location.origin; appId = getAppId(); userTelegramId = (_window$Telegram2 = window.Telegram) == null || (_window$Telegram2 = _window$Telegram2.WebApp) == null || (_window$Telegram2 = _window$Telegram2.initDataUnsafe) == null || (_window$Telegram2 = _window$Telegram2.user) == null ? void 0 : _window$Telegram2.id; - _context7.prev = 3; + _context8.prev = 3; rpc = new Rpc(); - _context7.next = 7; + _context8.next = 7; return rpc.sendRpcApiRequest(RpcMethodNames.trackClientEvent, { name: name, appUrl: appUrl, @@ -1767,16 +1888,16 @@ var WalletSDK = /*#__PURE__*/function () { }) }); case 7: - _context7.next = 11; + _context8.next = 11; break; case 9: - _context7.prev = 9; - _context7.t0 = _context7["catch"](3); + _context8.prev = 9; + _context8.t0 = _context8["catch"](3); case 11: case "end": - return _context7.stop(); + return _context8.stop(); } - }, _callee7, this, [[3, 9]]); + }, _callee8, this, [[3, 9]]); })); function trackClientEvent(_x5, _x6) { return _trackClientEvent.apply(this, arguments); diff --git a/dist/grindery-wallet-sdk.esm.js.map b/dist/grindery-wallet-sdk.esm.js.map index 51e8d36..7a5aba6 100644 --- a/dist/grindery-wallet-sdk.esm.js.map +++ b/dist/grindery-wallet-sdk.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.esm.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","accountsChanged","address","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.esm.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","address","accountsChanged","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file diff --git a/dist/grindery-wallet-sdk.umd.development.js b/dist/grindery-wallet-sdk.umd.development.js index 8cca20a..c055f93 100644 --- a/dist/grindery-wallet-sdk.umd.development.js +++ b/dist/grindery-wallet-sdk.umd.development.js @@ -1072,8 +1072,8 @@ return _this.rpc.sendAndWaitRpcRequest(ProviderMethodNames.eth_accounts, params ? Array.isArray(params) ? params : [params] : []); case 3: result = _context3.sent; - _this.emit(ProviderEvents.accountsChanged, result); _this.storage.setValue(SdkStorageKeys.address, result[0] || ''); + _this.emit(ProviderEvents.accountsChanged, result); return _context3.abrupt("return", result); case 9: _context3.prev = 9; @@ -1418,6 +1418,78 @@ ClientEventNames["walletAddressRequested"] = "walletAddressRequested"; })(ClientEventNames || (ClientEventNames = {})); + /** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ + var WalletAPI = /*#__PURE__*/function () { + function WalletAPI() {} + var _proto = WalletAPI.prototype; + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + _proto.sendApiRequest = + /*#__PURE__*/ + function () { + var _sendApiRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(method, params) { + var storage, sessionId, address, response, json; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + storage = new SdkStorage(); + sessionId = storage.getValue(SdkStorageKeys.sessionId); + address = storage.getValue(SdkStorageKeys.address); + if (!(!sessionId || !address)) { + _context.next = 5; + break; + } + throw new Error('Not connected to the wallet'); + case 5: + _context.next = 7; + return fetch("https://wallet-api.grindery.com/v3", { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: "Bearer " + address + ":" + sessionId + }, + body: JSON.stringify({ + jsonrpc: '2.0', + id: 1, + method: method, + params: params || {} + }) + }); + case 7: + response = _context.sent; + if (response.ok) { + _context.next = 10; + break; + } + throw new Error("Failed to call " + method); + case 10: + _context.next = 12; + return response.json(); + case 12: + json = _context.sent; + return _context.abrupt("return", json.result); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + })); + function sendApiRequest(_x, _x2) { + return _sendApiRequest.apply(this, arguments); + } + return sendApiRequest; + }(); + return WalletAPI; + }(); + /** * @summary The Wallet SDK class * @since 0.2.0 @@ -1434,6 +1506,11 @@ * @private */ this.storage = new SdkStorage(); + /** + * @summary The Grindery Wallet user + * @private + */ + this.user = null; if (config != null && config.appId || config != null && config.appUrl) { window.Grindery = _extends({}, window.Grindery || {}, { appId: config == null ? void 0 : config.appId, @@ -1699,7 +1776,50 @@ _proto.removeListener = function removeListener(event, callback) { this.provider.removeListener(event, callback); return this; - }; + } + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */; + _proto.getUser = + /*#__PURE__*/ + function () { + var _getUser = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() { + var api; + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (this.user) { + _context7.next = 11; + break; + } + api = new WalletAPI(); + _context7.prev = 2; + _context7.next = 5; + return api.sendApiRequest('gw_getMe'); + case 5: + this.user = _context7.sent; + _context7.next = 11; + break; + case 8: + _context7.prev = 8; + _context7.t0 = _context7["catch"](2); + throw new Error(_context7.t0 instanceof Error ? _context7.t0.message : 'Failed to fetch user information'); + case 11: + return _context7.abrupt("return", this.user); + case 12: + case "end": + return _context7.stop(); + } + }, _callee7, this, [[2, 8]]); + })); + function getUser() { + return _getUser.apply(this, arguments); + } + return getUser; + }(); /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider @@ -1726,11 +1846,12 @@ _proto.handlePairing = function handlePairing(_ref) { var _window$Telegram; var shortToken = _ref.shortToken, + connectUrl = _ref.connectUrl, connectUrlBrowser = _ref.connectUrlBrowser; var WebApp = (_window$Telegram = window.Telegram) == null ? void 0 : _window$Telegram.WebApp; - var redirectUrl = "https://walletconnect.grindery.com/connect/wc?uri=" + shortToken; - if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown') { - WebApp.openTelegramLink(connectUrlBrowser); + var redirectUrl = connectUrlBrowser || "https://www.grindery.com/connect/wc?uri=" + shortToken; + if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown' && connectUrl) { + WebApp.openTelegramLink(connectUrl); } else { window.open(redirectUrl, '_blank'); } @@ -1745,18 +1866,18 @@ _proto.trackClientEvent = /*#__PURE__*/ function () { - var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(name, data) { + var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(name, data) { var _window$Grindery, _window$Telegram2; var appUrl, appId, userTelegramId, _window$Telegram3, _window$Telegram4, _window$Telegram5, rpc; - return _regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: appUrl = ((_window$Grindery = window.Grindery) == null ? void 0 : _window$Grindery.appUrl) || window.location.origin; appId = getAppId(); userTelegramId = (_window$Telegram2 = window.Telegram) == null || (_window$Telegram2 = _window$Telegram2.WebApp) == null || (_window$Telegram2 = _window$Telegram2.initDataUnsafe) == null || (_window$Telegram2 = _window$Telegram2.user) == null ? void 0 : _window$Telegram2.id; - _context7.prev = 3; + _context8.prev = 3; rpc = new Rpc(); - _context7.next = 7; + _context8.next = 7; return rpc.sendRpcApiRequest(RpcMethodNames.trackClientEvent, { name: name, appUrl: appUrl, @@ -1773,16 +1894,16 @@ }) }); case 7: - _context7.next = 11; + _context8.next = 11; break; case 9: - _context7.prev = 9; - _context7.t0 = _context7["catch"](3); + _context8.prev = 9; + _context8.t0 = _context8["catch"](3); case 11: case "end": - return _context7.stop(); + return _context8.stop(); } - }, _callee7, this, [[3, 9]]); + }, _callee8, this, [[3, 9]]); })); function trackClientEvent(_x5, _x6) { return _trackClientEvent.apply(this, arguments); diff --git a/dist/grindery-wallet-sdk.umd.development.js.map b/dist/grindery-wallet-sdk.umd.development.js.map index 66bf303..4e26803 100644 --- a/dist/grindery-wallet-sdk.umd.development.js.map +++ b/dist/grindery-wallet-sdk.umd.development.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.umd.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","accountsChanged","address","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;;;;;EAKG;EACH,IAAYA,cAOX,CAAA;EAPD,CAAA,UAAYA,cAAc,EAAA;EACxBA,EAAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;EACnCA,EAAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;EACbA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;EACnBA,EAAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;EACzBA,EAAAA,cAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;EAC7BA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;EACrB,CAAC,EAPWA,cAAc,KAAdA,cAAc,GAOzB,EAAA,CAAA,CAAA,CAAA;EAQD;;;EAGG;EACH,IAAaC,YAAY,gBAAA,YAAA;EACvB,EAAA,SAAAA,eAAA;EAIA;;;EAGG;EAHH,IAAA,IAAA,CAIQC,MAAM,GAAA,KAAA,CAAA,CAAA;EAPZ,IAAA,IAAI,CAACA,MAAM,GAAG,IAAIC,GAAG,EAAE,CAAA;EACzB,GAAA;EAAC,EAAA,IAAAC,MAAA,GAAAH,YAAA,CAAAI,SAAA,CAAA;EAQD;;;;;;EAMG;IANHD,MAAA,CAOOE,EAAE,GAAF,SAAAA,GAAGC,KAAwB,EAAEC,QAAkB,EAAA;MACpD,IAAI,CAAC,IAAI,CAACN,MAAM,CAACO,GAAG,CAACF,KAAK,CAAC,EAAE;QAC3B,IAAI,CAACL,MAAM,CAACQ,GAAG,CAACH,KAAK,EAAE,EAAE,CAAC,CAAA;EAC5B,KAAA;MACA,IAAI,CAACL,MAAM,CAACS,GAAG,CAACJ,KAAK,CAAE,CAACK,IAAI,CAACJ,QAAQ,CAAC,CAAA;EACtC,IAAA,OAAO,IAAI,CAAA;EACb,GAAA;EAEA;;;;;;EAMG,MANH;IAAAJ,MAAA,CAOOS,cAAc,GAAd,SAAAA,eAAeN,KAAwB,EAAEC,QAAkB,EAAA;MAChE,IAAI,IAAI,CAACN,MAAM,CAACO,GAAG,CAACF,KAAK,CAAC,EAAE;EAC1B,MAAA,IAAMO,SAAS,GAAG,IAAI,CAACZ,MAAM,CAACS,GAAG,CAACJ,KAAK,CAAE,CAACQ,MAAM,CAAC,UAACC,EAAE,EAAA;UAAA,OAAKA,EAAE,KAAKR,QAAQ,CAAA;SAAC,CAAA,CAAA;QACzE,IAAI,CAACN,MAAM,CAACQ,GAAG,CAACH,KAAK,EAAEO,SAAS,CAAC,CAAA;EACnC,KAAA;EACA,IAAA,OAAO,IAAI,CAAA;EACb,GAAA;EAEA;;;;;;EAMG,MANH;EAAAV,EAAAA,MAAA,CAOUa,IAAI,GAAJ,SAAAA,IAAAA,CAAKV,KAAwB,EAAgB;MAAA,KAAAW,IAAAA,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAXC,IAAW,OAAAC,KAAA,CAAAJ,IAAA,GAAAA,CAAAA,GAAAA,IAAA,WAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;EAAXF,MAAAA,IAAW,CAAAE,IAAA,GAAAJ,CAAAA,CAAAA,GAAAA,SAAA,CAAAI,IAAA,CAAA,CAAA;EAAA,KAAA;MACrD,IAAI,IAAI,CAACrB,MAAM,CAACO,GAAG,CAACF,KAAK,CAAC,EAAE;QAC1BiB,OAAO,CAACC,GAAG,CAAC,+BAA+B,EAAElB,KAAK,EAAEc,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;EAC5D,MAAA,IAAI,CAACnB,MAAM,CAACS,GAAG,CAACJ,KAAK,CAAE,CAACmB,OAAO,CAAC,UAAClB,QAAQ,EAAI;EAC3CA,QAAAA,QAAQ,CAAAmB,KAAA,CAAIN,KAAAA,CAAAA,EAAAA,IAAI,CAAC,CAAA;EACnB,OAAC,CAAC,CAAA;EACJ,KAAA;EACA,IAAA,OAAO,IAAI,CAAA;KACZ,CAAA;EAAA,EAAA,OAAApB,YAAA,CAAA;EAAA,CAAA,EAAA;;ECjFH;;;EAGG;EACI,IAAM2B,QAAQ,GAAG,SAAXA,QAAQA,GAAgB;EAAA,EAAA,IAAAC,gBAAA,CAAA;IACnC,IAAIC,KAAK,GAAW,EAAE,CAAA;EACtB,EAAA,IAAMC,QAAQ,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,eAAe,CAAC,CAAA;EAC3D,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,CAACX,MAAM,EAAEc,CAAC,EAAE,EAAE;EACxC,IAAA,IAAMC,OAAO,GAAGJ,QAAQ,CAACG,CAAC,CAAC,CAAA;EAC3B,IAAA,IAAME,KAAK,GAAGD,OAAO,CAACE,YAAY,CAAC,aAAa,CAAC,CAAA;EACjD,IAAA,IAAMC,GAAG,GAAGH,OAAO,CAACE,YAAY,CAAC,KAAK,CAAC,CAAA;MACvC,IAAME,aAAa,GAAGD,GAAG,IAAIA,GAAG,CAACE,QAAQ,CAAC,qBAAqB,CAAC,CAAA;MAChE,IAAIJ,KAAK,IAAIG,aAAa,EAAE;EAC1BT,MAAAA,KAAK,GAAGM,KAAK,CAAA;EACf,KAAA;EACF,GAAA;IACA,IAAAP,CAAAA,gBAAA,GAAIY,MAAM,CAACC,QAAQ,KAAfb,IAAAA,IAAAA,gBAAA,CAAiBC,KAAK,EAAE;EAC1BA,IAAAA,KAAK,GAAGW,MAAM,CAACC,QAAQ,CAACZ,KAAK,CAAA;EAC/B,GAAA;EACA,EAAA,OAAOA,KAAK,CAAA;EACd,CAAC;;ECpBD;;;EAGG;EACI,IAAMa,IAAI,GAAG,SAAPA,IAAIA,GAAgB;IAC/B,IAAIC,CAAC,GAAG,EAAE,CAAA;IACV,OAAOA,CAAC,CAACxB,MAAM,GAAG,EAAE,EAAEwB,CAAC,IAAIC,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC/D,IAAMC,EAAE,GAAG,CAAEC,QAAQ,CAACN,CAAC,CAACI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAI,GAAG,EAAED,QAAQ,CAAC,EAAE,CAAC,CAAA;IACrE,OAAUH,CAAC,CAACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAIJ,GAAAA,GAAAA,CAAC,CAACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAKJ,IAAAA,GAAAA,CAAC,CAACI,MAAM,CACrD,EAAE,EACF,CAAC,CACF,GAAIC,GAAAA,GAAAA,EAAE,GAAGL,CAAC,CAACI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,SAAIJ,CAAC,CAACI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;EAC/C,CAAC;;ECgBM,IAAMG,YAAY,GAAwB;IAC/CR,IAAI,eAAEA,IAAI,EAAE;EACZS,EAAAA,IAAI,EAAE,iBAAiB;EACvBC,EAAAA,IAAI,EAAE,qBAAqB;EAC3BC,EAAAA,IAAI,EAAE,w0DAAA;GACP;;ECjCD;;;;EAIG;EACUC,IAAAA,aAAc,0BAAAC,MAAA,EAAA;EAKzB,EAAA,SAAAD,cAAYE,OAAe,EAAEC,IAAa,EAAErC,IAAc,EAAA;EAAA,IAAA,IAAAsC,KAAA,CAAA;EACxDA,IAAAA,KAAA,GAAAH,MAAA,CAAAI,IAAA,CAAA,IAAA,EAAMH,OAAO,CAAC,IAAA,IAAA,CAAA;MAACE,KAAA,CALjBP,IAAI,GAAW,6BAA6B,CAAA;EAAAO,IAAAA,KAAA,CAC5CD,IAAI,GAAA,KAAA,CAAA,CAAA;EAAAC,IAAAA,KAAA,CACJtC,IAAI,GAAA,KAAA,CAAA,CAAA;MAIFsC,KAAA,CAAKD,IAAI,GAAGA,IAAI,CAAA;MAChBC,KAAA,CAAKtC,IAAI,GAAGA,IAAI,CAAA;EAAC,IAAA,OAAAsC,KAAA,CAAA;EACnB,GAAA;IAACE,cAAA,CAAAN,aAAA,EAAAC,MAAA,CAAA,CAAA;EAAA,EAAA,OAAAD,aAAA,CAAA;EAAA,CAAAO,eAAAA,gBAAA,CATgCC,KAAK,CAAA,CAAA,CAAA;EAYjC,IAAMC,cAAc,GAAG;EAC5BC,EAAAA,aAAa,eAAE,IAAIV,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC;EACxDW,EAAAA,YAAY,eAAE,IAAIX,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC;EACrDY,EAAAA,iBAAiB,eAAE,IAAIZ,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAC;EAChEa,EAAAA,YAAY,eAAE,IAAIb,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC;EACrDc,EAAAA,QAAQ,eAAE,IAAId,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC;EAC9Ce,EAAAA,OAAO,eAAE,IAAIf,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAC;EACtDgB,EAAAA,YAAY,eAAE,IAAIhB,aAAa,CAAC,uBAAuB,EAAE,IAAI,CAAC;EAC9DiB,EAAAA,iBAAiB,eAAE,IAAIjB,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAA;GAChE,CAAA;EAEM,IAAMkB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAe,EAAmB;EACjE,EAAA,IAAIC,aAA4B,CAAA;IAChC,IAAID,KAAK,YAAYnB,aAAa,EAAE;EAClCoB,IAAAA,aAAa,GAAG,IAAIpB,aAAa,CAC/BmB,KAAK,CAACjB,OAAO,IAAI,eAAe,EAChCiB,KAAK,CAAChB,IAAI,IAAI,IAAI,EAClBgB,KAAK,CAACrD,IAAI,CACX,CAAA;EACH,GAAC,MAAM,IAAIqD,KAAK,YAAYX,KAAK,EAAE;EACjCY,IAAAA,aAAa,GAAG,IAAIpB,aAAa,CAC/BmB,KAAK,CAACjB,OAAO,IAAI,eAAe,EAChC,IAAI,EACJiB,KAAK,CACN,CAAA;EACH,GAAC,MAAM;MACLC,aAAa,GAAG,IAAIpB,aAAa,CAAC,eAAe,EAAE,IAAI,EAAEmB,KAAK,CAAC,CAAA;EACjE,GAAA;EACA,EAAA,OAAOC,aAAa,CAAA;EACtB,CAAC;;EC9CD;;;;;;;EAOG;EACI,IAAMC,MAAM,GAAa,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;EAElE,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,OAAe,EAAY;EACpD,EAAA,OAAA,IAAA,GAAY5B,QAAQ,CAAC4B,OAAO,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAChC,QAAQ,CAAC,EAAE,CAAC,CAAA;EAC9D,CAAC,CAAA;EAEM,IAAMiC,YAAY,GAAG,SAAfA,YAAYA,CAAIH,UAAkB,EAAY;EACzD,EAAA,OAAA,SAAA,GAAiB3B,QAAQ,CAAC2B,UAAU,EAAE,EAAE,CAAC,CAAA;EAC3C,CAAC;;ECbD,IAAMI,gBAAgB,GAAG,wBAAwB,CAAA;EAEjD;;;EAGG;EACH,IAAYC,cASX,CAAA;EATD,CAAA,UAAYA,cAAc,EAAA;EACxBA,EAAAA,cAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;EAC7BA,EAAAA,cAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;EACvBA,EAAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;EACzBA,EAAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;EACvCA,EAAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;EACzBA,EAAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;EACrBA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;EACnBA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;EACrB,CAAC,EATWA,cAAc,KAAdA,cAAc,GASzB,EAAA,CAAA,CAAA,CAAA;EAYD;;;EAGG;EACH,IAAaC,UAAU,gBAAA,YAAA;EAAA,EAAA,SAAAA,UAAA,GAAA,EAAA;EAAA,EAAA,IAAA/E,MAAA,GAAA+E,UAAA,CAAA9E,SAAA,CAAA;EACrB;;;;;EAKG;EALHD,EAAAA,MAAA,CAMOgF,QAAQ,GAAR,SAAAA,QAAAA,CAASC,GAAkB,EAAA;MAChC,IAAMjD,KAAK,GAAG,IAAI,CAACkD,WAAW,EAAE,CAACD,GAAG,CAAC,IAAI,EAAE,CAAA;EAC3C,IAAA,OAAOjD,KAAK,CAAA;EACd,GAAA;EAEA;;;;;;EAMG,MANH;IAAAhC,MAAA,CAOOmF,QAAQ,GAAR,SAAAA,SAASF,GAAkB,EAAEjD,KAAa,EAAA;EAC/C,IAAA,IAAMoD,QAAQ,GAAG,IAAI,CAACF,WAAW,EAAE,CAAA;EACnCE,IAAAA,QAAQ,CAACH,GAAG,CAAC,GAAGjD,KAAK,CAAA;EACrB,IAAA,IAAI,CAACqD,YAAY,CAACD,QAAQ,CAAC,CAAA;EAC3B,IAAA,OAAOpD,KAAK,CAAA;EACd,GAAA;EAEA;;;;EAIG,MAJH;EAAAhC,EAAAA,MAAA,CAKOsF,KAAK,GAAL,SAAAA,QAAK;MACV,IAAI,CAACD,YAAY,CAAC;QAChBE,QAAQ,EAAE,IAAI,CAACL,WAAW,EAAE,CAACK,QAAQ,IAAIhD,IAAI,EAAE;QAC/CmC,OAAO,EAAE,IAAI,CAACQ,WAAW,EAAE,CAACR,OAAO,IAAIF,MAAM,CAAC,CAAC,CAAA;EAChD,KAAA,CAAC,CAAA;EACJ,GAAA;EAEA;;;;EAIG,MAJH;EAAAxE,EAAAA,MAAA,CAKQkF,WAAW,GAAX,SAAAA,cAAW;MACjB,IAAI;EACF,MAAA,OAAOM,IAAI,CAACC,KAAK,CACfC,YAAY,CAACC,OAAO,CAACd,gBAAgB,CAAC,IAAI,IAAI,CACzB,CAAA;OACxB,CAAC,OAAOP,KAAK,EAAE;EACdoB,MAAAA,YAAY,CAACE,OAAO,CAACf,gBAAgB,EAAEW,IAAI,CAACK,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;EAC1D,MAAA,MAAM,IAAIlC,KAAK,CAAC,uBAAuB,CAAC,CAAA;EAC1C,KAAA;EACF,GAAA;EAEA;;;;EAIG,MAJH;EAAA3D,EAAAA,MAAA,CAKQqF,YAAY,GAAZ,SAAAA,YAAAA,CAAaS,OAA2B,EAAA;MAC9CJ,YAAY,CAACE,OAAO,CAACf,gBAAgB,EAAEW,IAAI,CAACK,SAAS,CAACC,OAAO,CAAC,CAAC,CAAA;KAChE,CAAA;EAAA,EAAA,OAAAf,UAAA,CAAA;EAAA,CAAA,EAAA;;EC5FH;;EAEG;EACH,IAAYgB,cAQX,CAAA;EARD,CAAA,UAAYA,cAAc,EAAA;EACxBA,EAAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;EACjCA,EAAAA,cAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;EAC7CA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;EACnBA,EAAAA,cAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;EAC7CA,EAAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAA2B,CAAA;EAC3BA,EAAAA,cAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;EAC7CA,EAAAA,cAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;EACvC,CAAC,EARWA,cAAc,KAAdA,cAAc,GAQzB,EAAA,CAAA,CAAA,CAAA;EA+DD;;;EAGG;EACH,IAAaC,GAAG,gBAAA,YAAA;EAAA,EAAA,SAAAA,GAAA,GAAA,EAAA;EAAA,EAAA,IAAAhG,MAAA,GAAAgG,GAAA,CAAA/F,SAAA,CAAA;EACd;;;;;;;EAOG;EAPHD,EAAAA,MAAA,CAQaiG,qBAAqB;EAAA;EAAA,EAAA,YAAA;EAAA,IAAA,IAAAC,sBAAA,gBAAAC,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAA3B,SAAAC,OACLC,CAAAA,MAAc,EACdC,MAA2B,EAC3BC,OAAgB,EAAA;EAAA,MAAA,IAAAC,OAAA,CAAA;EAAA,MAAA,OAAAN,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;EAAA,UAAA,KAAA,CAAA;EAAAF,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OAEM,IAAI,CAACC,cAAc,CAACT,MAAM,EAAEC,MAAM,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;cAAnDE,OAAO,GAAAG,QAAA,CAAAI,IAAA,CAAA;EAAAJ,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;cAAA,OACA,IAAI,CAACG,cAAc,CAACR,OAAO,CAACS,YAAY,EAAEV,OAAO,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAAI,QAAA,CAAAO,MAAA,CAAAP,QAAAA,EAAAA,QAAA,CAAAI,IAAA,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAJ,QAAA,CAAAQ,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAf,OAAA,EAAA,IAAA,CAAA,CAAA;OAChE,CAAA,CAAA,CAAA;EAAA,IAAA,SAAAL,qBAAAqB,CAAAA,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;EAAA,MAAA,OAAAtB,sBAAA,CAAA3E,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAAkF,qBAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;;;EAMG;EANH,GAAA;EAAAjG,EAAAA,MAAA,CAOgBgH,cAAc;EAAA;EAAA,EAAA,YAAA;EAAA,IAAA,IAAAS,eAAA,gBAAAtB,iBAAA,eAAAC,mBAAA,EAAA,CAAAC,IAAA,CAApB,SAAAqB,QAAAA,CACRnB,MAAc,EACdC,MAA2B,EAAA;EAAA,MAAA,IAAAV,OAAA,CAAA;EAAA,MAAA,OAAAM,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAgB,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAd,IAAA,GAAAc,SAAA,CAAAb,IAAA;EAAA,UAAA,KAAA,CAAA;EAErBjB,YAAAA,OAAO,GAAG,IAAIf,UAAU,EAAE,CAAA;EAAA6C,YAAAA,SAAA,CAAAb,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OACnB,IAAI,CAACc,iBAAiB,CACjC9B,cAAc,CAACW,OAAO,EACtB;gBACEoB,SAAS,EAAEhC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAC;gBACrDC,KAAK,EAAEjC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACJ,OAAO,CAAC;EAC/CgC,cAAAA,OAAO,EAAE;EACPH,gBAAAA,MAAM,EAANA,MAAM;EACNC,gBAAAA,MAAM,EAANA,MAAAA;EACD,eAAA;EACF,aAAA,CACF,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAAoB,SAAA,CAAAR,MAAA,CAAAQ,QAAAA,EAAAA,SAAA,CAAAX,IAAA,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAW,SAAA,CAAAP,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAK,QAAA,EAAA,IAAA,CAAA,CAAA;OACF,CAAA,CAAA,CAAA;MAAA,SAAAV,cAAAA,CAAAgB,GAAA,EAAAC,GAAA,EAAA;EAAA,MAAA,OAAAR,eAAA,CAAAlG,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAAiG,cAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;;;EAMG;EANH,GAAA;EAAAhH,EAAAA,MAAA,CAOgBkH,cAAc;EAAA;EAAA,EAAA,YAAA;EAAA,IAAA,IAAAgB,eAAA,gBAAA/B,iBAAA,eAAAC,mBAAA,EAAA,CAAAC,IAAA,CAApB,SAAA8B,QAAAA,CACRhB,YAAoB,EACpBV,OAAgB,EAAA;EAAA,MAAA,OAAAL,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAyB,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAvB,IAAA,GAAAuB,SAAA,CAAAtB,IAAA;EAAA,UAAA,KAAA,CAAA;EAAAsB,YAAAA,SAAA,CAAAtB,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OAEH,IAAI,CAACc,iBAAiB,CACjC9B,cAAc,CAACuC,oBAAoB,EACnC;EACEnB,cAAAA,YAAY,EAAZA,YAAY;EACZV,cAAAA,OAAO,EAAPA,OAAAA;EACD,aAAA,CACF,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAA4B,SAAA,CAAAjB,MAAA,CAAAiB,QAAAA,EAAAA,SAAA,CAAApB,IAAA,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAoB,SAAA,CAAAhB,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAc,QAAA,EAAA,IAAA,CAAA,CAAA;OACF,CAAA,CAAA,CAAA;MAAA,SAAAjB,cAAAA,CAAAqB,GAAA,EAAAC,GAAA,EAAA;EAAA,MAAA,OAAAN,eAAA,CAAA3G,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAAmG,cAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;;;EAMG;EANH,GAAA;EAAAlH,EAAAA,MAAA,CAOa6H,iBAAiB;EAAA;EAAA,EAAA,YAAA;EAAA,IAAA,IAAAY,kBAAA,gBAAAtC,iBAAA,eAAAC,mBAAA,EAAA,CAAAC,IAAA,CAAvB,SAAAqC,QAAAA,CACLnC,MAAsB,EACtBC,MAA2B,EAAA;QAAA,IAAAmC,QAAA,EAAA1H,IAAA,CAAA;EAAA,MAAA,OAAAmF,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAiC,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAA9B,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA8B,YAAAA,SAAA,CAAA/B,IAAA,GAAA,CAAA,CAAA;EAAA+B,YAAAA,SAAA,CAAA9B,IAAA,GAAA,CAAA,CAAA;cAAA,OAGF+B,KAAK,CAAC,wCAAwC,EAAE;EACrEvC,cAAAA,MAAM,EAAE,MAAM;EACdwC,cAAAA,OAAO,EAAE;EACP,gBAAA,cAAc,EAAE,kBAAA;iBACjB;EACDC,cAAAA,IAAI,EAAExD,IAAI,CAACK,SAAS,CAAC;EACnBoD,gBAAAA,OAAO,EAAE,KAAK;EACdC,gBAAAA,EAAE,EAAE,CAAC;EACL3C,gBAAAA,MAAM,WAASA,MAAQ;kBACvBC,MAAM,EAAEA,MAAM,IAAI,EAAA;iBACnB,CAAA;EACF,aAAA,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;cAXImC,QAAQ,GAAAE,SAAA,CAAA5B,IAAA,CAAA;EAAA4B,YAAAA,SAAA,CAAA9B,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OAYK4B,QAAQ,CAACQ,IAAI,EAAE,CAAA;EAAA,UAAA,KAAA,CAAA;cAA5BlI,IAAI,GAAA4H,SAAA,CAAA5B,IAAA,CAAA;cAAA,IACNhG,CAAAA,IAAI,CAACqD,KAAK,EAAA;EAAAuE,cAAAA,SAAA,CAAA9B,IAAA,GAAA,CAAA,CAAA;EAAA,cAAA,MAAA;EAAA,aAAA;EAAA,YAAA,MACN,IAAI5D,aAAa,CAAClC,IAAI,CAACqD,KAAK,CAACjB,OAAO,EAAEpC,IAAI,CAACqD,KAAK,CAAChB,IAAI,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;cAAA,IAEzDrC,IAAI,CAACmI,MAAM,EAAA;EAAAP,cAAAA,SAAA,CAAA9B,IAAA,GAAA,EAAA,CAAA;EAAA,cAAA,MAAA;EAAA,aAAA;cAAA,MACRnD,cAAc,CAACK,QAAQ,CAAA;EAAA,UAAA,KAAA,EAAA;EAAA,YAAA,OAAA4E,SAAA,CAAAzB,MAAA,CAExBnG,QAAAA,EAAAA,IAAI,CAACmI,MAAM,CAAA,CAAA;EAAA,UAAA,KAAA,EAAA;EAAAP,YAAAA,SAAA,CAAA/B,IAAA,GAAA,EAAA,CAAA;cAAA+B,SAAA,CAAAQ,EAAA,GAAAR,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,YAAA,IAAA,EAEdA,SAAA,CAAAQ,EAAA,YAAiB1F,KAAK,CAAA,EAAA;EAAAkF,cAAAA,SAAA,CAAA9B,IAAA,GAAA,EAAA,CAAA;EAAA,cAAA,MAAA;EAAA,aAAA;EAAA,YAAA,MAClB,IAAI5D,aAAa,CAAC0F,SAAA,CAAAQ,EAAA,CAAMhG,OAAO,EAAE,GAAG,EAAAwF,SAAA,CAAAQ,EAAO,CAAC,CAAA;EAAA,UAAA,KAAA,EAAA;cAAA,MAE9C,IAAIlG,aAAa,CAAC,cAAc,EAAE,GAAG,EAAA0F,SAAA,CAAAQ,EAAO,CAAC,CAAA;EAAA,UAAA,KAAA,EAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAR,SAAA,CAAAxB,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAqB,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;OAEtD,CAAA,CAAA,CAAA;MAAA,SAAAb,iBAAAA,CAAAyB,GAAA,EAAAC,GAAA,EAAA;EAAA,MAAA,OAAAd,kBAAA,CAAAlH,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAA8G,iBAAA,CAAA;EAAA,GAAA,EAAA,CAAA;EAAA,EAAA,OAAA7B,GAAA,CAAA;EAAA,CAAA,EAAA;;ECpKH;;;;EAIG;EACH,IAAYwD,mBASX,CAAA;EATD,CAAA,UAAYA,mBAAmB,EAAA;EAC7BA,EAAAA,mBAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;EAC3CA,EAAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;EAC7BA,EAAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;EAC/BA,EAAAA,mBAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;EAC3CA,EAAAA,mBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;EACjCA,EAAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;EAC3BA,EAAAA,mBAAA,CAAA,yBAAA,CAAA,GAAA,yBAAmD,CAAA;EACnDA,EAAAA,mBAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD,CAAA;EAC3D,CAAC,EATWA,mBAAmB,KAAnBA,mBAAmB,GAS9B,EAAA,CAAA,CAAA,CAAA;EAkCD;;;;EAIG;EACUC,IAAAA,QAAS,0BAAAC,aAAA,EAAA;EAGpB,EAAA,SAAAD,WAAA;EAAA,IAAA,IAAAE,aAAA,CAAA;EAAA,IAAA,IAAApG,KAAA,CAAA;EACEA,IAAAA,KAAA,GAAAmG,aAAA,CAAAlG,IAAA,MAAO,IAAA,IAAA,CAAA;MAACD,KAAA,CAHHqG,gBAAgB,GAAY,IAAI,CAAA;EAAArG,IAAAA,KAAA,CA2C/BuC,OAAO,GAAe,IAAIf,UAAU,EAAE,CAAA;EAAAxB,IAAAA,KAAA,CAEtCsG,GAAG,GAAQ,IAAI7D,GAAG,EAAE,CAAA;EAE5B;;;;;EAKG;EALHzC,IAAAA,KAAA,CAMQuG,WAAW,gBAAA,YAAA;QAAA,IAAAC,KAAA,GAAA5D,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAA0D,IAAA,EAAA;UAAA,IAAAtF,OAAA,EAAAuF,SAAA,CAAA;EAAA,QAAA,OAAA7D,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;EAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;EAAA,YAAA,KAAA,CAAA;gBAASrC,OAAO,GAAAsF,IAAA,CAAPtF,OAAO,CAAA;EAC9BuF,cAAAA,SAAS,GAAGrF,YAAY,CAACF,OAAO,CAAC,CAAA;EAAA,cAAA,IAClCF,MAAM,CAACpC,QAAQ,CAAC6H,SAAS,CAAC,EAAA;EAAApD,gBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,eAAA;EAAA,cAAA,MACvB1C,gBAAgB,CAACT,cAAc,CAACQ,iBAAiB,CAAC,CAAA;EAAA,YAAA,KAAA,CAAA;gBAE1Db,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACJ,OAAO,EAAEuF,SAAS,CAAC,CAAA;EACxD1G,cAAAA,KAAA,CAAK1C,IAAI,CAACjB,cAAc,CAACsK,YAAY,EAAE;EAAExF,gBAAAA,OAAO,EAAPA,OAAAA;EAAS,eAAA,CAAC,CAAA;EAAC,cAAA,OAAAmC,QAAA,CAAAO,MAAA,CAAA,QAAA,EAC7C,IAAI,CAAA,CAAA;EAAA,YAAA,KAAA,CAAA,CAAA;EAAA,YAAA,KAAA,KAAA;gBAAA,OAAAP,QAAA,CAAAQ,IAAA,EAAA,CAAA;EAAA,WAAA;EAAA,SAAA,EAAAf,OAAA,CAAA,CAAA;SACZ,CAAA,CAAA,CAAA;EAAA,MAAA,OAAA,UAAAgB,EAAA,EAAA;EAAA,QAAA,OAAAyC,KAAA,CAAAxI,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,OAAA,CAAA;EAAA,KAAA,EAAA,CAAA;EAED;;;EAGG;MAHHwC,KAAA,CAIQ4G,OAAO,IAAAR,aAAA,OAAAA,aAAA,CAIZH,mBAAmB,CAACY,mBAAmB,CAAA,GAAA,YAAA;QAAA,IAAAC,KAAA,GAAAlE,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAqB,QAAAA,CACzClB,MAAuC,EAAA;EAAA,QAAA,IAAA8D,UAAA,EAAAlB,MAAA,EAAAmB,WAAA,CAAA;EAAA,QAAA,OAAAnE,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAgB,UAAAC,SAAA,EAAA;EAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAd,IAAA,GAAAc,SAAA,CAAAb,IAAA;EAAA,YAAA,KAAA,CAAA;EAAA,cAAA,IAAA,CAEnCxD,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAAC,WAAW,CAAC,EAAA;EAAA4C,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,eAAA;EAAAa,cAAAA,SAAA,CAAAd,IAAA,GAAA,CAAA,CAAA;EAAAc,cAAAA,SAAA,CAAAb,IAAA,GAAA,CAAA,CAAA;gBAAA,OAErBxD,KAAA,CAAKmD,OAAO,CAAsC;kBAC7DH,MAAM,EAAEiD,mBAAmB,CAACgB,YAAY;EACxChE,gBAAAA,MAAM,EAAE,EAAA;EACT,eAAA,CAAC,CAAA;EAAA,YAAA,KAAA,CAAA;EAAA,cAAA,OAAAoB,SAAA,CAAAR,MAAA,CAAAQ,QAAAA,EAAAA,SAAA,CAAAX,IAAA,CAAA,CAAA;EAAA,YAAA,KAAA,CAAA;EAAAW,cAAAA,SAAA,CAAAd,IAAA,GAAA,CAAA,CAAA;gBAAAc,SAAA,CAAAyB,EAAA,GAAAzB,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;gBAEFrE,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACgD,SAAS,EAAE,EAAE,CAAC,CAAA;EACnD;EAAA,YAAA,KAAA,EAAA;EAAA,cAAA,IAAA,CAGAvE,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAAC,cAAc,CAAC,EAAA;EAAA4C,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,eAAA;EAAAa,cAAAA,SAAA,CAAAd,IAAA,GAAA,EAAA,CAAA;EAAAc,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;gBAAA,OAG5BxD,KAAA,CAAKsG,GAAG,CAAChC,iBAAiB,CAC/B9B,cAAc,CAAC0E,oBAAoB,EACnC;kBACEC,YAAY,EAAEnH,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CACjCF,cAAc,CAAC4F,YAAY,CAAA;EAE9B,eAAA,CACF,CAAA;EAAA,YAAA,KAAA,EAAA;gBARGJ,UAAU,GAAA1C,SAAA,CAAAX,IAAA,CAAA;EAUhB1D,cAAAA,KAAA,CAAKuC,OAAO,CAACR,KAAK,EAAE,CAAA;EACpB/B,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CACnBL,cAAc,CAACgD,SAAS,EACxBwC,UAAU,CAACK,OAAO,CAAC7C,SAAS,CAC7B,CAAA;EAAC,cAAA,IAEGwC,UAAU,CAACK,OAAO,CAAC7C,SAAS,EAAA;EAAAF,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,eAAA;gBAAA,MACzBnD,cAAc,CAACC,aAAa,CAAA;EAAA,YAAA,KAAA,EAAA;EAAA+D,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;gBAAA,OAGvBxD,KAAA,CAAKmD,OAAO,CAAsC;kBAC7DH,MAAM,EAAEiD,mBAAmB,CAACgB,YAAY;kBACxChE,MAAM,EAAEA,MAAM,IAAI,EAAA;EACnB,eAAA,CAAC,CAAA;EAAA,YAAA,KAAA,EAAA;EAAA,cAAA,OAAAoB,SAAA,CAAAR,MAAA,CAAAQ,QAAAA,EAAAA,SAAA,CAAAX,IAAA,CAAA,CAAA;EAAA,YAAA,KAAA,EAAA;EAAAW,cAAAA,SAAA,CAAAd,IAAA,GAAA,EAAA,CAAA;gBAAAc,SAAA,CAAAgD,EAAA,GAAAhD,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;EAEFrE,cAAAA,KAAA,CAAKuC,OAAO,CAACR,KAAK,EAAE,CAAA;EACpB;EAAA,YAAA,KAAA,EAAA;EAAAsC,cAAAA,SAAA,CAAAd,IAAA,GAAA,EAAA,CAAA;EAIFvD,cAAAA,KAAA,CAAKuC,OAAO,CAACR,KAAK,EAAE,CAAA;EAACsC,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;gBAAA,OAEZxD,KAAA,CAAKsG,GAAG,CAAChC,iBAAiB,CAC/B9B,cAAc,CAAC8E,cAAc,EAC7B;kBACEnJ,KAAK,EAAEF,QAAQ,EAAE;kBACjB+D,QAAQ,EAAEhC,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACS,QAAQ,CAAA;EACxD,eAAA,CACF,CAAA;EAAA,YAAA,KAAA,EAAA;gBAPG6D,MAAM,GAAAxB,SAAA,CAAAX,IAAA,CAAA;gBAAA,IASR,EAAA,CAACmC,MAAM,CAACsB,YAAY,IAAI,CAACtB,MAAM,CAAC0B,UAAU,CAAA,EAAA;EAAAlD,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,eAAA;gBAAA,MACtCnD,cAAc,CAACC,aAAa,CAAA;EAAA,YAAA,KAAA,EAAA;EAGpCN,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAAC4F,YAAY,EAAEtB,MAAM,CAACsB,YAAY,CAAC,CAAA;EACvEnH,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACgG,UAAU,EAAE1B,MAAM,CAAC0B,UAAU,CAAC,CAAA;EACnEvH,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CACnBL,cAAc,CAACiG,iBAAiB,EAChC3B,MAAM,CAAC2B,iBAAiB,CACzB,CAAA;EACDxH,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACkG,UAAU,EAAE5B,MAAM,CAAC4B,UAAU,CAAC,CAAA;EACnEzH,cAAAA,KAAA,CAAK1C,IAAI,CAACjB,cAAc,CAACqL,IAAI,EAAE;kBAC7BD,UAAU,EAAE5B,MAAM,CAAC4B,UAAU;kBAC7BF,UAAU,EAAE1B,MAAM,CAAC0B,UAAU;kBAC7BC,iBAAiB,EAAE3B,MAAM,CAAC2B,iBAAAA;EAC3B,eAAA,CAAC,CAAA;EAACnD,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;gBAAA,OAEMxD,KAAA,CAAKsG,GAAG,CAAChC,iBAAiB,CAC/B9B,cAAc,CAAC0E,oBAAoB,EACnC;kBACEC,YAAY,EAAEtB,MAAM,CAACsB,YAAAA;EACtB,eAAA,CACF,CAAA;EAAA,YAAA,KAAA,EAAA;gBANGJ,WAAU,GAAA1C,SAAA,CAAAX,IAAA,CAAA;EAQhB1D,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CACnBL,cAAc,CAACgD,SAAS,EACxBwC,WAAU,CAACK,OAAO,CAAC7C,SAAS,CAC7B,CAAA;EAAC,cAAA,IAEGwC,WAAU,CAACK,OAAO,CAAC7C,SAAS,EAAA;EAAAF,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,eAAA;gBAAA,MACzBnD,cAAc,CAACC,aAAa,CAAA;EAAA,YAAA,KAAA,EAAA;gBAEpCN,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAAC4F,YAAY,EAAE,EAAE,CAAC,CAAA;gBACtDnH,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACgG,UAAU,EAAE,EAAE,CAAC,CAAA;gBACpDvH,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACiG,iBAAiB,EAAE,EAAE,CAAC,CAAA;gBAC3DxH,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACkG,UAAU,EAAE,EAAE,CAAC,CAAA;EAACpD,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;gBAAA,OAExCxD,KAAA,CAAKmD,OAAO,CAAC;kBACxBH,MAAM,EAAEiD,mBAAmB,CAACgB,YAAY;kBACxChE,MAAM,EAAEA,MAAM,IAAI,EAAA;EACnB,eAAA,CAAC,CAAA;EAAA,YAAA,KAAA,EAAA;EAAA,cAAA,OAAAoB,SAAA,CAAAR,MAAA,CAAAQ,QAAAA,EAAAA,SAAA,CAAAX,IAAA,CAAA,CAAA;EAAA,YAAA,KAAA,EAAA;EAAAW,cAAAA,SAAA,CAAAd,IAAA,GAAA,EAAA,CAAA;gBAAAc,SAAA,CAAAsD,EAAA,GAAAtD,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;gBAAA,MAAAA,SAAA,CAAAsD,EAAA,CAAA;EAAA,YAAA,KAAA,EAAA,CAAA;EAAA,YAAA,KAAA,KAAA;gBAAA,OAAAtD,SAAA,CAAAP,IAAA,EAAA,CAAA;EAAA,WAAA;EAAA,SAAA,EAAAK,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;SAIL,CAAA,CAAA,CAAA;EAAA,MAAA,OAAA,UAAAH,GAAA,EAAA;EAAA,QAAA,OAAA8C,KAAA,CAAA9I,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,OAAA,CAAA;EAAA,KAAA,EAAA,EAAA4I,aAAA,CAKAH,mBAAmB,CAACgB,YAAY,CAAA,GAAA,YAAA;QAAA,IAAAW,KAAA,GAAAhF,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAA8B,QAAAA,CAClC3B,MAAuC,EAAA;EAAA,QAAA,IAAA4C,MAAA,CAAA;EAAA,QAAA,OAAAhD,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAyB,UAAAC,SAAA,EAAA;EAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAvB,IAAA,GAAAuB,SAAA,CAAAtB,IAAA;EAAA,YAAA,KAAA,CAAA;EAAAsB,cAAAA,SAAA,CAAAvB,IAAA,GAAA,CAAA,CAAA;EAAAuB,cAAAA,SAAA,CAAAtB,IAAA,GAAA,CAAA,CAAA;gBAAA,OAGfxD,KAAA,CAAKsG,GAAG,CAAC5D,qBAAqB,CAClDuD,mBAAmB,CAACgB,YAAY,EAChChE,MAAM,GAAItF,KAAK,CAACkK,OAAO,CAAC5E,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC,GAAI,EAAE,CAC1D,CAAA;EAAA,YAAA,KAAA,CAAA;gBAHK4C,MAAM,GAAAf,SAAA,CAAApB,IAAA,CAAA;gBAIZ1D,KAAA,CAAK1C,IAAI,CAACjB,cAAc,CAACyL,eAAe,EAAEjC,MAAM,CAAC,CAAA;EACjD7F,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACwG,OAAO,EAAElC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;EAAC,cAAA,OAAAf,SAAA,CAAAjB,MAAA,CAAA,QAAA,EACxDgC,MAAM,CAAA,CAAA;EAAA,YAAA,KAAA,CAAA;EAAAf,cAAAA,SAAA,CAAAvB,IAAA,GAAA,CAAA,CAAA;gBAAAuB,SAAA,CAAAgB,EAAA,GAAAhB,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,cAAA,MAEPhE,gBAAgB,CAAAgE,SAAA,CAAAgB,EAAM,CAAC,CAAA;EAAA,YAAA,KAAA,EAAA,CAAA;EAAA,YAAA,KAAA,KAAA;gBAAA,OAAAhB,SAAA,CAAAhB,IAAA,EAAA,CAAA;EAAA,WAAA;EAAA,SAAA,EAAAc,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;SAEhC,CAAA,CAAA,CAAA;EAAA,MAAA,OAAA,UAAAX,GAAA,EAAA;EAAA,QAAA,OAAA2D,KAAA,CAAA5J,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,OAAA,CAAA;EAAA,KAAA,EAAA,EAAA4I,aAAA,CAKAH,mBAAmB,CAAC+B,mBAAmB,CAAA,GAAA,YAAA;QAAA,IAAAC,KAAA,GAAArF,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAqC,QAAAA,CACzClC,MAAuC,EAAA;EAAA,QAAA,OAAAJ,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAiC,UAAAC,SAAA,EAAA;EAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAA9B,IAAA;EAAA,YAAA,KAAA,CAAA;EAAA8B,cAAAA,SAAA,CAAA9B,IAAA,GAAA,CAAA,CAAA;gBAAA,OAEzBxD,KAAA,CAAKsG,GAAG,CAAC5D,qBAAqB,CAC1CuD,mBAAmB,CAAC+B,mBAAmB,EACvC/E,MAAM,GAAItF,KAAK,CAACkK,OAAO,CAAC5E,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC,GAAI,EAAE,CAC1D,CAAA;EAAA,YAAA,KAAA,CAAA;EAAA,cAAA,OAAAqC,SAAA,CAAAzB,MAAA,CAAAyB,QAAAA,EAAAA,SAAA,CAAA5B,IAAA,CAAA,CAAA;EAAA,YAAA,KAAA,CAAA,CAAA;EAAA,YAAA,KAAA,KAAA;gBAAA,OAAA4B,SAAA,CAAAxB,IAAA,EAAA,CAAA;EAAA,WAAA;EAAA,SAAA,EAAAqB,QAAA,CAAA,CAAA;SACF,CAAA,CAAA,CAAA;EAAA,MAAA,OAAA,UAAAV,GAAA,EAAA;EAAA,QAAA,OAAAwD,KAAA,CAAAjK,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,OAAA,CAAA;EAAA,KAAA,EAAA,EAAA4I,aAAA,CAKAH,mBAAmB,CAACiC,aAAa,CAAA,GAAA,YAAA;QAAA,IAAAC,KAAA,GAAAvF,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAsF,QAAAA,CACnCnF,MAAgD,EAAA;EAAA,QAAA,OAAAJ,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAiF,UAAAC,SAAA,EAAA;EAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/E,IAAA,GAAA+E,SAAA,CAAA9E,IAAA;EAAA,YAAA,KAAA,CAAA;EAAA8E,cAAAA,SAAA,CAAA9E,IAAA,GAAA,CAAA,CAAA;gBAAA,OAElCxD,KAAA,CAAKsG,GAAG,CAAC5D,qBAAqB,CAC1CuD,mBAAmB,CAACiC,aAAa,EACjCjF,MAAM,GAAItF,KAAK,CAACkK,OAAO,CAAC5E,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC,GAAI,EAAE,CAC1D,CAAA;EAAA,YAAA,KAAA,CAAA;EAAA,cAAA,OAAAqF,SAAA,CAAAzE,MAAA,CAAAyE,QAAAA,EAAAA,SAAA,CAAA5E,IAAA,CAAA,CAAA;EAAA,YAAA,KAAA,CAAA,CAAA;EAAA,YAAA,KAAA,KAAA;gBAAA,OAAA4E,SAAA,CAAAxE,IAAA,EAAA,CAAA;EAAA,WAAA;EAAA,SAAA,EAAAsE,QAAA,CAAA,CAAA;SACF,CAAA,CAAA,CAAA;EAAA,MAAA,OAAA,UAAA1D,GAAA,EAAA;EAAA,QAAA,OAAAyD,KAAA,CAAAnK,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,OAAA,CAAA;EAAA,KAAA,EAAA,EAAA4I,aAAA,CAKAH,mBAAmB,CAACsC,cAAc,CAAA,GAAA3F,iBAAA,eAAAC,mBAAA,EAAA,CAAAC,IAAA,CACjC,SAAA0F,QAAA,GAAA;EAAA,MAAA,IAAA3C,MAAA,CAAA;EAAA,MAAA,OAAAhD,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAqF,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAnF,IAAA,GAAAmF,SAAA,CAAAlF,IAAA;EAAA,UAAA,KAAA,CAAA;EAAAkF,YAAAA,SAAA,CAAAnF,IAAA,GAAA,CAAA,CAAA;EAAAmF,YAAAA,SAAA,CAAAlF,IAAA,GAAA,CAAA,CAAA;cAAA,OAGYxD,KAAA,CAAKsG,GAAG,CAAChC,iBAAiB,CAC9B9B,cAAc,CAACmG,UAAU,EACzB;gBACEC,YAAY,EAAE5I,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAA;EAC7D,aAAA,CACF,CAAA;EAAA,UAAA,KAAA,CAAA;cANGsB,MAAM,GAAA6C,SAAA,CAAAhF,IAAA,CAAA;cAQZ1D,KAAA,CAAK1C,IAAI,CAACjB,cAAc,CAACsM,UAAU,EAAEtI,cAAc,CAACE,YAAY,CAAC,CAAA;EAAC,YAAA,OAAAmI,SAAA,CAAA7E,MAAA,CAAA,QAAA,EAE3DgC,MAAM,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA6C,YAAAA,SAAA,CAAAnF,IAAA,GAAA,CAAA,CAAA;cAAAmF,SAAA,CAAA5C,EAAA,GAAA4C,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,YAAA,MAEP5H,gBAAgB,CAAA4H,SAAA,CAAA5C,EAAM,CAAC,CAAA;EAAA,UAAA,KAAA,EAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAA4C,SAAA,CAAA5E,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAA0E,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KAEhC,CAAApC,CAAAA,EAAAA,aAAA,CAMFH,mBAAmB,CAAC4C,WAAW,CAAA,GAAA,YAAA;QAAA,IAAAC,KAAA,GAAAlG,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAiG,QAAAA,CACjCC,CAAkC,EAAA;EAAA,QAAA,OAAAnG,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAA6F,UAAAC,SAAA,EAAA;EAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3F,IAAA,GAAA2F,SAAA,CAAA1F,IAAA;EAAA,YAAA,KAAA,CAAA;gBAAA,OAAA0F,SAAA,CAAArF,MAAA,CAAA,QAAA,EAE3B3C,UAAU,CACflB,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACJ,OAAO,CAAC,IAAIF,MAAM,CAAC,CAAC,CAAC,CAC3D,CAAA,CAAA;EAAA,YAAA,KAAA,CAAA,CAAA;EAAA,YAAA,KAAA,KAAA;gBAAA,OAAAiI,SAAA,CAAApF,IAAA,EAAA,CAAA;EAAA,WAAA;EAAA,SAAA,EAAAiF,QAAA,CAAA,CAAA;SACF,CAAA,CAAA,CAAA;EAAA,MAAA,OAAA,UAAA/D,GAAA,EAAA;EAAA,QAAA,OAAA8D,KAAA,CAAA9K,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,OAAA,CAAA;EAAA,KAAA,EAAA,EAAA4I,aAAA,CAMAH,mBAAmB,CAACkD,uBAAuB,CAAA,GAAA,YAAA;QAAA,IAAAC,KAAA,GAAAxG,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAuG,QAAAA,CAC7CL,CAAkC,EAAA;EAAA,QAAA,OAAAnG,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAkG,UAAAC,SAAA,EAAA;EAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,IAAA,GAAAgG,SAAA,CAAA/F,IAAA;EAAA,YAAA,KAAA,CAAA;EAAA,cAAA,MAE5B1C,gBAAgB,CAACT,cAAc,CAACO,YAAY,CAAC,CAAA;EAAA,YAAA,KAAA,CAAA,CAAA;EAAA,YAAA,KAAA,KAAA;gBAAA,OAAA2I,SAAA,CAAAzF,IAAA,EAAA,CAAA;EAAA,WAAA;EAAA,SAAA,EAAAuF,QAAA,CAAA,CAAA;SACpD,CAAA,CAAA,CAAA;EAAA,MAAA,OAAA,UAAApE,GAAA,EAAA;EAAA,QAAA,OAAAmE,KAAA,CAAApL,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,OAAA,CAAA;EAAA,KAAA,EAAA,EAAA4I,aAAA,CAMAH,mBAAmB,CAACuD,0BAA0B,CAAA,GAAA,YAAA;QAAA,IAAAC,MAAA,GAAA7G,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAA4G,QAAAA,CAChDzG,MAAuC,EAAA;EAAA,QAAA,OAAAJ,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAuG,UAAAC,SAAA,EAAA;EAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAArG,IAAA,GAAAqG,SAAA,CAAApG,IAAA;EAAA,YAAA,KAAA,CAAA;EAAAoG,cAAAA,SAAA,CAAApG,IAAA,GAAA,CAAA,CAAA;EAAA,cAAA,OAEjCxD,KAAA,CAAKuG,WAAW,CAACtD,MAAM,CAAC,CAAA;EAAA,YAAA,KAAA,CAAA;EAAA,cAAA,OAAA2G,SAAA,CAAA/F,MAAA,CAAA+F,QAAAA,EAAAA,SAAA,CAAAlG,IAAA,CAAA,CAAA;EAAA,YAAA,KAAA,CAAA,CAAA;EAAA,YAAA,KAAA,KAAA;gBAAA,OAAAkG,SAAA,CAAA9F,IAAA,EAAA,CAAA;EAAA,WAAA;EAAA,SAAA,EAAA4F,QAAA,CAAA,CAAA;EAAA,OAAA,CAAA,CAAA,CAAA;EAAA,MAAA,OAAA,UAAA3D,GAAA,EAAA;EAAA,QAAA,OAAA0D,MAAA,CAAAzL,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,OAAA,CAAA;EAAA,KAAA,EAAA,EAAA4I,aAAA,CAAA,CAAA;MAtQhCpG,KAAA,CAAK6J,cAAc,EAAE,CAAA;MACrB7J,KAAA,CAAK8J,8BAA8B,EAAE,CAAA;MACrC9J,KAAA,CAAK+J,gBAAgB,EAAE,CAAA;EACvBjL,IAAAA,MAAM,CAACkL,gBAAgB,CAAC,MAAM,EAAE,YAAK;EACnChK,MAAAA,KAAA,CAAK1C,IAAI,CAACjB,cAAc,CAAC4N,OAAO,EAAE;EAChC9I,QAAAA,OAAO,EAAED,UAAU,CACjBlB,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACJ,OAAO,CAAC,IAAIF,MAAM,CAAC,CAAC,CAAC,CAAA;EAE7D,OAAA,CAAC,CAAA;QACFjB,KAAA,CAAKkK,cAAc,EAAE,CAAA;QACrBlK,KAAA,CAAKmK,cAAc,EAAE,CAAA;EACvB,KAAC,CAAC,CAAA;EAAC,IAAA,OAAAnK,KAAA,CAAA;EACL,GAAA;EAEA;;;EAGG;IAHHE,cAAA,CAAAgG,QAAA,EAAAC,aAAA,CAAA,CAAA;EAAA,EAAA,IAAA1J,MAAA,GAAAyJ,QAAA,CAAAxJ,SAAA,CAAA;EAAAD,EAAAA,MAAA,CAIO2N,WAAW,GAAX,SAAAA,cAAW;EAChB;EACA,IAAA,OAAO,IAAI,CAAA;EACb,GAAA;EAEA;;;;;;;EAOG,MAPH;EAAA3N,EAAAA,MAAA,CAQa0G,OAAO;EAAA;EAAA,EAAA,YAAA;MAAA,IAAAkH,QAAA,gBAAAzH,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAb,SAAAwH,SAAAA,CAAAC,MAAA,EAAA;QAAA,IAAAC,oBAAA,EAAAC,cAAA,CAAA;QAAA,IAAAzH,MAAA,EAAAC,MAAA,CAAA;EAAA,MAAA,OAAAJ,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAsH,WAAAC,UAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAApH,IAAA,GAAAoH,UAAA,CAAAnH,IAAA;EAAA,UAAA,KAAA,CAAA;cACLR,MAAM,GAAAuH,MAAA,CAANvH,MAAM,EACNC,MAAM,GAAAsH,MAAA,CAANtH,MAAM,CAAA;EAAA0H,YAAAA,UAAA,CAAAnH,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OAAA,CAAAgH,oBAAA,GAEQ,CAAAC,cAAA,GAAI,IAAA,CAAC7D,OAAO,EAAC5D,MAAM,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAApBwH,oBAAA,CAAAvK,IAAA,CAAAwK,cAAA,EAAuBxH,MAAM,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAA0H,UAAA,CAAA9G,MAAA,CAAA8G,QAAAA,EAAAA,UAAA,CAAAjH,IAAA,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAiH,UAAA,CAAA7G,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAwG,SAAA,EAAA,IAAA,CAAA,CAAA;OAC7C,CAAA,CAAA,CAAA;EAAA,IAAA,SAAAnH,QAAA6C,GAAA,EAAA;EAAA,MAAA,OAAAqE,QAAA,CAAArM,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAA2F,OAAA,CAAA;EAAA,GAAA,EAAA,CAAA;EAqOD;;;;EAIG;EAJH1G,EAAAA,MAAA,CAKcyN,cAAc;EAAA;EAAA,EAAA,YAAA;MAAA,IAAAU,eAAA,gBAAAhI,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAApB,SAAA+H,SAAA,GAAA;QAAA,IAAA1D,YAAA,EAAA5C,SAAA,EAAAuG,mBAAA,EAAA/D,UAAA,EAAAgE,QAAA,CAAA;EAAA,MAAA,OAAAlI,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAA4H,WAAAC,UAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA1H,IAAA,GAAA0H,UAAA,CAAAzH,IAAA;EAAA,UAAA,KAAA,CAAA;cACA2D,YAAY,GAAG,IAAI,CAAC5E,OAAO,CAACd,QAAQ,CAACF,cAAc,CAAC4F,YAAY,CAAC,CAAA;cACjE5C,SAAS,GAAG,IAAI,CAAChC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAC,CAAA;cAAA,IAC7D4C,EAAAA,YAAY,IAAI,CAAC5C,SAAS,CAAA,EAAA;EAAA0G,cAAAA,UAAA,CAAAzH,IAAA,GAAA,EAAA,CAAA;EAAA,cAAA,MAAA;EAAA,aAAA;EAAAyH,YAAAA,UAAA,CAAA1H,IAAA,GAAA,CAAA,CAAA;EAAA0H,YAAAA,UAAA,CAAAzH,IAAA,GAAA,CAAA,CAAA;cAAA,OAGlB,IAAI,CAAC8C,GAAG,CAAChC,iBAAiB,CAC9B9B,cAAc,CAAC0E,oBAAoB,EACnC;EACEC,cAAAA,YAAY,EAAZA,YAAAA;EACD,aAAA,CACF,CAAA;EAAA,UAAA,KAAA,CAAA;cANGJ,UAAU,GAAAkE,UAAA,CAAAvH,IAAA,CAAA;EAQhB,YAAA,IAAI,CAACnB,OAAO,CAACR,KAAK,EAAE,CAAA;EACpB,YAAA,IAAI,CAACQ,OAAO,CAACX,QAAQ,CACnBL,cAAc,CAACgD,SAAS,EACxBwC,UAAU,CAACK,OAAO,CAAC7C,SAAS,CAC7B,CAAA;EAAC,YAAA,IAEGwC,UAAU,CAACK,OAAO,CAAC7C,SAAS,EAAA;EAAA0G,cAAAA,UAAA,CAAAzH,IAAA,GAAA,EAAA,CAAA;EAAA,cAAA,MAAA;EAAA,aAAA;cAAA,MACzBnD,cAAc,CAACC,aAAa,CAAA;EAAA,UAAA,KAAA,EAAA;EAG9ByK,YAAAA,QAAQ,GAAG,CACf,CAAAD,CAAAA,mBAAA,GAAA/D,UAAU,CAACK,OAAO,KAAA0D,IAAAA,IAAAA,CAAAA,mBAAA,GAAlBA,mBAAA,CAAoBI,UAAU,KAAAJ,IAAAA,IAAAA,CAAAA,mBAAA,GAA9BA,mBAAA,CAA0C,QAAA,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAA1CA,mBAAA,CAA4CC,QAAQ,KAAI,EAAE,EAC1DI,GAAG,CAAC,UAACC,OAAO,EAAA;EAAA,cAAA,OACZA,OAAO,CAACvM,QAAQ,CAAC,GAAG,CAAC,GAAGuM,OAAO,CAAChK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAGgK,OAAO,CAAA;eAC9D,CAAA,CAAA;EACD,YAAA,IAAI,CAAC7I,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACwG,OAAO,EAAEgD,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;cAChE,IAAI,CAACzN,IAAI,CAACjB,cAAc,CAACyL,eAAe,EAAEiD,QAAQ,CAAC,CAAA;EAACE,YAAAA,UAAA,CAAAzH,IAAA,GAAA,EAAA,CAAA;EAAA,YAAA,MAAA;EAAA,UAAA,KAAA,EAAA;EAAAyH,YAAAA,UAAA,CAAA1H,IAAA,GAAA,EAAA,CAAA;cAAA0H,UAAA,CAAAnF,EAAA,GAAAmF,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAEpD,YAAA,IAAI,CAAC1I,OAAO,CAACR,KAAK,EAAE,CAAA;EAAC,UAAA,KAAA,EAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAkJ,UAAA,CAAAnH,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAA+G,SAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;OAG1B,CAAA,CAAA,CAAA;EAAA,IAAA,SAAAX,cAAA,GAAA;EAAA,MAAA,OAAAU,eAAA,CAAA5M,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAA0M,cAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;EAIG;EAJH,GAAA;EAAAzN,EAAAA,MAAA,CAKc0N,cAAc;EAAA;EAAA,EAAA,YAAA;MAAA,IAAAkB,eAAA,gBAAAzI,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAApB,SAAAwI,SAAA,GAAA;QAAA,IAAAnE,YAAA,EAAA5C,SAAA,CAAA;EAAA,MAAA,OAAA1B,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAmI,WAAAC,UAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAjI,IAAA,GAAAiI,UAAA,CAAAhI,IAAA;EAAA,UAAA,KAAA,CAAA;cACA2D,YAAY,GAAG,IAAI,CAAC5E,OAAO,CAACd,QAAQ,CAACF,cAAc,CAAC4F,YAAY,CAAC,CAAA;cACjE5C,SAAS,GAAG,IAAI,CAAChC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAC,CAAA;cAAA,IAC7DA,EAAAA,SAAS,IAAI,CAAC4C,YAAY,CAAA,EAAA;EAAAqE,cAAAA,UAAA,CAAAhI,IAAA,GAAA,EAAA,CAAA;EAAA,cAAA,MAAA;EAAA,aAAA;EAAAgI,YAAAA,UAAA,CAAAjI,IAAA,GAAA,CAAA,CAAA;EAAAiI,YAAAA,UAAA,CAAAhI,IAAA,GAAA,CAAA,CAAA;cAAA,OAEpB,IAAI,CAACL,OAAO,CAAW;gBAC3BH,MAAM,EAAEiD,mBAAmB,CAACY,mBAAAA;EAC7B,aAAA,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA2E,YAAAA,UAAA,CAAAhI,IAAA,GAAA,EAAA,CAAA;EAAA,YAAA,MAAA;EAAA,UAAA,KAAA,CAAA;EAAAgI,YAAAA,UAAA,CAAAjI,IAAA,GAAA,CAAA,CAAA;cAAAiI,UAAA,CAAA1F,EAAA,GAAA0F,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAEF,YAAA,IAAI,CAACjJ,OAAO,CAACR,KAAK,EAAE,CAAA;EAAC,UAAA,KAAA,EAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAyJ,UAAA,CAAA1H,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAwH,SAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAG1B,CAAA,CAAA,CAAA;EAAA,IAAA,SAAAnB,cAAA,GAAA;EAAA,MAAA,OAAAkB,eAAA,CAAArN,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAA2M,cAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;EAIG;EAJH,GAAA;EAAA1N,EAAAA,MAAA,CAKQoN,cAAc,GAAd,SAAAA,iBAAc;EACpB,IAAA,IAAI,CAAC/K,MAAM,CAAC2M,QAAQ,EAAE;QACpB3M,MAAM,CAAC2M,QAAQ,GAAG,IAAI,CAAA;EACxB,KAAC,MAAM;EACL,MAAA,IACE3M,MAAM,CAAC2M,QAAQ,CAACC,SAAS,IACzB/N,KAAK,CAACkK,OAAO,CAAC/I,MAAM,CAAC2M,QAAQ,CAACC,SAAS,CAAC,EACxC;UACA5M,MAAM,CAAC2M,QAAQ,CAACC,SAAS,CAACzO,IAAI,CAAC,IAAI,CAAC,CAAA;EACtC,OAAC,MAAM;UACL6B,MAAM,CAAC2M,QAAQ,CAACC,SAAS,GAAG,CAAC5M,MAAM,CAAC2M,QAAQ,EAAE,IAAI,CAAC,CAAA;EACrD,OAAA;EACF,KAAA;EACF,GAAA;EAEA;;;;;;EAMG,MANH;EAAAhP,EAAAA,MAAA,CAOQsN,gBAAgB,GAAhB,SAAAA,mBAAgB;EACtBjL,IAAAA,MAAM,CAAC6M,aAAa,CAClB,IAAIC,WAAW,CAAC,0BAA0B,EAAE;EAC1CC,MAAAA,MAAM,EAAEC,MAAM,CAACC,MAAM,CAAC;EAAEC,QAAAA,IAAI,EAAExM,YAAY;EAAEyM,QAAAA,QAAQ,EAAE,IAAA;SAAM,CAAA;EAC7D,KAAA,CAAC,CACH,CAAA;EACH,GAAA;EAEA;;;;;;EAMG,MANH;EAAAxP,EAAAA,MAAA,CAOQqN,8BAA8B,GAA9B,SAAAA,iCAA8B;EAAA,IAAA,IAAAoC,MAAA,GAAA,IAAA,CAAA;EACpCpN,IAAAA,MAAM,CAACkL,gBAAgB,CAAC,yBAAyB,EAAE,YAAK;QACtDkC,MAAI,CAACnC,gBAAgB,EAAE,CAAA;EACzB,KAAC,CAAC,CAAA;KACH,CAAA;EAAA,EAAA,OAAA7D,QAAA,CAAA;EAAA,CAAA,CAzX2B5J,YAAY,CAAA;;ECvE1C,IAAY6P,gBAiBX,CAAA;EAjBD,CAAA,UAAYA,gBAAgB,EAAA;EAC1B;;EAEG;EACHA,EAAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;EACvB;;EAEG;EACHA,EAAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;EACnC;;EAEG;EACHA,EAAAA,gBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;EACzC;;EAEG;EACHA,EAAAA,gBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;EACnD,CAAC,EAjBWA,gBAAgB,KAAhBA,gBAAgB,GAiB3B,EAAA,CAAA,CAAA;;ECJD;;;EAGG;EACH,IAAaC,SAAS,gBAAA,YAAA;IAOpB,SAAAA,SAAAA,CAAYC,MAAwB,EAAA;EANpC;;;EAGG;EAHH,IAAA,IAAA,CAIOJ,QAAQ,GAAA,KAAA,CAAA,CAAA;EA0Kf;;;EAGG;EAHH,IAAA,IAAA,CAIQ1J,OAAO,GAAe,IAAIf,UAAU,EAAE,CAAA;MA3K5C,IAAI6K,MAAM,IAANA,IAAAA,IAAAA,MAAM,CAAElO,KAAK,IAAIkO,MAAM,IAANA,IAAAA,IAAAA,MAAM,CAAEC,MAAM,EAAE;QACnCxN,MAAM,CAACC,QAAQ,GAAAwN,QAAA,CAAA,EAAA,EACTzN,MAAM,CAACC,QAAQ,IAAI,EAAE,EAAA;EACzBZ,QAAAA,KAAK,EAAEkO,MAAM,IAANA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAElO,KAAK;EACpBmO,QAAAA,MAAM,EAAED,MAAM,IAANA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEC,MAAAA;SACjB,CAAA,CAAA;EACH,KAAA;MAEA,IAAI,CAAC/J,OAAO,CAACX,QAAQ,CACnBL,cAAc,CAACJ,OAAO,EACtB,IAAI,CAACoB,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACJ,OAAO,CAAC,IAAIF,MAAM,CAAC,CAAC,CAAC,CAC3D,CAAA;EACD,IAAA,IAAI,CAACgL,QAAQ,GAAG,IAAI,CAACO,eAAe,EAAE,CAAA;MACtC,IAAI,CAACC,YAAY,EAAE,CAAA;EACnB,IAAA,IAAI,CAACR,QAAQ,CAACtP,EAAE,CAACN,cAAc,CAACqL,IAAI,EAAE,IAAI,CAACgF,aAAa,CAAC,CAAA;EAC3D,GAAA;EAEA;;;;;;;;EAQG;EARH,EAAA,IAAAjQ,MAAA,GAAA2P,SAAA,CAAA1P,SAAA,CAAA;EAAAD,EAAAA,MAAA,CASO2N,WAAW,GAAX,SAAAA,cAAW;EAChB,IAAA,OAAO,IAAI,CAAC6B,QAAQ,CAAC7B,WAAW,EAAE,CAAA;EACpC,GAAA;EAEA;;;EAGG,MAHH;EAAA3N,EAAAA,MAAA,CAIOkQ,iBAAiB,GAAjB,SAAAA,oBAAiB;EACtB,IAAA,OACE,IAAI,CAACvC,WAAW,EAAE,IAClB,CAAC,CAAC,IAAI,CAAC7H,OAAO,CAACd,QAAQ,CAACF,cAAc,CAAC4F,YAAY,CAAC,IACpD,CAAC,IAAI,CAAC5E,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAC,CAAA;EAEpD,GAAA;EAEA;;;;;EAKG,MALH;EAAA9H,EAAAA,MAAA,CAMawN,OAAO;EAAA;EAAA,EAAA,YAAA;MAAA,IAAA2C,QAAA,gBAAAhK,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAb,SAAAC,OAAA,GAAA;EAAA,MAAA,OAAAF,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;EAAA,UAAA,KAAA,CAAA;EAAAF,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OACQ,IAAI,CAACyI,QAAQ,CAAC9I,OAAO,CAAC;gBACjCH,MAAM,EAAEiD,mBAAmB,CAACY,mBAAAA;EAC7B,aAAA,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAAvD,QAAA,CAAAO,MAAA,CAAAP,QAAAA,EAAAA,QAAA,CAAAI,IAAA,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAJ,QAAA,CAAAQ,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAf,OAAA,EAAA,IAAA,CAAA,CAAA;OACH,CAAA,CAAA,CAAA;EAAA,IAAA,SAAAkH,OAAA,GAAA;EAAA,MAAA,OAAA2C,QAAA,CAAA5O,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAAyM,OAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;;EAKG;EALH,GAAA;EAAAxN,EAAAA,MAAA,CAMakM,UAAU;EAAA;EAAA,EAAA,YAAA;MAAA,IAAAkE,WAAA,gBAAAjK,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAhB,SAAAqB,QAAA,GAAA;EAAA,MAAA,OAAAtB,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAgB,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAd,IAAA,GAAAc,SAAA,CAAAb,IAAA;EAAA,UAAA,KAAA,CAAA;EAAAa,YAAAA,SAAA,CAAAb,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OACQ,IAAI,CAACyI,QAAQ,CAAC9I,OAAO,CAAC;gBACjCH,MAAM,EAAEiD,mBAAmB,CAACsC,cAAAA;EAC7B,aAAA,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAAlE,SAAA,CAAAR,MAAA,CAAAQ,QAAAA,EAAAA,SAAA,CAAAX,IAAA,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAW,SAAA,CAAAP,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAK,QAAA,EAAA,IAAA,CAAA,CAAA;OACH,CAAA,CAAA,CAAA;EAAA,IAAA,SAAAwE,UAAA,GAAA;EAAA,MAAA,OAAAkE,WAAA,CAAA7O,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAAmL,UAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;;;;;;EASG;EATH,GAAA;EAAAlM,EAAAA,MAAA,CAUaqQ,eAAe;EAAA;EAAA,EAAA,YAAA;MAAA,IAAAC,gBAAA,gBAAAnK,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAArB,SAAA8B,QAAAA,CAAsB3B,MAI5B,EAAA;EAAA,MAAA,OAAAJ,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAyB,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAvB,IAAA,GAAAuB,SAAA,CAAAtB,IAAA;EAAA,UAAA,KAAA,CAAA;EAAAsB,YAAAA,SAAA,CAAAtB,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OACc,IAAI,CAACyI,QAAQ,CAAC9I,OAAO,CAAS;gBACzCH,MAAM,EAAEiD,mBAAmB,CAAC+B,mBAAmB;gBAC/C/E,MAAM,EAAE,CAACA,MAAM,CAAA;EAChB,aAAA,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAA6B,SAAA,CAAAjB,MAAA,CAAAiB,QAAAA,EAAAA,SAAA,CAAApB,IAAA,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAoB,SAAA,CAAAhB,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAc,QAAA,EAAA,IAAA,CAAA,CAAA;OACH,CAAA,CAAA,CAAA;EAAA,IAAA,SAAAkI,gBAAA/I,EAAA,EAAA;EAAA,MAAA,OAAAgJ,gBAAA,CAAA/O,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAAsP,eAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;;;EAMG;EANH,GAAA;EAAArQ,EAAAA,MAAA,CAOauQ,WAAW;EAAA;EAAA,EAAA,YAAA;MAAA,IAAAC,YAAA,gBAAArK,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAjB,SAAAqC,QAAAA,CAAkBrF,OAAe,EAAA;EAAA,MAAA,OAAA+C,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAiC,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAA9B,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA8B,YAAAA,SAAA,CAAA9B,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OACzB,IAAI,CAACyI,QAAQ,CAAC9I,OAAO,CAAS;gBACzCH,MAAM,EAAEiD,mBAAmB,CAACiC,aAAa;gBACzCjF,MAAM,EAAE,CAACnD,OAAO,EAAE,IAAI,CAACyC,OAAO,CAACd,QAAQ,CAAC,SAAS,CAAC,CAAA;EACnD,aAAA,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAA6D,SAAA,CAAAzB,MAAA,CAAAyB,QAAAA,EAAAA,SAAA,CAAA5B,IAAA,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAA4B,SAAA,CAAAxB,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAqB,QAAA,EAAA,IAAA,CAAA,CAAA;OACH,CAAA,CAAA,CAAA;EAAA,IAAA,SAAA6H,YAAAhJ,GAAA,EAAA;EAAA,MAAA,OAAAiJ,YAAA,CAAAjP,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAAwP,WAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;;;EAMG;EANH,GAAA;EAAAvQ,EAAAA,MAAA,CAOa8J,WAAW;EAAA;EAAA,EAAA,YAAA;MAAA,IAAA2G,YAAA,gBAAAtK,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAjB,SAAAsF,QAAAA,CAAkBjH,OAAe,EAAA;EAAA,MAAA,OAAA0B,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAiF,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/E,IAAA,GAAA+E,SAAA,CAAA9E,IAAA;EAAA,UAAA,KAAA,CAAA;EAAA8E,YAAAA,SAAA,CAAA9E,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OACzB,IAAI,CAACyI,QAAQ,CAAC9I,OAAO,CAAO;gBACvCH,MAAM,EAAEiD,mBAAmB,CAACuD,0BAA0B;EACtDvG,cAAAA,MAAM,EAAE;kBAAE9B,OAAO,EAAED,UAAU,CAACC,OAAO,CAAA;EAAG,eAAA;EACzC,aAAA,CAAC,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAAmH,SAAA,CAAAzE,MAAA,CAAAyE,QAAAA,EAAAA,SAAA,CAAA5E,IAAA,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAA4E,SAAA,CAAAxE,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAsE,QAAA,EAAA,IAAA,CAAA,CAAA;OACH,CAAA,CAAA,CAAA;EAAA,IAAA,SAAA7B,YAAAtC,GAAA,EAAA;EAAA,MAAA,OAAAiJ,YAAA,CAAAlP,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAA+I,WAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;;EAKG;EALH,GAAA;EAAA9J,EAAAA,MAAA,CAMO0Q,QAAQ,GAAR,SAAAA,WAAQ;EACb,IAAA,OAAO,IAAI,CAAC5K,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACJ,OAAO,CAAC,IAAIF,MAAM,CAAC,CAAC,CAAC,CAAA;EACnE,GAAA;EAEA;;;;;;EAMG,MANH;EAAAxE,EAAAA,MAAA,CAOa2Q,oBAAoB;EAAA;EAAA,EAAA,YAAA;MAAA,IAAAC,qBAAA,gBAAAzK,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAA1B,SAAA0F,QAAAA,CACL8E,MAAc,EAAA;EAAA,MAAA,IAAAhH,GAAA,CAAA;EAAA,MAAA,OAAAzD,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAqF,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAnF,IAAA,GAAAmF,SAAA,CAAAlF,IAAA;EAAA,UAAA,KAAA,CAAA;EAER8C,YAAAA,GAAG,GAAG,IAAI7D,GAAG,EAAE,CAAA;EACrB,YAAA,IAAI,CAAC8K,gBAAgB,CAACpB,gBAAgB,CAACqB,sBAAsB,EAAE;EAAEF,cAAAA,MAAM,EAANA,MAAAA;EAAQ,aAAA,CAAC,CAAA;EAAC5E,YAAAA,SAAA,CAAAlF,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OAC9D8C,GAAG,CAAChC,iBAAiB,CAChC9B,cAAc,CAAC4K,oBAAoB,EACnC;gBAAEjP,KAAK,EAAEF,QAAQ,EAAE;EAAEqP,cAAAA,MAAM,EAANA,MAAAA;EAAM,aAAE,CAC9B,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAA5E,SAAA,CAAA7E,MAAA,CAAA6E,QAAAA,EAAAA,SAAA,CAAAhF,IAAA,CAAA,CAAA;EAAA,UAAA,KAAA,CAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAgF,SAAA,CAAA5E,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAA0E,QAAA,EAAA,IAAA,CAAA,CAAA;OACF,CAAA,CAAA,CAAA;EAAA,IAAA,SAAA4E,qBAAA3I,GAAA,EAAA;EAAA,MAAA,OAAA4I,qBAAA,CAAArP,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAA4P,oBAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;;;EAMG;EANH,GAAA;IAAA3Q,MAAA,CAOOE,EAAE,GAAF,SAAAA,GAAGC,KAAwB,EAAEC,QAAkB,EAAA;MACpD,IAAI,CAACoP,QAAQ,CAACtP,EAAE,CAACC,KAAK,EAAEC,QAAQ,CAAC,CAAA;EACjC,IAAA,OAAO,IAAI,CAAA;EACb,GAAA;EAEA;;;;;;EAMG,MANH;IAAAJ,MAAA,CAOOS,cAAc,GAAd,SAAAA,eAAeN,KAAwB,EAAEC,QAAkB,EAAA;MAChE,IAAI,CAACoP,QAAQ,CAAC/O,cAAc,CAACN,KAAK,EAAEC,QAAQ,CAAC,CAAA;EAC7C,IAAA,OAAO,IAAI,CAAA;KACZ,CAAA;EAQD;;;EAGG;EAHHJ,EAAAA,MAAA,CAIQ+P,eAAe,GAAf,SAAAA,kBAAe;EAAA,IAAA,IAAAiB,gBAAA,CAAA;EACrB,IAAA,IAAIxB,QAAQ,GAAAwB,CAAAA,gBAAA,GAAG3O,MAAM,CAAC2M,QAAQ,KAAAgC,IAAAA,IAAAA,CAAAA,gBAAA,GAAfA,gBAAA,CAAiB/B,SAAS,KAA1B+B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAA,CAA4BC,IAAI,CAC7C,UAACzB,QAA4B,EAAA;EAAA,MAAA,OAC3BA,QAAQ,YAAY/F,QAAQ,IAAI+F,QAAQ,CAAC5F,gBAAgB,CAAA;OAC5D,CAAA,CAAA;EACD,IAAA,IACE,CAAC4F,QAAQ,IACTnN,MAAM,CAAC2M,QAAQ,YAAYvF,QAAQ,IACnCpH,MAAM,CAAC2M,QAAQ,CAACpF,gBAAgB,EAChC;QACA4F,QAAQ,GAAGnN,MAAM,CAAC2M,QAAQ,CAAA;EAC5B,KAAA;MACA,IAAI,CAACQ,QAAQ,EAAE;EACbA,MAAAA,QAAQ,GAAG,IAAI/F,QAAQ,EAAE,CAAA;EAC3B,KAAA;EACA,IAAA,OAAO+F,QAAQ,CAAA;EACjB,GAAA;EAEA;;;;;EAKG,MALH;EAAAxP,EAAAA,MAAA,CAMQiQ,aAAa,GAAb,SAAAA,aAAAA,CAAAjG,IAAA,EAG2B;EAAA,IAAA,IAAAkH,gBAAA,CAAA;EAAA,IAAA,IAFjClG,UAAU,GAAAhB,IAAA,CAAVgB,UAAU;QACVD,iBAAiB,GAAAf,IAAA,CAAjBe,iBAAiB,CAAA;MAEjB,IAAMoG,MAAM,GAAAD,CAAAA,gBAAA,GAAG7O,MAAM,CAAC+O,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAfF,gBAAA,CAAiBC,MAAM,CAAA;MACtC,IAAME,WAAW,0DAAwDrG,UAAY,CAAA;EACrF,IAAA,IACEmG,MAAM,IACNA,MAAM,CAACG,gBAAgB,IACvBH,MAAM,CAACI,QAAQ,IACfJ,MAAM,CAACI,QAAQ,KAAK,SAAS,EAC7B;EACAJ,MAAAA,MAAM,CAACG,gBAAgB,CAACvG,iBAAiB,CAAC,CAAA;EAC5C,KAAC,MAAM;EACL1I,MAAAA,MAAM,CAACmP,IAAI,CAACH,WAAW,EAAE,QAAQ,CAAC,CAAA;EACpC,KAAA;EACF,GAAA;EAEA;;;;;;EAMG,MANH;EAAArR,EAAAA,MAAA,CAOc8Q,gBAAgB;EAAA;EAAA,EAAA,YAAA;EAAA,IAAA,IAAAW,iBAAA,gBAAAtL,iBAAA,eAAAC,mBAAA,EAAA,CAAAC,IAAA,CAAtB,SAAAiG,QAAAA,CACNtJ,IAAqB,EACrB/B,IAA8B,EAAA;QAAA,IAAAQ,gBAAA,EAAAiQ,iBAAA,CAAA;EAAA,MAAA,IAAA7B,MAAA,EAAAnO,KAAA,EAAAiQ,cAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAjI,GAAA,CAAA;EAAA,MAAA,OAAAzD,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAA6F,UAAAC,SAAA,EAAA;EAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3F,IAAA,GAAA2F,SAAA,CAAA1F,IAAA;EAAA,UAAA,KAAA,CAAA;EAExB8I,YAAAA,MAAM,GAAG,CAAApO,CAAAA,gBAAA,GAAAY,MAAM,CAACC,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAfb,gBAAA,CAAiBoO,MAAM,KAAIxN,MAAM,CAAC0P,QAAQ,CAACC,MAAM,CAAA;cAC1DtQ,KAAK,GAAGF,QAAQ,EAAE,CAAA;cAClBmQ,cAAc,GAAA,CAAAD,iBAAA,GAAGrP,MAAM,CAAC+O,QAAQ,KAAA,IAAA,IAAA,CAAAM,iBAAA,GAAfA,iBAAA,CAAiBP,MAAM,KAAA,IAAA,IAAA,CAAAO,iBAAA,GAAvBA,iBAAA,CAAyBO,cAAc,KAAA,IAAA,IAAA,CAAAP,iBAAA,GAAvCA,iBAAA,CAAyCQ,IAAI,KAAA,IAAA,GAAA,KAAA,CAAA,GAA7CR,iBAAA,CAA+CxI,EAAE,CAAA;EAAAuD,YAAAA,SAAA,CAAA3F,IAAA,GAAA,CAAA,CAAA;EAGhE+C,YAAAA,GAAG,GAAG,IAAI7D,GAAG,EAAE,CAAA;EAAAyG,YAAAA,SAAA,CAAA1F,IAAA,GAAA,CAAA,CAAA;EAAA,YAAA,OACf8C,GAAG,CAAChC,iBAAiB,CACzB9B,cAAc,CAAC+K,gBAAgB,EAC/B;EACE9N,cAAAA,IAAI,EAAJA,IAAI;EACJ6M,cAAAA,MAAM,EAANA,MAAM;EACN8B,cAAAA,cAAc,EAAdA,cAAc;EACd1Q,cAAAA,IAAI,EAAA6O,QAAA,CAAA,EAAA,EACE7O,IAAI,IAAI,EAAE,EAAA;EACdkR,gBAAAA,OAAO,EAAE9P,MAAM,CAAC0P,QAAQ,CAACK,IAAI;EAC7B1Q,gBAAAA,KAAK,EAALA,KAAK;kBACLoG,SAAS,EAAE,IAAI,CAAChC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAC;kBAC1DvC,QAAQ,EAAE,IAAI,CAACO,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACS,QAAQ,CAAC;EACxD8M,gBAAAA,SAAS,EAAEC,OAAO,CAAAV,CAAAA,iBAAA,GAACvP,MAAM,CAAC+O,QAAQ,KAAfQ,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAiBK,cAAc,CAAC;EACnDM,gBAAAA,eAAe,EAAAV,CAAAA,iBAAA,GAAExP,MAAM,CAAC+O,QAAQ,KAAA,IAAA,IAAA,CAAAS,iBAAA,GAAfA,iBAAA,CAAiBV,MAAM,KAAvBU,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAyBN,QAAQ;EAClDiB,gBAAAA,iBAAiB,EAAAV,CAAAA,iBAAA,GAAEzP,MAAM,CAAC+O,QAAQ,KAAA,IAAA,IAAA,CAAAU,iBAAA,GAAfA,iBAAA,CAAiBX,MAAM,KAAvBW,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAyBW,OAAO;EACnDC,gBAAAA,SAAS,EAAErQ,MAAM,CAACsQ,SAAS,CAACD,SAAAA;EAAS,eAAA,CAAA;EAExC,aAAA,CACF,CAAA;EAAA,UAAA,KAAA,CAAA;EAAAjG,YAAAA,SAAA,CAAA1F,IAAA,GAAA,EAAA,CAAA;EAAA,YAAA,MAAA;EAAA,UAAA,KAAA,CAAA;EAAA0F,YAAAA,SAAA,CAAA3F,IAAA,GAAA,CAAA,CAAA;cAAA2F,SAAA,CAAApD,EAAA,GAAAoD,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,UAAA,KAAA,EAAA,CAAA;EAAA,UAAA,KAAA,KAAA;cAAA,OAAAA,SAAA,CAAApF,IAAA,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA,EAAAiF,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAIJ,CAAA,CAAA,CAAA;MAAA,SAAAwE,gBAAAA,CAAA7I,GAAA,EAAAM,GAAA,EAAA;EAAA,MAAA,OAAAkJ,iBAAA,CAAAlQ,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,IAAA,OAAA+P,gBAAA,CAAA;EAAA,GAAA,EAAA;EAED;;;;;EAKG;EALH,GAAA;EAAA9Q,EAAAA,MAAA,CAMQgQ,YAAY,GAAZ,SAAAA,eAAY;EAAA,IAAA,IAAAzM,KAAA,GAAA,IAAA,CAAA;EAClB,IAAA,IAAI,CAACuN,gBAAgB,CAACpB,gBAAgB,CAACkD,SAAS,CAAC,CAAA;EAEjD,IAAA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,OAAiB,EAAI;EAC5C,MAAA,IAAIA,OAAO,CAAC9R,MAAM,GAAG,CAAC,EAAE;EACtBuC,QAAAA,KAAI,CAACuN,gBAAgB,CAACpB,gBAAgB,CAACqD,eAAe,EAAE;EACtDD,UAAAA,OAAO,EAAEA,OAAAA;EACV,SAAA,CAAC,CAAA;EACJ,OAAA;OACD,CAAA;EAED,IAAA,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAQ;EAC9BzP,MAAAA,KAAI,CAACuN,gBAAgB,CAACpB,gBAAgB,CAACuD,kBAAkB,CAAC,CAAA;OAC3D,CAAA;MAED,IAAI,CAAC/S,EAAE,CAACN,cAAc,CAACyL,eAAe,EAAEwH,eAAe,CAAC,CAAA;MACxD,IAAI,CAAC3S,EAAE,CAACN,cAAc,CAACsM,UAAU,EAAE8G,kBAAkB,CAAC,CAAA;KACvD,CAAA;EAAA,EAAA,OAAArD,SAAA,CAAA;EAAA,CAAA,EAAA;;ECtSH;;EAEG;AACI,MAAMuD,iBAAiB,GAAGvD,UAAS;EAE1C,SAASwD,IAAIA,GAAA;EAAA,EAAA,IAAA1R,gBAAA,CAAA;IACX,IACE,EAAA,CAAAA,gBAAA,GAACY,MAAM,CAACC,QAAQ,KAAA,IAAA,IAAfb,gBAAA,CAAiBkO,SAAS,KAC3B,EAAEtN,MAAM,CAACC,QAAQ,CAACqN,SAAS,YAAYA,SAAS,CAAC,EACjD;MACAtN,MAAM,CAACC,QAAQ,GAAAwN,QAAA,CAAA,EAAA,EACTzN,MAAM,CAACC,QAAQ,IAAI,EAAE,EAAA;QACzBqN,SAAS,EAAE,IAAIA,SAAS,EAAE;OAC3B,CAAA,CAAA;EACH,GAAA;EACF,CAAA;EAEA;EACAwD,IAAI,EAAE;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.umd.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","address","accountsChanged","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file diff --git a/dist/grindery-wallet-sdk.umd.production.min.js b/dist/grindery-wallet-sdk.umd.production.min.js index 39d5250..8f75fc3 100644 --- a/dist/grindery-wallet-sdk.umd.production.min.js +++ b/dist/grindery-wallet-sdk.umd.production.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["grindery-wallet-sdk"]={})}(this,(function(e){"use strict";function t(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(t=function(){return!!e})()}function n(){n=function(){return t};var e,t={},r=Object.prototype,i=r.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new O(r||[]);return o(i,"_invoke",{value:k(e,n,a)}),i}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function N(){}function m(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==r&&i.call(D,s)&&(I=D);var j=m.prototype=y.prototype=Object.create(I);function T(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function n(r,o,a,s){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var r;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}})}function k(t,n,r){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(r.method=o,r.arg=a;;){var s=r.delegate;if(s){var c=A(s,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===d)throw i=w,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=h(t,n,r);if("normal"===u.type){if(i=r.done?w:f,u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=w,r.method="throw",r.arg=u.arg)}}}function A(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,A(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=h(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var a=o.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function U(t){if(t||""===t){var n=t[s];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function n(){for(;++r<t.length;)if(i.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return N.prototype=m,o(j,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:N,configurable:!0}),N.displayName=p(m,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===N||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},t.awrap=function(e){return{__await:e}},T(x.prototype),p(x.prototype,c,(function(){return this})),t.AsyncIterator=x,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new x(l(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},T(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=U,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(L),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,i){return s.type="throw",s.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;L(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:U(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function r(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,c,"next",e)}function c(e){r(a,i,o,s,c,"throw",e)}s(void 0)}))}}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,c(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function u(e){var n="function"==typeof Map?new Map:void 0;return u=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,r)}function r(){return function(e,n,r){if(t())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(e.bind.apply(e,i));return r&&c(o,r.prototype),o}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)},u(e)}var p;!function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(p||(p={}));var l,h=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var n=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,n)}return this},t.emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,n[0]),this.events.get(e).forEach((function(e){e.apply(void 0,n)}))),this},e}(),d=function(){for(var e,t="",n=document.querySelectorAll("[data-app-id]"),r=0;r<n.length;r++){var i=n[r],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},f=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},g={uuid:f(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},w=function(e){function t(t,n,r){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=n,i.data=r,i}return a(t,e),t}(u(Error)),v={PairingFailed:new w("Pairing failed",4900),Disconnected:new w("Disconnected",4900),UnsupportedMethod:new w("Unsupported Method",4200),Unauthorized:new w("Unauthorized",4100),NoResult:new w("No result",4900),NoAppId:new w("App ID is required",4900),UserRejected:new w("User Rejected Request",4001),ChainDisconnected:new w("Chain Disconnected",4901)},y=function(e){return e instanceof w?new w(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new w(e.message||"Unknown error",4900,e):new w("Unknown error",4900,e)},N=["eip155:137","eip155:56","eip155:204"],m=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},I=function(e){return"eip155:"+parseInt(e,16)},M="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(l||(l={}));var D,j=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var n=this.getSnapshot();return n[e]=t,this.saveSnapshot(n),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||f(),chainId:this.getSnapshot().chainId||N[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(M)||"{}")}catch(e){throw localStorage.setItem(M,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(M,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(D||(D={}));var T,x=function(){function e(){}var t=e.prototype;return t.sendAndWaitRpcRequest=function(){var e=i(n().mark((function e(t,r,i){var o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(t,r);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t.sendRpcRequest=function(){var e=i(n().mark((function e(t,r){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new j,e.next=3,this.sendRpcApiRequest(D.request,{sessionId:i.getValue(l.sessionId),scope:i.getValue(l.chainId),request:{method:t,params:r}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.waitRpcRequest=function(){var e=i(n().mark((function e(t,r){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(D.waitForRequestResult,{requestToken:t,timeout:r});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.sendRpcApiRequest=function(){var e=i(n().mark((function e(t,r){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+t,params:r||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new w(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw v.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new w(e.t0.message,500,e.t0);case 18:throw new w("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,n){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(T||(T={}));var k,A=function(e){function t(){var t,r,o,a,s,c,u,h,f;return(r=e.call(this)||this).isGrinderyWallet=!0,r.storage=new j,r.rpc=new x,r.switchChain=function(){var e=i(n().mark((function e(t){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=I(i=t.chainId),N.includes(o)){e.next=4;break}throw y(v.ChainDisconnected);case 4:return r.storage.setValue(l.chainId,o),r.emit(p.chainChanged,{chainId:i}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.methods=((t={})[T.eth_requestAccounts]=(f=i(n().mark((function e(t){var i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,r.request({method:T.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),r.storage.setValue(l.sessionId,"");case 10:if(!r.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:r.storage.getValue(l.pairingToken)});case 14:if(i=e.sent,r.storage.clear(),r.storage.setValue(l.sessionId,i.session.sessionId),i.session.sessionId){e.next=19;break}throw v.PairingFailed;case 19:return e.next=21,r.request({method:T.eth_accounts,params:t||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),r.storage.clear();case 27:return e.prev=27,r.storage.clear(),e.next=31,r.rpc.sendRpcApiRequest(D.requestPairing,{appId:d(),clientId:r.storage.getValue(l.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw v.PairingFailed;case 34:return r.storage.setValue(l.pairingToken,o.pairingToken),r.storage.setValue(l.connectUrl,o.connectUrl),r.storage.setValue(l.connectUrlBrowser,o.connectUrlBrowser),r.storage.setValue(l.shortToken,o.shortToken),r.emit(p.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(r.storage.setValue(l.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw v.PairingFailed;case 45:return r.storage.setValue(l.pairingToken,""),r.storage.setValue(l.connectUrl,""),r.storage.setValue(l.connectUrlBrowser,""),r.storage.setValue(l.shortToken,""),e.next=51,r.request({method:T.eth_accounts,params:t||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),t[T.eth_accounts]=(h=i(n().mark((function e(t){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendAndWaitRpcRequest(T.eth_accounts,t?Array.isArray(t)?t:[t]:[]);case 3:return r.emit(p.accountsChanged,i=e.sent),r.storage.setValue(l.address,i[0]||""),e.abrupt("return",i);case 9:throw e.prev=9,e.t0=e.catch(0),y(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return h.apply(this,arguments)}),t[T.eth_sendTransaction]=(u=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(T.eth_sendTransaction,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return u.apply(this,arguments)}),t[T.personal_sign]=(c=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(T.personal_sign,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),t[T.gws_disconnect]=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendRpcApiRequest(D.disconnect,{sessionToken:r.storage.getValue(l.sessionId)});case 3:return t=e.sent,r.emit(p.disconnect,v.Disconnected),e.abrupt("return",t);case 8:throw e.prev=8,e.t0=e.catch(0),y(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),t[T.eth_chainId]=(s=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",m(r.storage.getValue(l.chainId)||N[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),t[T.wallet_addEthereumChain]=(a=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw y(v.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),t[T.wallet_switchEthereumChain]=(o=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.switchChain(t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),t),r.injectProvider(),r.listenForRequestProviderEvents(),r.announceProvider(),window.addEventListener("load",(function(){r.emit(p.connect,{chainId:m(r.storage.getValue(l.chainId)||N[0])}),r.restorePairing(),r.restoreSession()})),r}a(t,e);var r=t.prototype;return r.isConnected=function(){return!0},r.request=function(){var e=i(n().mark((function e(t){var r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.method,a=t.params,e.next=3,null==(r=(i=this.methods)[o])?void 0:r.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.restorePairing=function(){var e=i(n().mark((function e(){var t,r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),r=this.storage.getValue(l.sessionId),!t||r){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:t});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(l.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw v.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(l.address,a[0]||""),this.emit(p.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),r.restoreSession=function(){var e=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),!this.storage.getValue(l.sessionId)||t){e.next=11;break}return e.prev=3,e.next=6,this.request({method:T.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),r.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},r.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:g,provider:this})}))},r.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},t}(h);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(k||(k={}));var b,L=function(){function e(e){this.provider=void 0,this.storage=new j,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=o({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(l.chainId,this.storage.getValue(l.chainId)||N[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(p.pair,this.handlePairing)}var t=e.prototype;return t.isConnected=function(){return this.provider.isConnected()},t.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(l.pairingToken)&&!this.storage.getValue(l.sessionId)},t.connect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.disconnect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.sendTransaction=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.eth_sendTransaction,params:[t]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.signMessage=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.personal_sign,params:[t,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.switchChain=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.wallet_switchEthereumChain,params:{chainId:m(t)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getChain=function(){return this.storage.getValue(l.chainId)||N[0]},t.getUserWalletAddress=function(){var e=i(n().mark((function e(t){var r;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new x,this.trackClientEvent(k.walletAddressRequested,{userId:t}),e.next=4,r.sendRpcApiRequest(D.getUserWalletAddress,{appId:d(),userId:t});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.on=function(e,t){return this.provider.on(e,t),this},t.removeListener=function(e,t){return this.provider.removeListener(e,t),this},t.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof A&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof A&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new A),t},t.handlePairing=function(e){var t,n=null==(t=window.Telegram)?void 0:t.WebApp,r="https://walletconnect.grindery.com/connect/wc?uri="+e.shortToken;n&&n.openTelegramLink&&n.platform&&"unknown"!==n.platform?n.openTelegramLink(e.connectUrlBrowser):window.open(r,"_blank")},t.trackClientEvent=function(){var e=i(n().mark((function e(t,r){var i,a,s,c,u,p,h,f,g;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(i=window.Grindery)?void 0:i.appUrl)||window.location.origin,c=d(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new x,e.next=7,g.sendRpcApiRequest(D.trackClientEvent,{name:t,appUrl:s,userTelegramId:u,data:o({},r||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(l.sessionId),clientId:this.storage.getValue(l.clientId),isMiniApp:Boolean(null==(p=window.Telegram)?void 0:p.initDataUnsafe),miniAppPlatform:null==(h=window.Telegram)||null==(h=h.WebApp)?void 0:h.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,n){return e.apply(this,arguments)}}(),t.initTracking=function(){var e=this;this.trackClientEvent(k.appOpened),this.on(p.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(k.walletConnected,{wallets:t})})),this.on(p.disconnect,(function(){e.trackClientEvent(k.walletDisconnected)}))},e}(),O=L;null!=(b=window.Grindery)&&b.WalletSDK&&window.Grindery.WalletSDK instanceof L||(window.Grindery=o({},window.Grindery||{},{WalletSDK:new L})),e.GrinderyWalletSDK=O,Object.defineProperty(e,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["grindery-wallet-sdk"]={})}(this,(function(e){"use strict";function t(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(t=function(){return!!e})()}function n(){n=function(){return t};var e,t={},r=Object.prototype,i=r.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new L(r||[]);return o(i,"_invoke",{value:T(e,n,a)}),i}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function m(){}function N(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==r&&i.call(D,s)&&(I=D);var j=N.prototype=y.prototype=Object.create(I);function x(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(r,o,a,s){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var r;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}})}function T(t,n,r){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(r.method=o,r.arg=a;;){var s=r.delegate;if(s){var c=b(s,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===d)throw i=w,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=h(t,n,r);if("normal"===u.type){if(i=r.done?w:f,u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=w,r.method="throw",r.arg=u.arg)}}}function b(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,b(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=h(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var a=o.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function A(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(A,this),this.reset(!0)}function U(t){if(t||""===t){var n=t[s];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function n(){for(;++r<t.length;)if(i.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return m.prototype=N,o(j,"constructor",{value:N,configurable:!0}),o(N,"constructor",{value:m,configurable:!0}),m.displayName=p(N,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,N):(e.__proto__=N,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},t.awrap=function(e){return{__await:e}},x(k.prototype),p(k.prototype,c,(function(){return this})),t.AsyncIterator=k,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new k(l(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=U,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,i){return s.type="throw",s.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;O(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:U(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function r(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,c,"next",e)}function c(e){r(a,i,o,s,c,"throw",e)}s(void 0)}))}}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,c(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function u(e){var n="function"==typeof Map?new Map:void 0;return u=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,r)}function r(){return function(e,n,r){if(t())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(e.bind.apply(e,i));return r&&c(o,r.prototype),o}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)},u(e)}var p;!function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(p||(p={}));var l,h=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var n=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,n)}return this},t.emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,n[0]),this.events.get(e).forEach((function(e){e.apply(void 0,n)}))),this},e}(),d=function(){for(var e,t="",n=document.querySelectorAll("[data-app-id]"),r=0;r<n.length;r++){var i=n[r],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},f=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},g={uuid:f(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},w=function(e){function t(t,n,r){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=n,i.data=r,i}return a(t,e),t}(u(Error)),v={PairingFailed:new w("Pairing failed",4900),Disconnected:new w("Disconnected",4900),UnsupportedMethod:new w("Unsupported Method",4200),Unauthorized:new w("Unauthorized",4100),NoResult:new w("No result",4900),NoAppId:new w("App ID is required",4900),UserRejected:new w("User Rejected Request",4001),ChainDisconnected:new w("Chain Disconnected",4901)},y=function(e){return e instanceof w?new w(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new w(e.message||"Unknown error",4900,e):new w("Unknown error",4900,e)},m=["eip155:137","eip155:56","eip155:204"],N=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},I=function(e){return"eip155:"+parseInt(e,16)},M="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(l||(l={}));var D,j=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var n=this.getSnapshot();return n[e]=t,this.saveSnapshot(n),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||f(),chainId:this.getSnapshot().chainId||m[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(M)||"{}")}catch(e){throw localStorage.setItem(M,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(M,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(D||(D={}));var x,k=function(){function e(){}var t=e.prototype;return t.sendAndWaitRpcRequest=function(){var e=i(n().mark((function e(t,r,i){var o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(t,r);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t.sendRpcRequest=function(){var e=i(n().mark((function e(t,r){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new j,e.next=3,this.sendRpcApiRequest(D.request,{sessionId:i.getValue(l.sessionId),scope:i.getValue(l.chainId),request:{method:t,params:r}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.waitRpcRequest=function(){var e=i(n().mark((function e(t,r){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(D.waitForRequestResult,{requestToken:t,timeout:r});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.sendRpcApiRequest=function(){var e=i(n().mark((function e(t,r){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+t,params:r||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new w(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw v.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new w(e.t0.message,500,e.t0);case 18:throw new w("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,n){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(x||(x={}));var T,b=function(e){function t(){var t,r,o,a,s,c,u,h,f;return(r=e.call(this)||this).isGrinderyWallet=!0,r.storage=new j,r.rpc=new k,r.switchChain=function(){var e=i(n().mark((function e(t){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=I(i=t.chainId),m.includes(o)){e.next=4;break}throw y(v.ChainDisconnected);case 4:return r.storage.setValue(l.chainId,o),r.emit(p.chainChanged,{chainId:i}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.methods=((t={})[x.eth_requestAccounts]=(f=i(n().mark((function e(t){var i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,r.request({method:x.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),r.storage.setValue(l.sessionId,"");case 10:if(!r.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:r.storage.getValue(l.pairingToken)});case 14:if(i=e.sent,r.storage.clear(),r.storage.setValue(l.sessionId,i.session.sessionId),i.session.sessionId){e.next=19;break}throw v.PairingFailed;case 19:return e.next=21,r.request({method:x.eth_accounts,params:t||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),r.storage.clear();case 27:return e.prev=27,r.storage.clear(),e.next=31,r.rpc.sendRpcApiRequest(D.requestPairing,{appId:d(),clientId:r.storage.getValue(l.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw v.PairingFailed;case 34:return r.storage.setValue(l.pairingToken,o.pairingToken),r.storage.setValue(l.connectUrl,o.connectUrl),r.storage.setValue(l.connectUrlBrowser,o.connectUrlBrowser),r.storage.setValue(l.shortToken,o.shortToken),r.emit(p.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(r.storage.setValue(l.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw v.PairingFailed;case 45:return r.storage.setValue(l.pairingToken,""),r.storage.setValue(l.connectUrl,""),r.storage.setValue(l.connectUrlBrowser,""),r.storage.setValue(l.shortToken,""),e.next=51,r.request({method:x.eth_accounts,params:t||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),t[x.eth_accounts]=(h=i(n().mark((function e(t){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendAndWaitRpcRequest(x.eth_accounts,t?Array.isArray(t)?t:[t]:[]);case 3:return r.storage.setValue(l.address,(i=e.sent)[0]||""),r.emit(p.accountsChanged,i),e.abrupt("return",i);case 9:throw e.prev=9,e.t0=e.catch(0),y(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return h.apply(this,arguments)}),t[x.eth_sendTransaction]=(u=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(x.eth_sendTransaction,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return u.apply(this,arguments)}),t[x.personal_sign]=(c=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(x.personal_sign,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),t[x.gws_disconnect]=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendRpcApiRequest(D.disconnect,{sessionToken:r.storage.getValue(l.sessionId)});case 3:return t=e.sent,r.emit(p.disconnect,v.Disconnected),e.abrupt("return",t);case 8:throw e.prev=8,e.t0=e.catch(0),y(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),t[x.eth_chainId]=(s=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",N(r.storage.getValue(l.chainId)||m[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),t[x.wallet_addEthereumChain]=(a=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw y(v.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),t[x.wallet_switchEthereumChain]=(o=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.switchChain(t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),t),r.injectProvider(),r.listenForRequestProviderEvents(),r.announceProvider(),window.addEventListener("load",(function(){r.emit(p.connect,{chainId:N(r.storage.getValue(l.chainId)||m[0])}),r.restorePairing(),r.restoreSession()})),r}a(t,e);var r=t.prototype;return r.isConnected=function(){return!0},r.request=function(){var e=i(n().mark((function e(t){var r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.method,a=t.params,e.next=3,null==(r=(i=this.methods)[o])?void 0:r.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.restorePairing=function(){var e=i(n().mark((function e(){var t,r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),r=this.storage.getValue(l.sessionId),!t||r){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:t});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(l.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw v.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(l.address,a[0]||""),this.emit(p.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),r.restoreSession=function(){var e=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),!this.storage.getValue(l.sessionId)||t){e.next=11;break}return e.prev=3,e.next=6,this.request({method:x.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),r.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},r.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:g,provider:this})}))},r.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},t}(h);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(T||(T={}));var A,O=function(){function e(){}return e.prototype.sendApiRequest=function(){var e=i(n().mark((function e(t,r){var i,o,a,s;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=new j,o=i.getValue(l.sessionId),a=i.getValue(l.address),o&&a){e.next=5;break}throw new Error("Not connected to the wallet");case 5:return e.next=7,fetch("https://wallet-api.grindery.com/v3",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+a+":"+o},body:JSON.stringify({jsonrpc:"2.0",id:1,method:t,params:r||{}})});case 7:if((s=e.sent).ok){e.next=10;break}throw new Error("Failed to call "+t);case 10:return e.next=12,s.json();case 12:return e.abrupt("return",e.sent.result);case 14:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),e}(),L=function(){function e(e){this.provider=void 0,this.storage=new j,this.user=null,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=o({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(l.chainId,this.storage.getValue(l.chainId)||m[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(p.pair,this.handlePairing)}var t=e.prototype;return t.isConnected=function(){return this.provider.isConnected()},t.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(l.pairingToken)&&!this.storage.getValue(l.sessionId)},t.connect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.disconnect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.sendTransaction=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.eth_sendTransaction,params:[t]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.signMessage=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.personal_sign,params:[t,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.switchChain=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.wallet_switchEthereumChain,params:{chainId:N(t)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getChain=function(){return this.storage.getValue(l.chainId)||m[0]},t.getUserWalletAddress=function(){var e=i(n().mark((function e(t){var r;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new k,this.trackClientEvent(T.walletAddressRequested,{userId:t}),e.next=4,r.sendRpcApiRequest(D.getUserWalletAddress,{appId:d(),userId:t});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.on=function(e,t){return this.provider.on(e,t),this},t.removeListener=function(e,t){return this.provider.removeListener(e,t),this},t.getUser=function(){var e=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.user){e.next=11;break}return t=new O,e.prev=2,e.next=5,t.sendApiRequest("gw_getMe");case 5:this.user=e.sent,e.next=11;break;case 8:throw e.prev=8,e.t0=e.catch(2),new Error(e.t0 instanceof Error?e.t0.message:"Failed to fetch user information");case 11:return e.abrupt("return",this.user);case 12:case"end":return e.stop()}}),e,this,[[2,8]])})));return function(){return e.apply(this,arguments)}}(),t.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof b&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof b&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new b),t},t.handlePairing=function(e){var t,n=e.connectUrl,r=null==(t=window.Telegram)?void 0:t.WebApp,i=e.connectUrlBrowser||"https://www.grindery.com/connect/wc?uri="+e.shortToken;r&&r.openTelegramLink&&r.platform&&"unknown"!==r.platform&&n?r.openTelegramLink(n):window.open(i,"_blank")},t.trackClientEvent=function(){var e=i(n().mark((function e(t,r){var i,a,s,c,u,p,h,f,g;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(i=window.Grindery)?void 0:i.appUrl)||window.location.origin,c=d(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new k,e.next=7,g.sendRpcApiRequest(D.trackClientEvent,{name:t,appUrl:s,userTelegramId:u,data:o({},r||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(l.sessionId),clientId:this.storage.getValue(l.clientId),isMiniApp:Boolean(null==(p=window.Telegram)?void 0:p.initDataUnsafe),miniAppPlatform:null==(h=window.Telegram)||null==(h=h.WebApp)?void 0:h.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,n){return e.apply(this,arguments)}}(),t.initTracking=function(){var e=this;this.trackClientEvent(T.appOpened),this.on(p.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(T.walletConnected,{wallets:t})})),this.on(p.disconnect,(function(){e.trackClientEvent(T.walletDisconnected)}))},e}(),U=L;null!=(A=window.Grindery)&&A.WalletSDK&&window.Grindery.WalletSDK instanceof L||(window.Grindery=o({},window.Grindery||{},{WalletSDK:new L})),e.GrinderyWalletSDK=U,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=grindery-wallet-sdk.umd.production.min.js.map diff --git a/dist/grindery-wallet-sdk.umd.production.min.js.map b/dist/grindery-wallet-sdk.umd.production.min.js.map index e45a821..e35b6f9 100644 --- a/dist/grindery-wallet-sdk.umd.production.min.js.map +++ b/dist/grindery-wallet-sdk.umd.production.min.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.umd.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","accountsChanged","address","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"ozQAMA,IAAYA,GAAZ,SAAYA,GACVA,EAAA,gBAAA,kBACAA,EAAA,KAAA,OACAA,EAAA,QAAA,UACAA,EAAA,WAAA,aACAA,EAAA,aAAA,eACAA,EAAA,QAAA,SACD,CAPD,CAAYA,IAAAA,EAOX,CAAA,IAYD,IChBYC,EDgBCC,EAAY,WACvB,SAAAA,IAIAC,KAIQC,YAAM,EAPZD,KAAKC,OAAS,IAAIC,GACpB,CAAC,IAAAC,EAAAJ,EAAAK,UAqDA,OA7CDD,EAOOE,GAAA,SAAGC,EAA0BC,GAKlC,OAJKP,KAAKC,OAAOO,IAAIF,IACnBN,KAAKC,OAAOQ,IAAIH,EAAO,IAEzBN,KAAKC,OAAOS,IAAIJ,GAAQK,KAAKJ,GACtBP,IACT,EAEAG,EAOOS,eAAA,SAAeN,EAA0BC,GAC9C,GAAIP,KAAKC,OAAOO,IAAIF,GAAQ,CAC1B,IAAMO,EAAYb,KAAKC,OAAOS,IAAIJ,GAAQQ,QAAO,SAACC,GAAE,OAAKA,IAAOR,KAChEP,KAAKC,OAAOQ,IAAIH,EAAOO,EACzB,CACA,OAAOb,IACT,EAEAG,EAOUa,KAAA,SAAKV,GAAwC,IAAAW,IAAAA,EAAAC,UAAAC,OAAXC,MAAWC,MAAAJ,EAAAA,EAAAA,OAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAXF,EAAWE,EAAAJ,GAAAA,UAAAI,GAOrD,OANItB,KAAKC,OAAOO,IAAIF,KAClBiB,QAAQC,IAAI,gCAAiClB,EAAOc,EAAK,IACzDpB,KAAKC,OAAOS,IAAIJ,GAAQmB,SAAQ,SAAClB,GAC/BA,EAAQmB,WAAIN,EAAAA,EACd,KAEKpB,MACRD,CAAA,CAxDsB,GErBZ4B,EAAW,WAGtB,IAHmC,IAAAC,EAC/BC,EAAgB,GACdC,EAAWC,SAASC,iBAAiB,iBAClCC,EAAI,EAAGA,EAAIH,EAASX,OAAQc,IAAK,CACxC,IAAMC,EAAUJ,EAASG,GACnBE,EAAQD,EAAQE,aAAa,eAC7BC,EAAMH,EAAQE,aAAa,OAC3BE,EAAgBD,GAAOA,EAAIE,SAAS,uBACtCJ,GAASG,IACXT,EAAQM,EAEZ,CAIA,OAHIP,OAAJA,EAAIY,OAAOC,WAAPb,EAAiBC,QACnBA,EAAQW,OAAOC,SAASZ,OAEnBA,CACT,EChBaa,EAAO,WAElB,IADA,IAAIC,EAAI,GACDA,EAAExB,OAAS,IAAIwB,GAAKC,KAAKC,SAASC,SAAS,IAAIC,OAAO,GAC7D,IAAMC,GAAuC,EAAhCC,SAASN,EAAEI,OAAO,GAAI,GAAI,IAAa,GAAKD,SAAS,IAClE,OAAUH,EAAEI,OAAO,EAAG,GAAMJ,IAAAA,EAAEI,OAAO,EAAG,GAAOJ,KAAAA,EAAEI,OAC/C,GACA,GACGC,IAAAA,EAAKL,EAAEI,OAAO,GAAI,OAAMJ,EAAEI,OAAO,GAAI,GAC5C,ECgBaG,EAAoC,CAC/CR,KAAMA,IACNS,KAAM,kBACNC,KAAM,sBACNC,KAAM,00DC3BKC,WAAcC,GAKzB,SAAAD,EAAYE,EAAiBC,EAAerC,GAAc,IAAAsC,EAGvC,OAFjBA,EAAAH,EAAAI,KAAA3D,KAAMwD,IAAQxD,MALhBmD,KAAe,8BAA6BO,EAC5CD,UAAI,EAAAC,EACJtC,UAAI,EAIFsC,EAAKD,KAAOA,EACZC,EAAKtC,KAAOA,EAAKsC,CACnB,CAAC,OAAAE,EAAAN,EAAAC,GAAAD,CAAA,EAAAO,EATgCC,QAYtBC,EAAiB,CAC5BC,cAAe,IAAIV,EAAc,iBAAkB,MACnDW,aAAc,IAAIX,EAAc,eAAgB,MAChDY,kBAAmB,IAAIZ,EAAc,qBAAsB,MAC3Da,aAAc,IAAIb,EAAc,eAAgB,MAChDc,SAAU,IAAId,EAAc,YAAa,MACzCe,QAAS,IAAIf,EAAc,qBAAsB,MACjDgB,aAAc,IAAIhB,EAAc,wBAAyB,MACzDiB,kBAAmB,IAAIjB,EAAc,qBAAsB,OAGhDkB,EAAmB,SAACC,GAiB/B,OAfIA,aAAiBnB,EACH,IAAIA,EAClBmB,EAAMjB,SAAW,gBACjBiB,EAAMhB,MAAQ,KACdgB,EAAMrD,MAECqD,aAAiBX,MACV,IAAIR,EAClBmB,EAAMjB,SAAW,gBACjB,KACAiB,GAGc,IAAInB,EAAc,gBAAiB,KAAMmB,EAG7D,ECtCaC,EAAmB,CAAC,aAAc,YAAa,cAE/CC,EAAa,SAACC,GACzB,MAAA,KAAY3B,SAAS2B,EAAQC,MAAM,KAAK,GAAI,IAAI/B,SAAS,GAC3D,EAEagC,EAAe,SAACH,GAC3B,MAAA,UAAiB1B,SAAS0B,EAAY,GACxC,ELbMI,EAAmB,0BAMzB,SAAYjF,GACVA,EAAA,aAAA,eACAA,EAAA,UAAA,YACAA,EAAA,WAAA,aACAA,EAAA,kBAAA,oBACAA,EAAA,WAAA,aACAA,EAAA,SAAA,WACAA,EAAA,QAAA,UACAA,EAAA,QAAA,SACD,CATD,CAAYA,IAAAA,EASX,CAAA,IAgBD,IM5BYkF,EN4BCC,EAAU,WAAA,SAAAA,IAAA,CAAA,IAAA9E,EAAA8E,EAAA7E,UA6DpB,OA5DDD,EAMO+E,SAAA,SAASC,GAEd,OADcnF,KAAKoF,cAAcD,IAAQ,EAE3C,EAEAhF,EAOOkF,SAAA,SAASF,EAAoBhD,GAClC,IAAMmD,EAAWtF,KAAKoF,cAGtB,OAFAE,EAASH,GAAOhD,EAChBnC,KAAKuF,aAAaD,GACXnD,CACT,EAEAhC,EAKOqF,MAAA,WACLxF,KAAKuF,aAAa,CAChBE,SAAUzF,KAAKoF,cAAcK,UAAY/C,IACzCkC,QAAS5E,KAAKoF,cAAcR,SAAWF,EAAO,IAElD,EAEAvE,EAKQiF,YAAA,WACN,IACE,OAAOM,KAAKC,MACVC,aAAaC,QAAQd,IAAqB,KAE7C,CAAC,MAAON,GAEP,MADAmB,aAAaE,QAAQf,EAAkBW,KAAKK,UAAU,CAAE,IAClD,IAAIjC,MAAM,wBAClB,CACF,EAEA3D,EAKQoF,aAAA,SAAaS,GACnBJ,aAAaE,QAAQf,EAAkBW,KAAKK,UAAUC,KACvDf,CAAA,CA7DoB,IM5BvB,SAAYD,GACVA,EAAA,eAAA,iBACAA,EAAA,qBAAA,uBACAA,EAAA,QAAA,UACAA,EAAA,qBAAA,uBACAA,EAAA,WAAA,aACAA,EAAA,qBAAA,uBACAA,EAAA,iBAAA,kBACD,CARD,CAAYA,IAAAA,EAQX,CAAA,IAmED,IC1DYiB,ED0DCC,EAAG,WAAA,SAAAA,IAAA,CAAA,IAAA/F,EAAA+F,EAAA9F,UAqGb,OApGDD,EAQagG,sBAAqB,WAAA,IAAAC,EAAAC,EAAAC,IAAAC,MAA3B,SAAAC,EACLC,EACAC,EACAC,GAAgB,IAAAC,EAAA,OAAAN,IAAAO,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAE,KAAA,EAEMhH,KAAKiH,eAAeR,EAAQC,GAAO,KAAA,EAA5C,OAAPE,EAAOE,EAAAI,KAAAJ,EAAAE,KAAA,EACAhH,KAAKmH,eAAeP,EAAQQ,aAAcT,GAAQ,KAAA,EAAA,OAAAG,EAAAO,OAAAP,SAAAA,EAAAI,MAAA,KAAA,EAAA,IAAA,MAAA,OAAAJ,EAAAQ,OAAA,GAAAd,EAAAxG,KAChE,KAAA,OAAA,SAAAuH,EAAAC,EAAAC,GAAA,OAAArB,EAAA1E,MAAA1B,KAAAkB,UAAA,CAAA,CAPiC,GASlCf,EAOgB8G,eAAc,WAAA,IAAAS,EAAArB,EAAAC,IAAAC,MAApB,SAAAoB,EACRlB,EACAC,GAA2B,IAAAV,EAAA,OAAAM,IAAAO,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,KAAA,EAEK,OAA1BhB,EAAU,IAAIf,EAAY2C,EAAAZ,KAAA,EACnBhH,KAAK6H,kBAChB7C,EAAe4B,QACf,CACEkB,UAAW9B,EAAQd,SAASpF,EAAegI,WAC3CC,MAAO/B,EAAQd,SAASpF,EAAe8E,SACvCgC,QAAS,CACPH,OAAAA,EACAC,OAAAA,KAGL,KAAA,EAAA,OAAAkB,EAAAP,OAAAO,SAAAA,EAAAV,MAAA,KAAA,EAAA,IAAA,MAAA,OAAAU,EAAAN,OAAA,GAAAK,EAAA3H,KACF,KAAA,OAAA,SAAAgI,EAAAC,GAAA,OAAAP,EAAAhG,MAAA1B,KAAAkB,UAAA,CAAA,CAhB6B,GAkB9Bf,EAOgBgH,eAAc,WAAA,IAAAe,EAAA7B,EAAAC,IAAAC,MAApB,SAAA4B,EACRf,EACAT,GAAgB,OAAAL,IAAAO,MAAA,SAAAuB,GAAA,cAAAA,EAAArB,KAAAqB,EAAApB,MAAA,KAAA,EAAA,OAAAoB,EAAApB,KAAA,EAEHhH,KAAK6H,kBAChB7C,EAAeqD,qBACf,CACEjB,aAAAA,EACAT,QAAAA,IAEH,KAAA,EAAA,OAAAyB,EAAAf,OAAAe,SAAAA,EAAAlB,MAAA,KAAA,EAAA,IAAA,MAAA,OAAAkB,EAAAd,OAAA,GAAAa,EAAAnI,KACF,KAAA,OAAA,SAAAsI,EAAAC,GAAA,OAAAL,EAAAxG,MAAA1B,KAAAkB,UAAA,CAAA,CAX6B,GAa9Bf,EAOa0H,kBAAiB,WAAA,IAAAW,EAAAnC,EAAAC,IAAAC,MAAvB,SAAAkC,EACLhC,EACAC,GAA2B,IAAAgC,EAAAtH,EAAA,OAAAkF,IAAAO,MAAA,SAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,KAAA,EAAA,OAAA2B,EAAA5B,KAAA,EAAA4B,EAAA3B,KAAA,EAGF4B,MAAM,yCAA0C,CACrEnC,OAAQ,OACRoC,QAAS,CACP,eAAgB,oBAElBC,KAAMpD,KAAKK,UAAU,CACnBgD,QAAS,MACTC,GAAI,EACJvC,cAAeA,EACfC,OAAQA,GAAU,OAEpB,KAAA,EAXY,OAARgC,EAAQC,EAAAzB,KAAAyB,EAAA3B,KAAA,EAYK0B,EAASO,OAAM,KAAA,EAAxB,KAAJ7H,EAAIuH,EAAAzB,MACDzC,MAAK,CAAAkE,EAAA3B,KAAA,EAAA,KAAA,CAAA,MACN,IAAI1D,EAAclC,EAAKqD,MAAMjB,QAASpC,EAAKqD,MAAMhB,MAAK,KAAA,EAAA,GAEzDrC,EAAK8H,OAAM,CAAAP,EAAA3B,KAAA,GAAA,KAAA,CAAA,MACRjD,EAAeK,SAAQ,KAAA,GAAA,OAAAuE,EAAAtB,OAExBjG,SAAAA,EAAK8H,QAAM,KAAA,GAAA,GAAAP,EAAA5B,KAAA,GAAA4B,EAAAQ,GAAAR,EAAA,MAAA,KAEdA,EAAAQ,cAAiBrF,OAAK,CAAA6E,EAAA3B,KAAA,GAAA,KAAA,CAAA,MAClB,IAAI1D,EAAcqF,EAAAQ,GAAM3F,QAAS,IAAGmF,EAAAQ,IAAQ,KAAA,GAAA,MAE9C,IAAI7F,EAAc,eAAgB,IAAGqF,EAAAQ,IAAQ,KAAA,GAAA,IAAA,MAAA,OAAAR,EAAArB,OAAA,GAAAmB,EAAA,KAAA,CAAA,CAAA,EAAA,KAEtD,KAAA,OAAA,SAAAW,EAAAC,GAAA,OAAAb,EAAA9G,MAAA1B,KAAAkB,UAAA,CAAA,CA/B6B,GA+B7BgF,CAAA,CArGa,IC1DhB,SAAYD,GACVA,EAAA,oBAAA,sBACAA,EAAA,aAAA,eACAA,EAAA,cAAA,gBACAA,EAAA,oBAAA,sBACAA,EAAA,eAAA,iBACAA,EAAA,YAAA,cACAA,EAAA,wBAAA,0BACAA,EAAA,2BAAA,4BACD,CATD,CAAYA,IAAAA,EASX,CAAA,IAuCYqD,ICvEDC,EDuECD,WAASE,GAGpB,SAAAF,IAAA,IAAAG,EAAA/F,EAsQiDgG,EAVHC,EAZZC,EAnCEC,EAZMC,EAnBPC,EAzGOC,EAvDrC,OAbHtG,EAAA8F,EAAA7F,YAAO3D,MAHFiK,kBAA4B,EAAIvG,EA2C/BsC,QAAsB,IAAIf,EAAYvB,EAEtCwG,IAAW,IAAIhE,EAEvBxC,EAMQyG,YAAW,WAAA,IAAAC,EAAA/D,EAAAC,IAAAC,MAAG,SAAAC,EAAA6D,GAAA,IAAAzF,EAAA0F,EAAA,OAAAhE,IAAAO,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EACmB,GAAjCsD,EAAYxF,EADWF,EAAOyF,EAAPzF,SAExBF,EAAOnC,SAAS+H,GAAU,CAAAxD,EAAAE,KAAA,EAAA,KAAA,CAAA,MACvBxC,EAAiBT,EAAeQ,mBAAkB,KAAA,EAGN,OADpDb,EAAKsC,QAAQX,SAASvF,EAAe8E,QAAS0F,GAC9C5G,EAAK1C,KAAKnB,EAAe0K,aAAc,CAAE3F,QAAAA,IAAWkC,EAAAO,OAAA,SAC7C,MAAI,KAAA,EAAA,IAAA,MAAA,OAAAP,EAAAQ,OAAA,GAAAd,EACZ,KAAA,OAAA,SAAAe,GAAA,OAAA6C,EAAA1I,MAAA1B,KAAAkB,UAAA,CAAA,CARkB,GAUnBwC,EAIQ8G,UAAOf,MAIZxD,EAAoBwE,sBAAmBT,EAAA3D,EAAAC,IAAAC,MAAG,SAAAoB,EACzCjB,GAAuC,IAAAgE,EAAAxB,EAAAyB,EAAA,OAAArE,IAAAO,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,KAAA,EAAA,IAEnCtD,EAAKsC,QAAQd,SAAS,aAAY,CAAA0C,EAAAZ,KAAA,GAAA,KAAA,CAAA,OAAAY,EAAAb,KAAA,EAAAa,EAAAZ,KAAA,EAErBtD,EAAKkD,QAA6C,CAC7DH,OAAQR,EAAoB2E,aAC5BlE,OAAQ,KACR,KAAA,EAAA,OAAAkB,EAAAP,OAAAO,SAAAA,EAAAV,MAAA,KAAA,EAAAU,EAAAb,KAAA,EAAAa,EAAAuB,GAAAvB,EAAA,MAAA,GAEFlE,EAAKsC,QAAQX,SAASvF,EAAegI,UAAW,IAChD,KAAA,GAAA,IAGApE,EAAKsC,QAAQd,SAAS,gBAAe,CAAA0C,EAAAZ,KAAA,GAAA,KAAA,CAAA,OAAAY,EAAAb,KAAA,GAAAa,EAAAZ,KAAA,GAG5BtD,EAAKwG,IAAIrC,kBACd7C,EAAe6F,qBACf,CACEC,aAAcpH,EAAKsC,QAAQd,SACzBpF,EAAegL,gBAGpB,KAAA,GAMD,GAdIJ,EAAU9C,EAAAV,KAUhBxD,EAAKsC,QAAQR,QACb9B,EAAKsC,QAAQX,SACXvF,EAAegI,UACf4C,EAAWK,QAAQjD,WAGhB4C,EAAWK,QAAQjD,UAAS,CAAAF,EAAAZ,KAAA,GAAA,KAAA,CAAA,MACzBjD,EAAeC,cAAa,KAAA,GAAA,OAAA4D,EAAAZ,KAAA,GAGvBtD,EAAKkD,QAA6C,CAC7DH,OAAQR,EAAoB2E,aAC5BlE,OAAQA,GAAU,KAClB,KAAA,GAAA,OAAAkB,EAAAP,OAAAO,SAAAA,EAAAV,MAAA,KAAA,GAAAU,EAAAb,KAAA,GAAAa,EAAAoD,GAAApD,EAAA,MAAA,IAEFlE,EAAKsC,QAAQR,QACb,KAAA,GAImB,OAJnBoC,EAAAb,KAAA,GAIFrD,EAAKsC,QAAQR,QAAQoC,EAAAZ,KAAA,GAEZtD,EAAKwG,IAAIrC,kBACd7C,EAAeiG,eACf,CACEpJ,MAAOF,IACP8D,SAAU/B,EAAKsC,QAAQd,SAASpF,EAAe2F,YAElD,KAAA,GAPS,IAANyD,EAAMtB,EAAAV,MASA4D,cAAiB5B,EAAOgC,WAAU,CAAAtD,EAAAZ,KAAA,GAAA,KAAA,CAAA,MACtCjD,EAAeC,cAAa,KAAA,GAcjC,OAXHN,EAAKsC,QAAQX,SAASvF,EAAegL,aAAc5B,EAAO4B,cAC1DpH,EAAKsC,QAAQX,SAASvF,EAAeoL,WAAYhC,EAAOgC,YACxDxH,EAAKsC,QAAQX,SACXvF,EAAeqL,kBACfjC,EAAOiC,mBAETzH,EAAKsC,QAAQX,SAASvF,EAAesL,WAAYlC,EAAOkC,YACxD1H,EAAK1C,KAAKnB,EAAewL,KAAM,CAC7BD,WAAYlC,EAAOkC,WACnBF,WAAYhC,EAAOgC,WACnBC,kBAAmBjC,EAAOiC,oBACzBvD,EAAAZ,KAAA,GAEMtD,EAAKwG,IAAIrC,kBACd7C,EAAe6F,qBACf,CACEC,aAAc5B,EAAO4B,eAExB,KAAA,GAKD,GAHFpH,EAAKsC,QAAQX,SACXvF,EAAegI,WATX4C,EAAU9C,EAAAV,MAUH6D,QAAQjD,WAGhB4C,EAAWK,QAAQjD,UAAS,CAAAF,EAAAZ,KAAA,GAAA,KAAA,CAAA,MACzBjD,EAAeC,cAAa,KAAA,GAKiB,OAHrDN,EAAKsC,QAAQX,SAASvF,EAAegL,aAAc,IACnDpH,EAAKsC,QAAQX,SAASvF,EAAeoL,WAAY,IACjDxH,EAAKsC,QAAQX,SAASvF,EAAeqL,kBAAmB,IACxDzH,EAAKsC,QAAQX,SAASvF,EAAesL,WAAY,IAAIxD,EAAAZ,KAAA,GAExCtD,EAAKkD,QAAQ,CACxBH,OAAQR,EAAoB2E,aAC5BlE,OAAQA,GAAU,KAClB,KAAA,GAAA,OAAAkB,EAAAP,OAAAO,SAAAA,EAAAV,MAAA,KAAA,GAAA,MAAAU,EAAAb,KAAA,GAAAa,EAAA0D,GAAA1D,EAAA,MAAA,IAAAA,EAAA0D,GAAA,KAAA,GAAA,IAAA,MAAA,OAAA1D,EAAAN,OAAA,GAAAK,EAAA,KAAA,CAAA,CAAA,EAAA,GAAA,CAAA,GAAA,IAAA,CAAA,GAAA,KAIL,KAAA,SAAAH,GAAA,OAAAwC,EAAAtI,MAAA1B,KAAAkB,UAAA,GAAAuI,EAKAxD,EAAoB2E,eAAYb,EAAA1D,EAAAC,IAAAC,MAAG,SAAA4B,EAClCzB,GAAuC,IAAAwC,EAAA,OAAA5C,IAAAO,MAAA,SAAAuB,GAAA,cAAAA,EAAArB,KAAAqB,EAAApB,MAAA,KAAA,EAAA,OAAAoB,EAAArB,KAAA,EAAAqB,EAAApB,KAAA,EAGftD,EAAKwG,IAAI/D,sBAC7BF,EAAoB2E,aACpBlE,EAAUrF,MAAMkK,QAAQ7E,GAAUA,EAAS,CAACA,GAAW,IACxD,KAAA,EAE8D,OAD/DhD,EAAK1C,KAAKnB,EAAe2L,gBAJnBtC,EAAMd,EAAAlB,MAKZxD,EAAKsC,QAAQX,SAASvF,EAAe2L,QAASvC,EAAO,IAAM,IAAId,EAAAf,OAAA,SACxD6B,GAAM,KAAA,EAAA,MAAAd,EAAArB,KAAA,EAAAqB,EAAAe,GAAAf,EAAA,MAAA,GAEP5D,EAAgB4D,EAAAe,IAAO,KAAA,GAAA,IAAA,MAAA,OAAAf,EAAAd,OAAA,GAAAa,EAAA,KAAA,CAAA,CAAA,EAAA,IAEhC,KAAA,SAAAV,GAAA,OAAAsC,EAAArI,MAAA1B,KAAAkB,UAAA,GAAAuI,EAKAxD,EAAoByF,sBAAmB5B,EAAAzD,EAAAC,IAAAC,MAAG,SAAAkC,EACzC/B,GAAuC,OAAAJ,IAAAO,MAAA,SAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,KAAA,EAAA,OAAA2B,EAAA3B,KAAA,EAEzBtD,EAAKwG,IAAI/D,sBACrBF,EAAoByF,oBACpBhF,EAAUrF,MAAMkK,QAAQ7E,GAAUA,EAAS,CAACA,GAAW,IACxD,KAAA,EAAA,OAAAiC,EAAAtB,OAAAsB,SAAAA,EAAAzB,MAAA,KAAA,EAAA,IAAA,MAAA,OAAAyB,EAAArB,OAAA,GAAAmB,EACF,KAAA,SAAAT,GAAA,OAAA8B,EAAApI,MAAA1B,KAAAkB,UAAA,GAAAuI,EAKAxD,EAAoB0F,gBAAa9B,EAAAxD,EAAAC,IAAAC,MAAG,SAAAqF,EACnClF,GAAgD,OAAAJ,IAAAO,MAAA,SAAAgF,GAAA,cAAAA,EAAA9E,KAAA8E,EAAA7E,MAAA,KAAA,EAAA,OAAA6E,EAAA7E,KAAA,EAElCtD,EAAKwG,IAAI/D,sBACrBF,EAAoB0F,cACpBjF,EAAUrF,MAAMkK,QAAQ7E,GAAUA,EAAS,CAACA,GAAW,IACxD,KAAA,EAAA,OAAAmF,EAAAxE,OAAAwE,SAAAA,EAAA3E,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA2E,EAAAvE,OAAA,GAAAsE,EACF,KAAA,SAAA3D,GAAA,OAAA4B,EAAAnI,MAAA1B,KAAAkB,UAAA,GAAAuI,EAKAxD,EAAoB6F,gBAAczF,EAAAC,IAAAC,MACjC,SAAAwF,IAAA,IAAA7C,EAAA,OAAA5C,IAAAO,MAAA,SAAAmF,GAAA,cAAAA,EAAAjF,KAAAiF,EAAAhF,MAAA,KAAA,EAAA,OAAAgF,EAAAjF,KAAA,EAAAiF,EAAAhF,KAAA,EAGYtD,EAAKwG,IAAIrC,kBACb7C,EAAeiH,WACf,CACEC,aAAcxI,EAAKsC,QAAQd,SAASpF,EAAegI,aAEtD,KAAA,EAE+D,OAR5DoB,EAAM8C,EAAA9E,KAQZxD,EAAK1C,KAAKnB,EAAeoM,WAAYlI,EAAeE,cAAc+H,EAAA3E,OAAA,SAE3D6B,GAAM,KAAA,EAAA,MAAA8C,EAAAjF,KAAA,EAAAiF,EAAA7C,GAAA6C,EAAA,MAAA,GAEPxH,EAAgBwH,EAAA7C,IAAO,KAAA,GAAA,IAAA,MAAA,OAAA6C,EAAA1E,OAAA,GAAAyE,EAAA,KAAA,CAAA,CAAA,EAAA,IAEhC,KAAAtC,EAMFxD,EAAoBkG,cAAWvC,EAAAvD,EAAAC,IAAAC,MAAG,SAAA6F,EACjCC,GAAkC,OAAA/F,IAAAO,MAAA,SAAAyF,GAAA,cAAAA,EAAAvF,KAAAuF,EAAAtF,MAAA,KAAA,EAAA,OAAAsF,EAAAjF,OAAA,SAE3B1C,EACLjB,EAAKsC,QAAQd,SAASpF,EAAe8E,UAAYF,EAAO,KACzD,KAAA,EAAA,IAAA,MAAA,OAAA4H,EAAAhF,OAAA,GAAA8E,EACF,KAAA,SAAA9D,GAAA,OAAAsB,EAAAlI,MAAA1B,KAAAkB,UAAA,GAAAuI,EAMAxD,EAAoBsG,0BAAuB5C,EAAAtD,EAAAC,IAAAC,MAAG,SAAAiG,EAC7CH,GAAkC,OAAA/F,IAAAO,MAAA,SAAA4F,GAAA,cAAAA,EAAA1F,KAAA0F,EAAAzF,MAAA,KAAA,EAAA,MAE5BxC,EAAiBT,EAAeO,cAAa,KAAA,EAAA,IAAA,MAAA,OAAAmI,EAAAnF,OAAA,GAAAkF,EACpD,KAAA,SAAAjE,GAAA,OAAAoB,EAAAjI,MAAA1B,KAAAkB,UAAA,GAAAuI,EAMAxD,EAAoByG,6BAA0BhD,EAAArD,EAAAC,IAAAC,MAAG,SAAAoG,EAChDjG,GAAuC,OAAAJ,IAAAO,MAAA,SAAA+F,GAAA,cAAAA,EAAA7F,KAAA6F,EAAA5F,MAAA,KAAA,EAAA,OAAA4F,EAAA5F,KAAA,EAEjCtD,EAAKyG,YAAYzD,GAAO,KAAA,EAAA,OAAAkG,EAAAvF,OAAAuF,SAAAA,EAAA1F,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA0F,EAAAtF,OAAA,GAAAqF,EAAA,KAAA,SAAAvD,GAAA,OAAAM,EAAAhI,MAAA1B,KAAAkB,UAAA,GAAAuI,GAtQhC/F,EAAKmJ,iBACLnJ,EAAKoJ,iCACLpJ,EAAKqJ,mBACLvK,OAAOwK,iBAAiB,QAAQ,WAC9BtJ,EAAK1C,KAAKnB,EAAeoN,QAAS,CAChCrI,QAASD,EACPjB,EAAKsC,QAAQd,SAASpF,EAAe8E,UAAYF,EAAO,MAG5DhB,EAAKwJ,iBACLxJ,EAAKyJ,gBACP,IAAGzJ,CACL,CAEAE,EAAA0F,EAAAE,GAAA,IAAArJ,EAAAmJ,EAAAlJ,UAqWC,OArWDD,EAIOiN,YAAA,WAEL,OAAO,CACT,EAEAjN,EAQayG,QAAO,WAAA,IAAAyG,EAAAhH,EAAAC,IAAAC,MAAb,SAAA+G,EAAAC,GAAA,IAAAC,EAAAC,EAAAhH,EAAAC,EAAA,OAAAJ,IAAAO,MAAA,SAAA6G,GAAA,cAAAA,EAAA3G,KAAA2G,EAAA1G,MAAA,KAAA,EAEC,OADNP,EAAM8G,EAAN9G,OACAC,EAAM6G,EAAN7G,OAAMgH,EAAA1G,KAAA,EAE4B,OAF5BwG,GAEQC,EAAIzN,KAACwK,SAAQ/D,SAAO,EAApB+G,EAAA7J,KAAA8J,EAAuB/G,GAAO,KAAA,EAAA,OAAAgH,EAAArG,OAAAqG,SAAAA,EAAAxG,MAAA,KAAA,EAAA,IAAA,MAAA,OAAAwG,EAAApG,OAAA,GAAAgG,EAAAtN,KAC7C,KAAA,OAAA,SAAAqJ,GAAA,OAAAgE,EAAA3L,MAAA1B,KAAAkB,UAAA,CAAA,CALmB,GA0OpBf,EAKc+M,eAAc,WAAA,IAAAS,EAAAtH,EAAAC,IAAAC,MAApB,SAAAqH,IAAA,IAAA9C,EAAAhD,EAAA+F,EAAAnD,EAAAoD,EAAA,OAAAxH,IAAAO,MAAA,SAAAkH,GAAA,cAAAA,EAAAhH,KAAAgH,EAAA/G,MAAA,KAAA,EAE2D,GAD3D8D,EAAe9K,KAAKgG,QAAQd,SAASpF,EAAegL,cACpDhD,EAAY9H,KAAKgG,QAAQd,SAASpF,EAAegI,YACnDgD,GAAiBhD,EAAS,CAAAiG,EAAA/G,KAAA,GAAA,KAAA,CAAA,OAAA+G,EAAAhH,KAAA,EAAAgH,EAAA/G,KAAA,EAGlBhH,KAAKkK,IAAIrC,kBACb7C,EAAe6F,qBACf,CACEC,aAAAA,IAEH,KAAA,EAMD,GAZIJ,EAAUqD,EAAA7G,KAQhBlH,KAAKgG,QAAQR,QACbxF,KAAKgG,QAAQX,SACXvF,EAAegI,UACf4C,EAAWK,QAAQjD,WAGhB4C,EAAWK,QAAQjD,UAAS,CAAAiG,EAAA/G,KAAA,GAAA,KAAA,CAAA,MACzBjD,EAAeC,cAAa,KAAA,GAG9B8J,IACcD,OAAlBA,EAAAnD,EAAWK,UAAmB8C,OAAZA,EAAlBA,EAAoBG,aAAsB,OAAZH,EAA9BA,EAA0C,aAAA,EAA1CA,EAA4CC,WAAY,IACxDG,KAAI,SAACC,GAAO,OACZA,EAAQ3L,SAAS,KAAO2L,EAAQrJ,MAAM,KAAK,IAAM,GAAKqJ,KAExDlO,KAAKgG,QAAQX,SAASvF,EAAe2L,QAASqC,EAAS,IAAM,IAC7D9N,KAAKgB,KAAKnB,EAAe2L,gBAAiBsC,GAAUC,EAAA/G,KAAA,GAAA,MAAA,KAAA,GAAA+G,EAAAhH,KAAA,GAAAgH,EAAA5E,GAAA4E,EAAA,MAAA,GAEpD/N,KAAKgG,QAAQR,QAAQ,KAAA,GAAA,IAAA,MAAA,OAAAuI,EAAAzG,OAAA,GAAAsG,EAAA5N,KAAA,CAAA,CAAA,EAAA,KAG1B,KAAA,OAAA,WAAA,OAAA2N,EAAAjM,MAAA1B,KAAAkB,UAAA,CAAA,CAlC2B,GAoC5Bf,EAKcgN,eAAc,WAAA,IAAAgB,EAAA9H,EAAAC,IAAAC,MAApB,SAAA6H,IAAA,IAAAtD,EAAA,OAAAxE,IAAAO,MAAA,SAAAwH,GAAA,cAAAA,EAAAtH,KAAAsH,EAAArH,MAAA,KAAA,EAE2D,GAD3D8D,EAAe9K,KAAKgG,QAAQd,SAASpF,EAAegL,eACxC9K,KAAKgG,QAAQd,SAASpF,EAAegI,YACrCgD,EAAY,CAAAuD,EAAArH,KAAA,GAAA,KAAA,CAAA,OAAAqH,EAAAtH,KAAA,EAAAsH,EAAArH,KAAA,EAEpBhH,KAAK4G,QAAkB,CAC3BH,OAAQR,EAAoBwE,sBAC5B,KAAA,EAAA4D,EAAArH,KAAA,GAAA,MAAA,KAAA,EAAAqH,EAAAtH,KAAA,EAAAsH,EAAAlF,GAAAkF,EAAA,MAAA,GAEFrO,KAAKgG,QAAQR,QAAQ,KAAA,GAAA,IAAA,MAAA,OAAA6I,EAAA/G,OAAA,GAAA8G,EAAApO,KAAA,CAAA,CAAA,EAAA,IAG1B,KAAA,OAAA,WAAA,OAAAmO,EAAAzM,MAAA1B,KAAAkB,UAAA,CAAA,CAZ2B,GAc5Bf,EAKQ0M,eAAA,WACDrK,OAAO8L,SAIR9L,OAAO8L,SAASC,WAChBlN,MAAMkK,QAAQ/I,OAAO8L,SAASC,WAE9B/L,OAAO8L,SAASC,UAAU5N,KAAKX,MAE/BwC,OAAO8L,SAASC,UAAY,CAAC/L,OAAO8L,SAAUtO,MARhDwC,OAAO8L,SAAWtO,IAWtB,EAEAG,EAOQ4M,iBAAA,WACNvK,OAAOgM,cACL,IAAIC,YAAY,2BAA4B,CAC1CC,OAAQC,OAAOC,OAAO,CAAEC,KAAM3L,EAAc4L,SAAU9O,SAG5D,EAEAG,EAOQ2M,+BAAA,WAA8B,IAAAiC,EAAA/O,KACpCwC,OAAOwK,iBAAiB,2BAA2B,WACjD+B,EAAKhC,kBACP,KACDzD,CAAA,EAzX2BvJ,ICvE9B,SAAYwJ,GAIVA,EAAA,UAAA,YAIAA,EAAA,gBAAA,kBAIAA,EAAA,mBAAA,qBAIAA,EAAA,uBAAA,wBACD,CAjBD,CAAYA,IAAAA,EAiBX,CAAA,ICAD,ICEa3H,EDFAoN,EAAS,WAOpB,SAAAA,EAAYC,GANZjP,KAIO8O,cAAQ,EA0Kf9O,KAIQgG,QAAsB,IAAIf,GA3K5BgK,MAAAA,GAAAA,EAAQpN,OAASoN,MAAAA,GAAAA,EAAQC,UAC3B1M,OAAOC,SAAQ0M,EAAA,CAAA,EACT3M,OAAOC,UAAY,GAAE,CACzBZ,MAAOoN,MAAAA,OAAAA,EAAAA,EAAQpN,MACfqN,OAAQD,MAAAA,OAAAA,EAAAA,EAAQC,UAIpBlP,KAAKgG,QAAQX,SACXvF,EAAe8E,QACf5E,KAAKgG,QAAQd,SAASpF,EAAe8E,UAAYF,EAAO,IAE1D1E,KAAK8O,SAAW9O,KAAKoP,kBACrBpP,KAAKqP,eACLrP,KAAK8O,SAASzO,GAAGR,EAAewL,KAAMrL,KAAKsP,cAC7C,CAEA,IAAAnP,EAAA6O,EAAA5O,UA0QC,OA1QDD,EASOiN,YAAA,WACL,OAAOpN,KAAK8O,SAAS1B,aACvB,EAEAjN,EAIOoP,kBAAA,WACL,OACEvP,KAAKoN,iBACHpN,KAAKgG,QAAQd,SAASpF,EAAegL,gBACtC9K,KAAKgG,QAAQd,SAASpF,EAAegI,UAE1C,EAEA3H,EAMa8M,QAAO,WAAA,IAAAuC,EAAAnJ,EAAAC,IAAAC,MAAb,SAAAC,IAAA,OAAAF,IAAAO,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAE,KAAA,EACQhH,KAAK8O,SAASlI,QAAQ,CACjCH,OAAQR,EAAoBwE,sBAC5B,KAAA,EAAA,OAAA3D,EAAAO,OAAAP,SAAAA,EAAAI,MAAA,KAAA,EAAA,IAAA,MAAA,OAAAJ,EAAAQ,OAAA,GAAAd,EAAAxG,KACH,KAAA,OAAA,WAAA,OAAAwP,EAAA9N,MAAA1B,KAAAkB,UAAA,CAAA,CAJmB,GAMpBf,EAMa8L,WAAU,WAAA,IAAAwD,EAAApJ,EAAAC,IAAAC,MAAhB,SAAAoB,IAAA,OAAArB,IAAAO,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,KAAA,EAAA,OAAAY,EAAAZ,KAAA,EACQhH,KAAK8O,SAASlI,QAAQ,CACjCH,OAAQR,EAAoB6F,iBAC5B,KAAA,EAAA,OAAAlE,EAAAP,OAAAO,SAAAA,EAAAV,MAAA,KAAA,EAAA,IAAA,MAAA,OAAAU,EAAAN,OAAA,GAAAK,EAAA3H,KACH,KAAA,OAAA,WAAA,OAAAyP,EAAA/N,MAAA1B,KAAAkB,UAAA,CAAA,CAJsB,GAMvBf,EAUauP,gBAAe,WAAA,IAAAC,EAAAtJ,EAAAC,IAAAC,MAArB,SAAA4B,EAAsBzB,GAI5B,OAAAJ,IAAAO,MAAA,SAAAuB,GAAA,cAAAA,EAAArB,KAAAqB,EAAApB,MAAA,KAAA,EAAA,OAAAoB,EAAApB,KAAA,EACchH,KAAK8O,SAASlI,QAAgB,CACzCH,OAAQR,EAAoByF,oBAC5BhF,OAAQ,CAACA,KACT,KAAA,EAAA,OAAA0B,EAAAf,OAAAe,SAAAA,EAAAlB,MAAA,KAAA,EAAA,IAAA,MAAA,OAAAkB,EAAAd,OAAA,GAAAa,EAAAnI,KACH,KAAA,OAAA,SAAAuH,GAAA,OAAAoI,EAAAjO,MAAA1B,KAAAkB,UAAA,CAAA,CAT2B,GAW5Bf,EAOayP,YAAW,WAAA,IAAAC,EAAAxJ,EAAAC,IAAAC,MAAjB,SAAAkC,EAAkBjF,GAAe,OAAA8C,IAAAO,MAAA,SAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,KAAA,EAAA,OAAA2B,EAAA3B,KAAA,EACzBhH,KAAK8O,SAASlI,QAAgB,CACzCH,OAAQR,EAAoB0F,cAC5BjF,OAAQ,CAAClD,EAASxD,KAAKgG,QAAQd,SAAS,cACxC,KAAA,EAAA,OAAAyD,EAAAtB,OAAAsB,SAAAA,EAAAzB,MAAA,KAAA,EAAA,IAAA,MAAA,OAAAyB,EAAArB,OAAA,GAAAmB,EAAAzI,KACH,KAAA,OAAA,SAAAwH,GAAA,OAAAqI,EAAAnO,MAAA1B,KAAAkB,UAAA,CAAA,CALuB,GAOxBf,EAOagK,YAAW,WAAA,IAAA2F,EAAAzJ,EAAAC,IAAAC,MAAjB,SAAAqF,EAAkBhH,GAAe,OAAA0B,IAAAO,MAAA,SAAAgF,GAAA,cAAAA,EAAA9E,KAAA8E,EAAA7E,MAAA,KAAA,EAAA,OAAA6E,EAAA7E,KAAA,EACzBhH,KAAK8O,SAASlI,QAAc,CACvCH,OAAQR,EAAoByG,2BAC5BhG,OAAQ,CAAE9B,QAASD,EAAWC,MAC9B,KAAA,EAAA,OAAAiH,EAAAxE,OAAAwE,SAAAA,EAAA3E,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA2E,EAAAvE,OAAA,GAAAsE,EAAA5L,KACH,KAAA,OAAA,SAAAyH,GAAA,OAAAqI,EAAApO,MAAA1B,KAAAkB,UAAA,CAAA,CALuB,GAOxBf,EAMO4P,SAAA,WACL,OAAO/P,KAAKgG,QAAQd,SAASpF,EAAe8E,UAAYF,EAAO,EACjE,EAEAvE,EAOa6P,qBAAoB,WAAA,IAAAC,EAAA5J,EAAAC,IAAAC,MAA1B,SAAAwF,EACLmE,GAAc,IAAAhG,EAAA,OAAA5D,IAAAO,MAAA,SAAAmF,GAAA,cAAAA,EAAAjF,KAAAiF,EAAAhF,MAAA,KAAA,EAG6D,OADrEkD,EAAM,IAAIhE,EAChBlG,KAAKmQ,iBAAiB5G,EAAiB6G,uBAAwB,CAAEF,OAAAA,IAAUlE,EAAAhF,KAAA,EAC9DkD,EAAIrC,kBACf7C,EAAegL,qBACf,CAAEnO,MAAOF,IAAYuO,OAAAA,IACtB,KAAA,EAAA,OAAAlE,EAAA3E,OAAA2E,SAAAA,EAAA9E,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA8E,EAAA1E,OAAA,GAAAyE,EAAA/L,KACF,KAAA,OAAA,SAAAgI,GAAA,OAAAiI,EAAAvO,MAAA1B,KAAAkB,UAAA,CAAA,CATgC,GAWjCf,EAOOE,GAAA,SAAGC,EAA0BC,GAElC,OADAP,KAAK8O,SAASzO,GAAGC,EAAOC,GACjBP,IACT,EAEAG,EAOOS,eAAA,SAAeN,EAA0BC,GAE9C,OADAP,KAAK8O,SAASlO,eAAeN,EAAOC,GAC7BP,MASTG,EAIQiP,gBAAA,WAAe,IAAAiB,EACjBvB,EAA0BuB,OAAlBA,EAAG7N,OAAO8L,WAAP+B,OAAeA,EAAfA,EAAiB9B,gBAAjB8B,EAAAA,EAA4BC,MACzC,SAACxB,GAA4B,OAC3BA,aAAoBxF,GAAYwF,EAAS7E,oBAY7C,OATG6E,GACDtM,OAAO8L,oBAAoBhF,GAC3B9G,OAAO8L,SAASrE,mBAEhB6E,EAAWtM,OAAO8L,UAEfQ,IACHA,EAAW,IAAIxF,GAEVwF,CACT,EAEA3O,EAMQmP,cAAA,SAAAjF,GAG2B,IAAAkG,EAC3BC,EAAwB,OAAlBD,EAAG/N,OAAOiO,eAAQ,EAAfF,EAAiBC,OAC1BE,uDAJIrG,EAAVe,WAMEoF,GACAA,EAAOG,kBACPH,EAAOI,UACa,YAApBJ,EAAOI,SAEPJ,EAAOG,iBAVQtG,EAAjBc,mBAYE3I,OAAOqO,KAAKH,EAAa,SAE7B,EAEAvQ,EAOcgQ,iBAAgB,WAAA,IAAAW,EAAAzK,EAAAC,IAAAC,MAAtB,SAAA6F,EACNjJ,EACA/B,GAA8B,IAAAQ,EAAAmP,EAAA7B,EAAArN,EAAAmP,EAAAC,EAAAC,EAAAC,EAAAjH,EAAA,OAAA5D,IAAAO,MAAA,SAAAyF,GAAA,cAAAA,EAAAvF,KAAAuF,EAAAtF,MAAA,KAAA,EAOP,OALjBkI,GAAwB,OAAftN,EAAAY,OAAOC,eAAQ,EAAfb,EAAiBsN,SAAU1M,OAAO4O,SAASC,OACpDxP,EAAQF,IACRqP,EAAgC,OAAlBD,EAAGvO,OAAOiO,WAAgB,OAARM,EAAfA,EAAiBP,SAAsB,OAAhBO,EAAvBA,EAAyBO,iBAAoB,OAANP,EAAvCA,EAAyCQ,WAAI,EAA7CR,EAA+C/H,GAAEsD,EAAAvF,KAAA,EAGhEmD,EAAM,IAAIhE,EAAKoG,EAAAtF,KAAA,EACfkD,EAAIrC,kBACR7C,EAAemL,iBACf,CACEhN,KAAAA,EACA+L,OAAAA,EACA8B,eAAAA,EACA5P,KAAI+N,EAAA,GACE/N,GAAQ,CAAA,EAAE,CACdoQ,QAAShP,OAAO4O,SAASK,KACzB5P,MAAAA,EACAiG,UAAW9H,KAAKgG,QAAQd,SAASpF,EAAegI,WAChDrC,SAAUzF,KAAKgG,QAAQd,SAASpF,EAAe2F,UAC/CiM,UAAWC,QAAQV,OAADA,EAACzO,OAAOiO,eAAPQ,EAAAA,EAAiBK,gBACpCM,gBAAgC,OAAjBV,EAAE1O,OAAOiO,WAAPS,OAAeA,EAAfA,EAAiBV,aAAjBU,EAAAA,EAAyBN,SAC1CiB,kBAAkC,OAAjBV,EAAE3O,OAAOiO,WAAPU,OAAeA,EAAfA,EAAiBX,aAAjBW,EAAAA,EAAyBW,QAC5CC,UAAWvP,OAAOwP,UAAUD,cAGjC,KAAA,EAAAzF,EAAAtF,KAAA,GAAA,MAAA,KAAA,EAAAsF,EAAAvF,KAAA,EAAAuF,EAAAnD,GAAAmD,EAAA,MAAA,GAAA,KAAA,GAAA,IAAA,MAAA,OAAAA,EAAAhF,OAAA,GAAA8E,EAAApM,KAAA,CAAA,CAAA,EAAA,IAIJ,KAAA,OAAA,SAAAiI,EAAAK,GAAA,OAAAwI,EAAApP,MAAA1B,KAAAkB,UAAA,CAAA,CAhC6B,GAkC9Bf,EAMQkP,aAAA,WAAY,IAAA3L,EAAA1D,KAClBA,KAAKmQ,iBAAiB5G,EAAiB0I,WAcvCjS,KAAKK,GAAGR,EAAe2L,iBAZC,SAAC0G,GACnBA,EAAQ/Q,OAAS,GACnBuC,EAAKyM,iBAAiB5G,EAAiB4I,gBAAiB,CACtDD,QAASA,OAUflS,KAAKK,GAAGR,EAAeoM,YALI,WACzBvI,EAAKyM,iBAAiB5G,EAAiB6I,wBAK1CpD,CAAA,CAnSmB,GCATqD,EAAoBrD,EAIb,OAAhBpN,EAACY,OAAOC,WAAPb,EAAiBoN,WAChBxM,OAAOC,SAASuM,qBAAqBA,IAEvCxM,OAAOC,SAAQ0M,EAAA,CAAA,EACT3M,OAAOC,UAAY,GAAE,CACzBuM,UAAW,IAAIA"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.umd.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/index.ts","../src/classes/WalletSDK.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","address","accountsChanged","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file diff --git a/dist/utils/user.d.ts b/dist/utils/user.d.ts new file mode 100644 index 0000000..2bf8f15 --- /dev/null +++ b/dist/utils/user.d.ts @@ -0,0 +1,8 @@ +export type User = { + userTelegramID: string; + userName: string; + userHandle: string; + patchwallet: string; + dateAdded: string; + photoUrl?: string; +}; diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js index c902917..5473dcb 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE62Y247aMBCG38XXqO2eaJc7RKmKVl0haNWL1Qq5zkCsTZzUdvagat+9ygFiOx7isHtLZr5//NsZT7j7RzQ8azIhLKFKgSIjwmKeRBIEmdwdns4fQeh5yrUGSUYkpzomE5JmUZGA+tjkbsyoD7FOEzIiD1xEZHLuxy5l9sgjkFWiasEgihTB2im2ypfXUU/FDdKPxss/OzfRVgm3NIWWr19yjN7Jchz6dP357Or89d4jhDu+jxjk9gr+FqD0ClSRmK6jcH+irXnp14y4YpkQwDRmUp9KS/Ab1toFOt5QxrLCOkvD1ExGiB6LKReL6C1yDSJETdbZ03dYpIMKUVcgop+SCkWZ5pl4i7qD6lPPQapM0GSj+O5kXQvSp/hEkwT0hkbRXMcgoUhn5Tadqo3gAqtQT1yz+D0L8RDD29EP0HEWlS0MbdmdMowcvGd3+53brzvckD7dWDCVuyK17xkuNMgtZQEGHrIdn67GRx0K3qc2pe9Q2BnhTaCJD8W7615SSdPBLcdJDz9kcymzgIuvChs2a9hg7ITV4CMyyExQBhouPVLJ6R+8cjvPVrgwt0XAE7KCbSGqJopJuJm2yPjSsn+VM9z0Vc6CrF7lLHTGKJGd8HeaLPzs8HliB/qXAvm7apnTKJKg0PPv1/IR+lSbi3mYUJMUyF5SLrnYnSTR5PYpaUnZwyzh5QBcDrzDtNzs/nuS62+ZbGqrKcMUfYRAVYt0kqr1a3+LXOUs4ApuFIMuXuutdztiA+p2P7OmdfSw1pmkO8Df9TYmqIu04Tfwgi7TgNoJ+Gp9tbqL9mKPXQCWOHYKsGL7TlobvBY0V3GGnjOvwj6p/2jVnWr99QbfxUNI0CZ6gK7VLRBB20YfgmaZ2HK0iXmodQJmgmlDoXmC/RVSfa55brQqp/6Yc3u8HzT7Pl3crn2jgoWqw45MBjE8z9yv0HYmsMs6hHaGAGPxYgDRDD46WLC2m+PmGTFhFrYJ3l7owbopeJtwIt2D1s/uf912oKd5btpsG7J/HmRGF+bu2QHn5zo7ljdD40JsM6xAMyaoyPliOb4eXyy9bONzzIP3pB77FvOX775klgK+mgt734qCo3tWPguywoa4e1Vhuqxqj+5f7/8D+nU3sbkVAAA=" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE62Y227bMAyG38XXwbaesjV3QZphQbEiSFbsoigCTWZiobbsSXIPGPrugw+NJVmM5LS3Mfn9FEWTdO7+RQqeVTSJaEqkBBmNIpqwNBbAo8nd/un8EbiaZ0wpENEoKohKokmU5XGZgvzc+m50q0+JytJoFD0wHkeTUzd2KfJHFoOoHWUHBl5mCNZ0MVW+vY48EbdINxoP/+RURxsh3JAMOr56KTB6z8vK0JfLrycXp6/3DiE8428Wg7K9gr8lSLUCWaZ61lG429HUPHdrxkzSnHOgCkuST6UjuBPWpQtUsiGU5qVRS8PUdEaIHk0I44v4PXItIkRNNN7TDzikhQpRl8DjX4JwSahiOX+PuoXyqRcgZM5JupFsd7SuAfEpPpE0BbUhcTxXCQgos1l1TcdqI7jAKOQTUzT5yEAcxPB29BNUksdVC0Nbdi8MzQfv2f1+Z/frHjekT7cpmIpdmZlzhnEFYktoQAL33laeLsYHMxR8T52LryhMj/Am0NqH4u1zL4kg2eCWY7mHF9lciDxg8NVmw3YNE4xVWAM+IIPsBJWhlqVHIhj5g0du+pkKZ/q1cHhCTrAted1EMQnb0xQZnxvpXxUUT/qqoEGpXhU0dMeokD3zD9os3OzwfWIH6laC+F23zGkcC5Bo/bu1XASfajuYhwm1ToHsJWGC8d1REq2vT0kJQh9mKasW4GrhHaZle/vnJFPfc9HG1lCGKboIgaoG6ShV41d/i1wVNGAEt4pBg9d46+2O2IL63U+PaR0/rFUuyA7wd72zCeoinfk1vKDH1KCmA35aV6z2oZ3YQwPAEMeqAAvWV2md8ZqTQiY5WmdOhTcnf2m1nWq5wG9xbxJ0iQ6gneoOiKDtWmvM1lfXviDXV9cDgjSA7iArIII2q2FvNMv5lqGd1kFtHLCb0tNQKpZi/9fU35SOsVv7NF+c9iByg2Y/poubtWufMVCN2YH1JYHnmf2p3C0uZlh7096moh2eDyDqxge3H9qNHDx5mk1YCjsHZ8N2YG0XvJdZlnah+dn+nrADNS0KPc1mQt6eByWjD7PvbI9zc60bK9rNdsG3ORagbhMU5HyxHF+Oz5ZOtvbN6MA7XA99MLrDt18yQwE/zZl5b6V0/XPYEKtnQam4NSB6UdWI2z7HUUFlydDqqZ4FRWJC7KqpMX1WXS33r/f/ASmcZFzoFgAA" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index f67cc6b..c3dddca 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAAE81dXZfbthH9L9xXZSPwm/vmuk7r0ybNsdPmYY/PHkaitYy1lEpS3rg+/u89AL9mhjMUSVGOn5ysMMMLXGAwuADBz1Z+eC6su/vP1oc021p39srK4qfEurM2+7gokuL7Vx+TrHz1lJZlklsr65TvrTvr6bA97ZPi+7rQAyx0+1g+7a1V48C6s6wvq8Z/2Pr/OT98TLdJbkyL1nOSnZ4Ev9iCeczKOsZ5kpUS+g6G8lsc8WZzOGVl8fIxznbJdiaQm76b8cCIQx7nMU7zueBq24URbQ5ZlmzKuaA684VxbdPiQmjIw9Kt9hin2YWdjfhYGOFTUhTxLpkLrjNfApe9jgLl2XzY+En/rYFZfjpKEalndFnwsLsoxkbHxp7FciZUjofhKRsOxaLMT5vyMBfFDXYxgTqplda22+JLcJCfCK217lCVxfa7tPjumKcf4zKZi9Feux2Vh2wuPmN5eYshNHnydPiY/DMtyiSb3bVuel4WRpk8peVsVivbBRD1cpZmvIv5SlNgMFeRQs+PSfl42BZC4Gldk+LjxnqLfChlqjzqOCblTQIIYzIbCJgikvLxIU/+e0qK8kWd+MxFcsP7GoeO8yojjpeAGl8P4zHJi0MW7x+KdJfNBkm9XKMliyTb/pLHWRFvyvQwHyvva2nEu+fi4WxSeB5sz801Wtakdq+lzHBci3Y+lkb4HO/3SfkQb7evysckT05PL/WzZqOV/V0JefGclpvHRcHzLhfB7/ZC/5sqUL5JitMeBDJxfuPtZk8BdEpko+qZ+ZBAgS6m4RI8noErTVvTURNP1wbPzw7TYCMfX6O1pYliemsTT9cGz8wX0zB3Dq4NdURomwZddviVqiLOL7PqQb19jX5Pp/Hp/b32cG2w/Qlo2rpmvJoyYjoh6F/ku9OTXvr/HOfx09RQTazng/T8swBbaGlWJvn7eDMF3/wFGZRYngwdlwO5aR3N63JdmwhAj5jM+UBbRwsCtfurbVHf6DmeTeRUKY9/8iQJr+dCoist/pan2TbJP/1qwulUUIz9fGRIfEqLl9UEC4T00aCg6UJ46nxwKpbObCHGivKQQ/1+JI7ObIrMOhpVftxMbhljshQaxFWV2+DkYmw7IdOrtNUTURhHIuvMrtJmeaK7SPJznOZptpvezYn1NTG+TYoiHRD0hzF21lfBmGa/J5ty5vRy07O+CsY4yw6nbJPMRcnYXwXn3mxt/HBoJvWm/KvhDScB9VlvV6nD9H7K9800e0zytJrSLhlBozaexBEkbjgtinJw40nA1ttwuhiRuPH0Ks8P53efTKnBLSguH8W+pbpXvs89aaDC1WMuz1ElILOyVcaZNIdmcCk7GVxtvTiqzWF7AaraenFU27iM56OqrZdA5TAHPXSRLpJ/jPM0/k0eTdjssi7ve57Trf0fHrTucAmQm9bF7LYSV9V1XvVDnO7Bcmg+yFvqcD7k27raAvK/tkLpMsCJv6vh/ndWnI7HQ14m2x+x9nIBeM7pFWsQn8rHQ57+b5mWJ/6uhvunQ6VrLoEZ+Loi3hfH4+tFmrhzdb1eUWiJ7PfFxiPxdzXcZkW+dDDhnC5ZAx8kLMkzn+K9P2Vmy0uCTw0vm/T6Se0boNzQVPbNcTPyvPeb4+b8uSXtDhccVxkNkd32r8U1qlmMeupNz/gsCOJGOoqQlj8c8totCWXjkAkulsFHdcxJjbV0K6GNrHmtRF0sg+/sgSIJ1YQjRGOx7JJSR9lKYH+x3eZJMXGE3QgulsFX5vHmw8t9qo9vaillIjbG/AJcLgxJI8/T1A7nnKLBoam/4T0QC/A+J4+BczAaWN/f2NXPRdDGroPGuxW3QogOvATs24KRhy+Dz+QF1278phb1o79Ty1enbSjppYA/jmn+6bq1um0fcqXKnUlK61LiSZClqgmf8+fUVP9THPU+/pWrih701er69QckqGjzN/vqNYat+61V/vbhQR8k+KP5g/M1W6P5S41BGgVnDsN+zda5Hf2mwvWa6UzMMGfcvom2apF8oy1FXqD7E1uKeRnvm2openbiT2wq7jzGn91WdAEiCCRjWg2bfiOLDgbUZcsN0kDioUbz8y+HD8m01YaM95b4vBz8uWhcqRL/zvdL1QB5/Ir4/6JvtQCHFxarRuf46rUpHg95uWh/Qh6vgV+ILXPwf1vRZLkwIp6OrH6ezTcimji7AO55jgdl2glzL/rrMuxPfqWHBzj1RZ6psAbF2zEAOQfXgSrquGNgUuNlIMITUm8GjhjXfuZotlNPPsFHTTrlVBuKZ5aTbPsi2/4ap2XXIuNQSKYX45kDREDQnqg8lM1O61REzzOapmezKKK6vi+O6ZxmQmaTuept5L7dfnhL3g2gGx1dkZHbup3BP5JP0qYT8IrLjxuOALd4NVYv+Z6C4GZSqi364tH1JeBJ0MYruxNxMen+JGATkvvZyGgiPxPg2LR9KrP9FH0ateMT8qktaKbZuV0OWC+KKh7cmT4DKh65Jz21pQbv2zjXUCMv2hiDieZaqKCQaEl+LwirMoy3WXwsHg9S0sdiaWwuifM2N9mI0ygL44LHT03+5OdPSgVZN1KSsUvK/8T705xGuQG2CyIqLkBUXAXRZp/E81irDZflqzeYplEGzJl0VXwlaRqH8cf+mJ/CI7ZfFGcvta0Wv2//+g8xs21LTLrzrbV6ecjep5I+3vkm5ccFng78LOlq+OljZSvRi7jVic40z4B0G486yiz7GhZQ4+NRlrJHAxyT3k5BCGazfp+lo4txPL9HTZ3JpIdPmscYJ+IWyrlXTUVAwPISNJMvFxABTbleYBKmqshFyPouFsNH1dUpPWrUedgJWBixdzScCSd0JyCSrsIaDWvqRYlTsKW77Edy7fN4XMh4OUwjrmiQMQmXNFyIaZeUMwEByyXRyDsHU5BNP/k9AeWcrr5s7x75SruIZuItyhPmvHNXtcj9e9ZlLdP61q/Jb87Z+x+GuhVxcCWkj3G23Z+9lUTESc2vhFLcOhsNdPAtiEWxplla/qKfNqtBifWCGFuApzLdF9+T04PNgs/8WF2fx+0vsC+bv/z7i9c/vWVeGETOqlLDGTiCxr7n95j88ZKIjt0bfhh8W/LSZ56y8U+FZWc9t8dT12dFtkCRkRtPYCRwbxQyfqnFqMpB7LyofTz+65hkvY95jAVwAx2MhdJzJb1Dxy8XJiLsu7kKTvbd3VlQR72weyHaOlOq92cvRcx4WwI1lbNIUSKOnMd8wZChUWGXlPiteBwRmp8HowGIcD13NLq1Dgc89+rSepXr0YgPr7P3B6EusMiw+giuGn31+mc/8tv8CbkHd2YyT2Asx9QVVUTIV0+nlL1idAKKm9rHWCico1F3/syElw3d/HMZvHQD1kIz4dU+rgEv32bstaxT4NU+FoIHMjR2mNE8Dbk+M+rG9n863tEQwONc/zQ2XiE3NFYZR4K3Hm7j6cu7lVW9mHT32fqY5Oa9yzvLvnVuI2tlvU+T/VZ/568ZIpvDk7771npX//afRMu5ukRV5Pu1tbpfr9zgNgq9d+9W942F+cH8wRRT1upeccUUKmZbq3ubK2ajYo61une4Yg4q5lqre3fl2rdhEKBiLirmWat7b+W4t1HkoGIeKuZbq3ufe6iPigXW6j7gigWoWGit7kOuWIiKRdbqPuKKRbh5dWur9cpxbh3bxg1MiDBMKK5VFOZC6TZX9sqJbj1FfGI6lG525bAlMSNKt7xiOVGYFKUbX3lsl8G8KN3+imVGYWqUpkCx5CjMjtIsqJDFiQlSmggVsSUxR7Ymwl5zJW3Mka2JsFmObDJezIDhRwzmyNZE2A7rE3NkayJsliMbc2RrImyPLYk5sjURNsuRjTmyA7E9bcyRLXNkY47sSG55zJGzFlvewRw5SooaDqbIscVGckhUc8SGdzBFjiuS6WCKHEMR2+UdTJFjKGJDkoMpcjQPNhuVHEyRo3lw2OnBwRQ5mgeHnSEcTJGreXBsNqxjilwlBkUXc+RqIhx2RnExR66ZevhJhUw+mgjH44KiizlyNRGOz/rEHLmaCCdgS2KOXE2Eww4OF3PkGo7YAedijlxNhMuy6WKOPE2Ey7LpYY48TYTLBjAPc+RpIlyWIw9z5GkiXJctiTnyXHGK80iO4IlTnIc58nxxivMwR54mwmWnOA9z5GkiXDZ8epgjLxL7vIc58g1HbF/yMUe+4YiNDD7myDccsZHBxxz5mgiP7Us+5sjXRHhq5axvfSfCJTFHvknk2L7kk1ROE+GxfcnHHPmaCI/tSz7myNdEeCybPubI10R4fCqJOQo0ER6fTWKOAjMdsRwFmKNAE+GxHAWYo0AT4bMcBZijQBPhs+M9wBwFmgif5SjAHAUm32bnuIBk3JoInx1xAeYoCMWYHGCOAk2Ez87aAeYoXEuJQIgpCjUPvs89PMQUhZoHP2BLYopCQxG/jsAUha7YSCGmKPTEARdiikJDEduVQkxRGMg+ybpI8xCwnS7EFIWah4DN1UJMUaSJCNhOF2GOIiXijDBHkS2XxBxFmoiADTYR5ijSRAQsRxHmKPLEVVyEOYp8cXqPMEdRIA64CHMUhXLdyfLVcMQOo4iuYA1JbBZU/QbLai4Cdu6qfoNlNRsBv5Rbk3Xs2hHjQ/UbLCvPS9VvsKzmJGAHSvUbLOuLkaf6DZYNpNhT/QSLhmL0qX6DZSMx/lS/gbJGXuBTUtWTHuSEXFHxwUgMIRsHFJUfjMgQ8vISFSCMzBCysUBRCcIIDSE7chUVIYzUELKJgqIyhBEbQl7boEKEkRv4EaSoFKHkiKiIGKHsgeFG5AhlDww3m4pGA8ONSBLKCA8hr9wQUUIZ6SHktRsiSygjPoTsrKiIMKGM/BDyQ5NIE8oIEBHfJ4k4oYwEEfF9ksgTypaTdkUECmVkiIjvv0SiUEaJiPj+S1QKZbSIiO+/DpX7NDcR33+JUqGMHhHxHBOtQhlFIuI5JmqFMppExHNM9ArlyNmHIoqFMrpExPcHolkop+KN7xBEtlBuJdHyPYIoF2pAulBEu1CVeMEKIoqoF2pAvlAulWrN4njNdzUiYSgjVAh+CXNGqeAnLSJiKCNVqDXfg4mOoYxaodZ8FyZShjKCBa+PKCJmKK9iTtCiCXOenOUromgob0BhJ5qG8gY0dqJqKKNd8IKS8qjMbjLJNT9AibShKm1jzY9Qom4oo2EIWQTRN5RXcccPZyJxqFrj4McoUTmU0TL4nFoRnUP51d4IP56J1KGMoKEUP56J2qGMpqEUP5aI4KGMrKEU3+uJ5qH8aiXA93qf7pQY/oRdFaJ8KKNvKGljhRBoJA4l7K0Q/UMZlUMpnm0igSgjdCjFs01UEGW0DmXzDBIhRAXV8OMZJFqIMoqH4rdaFJFDVFDpiuxaShFFRBndgxfiFNFElFE+lM2zHdDdLkOgzbNNlBFl9A/Fb9EoIo4oI4EofltBEX1EGRlEaoxaIzG70h8T/TmT19Xu9P19+zLbZ6u+S/POU82++GfLd627z19WVujV/wbVv5Gq/7Xrf8PqX70oq/7DMSW/dJvb+v80qu4izO6RgdM9MnLOGG4e42ynD2V19nZnbkvWzVn6zioMOjOd3gqG9cfzuveaOg8uwO2JTz4eU4Q2isBznVA2O9QnETtTHYM6W9+TbfVZBmi4XsOHRoKhOT7KNLAPusSQ6Rad9QN9ClQ5kBrKeMBNFYaQIqm6zdlj0KFAM0VNl/TXkn194tncpqk/TFdimkHTnXPB9RLlgUqIdSAOkuqrI6CvAS+eNLgaL+ZjrYA+MKQDqaM3tsX2Q/tCA2ACdjwldoLaR3WOsth+QP0ejjdHbgjzijcwg092xM5jDjoaBk1hNGhgL/LFvo89FNiFA13ITahdkC7swy4sBbfqY3KAbQDZV6JR/V4csOvMmm7vii1dmZNIEUC863XtxBY7fuvkt+ZeF+ALMr5Wja+B+nTvssLYBb1UTtzamRfVTlXrvfmLKz2m+kQeaDMQnHypf8HXEEFcA2OyeqxT4wibllsHDR5p0IhBE/Q5XzJO0qM+s9eEjdScyANtZ4O5UadQghfzNU5gBsdc3ZE8EUL5+MDN6grOczUrthS5tBNmArBBG1SDZ2U50vDTPuq7Elk8MAzUCYstTb/al37Hs4TveAJcIKLaNeWONEakeQW0jxSUmgueYSiCgbhOv6Qh3nxwAQxJMJhCqfK7pOxlLTrhBz1JGly7pNxUr1bCAYxmQKmZdklZtFdUgFaCxo7Ug3dJeSqSvJp4mGTPB2EtbGLFuklbvYHqfKzuPwGA4JASSd8l5XPym8MmBGsYYz2JvN1z8cCHHTiobSliVe/SHZt36eDjYVgWh/Vj8gczIBWKxuLUVJ2Mhr0HRpRAeqZ+Xa1sX1eDkOHY9aR+W32Om83UQYuJZAtx2IGTqtNEc6kjpsUu14b5p6ovIk8gmrkSb2lRGbJYtFQIIrMUCatvZ78/5HU4bLPKXjhxQeU8qU5PzQvlII6AjFK0qr6ZCeoP+o648Gkvagd2IFK69ZiNpD5E0z8XQPWbWTmQBl0GPmgCagtaPZJGfJY8i9m7D2ouzsLZoRd1PdjO4oMPeX3VLzCESzZpdqFjFGaq9aTfZJHi8lYHGMQVoHjAJM127+uv2QLQAIG4uK2ty+qqPsARmCeiNi2UetkxzuMn3MnAxCoukI9JXhyyeP+g71lAIRkQbNe9zBa9MBHKAXV3m24qBgl5mQh4F+MkskaN4IFq+CJ/MJrQ4QYC9dnH95Mb0APPGPczXTipBueeXUUZCt4Gw01cofZd4DrA2VWKjdgHtof1kIJcY9+ku/nu9EQb0wZRU5TjJEf98WEDZp2RuPLmU37ADaieLbmp3lyC5MIkMJAqU90NsW/vhgAO4Pq9nsM9r4ltUkdv78wHwxQAcevgGLTq5xlHTDLmA2BVWrSyIrl+xk0/9MGV1lrqt3midR0uI3TBqHeloFWbtx/cA+Zg2IrZPZGkHDBKXL+J1gPGwmjzQdgUJ/X8uJE7pA8jlkSgvj+PXZzAwSouTHlJLYLRTlyIdrYfErSSCyHp4khC5lj+hkNKDFSdPVt9uBgQ1/Z6HR1nW325d8cEggLdKGnO027y4yY+ppwLOMBFlbV2wdmjZbXYDWRFQO+gg8xcbove8PEBkaHIY2WHs8MAgA7blEcawAW3lkVxUZpzzd3I/agD12TrOmFU4npUZ0zMQkIfJgDtJg6D/vhxwNhz21gujkFzCVVPm3BAJdxWqpOa0KxNgVCMaAQRLWxaY92wIkr2pyw+lY+HPP0fyYXB8PSlVjHXg7CrdNidRVHzlBWn4/GgdwT7izUP8OKL6As91//e1y5Bs4paEb45BnYJGNo8iQx4wwGnk8HljJjLtlcL9AUvpF+Kiy/8vnI/K4VEiFtf8G1maIxSSbEdemZwUAfNCi6UaqDj8vtDXucF/aWkDzpCUA+RUBpmtTM03SJnoFsHzeBYS1FvYMqA7CoZjVZSHuLtNikfkzw5PfUCABSm7LqtRJWx9lfFEtklqKPd7AtI1CPFMu+uHIEdEXYDMRYMqUZoC1LcS6g8SNsRCi9MpIjAbv3pI3kgyMs9sbbd1Bf8gokKTjb88uPdyjqmx2SfZol1d//uy5f/A4gHdEpRrwAA"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/classes/classes_EventEmitter.EventEmitter.html b/docs/classes/classes_EventEmitter.EventEmitter.html index abc9871..0db5926 100644 --- a/docs/classes/classes_EventEmitter.EventEmitter.html +++ b/docs/classes/classes_EventEmitter.EventEmitter.html @@ -1,21 +1,21 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>EventEmitter | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_EventEmitter.html">classes/EventEmitter</a></li><li><a href="classes_EventEmitter.EventEmitter.html">EventEmitter</a></li></ul><h1>Class EventEmitter</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>A class for emitting provider events</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>EventEmitter | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_EventEmitter.html">classes/EventEmitter</a></li><li><a href="classes_EventEmitter.EventEmitter.html">EventEmitter</a></li></ul><h1>Class EventEmitter</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>A class for emitting provider events</p> <h4>Since</h4><p>0.2.0</p> -</div></section><section class="tsd-panel tsd-hierarchy"><h4>Hierarchy (<a class="link" href="../hierarchy.html#classes/EventEmitter.EventEmitter">view full</a>)</h4><ul class="tsd-hierarchy"><li><span class="target">EventEmitter</span><ul class="tsd-hierarchy"><li><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L26">src/classes/EventEmitter.ts:26</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_EventEmitter.EventEmitter.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> +</div></section><section class="tsd-panel tsd-hierarchy"><h4>Hierarchy (<a class="link" href="../hierarchy.html#classes/EventEmitter.EventEmitter">view full</a>)</h4><ul class="tsd-hierarchy"><li><span class="target">EventEmitter</span><ul class="tsd-hierarchy"><li><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L26">src/classes/EventEmitter.ts:26</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_EventEmitter.EventEmitter.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="classes_EventEmitter.EventEmitter.html#events" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>events</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="classes_EventEmitter.EventEmitter.html#emit" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>emit</span></a> <a href="classes_EventEmitter.EventEmitter.html#on" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>on</span></a> <a href="classes_EventEmitter.EventEmitter.html#removeListener" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Listener</span></a> -</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_EventEmitter" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Event<wbr/>Emitter</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a><a href="#constructor.new_EventEmitter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L27">src/classes/EventEmitter.ts:27</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-is-private"><a id="events" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>events</span><a href="#events" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>A map of events and their listeners</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L35">src/classes/EventEmitter.ts:35</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="emit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>emit</span><a href="#emit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="emit.emit-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">emit</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a><a href="#emit.emit-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> +</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_EventEmitter" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Event<wbr/>Emitter</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a><a href="#constructor.new_EventEmitter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L27">src/classes/EventEmitter.ts:27</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-is-private"><a id="events" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>events</span><a href="#events" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>A map of events and their listeners</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L35">src/classes/EventEmitter.ts:35</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="emit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>emit</span><a href="#emit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="emit.emit-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">emit</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a><a href="#emit.emit-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag ts-flagRest">Rest</code> <span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></span><div class="tsd-comment tsd-typography"><p>Event data</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a></h4><p>The instance of the class itself</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Emits an event</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L74">src/classes/EventEmitter.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="on" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>on</span><a href="#on" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="on.on-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">on</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a><a href="#on.on-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L74">src/classes/EventEmitter.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="on" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>on</span><a href="#on" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="on.on-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">on</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a><a href="#on.on-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">callback</span>: <span class="tsd-signature-type">Function</span></span><div class="tsd-comment tsd-typography"><p>Callback function</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a></h4><p>The instance of the class itself</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Adds a listener to the event</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L44">src/classes/EventEmitter.ts:44</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="removeListener" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>remove<wbr/>Listener</span><a href="#removeListener" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="removeListener.removeListener-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">remove<wbr/>Listener</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a><a href="#removeListener.removeListener-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L44">src/classes/EventEmitter.ts:44</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="removeListener" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>remove<wbr/>Listener</span><a href="#removeListener" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="removeListener.removeListener-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">remove<wbr/>Listener</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a><a href="#removeListener.removeListener-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">callback</span>: <span class="tsd-signature-type">Function</span></span><div class="tsd-comment tsd-typography"><p>Callback function</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a></h4><p>The instance of the class itself</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Removes a listener from the event</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L59">src/classes/EventEmitter.ts:59</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#events" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>events</span></a><a href="#emit" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>emit</span></a><a href="#on" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>on</span></a><a href="#removeListener" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Listener</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L59">src/classes/EventEmitter.ts:59</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#events" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>events</span></a><a href="#emit" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>emit</span></a><a href="#on" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>on</span></a><a href="#removeListener" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Listener</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/classes/classes_Provider.Provider.html b/docs/classes/classes_Provider.Provider.html index ee69525..f28fc62 100644 --- a/docs/classes/classes_Provider.Provider.html +++ b/docs/classes/classes_Provider.Provider.html @@ -1,6 +1,6 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Provider | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.Provider.html">Provider</a></li></ul><h1>Class Provider</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The base wallet provider class</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Provider | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.Provider.html">Provider</a></li></ul><h1>Class Provider</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The base wallet provider class</p> <h4>Since</h4><p>0.2.0</p> -</div></section><section class="tsd-panel tsd-hierarchy"><h4>Hierarchy (<a class="link" href="../hierarchy.html#classes/Provider.Provider">view full</a>)</h4><ul class="tsd-hierarchy"><li><a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a><ul class="tsd-hierarchy"><li><span class="target">Provider</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L72">src/classes/Provider.ts:72</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_Provider.Provider.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> +</div></section><section class="tsd-panel tsd-hierarchy"><h4>Hierarchy (<a class="link" href="../hierarchy.html#classes/Provider.Provider">view full</a>)</h4><ul class="tsd-hierarchy"><li><a href="classes_EventEmitter.EventEmitter.html" class="tsd-signature-type tsd-kind-class">EventEmitter</a><ul class="tsd-hierarchy"><li><span class="target">Provider</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L72">src/classes/Provider.ts:72</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_Provider.Provider.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="classes_Provider.Provider.html#isGrinderyWallet" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>is<wbr/>Grindery<wbr/>Wallet</span></a> <a href="classes_Provider.Provider.html#methods" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>methods</span></a> <a href="classes_Provider.Provider.html#rpc" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>rpc</span></a> @@ -16,34 +16,34 @@ <h4>Since</h4><p>0.2.0</p> <a href="classes_Provider.Provider.html#restorePairing" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>restore<wbr/>Pairing</span></a> <a href="classes_Provider.Provider.html#restoreSession" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>restore<wbr/>Session</span></a> <a href="classes_Provider.Provider.html#switchChain" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>switch<wbr/>Chain</span></a> -</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Provider" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Provider</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a><a href="#constructor.new_Provider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></h4><aside class="tsd-sources"><p>Overrides <a href="classes_EventEmitter.EventEmitter.html">EventEmitter</a>.<a href="classes_EventEmitter.EventEmitter.html#constructor">constructor</a></p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L75">src/classes/Provider.ts:75</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="isGrinderyWallet" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>Grindery<wbr/>Wallet</span><a href="#isGrinderyWallet" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">is<wbr/>Grindery<wbr/>Wallet</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = true</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L73">src/classes/Provider.ts:73</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-private"><a id="methods" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>methods</span><a href="#methods" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol"><</span><a href="../types/classes_Provider.ProviderMethods.html" class="tsd-signature-type tsd-kind-type-alias">ProviderMethods</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> = ...</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The list of supported provider methods.</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L140">src/classes/Provider.ts:140</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-private"><a id="rpc" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>rpc</span><a href="#rpc" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">rpc</span><span class="tsd-signature-symbol">:</span> <a href="classes_Rpc.Rpc.html" class="tsd-signature-type tsd-kind-class">Rpc</a><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L118">src/classes/Provider.ts:118</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-private"><a id="storage" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>storage</span><a href="#storage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">storage</span><span class="tsd-signature-symbol">:</span> <a href="classes_SdkStorage.SdkStorage.html" class="tsd-signature-type tsd-kind-class">SdkStorage</a><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L116">src/classes/Provider.ts:116</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member tsd-is-private"><a id="announceProvider" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>announce<wbr/>Provider</span><a href="#announceProvider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="announceProvider.announceProvider-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">announce<wbr/>Provider</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#announceProvider.announceProvider-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Announces the provider to the window object</p> +</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Provider" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Provider</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a><a href="#constructor.new_Provider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></h4><aside class="tsd-sources"><p>Overrides <a href="classes_EventEmitter.EventEmitter.html">EventEmitter</a>.<a href="classes_EventEmitter.EventEmitter.html#constructor">constructor</a></p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L75">src/classes/Provider.ts:75</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="isGrinderyWallet" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>Grindery<wbr/>Wallet</span><a href="#isGrinderyWallet" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">is<wbr/>Grindery<wbr/>Wallet</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = true</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L73">src/classes/Provider.ts:73</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-private"><a id="methods" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>methods</span><a href="#methods" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol"><</span><a href="../types/classes_Provider.ProviderMethods.html" class="tsd-signature-type tsd-kind-type-alias">ProviderMethods</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> = ...</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The list of supported provider methods.</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L140">src/classes/Provider.ts:140</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-private"><a id="rpc" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>rpc</span><a href="#rpc" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">rpc</span><span class="tsd-signature-symbol">:</span> <a href="classes_Rpc.Rpc.html" class="tsd-signature-type tsd-kind-class">Rpc</a><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L118">src/classes/Provider.ts:118</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-private"><a id="storage" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>storage</span><a href="#storage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">storage</span><span class="tsd-signature-symbol">:</span> <a href="classes_SdkStorage.SdkStorage.html" class="tsd-signature-type tsd-kind-class">SdkStorage</a><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L116">src/classes/Provider.ts:116</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member tsd-is-private"><a id="announceProvider" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>announce<wbr/>Provider</span><a href="#announceProvider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="announceProvider.announceProvider-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">announce<wbr/>Provider</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#announceProvider.announceProvider-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Announces the provider to the window object</p> <h4>Since</h4><p>0.1.1</p> <h4>Link</h4><p><a href="https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events">https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events</a></p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L430">src/classes/Provider.ts:430</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><a id="emit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>emit</span><a href="#emit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-signature tsd-anchor-link"><a id="emit.emit-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">emit</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a><a href="#emit.emit-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L430">src/classes/Provider.ts:430</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><a id="emit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>emit</span><a href="#emit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-signature tsd-anchor-link"><a id="emit.emit-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">emit</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a><a href="#emit.emit-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag ts-flagRest">Rest</code> <span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></span><div class="tsd-comment tsd-typography"><p>Event data</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></h4><p>The instance of the class itself</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Emits an event</p> -</div><aside class="tsd-sources"><p>Inherited from <a href="classes_EventEmitter.EventEmitter.html">EventEmitter</a>.<a href="classes_EventEmitter.EventEmitter.html#emit">emit</a></p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L74">src/classes/EventEmitter.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="injectProvider" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>inject<wbr/>Provider</span><a href="#injectProvider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="injectProvider.injectProvider-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">inject<wbr/>Provider</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#injectProvider.injectProvider-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Injects the provider into the window object</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L408">src/classes/Provider.ts:408</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isConnected" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>Connected</span><a href="#isConnected" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="isConnected.isConnected-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Connected</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#isConnected.isConnected-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the provider is connected to the server.</p> -<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L96">src/classes/Provider.ts:96</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="listenForRequestProviderEvents" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>listen<wbr/>For<wbr/>Request<wbr/>Provider<wbr/>Events</span><a href="#listenForRequestProviderEvents" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="listenForRequestProviderEvents.listenForRequestProviderEvents-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">listen<wbr/>For<wbr/>Request<wbr/>Provider<wbr/>Events</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#listenForRequestProviderEvents.listenForRequestProviderEvents-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Listens for the request provider events</p> +</div><aside class="tsd-sources"><p>Inherited from <a href="classes_EventEmitter.EventEmitter.html">EventEmitter</a>.<a href="classes_EventEmitter.EventEmitter.html#emit">emit</a></p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L74">src/classes/EventEmitter.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="injectProvider" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>inject<wbr/>Provider</span><a href="#injectProvider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="injectProvider.injectProvider-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">inject<wbr/>Provider</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#injectProvider.injectProvider-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Injects the provider into the window object</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L408">src/classes/Provider.ts:408</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isConnected" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>Connected</span><a href="#isConnected" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="isConnected.isConnected-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Connected</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#isConnected.isConnected-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the provider is connected to the server.</p> +<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L96">src/classes/Provider.ts:96</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="listenForRequestProviderEvents" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>listen<wbr/>For<wbr/>Request<wbr/>Provider<wbr/>Events</span><a href="#listenForRequestProviderEvents" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="listenForRequestProviderEvents.listenForRequestProviderEvents-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">listen<wbr/>For<wbr/>Request<wbr/>Provider<wbr/>Events</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#listenForRequestProviderEvents.listenForRequestProviderEvents-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Listens for the request provider events</p> <h4>Since</h4><p>0.1.1</p> <h4>Link</h4><p><a href="https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events">https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events</a></p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L445">src/classes/Provider.ts:445</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><a id="on" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>on</span><a href="#on" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-signature tsd-anchor-link"><a id="on.on-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">on</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a><a href="#on.on-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L445">src/classes/Provider.ts:445</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><a id="on" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>on</span><a href="#on" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-signature tsd-anchor-link"><a id="on.on-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">on</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a><a href="#on.on-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">callback</span>: <span class="tsd-signature-type">Function</span></span><div class="tsd-comment tsd-typography"><p>Callback function</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></h4><p>The instance of the class itself</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Adds a listener to the event</p> -</div><aside class="tsd-sources"><p>Inherited from <a href="classes_EventEmitter.EventEmitter.html">EventEmitter</a>.<a href="classes_EventEmitter.EventEmitter.html#on">on</a></p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L44">src/classes/EventEmitter.ts:44</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><a id="removeListener" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>remove<wbr/>Listener</span><a href="#removeListener" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-signature tsd-anchor-link"><a id="removeListener.removeListener-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">remove<wbr/>Listener</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a><a href="#removeListener.removeListener-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> +</div><aside class="tsd-sources"><p>Inherited from <a href="classes_EventEmitter.EventEmitter.html">EventEmitter</a>.<a href="classes_EventEmitter.EventEmitter.html#on">on</a></p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L44">src/classes/EventEmitter.ts:44</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><a id="removeListener" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>remove<wbr/>Listener</span><a href="#removeListener" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-signature tsd-anchor-link"><a id="removeListener.removeListener-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">remove<wbr/>Listener</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a><a href="#removeListener.removeListener-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">callback</span>: <span class="tsd-signature-type">Function</span></span><div class="tsd-comment tsd-typography"><p>Callback function</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></h4><p>The instance of the class itself</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Removes a listener from the event</p> -</div><aside class="tsd-sources"><p>Inherited from <a href="classes_EventEmitter.EventEmitter.html">EventEmitter</a>.<a href="classes_EventEmitter.EventEmitter.html#removeListener">removeListener</a></p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L59">src/classes/EventEmitter.ts:59</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="request" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>request</span><a href="#request" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="request.request-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">request</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Provider.Provider.html#request.request-1.T">T</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">args</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Provider.Provider.html#request.request-1.T">T</a><span class="tsd-signature-symbol">></span><a href="#request.request-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span><a id="request.request-1.T" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">T</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">args</span>: <a href="../interfaces/classes_Provider.ProviderRequestArguments.html" class="tsd-signature-type tsd-kind-interface">ProviderRequestArguments</a></span><div class="tsd-comment tsd-typography"><p>Request arguments</p> +</div><aside class="tsd-sources"><p>Inherited from <a href="classes_EventEmitter.EventEmitter.html">EventEmitter</a>.<a href="classes_EventEmitter.EventEmitter.html#removeListener">removeListener</a></p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L59">src/classes/EventEmitter.ts:59</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="request" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>request</span><a href="#request" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="request.request-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">request</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Provider.Provider.html#request.request-1.T">T</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">args</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Provider.Provider.html#request.request-1.T">T</a><span class="tsd-signature-symbol">></span><a href="#request.request-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span><a id="request.request-1.T" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">T</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">args</span>: <a href="../interfaces/classes_Provider.ProviderRequestArguments.html" class="tsd-signature-type tsd-kind-interface">ProviderRequestArguments</a></span><div class="tsd-comment tsd-typography"><p>Request arguments</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Provider.Provider.html#request.request-1.T">T</a><span class="tsd-signature-symbol">></span></h4><p>The result of the request</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Sends a request to the provider</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L109">src/classes/Provider.ts:109</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="restorePairing" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>restore<wbr/>Pairing</span><a href="#restorePairing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="restorePairing.restorePairing-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">restore<wbr/>Pairing</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><a href="#restorePairing.restorePairing-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Restores the pairing process if pairing token is stored in the local storage</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L348">src/classes/Provider.ts:348</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="restoreSession" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>restore<wbr/>Session</span><a href="#restoreSession" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="restoreSession.restoreSession-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">restore<wbr/>Session</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><a href="#restoreSession.restoreSession-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Restores the session if session Id is stored in the local storage</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L389">src/classes/Provider.ts:389</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="switchChain" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>switch<wbr/>Chain</span><a href="#switchChain" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="switchChain.switchChain-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">switch<wbr/>Chain</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">chainId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">></span><a href="#switchChain.switchChain-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">chainId</span>: <span class="tsd-signature-type">any</span></span><div class="tsd-comment tsd-typography"><p>Chain id in hex format</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L109">src/classes/Provider.ts:109</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="restorePairing" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>restore<wbr/>Pairing</span><a href="#restorePairing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="restorePairing.restorePairing-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">restore<wbr/>Pairing</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><a href="#restorePairing.restorePairing-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Restores the pairing process if pairing token is stored in the local storage</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L348">src/classes/Provider.ts:348</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="restoreSession" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>restore<wbr/>Session</span><a href="#restoreSession" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="restoreSession.restoreSession-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">restore<wbr/>Session</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><a href="#restoreSession.restoreSession-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Restores the session if session Id is stored in the local storage</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L389">src/classes/Provider.ts:389</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="switchChain" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>switch<wbr/>Chain</span><a href="#switchChain" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="switchChain.switchChain-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">switch<wbr/>Chain</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">chainId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">></span><a href="#switchChain.switchChain-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">chainId</span>: <span class="tsd-signature-type">any</span></span><div class="tsd-comment tsd-typography"><p>Chain id in hex format</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">></span></h4><p><code>Null</code> on success</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Switches the chain</p> <h4>Since</h4><p>0.3.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L126">src/classes/Provider.ts:126</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#isGrinderyWallet" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>is<wbr/>Grindery<wbr/>Wallet</span></a><a href="#methods" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>methods</span></a><a href="#rpc" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>rpc</span></a><a href="#storage" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>storage</span></a><a href="#announceProvider" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>announce<wbr/>Provider</span></a><a href="#emit" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>emit</span></a><a href="#injectProvider" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>inject<wbr/>Provider</span></a><a href="#isConnected" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Connected</span></a><a href="#listenForRequestProviderEvents" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>listen<wbr/>For<wbr/>Request<wbr/>Provider<wbr/>Events</span></a><a href="#on" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>on</span></a><a href="#removeListener" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Listener</span></a><a href="#request" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>request</span></a><a href="#restorePairing" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>restore<wbr/>Pairing</span></a><a href="#restoreSession" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>restore<wbr/>Session</span></a><a href="#switchChain" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>switch<wbr/>Chain</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L126">src/classes/Provider.ts:126</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#isGrinderyWallet" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>is<wbr/>Grindery<wbr/>Wallet</span></a><a href="#methods" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>methods</span></a><a href="#rpc" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>rpc</span></a><a href="#storage" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>storage</span></a><a href="#announceProvider" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>announce<wbr/>Provider</span></a><a href="#emit" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>emit</span></a><a href="#injectProvider" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>inject<wbr/>Provider</span></a><a href="#isConnected" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Connected</span></a><a href="#listenForRequestProviderEvents" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>listen<wbr/>For<wbr/>Request<wbr/>Provider<wbr/>Events</span></a><a href="#on" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>on</span></a><a href="#removeListener" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Listener</span></a><a href="#request" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>request</span></a><a href="#restorePairing" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>restore<wbr/>Pairing</span></a><a href="#restoreSession" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>restore<wbr/>Session</span></a><a href="#switchChain" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>switch<wbr/>Chain</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/classes/classes_ProviderError.ProviderError.html b/docs/classes/classes_ProviderError.ProviderError.html index ccdebd3..456c6f0 100644 --- a/docs/classes/classes_ProviderError.ProviderError.html +++ b/docs/classes/classes_ProviderError.ProviderError.html @@ -1,6 +1,6 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderError | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_ProviderError.html">classes/ProviderError</a></li><li><a href="classes_ProviderError.ProviderError.html">ProviderError</a></li></ul><h1>Class ProviderError</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Error class for wallet Provider</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderError | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_ProviderError.html">classes/ProviderError</a></li><li><a href="classes_ProviderError.ProviderError.html">ProviderError</a></li></ul><h1>Class ProviderError</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Error class for wallet Provider</p> <h4>Since</h4><p>0.1.0</p> -</div></section><section class="tsd-panel tsd-hierarchy"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li><span class="tsd-signature-type">Error</span><ul class="tsd-hierarchy"><li><span class="target">ProviderError</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/ProviderError.ts#L6">src/classes/ProviderError.ts:6</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_ProviderError.ProviderError.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> +</div></section><section class="tsd-panel tsd-hierarchy"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li><span class="tsd-signature-type">Error</span><ul class="tsd-hierarchy"><li><span class="target">ProviderError</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/ProviderError.ts#L6">src/classes/ProviderError.ts:6</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_ProviderError.ProviderError.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="classes_ProviderError.ProviderError.html#cause" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>cause?</span></a> <a href="classes_ProviderError.ProviderError.html#code" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>code?</span></a> <a href="classes_ProviderError.ProviderError.html#data" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>data?</span></a> @@ -10,7 +10,7 @@ <h4>Since</h4><p>0.1.0</p> <a href="classes_ProviderError.ProviderError.html#prepareStackTrace" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>prepare<wbr/>Stack<wbr/>Trace?</span></a> <a href="classes_ProviderError.ProviderError.html#stackTraceLimit" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stack<wbr/>Trace<wbr/>Limit</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="classes_ProviderError.ProviderError.html#captureStackTrace" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>capture<wbr/>Stack<wbr/>Trace</span></a> -</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_ProviderError" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Provider<wbr/>Error</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span>, <span class="tsd-kind-parameter">code</span><span class="tsd-signature-symbol">?</span>, <span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><a href="#constructor.new_ProviderError" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">code</span>: <span class="tsd-signature-type">number</span></span></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h4><aside class="tsd-sources"><p>Overrides Error.constructor</p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/ProviderError.ts#L11">src/classes/ProviderError.ts:11</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="cause" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>cause</span><a href="#cause" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">cause</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">unknown</span></div><aside class="tsd-sources"><p>Inherited from Error.cause</p><ul><li>Defined in node_modules/typescript/lib/lib.es2022.error.d.ts:24</li></ul></aside></section><section class="tsd-panel tsd-member"><a id="code" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>code</span><a href="#code" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">code</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/ProviderError.ts#L8">src/classes/ProviderError.ts:8</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="data" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>data</span><a href="#data" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">data</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">unknown</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/ProviderError.ts#L9">src/classes/ProviderError.ts:9</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="message" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>message</span><a href="#message" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">message</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from Error.message</p><ul><li>Defined in node_modules/typescript/lib/lib.es5.d.ts:1077</li></ul></aside></section><section class="tsd-panel tsd-member"><a id="name" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>name</span><a href="#name" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> = 'GrinderyWalletProviderError'</span></div><aside class="tsd-sources"><p>Overrides Error.name</p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/ProviderError.ts#L7">src/classes/ProviderError.ts:7</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="stack" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>stack</span><a href="#stack" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">stack</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from Error.stack</p><ul><li>Defined in node_modules/typescript/lib/lib.es5.d.ts:1078</li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="prepareStackTrace" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <code class="tsd-tag ts-flagOptional">Optional</code> <span>prepare<wbr/>Stack<wbr/>Trace</span><a href="#prepareStackTrace" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">prepare<wbr/>Stack<wbr/>Trace</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">err</span>, <span class="tsd-kind-parameter">stackTraces</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span></div><div class="tsd-comment tsd-typography"><p>Optional override for formatting stack traces</p> +</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_ProviderError" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Provider<wbr/>Error</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span>, <span class="tsd-kind-parameter">code</span><span class="tsd-signature-symbol">?</span>, <span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><a href="#constructor.new_ProviderError" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">code</span>: <span class="tsd-signature-type">number</span></span></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h4><aside class="tsd-sources"><p>Overrides Error.constructor</p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/ProviderError.ts#L11">src/classes/ProviderError.ts:11</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="cause" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>cause</span><a href="#cause" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">cause</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">unknown</span></div><aside class="tsd-sources"><p>Inherited from Error.cause</p><ul><li>Defined in node_modules/typescript/lib/lib.es2022.error.d.ts:24</li></ul></aside></section><section class="tsd-panel tsd-member"><a id="code" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>code</span><a href="#code" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">code</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/ProviderError.ts#L8">src/classes/ProviderError.ts:8</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="data" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>data</span><a href="#data" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">data</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">unknown</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/ProviderError.ts#L9">src/classes/ProviderError.ts:9</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="message" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>message</span><a href="#message" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">message</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from Error.message</p><ul><li>Defined in node_modules/typescript/lib/lib.es5.d.ts:1077</li></ul></aside></section><section class="tsd-panel tsd-member"><a id="name" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>name</span><a href="#name" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> = 'GrinderyWalletProviderError'</span></div><aside class="tsd-sources"><p>Overrides Error.name</p><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/ProviderError.ts#L7">src/classes/ProviderError.ts:7</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="stack" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>stack</span><a href="#stack" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">stack</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from Error.stack</p><ul><li>Defined in node_modules/typescript/lib/lib.es5.d.ts:1078</li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="prepareStackTrace" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <code class="tsd-tag ts-flagOptional">Optional</code> <span>prepare<wbr/>Stack<wbr/>Trace</span><a href="#prepareStackTrace" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">prepare<wbr/>Stack<wbr/>Trace</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">err</span>, <span class="tsd-kind-parameter">stackTraces</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span></div><div class="tsd-comment tsd-typography"><p>Optional override for formatting stack traces</p> </div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures tsd-is-external"><li class="tsd-signature" id="prepareStackTrace.__type.__type-1"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">err</span>, <span class="tsd-kind-parameter">stackTraces</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">err</span>: <span class="tsd-signature-type">Error</span></span></li><li><span><span class="tsd-kind-parameter">stackTraces</span>: <span class="tsd-signature-type">CallSite</span><span class="tsd-signature-symbol">[]</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4></li></ul></li></ul></div><div class="tsd-comment tsd-typography"><h4>See</h4><p><a href="https://v8.dev/docs/stack-trace-api#customizing-stack-traces">https://v8.dev/docs/stack-trace-api#customizing-stack-traces</a></p> </div><aside class="tsd-sources"><p>Inherited from Error.prepareStackTrace</p><ul><li>Defined in node_modules/@types/node/globals.d.ts:28</li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="stackTraceLimit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <span>stack<wbr/>Trace<wbr/>Limit</span><a href="#stackTraceLimit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">stack<wbr/>Trace<wbr/>Limit</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><p>Inherited from Error.stackTraceLimit</p><ul><li>Defined in node_modules/@types/node/globals.d.ts:30</li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="captureStackTrace" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <span>capture<wbr/>Stack<wbr/>Trace</span><a href="#captureStackTrace" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-anchor-link"><a id="captureStackTrace.captureStackTrace-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">capture<wbr/>Stack<wbr/>Trace</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">targetObject</span>, <span class="tsd-kind-parameter">constructorOpt</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#captureStackTrace.captureStackTrace-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Create .stack property on a target object</p> -</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">targetObject</span>: <span class="tsd-signature-type">object</span></span></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">constructorOpt</span>: <span class="tsd-signature-type">Function</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from Error.captureStackTrace</p><ul><li>Defined in node_modules/@types/node/globals.d.ts:21</li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#cause" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>cause</span></a><a href="#code" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>code</span></a><a href="#data" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>data</span></a><a href="#message" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>message</span></a><a href="#name" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a><a href="#stack" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stack</span></a><a href="#prepareStackTrace" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>prepare<wbr/>Stack<wbr/>Trace</span></a><a href="#stackTraceLimit" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stack<wbr/>Trace<wbr/>Limit</span></a><a href="#captureStackTrace" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>capture<wbr/>Stack<wbr/>Trace</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">targetObject</span>: <span class="tsd-signature-type">object</span></span></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">constructorOpt</span>: <span class="tsd-signature-type">Function</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from Error.captureStackTrace</p><ul><li>Defined in node_modules/@types/node/globals.d.ts:21</li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#cause" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>cause</span></a><a href="#code" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>code</span></a><a href="#data" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>data</span></a><a href="#message" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>message</span></a><a href="#name" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a><a href="#stack" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stack</span></a><a href="#prepareStackTrace" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>prepare<wbr/>Stack<wbr/>Trace</span></a><a href="#stackTraceLimit" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stack<wbr/>Trace<wbr/>Limit</span></a><a href="#captureStackTrace" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>capture<wbr/>Stack<wbr/>Trace</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/classes/classes_Rpc.Rpc.html b/docs/classes/classes_Rpc.Rpc.html index 5004241..8515c6f 100644 --- a/docs/classes/classes_Rpc.Rpc.html +++ b/docs/classes/classes_Rpc.Rpc.html @@ -1,6 +1,6 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Rpc | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="classes_Rpc.Rpc.html">Rpc</a></li></ul><h1>Class Rpc</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery RPC API wrapper class</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Rpc | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="classes_Rpc.Rpc.html">Rpc</a></li></ul><h1>Class Rpc</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery RPC API wrapper class</p> <h4>Since</h4><p>0.2.0</p> -</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L82">src/classes/Rpc.ts:82</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_Rpc.Rpc.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> +</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L82">src/classes/Rpc.ts:82</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_Rpc.Rpc.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="classes_Rpc.Rpc.html#sendAndWaitRpcRequest" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>And<wbr/>Wait<wbr/>Rpc<wbr/>Request</span></a> <a href="classes_Rpc.Rpc.html#sendRpcApiRequest" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Rpc<wbr/>Api<wbr/>Request</span></a> <a href="classes_Rpc.Rpc.html#sendRpcRequest" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Rpc<wbr/>Request</span></a> @@ -10,16 +10,16 @@ <h4>Since</h4><p>0.2.0</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">timeout</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>Optional. The time in milliseconds to wait for the request result. Default is 30000.</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#sendAndWaitRpcRequest.sendAndWaitRpcRequest-1.T">T</a><span class="tsd-signature-symbol">></span></h4><p>The result of the provider request</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Sends a provider request to the Grindery RPC API and waits for the result.</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L91">src/classes/Rpc.ts:91</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="sendRpcApiRequest" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>send<wbr/>Rpc<wbr/>Api<wbr/>Request</span><a href="#sendRpcApiRequest" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="sendRpcApiRequest.sendRpcApiRequest-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">send<wbr/>Rpc<wbr/>Api<wbr/>Request</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#sendRpcApiRequest.sendRpcApiRequest-1.T-1">T</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">method</span>, <span class="tsd-kind-parameter">params</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#sendRpcApiRequest.sendRpcApiRequest-1.T-1">T</a><span class="tsd-signature-symbol">></span><a href="#sendRpcApiRequest.sendRpcApiRequest-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span><a id="sendRpcApiRequest.sendRpcApiRequest-1.T-1" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">T</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">method</span>: <a href="../enums/classes_Rpc.RpcMethodNames.html" class="tsd-signature-type tsd-kind-enum">RpcMethodNames</a></span><div class="tsd-comment tsd-typography"><p>Request method name</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L91">src/classes/Rpc.ts:91</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="sendRpcApiRequest" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>send<wbr/>Rpc<wbr/>Api<wbr/>Request</span><a href="#sendRpcApiRequest" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="sendRpcApiRequest.sendRpcApiRequest-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">send<wbr/>Rpc<wbr/>Api<wbr/>Request</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#sendRpcApiRequest.sendRpcApiRequest-1.T-1">T</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">method</span>, <span class="tsd-kind-parameter">params</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#sendRpcApiRequest.sendRpcApiRequest-1.T-1">T</a><span class="tsd-signature-symbol">></span><a href="#sendRpcApiRequest.sendRpcApiRequest-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span><a id="sendRpcApiRequest.sendRpcApiRequest-1.T-1" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">T</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">method</span>: <a href="../enums/classes_Rpc.RpcMethodNames.html" class="tsd-signature-type tsd-kind-enum">RpcMethodNames</a></span><div class="tsd-comment tsd-typography"><p>Request method name</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">params</span>: <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">[]</span></span><div class="tsd-comment tsd-typography"><p>Request parameters</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#sendRpcApiRequest.sendRpcApiRequest-1.T-1">T</a><span class="tsd-signature-symbol">></span></h4><p>The result of the request</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Sends a request to the Grindery Walletconnect RPC API.</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L152">src/classes/Rpc.ts:152</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="sendRpcRequest" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagProtected">Protected</code> <span>send<wbr/>Rpc<wbr/>Request</span><a href="#sendRpcRequest" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="sendRpcRequest.sendRpcRequest-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">send<wbr/>Rpc<wbr/>Request</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">method</span>, <span class="tsd-kind-parameter">params</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/classes_Rpc.RpcRequestResults.request.html" class="tsd-signature-type tsd-kind-type-alias">request</a><span class="tsd-signature-symbol">></span><a href="#sendRpcRequest.sendRpcRequest-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagProtected">Protected</code> <div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">method</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>Provider request method name</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L152">src/classes/Rpc.ts:152</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="sendRpcRequest" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagProtected">Protected</code> <span>send<wbr/>Rpc<wbr/>Request</span><a href="#sendRpcRequest" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="sendRpcRequest.sendRpcRequest-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">send<wbr/>Rpc<wbr/>Request</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">method</span>, <span class="tsd-kind-parameter">params</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/classes_Rpc.RpcRequestResults.request.html" class="tsd-signature-type tsd-kind-type-alias">request</a><span class="tsd-signature-symbol">></span><a href="#sendRpcRequest.sendRpcRequest-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagProtected">Protected</code> <div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">method</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>Provider request method name</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">params</span>: <span class="tsd-signature-keyword">readonly </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">[]</span></span><div class="tsd-comment tsd-typography"><p>Provider request parameters</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/classes_Rpc.RpcRequestResults.request.html" class="tsd-signature-type tsd-kind-type-alias">request</a><span class="tsd-signature-symbol">></span></h4><p>Promise resolving with the request token to use in the <code>waitGrinderyRpcProviderRequest</code> method</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Sends a provider request to the Grindery RPC API.</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L107">src/classes/Rpc.ts:107</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="waitRpcRequest" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagProtected">Protected</code> <span>wait<wbr/>Rpc<wbr/>Request</span><a href="#waitRpcRequest" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="waitRpcRequest.waitRpcRequest-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">wait<wbr/>Rpc<wbr/>Request</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#waitRpcRequest.waitRpcRequest-1.T-2">T</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">requestToken</span>, <span class="tsd-kind-parameter">timeout</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#waitRpcRequest.waitRpcRequest-1.T-2">T</a><span class="tsd-signature-symbol">></span><a href="#waitRpcRequest.waitRpcRequest-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagProtected">Protected</code> <section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span><a id="waitRpcRequest.waitRpcRequest-1.T-2" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">T</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">requestToken</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>A token to identify provider request. Recieved in the results of <code>sendGrinderyRpcProviderRequest</code> method.</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L107">src/classes/Rpc.ts:107</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="waitRpcRequest" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagProtected">Protected</code> <span>wait<wbr/>Rpc<wbr/>Request</span><a href="#waitRpcRequest" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="waitRpcRequest.waitRpcRequest-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">wait<wbr/>Rpc<wbr/>Request</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#waitRpcRequest.waitRpcRequest-1.T-2">T</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">requestToken</span>, <span class="tsd-kind-parameter">timeout</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#waitRpcRequest.waitRpcRequest-1.T-2">T</a><span class="tsd-signature-symbol">></span><a href="#waitRpcRequest.waitRpcRequest-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagProtected">Protected</code> <section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span><a id="waitRpcRequest.waitRpcRequest-1.T-2" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">T</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">requestToken</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>A token to identify provider request. Recieved in the results of <code>sendGrinderyRpcProviderRequest</code> method.</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">timeout</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>Optional. The time in milliseconds to wait for the request result. Default is 30000.</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_Rpc.Rpc.html#waitRpcRequest.waitRpcRequest-1.T-2">T</a><span class="tsd-signature-symbol">></span></h4><p>The result of the provider request</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Waits for the result of the provider request.</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L132">src/classes/Rpc.ts:132</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#sendAndWaitRpcRequest" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>And<wbr/>Wait<wbr/>Rpc<wbr/>Request</span></a><a href="#sendRpcApiRequest" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Rpc<wbr/>Api<wbr/>Request</span></a><a href="#sendRpcRequest" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Rpc<wbr/>Request</span></a><a href="#waitRpcRequest" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>wait<wbr/>Rpc<wbr/>Request</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L132">src/classes/Rpc.ts:132</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#sendAndWaitRpcRequest" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>And<wbr/>Wait<wbr/>Rpc<wbr/>Request</span></a><a href="#sendRpcApiRequest" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Rpc<wbr/>Api<wbr/>Request</span></a><a href="#sendRpcRequest" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Rpc<wbr/>Request</span></a><a href="#waitRpcRequest" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>wait<wbr/>Rpc<wbr/>Request</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/classes/classes_SdkStorage.SdkStorage.html b/docs/classes/classes_SdkStorage.SdkStorage.html index 9d103cc..e9dea1a 100644 --- a/docs/classes/classes_SdkStorage.SdkStorage.html +++ b/docs/classes/classes_SdkStorage.SdkStorage.html @@ -1,22 +1,22 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SdkStorage | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_SdkStorage.html">classes/SdkStorage</a></li><li><a href="classes_SdkStorage.SdkStorage.html">SdkStorage</a></li></ul><h1>Class SdkStorage</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>A class to handle local storage</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SdkStorage | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_SdkStorage.html">classes/SdkStorage</a></li><li><a href="classes_SdkStorage.SdkStorage.html">SdkStorage</a></li></ul><h1>Class SdkStorage</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>A class to handle local storage</p> <h4>Since</h4><p>0.2.0</p> -</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L35">src/classes/SdkStorage.ts:35</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_SdkStorage.SdkStorage.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> +</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L35">src/classes/SdkStorage.ts:35</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_SdkStorage.SdkStorage.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="classes_SdkStorage.SdkStorage.html#clear" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>clear</span></a> <a href="classes_SdkStorage.SdkStorage.html#getSnapshot" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Snapshot</span></a> <a href="classes_SdkStorage.SdkStorage.html#getValue" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Value</span></a> <a href="classes_SdkStorage.SdkStorage.html#saveSnapshot" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>save<wbr/>Snapshot</span></a> <a href="classes_SdkStorage.SdkStorage.html#setValue" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Value</span></a> </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_SdkStorage" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Sdk<wbr/>Storage</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_SdkStorage.SdkStorage.html" class="tsd-signature-type tsd-kind-class">SdkStorage</a><a href="#constructor.new_SdkStorage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="classes_SdkStorage.SdkStorage.html" class="tsd-signature-type tsd-kind-class">SdkStorage</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="clear" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>clear</span><a href="#clear" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="clear.clear-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">clear</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#clear.clear-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Clears the storage</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L66">src/classes/SdkStorage.ts:66</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="getSnapshot" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>get<wbr/>Snapshot</span><a href="#getSnapshot" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="getSnapshot.getSnapshot-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Snapshot</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/classes_SdkStorage.SdkStorageSnapshot.html" class="tsd-signature-type tsd-kind-type-alias">SdkStorageSnapshot</a><a href="#getSnapshot.getSnapshot-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="../types/classes_SdkStorage.SdkStorageSnapshot.html" class="tsd-signature-type tsd-kind-type-alias">SdkStorageSnapshot</a></h4><p>The storage snapshot object</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L66">src/classes/SdkStorage.ts:66</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="getSnapshot" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>get<wbr/>Snapshot</span><a href="#getSnapshot" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="getSnapshot.getSnapshot-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Snapshot</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/classes_SdkStorage.SdkStorageSnapshot.html" class="tsd-signature-type tsd-kind-type-alias">SdkStorageSnapshot</a><a href="#getSnapshot.getSnapshot-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="../types/classes_SdkStorage.SdkStorageSnapshot.html" class="tsd-signature-type tsd-kind-type-alias">SdkStorageSnapshot</a></h4><p>The storage snapshot object</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Gets the storage</p> <h4>Since</h4><p>0.2.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L78">src/classes/SdkStorage.ts:78</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="getValue" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>Value</span><a href="#getValue" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getValue.getValue-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Value</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">key</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#getValue.getValue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">key</span>: <span class="tsd-signature-type">"address"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pairingToken"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"sessionId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connectUrl"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connectUrlBrowser"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"shortToken"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"clientId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainId"</span></span><div class="tsd-comment tsd-typography"><p>Provider storage key</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L78">src/classes/SdkStorage.ts:78</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="getValue" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>Value</span><a href="#getValue" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getValue.getValue-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Value</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">key</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#getValue.getValue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">key</span>: <span class="tsd-signature-type">"address"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pairingToken"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"sessionId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connectUrl"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connectUrlBrowser"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"shortToken"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"clientId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainId"</span></span><div class="tsd-comment tsd-typography"><p>Provider storage key</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><p>The value of the storage by the key</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Gets the value of the storage by the key</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L42">src/classes/SdkStorage.ts:42</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="saveSnapshot" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>save<wbr/>Snapshot</span><a href="#saveSnapshot" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="saveSnapshot.saveSnapshot-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">save<wbr/>Snapshot</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">storage</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#saveSnapshot.saveSnapshot-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">storage</span>: <a href="../types/classes_SdkStorage.SdkStorageSnapshot.html" class="tsd-signature-type tsd-kind-type-alias">SdkStorageSnapshot</a></span><div class="tsd-comment tsd-typography"><p>SdkStorage snapshot object</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L42">src/classes/SdkStorage.ts:42</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="saveSnapshot" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>save<wbr/>Snapshot</span><a href="#saveSnapshot" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="saveSnapshot.saveSnapshot-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">save<wbr/>Snapshot</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">storage</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#saveSnapshot.saveSnapshot-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">storage</span>: <a href="../types/classes_SdkStorage.SdkStorageSnapshot.html" class="tsd-signature-type tsd-kind-type-alias">SdkStorageSnapshot</a></span><div class="tsd-comment tsd-typography"><p>SdkStorage snapshot object</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Saves the storage</p> <h4>Since</h4><p>0.2.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L94">src/classes/SdkStorage.ts:94</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="setValue" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>set<wbr/>Value</span><a href="#setValue" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="setValue.setValue-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">set<wbr/>Value</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">key</span>, <span class="tsd-kind-parameter">value</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#setValue.setValue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">key</span>: <span class="tsd-signature-type">"address"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pairingToken"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"sessionId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connectUrl"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connectUrlBrowser"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"shortToken"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"clientId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainId"</span></span><div class="tsd-comment tsd-typography"><p>Provider storage key</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L94">src/classes/SdkStorage.ts:94</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="setValue" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>set<wbr/>Value</span><a href="#setValue" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="setValue.setValue-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">set<wbr/>Value</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">key</span>, <span class="tsd-kind-parameter">value</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#setValue.setValue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">key</span>: <span class="tsd-signature-type">"address"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pairingToken"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"sessionId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connectUrl"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connectUrlBrowser"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"shortToken"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"clientId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainId"</span></span><div class="tsd-comment tsd-typography"><p>Provider storage key</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">value</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The value to set</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Sets the value of the storage by the key</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L54">src/classes/SdkStorage.ts:54</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#clear" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>clear</span></a><a href="#getSnapshot" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Snapshot</span></a><a href="#getValue" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Value</span></a><a href="#saveSnapshot" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>save<wbr/>Snapshot</span></a><a href="#setValue" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Value</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L54">src/classes/SdkStorage.ts:54</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#clear" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>clear</span></a><a href="#getSnapshot" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Snapshot</span></a><a href="#getValue" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Value</span></a><a href="#saveSnapshot" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>save<wbr/>Snapshot</span></a><a href="#setValue" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Value</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/classes/classes_WalletAPI.WalletAPI.html b/docs/classes/classes_WalletAPI.WalletAPI.html new file mode 100644 index 0000000..4aae9a6 --- /dev/null +++ b/docs/classes/classes_WalletAPI.WalletAPI.html @@ -0,0 +1,9 @@ +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WalletAPI | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_WalletAPI.html">classes/WalletAPI</a></li><li><a href="classes_WalletAPI.WalletAPI.html">WalletAPI</a></li></ul><h1>Class WalletAPI</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery Wallet API wrapper class</p> +<h4>Since</h4><p>0.5.0</p> +</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletAPI.ts#L7">src/classes/WalletAPI.ts:7</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_WalletAPI.WalletAPI.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> +</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="classes_WalletAPI.WalletAPI.html#sendApiRequest" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Api<wbr/>Request</span></a> +</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_WalletAPI" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>WalletAPI</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_WalletAPI.WalletAPI.html" class="tsd-signature-type tsd-kind-class">WalletAPI</a><a href="#constructor.new_WalletAPI" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="classes_WalletAPI.WalletAPI.html" class="tsd-signature-type tsd-kind-class">WalletAPI</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="sendApiRequest" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>send<wbr/>Api<wbr/>Request</span><a href="#sendApiRequest" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="sendApiRequest.sendApiRequest-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">send<wbr/>Api<wbr/>Request</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_WalletAPI.WalletAPI.html#sendApiRequest.sendApiRequest-1.T">T</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">method</span>, <span class="tsd-kind-parameter">params</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_WalletAPI.WalletAPI.html#sendApiRequest.sendApiRequest-1.T">T</a><span class="tsd-signature-symbol">></span><a href="#sendApiRequest.sendApiRequest-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span><a id="sendApiRequest.sendApiRequest-1.T" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">T</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">method</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>JSON-RPC method name</p> +</div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">params</span>: <span class="tsd-signature-type">object</span></span><div class="tsd-comment tsd-typography"><p>JSON-RPC method parameters, optional</p> +</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="classes_WalletAPI.WalletAPI.html#sendApiRequest.sendApiRequest-1.T">T</a><span class="tsd-signature-symbol">></span></h4><p>The result of the API request</p> +<div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Sends a request to the Grindery Wallet API</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletAPI.ts#L15">src/classes/WalletAPI.ts:15</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#sendApiRequest" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Api<wbr/>Request</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/classes/classes_WalletSDK.WalletSDK.html b/docs/classes/classes_WalletSDK.WalletSDK.html index 3dbe448..132098e 100644 --- a/docs/classes/classes_WalletSDK.WalletSDK.html +++ b/docs/classes/classes_WalletSDK.WalletSDK.html @@ -1,11 +1,13 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WalletSDK | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_WalletSDK.html">classes/WalletSDK</a></li><li><a href="classes_WalletSDK.WalletSDK.html">WalletSDK</a></li></ul><h1>Class WalletSDK</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Wallet SDK class</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WalletSDK | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_WalletSDK.html">classes/WalletSDK</a></li><li><a href="classes_WalletSDK.WalletSDK.html">WalletSDK</a></li></ul><h1>Class WalletSDK</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Wallet SDK class</p> <h4>Since</h4><p>0.2.0</p> -</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L18">src/classes/WalletSDK.ts:18</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_WalletSDK.WalletSDK.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> +</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L20">src/classes/WalletSDK.ts:20</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="classes_WalletSDK.WalletSDK.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="classes_WalletSDK.WalletSDK.html#provider" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>provider</span></a> <a href="classes_WalletSDK.WalletSDK.html#storage" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>storage</span></a> +<a href="classes_WalletSDK.WalletSDK.html#user" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>user</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="classes_WalletSDK.WalletSDK.html#connect" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>connect</span></a> <a href="classes_WalletSDK.WalletSDK.html#disconnect" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>disconnect</span></a> <a href="classes_WalletSDK.WalletSDK.html#getChain" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Chain</span></a> +<a href="classes_WalletSDK.WalletSDK.html#getUser" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>User</span></a> <a href="classes_WalletSDK.WalletSDK.html#getUserWalletAddress" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span></a> <a href="classes_WalletSDK.WalletSDK.html#getWeb3Provider" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Web3<wbr/>Provider</span></a> <a href="classes_WalletSDK.WalletSDK.html#handlePairing" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>handle<wbr/>Pairing</span></a> @@ -18,55 +20,59 @@ <h4>Since</h4><p>0.2.0</p> <a href="classes_WalletSDK.WalletSDK.html#signMessage" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>sign<wbr/>Message</span></a> <a href="classes_WalletSDK.WalletSDK.html#switchChain" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>switch<wbr/>Chain</span></a> <a href="classes_WalletSDK.WalletSDK.html#trackClientEvent" class="tsd-index-link tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>track<wbr/>Client<wbr/>Event</span></a> -</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_WalletSDK" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>WalletSDK</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">config</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_WalletSDK.WalletSDK.html" class="tsd-signature-type tsd-kind-class">WalletSDK</a><a href="#constructor.new_WalletSDK" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">config</span>: <a href="../types/classes_WalletSDK.WalletSDKConfig.html" class="tsd-signature-type tsd-kind-type-alias">WalletSDKConfig</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_WalletSDK.WalletSDK.html" class="tsd-signature-type tsd-kind-class">WalletSDK</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L25">src/classes/WalletSDK.ts:25</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="provider" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>provider</span><a href="#provider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">provider</span><span class="tsd-signature-symbol">:</span> <a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The provider instance</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L23">src/classes/WalletSDK.ts:23</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-private"><a id="storage" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>storage</span><a href="#storage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">storage</span><span class="tsd-signature-symbol">:</span> <a href="classes_SdkStorage.SdkStorage.html" class="tsd-signature-type tsd-kind-class">SdkStorage</a><span class="tsd-signature-symbol"> = ...</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>SdkStorage class instance</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L197">src/classes/WalletSDK.ts:197</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="connect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>connect</span><a href="#connect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="connect.connect-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">connect</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span><a href="#connect.connect-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span></h4><p>The array of ethereum addresses</p> +</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_WalletSDK" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>WalletSDK</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">config</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_WalletSDK.WalletSDK.html" class="tsd-signature-type tsd-kind-class">WalletSDK</a><a href="#constructor.new_WalletSDK" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">config</span>: <a href="../types/classes_WalletSDK.WalletSDKConfig.html" class="tsd-signature-type tsd-kind-type-alias">WalletSDKConfig</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_WalletSDK.WalletSDK.html" class="tsd-signature-type tsd-kind-class">WalletSDK</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L27">src/classes/WalletSDK.ts:27</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="provider" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>provider</span><a href="#provider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">provider</span><span class="tsd-signature-symbol">:</span> <a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The provider instance</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L25">src/classes/WalletSDK.ts:25</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-private"><a id="storage" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>storage</span><a href="#storage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">storage</span><span class="tsd-signature-symbol">:</span> <a href="classes_SdkStorage.SdkStorage.html" class="tsd-signature-type tsd-kind-class">SdkStorage</a><span class="tsd-signature-symbol"> = ...</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>SdkStorage class instance</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L219">src/classes/WalletSDK.ts:219</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-private"><a id="user" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>user</span><a href="#user" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">user</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../types/utils_user.User.html" class="tsd-signature-type tsd-kind-type-alias">User</a><span class="tsd-signature-symbol"> = null</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery Wallet user</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L225">src/classes/WalletSDK.ts:225</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="connect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>connect</span><a href="#connect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="connect.connect-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">connect</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span><a href="#connect.connect-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span></h4><p>The array of ethereum addresses</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Initiate connection to the Grindery Wallet</p> <h4>Since</h4><p>0.1.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L74">src/classes/WalletSDK.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="disconnect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>disconnect</span><a href="#disconnect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="disconnect.disconnect-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">disconnect</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span><a href="#disconnect.disconnect-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></h4><p>True if wallet is disconnected</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L76">src/classes/WalletSDK.ts:76</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="disconnect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>disconnect</span><a href="#disconnect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="disconnect.disconnect-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">disconnect</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span><a href="#disconnect.disconnect-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></h4><p>True if wallet is disconnected</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Disconnects Grindery Wallet</p> <h4>Since</h4><p>0.1.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L86">src/classes/WalletSDK.ts:86</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="getChain" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>Chain</span><a href="#getChain" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getChain.getChain-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Chain</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#getChain.getChain-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><p>Returns chain id in CAIP-2 format</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L88">src/classes/WalletSDK.ts:88</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="getChain" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>Chain</span><a href="#getChain" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getChain.getChain-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Chain</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#getChain.getChain-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><p>Returns chain id in CAIP-2 format</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Gets currently connected chain</p> <h4>Since</h4><p>0.3.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L147">src/classes/WalletSDK.ts:147</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="getUserWalletAddress" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span><a href="#getUserWalletAddress" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getUserWalletAddress.getUserWalletAddress-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>User<wbr/>Wallet<wbr/>Address</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">userId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span><a href="#getUserWalletAddress.getUserWalletAddress-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">userId</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>Telegram user ID</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L149">src/classes/WalletSDK.ts:149</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="getUser" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>User</span><a href="#getUser" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getUser.getUser-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>User</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/utils_user.User.html" class="tsd-signature-type tsd-kind-type-alias">User</a><span class="tsd-signature-symbol">></span><a href="#getUser.getUser-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/utils_user.User.html" class="tsd-signature-type tsd-kind-type-alias">User</a><span class="tsd-signature-symbol">></span></h4><p>The Grindery user information</p> +<div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Gets the Grindery user information</p> +<h4>Since</h4><p>0.5.0</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L201">src/classes/WalletSDK.ts:201</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="getUserWalletAddress" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span><a href="#getUserWalletAddress" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getUserWalletAddress.getUserWalletAddress-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>User<wbr/>Wallet<wbr/>Address</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">userId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span><a href="#getUserWalletAddress.getUserWalletAddress-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">userId</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>Telegram user ID</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span></h4><p>Grindery Wallet address</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Exchange Telegram user ID to Grindery Wallet address</p> <h4>Since</h4><p>0.4.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L158">src/classes/WalletSDK.ts:158</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="getWeb3Provider" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>get<wbr/>Web3<wbr/>Provider</span><a href="#getWeb3Provider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="getWeb3Provider.getWeb3Provider-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Web3<wbr/>Provider</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a><a href="#getWeb3Provider.getWeb3Provider-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></h4><p>The Grindery Wallet ethereum provider</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L160">src/classes/WalletSDK.ts:160</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="getWeb3Provider" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>get<wbr/>Web3<wbr/>Provider</span><a href="#getWeb3Provider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="getWeb3Provider.getWeb3Provider-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Web3<wbr/>Provider</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a><a href="#getWeb3Provider.getWeb3Provider-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="classes_Provider.Provider.html" class="tsd-signature-type tsd-kind-class">Provider</a></h4><p>The Grindery Wallet ethereum provider</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Gets the Grindery Wallet ethereum provider</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L203">src/classes/WalletSDK.ts:203</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="handlePairing" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>handle<wbr/>Pairing</span><a href="#handlePairing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="handlePairing.handlePairing-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">handle<wbr/>Pairing</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">ProviderRequestPairingResult</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#handlePairing.handlePairing-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ProviderRequestPairingResult</span>: <a href="../types/classes_Rpc.RpcRequestResults.requestPairing.html" class="tsd-signature-type tsd-kind-type-alias">requestPairing</a></span><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Handles the pairing request, by opening the Grindery Wallet</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L227">src/classes/WalletSDK.ts:227</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="initTracking" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>init<wbr/>Tracking</span><a href="#initTracking" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="initTracking.initTracking-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">init<wbr/>Tracking</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#initTracking.initTracking-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Initializes the tracking</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L231">src/classes/WalletSDK.ts:231</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="handlePairing" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>handle<wbr/>Pairing</span><a href="#handlePairing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="handlePairing.handlePairing-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">handle<wbr/>Pairing</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">ProviderRequestPairingResult</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#handlePairing.handlePairing-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ProviderRequestPairingResult</span>: <a href="../types/classes_Rpc.RpcRequestResults.requestPairing.html" class="tsd-signature-type tsd-kind-type-alias">requestPairing</a></span><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Handles the pairing request, by opening the Grindery Wallet</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L255">src/classes/WalletSDK.ts:255</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="initTracking" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>init<wbr/>Tracking</span><a href="#initTracking" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="initTracking.initTracking-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">init<wbr/>Tracking</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#initTracking.initTracking-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Initializes the tracking</p> <h4>Since</h4><p>0.4.2</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L292">src/classes/WalletSDK.ts:292</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isConnected" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>Connected</span><a href="#isConnected" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="isConnected.isConnected-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Connected</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#isConnected.isConnected-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the provider is connected to the server.</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L324">src/classes/WalletSDK.ts:324</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isConnected" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>Connected</span><a href="#isConnected" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="isConnected.isConnected-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Connected</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#isConnected.isConnected-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the provider is connected to the server.</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Checks if the provider is connected to the server</p> <h4>Example</h4><pre><code class="language-typescript"><span class="hl-8">const</span><span class="hl-6"> </span><span class="hl-12">isConnected</span><span class="hl-6"> = </span><span class="hl-11">window</span><span class="hl-6">.</span><span class="hl-11">Grindery</span><span class="hl-6">.</span><span class="hl-11">WalletSDK</span><span class="hl-6">.</span><span class="hl-5">isConnected</span><span class="hl-6">();</span> </code><button>Copy</button></pre> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L52">src/classes/WalletSDK.ts:52</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isWalletConnected" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>Wallet<wbr/>Connected</span><a href="#isWalletConnected" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="isWalletConnected.isWalletConnected-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Wallet<wbr/>Connected</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#isWalletConnected.isWalletConnected-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the provider is connected to the server and the Grindery Wallet.</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L54">src/classes/WalletSDK.ts:54</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isWalletConnected" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>Wallet<wbr/>Connected</span><a href="#isWalletConnected" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="isWalletConnected.isWalletConnected-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Wallet<wbr/>Connected</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#isWalletConnected.isWalletConnected-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the provider is connected to the server and the Grindery Wallet.</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Checks if the provider is connected to the server and the Grindery Wallet</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L60">src/classes/WalletSDK.ts:60</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="on" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>on</span><a href="#on" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="on.on-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">on</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_WalletSDK.WalletSDK.html" class="tsd-signature-type tsd-kind-class">WalletSDK</a><a href="#on.on-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L62">src/classes/WalletSDK.ts:62</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="on" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>on</span><a href="#on" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="on.on-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">on</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_WalletSDK.WalletSDK.html" class="tsd-signature-type tsd-kind-class">WalletSDK</a><a href="#on.on-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">callback</span>: <span class="tsd-signature-type">Function</span></span><div class="tsd-comment tsd-typography"><p>Callback function</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_WalletSDK.WalletSDK.html" class="tsd-signature-type tsd-kind-class">WalletSDK</a></h4><p>The instance of the class itself</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Adds a listener to the event</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L176">src/classes/WalletSDK.ts:176</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="removeListener" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>remove<wbr/>Listener</span><a href="#removeListener" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="removeListener.removeListener-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">remove<wbr/>Listener</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_WalletSDK.WalletSDK.html" class="tsd-signature-type tsd-kind-class">WalletSDK</a><a href="#removeListener.removeListener-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L178">src/classes/WalletSDK.ts:178</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="removeListener" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>remove<wbr/>Listener</span><a href="#removeListener" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="removeListener.removeListener-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">remove<wbr/>Listener</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes_WalletSDK.WalletSDK.html" class="tsd-signature-type tsd-kind-class">WalletSDK</a><a href="#removeListener.removeListener-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type">"accountsChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pair"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"connect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"chainChanged"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"message"</span></span><div class="tsd-comment tsd-typography"><p>Event name</p> </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">callback</span>: <span class="tsd-signature-type">Function</span></span><div class="tsd-comment tsd-typography"><p>Callback function</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="classes_WalletSDK.WalletSDK.html" class="tsd-signature-type tsd-kind-class">WalletSDK</a></h4><p>The instance of the class itself</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Removes a listener from the event</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L188">src/classes/WalletSDK.ts:188</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="sendTransaction" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>send<wbr/>Transaction</span><a href="#sendTransaction" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="sendTransaction.sendTransaction-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">send<wbr/>Transaction</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">params</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span><a href="#sendTransaction.sendTransaction-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">params</span>: <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">data</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">to</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">value</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></span><div class="tsd-comment tsd-typography"><p>The transaction parameters</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L190">src/classes/WalletSDK.ts:190</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="sendTransaction" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>send<wbr/>Transaction</span><a href="#sendTransaction" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="sendTransaction.sendTransaction-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">send<wbr/>Transaction</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">params</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span><a href="#sendTransaction.sendTransaction-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">params</span>: <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">data</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">to</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">value</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></span><div class="tsd-comment tsd-typography"><p>The transaction parameters</p> </div><div class="tsd-comment tsd-typography"></div><ul class="tsd-parameters"><li class="tsd-parameter"><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">data</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5><div class="tsd-comment tsd-typography"><p>The data to send</p> </div><div class="tsd-comment tsd-typography"></div></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">to</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5><div class="tsd-comment tsd-typography"><p>The recipient address</p> </div><div class="tsd-comment tsd-typography"></div></li><li class="tsd-parameter"><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">value</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5><div class="tsd-comment tsd-typography"><p>The amount to send in wei</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span></h4><p>Transaction hash string</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Sends a transaction request to the Grindery Wallet</p> <h4>Since</h4><p>0.1.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L102">src/classes/WalletSDK.ts:102</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="signMessage" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>sign<wbr/>Message</span><a href="#signMessage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="signMessage.signMessage-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">sign<wbr/>Message</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span><a href="#signMessage.signMessage-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The message to sign</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L104">src/classes/WalletSDK.ts:104</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="signMessage" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>sign<wbr/>Message</span><a href="#signMessage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="signMessage.signMessage-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">sign<wbr/>Message</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span><a href="#signMessage.signMessage-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The message to sign</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span></h4><p>Signature string</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Sends a personal signature request to the Grindery Wallet</p> <h4>Since</h4><p>0.1.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L120">src/classes/WalletSDK.ts:120</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="switchChain" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>switch<wbr/>Chain</span><a href="#switchChain" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="switchChain.switchChain-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">switch<wbr/>Chain</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">chainId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">></span><a href="#switchChain.switchChain-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">chainId</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>Chain id in CAIP-2 format</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L122">src/classes/WalletSDK.ts:122</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="switchChain" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>switch<wbr/>Chain</span><a href="#switchChain" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="switchChain.switchChain-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">switch<wbr/>Chain</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">chainId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">></span><a href="#switchChain.switchChain-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">chainId</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>Chain id in CAIP-2 format</p> </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">></span></h4><p>Returns <code>null</code> on success</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Requests the Grindery Wallet to switch the chain</p> <h4>Since</h4><p>0.3.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L134">src/classes/WalletSDK.ts:134</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="trackClientEvent" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>track<wbr/>Client<wbr/>Event</span><a href="#trackClientEvent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="trackClientEvent.trackClientEvent-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">track<wbr/>Client<wbr/>Event</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">name</span>, <span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><a href="#trackClientEvent.trackClientEvent-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">name</span>: <span class="tsd-signature-type">"appOpened"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"walletConnected"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"walletDisconnected"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"walletAddressRequested"</span></span></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">></span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Tracks client side event</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L136">src/classes/WalletSDK.ts:136</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-private"><a id="trackClientEvent" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagPrivate">Private</code> <span>track<wbr/>Client<wbr/>Event</span><a href="#trackClientEvent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-private"><li class="tsd-signature tsd-anchor-link"><a id="trackClientEvent.trackClientEvent-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">track<wbr/>Client<wbr/>Event</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">name</span>, <span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span><a href="#trackClientEvent.trackClientEvent-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><code class="tsd-tag ts-flagPrivate">Private</code> <div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">name</span>: <span class="tsd-signature-type">"appOpened"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"walletConnected"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"walletDisconnected"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"walletAddressRequested"</span></span></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">></span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Tracks client side event</p> <h4>Since</h4><p>0.4.2</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L252">src/classes/WalletSDK.ts:252</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#provider" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>provider</span></a><a href="#storage" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>storage</span></a><a href="#connect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>connect</span></a><a href="#disconnect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>disconnect</span></a><a href="#getChain" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Chain</span></a><a href="#getUserWalletAddress" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span></a><a href="#getWeb3Provider" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Web3<wbr/>Provider</span></a><a href="#handlePairing" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>handle<wbr/>Pairing</span></a><a href="#initTracking" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>init<wbr/>Tracking</span></a><a href="#isConnected" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Connected</span></a><a href="#isWalletConnected" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Wallet<wbr/>Connected</span></a><a href="#on" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>on</span></a><a href="#removeListener" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Listener</span></a><a href="#sendTransaction" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Transaction</span></a><a href="#signMessage" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>sign<wbr/>Message</span></a><a href="#switchChain" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>switch<wbr/>Chain</span></a><a href="#trackClientEvent" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>track<wbr/>Client<wbr/>Event</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L284">src/classes/WalletSDK.ts:284</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a><a href="#provider" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>provider</span></a><a href="#storage" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>storage</span></a><a href="#user" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>user</span></a><a href="#connect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>connect</span></a><a href="#disconnect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>disconnect</span></a><a href="#getChain" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Chain</span></a><a href="#getUser" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>User</span></a><a href="#getUserWalletAddress" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span></a><a href="#getWeb3Provider" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Web3<wbr/>Provider</span></a><a href="#handlePairing" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>handle<wbr/>Pairing</span></a><a href="#initTracking" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>init<wbr/>Tracking</span></a><a href="#isConnected" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Connected</span></a><a href="#isWalletConnected" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Wallet<wbr/>Connected</span></a><a href="#on" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>on</span></a><a href="#removeListener" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Listener</span></a><a href="#sendTransaction" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Transaction</span></a><a href="#signMessage" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>sign<wbr/>Message</span></a><a href="#switchChain" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>switch<wbr/>Chain</span></a><a href="#trackClientEvent" class="tsd-is-private"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>track<wbr/>Client<wbr/>Event</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/enums/classes_EventEmitter.ProviderEvents.html b/docs/enums/classes_EventEmitter.ProviderEvents.html index d6cd223..abbfc99 100644 --- a/docs/enums/classes_EventEmitter.ProviderEvents.html +++ b/docs/enums/classes_EventEmitter.ProviderEvents.html @@ -1,10 +1,10 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderEvents | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_EventEmitter.html">classes/EventEmitter</a></li><li><a href="classes_EventEmitter.ProviderEvents.html">ProviderEvents</a></li></ul><h1>Enumeration ProviderEvents</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Provider events</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderEvents | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_EventEmitter.html">classes/EventEmitter</a></li><li><a href="classes_EventEmitter.ProviderEvents.html">ProviderEvents</a></li></ul><h1>Enumeration ProviderEvents</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Provider events</p> <h4>Since</h4><p>0.2.0</p> <h4>Link</h4><p><a href="https://eips.ethereum.org/EIPS/eip-1193#provider-events">https://eips.ethereum.org/EIPS/eip-1193#provider-events</a></p> -</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L7">src/classes/EventEmitter.ts:7</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="classes_EventEmitter.ProviderEvents.html#accountsChanged" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>accounts<wbr/>Changed</span></a> +</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L7">src/classes/EventEmitter.ts:7</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="classes_EventEmitter.ProviderEvents.html#accountsChanged" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>accounts<wbr/>Changed</span></a> <a href="classes_EventEmitter.ProviderEvents.html#chainChanged" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>chain<wbr/>Changed</span></a> <a href="classes_EventEmitter.ProviderEvents.html#connect" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>connect</span></a> <a href="classes_EventEmitter.ProviderEvents.html#disconnect" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>disconnect</span></a> <a href="classes_EventEmitter.ProviderEvents.html#message" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>message</span></a> <a href="classes_EventEmitter.ProviderEvents.html#pair" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>pair</span></a> -</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Enumeration Members</h2><section class="tsd-panel tsd-member"><a id="accountsChanged" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>accounts<wbr/>Changed</span><a href="#accountsChanged" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">accounts<wbr/>Changed</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"accountsChanged"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L8">src/classes/EventEmitter.ts:8</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="chainChanged" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>chain<wbr/>Changed</span><a href="#chainChanged" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">chain<wbr/>Changed</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"chainChanged"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L12">src/classes/EventEmitter.ts:12</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="connect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>connect</span><a href="#connect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">connect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"connect"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L10">src/classes/EventEmitter.ts:10</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="disconnect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>disconnect</span><a href="#disconnect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">disconnect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"disconnect"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L11">src/classes/EventEmitter.ts:11</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="message" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>message</span><a href="#message" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">message</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"message"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L13">src/classes/EventEmitter.ts:13</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="pair" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>pair</span><a href="#pair" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">pair</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"pair"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L9">src/classes/EventEmitter.ts:9</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#accountsChanged" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>accounts<wbr/>Changed</span></a><a href="#chainChanged" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>chain<wbr/>Changed</span></a><a href="#connect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>connect</span></a><a href="#disconnect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>disconnect</span></a><a href="#message" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>message</span></a><a href="#pair" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>pair</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Enumeration Members</h2><section class="tsd-panel tsd-member"><a id="accountsChanged" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>accounts<wbr/>Changed</span><a href="#accountsChanged" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">accounts<wbr/>Changed</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"accountsChanged"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L8">src/classes/EventEmitter.ts:8</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="chainChanged" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>chain<wbr/>Changed</span><a href="#chainChanged" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">chain<wbr/>Changed</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"chainChanged"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L12">src/classes/EventEmitter.ts:12</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="connect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>connect</span><a href="#connect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">connect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"connect"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L10">src/classes/EventEmitter.ts:10</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="disconnect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>disconnect</span><a href="#disconnect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">disconnect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"disconnect"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L11">src/classes/EventEmitter.ts:11</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="message" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>message</span><a href="#message" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">message</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"message"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L13">src/classes/EventEmitter.ts:13</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="pair" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>pair</span><a href="#pair" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">pair</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"pair"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L9">src/classes/EventEmitter.ts:9</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#accountsChanged" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>accounts<wbr/>Changed</span></a><a href="#chainChanged" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>chain<wbr/>Changed</span></a><a href="#connect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>connect</span></a><a href="#disconnect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>disconnect</span></a><a href="#message" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>message</span></a><a href="#pair" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>pair</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/enums/classes_Provider.ProviderMethodNames.html b/docs/enums/classes_Provider.ProviderMethodNames.html index f4bd9bd..6cde91f 100644 --- a/docs/enums/classes_Provider.ProviderMethodNames.html +++ b/docs/enums/classes_Provider.ProviderMethodNames.html @@ -1,7 +1,7 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderMethodNames | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderMethodNames.html">ProviderMethodNames</a></li></ul><h1>Enumeration ProviderMethodNames</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery wallet provider method names</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderMethodNames | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderMethodNames.html">ProviderMethodNames</a></li></ul><h1>Enumeration ProviderMethodNames</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery wallet provider method names</p> <h4>Since</h4><p>0.2.0</p> <h4>Since</h4><p>0.3.0 Added <code>eth_chainId</code>, <code>wallet_addEthereumChain</code> and <code>wallet_switchEthereumChain</code> methods</p> -</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L24">src/classes/Provider.ts:24</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="classes_Provider.ProviderMethodNames.html#eth_accounts" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>accounts</span></a> +</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L24">src/classes/Provider.ts:24</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="classes_Provider.ProviderMethodNames.html#eth_accounts" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>accounts</span></a> <a href="classes_Provider.ProviderMethodNames.html#eth_chainId" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>chain<wbr/>Id</span></a> <a href="classes_Provider.ProviderMethodNames.html#eth_requestAccounts" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>request<wbr/>Accounts</span></a> <a href="classes_Provider.ProviderMethodNames.html#eth_sendTransaction" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>send<wbr/>Transaction</span></a> @@ -9,4 +9,4 @@ <h4>Since</h4><p>0.3.0 Added <code>eth_chainId</code>, <code>wallet_addEthereumC <a href="classes_Provider.ProviderMethodNames.html#personal_sign" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>personal_<wbr/>sign</span></a> <a href="classes_Provider.ProviderMethodNames.html#wallet_addEthereumChain" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet_<wbr/>add<wbr/>Ethereum<wbr/>Chain</span></a> <a href="classes_Provider.ProviderMethodNames.html#wallet_switchEthereumChain" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span></a> -</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Enumeration Members</h2><section class="tsd-panel tsd-member"><a id="eth_accounts" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>eth_<wbr/>accounts</span><a href="#eth_accounts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">eth_<wbr/>accounts</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"eth_accounts"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L26">src/classes/Provider.ts:26</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="eth_chainId" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>eth_<wbr/>chain<wbr/>Id</span><a href="#eth_chainId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">eth_<wbr/>chain<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"eth_chainId"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L30">src/classes/Provider.ts:30</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="eth_requestAccounts" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>eth_<wbr/>request<wbr/>Accounts</span><a href="#eth_requestAccounts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">eth_<wbr/>request<wbr/>Accounts</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"eth_requestAccounts"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L25">src/classes/Provider.ts:25</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="eth_sendTransaction" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>eth_<wbr/>send<wbr/>Transaction</span><a href="#eth_sendTransaction" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">eth_<wbr/>send<wbr/>Transaction</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"eth_sendTransaction"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L28">src/classes/Provider.ts:28</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="gws_disconnect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>gws_<wbr/>disconnect</span><a href="#gws_disconnect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">gws_<wbr/>disconnect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"gws_disconnect"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L29">src/classes/Provider.ts:29</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="personal_sign" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>personal_<wbr/>sign</span><a href="#personal_sign" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">personal_<wbr/>sign</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"personal_sign"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L27">src/classes/Provider.ts:27</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="wallet_addEthereumChain" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wallet_<wbr/>add<wbr/>Ethereum<wbr/>Chain</span><a href="#wallet_addEthereumChain" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wallet_<wbr/>add<wbr/>Ethereum<wbr/>Chain</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"wallet_addEthereumChain"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L31">src/classes/Provider.ts:31</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="wallet_switchEthereumChain" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span><a href="#wallet_switchEthereumChain" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"wallet_switchEthereumChain"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L32">src/classes/Provider.ts:32</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#eth_accounts" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>accounts</span></a><a href="#eth_chainId" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>chain<wbr/>Id</span></a><a href="#eth_requestAccounts" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>request<wbr/>Accounts</span></a><a href="#eth_sendTransaction" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>send<wbr/>Transaction</span></a><a href="#gws_disconnect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>gws_<wbr/>disconnect</span></a><a href="#personal_sign" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>personal_<wbr/>sign</span></a><a href="#wallet_addEthereumChain" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet_<wbr/>add<wbr/>Ethereum<wbr/>Chain</span></a><a href="#wallet_switchEthereumChain" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Enumeration Members</h2><section class="tsd-panel tsd-member"><a id="eth_accounts" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>eth_<wbr/>accounts</span><a href="#eth_accounts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">eth_<wbr/>accounts</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"eth_accounts"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L26">src/classes/Provider.ts:26</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="eth_chainId" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>eth_<wbr/>chain<wbr/>Id</span><a href="#eth_chainId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">eth_<wbr/>chain<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"eth_chainId"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L30">src/classes/Provider.ts:30</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="eth_requestAccounts" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>eth_<wbr/>request<wbr/>Accounts</span><a href="#eth_requestAccounts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">eth_<wbr/>request<wbr/>Accounts</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"eth_requestAccounts"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L25">src/classes/Provider.ts:25</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="eth_sendTransaction" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>eth_<wbr/>send<wbr/>Transaction</span><a href="#eth_sendTransaction" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">eth_<wbr/>send<wbr/>Transaction</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"eth_sendTransaction"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L28">src/classes/Provider.ts:28</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="gws_disconnect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>gws_<wbr/>disconnect</span><a href="#gws_disconnect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">gws_<wbr/>disconnect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"gws_disconnect"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L29">src/classes/Provider.ts:29</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="personal_sign" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>personal_<wbr/>sign</span><a href="#personal_sign" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">personal_<wbr/>sign</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"personal_sign"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L27">src/classes/Provider.ts:27</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="wallet_addEthereumChain" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wallet_<wbr/>add<wbr/>Ethereum<wbr/>Chain</span><a href="#wallet_addEthereumChain" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wallet_<wbr/>add<wbr/>Ethereum<wbr/>Chain</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"wallet_addEthereumChain"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L31">src/classes/Provider.ts:31</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="wallet_switchEthereumChain" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span><a href="#wallet_switchEthereumChain" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"wallet_switchEthereumChain"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L32">src/classes/Provider.ts:32</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#eth_accounts" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>accounts</span></a><a href="#eth_chainId" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>chain<wbr/>Id</span></a><a href="#eth_requestAccounts" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>request<wbr/>Accounts</span></a><a href="#eth_sendTransaction" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>eth_<wbr/>send<wbr/>Transaction</span></a><a href="#gws_disconnect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>gws_<wbr/>disconnect</span></a><a href="#personal_sign" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>personal_<wbr/>sign</span></a><a href="#wallet_addEthereumChain" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet_<wbr/>add<wbr/>Ethereum<wbr/>Chain</span></a><a href="#wallet_switchEthereumChain" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/enums/classes_Rpc.RpcMethodNames.html b/docs/enums/classes_Rpc.RpcMethodNames.html index d347b8c..124bc42 100644 --- a/docs/enums/classes_Rpc.RpcMethodNames.html +++ b/docs/enums/classes_Rpc.RpcMethodNames.html @@ -1,9 +1,9 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>RpcMethodNames | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="classes_Rpc.RpcMethodNames.html">RpcMethodNames</a></li></ul><h1>Enumeration RpcMethodNames</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery RPC API method names</p> -</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L7">src/classes/Rpc.ts:7</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="classes_Rpc.RpcMethodNames.html#disconnect" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>disconnect</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>RpcMethodNames | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="classes_Rpc.RpcMethodNames.html">RpcMethodNames</a></li></ul><h1>Enumeration RpcMethodNames</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery RPC API method names</p> +</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L7">src/classes/Rpc.ts:7</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="classes_Rpc.RpcMethodNames.html#disconnect" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>disconnect</span></a> <a href="classes_Rpc.RpcMethodNames.html#getUserWalletAddress" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span></a> <a href="classes_Rpc.RpcMethodNames.html#request" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>request</span></a> <a href="classes_Rpc.RpcMethodNames.html#requestPairing" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>request<wbr/>Pairing</span></a> <a href="classes_Rpc.RpcMethodNames.html#trackClientEvent" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>track<wbr/>Client<wbr/>Event</span></a> <a href="classes_Rpc.RpcMethodNames.html#waitForPairingResult" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wait<wbr/>For<wbr/>Pairing<wbr/>Result</span></a> <a href="classes_Rpc.RpcMethodNames.html#waitForRequestResult" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wait<wbr/>For<wbr/>Request<wbr/>Result</span></a> -</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Enumeration Members</h2><section class="tsd-panel tsd-member"><a id="disconnect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>disconnect</span><a href="#disconnect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">disconnect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"disconnect"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L12">src/classes/Rpc.ts:12</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="getUserWalletAddress" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span><a href="#getUserWalletAddress" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">get<wbr/>User<wbr/>Wallet<wbr/>Address</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"getUserWalletAddress"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L13">src/classes/Rpc.ts:13</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="request" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>request</span><a href="#request" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">request</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"request"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L10">src/classes/Rpc.ts:10</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="requestPairing" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>request<wbr/>Pairing</span><a href="#requestPairing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">request<wbr/>Pairing</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"requestPairing"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L8">src/classes/Rpc.ts:8</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="trackClientEvent" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>track<wbr/>Client<wbr/>Event</span><a href="#trackClientEvent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">track<wbr/>Client<wbr/>Event</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"trackClientEvent"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L14">src/classes/Rpc.ts:14</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="waitForPairingResult" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wait<wbr/>For<wbr/>Pairing<wbr/>Result</span><a href="#waitForPairingResult" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wait<wbr/>For<wbr/>Pairing<wbr/>Result</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"waitForPairingResult"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L9">src/classes/Rpc.ts:9</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="waitForRequestResult" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wait<wbr/>For<wbr/>Request<wbr/>Result</span><a href="#waitForRequestResult" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wait<wbr/>For<wbr/>Request<wbr/>Result</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"waitForRequestResult"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L11">src/classes/Rpc.ts:11</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#disconnect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>disconnect</span></a><a href="#getUserWalletAddress" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span></a><a href="#request" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>request</span></a><a href="#requestPairing" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>request<wbr/>Pairing</span></a><a href="#trackClientEvent" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>track<wbr/>Client<wbr/>Event</span></a><a href="#waitForPairingResult" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wait<wbr/>For<wbr/>Pairing<wbr/>Result</span></a><a href="#waitForRequestResult" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wait<wbr/>For<wbr/>Request<wbr/>Result</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Enumeration Members</h2><section class="tsd-panel tsd-member"><a id="disconnect" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>disconnect</span><a href="#disconnect" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">disconnect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"disconnect"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L12">src/classes/Rpc.ts:12</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="getUserWalletAddress" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span><a href="#getUserWalletAddress" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">get<wbr/>User<wbr/>Wallet<wbr/>Address</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"getUserWalletAddress"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L13">src/classes/Rpc.ts:13</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="request" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>request</span><a href="#request" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">request</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"request"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L10">src/classes/Rpc.ts:10</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="requestPairing" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>request<wbr/>Pairing</span><a href="#requestPairing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">request<wbr/>Pairing</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"requestPairing"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L8">src/classes/Rpc.ts:8</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="trackClientEvent" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>track<wbr/>Client<wbr/>Event</span><a href="#trackClientEvent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">track<wbr/>Client<wbr/>Event</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"trackClientEvent"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L14">src/classes/Rpc.ts:14</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="waitForPairingResult" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wait<wbr/>For<wbr/>Pairing<wbr/>Result</span><a href="#waitForPairingResult" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wait<wbr/>For<wbr/>Pairing<wbr/>Result</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"waitForPairingResult"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L9">src/classes/Rpc.ts:9</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="waitForRequestResult" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wait<wbr/>For<wbr/>Request<wbr/>Result</span><a href="#waitForRequestResult" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wait<wbr/>For<wbr/>Request<wbr/>Result</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"waitForRequestResult"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L11">src/classes/Rpc.ts:11</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#disconnect" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>disconnect</span></a><a href="#getUserWalletAddress" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span></a><a href="#request" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>request</span></a><a href="#requestPairing" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>request<wbr/>Pairing</span></a><a href="#trackClientEvent" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>track<wbr/>Client<wbr/>Event</span></a><a href="#waitForPairingResult" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wait<wbr/>For<wbr/>Pairing<wbr/>Result</span></a><a href="#waitForRequestResult" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wait<wbr/>For<wbr/>Request<wbr/>Result</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/enums/classes_SdkStorage.SdkStorageKeys.html b/docs/enums/classes_SdkStorage.SdkStorageKeys.html index 0bbfb86..4104735 100644 --- a/docs/enums/classes_SdkStorage.SdkStorageKeys.html +++ b/docs/enums/classes_SdkStorage.SdkStorageKeys.html @@ -1,6 +1,6 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SdkStorageKeys | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_SdkStorage.html">classes/SdkStorage</a></li><li><a href="classes_SdkStorage.SdkStorageKeys.html">SdkStorageKeys</a></li></ul><h1>Enumeration SdkStorageKeys</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>SdkStorage keys</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SdkStorageKeys | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_SdkStorage.html">classes/SdkStorage</a></li><li><a href="classes_SdkStorage.SdkStorageKeys.html">SdkStorageKeys</a></li></ul><h1>Enumeration SdkStorageKeys</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>SdkStorage keys</p> <h4>Since</h4><p>0.2.0</p> -</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L10">src/classes/SdkStorage.ts:10</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="classes_SdkStorage.SdkStorageKeys.html#address" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>address</span></a> +</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L10">src/classes/SdkStorage.ts:10</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="classes_SdkStorage.SdkStorageKeys.html#address" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>address</span></a> <a href="classes_SdkStorage.SdkStorageKeys.html#chainId" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>chain<wbr/>Id</span></a> <a href="classes_SdkStorage.SdkStorageKeys.html#clientId" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>client<wbr/>Id</span></a> <a href="classes_SdkStorage.SdkStorageKeys.html#connectUrl" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>connect<wbr/>Url</span></a> @@ -8,4 +8,4 @@ <h4>Since</h4><p>0.2.0</p> <a href="classes_SdkStorage.SdkStorageKeys.html#pairingToken" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>pairing<wbr/>Token</span></a> <a href="classes_SdkStorage.SdkStorageKeys.html#sessionId" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>session<wbr/>Id</span></a> <a href="classes_SdkStorage.SdkStorageKeys.html#shortToken" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>short<wbr/>Token</span></a> -</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Enumeration Members</h2><section class="tsd-panel tsd-member"><a id="address" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>address</span><a href="#address" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">address</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"address"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L17">src/classes/SdkStorage.ts:17</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="chainId" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>chain<wbr/>Id</span><a href="#chainId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">chain<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"chainId"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L18">src/classes/SdkStorage.ts:18</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="clientId" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>client<wbr/>Id</span><a href="#clientId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">client<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"clientId"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L16">src/classes/SdkStorage.ts:16</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="connectUrl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>connect<wbr/>Url</span><a href="#connectUrl" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">connect<wbr/>Url</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"connectUrl"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L13">src/classes/SdkStorage.ts:13</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="connectUrlBrowser" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>connect<wbr/>Url<wbr/>Browser</span><a href="#connectUrlBrowser" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">connect<wbr/>Url<wbr/>Browser</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"connectUrlBrowser"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L14">src/classes/SdkStorage.ts:14</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="pairingToken" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>pairing<wbr/>Token</span><a href="#pairingToken" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">pairing<wbr/>Token</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"pairingToken"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L11">src/classes/SdkStorage.ts:11</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="sessionId" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>session<wbr/>Id</span><a href="#sessionId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">session<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"sessionId"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L12">src/classes/SdkStorage.ts:12</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="shortToken" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>short<wbr/>Token</span><a href="#shortToken" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">short<wbr/>Token</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"shortToken"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L15">src/classes/SdkStorage.ts:15</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#address" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>address</span></a><a href="#chainId" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>chain<wbr/>Id</span></a><a href="#clientId" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>client<wbr/>Id</span></a><a href="#connectUrl" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>connect<wbr/>Url</span></a><a href="#connectUrlBrowser" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>connect<wbr/>Url<wbr/>Browser</span></a><a href="#pairingToken" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>pairing<wbr/>Token</span></a><a href="#sessionId" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>session<wbr/>Id</span></a><a href="#shortToken" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>short<wbr/>Token</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Enumeration Members</h2><section class="tsd-panel tsd-member"><a id="address" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>address</span><a href="#address" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">address</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"address"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L17">src/classes/SdkStorage.ts:17</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="chainId" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>chain<wbr/>Id</span><a href="#chainId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">chain<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"chainId"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L18">src/classes/SdkStorage.ts:18</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="clientId" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>client<wbr/>Id</span><a href="#clientId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">client<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"clientId"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L16">src/classes/SdkStorage.ts:16</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="connectUrl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>connect<wbr/>Url</span><a href="#connectUrl" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">connect<wbr/>Url</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"connectUrl"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L13">src/classes/SdkStorage.ts:13</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="connectUrlBrowser" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>connect<wbr/>Url<wbr/>Browser</span><a href="#connectUrlBrowser" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">connect<wbr/>Url<wbr/>Browser</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"connectUrlBrowser"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L14">src/classes/SdkStorage.ts:14</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="pairingToken" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>pairing<wbr/>Token</span><a href="#pairingToken" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">pairing<wbr/>Token</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"pairingToken"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L11">src/classes/SdkStorage.ts:11</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="sessionId" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>session<wbr/>Id</span><a href="#sessionId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">session<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"sessionId"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L12">src/classes/SdkStorage.ts:12</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="shortToken" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>short<wbr/>Token</span><a href="#shortToken" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">short<wbr/>Token</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"shortToken"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L15">src/classes/SdkStorage.ts:15</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#address" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>address</span></a><a href="#chainId" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>chain<wbr/>Id</span></a><a href="#clientId" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>client<wbr/>Id</span></a><a href="#connectUrl" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>connect<wbr/>Url</span></a><a href="#connectUrlBrowser" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>connect<wbr/>Url<wbr/>Browser</span></a><a href="#pairingToken" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>pairing<wbr/>Token</span></a><a href="#sessionId" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>session<wbr/>Id</span></a><a href="#shortToken" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>short<wbr/>Token</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/enums/utils_clientEvents.ClientEventNames.html b/docs/enums/utils_clientEvents.ClientEventNames.html index 50010f0..107df58 100644 --- a/docs/enums/utils_clientEvents.ClientEventNames.html +++ b/docs/enums/utils_clientEvents.ClientEventNames.html @@ -1,9 +1,9 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ClientEventNames | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_clientEvents.html">utils/clientEvents</a></li><li><a href="utils_clientEvents.ClientEventNames.html">ClientEventNames</a></li></ul><h1>Enumeration ClientEventNames</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/clientEvents.ts#L1">src/utils/clientEvents.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="utils_clientEvents.ClientEventNames.html#appOpened" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>app<wbr/>Opened</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ClientEventNames | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_clientEvents.html">utils/clientEvents</a></li><li><a href="utils_clientEvents.ClientEventNames.html">ClientEventNames</a></li></ul><h1>Enumeration ClientEventNames</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/clientEvents.ts#L1">src/utils/clientEvents.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumeration Members</h3><div class="tsd-index-list"><a href="utils_clientEvents.ClientEventNames.html#appOpened" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>app<wbr/>Opened</span></a> <a href="utils_clientEvents.ClientEventNames.html#walletAddressRequested" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet<wbr/>Address<wbr/>Requested</span></a> <a href="utils_clientEvents.ClientEventNames.html#walletConnected" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet<wbr/>Connected</span></a> <a href="utils_clientEvents.ClientEventNames.html#walletDisconnected" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet<wbr/>Disconnected</span></a> </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Enumeration Members</h2><section class="tsd-panel tsd-member"><a id="appOpened" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>app<wbr/>Opened</span><a href="#appOpened" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">app<wbr/>Opened</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"appOpened"</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The event is triggered every time the app page is opened</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/clientEvents.ts#L5">src/utils/clientEvents.ts:5</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="walletAddressRequested" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wallet<wbr/>Address<wbr/>Requested</span><a href="#walletAddressRequested" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wallet<wbr/>Address<wbr/>Requested</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"walletAddressRequested"</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The event is triggered when the app requests user wallet address</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/clientEvents.ts#L17">src/utils/clientEvents.ts:17</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="walletConnected" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wallet<wbr/>Connected</span><a href="#walletConnected" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wallet<wbr/>Connected</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"walletConnected"</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The event is triggered when the user wallet is connected</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/clientEvents.ts#L9">src/utils/clientEvents.ts:9</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="walletDisconnected" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wallet<wbr/>Disconnected</span><a href="#walletDisconnected" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wallet<wbr/>Disconnected</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"walletDisconnected"</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The event is triggered when the user wallet is disconnected</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/clientEvents.ts#L13">src/utils/clientEvents.ts:13</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#appOpened" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>app<wbr/>Opened</span></a><a href="#walletAddressRequested" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet<wbr/>Address<wbr/>Requested</span></a><a href="#walletConnected" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet<wbr/>Connected</span></a><a href="#walletDisconnected" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet<wbr/>Disconnected</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/clientEvents.ts#L5">src/utils/clientEvents.ts:5</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="walletAddressRequested" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wallet<wbr/>Address<wbr/>Requested</span><a href="#walletAddressRequested" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wallet<wbr/>Address<wbr/>Requested</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"walletAddressRequested"</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The event is triggered when the app requests user wallet address</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/clientEvents.ts#L17">src/utils/clientEvents.ts:17</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="walletConnected" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wallet<wbr/>Connected</span><a href="#walletConnected" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wallet<wbr/>Connected</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"walletConnected"</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The event is triggered when the user wallet is connected</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/clientEvents.ts#L9">src/utils/clientEvents.ts:9</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="walletDisconnected" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>wallet<wbr/>Disconnected</span><a href="#walletDisconnected" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-enum-member">wallet<wbr/>Disconnected</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"walletDisconnected"</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The event is triggered when the user wallet is disconnected</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/clientEvents.ts#L13">src/utils/clientEvents.ts:13</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#appOpened" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>app<wbr/>Opened</span></a><a href="#walletAddressRequested" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet<wbr/>Address<wbr/>Requested</span></a><a href="#walletConnected" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet<wbr/>Connected</span></a><a href="#walletDisconnected" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-16"></use></svg><span>wallet<wbr/>Disconnected</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/example/dist/classes/WalletAPI.d.ts b/docs/example/dist/classes/WalletAPI.d.ts new file mode 100644 index 0000000..821a04a --- /dev/null +++ b/docs/example/dist/classes/WalletAPI.d.ts @@ -0,0 +1,14 @@ +/** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ +export declare class WalletAPI { + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + sendApiRequest<T>(method: string, params?: object): Promise<T>; +} diff --git a/docs/example/dist/classes/WalletSDK.d.ts b/docs/example/dist/classes/WalletSDK.d.ts index cb907c0..59d43a8 100644 --- a/docs/example/dist/classes/WalletSDK.d.ts +++ b/docs/example/dist/classes/WalletSDK.d.ts @@ -1,6 +1,7 @@ import { ProviderEventName } from './EventEmitter'; import { Provider } from './Provider'; import { RpcRequestResults } from './Rpc'; +import { User } from '../utils/user'; export type WalletSDKConfig = { appId?: string; appUrl?: string; @@ -107,11 +108,23 @@ export declare class WalletSDK { * @returns {EventEmitter} The instance of the class itself */ removeListener(event: ProviderEventName, callback: Function): this; + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */ + getUser(): Promise<User>; /** * @summary SdkStorage class instance * @private */ private storage; + /** + * @summary The Grindery Wallet user + * @private + */ + private user; /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider diff --git a/docs/example/dist/grindery-wallet-sdk.cjs.development.js b/docs/example/dist/grindery-wallet-sdk.cjs.development.js index 6da6e1c..45a5eea 100644 --- a/docs/example/dist/grindery-wallet-sdk.cjs.development.js +++ b/docs/example/dist/grindery-wallet-sdk.cjs.development.js @@ -1070,8 +1070,8 @@ var Provider = /*#__PURE__*/function (_EventEmitter) { return _this.rpc.sendAndWaitRpcRequest(ProviderMethodNames.eth_accounts, params ? Array.isArray(params) ? params : [params] : []); case 3: result = _context3.sent; - _this.emit(ProviderEvents.accountsChanged, result); _this.storage.setValue(SdkStorageKeys.address, result[0] || ''); + _this.emit(ProviderEvents.accountsChanged, result); return _context3.abrupt("return", result); case 9: _context3.prev = 9; @@ -1416,6 +1416,78 @@ var ClientEventNames; ClientEventNames["walletAddressRequested"] = "walletAddressRequested"; })(ClientEventNames || (ClientEventNames = {})); +/** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ +var WalletAPI = /*#__PURE__*/function () { + function WalletAPI() {} + var _proto = WalletAPI.prototype; + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + _proto.sendApiRequest = + /*#__PURE__*/ + function () { + var _sendApiRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(method, params) { + var storage, sessionId, address, response, json; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + storage = new SdkStorage(); + sessionId = storage.getValue(SdkStorageKeys.sessionId); + address = storage.getValue(SdkStorageKeys.address); + if (!(!sessionId || !address)) { + _context.next = 5; + break; + } + throw new Error('Not connected to the wallet'); + case 5: + _context.next = 7; + return fetch("https://wallet-api.grindery.com/v3", { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: "Bearer " + address + ":" + sessionId + }, + body: JSON.stringify({ + jsonrpc: '2.0', + id: 1, + method: method, + params: params || {} + }) + }); + case 7: + response = _context.sent; + if (response.ok) { + _context.next = 10; + break; + } + throw new Error("Failed to call " + method); + case 10: + _context.next = 12; + return response.json(); + case 12: + json = _context.sent; + return _context.abrupt("return", json.result); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + })); + function sendApiRequest(_x, _x2) { + return _sendApiRequest.apply(this, arguments); + } + return sendApiRequest; + }(); + return WalletAPI; +}(); + /** * @summary The Wallet SDK class * @since 0.2.0 @@ -1432,6 +1504,11 @@ var WalletSDK = /*#__PURE__*/function () { * @private */ this.storage = new SdkStorage(); + /** + * @summary The Grindery Wallet user + * @private + */ + this.user = null; if (config != null && config.appId || config != null && config.appUrl) { window.Grindery = _extends({}, window.Grindery || {}, { appId: config == null ? void 0 : config.appId, @@ -1697,7 +1774,50 @@ var WalletSDK = /*#__PURE__*/function () { _proto.removeListener = function removeListener(event, callback) { this.provider.removeListener(event, callback); return this; - }; + } + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */; + _proto.getUser = + /*#__PURE__*/ + function () { + var _getUser = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() { + var api; + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (this.user) { + _context7.next = 11; + break; + } + api = new WalletAPI(); + _context7.prev = 2; + _context7.next = 5; + return api.sendApiRequest('gw_getMe'); + case 5: + this.user = _context7.sent; + _context7.next = 11; + break; + case 8: + _context7.prev = 8; + _context7.t0 = _context7["catch"](2); + throw new Error(_context7.t0 instanceof Error ? _context7.t0.message : 'Failed to fetch user information'); + case 11: + return _context7.abrupt("return", this.user); + case 12: + case "end": + return _context7.stop(); + } + }, _callee7, this, [[2, 8]]); + })); + function getUser() { + return _getUser.apply(this, arguments); + } + return getUser; + }(); /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider @@ -1724,11 +1844,12 @@ var WalletSDK = /*#__PURE__*/function () { _proto.handlePairing = function handlePairing(_ref) { var _window$Telegram; var shortToken = _ref.shortToken, + connectUrl = _ref.connectUrl, connectUrlBrowser = _ref.connectUrlBrowser; var WebApp = (_window$Telegram = window.Telegram) == null ? void 0 : _window$Telegram.WebApp; - var redirectUrl = "https://walletconnect.grindery.com/connect/wc?uri=" + shortToken; - if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown') { - WebApp.openTelegramLink(connectUrlBrowser); + var redirectUrl = connectUrlBrowser || "https://www.grindery.com/connect/wc?uri=" + shortToken; + if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown' && connectUrl) { + WebApp.openTelegramLink(connectUrl); } else { window.open(redirectUrl, '_blank'); } @@ -1743,18 +1864,18 @@ var WalletSDK = /*#__PURE__*/function () { _proto.trackClientEvent = /*#__PURE__*/ function () { - var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(name, data) { + var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(name, data) { var _window$Grindery, _window$Telegram2; var appUrl, appId, userTelegramId, _window$Telegram3, _window$Telegram4, _window$Telegram5, rpc; - return _regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: appUrl = ((_window$Grindery = window.Grindery) == null ? void 0 : _window$Grindery.appUrl) || window.location.origin; appId = getAppId(); userTelegramId = (_window$Telegram2 = window.Telegram) == null || (_window$Telegram2 = _window$Telegram2.WebApp) == null || (_window$Telegram2 = _window$Telegram2.initDataUnsafe) == null || (_window$Telegram2 = _window$Telegram2.user) == null ? void 0 : _window$Telegram2.id; - _context7.prev = 3; + _context8.prev = 3; rpc = new Rpc(); - _context7.next = 7; + _context8.next = 7; return rpc.sendRpcApiRequest(RpcMethodNames.trackClientEvent, { name: name, appUrl: appUrl, @@ -1771,16 +1892,16 @@ var WalletSDK = /*#__PURE__*/function () { }) }); case 7: - _context7.next = 11; + _context8.next = 11; break; case 9: - _context7.prev = 9; - _context7.t0 = _context7["catch"](3); + _context8.prev = 9; + _context8.t0 = _context8["catch"](3); case 11: case "end": - return _context7.stop(); + return _context8.stop(); } - }, _callee7, this, [[3, 9]]); + }, _callee8, this, [[3, 9]]); })); function trackClientEvent(_x5, _x6) { return _trackClientEvent.apply(this, arguments); diff --git a/docs/example/dist/grindery-wallet-sdk.cjs.development.js.map b/docs/example/dist/grindery-wallet-sdk.cjs.development.js.map index 861b565..416e460 100644 --- a/docs/example/dist/grindery-wallet-sdk.cjs.development.js.map +++ b/docs/example/dist/grindery-wallet-sdk.cjs.development.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.cjs.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","accountsChanged","address","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.cjs.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","address","accountsChanged","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file diff --git a/docs/example/dist/grindery-wallet-sdk.cjs.production.min.js b/docs/example/dist/grindery-wallet-sdk.cjs.production.min.js index cd31c84..fa826ad 100644 --- a/docs/example/dist/grindery-wallet-sdk.cjs.production.min.js +++ b/docs/example/dist/grindery-wallet-sdk.cjs.production.min.js @@ -1,2 +1,2 @@ -"use strict";function e(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(e=function(){return!!t})()}function t(){t=function(){return n};var e,n={},r=Object.prototype,i=r.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new O(r||[]);return o(i,"_invoke",{value:k(e,n,a)}),i}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}n.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function N(){}function m(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==r&&i.call(D,s)&&(I=D);var j=m.prototype=y.prototype=Object.create(I);function T(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function n(r,o,a,s){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var r;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}})}function k(t,n,r){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(r.method=o,r.arg=a;;){var s=r.delegate;if(s){var c=A(s,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===d)throw i=w,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=h(t,n,r);if("normal"===u.type){if(i=r.done?w:f,u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=w,r.method="throw",r.arg=u.arg)}}}function A(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,A(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=h(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var a=o.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function U(t){if(t||""===t){var n=t[s];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function n(){for(;++r<t.length;)if(i.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return N.prototype=m,o(j,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:N,configurable:!0}),N.displayName=p(m,u,"GeneratorFunction"),n.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===N||"GeneratorFunction"===(t.displayName||t.name))},n.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},n.awrap=function(e){return{__await:e}},T(x.prototype),p(x.prototype,c,(function(){return this})),n.AsyncIterator=x,n.async=function(e,t,r,i,o){void 0===o&&(o=Promise);var a=new x(l(e,t,r,i),o);return n.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},T(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),n.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},n.values=U,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(L),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,i){return s.type="throw",s.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;L(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:U(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},n}function n(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function r(e){return function(){var t=this,r=arguments;return new Promise((function(i,o){var a=e.apply(t,r);function s(e){n(a,i,o,s,c,"next",e)}function c(e){n(a,i,o,s,c,"throw",e)}s(void 0)}))}}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s(e,t)}function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function c(t){var n="function"==typeof Map?new Map:void 0;return c=function(t){if(null===t||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,r)}function r(){return function(t,n,r){if(e())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(t.bind.apply(t,i));return r&&s(o,r.prototype),o}(t,arguments,a(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),s(r,t)},c(t)}var u;Object.defineProperty(exports,"__esModule",{value:!0}),function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(u||(u={}));var p,l=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var n=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,n)}return this},t.emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,n[0]),this.events.get(e).forEach((function(e){e.apply(void 0,n)}))),this},e}(),h=function(){for(var e,t="",n=document.querySelectorAll("[data-app-id]"),r=0;r<n.length;r++){var i=n[r],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},d=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},f={uuid:d(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},g=function(e){function t(t,n,r){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=n,i.data=r,i}return o(t,e),t}(c(Error)),w={PairingFailed:new g("Pairing failed",4900),Disconnected:new g("Disconnected",4900),UnsupportedMethod:new g("Unsupported Method",4200),Unauthorized:new g("Unauthorized",4100),NoResult:new g("No result",4900),NoAppId:new g("App ID is required",4900),UserRejected:new g("User Rejected Request",4001),ChainDisconnected:new g("Chain Disconnected",4901)},v=function(e){return e instanceof g?new g(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new g(e.message||"Unknown error",4900,e):new g("Unknown error",4900,e)},y=["eip155:137","eip155:56","eip155:204"],N=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},m=function(e){return"eip155:"+parseInt(e,16)},I="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(p||(p={}));var M,D=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var n=this.getSnapshot();return n[e]=t,this.saveSnapshot(n),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||d(),chainId:this.getSnapshot().chainId||y[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(I)||"{}")}catch(e){throw localStorage.setItem(I,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(I,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(M||(M={}));var j,T=function(){function e(){}var n=e.prototype;return n.sendAndWaitRpcRequest=function(){var e=r(t().mark((function e(n,r,i){var o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(n,r);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.sendRpcRequest=function(){var e=r(t().mark((function e(n,r){var i;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new D,e.next=3,this.sendRpcApiRequest(M.request,{sessionId:i.getValue(p.sessionId),scope:i.getValue(p.chainId),request:{method:n,params:r}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.waitRpcRequest=function(){var e=r(t().mark((function e(n,r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(M.waitForRequestResult,{requestToken:n,timeout:r});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.sendRpcApiRequest=function(){var e=r(t().mark((function e(n,r){var i,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+n,params:r||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new g(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw w.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new g(e.t0.message,500,e.t0);case 18:throw new g("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,n){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(j||(j={}));var x,k=function(e){function n(){var n,i,o,a,s,c,l,d,f;return(i=e.call(this)||this).isGrinderyWallet=!0,i.storage=new D,i.rpc=new T,i.switchChain=function(){var e=r(t().mark((function e(n){var r,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=m(r=n.chainId),y.includes(o)){e.next=4;break}throw v(w.ChainDisconnected);case 4:return i.storage.setValue(p.chainId,o),i.emit(u.chainChanged,{chainId:r}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),i.methods=((n={})[j.eth_requestAccounts]=(f=r(t().mark((function e(n){var r,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!i.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,i.request({method:j.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),i.storage.setValue(p.sessionId,"");case 10:if(!i.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:i.storage.getValue(p.pairingToken)});case 14:if(r=e.sent,i.storage.clear(),i.storage.setValue(p.sessionId,r.session.sessionId),r.session.sessionId){e.next=19;break}throw w.PairingFailed;case 19:return e.next=21,i.request({method:j.eth_accounts,params:n||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),i.storage.clear();case 27:return e.prev=27,i.storage.clear(),e.next=31,i.rpc.sendRpcApiRequest(M.requestPairing,{appId:h(),clientId:i.storage.getValue(p.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw w.PairingFailed;case 34:return i.storage.setValue(p.pairingToken,o.pairingToken),i.storage.setValue(p.connectUrl,o.connectUrl),i.storage.setValue(p.connectUrlBrowser,o.connectUrlBrowser),i.storage.setValue(p.shortToken,o.shortToken),i.emit(u.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(i.storage.setValue(p.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw w.PairingFailed;case 45:return i.storage.setValue(p.pairingToken,""),i.storage.setValue(p.connectUrl,""),i.storage.setValue(p.connectUrlBrowser,""),i.storage.setValue(p.shortToken,""),e.next=51,i.request({method:j.eth_accounts,params:n||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),n[j.eth_accounts]=(d=r(t().mark((function e(n){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendAndWaitRpcRequest(j.eth_accounts,n?Array.isArray(n)?n:[n]:[]);case 3:return i.emit(u.accountsChanged,r=e.sent),i.storage.setValue(p.address,r[0]||""),e.abrupt("return",r);case 9:throw e.prev=9,e.t0=e.catch(0),v(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return d.apply(this,arguments)}),n[j.eth_sendTransaction]=(l=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.eth_sendTransaction,n?Array.isArray(n)?n:[n]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return l.apply(this,arguments)}),n[j.personal_sign]=(c=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.personal_sign,n?Array.isArray(n)?n:[n]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),n[j.gws_disconnect]=r(t().mark((function e(){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendRpcApiRequest(M.disconnect,{sessionToken:i.storage.getValue(p.sessionId)});case 3:return n=e.sent,i.emit(u.disconnect,w.Disconnected),e.abrupt("return",n);case 8:throw e.prev=8,e.t0=e.catch(0),v(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),n[j.eth_chainId]=(s=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",N(i.storage.getValue(p.chainId)||y[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),n[j.wallet_addEthereumChain]=(a=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw v(w.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),n[j.wallet_switchEthereumChain]=(o=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.switchChain(n);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),n),i.injectProvider(),i.listenForRequestProviderEvents(),i.announceProvider(),window.addEventListener("load",(function(){i.emit(u.connect,{chainId:N(i.storage.getValue(p.chainId)||y[0])}),i.restorePairing(),i.restoreSession()})),i}o(n,e);var i=n.prototype;return i.isConnected=function(){return!0},i.request=function(){var e=r(t().mark((function e(n){var r,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.method,a=n.params,e.next=3,null==(r=(i=this.methods)[o])?void 0:r.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),i.restorePairing=function(){var e=r(t().mark((function e(){var n,r,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.storage.getValue(p.pairingToken),r=this.storage.getValue(p.sessionId),!n||r){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:n});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(p.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw w.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(p.address,a[0]||""),this.emit(u.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),i.restoreSession=function(){var e=r(t().mark((function e(){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.storage.getValue(p.pairingToken),!this.storage.getValue(p.sessionId)||n){e.next=11;break}return e.prev=3,e.next=6,this.request({method:j.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),i.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},i.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:f,provider:this})}))},i.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},n}(l);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(x||(x={}));var A,b=function(){function e(e){this.provider=void 0,this.storage=new D,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=i({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(p.chainId,this.storage.getValue(p.chainId)||y[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(u.pair,this.handlePairing)}var n=e.prototype;return n.isConnected=function(){return this.provider.isConnected()},n.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(p.pairingToken)&&!this.storage.getValue(p.sessionId)},n.connect=function(){var e=r(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.disconnect=function(){var e=r(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.sendTransaction=function(){var e=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_sendTransaction,params:[n]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.signMessage=function(){var e=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.personal_sign,params:[n,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.switchChain=function(){var e=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.wallet_switchEthereumChain,params:{chainId:N(n)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.getChain=function(){return this.storage.getValue(p.chainId)||y[0]},n.getUserWalletAddress=function(){var e=r(t().mark((function e(n){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new T,this.trackClientEvent(x.walletAddressRequested,{userId:n}),e.next=4,r.sendRpcApiRequest(M.getUserWalletAddress,{appId:h(),userId:n});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.on=function(e,t){return this.provider.on(e,t),this},n.removeListener=function(e,t){return this.provider.removeListener(e,t),this},n.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof k&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof k&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new k),t},n.handlePairing=function(e){var t,n=null==(t=window.Telegram)?void 0:t.WebApp,r="https://walletconnect.grindery.com/connect/wc?uri="+e.shortToken;n&&n.openTelegramLink&&n.platform&&"unknown"!==n.platform?n.openTelegramLink(e.connectUrlBrowser):window.open(r,"_blank")},n.trackClientEvent=function(){var e=r(t().mark((function e(n,r){var o,a,s,c,u,l,d,f,g;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(o=window.Grindery)?void 0:o.appUrl)||window.location.origin,c=h(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new T,e.next=7,g.sendRpcApiRequest(M.trackClientEvent,{name:n,appUrl:s,userTelegramId:u,data:i({},r||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(p.sessionId),clientId:this.storage.getValue(p.clientId),isMiniApp:Boolean(null==(l=window.Telegram)?void 0:l.initDataUnsafe),miniAppPlatform:null==(d=window.Telegram)||null==(d=d.WebApp)?void 0:d.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,n){return e.apply(this,arguments)}}(),n.initTracking=function(){var e=this;this.trackClientEvent(x.appOpened),this.on(u.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(x.walletConnected,{wallets:t})})),this.on(u.disconnect,(function(){e.trackClientEvent(x.walletDisconnected)}))},e}(),L=b;null!=(A=window.Grindery)&&A.WalletSDK&&window.Grindery.WalletSDK instanceof b||(window.Grindery=i({},window.Grindery||{},{WalletSDK:new b})),exports.GrinderyWalletSDK=L; +"use strict";function e(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(e=function(){return!!t})()}function t(){t=function(){return r};var e,r={},n=Object.prototype,i=n.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,r){return e[t]=r}}function l(e,t,r,n){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new L(n||[]);return o(i,"_invoke",{value:T(e,r,a)}),i}function h(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}r.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function N(){}function m(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==n&&i.call(D,s)&&(I=D);var j=m.prototype=y.prototype=Object.create(I);function x(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function r(n,o,a,s){var c=h(e[n],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return r("throw",e,a,s)}))}s(c.arg)}var n;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,n){r(e,i,t,n)}))}return n=n?n.then(o,o):o()}})}function T(t,r,n){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(n.method=o,n.arg=a;;){var s=n.delegate;if(s){var c=A(s,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===d)throw i=w,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=g;var u=h(t,r,n);if("normal"===u.type){if(i=n.done?w:f,u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(i=w,n.method="throw",n.arg=u.arg)}}}function A(t,r){var n=r.method,i=t.iterator[n];if(i===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,A(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var o=h(i,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var a=o.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function U(t){if(t||""===t){var r=t[s];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function r(){for(;++n<t.length;)if(i.call(t,n))return r.value=t[n],r.done=!1,r;return r.value=e,r.done=!0,r};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return N.prototype=m,o(j,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:N,configurable:!0}),N.displayName=p(m,u,"GeneratorFunction"),r.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===N||"GeneratorFunction"===(t.displayName||t.name))},r.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},r.awrap=function(e){return{__await:e}},x(k.prototype),p(k.prototype,c,(function(){return this})),r.AsyncIterator=k,r.async=function(e,t,n,i,o){void 0===o&&(o=Promise);var a=new k(l(e,t,n,i),o);return r.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),r.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},r.values=U,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var r in this)"t"===r.charAt(0)&&i.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function n(n,i){return s.type="throw",s.arg=t,r.next=n,i&&(r.method="next",r.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;O(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:U(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},r}function r(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function n(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,c,"next",e)}function c(e){r(a,i,o,s,c,"throw",e)}s(void 0)}))}}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},i.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s(e,t)}function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function c(t){var r="function"==typeof Map?new Map:void 0;return c=function(t){if(null===t||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,n)}function n(){return function(t,r,n){if(e())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,r);var o=new(t.bind.apply(t,i));return n&&s(o,n.prototype),o}(t,arguments,a(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),s(n,t)},c(t)}var u;Object.defineProperty(exports,"__esModule",{value:!0}),function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(u||(u={}));var p,l=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var r=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,r)}return this},t.emit=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,r[0]),this.events.get(e).forEach((function(e){e.apply(void 0,r)}))),this},e}(),h=function(){for(var e,t="",r=document.querySelectorAll("[data-app-id]"),n=0;n<r.length;n++){var i=r[n],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},d=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},f={uuid:d(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},g=function(e){function t(t,r,n){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=r,i.data=n,i}return o(t,e),t}(c(Error)),w={PairingFailed:new g("Pairing failed",4900),Disconnected:new g("Disconnected",4900),UnsupportedMethod:new g("Unsupported Method",4200),Unauthorized:new g("Unauthorized",4100),NoResult:new g("No result",4900),NoAppId:new g("App ID is required",4900),UserRejected:new g("User Rejected Request",4001),ChainDisconnected:new g("Chain Disconnected",4901)},v=function(e){return e instanceof g?new g(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new g(e.message||"Unknown error",4900,e):new g("Unknown error",4900,e)},y=["eip155:137","eip155:56","eip155:204"],N=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},m=function(e){return"eip155:"+parseInt(e,16)},I="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(p||(p={}));var M,D=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var r=this.getSnapshot();return r[e]=t,this.saveSnapshot(r),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||d(),chainId:this.getSnapshot().chainId||y[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(I)||"{}")}catch(e){throw localStorage.setItem(I,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(I,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(M||(M={}));var j,x=function(){function e(){}var r=e.prototype;return r.sendAndWaitRpcRequest=function(){var e=n(t().mark((function e(r,n,i){var o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(r,n);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.sendRpcRequest=function(){var e=n(t().mark((function e(r,n){var i;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new D,e.next=3,this.sendRpcApiRequest(M.request,{sessionId:i.getValue(p.sessionId),scope:i.getValue(p.chainId),request:{method:r,params:n}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.waitRpcRequest=function(){var e=n(t().mark((function e(r,n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(M.waitForRequestResult,{requestToken:r,timeout:n});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.sendRpcApiRequest=function(){var e=n(t().mark((function e(r,n){var i,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+r,params:n||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new g(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw w.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new g(e.t0.message,500,e.t0);case 18:throw new g("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,r){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(j||(j={}));var k,T=function(e){function r(){var r,i,o,a,s,c,l,d,f;return(i=e.call(this)||this).isGrinderyWallet=!0,i.storage=new D,i.rpc=new x,i.switchChain=function(){var e=n(t().mark((function e(r){var n,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=m(n=r.chainId),y.includes(o)){e.next=4;break}throw v(w.ChainDisconnected);case 4:return i.storage.setValue(p.chainId,o),i.emit(u.chainChanged,{chainId:n}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),i.methods=((r={})[j.eth_requestAccounts]=(f=n(t().mark((function e(r){var n,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!i.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,i.request({method:j.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),i.storage.setValue(p.sessionId,"");case 10:if(!i.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:i.storage.getValue(p.pairingToken)});case 14:if(n=e.sent,i.storage.clear(),i.storage.setValue(p.sessionId,n.session.sessionId),n.session.sessionId){e.next=19;break}throw w.PairingFailed;case 19:return e.next=21,i.request({method:j.eth_accounts,params:r||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),i.storage.clear();case 27:return e.prev=27,i.storage.clear(),e.next=31,i.rpc.sendRpcApiRequest(M.requestPairing,{appId:h(),clientId:i.storage.getValue(p.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw w.PairingFailed;case 34:return i.storage.setValue(p.pairingToken,o.pairingToken),i.storage.setValue(p.connectUrl,o.connectUrl),i.storage.setValue(p.connectUrlBrowser,o.connectUrlBrowser),i.storage.setValue(p.shortToken,o.shortToken),i.emit(u.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(i.storage.setValue(p.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw w.PairingFailed;case 45:return i.storage.setValue(p.pairingToken,""),i.storage.setValue(p.connectUrl,""),i.storage.setValue(p.connectUrlBrowser,""),i.storage.setValue(p.shortToken,""),e.next=51,i.request({method:j.eth_accounts,params:r||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),r[j.eth_accounts]=(d=n(t().mark((function e(r){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendAndWaitRpcRequest(j.eth_accounts,r?Array.isArray(r)?r:[r]:[]);case 3:return i.storage.setValue(p.address,(n=e.sent)[0]||""),i.emit(u.accountsChanged,n),e.abrupt("return",n);case 9:throw e.prev=9,e.t0=e.catch(0),v(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return d.apply(this,arguments)}),r[j.eth_sendTransaction]=(l=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.eth_sendTransaction,r?Array.isArray(r)?r:[r]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return l.apply(this,arguments)}),r[j.personal_sign]=(c=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.personal_sign,r?Array.isArray(r)?r:[r]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),r[j.gws_disconnect]=n(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendRpcApiRequest(M.disconnect,{sessionToken:i.storage.getValue(p.sessionId)});case 3:return r=e.sent,i.emit(u.disconnect,w.Disconnected),e.abrupt("return",r);case 8:throw e.prev=8,e.t0=e.catch(0),v(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),r[j.eth_chainId]=(s=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",N(i.storage.getValue(p.chainId)||y[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),r[j.wallet_addEthereumChain]=(a=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw v(w.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),r[j.wallet_switchEthereumChain]=(o=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.switchChain(r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),r),i.injectProvider(),i.listenForRequestProviderEvents(),i.announceProvider(),window.addEventListener("load",(function(){i.emit(u.connect,{chainId:N(i.storage.getValue(p.chainId)||y[0])}),i.restorePairing(),i.restoreSession()})),i}o(r,e);var i=r.prototype;return i.isConnected=function(){return!0},i.request=function(){var e=n(t().mark((function e(r){var n,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.method,a=r.params,e.next=3,null==(n=(i=this.methods)[o])?void 0:n.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),i.restorePairing=function(){var e=n(t().mark((function e(){var r,n,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.storage.getValue(p.pairingToken),n=this.storage.getValue(p.sessionId),!r||n){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:r});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(p.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw w.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(p.address,a[0]||""),this.emit(u.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),i.restoreSession=function(){var e=n(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.storage.getValue(p.pairingToken),!this.storage.getValue(p.sessionId)||r){e.next=11;break}return e.prev=3,e.next=6,this.request({method:j.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),i.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},i.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:f,provider:this})}))},i.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},r}(l);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(k||(k={}));var A,b=function(){function e(){}return e.prototype.sendApiRequest=function(){var e=n(t().mark((function e(r,n){var i,o,a,s;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=new D,o=i.getValue(p.sessionId),a=i.getValue(p.address),o&&a){e.next=5;break}throw new Error("Not connected to the wallet");case 5:return e.next=7,fetch("https://wallet-api.grindery.com/v3",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+a+":"+o},body:JSON.stringify({jsonrpc:"2.0",id:1,method:r,params:n||{}})});case 7:if((s=e.sent).ok){e.next=10;break}throw new Error("Failed to call "+r);case 10:return e.next=12,s.json();case 12:return e.abrupt("return",e.sent.result);case 14:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),e}(),O=function(){function e(e){this.provider=void 0,this.storage=new D,this.user=null,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=i({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(p.chainId,this.storage.getValue(p.chainId)||y[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(u.pair,this.handlePairing)}var r=e.prototype;return r.isConnected=function(){return this.provider.isConnected()},r.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(p.pairingToken)&&!this.storage.getValue(p.sessionId)},r.connect=function(){var e=n(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.disconnect=function(){var e=n(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.sendTransaction=function(){var e=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_sendTransaction,params:[r]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.signMessage=function(){var e=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.personal_sign,params:[r,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.switchChain=function(){var e=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.wallet_switchEthereumChain,params:{chainId:N(r)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getChain=function(){return this.storage.getValue(p.chainId)||y[0]},r.getUserWalletAddress=function(){var e=n(t().mark((function e(r){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=new x,this.trackClientEvent(k.walletAddressRequested,{userId:r}),e.next=4,n.sendRpcApiRequest(M.getUserWalletAddress,{appId:h(),userId:r});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.on=function(e,t){return this.provider.on(e,t),this},r.removeListener=function(e,t){return this.provider.removeListener(e,t),this},r.getUser=function(){var e=n(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.user){e.next=11;break}return r=new b,e.prev=2,e.next=5,r.sendApiRequest("gw_getMe");case 5:this.user=e.sent,e.next=11;break;case 8:throw e.prev=8,e.t0=e.catch(2),new Error(e.t0 instanceof Error?e.t0.message:"Failed to fetch user information");case 11:return e.abrupt("return",this.user);case 12:case"end":return e.stop()}}),e,this,[[2,8]])})));return function(){return e.apply(this,arguments)}}(),r.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof T&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof T&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new T),t},r.handlePairing=function(e){var t,r=e.connectUrl,n=null==(t=window.Telegram)?void 0:t.WebApp,i=e.connectUrlBrowser||"https://www.grindery.com/connect/wc?uri="+e.shortToken;n&&n.openTelegramLink&&n.platform&&"unknown"!==n.platform&&r?n.openTelegramLink(r):window.open(i,"_blank")},r.trackClientEvent=function(){var e=n(t().mark((function e(r,n){var o,a,s,c,u,l,d,f,g;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(o=window.Grindery)?void 0:o.appUrl)||window.location.origin,c=h(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new x,e.next=7,g.sendRpcApiRequest(M.trackClientEvent,{name:r,appUrl:s,userTelegramId:u,data:i({},n||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(p.sessionId),clientId:this.storage.getValue(p.clientId),isMiniApp:Boolean(null==(l=window.Telegram)?void 0:l.initDataUnsafe),miniAppPlatform:null==(d=window.Telegram)||null==(d=d.WebApp)?void 0:d.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,r){return e.apply(this,arguments)}}(),r.initTracking=function(){var e=this;this.trackClientEvent(k.appOpened),this.on(u.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(k.walletConnected,{wallets:t})})),this.on(u.disconnect,(function(){e.trackClientEvent(k.walletDisconnected)}))},e}(),L=O;null!=(A=window.Grindery)&&A.WalletSDK&&window.Grindery.WalletSDK instanceof O||(window.Grindery=i({},window.Grindery||{},{WalletSDK:new O})),exports.GrinderyWalletSDK=L; //# sourceMappingURL=grindery-wallet-sdk.cjs.production.min.js.map diff --git a/docs/example/dist/grindery-wallet-sdk.cjs.production.min.js.map b/docs/example/dist/grindery-wallet-sdk.cjs.production.min.js.map index 746f52c..62f2988 100644 --- a/docs/example/dist/grindery-wallet-sdk.cjs.production.min.js.map +++ b/docs/example/dist/grindery-wallet-sdk.cjs.production.min.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.cjs.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","accountsChanged","address","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.cjs.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/index.ts","../src/classes/WalletSDK.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","address","accountsChanged","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file diff --git a/docs/example/dist/grindery-wallet-sdk.esm.js b/docs/example/dist/grindery-wallet-sdk.esm.js index 494d15e..4b1eace 100644 --- a/docs/example/dist/grindery-wallet-sdk.esm.js +++ b/docs/example/dist/grindery-wallet-sdk.esm.js @@ -1066,8 +1066,8 @@ var Provider = /*#__PURE__*/function (_EventEmitter) { return _this.rpc.sendAndWaitRpcRequest(ProviderMethodNames.eth_accounts, params ? Array.isArray(params) ? params : [params] : []); case 3: result = _context3.sent; - _this.emit(ProviderEvents.accountsChanged, result); _this.storage.setValue(SdkStorageKeys.address, result[0] || ''); + _this.emit(ProviderEvents.accountsChanged, result); return _context3.abrupt("return", result); case 9: _context3.prev = 9; @@ -1412,6 +1412,78 @@ var ClientEventNames; ClientEventNames["walletAddressRequested"] = "walletAddressRequested"; })(ClientEventNames || (ClientEventNames = {})); +/** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ +var WalletAPI = /*#__PURE__*/function () { + function WalletAPI() {} + var _proto = WalletAPI.prototype; + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + _proto.sendApiRequest = + /*#__PURE__*/ + function () { + var _sendApiRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(method, params) { + var storage, sessionId, address, response, json; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + storage = new SdkStorage(); + sessionId = storage.getValue(SdkStorageKeys.sessionId); + address = storage.getValue(SdkStorageKeys.address); + if (!(!sessionId || !address)) { + _context.next = 5; + break; + } + throw new Error('Not connected to the wallet'); + case 5: + _context.next = 7; + return fetch("https://wallet-api.grindery.com/v3", { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: "Bearer " + address + ":" + sessionId + }, + body: JSON.stringify({ + jsonrpc: '2.0', + id: 1, + method: method, + params: params || {} + }) + }); + case 7: + response = _context.sent; + if (response.ok) { + _context.next = 10; + break; + } + throw new Error("Failed to call " + method); + case 10: + _context.next = 12; + return response.json(); + case 12: + json = _context.sent; + return _context.abrupt("return", json.result); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + })); + function sendApiRequest(_x, _x2) { + return _sendApiRequest.apply(this, arguments); + } + return sendApiRequest; + }(); + return WalletAPI; +}(); + /** * @summary The Wallet SDK class * @since 0.2.0 @@ -1428,6 +1500,11 @@ var WalletSDK = /*#__PURE__*/function () { * @private */ this.storage = new SdkStorage(); + /** + * @summary The Grindery Wallet user + * @private + */ + this.user = null; if (config != null && config.appId || config != null && config.appUrl) { window.Grindery = _extends({}, window.Grindery || {}, { appId: config == null ? void 0 : config.appId, @@ -1693,7 +1770,50 @@ var WalletSDK = /*#__PURE__*/function () { _proto.removeListener = function removeListener(event, callback) { this.provider.removeListener(event, callback); return this; - }; + } + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */; + _proto.getUser = + /*#__PURE__*/ + function () { + var _getUser = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() { + var api; + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (this.user) { + _context7.next = 11; + break; + } + api = new WalletAPI(); + _context7.prev = 2; + _context7.next = 5; + return api.sendApiRequest('gw_getMe'); + case 5: + this.user = _context7.sent; + _context7.next = 11; + break; + case 8: + _context7.prev = 8; + _context7.t0 = _context7["catch"](2); + throw new Error(_context7.t0 instanceof Error ? _context7.t0.message : 'Failed to fetch user information'); + case 11: + return _context7.abrupt("return", this.user); + case 12: + case "end": + return _context7.stop(); + } + }, _callee7, this, [[2, 8]]); + })); + function getUser() { + return _getUser.apply(this, arguments); + } + return getUser; + }(); /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider @@ -1720,11 +1840,12 @@ var WalletSDK = /*#__PURE__*/function () { _proto.handlePairing = function handlePairing(_ref) { var _window$Telegram; var shortToken = _ref.shortToken, + connectUrl = _ref.connectUrl, connectUrlBrowser = _ref.connectUrlBrowser; var WebApp = (_window$Telegram = window.Telegram) == null ? void 0 : _window$Telegram.WebApp; - var redirectUrl = "https://walletconnect.grindery.com/connect/wc?uri=" + shortToken; - if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown') { - WebApp.openTelegramLink(connectUrlBrowser); + var redirectUrl = connectUrlBrowser || "https://www.grindery.com/connect/wc?uri=" + shortToken; + if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown' && connectUrl) { + WebApp.openTelegramLink(connectUrl); } else { window.open(redirectUrl, '_blank'); } @@ -1739,18 +1860,18 @@ var WalletSDK = /*#__PURE__*/function () { _proto.trackClientEvent = /*#__PURE__*/ function () { - var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(name, data) { + var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(name, data) { var _window$Grindery, _window$Telegram2; var appUrl, appId, userTelegramId, _window$Telegram3, _window$Telegram4, _window$Telegram5, rpc; - return _regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: appUrl = ((_window$Grindery = window.Grindery) == null ? void 0 : _window$Grindery.appUrl) || window.location.origin; appId = getAppId(); userTelegramId = (_window$Telegram2 = window.Telegram) == null || (_window$Telegram2 = _window$Telegram2.WebApp) == null || (_window$Telegram2 = _window$Telegram2.initDataUnsafe) == null || (_window$Telegram2 = _window$Telegram2.user) == null ? void 0 : _window$Telegram2.id; - _context7.prev = 3; + _context8.prev = 3; rpc = new Rpc(); - _context7.next = 7; + _context8.next = 7; return rpc.sendRpcApiRequest(RpcMethodNames.trackClientEvent, { name: name, appUrl: appUrl, @@ -1767,16 +1888,16 @@ var WalletSDK = /*#__PURE__*/function () { }) }); case 7: - _context7.next = 11; + _context8.next = 11; break; case 9: - _context7.prev = 9; - _context7.t0 = _context7["catch"](3); + _context8.prev = 9; + _context8.t0 = _context8["catch"](3); case 11: case "end": - return _context7.stop(); + return _context8.stop(); } - }, _callee7, this, [[3, 9]]); + }, _callee8, this, [[3, 9]]); })); function trackClientEvent(_x5, _x6) { return _trackClientEvent.apply(this, arguments); diff --git a/docs/example/dist/grindery-wallet-sdk.esm.js.map b/docs/example/dist/grindery-wallet-sdk.esm.js.map index 51e8d36..7a5aba6 100644 --- a/docs/example/dist/grindery-wallet-sdk.esm.js.map +++ b/docs/example/dist/grindery-wallet-sdk.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.esm.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","accountsChanged","address","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.esm.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","address","accountsChanged","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file diff --git a/docs/example/dist/grindery-wallet-sdk.umd.development.js b/docs/example/dist/grindery-wallet-sdk.umd.development.js index 8cca20a..c055f93 100644 --- a/docs/example/dist/grindery-wallet-sdk.umd.development.js +++ b/docs/example/dist/grindery-wallet-sdk.umd.development.js @@ -1072,8 +1072,8 @@ return _this.rpc.sendAndWaitRpcRequest(ProviderMethodNames.eth_accounts, params ? Array.isArray(params) ? params : [params] : []); case 3: result = _context3.sent; - _this.emit(ProviderEvents.accountsChanged, result); _this.storage.setValue(SdkStorageKeys.address, result[0] || ''); + _this.emit(ProviderEvents.accountsChanged, result); return _context3.abrupt("return", result); case 9: _context3.prev = 9; @@ -1418,6 +1418,78 @@ ClientEventNames["walletAddressRequested"] = "walletAddressRequested"; })(ClientEventNames || (ClientEventNames = {})); + /** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ + var WalletAPI = /*#__PURE__*/function () { + function WalletAPI() {} + var _proto = WalletAPI.prototype; + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + _proto.sendApiRequest = + /*#__PURE__*/ + function () { + var _sendApiRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(method, params) { + var storage, sessionId, address, response, json; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + storage = new SdkStorage(); + sessionId = storage.getValue(SdkStorageKeys.sessionId); + address = storage.getValue(SdkStorageKeys.address); + if (!(!sessionId || !address)) { + _context.next = 5; + break; + } + throw new Error('Not connected to the wallet'); + case 5: + _context.next = 7; + return fetch("https://wallet-api.grindery.com/v3", { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: "Bearer " + address + ":" + sessionId + }, + body: JSON.stringify({ + jsonrpc: '2.0', + id: 1, + method: method, + params: params || {} + }) + }); + case 7: + response = _context.sent; + if (response.ok) { + _context.next = 10; + break; + } + throw new Error("Failed to call " + method); + case 10: + _context.next = 12; + return response.json(); + case 12: + json = _context.sent; + return _context.abrupt("return", json.result); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + })); + function sendApiRequest(_x, _x2) { + return _sendApiRequest.apply(this, arguments); + } + return sendApiRequest; + }(); + return WalletAPI; + }(); + /** * @summary The Wallet SDK class * @since 0.2.0 @@ -1434,6 +1506,11 @@ * @private */ this.storage = new SdkStorage(); + /** + * @summary The Grindery Wallet user + * @private + */ + this.user = null; if (config != null && config.appId || config != null && config.appUrl) { window.Grindery = _extends({}, window.Grindery || {}, { appId: config == null ? void 0 : config.appId, @@ -1699,7 +1776,50 @@ _proto.removeListener = function removeListener(event, callback) { this.provider.removeListener(event, callback); return this; - }; + } + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */; + _proto.getUser = + /*#__PURE__*/ + function () { + var _getUser = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() { + var api; + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (this.user) { + _context7.next = 11; + break; + } + api = new WalletAPI(); + _context7.prev = 2; + _context7.next = 5; + return api.sendApiRequest('gw_getMe'); + case 5: + this.user = _context7.sent; + _context7.next = 11; + break; + case 8: + _context7.prev = 8; + _context7.t0 = _context7["catch"](2); + throw new Error(_context7.t0 instanceof Error ? _context7.t0.message : 'Failed to fetch user information'); + case 11: + return _context7.abrupt("return", this.user); + case 12: + case "end": + return _context7.stop(); + } + }, _callee7, this, [[2, 8]]); + })); + function getUser() { + return _getUser.apply(this, arguments); + } + return getUser; + }(); /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider @@ -1726,11 +1846,12 @@ _proto.handlePairing = function handlePairing(_ref) { var _window$Telegram; var shortToken = _ref.shortToken, + connectUrl = _ref.connectUrl, connectUrlBrowser = _ref.connectUrlBrowser; var WebApp = (_window$Telegram = window.Telegram) == null ? void 0 : _window$Telegram.WebApp; - var redirectUrl = "https://walletconnect.grindery.com/connect/wc?uri=" + shortToken; - if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown') { - WebApp.openTelegramLink(connectUrlBrowser); + var redirectUrl = connectUrlBrowser || "https://www.grindery.com/connect/wc?uri=" + shortToken; + if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown' && connectUrl) { + WebApp.openTelegramLink(connectUrl); } else { window.open(redirectUrl, '_blank'); } @@ -1745,18 +1866,18 @@ _proto.trackClientEvent = /*#__PURE__*/ function () { - var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(name, data) { + var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(name, data) { var _window$Grindery, _window$Telegram2; var appUrl, appId, userTelegramId, _window$Telegram3, _window$Telegram4, _window$Telegram5, rpc; - return _regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: appUrl = ((_window$Grindery = window.Grindery) == null ? void 0 : _window$Grindery.appUrl) || window.location.origin; appId = getAppId(); userTelegramId = (_window$Telegram2 = window.Telegram) == null || (_window$Telegram2 = _window$Telegram2.WebApp) == null || (_window$Telegram2 = _window$Telegram2.initDataUnsafe) == null || (_window$Telegram2 = _window$Telegram2.user) == null ? void 0 : _window$Telegram2.id; - _context7.prev = 3; + _context8.prev = 3; rpc = new Rpc(); - _context7.next = 7; + _context8.next = 7; return rpc.sendRpcApiRequest(RpcMethodNames.trackClientEvent, { name: name, appUrl: appUrl, @@ -1773,16 +1894,16 @@ }) }); case 7: - _context7.next = 11; + _context8.next = 11; break; case 9: - _context7.prev = 9; - _context7.t0 = _context7["catch"](3); + _context8.prev = 9; + _context8.t0 = _context8["catch"](3); case 11: case "end": - return _context7.stop(); + return _context8.stop(); } - }, _callee7, this, [[3, 9]]); + }, _callee8, this, [[3, 9]]); })); function trackClientEvent(_x5, _x6) { return _trackClientEvent.apply(this, arguments); diff --git a/docs/example/dist/grindery-wallet-sdk.umd.development.js.map b/docs/example/dist/grindery-wallet-sdk.umd.development.js.map index 66bf303..4e26803 100644 --- a/docs/example/dist/grindery-wallet-sdk.umd.development.js.map +++ b/docs/example/dist/grindery-wallet-sdk.umd.development.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.umd.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","accountsChanged","address","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.umd.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","address","accountsChanged","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file diff --git a/docs/example/dist/grindery-wallet-sdk.umd.production.min.js b/docs/example/dist/grindery-wallet-sdk.umd.production.min.js index 39d5250..8f75fc3 100644 --- a/docs/example/dist/grindery-wallet-sdk.umd.production.min.js +++ b/docs/example/dist/grindery-wallet-sdk.umd.production.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["grindery-wallet-sdk"]={})}(this,(function(e){"use strict";function t(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(t=function(){return!!e})()}function n(){n=function(){return t};var e,t={},r=Object.prototype,i=r.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new O(r||[]);return o(i,"_invoke",{value:k(e,n,a)}),i}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function N(){}function m(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==r&&i.call(D,s)&&(I=D);var j=m.prototype=y.prototype=Object.create(I);function T(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function n(r,o,a,s){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var r;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}})}function k(t,n,r){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(r.method=o,r.arg=a;;){var s=r.delegate;if(s){var c=A(s,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===d)throw i=w,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=h(t,n,r);if("normal"===u.type){if(i=r.done?w:f,u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=w,r.method="throw",r.arg=u.arg)}}}function A(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,A(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=h(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var a=o.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function U(t){if(t||""===t){var n=t[s];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function n(){for(;++r<t.length;)if(i.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return N.prototype=m,o(j,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:N,configurable:!0}),N.displayName=p(m,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===N||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},t.awrap=function(e){return{__await:e}},T(x.prototype),p(x.prototype,c,(function(){return this})),t.AsyncIterator=x,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new x(l(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},T(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=U,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(L),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,i){return s.type="throw",s.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;L(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:U(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function r(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,c,"next",e)}function c(e){r(a,i,o,s,c,"throw",e)}s(void 0)}))}}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,c(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function u(e){var n="function"==typeof Map?new Map:void 0;return u=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,r)}function r(){return function(e,n,r){if(t())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(e.bind.apply(e,i));return r&&c(o,r.prototype),o}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)},u(e)}var p;!function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(p||(p={}));var l,h=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var n=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,n)}return this},t.emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,n[0]),this.events.get(e).forEach((function(e){e.apply(void 0,n)}))),this},e}(),d=function(){for(var e,t="",n=document.querySelectorAll("[data-app-id]"),r=0;r<n.length;r++){var i=n[r],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},f=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},g={uuid:f(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},w=function(e){function t(t,n,r){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=n,i.data=r,i}return a(t,e),t}(u(Error)),v={PairingFailed:new w("Pairing failed",4900),Disconnected:new w("Disconnected",4900),UnsupportedMethod:new w("Unsupported Method",4200),Unauthorized:new w("Unauthorized",4100),NoResult:new w("No result",4900),NoAppId:new w("App ID is required",4900),UserRejected:new w("User Rejected Request",4001),ChainDisconnected:new w("Chain Disconnected",4901)},y=function(e){return e instanceof w?new w(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new w(e.message||"Unknown error",4900,e):new w("Unknown error",4900,e)},N=["eip155:137","eip155:56","eip155:204"],m=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},I=function(e){return"eip155:"+parseInt(e,16)},M="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(l||(l={}));var D,j=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var n=this.getSnapshot();return n[e]=t,this.saveSnapshot(n),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||f(),chainId:this.getSnapshot().chainId||N[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(M)||"{}")}catch(e){throw localStorage.setItem(M,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(M,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(D||(D={}));var T,x=function(){function e(){}var t=e.prototype;return t.sendAndWaitRpcRequest=function(){var e=i(n().mark((function e(t,r,i){var o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(t,r);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t.sendRpcRequest=function(){var e=i(n().mark((function e(t,r){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new j,e.next=3,this.sendRpcApiRequest(D.request,{sessionId:i.getValue(l.sessionId),scope:i.getValue(l.chainId),request:{method:t,params:r}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.waitRpcRequest=function(){var e=i(n().mark((function e(t,r){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(D.waitForRequestResult,{requestToken:t,timeout:r});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.sendRpcApiRequest=function(){var e=i(n().mark((function e(t,r){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+t,params:r||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new w(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw v.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new w(e.t0.message,500,e.t0);case 18:throw new w("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,n){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(T||(T={}));var k,A=function(e){function t(){var t,r,o,a,s,c,u,h,f;return(r=e.call(this)||this).isGrinderyWallet=!0,r.storage=new j,r.rpc=new x,r.switchChain=function(){var e=i(n().mark((function e(t){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=I(i=t.chainId),N.includes(o)){e.next=4;break}throw y(v.ChainDisconnected);case 4:return r.storage.setValue(l.chainId,o),r.emit(p.chainChanged,{chainId:i}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.methods=((t={})[T.eth_requestAccounts]=(f=i(n().mark((function e(t){var i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,r.request({method:T.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),r.storage.setValue(l.sessionId,"");case 10:if(!r.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:r.storage.getValue(l.pairingToken)});case 14:if(i=e.sent,r.storage.clear(),r.storage.setValue(l.sessionId,i.session.sessionId),i.session.sessionId){e.next=19;break}throw v.PairingFailed;case 19:return e.next=21,r.request({method:T.eth_accounts,params:t||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),r.storage.clear();case 27:return e.prev=27,r.storage.clear(),e.next=31,r.rpc.sendRpcApiRequest(D.requestPairing,{appId:d(),clientId:r.storage.getValue(l.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw v.PairingFailed;case 34:return r.storage.setValue(l.pairingToken,o.pairingToken),r.storage.setValue(l.connectUrl,o.connectUrl),r.storage.setValue(l.connectUrlBrowser,o.connectUrlBrowser),r.storage.setValue(l.shortToken,o.shortToken),r.emit(p.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(r.storage.setValue(l.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw v.PairingFailed;case 45:return r.storage.setValue(l.pairingToken,""),r.storage.setValue(l.connectUrl,""),r.storage.setValue(l.connectUrlBrowser,""),r.storage.setValue(l.shortToken,""),e.next=51,r.request({method:T.eth_accounts,params:t||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),t[T.eth_accounts]=(h=i(n().mark((function e(t){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendAndWaitRpcRequest(T.eth_accounts,t?Array.isArray(t)?t:[t]:[]);case 3:return r.emit(p.accountsChanged,i=e.sent),r.storage.setValue(l.address,i[0]||""),e.abrupt("return",i);case 9:throw e.prev=9,e.t0=e.catch(0),y(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return h.apply(this,arguments)}),t[T.eth_sendTransaction]=(u=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(T.eth_sendTransaction,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return u.apply(this,arguments)}),t[T.personal_sign]=(c=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(T.personal_sign,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),t[T.gws_disconnect]=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendRpcApiRequest(D.disconnect,{sessionToken:r.storage.getValue(l.sessionId)});case 3:return t=e.sent,r.emit(p.disconnect,v.Disconnected),e.abrupt("return",t);case 8:throw e.prev=8,e.t0=e.catch(0),y(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),t[T.eth_chainId]=(s=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",m(r.storage.getValue(l.chainId)||N[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),t[T.wallet_addEthereumChain]=(a=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw y(v.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),t[T.wallet_switchEthereumChain]=(o=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.switchChain(t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),t),r.injectProvider(),r.listenForRequestProviderEvents(),r.announceProvider(),window.addEventListener("load",(function(){r.emit(p.connect,{chainId:m(r.storage.getValue(l.chainId)||N[0])}),r.restorePairing(),r.restoreSession()})),r}a(t,e);var r=t.prototype;return r.isConnected=function(){return!0},r.request=function(){var e=i(n().mark((function e(t){var r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.method,a=t.params,e.next=3,null==(r=(i=this.methods)[o])?void 0:r.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.restorePairing=function(){var e=i(n().mark((function e(){var t,r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),r=this.storage.getValue(l.sessionId),!t||r){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:t});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(l.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw v.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(l.address,a[0]||""),this.emit(p.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),r.restoreSession=function(){var e=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),!this.storage.getValue(l.sessionId)||t){e.next=11;break}return e.prev=3,e.next=6,this.request({method:T.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),r.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},r.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:g,provider:this})}))},r.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},t}(h);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(k||(k={}));var b,L=function(){function e(e){this.provider=void 0,this.storage=new j,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=o({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(l.chainId,this.storage.getValue(l.chainId)||N[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(p.pair,this.handlePairing)}var t=e.prototype;return t.isConnected=function(){return this.provider.isConnected()},t.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(l.pairingToken)&&!this.storage.getValue(l.sessionId)},t.connect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.disconnect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.sendTransaction=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.eth_sendTransaction,params:[t]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.signMessage=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.personal_sign,params:[t,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.switchChain=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.wallet_switchEthereumChain,params:{chainId:m(t)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getChain=function(){return this.storage.getValue(l.chainId)||N[0]},t.getUserWalletAddress=function(){var e=i(n().mark((function e(t){var r;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new x,this.trackClientEvent(k.walletAddressRequested,{userId:t}),e.next=4,r.sendRpcApiRequest(D.getUserWalletAddress,{appId:d(),userId:t});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.on=function(e,t){return this.provider.on(e,t),this},t.removeListener=function(e,t){return this.provider.removeListener(e,t),this},t.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof A&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof A&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new A),t},t.handlePairing=function(e){var t,n=null==(t=window.Telegram)?void 0:t.WebApp,r="https://walletconnect.grindery.com/connect/wc?uri="+e.shortToken;n&&n.openTelegramLink&&n.platform&&"unknown"!==n.platform?n.openTelegramLink(e.connectUrlBrowser):window.open(r,"_blank")},t.trackClientEvent=function(){var e=i(n().mark((function e(t,r){var i,a,s,c,u,p,h,f,g;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(i=window.Grindery)?void 0:i.appUrl)||window.location.origin,c=d(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new x,e.next=7,g.sendRpcApiRequest(D.trackClientEvent,{name:t,appUrl:s,userTelegramId:u,data:o({},r||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(l.sessionId),clientId:this.storage.getValue(l.clientId),isMiniApp:Boolean(null==(p=window.Telegram)?void 0:p.initDataUnsafe),miniAppPlatform:null==(h=window.Telegram)||null==(h=h.WebApp)?void 0:h.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,n){return e.apply(this,arguments)}}(),t.initTracking=function(){var e=this;this.trackClientEvent(k.appOpened),this.on(p.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(k.walletConnected,{wallets:t})})),this.on(p.disconnect,(function(){e.trackClientEvent(k.walletDisconnected)}))},e}(),O=L;null!=(b=window.Grindery)&&b.WalletSDK&&window.Grindery.WalletSDK instanceof L||(window.Grindery=o({},window.Grindery||{},{WalletSDK:new L})),e.GrinderyWalletSDK=O,Object.defineProperty(e,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["grindery-wallet-sdk"]={})}(this,(function(e){"use strict";function t(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(t=function(){return!!e})()}function n(){n=function(){return t};var e,t={},r=Object.prototype,i=r.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new L(r||[]);return o(i,"_invoke",{value:T(e,n,a)}),i}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function m(){}function N(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==r&&i.call(D,s)&&(I=D);var j=N.prototype=y.prototype=Object.create(I);function x(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(r,o,a,s){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var r;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}})}function T(t,n,r){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(r.method=o,r.arg=a;;){var s=r.delegate;if(s){var c=b(s,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===d)throw i=w,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=h(t,n,r);if("normal"===u.type){if(i=r.done?w:f,u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=w,r.method="throw",r.arg=u.arg)}}}function b(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,b(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=h(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var a=o.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function A(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(A,this),this.reset(!0)}function U(t){if(t||""===t){var n=t[s];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function n(){for(;++r<t.length;)if(i.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return m.prototype=N,o(j,"constructor",{value:N,configurable:!0}),o(N,"constructor",{value:m,configurable:!0}),m.displayName=p(N,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,N):(e.__proto__=N,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},t.awrap=function(e){return{__await:e}},x(k.prototype),p(k.prototype,c,(function(){return this})),t.AsyncIterator=k,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new k(l(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=U,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,i){return s.type="throw",s.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;O(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:U(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function r(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,c,"next",e)}function c(e){r(a,i,o,s,c,"throw",e)}s(void 0)}))}}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,c(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function u(e){var n="function"==typeof Map?new Map:void 0;return u=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,r)}function r(){return function(e,n,r){if(t())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(e.bind.apply(e,i));return r&&c(o,r.prototype),o}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)},u(e)}var p;!function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(p||(p={}));var l,h=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var n=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,n)}return this},t.emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,n[0]),this.events.get(e).forEach((function(e){e.apply(void 0,n)}))),this},e}(),d=function(){for(var e,t="",n=document.querySelectorAll("[data-app-id]"),r=0;r<n.length;r++){var i=n[r],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},f=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},g={uuid:f(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},w=function(e){function t(t,n,r){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=n,i.data=r,i}return a(t,e),t}(u(Error)),v={PairingFailed:new w("Pairing failed",4900),Disconnected:new w("Disconnected",4900),UnsupportedMethod:new w("Unsupported Method",4200),Unauthorized:new w("Unauthorized",4100),NoResult:new w("No result",4900),NoAppId:new w("App ID is required",4900),UserRejected:new w("User Rejected Request",4001),ChainDisconnected:new w("Chain Disconnected",4901)},y=function(e){return e instanceof w?new w(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new w(e.message||"Unknown error",4900,e):new w("Unknown error",4900,e)},m=["eip155:137","eip155:56","eip155:204"],N=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},I=function(e){return"eip155:"+parseInt(e,16)},M="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(l||(l={}));var D,j=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var n=this.getSnapshot();return n[e]=t,this.saveSnapshot(n),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||f(),chainId:this.getSnapshot().chainId||m[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(M)||"{}")}catch(e){throw localStorage.setItem(M,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(M,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(D||(D={}));var x,k=function(){function e(){}var t=e.prototype;return t.sendAndWaitRpcRequest=function(){var e=i(n().mark((function e(t,r,i){var o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(t,r);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t.sendRpcRequest=function(){var e=i(n().mark((function e(t,r){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new j,e.next=3,this.sendRpcApiRequest(D.request,{sessionId:i.getValue(l.sessionId),scope:i.getValue(l.chainId),request:{method:t,params:r}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.waitRpcRequest=function(){var e=i(n().mark((function e(t,r){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(D.waitForRequestResult,{requestToken:t,timeout:r});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.sendRpcApiRequest=function(){var e=i(n().mark((function e(t,r){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+t,params:r||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new w(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw v.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new w(e.t0.message,500,e.t0);case 18:throw new w("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,n){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(x||(x={}));var T,b=function(e){function t(){var t,r,o,a,s,c,u,h,f;return(r=e.call(this)||this).isGrinderyWallet=!0,r.storage=new j,r.rpc=new k,r.switchChain=function(){var e=i(n().mark((function e(t){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=I(i=t.chainId),m.includes(o)){e.next=4;break}throw y(v.ChainDisconnected);case 4:return r.storage.setValue(l.chainId,o),r.emit(p.chainChanged,{chainId:i}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.methods=((t={})[x.eth_requestAccounts]=(f=i(n().mark((function e(t){var i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,r.request({method:x.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),r.storage.setValue(l.sessionId,"");case 10:if(!r.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:r.storage.getValue(l.pairingToken)});case 14:if(i=e.sent,r.storage.clear(),r.storage.setValue(l.sessionId,i.session.sessionId),i.session.sessionId){e.next=19;break}throw v.PairingFailed;case 19:return e.next=21,r.request({method:x.eth_accounts,params:t||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),r.storage.clear();case 27:return e.prev=27,r.storage.clear(),e.next=31,r.rpc.sendRpcApiRequest(D.requestPairing,{appId:d(),clientId:r.storage.getValue(l.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw v.PairingFailed;case 34:return r.storage.setValue(l.pairingToken,o.pairingToken),r.storage.setValue(l.connectUrl,o.connectUrl),r.storage.setValue(l.connectUrlBrowser,o.connectUrlBrowser),r.storage.setValue(l.shortToken,o.shortToken),r.emit(p.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(r.storage.setValue(l.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw v.PairingFailed;case 45:return r.storage.setValue(l.pairingToken,""),r.storage.setValue(l.connectUrl,""),r.storage.setValue(l.connectUrlBrowser,""),r.storage.setValue(l.shortToken,""),e.next=51,r.request({method:x.eth_accounts,params:t||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),t[x.eth_accounts]=(h=i(n().mark((function e(t){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendAndWaitRpcRequest(x.eth_accounts,t?Array.isArray(t)?t:[t]:[]);case 3:return r.storage.setValue(l.address,(i=e.sent)[0]||""),r.emit(p.accountsChanged,i),e.abrupt("return",i);case 9:throw e.prev=9,e.t0=e.catch(0),y(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return h.apply(this,arguments)}),t[x.eth_sendTransaction]=(u=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(x.eth_sendTransaction,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return u.apply(this,arguments)}),t[x.personal_sign]=(c=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(x.personal_sign,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),t[x.gws_disconnect]=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendRpcApiRequest(D.disconnect,{sessionToken:r.storage.getValue(l.sessionId)});case 3:return t=e.sent,r.emit(p.disconnect,v.Disconnected),e.abrupt("return",t);case 8:throw e.prev=8,e.t0=e.catch(0),y(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),t[x.eth_chainId]=(s=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",N(r.storage.getValue(l.chainId)||m[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),t[x.wallet_addEthereumChain]=(a=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw y(v.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),t[x.wallet_switchEthereumChain]=(o=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.switchChain(t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),t),r.injectProvider(),r.listenForRequestProviderEvents(),r.announceProvider(),window.addEventListener("load",(function(){r.emit(p.connect,{chainId:N(r.storage.getValue(l.chainId)||m[0])}),r.restorePairing(),r.restoreSession()})),r}a(t,e);var r=t.prototype;return r.isConnected=function(){return!0},r.request=function(){var e=i(n().mark((function e(t){var r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.method,a=t.params,e.next=3,null==(r=(i=this.methods)[o])?void 0:r.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.restorePairing=function(){var e=i(n().mark((function e(){var t,r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),r=this.storage.getValue(l.sessionId),!t||r){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:t});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(l.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw v.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(l.address,a[0]||""),this.emit(p.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),r.restoreSession=function(){var e=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),!this.storage.getValue(l.sessionId)||t){e.next=11;break}return e.prev=3,e.next=6,this.request({method:x.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),r.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},r.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:g,provider:this})}))},r.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},t}(h);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(T||(T={}));var A,O=function(){function e(){}return e.prototype.sendApiRequest=function(){var e=i(n().mark((function e(t,r){var i,o,a,s;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=new j,o=i.getValue(l.sessionId),a=i.getValue(l.address),o&&a){e.next=5;break}throw new Error("Not connected to the wallet");case 5:return e.next=7,fetch("https://wallet-api.grindery.com/v3",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+a+":"+o},body:JSON.stringify({jsonrpc:"2.0",id:1,method:t,params:r||{}})});case 7:if((s=e.sent).ok){e.next=10;break}throw new Error("Failed to call "+t);case 10:return e.next=12,s.json();case 12:return e.abrupt("return",e.sent.result);case 14:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),e}(),L=function(){function e(e){this.provider=void 0,this.storage=new j,this.user=null,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=o({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(l.chainId,this.storage.getValue(l.chainId)||m[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(p.pair,this.handlePairing)}var t=e.prototype;return t.isConnected=function(){return this.provider.isConnected()},t.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(l.pairingToken)&&!this.storage.getValue(l.sessionId)},t.connect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.disconnect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.sendTransaction=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.eth_sendTransaction,params:[t]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.signMessage=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.personal_sign,params:[t,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.switchChain=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.wallet_switchEthereumChain,params:{chainId:N(t)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getChain=function(){return this.storage.getValue(l.chainId)||m[0]},t.getUserWalletAddress=function(){var e=i(n().mark((function e(t){var r;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new k,this.trackClientEvent(T.walletAddressRequested,{userId:t}),e.next=4,r.sendRpcApiRequest(D.getUserWalletAddress,{appId:d(),userId:t});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.on=function(e,t){return this.provider.on(e,t),this},t.removeListener=function(e,t){return this.provider.removeListener(e,t),this},t.getUser=function(){var e=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.user){e.next=11;break}return t=new O,e.prev=2,e.next=5,t.sendApiRequest("gw_getMe");case 5:this.user=e.sent,e.next=11;break;case 8:throw e.prev=8,e.t0=e.catch(2),new Error(e.t0 instanceof Error?e.t0.message:"Failed to fetch user information");case 11:return e.abrupt("return",this.user);case 12:case"end":return e.stop()}}),e,this,[[2,8]])})));return function(){return e.apply(this,arguments)}}(),t.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof b&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof b&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new b),t},t.handlePairing=function(e){var t,n=e.connectUrl,r=null==(t=window.Telegram)?void 0:t.WebApp,i=e.connectUrlBrowser||"https://www.grindery.com/connect/wc?uri="+e.shortToken;r&&r.openTelegramLink&&r.platform&&"unknown"!==r.platform&&n?r.openTelegramLink(n):window.open(i,"_blank")},t.trackClientEvent=function(){var e=i(n().mark((function e(t,r){var i,a,s,c,u,p,h,f,g;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(i=window.Grindery)?void 0:i.appUrl)||window.location.origin,c=d(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new k,e.next=7,g.sendRpcApiRequest(D.trackClientEvent,{name:t,appUrl:s,userTelegramId:u,data:o({},r||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(l.sessionId),clientId:this.storage.getValue(l.clientId),isMiniApp:Boolean(null==(p=window.Telegram)?void 0:p.initDataUnsafe),miniAppPlatform:null==(h=window.Telegram)||null==(h=h.WebApp)?void 0:h.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,n){return e.apply(this,arguments)}}(),t.initTracking=function(){var e=this;this.trackClientEvent(T.appOpened),this.on(p.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(T.walletConnected,{wallets:t})})),this.on(p.disconnect,(function(){e.trackClientEvent(T.walletDisconnected)}))},e}(),U=L;null!=(A=window.Grindery)&&A.WalletSDK&&window.Grindery.WalletSDK instanceof L||(window.Grindery=o({},window.Grindery||{},{WalletSDK:new L})),e.GrinderyWalletSDK=U,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=grindery-wallet-sdk.umd.production.min.js.map diff --git a/docs/example/dist/grindery-wallet-sdk.umd.production.min.js.map b/docs/example/dist/grindery-wallet-sdk.umd.production.min.js.map index e45a821..e35b6f9 100644 --- a/docs/example/dist/grindery-wallet-sdk.umd.production.min.js.map +++ b/docs/example/dist/grindery-wallet-sdk.umd.production.min.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.umd.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","accountsChanged","address","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.umd.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/index.ts","../src/classes/WalletSDK.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","address","accountsChanged","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file diff --git a/docs/example/dist/utils/user.d.ts b/docs/example/dist/utils/user.d.ts new file mode 100644 index 0000000..2bf8f15 --- /dev/null +++ b/docs/example/dist/utils/user.d.ts @@ -0,0 +1,8 @@ +export type User = { + userTelegramID: string; + userName: string; + userHandle: string; + patchwallet: string; + dateAdded: string; + photoUrl?: string; +}; diff --git a/docs/example/main.js b/docs/example/main.js index af06d6d..a222831 100644 --- a/docs/example/main.js +++ b/docs/example/main.js @@ -84,6 +84,11 @@ const showConnectedWallet = (address, target) => { Switch chain to ${newChainName} </button> </div> + <div class="mt-4"> + <button id="getUser" class="py-2 px-4 bg-blue-500 text-white rounded-xl disabled:opacity-50"> + Get user data + </button> + </div> <div class="mt-4"> <button id="gws_disconnect" class="py-2 px-4 bg-red-500 text-white rounded-xl disabled:opacity-50"> Disconnect wallet @@ -182,6 +187,7 @@ const listenWalletButtonsClicks = (address, target) => { const signButton = target.querySelector('#personal_sign'); const sendButton = target.querySelector('#eth_sendTransaction'); const switchChainButton = target.querySelector('#wallet_switchEthereumChain'); + const getUserButton = target.querySelector('#getUser'); const disconnectButton = target.querySelector('#gws_disconnect'); if (signButton) { signButton.addEventListener('click', (event) => @@ -198,6 +204,21 @@ const listenWalletButtonsClicks = (address, target) => { onSwitchChainButtonclick(event, switchChainButton) ); } + if (getUserButton) { + getUserButton.addEventListener('click', (event) => { + getUserButton.disabled = true; + WalletSDK.getUser() + .then((user) => { + alert(JSON.stringify(user)); + getUserButton.disabled = false; + }) + .catch((error) => { + console.error('getUser', error); + alert('Error: ' + error.message); + getUserButton.disabled = false; + }); + }); + } if (disconnectButton) { disconnectButton.addEventListener('click', (event) => onDisconnectButtonClick(event, disconnectButton, target) @@ -209,9 +230,10 @@ const onPairing = (data, target) => { if (!target) { return; } - const redirectUrl = data.shortToken - ? `https://walletconnect.grindery.com/connect/wc?uri=${data.shortToken}` - : data.connectUrlBrowser || data.connectUrl || ''; + const redirectUrl = + data.connectUrlBrowser || data.shortToken + ? `https://wallet.grindery.com/connect/wc?uri=${data.shortToken}` + : ''; if (redirectUrl) { target.innerHTML = ` <p class="text-center mb-4">Approve wallet connection in Grindery Bot</p> diff --git a/docs/functions/classes_ProviderError.newProviderError.html b/docs/functions/classes_ProviderError.newProviderError.html index 2d8b08d..0c34575 100644 --- a/docs/functions/classes_ProviderError.newProviderError.html +++ b/docs/functions/classes_ProviderError.newProviderError.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>newProviderError | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_ProviderError.html">classes/ProviderError</a></li><li><a href="classes_ProviderError.newProviderError.html">newProviderError</a></li></ul><h1>Function newProviderError</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="newProviderError" class="tsd-anchor"></a><span class="tsd-kind-call-signature">new<wbr/>Provider<wbr/>Error</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">error</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><a href="#newProviderError" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">error</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/ProviderError.ts#L29">src/classes/ProviderError.ts:29</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>newProviderError | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_ProviderError.html">classes/ProviderError</a></li><li><a href="classes_ProviderError.newProviderError.html">newProviderError</a></li></ul><h1>Function newProviderError</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="newProviderError" class="tsd-anchor"></a><span class="tsd-kind-call-signature">new<wbr/>Provider<wbr/>Error</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">error</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><a href="#newProviderError" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">error</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/ProviderError.ts#L29">src/classes/ProviderError.ts:29</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/functions/utils_chains.hexChainId.html b/docs/functions/utils_chains.hexChainId.html index 4658b5a..cb68644 100644 --- a/docs/functions/utils_chains.hexChainId.html +++ b/docs/functions/utils_chains.hexChainId.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>hexChainId | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_chains.html">utils/chains</a></li><li><a href="utils_chains.hexChainId.html">hexChainId</a></li></ul><h1>Function hexChainId</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="hexChainId" class="tsd-anchor"></a><span class="tsd-kind-call-signature">hex<wbr/>Chain<wbr/>Id</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">chainId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#hexChainId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">chainId</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/chains.ts#L11">src/utils/chains.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>hexChainId | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_chains.html">utils/chains</a></li><li><a href="utils_chains.hexChainId.html">hexChainId</a></li></ul><h1>Function hexChainId</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="hexChainId" class="tsd-anchor"></a><span class="tsd-kind-call-signature">hex<wbr/>Chain<wbr/>Id</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">chainId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#hexChainId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">chainId</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/chains.ts#L11">src/utils/chains.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/functions/utils_chains.unhexChainId.html b/docs/functions/utils_chains.unhexChainId.html index dfb25c7..7d7f628 100644 --- a/docs/functions/utils_chains.unhexChainId.html +++ b/docs/functions/utils_chains.unhexChainId.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>unhexChainId | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_chains.html">utils/chains</a></li><li><a href="utils_chains.unhexChainId.html">unhexChainId</a></li></ul><h1>Function unhexChainId</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="unhexChainId" class="tsd-anchor"></a><span class="tsd-kind-call-signature">unhex<wbr/>Chain<wbr/>Id</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">hexChainId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#unhexChainId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">hexChainId</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/chains.ts#L15">src/utils/chains.ts:15</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>unhexChainId | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_chains.html">utils/chains</a></li><li><a href="utils_chains.unhexChainId.html">unhexChainId</a></li></ul><h1>Function unhexChainId</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="unhexChainId" class="tsd-anchor"></a><span class="tsd-kind-call-signature">unhex<wbr/>Chain<wbr/>Id</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">hexChainId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#unhexChainId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">hexChainId</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/chains.ts#L15">src/utils/chains.ts:15</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/functions/utils_getAppId.getAppId.html b/docs/functions/utils_getAppId.getAppId.html index b0f1c89..b4e2f6e 100644 --- a/docs/functions/utils_getAppId.getAppId.html +++ b/docs/functions/utils_getAppId.getAppId.html @@ -1,3 +1,3 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getAppId | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_getAppId.html">utils/getAppId</a></li><li><a href="utils_getAppId.getAppId.html">getAppId</a></li></ul><h1>Function getAppId</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getAppId" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>App<wbr/>Id</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#getAppId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><p>The app id</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getAppId | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_getAppId.html">utils/getAppId</a></li><li><a href="utils_getAppId.getAppId.html">getAppId</a></li></ul><h1>Function getAppId</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getAppId" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>App<wbr/>Id</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#getAppId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><p>The app id</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Get the app id from the script tag or window object</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/getAppId.ts#L5">src/utils/getAppId.ts:5</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/getAppId.ts#L5">src/utils/getAppId.ts:5</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/functions/utils_uuid.uuid.html b/docs/functions/utils_uuid.uuid.html index c3192df..0c710f9 100644 --- a/docs/functions/utils_uuid.uuid.html +++ b/docs/functions/utils_uuid.uuid.html @@ -1,3 +1,3 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>uuid | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_uuid.html">utils/uuid</a></li><li><a href="utils_uuid.uuid.html">uuid</a></li></ul><h1>Function uuid</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="uuid" class="tsd-anchor"></a><span class="tsd-kind-call-signature">uuid</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#uuid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><p>The UUID</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>uuid | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_uuid.html">utils/uuid</a></li><li><a href="utils_uuid.uuid.html">uuid</a></li></ul><h1>Function uuid</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="uuid" class="tsd-anchor"></a><span class="tsd-kind-call-signature">uuid</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#uuid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><p>The UUID</p> <div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Generates a Version 4 (pseudorandom) UUID</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/uuid.ts#L5">src/utils/uuid.ts:5</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/uuid.ts#L5">src/utils/uuid.ts:5</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 8fa5387..f3e8aab 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>Grindery Wallet SDK - v0.4.2</h2></div><h2>Class Hierarchy</h2><ul class="tsd-full-hierarchy"><li><a id="classes/EventEmitter.EventEmitter" class="tsd-anchor"></a><a href="classes/classes_EventEmitter.EventEmitter.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-128"></use></svg>EventEmitter</a><ul><li><a id="classes/Provider.Provider" class="tsd-anchor"></a><a href="classes/classes_Provider.Provider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-128"></use></svg>Provider</a><ul></ul></li></ul></li></ul></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="index.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>Grindery Wallet SDK - v0.5.0</h2></div><h2>Class Hierarchy</h2><ul class="tsd-full-hierarchy"><li><a id="classes/EventEmitter.EventEmitter" class="tsd-anchor"></a><a href="classes/classes_EventEmitter.EventEmitter.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-128"></use></svg>EventEmitter</a><ul><li><a id="classes/Provider.Provider" class="tsd-anchor"></a><a href="classes/classes_Provider.Provider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-128"></use></svg>Provider</a><ul></ul></li></ul></li></ul></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="index.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index dea3443..f6fc744 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,4 +1,4 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>Grindery Wallet SDK - v0.4.2</h2></div><div class="tsd-panel tsd-typography"><p><strong>Grindery Wallet SDK</strong> is a JS library that provides a reliable, secure, and seamless connection from your dapp to the <a href="https://www.grindery.com">Grindery Smart-Wallet</a>.</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>Grindery Wallet SDK - v0.5.0</h2></div><div class="tsd-panel tsd-typography"><p><strong>Grindery Wallet SDK</strong> is a JS library that provides a reliable, secure, and seamless connection from your dapp to the <a href="https://www.grindery.com">Grindery Smart-Wallet</a>.</p> <img src="cover.png" alt="Grindery Wallet Beta" style="max-width: 100%; width: 100%; height: auto;" /> <p><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/package.json#L4"><img src="https://img.shields.io/github/package-json/version/grindery-io/grindery-wallet-sdk" alt="GitHub package.json dynamic"></a> @@ -23,6 +23,7 @@ <li><a href="#md:sending-transactions">Sending transactions</a></li> <li><a href="#md:signing">Signing</a></li> <li><a href="#md:chain-switching">Chain switching</a></li> +<li><a href="#md:getting-user-information">Getting user information</a></li> </ul> </li> <li><a href="#md:advanced-usage">Advanced usage</a><ul> @@ -109,6 +110,9 @@ <p>To get the current network use <a href="https://grindery-io.github.io/grindery-wallet-sdk/classes/classes_WalletSDK.WalletSDK.html#getChain"><code>getChain()</code></a> method, once the wallet is connected:</p> <pre><code class="language-typescript"><span class="hl-11">WalletSDK</span><span class="hl-6">.</span><span class="hl-5">on</span><span class="hl-6">(</span><span class="hl-7">'accountsChanged'</span><span class="hl-6">, () </span><span class="hl-8">=></span><span class="hl-6"> {</span><br/><span class="hl-6"> </span><span class="hl-11">console</span><span class="hl-6">.</span><span class="hl-5">log</span><span class="hl-6">(</span><span class="hl-7">'chainId'</span><span class="hl-6">, </span><span class="hl-11">WalletSDK</span><span class="hl-6">.</span><span class="hl-5">getChain</span><span class="hl-6">());</span><br/><span class="hl-6">});</span> </code><button>Copy</button></pre> +<a id="md:getting-user-information" class="tsd-anchor"></a><h2><a href="#md:getting-user-information">Getting user information</a></h2><p>To get information about connected Grindery Wallet User use <a href="https://grindery-io.github.io/grindery-wallet-sdk/classes/classes_WalletSDK.WalletSDK.html#getUser"><code>getUser()</code></a> method, once the wallet is connected:</p> +<pre><code class="language-typescript"><span class="hl-11">WalletSDK</span><span class="hl-6">.</span><span class="hl-5">on</span><span class="hl-6">(</span><span class="hl-7">'accountsChanged'</span><span class="hl-6">, </span><span class="hl-8">async</span><span class="hl-6"> () </span><span class="hl-8">=></span><span class="hl-6"> {</span><br/><span class="hl-6"> </span><span class="hl-11">console</span><span class="hl-6">.</span><span class="hl-5">log</span><span class="hl-6">(</span><span class="hl-7">'user'</span><span class="hl-6">, </span><span class="hl-9">await</span><span class="hl-6"> </span><span class="hl-11">WalletSDK</span><span class="hl-6">.</span><span class="hl-5">getUser</span><span class="hl-6">());</span><br/><span class="hl-6">});</span> +</code><button>Copy</button></pre> <a id="md:advanced-usage" class="tsd-anchor"></a><h1><a href="#md:advanced-usage">Advanced usage</a></h1><a id="md:full-documentation" class="tsd-anchor"></a><h2><a href="#md:full-documentation">Full documentation</a></h2><p>See full documentation here: <a href="https://grindery-io.github.io/grindery-wallet-sdk">https://grindery-io.github.io/grindery-wallet-sdk</a></p> <a id="md:injected-ethereum-provider" class="tsd-anchor"></a><h2><a href="#md:injected-ethereum-provider">Injected Ethereum Provider</a></h2><p>Grindery Wallet SDK automatically injects Ethereum Provider API as specified by <a href="https://eips.ethereum.org/EIPS/eip-1193">EIP-1193</a>.</p> <p>Provider API can be accessed via <code>window.ethereum</code> or <code>window.Grindery.WalletSDK.provider</code>.</p> @@ -156,4 +160,4 @@ <a id="md:sdk-development-and-building" class="tsd-anchor"></a><h1><a href="#md:sdk-development-and-building">SDK Development and building</a></h1><p>The SDK library compiled using <a href="https://github.com/weiran-zsd/dts-cli">DTS tool</a> (a fork of <a href="https://tsdx.io/">TSDX</a>).</p> <p>See full <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/DEVELOPMENT.md">development documentation here</a>.</p> <a id="md:license" class="tsd-anchor"></a><h1><a href="#md:license">License</a></h1><p>MIT</p> -</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><ul><li><a href="#md:table-of-contents"><span>Table of <wbr/>Contents:</span></a></li></ul><a href="#md:example-implementation"><span>Example implementation</span></a><a href="#md:installing-sdk"><span>Installing SDK</span></a><ul><li><a href="#md:obtain-app-id"><span>Obtain <wbr/>App ID</span></a></li><li><a href="#md:browser"><span>Browser</span></a></li><li><ul><li><a href="#md:cdn"><span>CDN</span></a></li><li><a href="#md:download"><span>Download</span></a></li></ul></li><li><a href="#md:node"><span>Node</span></a></li></ul><a href="#md:basic-usage"><span>Basic usage</span></a><ul><li><a href="#md:server-connection"><span>Server connection</span></a></li><li><a href="#md:wallet-connection"><span>Wallet connection</span></a></li><li><a href="#md:silently-getting-wallet-address"><span>Silently getting wallet address</span></a></li><li><a href="#md:sending-transactions"><span>Sending transactions</span></a></li><li><a href="#md:signing"><span>Signing</span></a></li><li><a href="#md:chain-switching"><span>Chain switching</span></a></li></ul><a href="#md:advanced-usage"><span>Advanced usage</span></a><ul><li><a href="#md:full-documentation"><span>Full documentation</span></a></li><li><a href="#md:injected-ethereum-provider"><span>Injected <wbr/>Ethereum <wbr/>Provider</span></a></li><li><ul><li><a href="#md:multiple-injected-providers"><span>Multiple injected providers</span></a></li><li><a href="#md:provider-methods"><span>Provider <wbr/>Methods</span></a></li><li><ul><li><a href="#md:method-eth_requestaccounts"><span>Method: eth_<wbr/>request<wbr/>Accounts</span></a></li><li><a href="#md:method-eth_accounts"><span>Method: eth_<wbr/>accounts</span></a></li><li><a href="#md:method-eth_sendtransaction"><span>Method: eth_<wbr/>send<wbr/>Transaction</span></a></li><li><a href="#md:method-personal_sign"><span>Method: personal_<wbr/>sign</span></a></li><li><a href="#md:method-eth_chainid"><span>Method: eth_<wbr/>chain<wbr/>Id</span></a></li><li><a href="#md:method-wallet_switchethereumchain"><span>Method: wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span></a></li></ul></li></ul></li></ul><a href="#md:changelog"><span>Changelog</span></a><a href="#md:sdk-development-and-building"><span>SDK <wbr/>Development and building</span></a><a href="#md:license"><span>License</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="index.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><ul><li><a href="#md:table-of-contents"><span>Table of <wbr/>Contents:</span></a></li></ul><a href="#md:example-implementation"><span>Example implementation</span></a><a href="#md:installing-sdk"><span>Installing SDK</span></a><ul><li><a href="#md:obtain-app-id"><span>Obtain <wbr/>App ID</span></a></li><li><a href="#md:browser"><span>Browser</span></a></li><li><ul><li><a href="#md:cdn"><span>CDN</span></a></li><li><a href="#md:download"><span>Download</span></a></li></ul></li><li><a href="#md:node"><span>Node</span></a></li></ul><a href="#md:basic-usage"><span>Basic usage</span></a><ul><li><a href="#md:server-connection"><span>Server connection</span></a></li><li><a href="#md:wallet-connection"><span>Wallet connection</span></a></li><li><a href="#md:silently-getting-wallet-address"><span>Silently getting wallet address</span></a></li><li><a href="#md:sending-transactions"><span>Sending transactions</span></a></li><li><a href="#md:signing"><span>Signing</span></a></li><li><a href="#md:chain-switching"><span>Chain switching</span></a></li><li><a href="#md:getting-user-information"><span>Getting user information</span></a></li></ul><a href="#md:advanced-usage"><span>Advanced usage</span></a><ul><li><a href="#md:full-documentation"><span>Full documentation</span></a></li><li><a href="#md:injected-ethereum-provider"><span>Injected <wbr/>Ethereum <wbr/>Provider</span></a></li><li><ul><li><a href="#md:multiple-injected-providers"><span>Multiple injected providers</span></a></li><li><a href="#md:provider-methods"><span>Provider <wbr/>Methods</span></a></li><li><ul><li><a href="#md:method-eth_requestaccounts"><span>Method: eth_<wbr/>request<wbr/>Accounts</span></a></li><li><a href="#md:method-eth_accounts"><span>Method: eth_<wbr/>accounts</span></a></li><li><a href="#md:method-eth_sendtransaction"><span>Method: eth_<wbr/>send<wbr/>Transaction</span></a></li><li><a href="#md:method-personal_sign"><span>Method: personal_<wbr/>sign</span></a></li><li><a href="#md:method-eth_chainid"><span>Method: eth_<wbr/>chain<wbr/>Id</span></a></li><li><a href="#md:method-wallet_switchethereumchain"><span>Method: wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span></a></li></ul></li></ul></li></ul><a href="#md:changelog"><span>Changelog</span></a><a href="#md:sdk-development-and-building"><span>SDK <wbr/>Development and building</span></a><a href="#md:license"><span>License</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="index.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/interfaces/classes_Provider.ProviderRequestArguments.html b/docs/interfaces/classes_Provider.ProviderRequestArguments.html index 220bfc5..e789ff6 100644 --- a/docs/interfaces/classes_Provider.ProviderRequestArguments.html +++ b/docs/interfaces/classes_Provider.ProviderRequestArguments.html @@ -1,5 +1,5 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderRequestArguments | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderRequestArguments.html">ProviderRequestArguments</a></li></ul><h1>Interface ProviderRequestArguments</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery wallet provider request arguments</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderRequestArguments | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderRequestArguments.html">ProviderRequestArguments</a></li></ul><h1>Interface ProviderRequestArguments</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery wallet provider request arguments</p> <h4>Since</h4><p>0.2.0</p> -</div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">ProviderRequestArguments</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><a class="tsd-kind-property" href="classes_Provider.ProviderRequestArguments.html#method">method</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"eth_requestAccounts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_accounts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"personal_sign"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_sendTransaction"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"gws_disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_chainId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wallet_addEthereumChain"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wallet_switchEthereumChain"</span><span class="tsd-signature-symbol">; </span><br/><span> </span><a class="tsd-kind-property" href="classes_Provider.ProviderRequestArguments.html#params">params</a><span class="tsd-signature-symbol">?: </span><a href="../types/classes_Provider.ProviderRequestArgumentsParams.html" class="tsd-signature-type tsd-kind-type-alias">ProviderRequestArgumentsParams</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L62">src/classes/Provider.ts:62</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="classes_Provider.ProviderRequestArguments.html#method" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>method</span></a> +</div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">ProviderRequestArguments</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><a class="tsd-kind-property" href="classes_Provider.ProviderRequestArguments.html#method">method</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"eth_requestAccounts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_accounts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"personal_sign"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_sendTransaction"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"gws_disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_chainId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wallet_addEthereumChain"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wallet_switchEthereumChain"</span><span class="tsd-signature-symbol">; </span><br/><span> </span><a class="tsd-kind-property" href="classes_Provider.ProviderRequestArguments.html#params">params</a><span class="tsd-signature-symbol">?: </span><a href="../types/classes_Provider.ProviderRequestArgumentsParams.html" class="tsd-signature-type tsd-kind-type-alias">ProviderRequestArgumentsParams</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L62">src/classes/Provider.ts:62</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="classes_Provider.ProviderRequestArguments.html#method" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>method</span></a> <a href="classes_Provider.ProviderRequestArguments.html#params" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>params?</span></a> -</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="method" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagReadonly">Readonly</code> <span>method</span><a href="#method" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">method</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"eth_requestAccounts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_accounts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"personal_sign"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_sendTransaction"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"gws_disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_chainId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wallet_addEthereumChain"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wallet_switchEthereumChain"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L63">src/classes/Provider.ts:63</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="params" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <code class="tsd-tag ts-flagReadonly">Readonly</code> <span>params</span><a href="#params" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">params</span><span class="tsd-signature-symbol">?:</span> <a href="../types/classes_Provider.ProviderRequestArgumentsParams.html" class="tsd-signature-type tsd-kind-type-alias">ProviderRequestArgumentsParams</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L64">src/classes/Provider.ts:64</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#method" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>method</span></a><a href="#params" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>params</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="method" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagReadonly">Readonly</code> <span>method</span><a href="#method" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">method</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"eth_requestAccounts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_accounts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"personal_sign"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_sendTransaction"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"gws_disconnect"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"eth_chainId"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wallet_addEthereumChain"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wallet_switchEthereumChain"</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L63">src/classes/Provider.ts:63</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="params" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <code class="tsd-tag ts-flagReadonly">Readonly</code> <span>params</span><a href="#params" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">params</span><span class="tsd-signature-symbol">?:</span> <a href="../types/classes_Provider.ProviderRequestArgumentsParams.html" class="tsd-signature-type tsd-kind-type-alias">ProviderRequestArgumentsParams</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L64">src/classes/Provider.ts:64</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#method" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>method</span></a><a href="#params" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>params</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/interfaces/utils_providerInfo.EIP6963ProviderInfo.html b/docs/interfaces/utils_providerInfo.EIP6963ProviderInfo.html index 92b5f75..97ecd90 100644 --- a/docs/interfaces/utils_providerInfo.EIP6963ProviderInfo.html +++ b/docs/interfaces/utils_providerInfo.EIP6963ProviderInfo.html @@ -1,7 +1,7 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>EIP6963ProviderInfo | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_providerInfo.html">utils/providerInfo</a></li><li><a href="utils_providerInfo.EIP6963ProviderInfo.html">EIP6963ProviderInfo</a></li></ul><h1>Interface EIP6963ProviderInfo</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Represents the assets needed to display a wallet</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>EIP6963ProviderInfo | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_providerInfo.html">utils/providerInfo</a></li><li><a href="utils_providerInfo.EIP6963ProviderInfo.html">EIP6963ProviderInfo</a></li></ul><h1>Interface EIP6963ProviderInfo</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Represents the assets needed to display a wallet</p> </div><div class="tsd-comment tsd-typography"><h4>Since</h4><p>0.1.1</p> <h4>Link</h4><p><a href="https://eips.ethereum.org/EIPS/eip-6963#provider-info">https://eips.ethereum.org/EIPS/eip-6963#provider-info</a></p> -</div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">EIP6963ProviderInfo</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><a class="tsd-kind-property" href="utils_providerInfo.EIP6963ProviderInfo.html#icon">icon</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><a class="tsd-kind-property" href="utils_providerInfo.EIP6963ProviderInfo.html#name">name</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><a class="tsd-kind-property" href="utils_providerInfo.EIP6963ProviderInfo.html#rdns">rdns</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><a class="tsd-kind-property" href="utils_providerInfo.EIP6963ProviderInfo.html#uuid">uuid</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/providerInfo.ts#L9">src/utils/providerInfo.ts:9</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="utils_providerInfo.EIP6963ProviderInfo.html#icon" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>icon</span></a> +</div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">EIP6963ProviderInfo</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><a class="tsd-kind-property" href="utils_providerInfo.EIP6963ProviderInfo.html#icon">icon</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><a class="tsd-kind-property" href="utils_providerInfo.EIP6963ProviderInfo.html#name">name</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><a class="tsd-kind-property" href="utils_providerInfo.EIP6963ProviderInfo.html#rdns">rdns</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><a class="tsd-kind-property" href="utils_providerInfo.EIP6963ProviderInfo.html#uuid">uuid</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/providerInfo.ts#L9">src/utils/providerInfo.ts:9</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="utils_providerInfo.EIP6963ProviderInfo.html#icon" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>icon</span></a> <a href="utils_providerInfo.EIP6963ProviderInfo.html#name" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a> <a href="utils_providerInfo.EIP6963ProviderInfo.html#rdns" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>rdns</span></a> <a href="utils_providerInfo.EIP6963ProviderInfo.html#uuid" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>uuid</span></a> @@ -9,6 +9,6 @@ <h4>Link</h4><p><a href="https://eips.ethereum.org/EIPS/eip-6963#provider-info"> <p>The image SHOULD be a square with 96x96px minimum resolution. The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.</p> </div><div class="tsd-comment tsd-typography"><h4>Link</h4><p><a href="https://eips.ethereum.org/EIPS/eip-6963#imagesicons">https://eips.ethereum.org/EIPS/eip-6963#imagesicons</a></p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/providerInfo.ts#L20">src/utils/providerInfo.ts:20</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="name" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>name</span><a href="#name" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/providerInfo.ts#L11">src/utils/providerInfo.ts:11</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="rdns" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>rdns</span><a href="#rdns" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">rdns</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>MUST BE a valid RFC-1034 Domain Name</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/providerInfo.ts#L20">src/utils/providerInfo.ts:20</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="name" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>name</span><a href="#name" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/providerInfo.ts#L11">src/utils/providerInfo.ts:11</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="rdns" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>rdns</span><a href="#rdns" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">rdns</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>MUST BE a valid RFC-1034 Domain Name</p> </div><div class="tsd-comment tsd-typography"><h4>Link</h4><p><a href="https://eips.ethereum.org/EIPS/eip-6963#rdns">https://eips.ethereum.org/EIPS/eip-6963#rdns</a></p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/providerInfo.ts#L26">src/utils/providerInfo.ts:26</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="uuid" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>uuid</span><a href="#uuid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">uuid</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/providerInfo.ts#L10">src/utils/providerInfo.ts:10</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#icon" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>icon</span></a><a href="#name" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a><a href="#rdns" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>rdns</span></a><a href="#uuid" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>uuid</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/providerInfo.ts#L26">src/utils/providerInfo.ts:26</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="uuid" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>uuid</span><a href="#uuid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">uuid</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/providerInfo.ts#L10">src/utils/providerInfo.ts:10</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#icon" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>icon</span></a><a href="#name" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a><a href="#rdns" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>rdns</span></a><a href="#uuid" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>uuid</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/classes_EventEmitter.html b/docs/modules/classes_EventEmitter.html index f4285cd..ece9266 100644 --- a/docs/modules/classes_EventEmitter.html +++ b/docs/modules/classes_EventEmitter.html @@ -1,4 +1,4 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/EventEmitter | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_EventEmitter.html">classes/EventEmitter</a></li></ul><h1>Module classes/EventEmitter</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L1">src/classes/EventEmitter.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumerations</h3><div class="tsd-index-list"><a href="../enums/classes_EventEmitter.ProviderEvents.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-8"></use></svg><span>Provider<wbr/>Events</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/EventEmitter | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_EventEmitter.html">classes/EventEmitter</a></li></ul><h1>Module classes/EventEmitter</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L1">src/classes/EventEmitter.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumerations</h3><div class="tsd-index-list"><a href="../enums/classes_EventEmitter.ProviderEvents.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-8"></use></svg><span>Provider<wbr/>Events</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Classes</h3><div class="tsd-index-list"><a href="../classes/classes_EventEmitter.EventEmitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-128"></use></svg><span>Event<wbr/>Emitter</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="../types/classes_EventEmitter.ProviderEventName.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Provider<wbr/>Event<wbr/>Name</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/classes_Provider.ProviderRequestResults.html b/docs/modules/classes_Provider.ProviderRequestResults.html index 50a14c2..86e0980 100644 --- a/docs/modules/classes_Provider.ProviderRequestResults.html +++ b/docs/modules/classes_Provider.ProviderRequestResults.html @@ -1,4 +1,4 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderRequestResults | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li></ul><h1>Namespace ProviderRequestResults</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L35">src/classes/Provider.ts:35</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="../types/classes_Provider.ProviderRequestResults.disconnect.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>disconnect</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderRequestResults | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li></ul><h1>Namespace ProviderRequestResults</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L35">src/classes/Provider.ts:35</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="../types/classes_Provider.ProviderRequestResults.disconnect.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>disconnect</span></a> <a href="../types/classes_Provider.ProviderRequestResults.eth_accounts.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>eth_<wbr/>accounts</span></a> <a href="../types/classes_Provider.ProviderRequestResults.eth_chainId.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>eth_<wbr/>chain<wbr/>Id</span></a> <a href="../types/classes_Provider.ProviderRequestResults.eth_requestAccounts.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>eth_<wbr/>request<wbr/>Accounts</span></a> @@ -6,4 +6,4 @@ <a href="../types/classes_Provider.ProviderRequestResults.personal_sign.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>personal_<wbr/>sign</span></a> <a href="../types/classes_Provider.ProviderRequestResults.wallet_addEthereumChain.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>wallet_<wbr/>add<wbr/>Ethereum<wbr/>Chain</span></a> <a href="../types/classes_Provider.ProviderRequestResults.wallet_switchEthereumChain.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/classes_Provider.html b/docs/modules/classes_Provider.html index 198bdbd..05cc768 100644 --- a/docs/modules/classes_Provider.html +++ b/docs/modules/classes_Provider.html @@ -1,8 +1,8 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/Provider | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_Provider.html">classes/Provider</a></li></ul><h1>Module classes/Provider</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L1">src/classes/Provider.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Namespaces</h3><div class="tsd-index-list"><a href="classes_Provider.ProviderRequestResults.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-4"></use></svg><span>Provider<wbr/>Request<wbr/>Results</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/Provider | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_Provider.html">classes/Provider</a></li></ul><h1>Module classes/Provider</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L1">src/classes/Provider.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Namespaces</h3><div class="tsd-index-list"><a href="classes_Provider.ProviderRequestResults.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-4"></use></svg><span>Provider<wbr/>Request<wbr/>Results</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumerations</h3><div class="tsd-index-list"><a href="../enums/classes_Provider.ProviderMethodNames.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-8"></use></svg><span>Provider<wbr/>Method<wbr/>Names</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Classes</h3><div class="tsd-index-list"><a href="../classes/classes_Provider.Provider.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-128"></use></svg><span>Provider</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Interfaces</h3><div class="tsd-index-list"><a href="../interfaces/classes_Provider.ProviderRequestArguments.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-256"></use></svg><span>Provider<wbr/>Request<wbr/>Arguments</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="../types/classes_Provider.ProviderMethodName.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Provider<wbr/>Method<wbr/>Name</span></a> <a href="../types/classes_Provider.ProviderMethods.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Provider<wbr/>Methods</span></a> <a href="../types/classes_Provider.ProviderRequestArgumentsParams.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Provider<wbr/>Request<wbr/>Arguments<wbr/>Params</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/classes_ProviderError.html b/docs/modules/classes_ProviderError.html index 7d122ad..0ae9db2 100644 --- a/docs/modules/classes_ProviderError.html +++ b/docs/modules/classes_ProviderError.html @@ -1,4 +1,4 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/ProviderError | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_ProviderError.html">classes/ProviderError</a></li></ul><h1>Module classes/ProviderError</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/ProviderError.ts#L1">src/classes/ProviderError.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Classes</h3><div class="tsd-index-list"><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-128"></use></svg><span>Provider<wbr/>Error</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/ProviderError | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_ProviderError.html">classes/ProviderError</a></li></ul><h1>Module classes/ProviderError</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/ProviderError.ts#L1">src/classes/ProviderError.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Classes</h3><div class="tsd-index-list"><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-128"></use></svg><span>Provider<wbr/>Error</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Variables</h3><div class="tsd-index-list"><a href="../variables/classes_ProviderError.ProviderErrors.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-32"></use></svg><span>Provider<wbr/>Errors</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Functions</h3><div class="tsd-index-list"><a href="../functions/classes_ProviderError.newProviderError.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-64"></use></svg><span>new<wbr/>Provider<wbr/>Error</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/classes_Rpc.RpcRequestResults.html b/docs/modules/classes_Rpc.RpcRequestResults.html index 65399eb..c59791c 100644 --- a/docs/modules/classes_Rpc.RpcRequestResults.html +++ b/docs/modules/classes_Rpc.RpcRequestResults.html @@ -1,10 +1,10 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>RpcRequestResults | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_Rpc.html">classes/Rpc</a></li><li><a href="classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li></ul><h1>Namespace RpcRequestResults</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery RPC API request results</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>RpcRequestResults | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_Rpc.html">classes/Rpc</a></li><li><a href="classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li></ul><h1>Namespace RpcRequestResults</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery RPC API request results</p> <h4>Since</h4><p>0.2.0</p> -</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L21">src/classes/Rpc.ts:21</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="../types/classes_Rpc.RpcRequestResults.disconnect.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>disconnect</span></a> +</div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L21">src/classes/Rpc.ts:21</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="../types/classes_Rpc.RpcRequestResults.disconnect.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>disconnect</span></a> <a href="../types/classes_Rpc.RpcRequestResults.getUserWalletAddress.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>get<wbr/>User<wbr/>Wallet<wbr/>Address</span></a> <a href="../types/classes_Rpc.RpcRequestResults.request.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>request</span></a> <a href="../types/classes_Rpc.RpcRequestResults.requestPairing.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>request<wbr/>Pairing</span></a> <a href="../types/classes_Rpc.RpcRequestResults.trackClientEvent.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>track<wbr/>Client<wbr/>Event</span></a> <a href="../types/classes_Rpc.RpcRequestResults.waitForPairingResult.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>wait<wbr/>For<wbr/>Pairing<wbr/>Result</span></a> <a href="../types/classes_Rpc.RpcRequestResults.waitForRequestResult.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>wait<wbr/>For<wbr/>Request<wbr/>Result</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/classes_Rpc.html b/docs/modules/classes_Rpc.html index 9730056..0a1e339 100644 --- a/docs/modules/classes_Rpc.html +++ b/docs/modules/classes_Rpc.html @@ -1,4 +1,4 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/Rpc | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_Rpc.html">classes/Rpc</a></li></ul><h1>Module classes/Rpc</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L1">src/classes/Rpc.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Namespaces</h3><div class="tsd-index-list"><a href="classes_Rpc.RpcRequestResults.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-4"></use></svg><span>Rpc<wbr/>Request<wbr/>Results</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/Rpc | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_Rpc.html">classes/Rpc</a></li></ul><h1>Module classes/Rpc</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L1">src/classes/Rpc.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Namespaces</h3><div class="tsd-index-list"><a href="classes_Rpc.RpcRequestResults.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-4"></use></svg><span>Rpc<wbr/>Request<wbr/>Results</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumerations</h3><div class="tsd-index-list"><a href="../enums/classes_Rpc.RpcMethodNames.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-8"></use></svg><span>Rpc<wbr/>Method<wbr/>Names</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Classes</h3><div class="tsd-index-list"><a href="../classes/classes_Rpc.Rpc.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-128"></use></svg><span>Rpc</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/classes_SdkStorage.html b/docs/modules/classes_SdkStorage.html index e5cda5d..9327d9b 100644 --- a/docs/modules/classes_SdkStorage.html +++ b/docs/modules/classes_SdkStorage.html @@ -1,5 +1,5 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/SdkStorage | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_SdkStorage.html">classes/SdkStorage</a></li></ul><h1>Module classes/SdkStorage</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L1">src/classes/SdkStorage.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumerations</h3><div class="tsd-index-list"><a href="../enums/classes_SdkStorage.SdkStorageKeys.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-8"></use></svg><span>Sdk<wbr/>Storage<wbr/>Keys</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/SdkStorage | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_SdkStorage.html">classes/SdkStorage</a></li></ul><h1>Module classes/SdkStorage</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L1">src/classes/SdkStorage.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumerations</h3><div class="tsd-index-list"><a href="../enums/classes_SdkStorage.SdkStorageKeys.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-8"></use></svg><span>Sdk<wbr/>Storage<wbr/>Keys</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Classes</h3><div class="tsd-index-list"><a href="../classes/classes_SdkStorage.SdkStorage.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-128"></use></svg><span>Sdk<wbr/>Storage</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="../types/classes_SdkStorage.SdkStorageKey.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Sdk<wbr/>Storage<wbr/>Key</span></a> <a href="../types/classes_SdkStorage.SdkStorageSnapshot.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Sdk<wbr/>Storage<wbr/>Snapshot</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/classes_WalletAPI.html b/docs/modules/classes_WalletAPI.html new file mode 100644 index 0000000..3fee64c --- /dev/null +++ b/docs/modules/classes_WalletAPI.html @@ -0,0 +1,2 @@ +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/WalletAPI | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_WalletAPI.html">classes/WalletAPI</a></li></ul><h1>Module classes/WalletAPI</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletAPI.ts#L1">src/classes/WalletAPI.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Classes</h3><div class="tsd-index-list"><a href="../classes/classes_WalletAPI.WalletAPI.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-128"></use></svg><span>WalletAPI</span></a> +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/classes_WalletSDK.html b/docs/modules/classes_WalletSDK.html index e429ae7..ad6512d 100644 --- a/docs/modules/classes_WalletSDK.html +++ b/docs/modules/classes_WalletSDK.html @@ -1,3 +1,3 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/WalletSDK | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_WalletSDK.html">classes/WalletSDK</a></li></ul><h1>Module classes/WalletSDK</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L1">src/classes/WalletSDK.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Classes</h3><div class="tsd-index-list"><a href="../classes/classes_WalletSDK.WalletSDK.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-128"></use></svg><span>WalletSDK</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>classes/WalletSDK | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="classes_WalletSDK.html">classes/WalletSDK</a></li></ul><h1>Module classes/WalletSDK</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L1">src/classes/WalletSDK.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Classes</h3><div class="tsd-index-list"><a href="../classes/classes_WalletSDK.WalletSDK.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-128"></use></svg><span>WalletSDK</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="../types/classes_WalletSDK.WalletSDKConfig.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>WalletSDKConfig</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/utils_chains.html b/docs/modules/utils_chains.html index af49e0f..16b5508 100644 --- a/docs/modules/utils_chains.html +++ b/docs/modules/utils_chains.html @@ -1,4 +1,4 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/chains | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_chains.html">utils/chains</a></li></ul><h1>Module utils/chains</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/chains.ts#L1">src/utils/chains.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Variables</h3><div class="tsd-index-list"><a href="../variables/utils_chains.CHAINS.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-32"></use></svg><span>CHAINS</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/chains | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_chains.html">utils/chains</a></li></ul><h1>Module utils/chains</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/chains.ts#L1">src/utils/chains.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Variables</h3><div class="tsd-index-list"><a href="../variables/utils_chains.CHAINS.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-32"></use></svg><span>CHAINS</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Functions</h3><div class="tsd-index-list"><a href="../functions/utils_chains.hexChainId.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-64"></use></svg><span>hex<wbr/>Chain<wbr/>Id</span></a> <a href="../functions/utils_chains.unhexChainId.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-64"></use></svg><span>unhex<wbr/>Chain<wbr/>Id</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/utils_clientEvents.html b/docs/modules/utils_clientEvents.html index d501687..6cfe287 100644 --- a/docs/modules/utils_clientEvents.html +++ b/docs/modules/utils_clientEvents.html @@ -1,3 +1,3 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/clientEvents | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_clientEvents.html">utils/clientEvents</a></li></ul><h1>Module utils/clientEvents</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/clientEvents.ts#L1">src/utils/clientEvents.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumerations</h3><div class="tsd-index-list"><a href="../enums/utils_clientEvents.ClientEventNames.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-8"></use></svg><span>Client<wbr/>Event<wbr/>Names</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/clientEvents | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_clientEvents.html">utils/clientEvents</a></li></ul><h1>Module utils/clientEvents</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/clientEvents.ts#L1">src/utils/clientEvents.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Enumerations</h3><div class="tsd-index-list"><a href="../enums/utils_clientEvents.ClientEventNames.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-8"></use></svg><span>Client<wbr/>Event<wbr/>Names</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="../types/utils_clientEvents.ClientEventName.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Client<wbr/>Event<wbr/>Name</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/utils_getAppId.html b/docs/modules/utils_getAppId.html index 1ed0dd7..b3a3e1f 100644 --- a/docs/modules/utils_getAppId.html +++ b/docs/modules/utils_getAppId.html @@ -1,2 +1,2 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/getAppId | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_getAppId.html">utils/getAppId</a></li></ul><h1>Module utils/getAppId</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/getAppId.ts#L1">src/utils/getAppId.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Functions</h3><div class="tsd-index-list"><a href="../functions/utils_getAppId.getAppId.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-64"></use></svg><span>get<wbr/>App<wbr/>Id</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/getAppId | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_getAppId.html">utils/getAppId</a></li></ul><h1>Module utils/getAppId</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/getAppId.ts#L1">src/utils/getAppId.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Functions</h3><div class="tsd-index-list"><a href="../functions/utils_getAppId.getAppId.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-64"></use></svg><span>get<wbr/>App<wbr/>Id</span></a> +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/utils_providerInfo.html b/docs/modules/utils_providerInfo.html index 4e9793e..068b1b1 100644 --- a/docs/modules/utils_providerInfo.html +++ b/docs/modules/utils_providerInfo.html @@ -1,3 +1,3 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/providerInfo | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_providerInfo.html">utils/providerInfo</a></li></ul><h1>Module utils/providerInfo</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/providerInfo.ts#L1">src/utils/providerInfo.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Interfaces</h3><div class="tsd-index-list"><a href="../interfaces/utils_providerInfo.EIP6963ProviderInfo.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-256"></use></svg><span>EIP6963<wbr/>Provider<wbr/>Info</span></a> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/providerInfo | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_providerInfo.html">utils/providerInfo</a></li></ul><h1>Module utils/providerInfo</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/providerInfo.ts#L1">src/utils/providerInfo.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Interfaces</h3><div class="tsd-index-list"><a href="../interfaces/utils_providerInfo.EIP6963ProviderInfo.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-256"></use></svg><span>EIP6963<wbr/>Provider<wbr/>Info</span></a> </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Variables</h3><div class="tsd-index-list"><a href="../variables/utils_providerInfo.providerInfo.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-32"></use></svg><span>provider<wbr/>Info</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/utils_user.html b/docs/modules/utils_user.html new file mode 100644 index 0000000..ed8c3eb --- /dev/null +++ b/docs/modules/utils_user.html @@ -0,0 +1,2 @@ +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/user | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_user.html">utils/user</a></li></ul><h1>Module utils/user</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/user.ts#L1">src/utils/user.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="../types/utils_user.User.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>User</span></a> +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/modules/utils_uuid.html b/docs/modules/utils_uuid.html index 1bf3633..79730ab 100644 --- a/docs/modules/utils_uuid.html +++ b/docs/modules/utils_uuid.html @@ -1,2 +1,2 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/uuid | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_uuid.html">utils/uuid</a></li></ul><h1>Module utils/uuid</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/uuid.ts#L1">src/utils/uuid.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Functions</h3><div class="tsd-index-list"><a href="../functions/utils_uuid.uuid.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-64"></use></svg><span>uuid</span></a> -</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>utils/uuid | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="utils_uuid.html">utils/uuid</a></li></ul><h1>Module utils/uuid</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/uuid.ts#L1">src/utils/uuid.ts:1</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Functions</h3><div class="tsd-index-list"><a href="../functions/utils_uuid.uuid.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-64"></use></svg><span>uuid</span></a> +</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_EventEmitter.ProviderEventName.html b/docs/types/classes_EventEmitter.ProviderEventName.html index 2037a94..7f8076c 100644 --- a/docs/types/classes_EventEmitter.ProviderEventName.html +++ b/docs/types/classes_EventEmitter.ProviderEventName.html @@ -1,3 +1,3 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderEventName | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_EventEmitter.html">classes/EventEmitter</a></li><li><a href="classes_EventEmitter.ProviderEventName.html">ProviderEventName</a></li></ul><h1>Type alias ProviderEventName</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Provider<wbr/>Event<wbr/>Name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof </span><span class="tsd-signature-keyword">typeof </span><a href="../enums/classes_EventEmitter.ProviderEvents.html" class="tsd-signature-type tsd-kind-enum">ProviderEvents</a></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Provider event name</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderEventName | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_EventEmitter.html">classes/EventEmitter</a></li><li><a href="classes_EventEmitter.ProviderEventName.html">ProviderEventName</a></li></ul><h1>Type alias ProviderEventName</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Provider<wbr/>Event<wbr/>Name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof </span><span class="tsd-signature-keyword">typeof </span><a href="../enums/classes_EventEmitter.ProviderEvents.html" class="tsd-signature-type tsd-kind-enum">ProviderEvents</a></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>Provider event name</p> <h4>Since</h4><p>0.2.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/EventEmitter.ts#L20">src/classes/EventEmitter.ts:20</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/EventEmitter.ts#L20">src/classes/EventEmitter.ts:20</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderMethodName.html b/docs/types/classes_Provider.ProviderMethodName.html index 15a3c70..5e89c24 100644 --- a/docs/types/classes_Provider.ProviderMethodName.html +++ b/docs/types/classes_Provider.ProviderMethodName.html @@ -1,3 +1,3 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderMethodName | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderMethodName.html">ProviderMethodName</a></li></ul><h1>Type alias ProviderMethodName</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Provider<wbr/>Method<wbr/>Name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof </span><span class="tsd-signature-keyword">typeof </span><a href="../enums/classes_Provider.ProviderMethodNames.html" class="tsd-signature-type tsd-kind-enum">ProviderMethodNames</a></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery wallet provider method names</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderMethodName | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderMethodName.html">ProviderMethodName</a></li></ul><h1>Type alias ProviderMethodName</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Provider<wbr/>Method<wbr/>Name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof </span><span class="tsd-signature-keyword">typeof </span><a href="../enums/classes_Provider.ProviderMethodNames.html" class="tsd-signature-type tsd-kind-enum">ProviderMethodNames</a></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery wallet provider method names</p> <h4>Since</h4><p>0.2.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L50">src/classes/Provider.ts:50</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L50">src/classes/Provider.ts:50</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderMethods.html b/docs/types/classes_Provider.ProviderMethods.html index 1665b65..700780b 100644 --- a/docs/types/classes_Provider.ProviderMethods.html +++ b/docs/types/classes_Provider.ProviderMethods.html @@ -1,3 +1,3 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderMethods | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderMethods.html">ProviderMethods</a></li></ul><h1>Type alias ProviderMethods</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Provider<wbr/>Methods</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/><span> </span><span class="tsd-signature-symbol">[</span><span class="tsd-kind-type-parameter">name</span><span class="tsd-signature-keyword"> in </span><a href="../enums/classes_Provider.ProviderMethodNames.html" class="tsd-signature-type tsd-kind-enum">ProviderMethodNames</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">params</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery wallet provider methods</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderMethods | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderMethods.html">ProviderMethods</a></li></ul><h1>Type alias ProviderMethods</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Provider<wbr/>Methods</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/><span> </span><span class="tsd-signature-symbol">[</span><span class="tsd-kind-type-parameter">name</span><span class="tsd-signature-keyword"> in </span><a href="../enums/classes_Provider.ProviderMethodNames.html" class="tsd-signature-type tsd-kind-enum">ProviderMethodNames</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">params</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery wallet provider methods</p> <h4>Since</h4><p>0.2.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L13">src/classes/Provider.ts:13</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L13">src/classes/Provider.ts:13</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderRequestArgumentsParams.html b/docs/types/classes_Provider.ProviderRequestArgumentsParams.html index f4f914f..3fcf369 100644 --- a/docs/types/classes_Provider.ProviderRequestArgumentsParams.html +++ b/docs/types/classes_Provider.ProviderRequestArgumentsParams.html @@ -1,3 +1,3 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderRequestArgumentsParams | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderRequestArgumentsParams.html">ProviderRequestArgumentsParams</a></li></ul><h1>Type alias ProviderRequestArgumentsParams</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Provider<wbr/>Request<wbr/>Arguments<wbr/>Params</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">object</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery wallet provider request params</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderRequestArgumentsParams | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="classes_Provider.ProviderRequestArgumentsParams.html">ProviderRequestArgumentsParams</a></li></ul><h1>Type alias ProviderRequestArgumentsParams</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Provider<wbr/>Request<wbr/>Arguments<wbr/>Params</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">object</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>The Grindery wallet provider request params</p> <h4>Since</h4><p>0.2.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L56">src/classes/Provider.ts:56</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L56">src/classes/Provider.ts:56</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderRequestResults.disconnect.html b/docs/types/classes_Provider.ProviderRequestResults.disconnect.html index d99d9ed..7b7b601 100644 --- a/docs/types/classes_Provider.ProviderRequestResults.disconnect.html +++ b/docs/types/classes_Provider.ProviderRequestResults.disconnect.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>disconnect | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.disconnect.html">disconnect</a></li></ul><h1>Type alias disconnect</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">disconnect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L40">src/classes/Provider.ts:40</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>disconnect | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.disconnect.html">disconnect</a></li></ul><h1>Type alias disconnect</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">disconnect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L40">src/classes/Provider.ts:40</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderRequestResults.eth_accounts.html b/docs/types/classes_Provider.ProviderRequestResults.eth_accounts.html index c135587..ca4c3b2 100644 --- a/docs/types/classes_Provider.ProviderRequestResults.eth_accounts.html +++ b/docs/types/classes_Provider.ProviderRequestResults.eth_accounts.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>eth_accounts | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.eth_accounts.html">eth_accounts</a></li></ul><h1>Type alias eth_accounts</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">eth_<wbr/>accounts</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L36">src/classes/Provider.ts:36</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>eth_accounts | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.eth_accounts.html">eth_accounts</a></li></ul><h1>Type alias eth_accounts</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">eth_<wbr/>accounts</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L36">src/classes/Provider.ts:36</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderRequestResults.eth_chainId.html b/docs/types/classes_Provider.ProviderRequestResults.eth_chainId.html index c767ca4..767de33 100644 --- a/docs/types/classes_Provider.ProviderRequestResults.eth_chainId.html +++ b/docs/types/classes_Provider.ProviderRequestResults.eth_chainId.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>eth_chainId | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.eth_chainId.html">eth_chainId</a></li></ul><h1>Type alias eth_chainId</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">eth_<wbr/>chain<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L43">src/classes/Provider.ts:43</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>eth_chainId | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.eth_chainId.html">eth_chainId</a></li></ul><h1>Type alias eth_chainId</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">eth_<wbr/>chain<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L43">src/classes/Provider.ts:43</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderRequestResults.eth_requestAccounts.html b/docs/types/classes_Provider.ProviderRequestResults.eth_requestAccounts.html index 12da323..a95930e 100644 --- a/docs/types/classes_Provider.ProviderRequestResults.eth_requestAccounts.html +++ b/docs/types/classes_Provider.ProviderRequestResults.eth_requestAccounts.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>eth_requestAccounts | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.eth_requestAccounts.html">eth_requestAccounts</a></li></ul><h1>Type alias eth_requestAccounts</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">eth_<wbr/>request<wbr/>Accounts</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L37">src/classes/Provider.ts:37</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>eth_requestAccounts | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.eth_requestAccounts.html">eth_requestAccounts</a></li></ul><h1>Type alias eth_requestAccounts</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">eth_<wbr/>request<wbr/>Accounts</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L37">src/classes/Provider.ts:37</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderRequestResults.eth_sendTransaction.html b/docs/types/classes_Provider.ProviderRequestResults.eth_sendTransaction.html index f1ff60e..12f332a 100644 --- a/docs/types/classes_Provider.ProviderRequestResults.eth_sendTransaction.html +++ b/docs/types/classes_Provider.ProviderRequestResults.eth_sendTransaction.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>eth_sendTransaction | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.eth_sendTransaction.html">eth_sendTransaction</a></li></ul><h1>Type alias eth_sendTransaction</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">eth_<wbr/>send<wbr/>Transaction</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L39">src/classes/Provider.ts:39</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>eth_sendTransaction | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.eth_sendTransaction.html">eth_sendTransaction</a></li></ul><h1>Type alias eth_sendTransaction</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">eth_<wbr/>send<wbr/>Transaction</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L39">src/classes/Provider.ts:39</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderRequestResults.personal_sign.html b/docs/types/classes_Provider.ProviderRequestResults.personal_sign.html index 3a9c242..af6218d 100644 --- a/docs/types/classes_Provider.ProviderRequestResults.personal_sign.html +++ b/docs/types/classes_Provider.ProviderRequestResults.personal_sign.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>personal_sign | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.personal_sign.html">personal_sign</a></li></ul><h1>Type alias personal_sign</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">personal_<wbr/>sign</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L38">src/classes/Provider.ts:38</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>personal_sign | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.personal_sign.html">personal_sign</a></li></ul><h1>Type alias personal_sign</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">personal_<wbr/>sign</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L38">src/classes/Provider.ts:38</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderRequestResults.wallet_addEthereumChain.html b/docs/types/classes_Provider.ProviderRequestResults.wallet_addEthereumChain.html index 8b9f95b..ee386a2 100644 --- a/docs/types/classes_Provider.ProviderRequestResults.wallet_addEthereumChain.html +++ b/docs/types/classes_Provider.ProviderRequestResults.wallet_addEthereumChain.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>wallet_addEthereumChain | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.wallet_addEthereumChain.html">wallet_addEthereumChain</a></li></ul><h1>Type alias wallet_addEthereumChain</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">wallet_<wbr/>add<wbr/>Ethereum<wbr/>Chain</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">null</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L42">src/classes/Provider.ts:42</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>wallet_addEthereumChain | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.wallet_addEthereumChain.html">wallet_addEthereumChain</a></li></ul><h1>Type alias wallet_addEthereumChain</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">wallet_<wbr/>add<wbr/>Ethereum<wbr/>Chain</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">null</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L42">src/classes/Provider.ts:42</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Provider.ProviderRequestResults.wallet_switchEthereumChain.html b/docs/types/classes_Provider.ProviderRequestResults.wallet_switchEthereumChain.html index bf4682a..5ebad74 100644 --- a/docs/types/classes_Provider.ProviderRequestResults.wallet_switchEthereumChain.html +++ b/docs/types/classes_Provider.ProviderRequestResults.wallet_switchEthereumChain.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>wallet_switchEthereumChain | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.wallet_switchEthereumChain.html">wallet_switchEthereumChain</a></li></ul><h1>Type alias wallet_switchEthereumChain</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">null</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Provider.ts#L41">src/classes/Provider.ts:41</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>wallet_switchEthereumChain | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Provider.html">classes/Provider</a></li><li><a href="../modules/classes_Provider.ProviderRequestResults.html">ProviderRequestResults</a></li><li><a href="classes_Provider.ProviderRequestResults.wallet_switchEthereumChain.html">wallet_switchEthereumChain</a></li></ul><h1>Type alias wallet_switchEthereumChain</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">wallet_<wbr/>switch<wbr/>Ethereum<wbr/>Chain</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">null</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Provider.ts#L41">src/classes/Provider.ts:41</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Rpc.RpcRequestResults.disconnect.html b/docs/types/classes_Rpc.RpcRequestResults.disconnect.html index 4a0c085..210d29b 100644 --- a/docs/types/classes_Rpc.RpcRequestResults.disconnect.html +++ b/docs/types/classes_Rpc.RpcRequestResults.disconnect.html @@ -1,2 +1,2 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>disconnect | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.disconnect.html">disconnect</a></li></ul><h1>Type alias disconnect</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">disconnect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>disconnect</code> method result</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L65">src/classes/Rpc.ts:65</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>disconnect | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.disconnect.html">disconnect</a></li></ul><h1>Type alias disconnect</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">disconnect</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>disconnect</code> method result</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L65">src/classes/Rpc.ts:65</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Rpc.RpcRequestResults.getUserWalletAddress.html b/docs/types/classes_Rpc.RpcRequestResults.getUserWalletAddress.html index ad25d00..f1ccaba 100644 --- a/docs/types/classes_Rpc.RpcRequestResults.getUserWalletAddress.html +++ b/docs/types/classes_Rpc.RpcRequestResults.getUserWalletAddress.html @@ -1,2 +1,2 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getUserWalletAddress | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.getUserWalletAddress.html">getUserWalletAddress</a></li></ul><h1>Type alias getUserWalletAddress</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">get<wbr/>User<wbr/>Wallet<wbr/>Address</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>getUserWalletAddress</code> method result</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L70">src/classes/Rpc.ts:70</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getUserWalletAddress | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.getUserWalletAddress.html">getUserWalletAddress</a></li></ul><h1>Type alias getUserWalletAddress</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">get<wbr/>User<wbr/>Wallet<wbr/>Address</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>getUserWalletAddress</code> method result</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L70">src/classes/Rpc.ts:70</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Rpc.RpcRequestResults.request.html b/docs/types/classes_Rpc.RpcRequestResults.request.html index 317ffb1..43b5f02 100644 --- a/docs/types/classes_Rpc.RpcRequestResults.request.html +++ b/docs/types/classes_Rpc.RpcRequestResults.request.html @@ -1,2 +1,2 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>request | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.request.html">request</a></li></ul><h1>Type alias request</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">request</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">requestToken</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">request<wbr/>Token</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>request</code> method result</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L53">src/classes/Rpc.ts:53</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>request | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.request.html">request</a></li></ul><h1>Type alias request</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">request</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">requestToken</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">request<wbr/>Token</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>request</code> method result</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L53">src/classes/Rpc.ts:53</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Rpc.RpcRequestResults.requestPairing.html b/docs/types/classes_Rpc.RpcRequestResults.requestPairing.html index 8c11b18..f897ccb 100644 --- a/docs/types/classes_Rpc.RpcRequestResults.requestPairing.html +++ b/docs/types/classes_Rpc.RpcRequestResults.requestPairing.html @@ -1,2 +1,2 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>requestPairing | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.requestPairing.html">requestPairing</a></li></ul><h1>Type alias requestPairing</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">request<wbr/>Pairing</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">connectUrl</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">connectUrlBrowser</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">pairingToken</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">shortToken</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">connect<wbr/>Url</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">connect<wbr/>Url<wbr/>Browser</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">pairing<wbr/>Token</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">short<wbr/>Token</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>requestPairing</code> method result</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L43">src/classes/Rpc.ts:43</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>requestPairing | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.requestPairing.html">requestPairing</a></li></ul><h1>Type alias requestPairing</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">request<wbr/>Pairing</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">connectUrl</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">connectUrlBrowser</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">pairingToken</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">shortToken</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">connect<wbr/>Url</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">connect<wbr/>Url<wbr/>Browser</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">pairing<wbr/>Token</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">short<wbr/>Token</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>requestPairing</code> method result</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L43">src/classes/Rpc.ts:43</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Rpc.RpcRequestResults.trackClientEvent.html b/docs/types/classes_Rpc.RpcRequestResults.trackClientEvent.html index d834b5f..f6b75d5 100644 --- a/docs/types/classes_Rpc.RpcRequestResults.trackClientEvent.html +++ b/docs/types/classes_Rpc.RpcRequestResults.trackClientEvent.html @@ -1,2 +1,2 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>trackClientEvent | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.trackClientEvent.html">trackClientEvent</a></li></ul><h1>Type alias trackClientEvent</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">track<wbr/>Client<wbr/>Event</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">true</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>trackClientEvent</code> method result</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L75">src/classes/Rpc.ts:75</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>trackClientEvent | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.trackClientEvent.html">trackClientEvent</a></li></ul><h1>Type alias trackClientEvent</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">track<wbr/>Client<wbr/>Event</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">true</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>trackClientEvent</code> method result</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L75">src/classes/Rpc.ts:75</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Rpc.RpcRequestResults.waitForPairingResult.html b/docs/types/classes_Rpc.RpcRequestResults.waitForPairingResult.html index a998e60..6c8fddb 100644 --- a/docs/types/classes_Rpc.RpcRequestResults.waitForPairingResult.html +++ b/docs/types/classes_Rpc.RpcRequestResults.waitForPairingResult.html @@ -1,2 +1,2 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>waitForPairingResult | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.waitForPairingResult.html">waitForPairingResult</a></li></ul><h1>Type alias waitForPairingResult</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">wait<wbr/>For<wbr/>Pairing<wbr/>Result</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">session</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">expiry</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">namespaces</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span>[<span class="tsd-kind-index-signature">key</span>: <span class="tsd-signature-type">string</span>]<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">accounts</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">chains</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">sessionId</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">session</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">expiry</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">namespaces</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span>[<span class="tsd-kind-index-signature">key</span>: <span class="tsd-signature-type">string</span>]<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">accounts</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">chains</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">sessionId</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h5><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">expiry</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">namespaces</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span>[<span class="tsd-kind-index-signature">key</span>: <span class="tsd-signature-type">string</span>]<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">accounts</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">chains</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h5><ul class="tsd-parameters"><li class="tsd-parameter-index-signature"><h5><span class="tsd-signature-symbol">[</span><span class="tsd-kind-parameter">key</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">accounts</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">chains</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h5><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">accounts</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">chains</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></li></ul></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">session<wbr/>Id</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></li></ul></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>waitForPairingResult</code> method result</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L25">src/classes/Rpc.ts:25</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>waitForPairingResult | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.waitForPairingResult.html">waitForPairingResult</a></li></ul><h1>Type alias waitForPairingResult</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">wait<wbr/>For<wbr/>Pairing<wbr/>Result</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">session</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">expiry</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">namespaces</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span>[<span class="tsd-kind-index-signature">key</span>: <span class="tsd-signature-type">string</span>]<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">accounts</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">chains</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">sessionId</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">session</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">expiry</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">namespaces</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span>[<span class="tsd-kind-index-signature">key</span>: <span class="tsd-signature-type">string</span>]<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">accounts</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">chains</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">sessionId</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h5><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">expiry</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">namespaces</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span>[<span class="tsd-kind-index-signature">key</span>: <span class="tsd-signature-type">string</span>]<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">accounts</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">chains</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h5><ul class="tsd-parameters"><li class="tsd-parameter-index-signature"><h5><span class="tsd-signature-symbol">[</span><span class="tsd-kind-parameter">key</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">accounts</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">chains</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h5><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">accounts</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">chains</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">events</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">methods</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></li></ul></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">session<wbr/>Id</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></li></ul></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>waitForPairingResult</code> method result</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L25">src/classes/Rpc.ts:25</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_Rpc.RpcRequestResults.waitForRequestResult.html b/docs/types/classes_Rpc.RpcRequestResults.waitForRequestResult.html index 309a9e4..178e4b6 100644 --- a/docs/types/classes_Rpc.RpcRequestResults.waitForRequestResult.html +++ b/docs/types/classes_Rpc.RpcRequestResults.waitForRequestResult.html @@ -1,2 +1,2 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>waitForRequestResult | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.waitForRequestResult.html">waitForRequestResult</a></li></ul><h1>Type alias waitForRequestResult</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">wait<wbr/>For<wbr/>Request<wbr/>Result</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>waitForRequestResult</code> method result</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/Rpc.ts#L60">src/classes/Rpc.ts:60</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>waitForRequestResult | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_Rpc.html">classes/Rpc</a></li><li><a href="../modules/classes_Rpc.RpcRequestResults.html">RpcRequestResults</a></li><li><a href="classes_Rpc.RpcRequestResults.waitForRequestResult.html">waitForRequestResult</a></li></ul><h1>Type alias waitForRequestResult</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">wait<wbr/>For<wbr/>Request<wbr/>Result</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p><code>waitForRequestResult</code> method result</p> +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/Rpc.ts#L60">src/classes/Rpc.ts:60</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_SdkStorage.SdkStorageKey.html b/docs/types/classes_SdkStorage.SdkStorageKey.html index 2bb90a4..885041d 100644 --- a/docs/types/classes_SdkStorage.SdkStorageKey.html +++ b/docs/types/classes_SdkStorage.SdkStorageKey.html @@ -1,3 +1,3 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SdkStorageKey | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_SdkStorage.html">classes/SdkStorage</a></li><li><a href="classes_SdkStorage.SdkStorageKey.html">SdkStorageKey</a></li></ul><h1>Type alias SdkStorageKey</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Sdk<wbr/>Storage<wbr/>Key</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof </span><span class="tsd-signature-keyword">typeof </span><a href="../enums/classes_SdkStorage.SdkStorageKeys.html" class="tsd-signature-type tsd-kind-enum">SdkStorageKeys</a></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>SdkStorage key type</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SdkStorageKey | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_SdkStorage.html">classes/SdkStorage</a></li><li><a href="classes_SdkStorage.SdkStorageKey.html">SdkStorageKey</a></li></ul><h1>Type alias SdkStorageKey</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Sdk<wbr/>Storage<wbr/>Key</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof </span><span class="tsd-signature-keyword">typeof </span><a href="../enums/classes_SdkStorage.SdkStorageKeys.html" class="tsd-signature-type tsd-kind-enum">SdkStorageKeys</a></div><div class="tsd-comment tsd-typography"><h4>Summary</h4><p>SdkStorage key type</p> <h4>Since</h4><p>0.2.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L25">src/classes/SdkStorage.ts:25</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L25">src/classes/SdkStorage.ts:25</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_SdkStorage.SdkStorageSnapshot.html b/docs/types/classes_SdkStorage.SdkStorageSnapshot.html index 1d716ad..60191fd 100644 --- a/docs/types/classes_SdkStorage.SdkStorageSnapshot.html +++ b/docs/types/classes_SdkStorage.SdkStorageSnapshot.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SdkStorageSnapshot | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_SdkStorage.html">classes/SdkStorage</a></li><li><a href="classes_SdkStorage.SdkStorageSnapshot.html">SdkStorageSnapshot</a></li></ul><h1>Type alias SdkStorageSnapshot</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Sdk<wbr/>Storage<wbr/>Snapshot</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/><span> </span><span class="tsd-signature-symbol">[</span><span class="tsd-kind-type-parameter">key</span><span class="tsd-signature-keyword"> in </span><a href="../enums/classes_SdkStorage.SdkStorageKeys.html" class="tsd-signature-type tsd-kind-enum">SdkStorageKeys</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/SdkStorage.ts#L27">src/classes/SdkStorage.ts:27</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SdkStorageSnapshot | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_SdkStorage.html">classes/SdkStorage</a></li><li><a href="classes_SdkStorage.SdkStorageSnapshot.html">SdkStorageSnapshot</a></li></ul><h1>Type alias SdkStorageSnapshot</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Sdk<wbr/>Storage<wbr/>Snapshot</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/><span> </span><span class="tsd-signature-symbol">[</span><span class="tsd-kind-type-parameter">key</span><span class="tsd-signature-keyword"> in </span><a href="../enums/classes_SdkStorage.SdkStorageKeys.html" class="tsd-signature-type tsd-kind-enum">SdkStorageKeys</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/SdkStorage.ts#L27">src/classes/SdkStorage.ts:27</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/classes_WalletSDK.WalletSDKConfig.html b/docs/types/classes_WalletSDK.WalletSDKConfig.html index 80482a9..3962f69 100644 --- a/docs/types/classes_WalletSDK.WalletSDKConfig.html +++ b/docs/types/classes_WalletSDK.WalletSDKConfig.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WalletSDKConfig | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_WalletSDK.html">classes/WalletSDK</a></li><li><a href="classes_WalletSDK.WalletSDKConfig.html">WalletSDKConfig</a></li></ul><h1>Type alias WalletSDKConfig</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">WalletSDKConfig</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">appId</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">appUrl</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">app<wbr/>Id</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">app<wbr/>Url</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/WalletSDK.ts#L9">src/classes/WalletSDK.ts:9</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WalletSDKConfig | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_WalletSDK.html">classes/WalletSDK</a></li><li><a href="classes_WalletSDK.WalletSDKConfig.html">WalletSDKConfig</a></li></ul><h1>Type alias WalletSDKConfig</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">WalletSDKConfig</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">appId</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">appUrl</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">app<wbr/>Id</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">app<wbr/>Url</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/WalletSDK.ts#L11">src/classes/WalletSDK.ts:11</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/utils_clientEvents.ClientEventName.html b/docs/types/utils_clientEvents.ClientEventName.html index fbeaa3e..adda9af 100644 --- a/docs/types/utils_clientEvents.ClientEventName.html +++ b/docs/types/utils_clientEvents.ClientEventName.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ClientEventName | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_clientEvents.html">utils/clientEvents</a></li><li><a href="utils_clientEvents.ClientEventName.html">ClientEventName</a></li></ul><h1>Type alias ClientEventName</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Client<wbr/>Event<wbr/>Name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof </span><span class="tsd-signature-keyword">typeof </span><a href="../enums/utils_clientEvents.ClientEventNames.html" class="tsd-signature-type tsd-kind-enum">ClientEventNames</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/clientEvents.ts#L20">src/utils/clientEvents.ts:20</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ClientEventName | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_clientEvents.html">utils/clientEvents</a></li><li><a href="utils_clientEvents.ClientEventName.html">ClientEventName</a></li></ul><h1>Type alias ClientEventName</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Client<wbr/>Event<wbr/>Name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof </span><span class="tsd-signature-keyword">typeof </span><a href="../enums/utils_clientEvents.ClientEventNames.html" class="tsd-signature-type tsd-kind-enum">ClientEventNames</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/clientEvents.ts#L20">src/utils/clientEvents.ts:20</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/types/utils_user.User.html b/docs/types/utils_user.User.html new file mode 100644 index 0000000..8b75d1c --- /dev/null +++ b/docs/types/utils_user.User.html @@ -0,0 +1 @@ +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>User | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_user.html">utils/user</a></li><li><a href="utils_user.User.html">User</a></li></ul><h1>Type alias User</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">User</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">dateAdded</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">patchwallet</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">photoUrl</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">userHandle</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">userName</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">userTelegramID</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">date<wbr/>Added</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">patchwallet</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">photo<wbr/>Url</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">user<wbr/>Handle</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">user<wbr/>Name</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">user<wbr/>TelegramID</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/user.ts#L1">src/utils/user.ts:1</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/variables/classes_ProviderError.ProviderErrors.html b/docs/variables/classes_ProviderError.ProviderErrors.html index 9884d1c..ebb4782 100644 --- a/docs/variables/classes_ProviderError.ProviderErrors.html +++ b/docs/variables/classes_ProviderError.ProviderErrors.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderErrors | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_ProviderError.html">classes/ProviderError</a></li><li><a href="classes_ProviderError.ProviderErrors.html">ProviderErrors</a></li></ul><h1>Variable ProviderErrors<code class="tsd-tag ts-flagConst">Const</code> </h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Provider<wbr/>Errors</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">ChainDisconnected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">Disconnected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">NoAppId</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">NoResult</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">PairingFailed</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">Unauthorized</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">UnsupportedMethod</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">UserRejected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = ...</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">Chain<wbr/>Disconnected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">Disconnected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">No<wbr/>App<wbr/>Id</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">No<wbr/>Result</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">Pairing<wbr/>Failed</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">Unauthorized</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">Unsupported<wbr/>Method</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">User<wbr/>Rejected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/classes/ProviderError.ts#L18">src/classes/ProviderError.ts:18</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ProviderErrors | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/classes_ProviderError.html">classes/ProviderError</a></li><li><a href="classes_ProviderError.ProviderErrors.html">ProviderErrors</a></li></ul><h1>Variable ProviderErrors<code class="tsd-tag ts-flagConst">Const</code> </h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Provider<wbr/>Errors</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">ChainDisconnected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">Disconnected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">NoAppId</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">NoResult</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">PairingFailed</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">Unauthorized</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">UnsupportedMethod</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">UserRejected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = ...</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">Chain<wbr/>Disconnected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">Disconnected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">No<wbr/>App<wbr/>Id</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">No<wbr/>Result</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">Pairing<wbr/>Failed</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">Unauthorized</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">Unsupported<wbr/>Method</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">User<wbr/>Rejected</span><span class="tsd-signature-symbol">: </span><a href="../classes/classes_ProviderError.ProviderError.html" class="tsd-signature-type tsd-kind-class">ProviderError</a></h5></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/classes/ProviderError.ts#L18">src/classes/ProviderError.ts:18</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/variables/utils_chains.CHAINS.html b/docs/variables/utils_chains.CHAINS.html index fc3f525..332aa3c 100644 --- a/docs/variables/utils_chains.CHAINS.html +++ b/docs/variables/utils_chains.CHAINS.html @@ -1,4 +1,4 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>CHAINS | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_chains.html">utils/chains</a></li><li><a href="utils_chains.CHAINS.html">CHAINS</a></li></ul><h1>Variable CHAINS<code class="tsd-tag ts-flagConst">Const</code> </h1></div><div class="tsd-signature"><span class="tsd-kind-variable">CHAINS</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><div class="tsd-comment tsd-typography"><p>Supported chains list</p> +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>CHAINS | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_chains.html">utils/chains</a></li><li><a href="utils_chains.CHAINS.html">CHAINS</a></li></ul><h1>Variable CHAINS<code class="tsd-tag ts-flagConst">Const</code> </h1></div><div class="tsd-signature"><span class="tsd-kind-variable">CHAINS</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><div class="tsd-comment tsd-typography"><p>Supported chains list</p> </div><div class="tsd-comment tsd-typography"><h4>Description</h4><p>Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain</p> <h4>Since</h4><p>0.3.0</p> -</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/chains.ts#L9">src/utils/chains.ts:9</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/chains.ts#L9">src/utils/chains.ts:9</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/docs/variables/utils_providerInfo.providerInfo.html b/docs/variables/utils_providerInfo.providerInfo.html index ea747ab..39eb541 100644 --- a/docs/variables/utils_providerInfo.providerInfo.html +++ b/docs/variables/utils_providerInfo.providerInfo.html @@ -1 +1 @@ -<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>providerInfo | Grindery Wallet SDK - v0.4.2</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.4.2</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_providerInfo.html">utils/providerInfo</a></li><li><a href="utils_providerInfo.providerInfo.html">providerInfo</a></li></ul><h1>Variable providerInfo<code class="tsd-tag ts-flagConst">Const</code> </h1></div><div class="tsd-signature"><span class="tsd-kind-variable">provider<wbr/>Info</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/utils_providerInfo.EIP6963ProviderInfo.html" class="tsd-signature-type tsd-kind-interface">EIP6963ProviderInfo</a><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/e49769dc8dabea5d8823e0e38af6d5833f4132b7/src/utils/providerInfo.ts#L29">src/utils/providerInfo.ts:29</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.4.2</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file +<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>providerInfo | Grindery Wallet SDK - v0.5.0</title><meta name="description" content="Documentation for Grindery Wallet SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"><a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/main/CHANGELOG.md">Changelog</a><a href="https://github.com/grindery-io/grindery-wallet-sdk">GitHub</a></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Grindery Wallet SDK - v0.5.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">Grindery Wallet SDK</a></li><li><a href="../modules/utils_providerInfo.html">utils/providerInfo</a></li><li><a href="utils_providerInfo.providerInfo.html">providerInfo</a></li></ul><h1>Variable providerInfo<code class="tsd-tag ts-flagConst">Const</code> </h1></div><div class="tsd-signature"><span class="tsd-kind-variable">provider<wbr/>Info</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/utils_providerInfo.EIP6963ProviderInfo.html" class="tsd-signature-type tsd-kind-interface">EIP6963ProviderInfo</a><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/grindery-io/grindery-wallet-sdk/blob/99da88546418d0ab9c34f5c6b256b1f58bd9d831/src/utils/providerInfo.ts#L29">src/utils/providerInfo.ts:29</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Grindery Wallet SDK - v0.5.0</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html> \ No newline at end of file diff --git a/example/dist/classes/WalletAPI.d.ts b/example/dist/classes/WalletAPI.d.ts new file mode 100644 index 0000000..821a04a --- /dev/null +++ b/example/dist/classes/WalletAPI.d.ts @@ -0,0 +1,14 @@ +/** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ +export declare class WalletAPI { + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + sendApiRequest<T>(method: string, params?: object): Promise<T>; +} diff --git a/example/dist/classes/WalletSDK.d.ts b/example/dist/classes/WalletSDK.d.ts index cb907c0..59d43a8 100644 --- a/example/dist/classes/WalletSDK.d.ts +++ b/example/dist/classes/WalletSDK.d.ts @@ -1,6 +1,7 @@ import { ProviderEventName } from './EventEmitter'; import { Provider } from './Provider'; import { RpcRequestResults } from './Rpc'; +import { User } from '../utils/user'; export type WalletSDKConfig = { appId?: string; appUrl?: string; @@ -107,11 +108,23 @@ export declare class WalletSDK { * @returns {EventEmitter} The instance of the class itself */ removeListener(event: ProviderEventName, callback: Function): this; + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */ + getUser(): Promise<User>; /** * @summary SdkStorage class instance * @private */ private storage; + /** + * @summary The Grindery Wallet user + * @private + */ + private user; /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider diff --git a/example/dist/grindery-wallet-sdk.cjs.development.js b/example/dist/grindery-wallet-sdk.cjs.development.js index 6da6e1c..45a5eea 100644 --- a/example/dist/grindery-wallet-sdk.cjs.development.js +++ b/example/dist/grindery-wallet-sdk.cjs.development.js @@ -1070,8 +1070,8 @@ var Provider = /*#__PURE__*/function (_EventEmitter) { return _this.rpc.sendAndWaitRpcRequest(ProviderMethodNames.eth_accounts, params ? Array.isArray(params) ? params : [params] : []); case 3: result = _context3.sent; - _this.emit(ProviderEvents.accountsChanged, result); _this.storage.setValue(SdkStorageKeys.address, result[0] || ''); + _this.emit(ProviderEvents.accountsChanged, result); return _context3.abrupt("return", result); case 9: _context3.prev = 9; @@ -1416,6 +1416,78 @@ var ClientEventNames; ClientEventNames["walletAddressRequested"] = "walletAddressRequested"; })(ClientEventNames || (ClientEventNames = {})); +/** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ +var WalletAPI = /*#__PURE__*/function () { + function WalletAPI() {} + var _proto = WalletAPI.prototype; + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + _proto.sendApiRequest = + /*#__PURE__*/ + function () { + var _sendApiRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(method, params) { + var storage, sessionId, address, response, json; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + storage = new SdkStorage(); + sessionId = storage.getValue(SdkStorageKeys.sessionId); + address = storage.getValue(SdkStorageKeys.address); + if (!(!sessionId || !address)) { + _context.next = 5; + break; + } + throw new Error('Not connected to the wallet'); + case 5: + _context.next = 7; + return fetch("https://wallet-api.grindery.com/v3", { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: "Bearer " + address + ":" + sessionId + }, + body: JSON.stringify({ + jsonrpc: '2.0', + id: 1, + method: method, + params: params || {} + }) + }); + case 7: + response = _context.sent; + if (response.ok) { + _context.next = 10; + break; + } + throw new Error("Failed to call " + method); + case 10: + _context.next = 12; + return response.json(); + case 12: + json = _context.sent; + return _context.abrupt("return", json.result); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + })); + function sendApiRequest(_x, _x2) { + return _sendApiRequest.apply(this, arguments); + } + return sendApiRequest; + }(); + return WalletAPI; +}(); + /** * @summary The Wallet SDK class * @since 0.2.0 @@ -1432,6 +1504,11 @@ var WalletSDK = /*#__PURE__*/function () { * @private */ this.storage = new SdkStorage(); + /** + * @summary The Grindery Wallet user + * @private + */ + this.user = null; if (config != null && config.appId || config != null && config.appUrl) { window.Grindery = _extends({}, window.Grindery || {}, { appId: config == null ? void 0 : config.appId, @@ -1697,7 +1774,50 @@ var WalletSDK = /*#__PURE__*/function () { _proto.removeListener = function removeListener(event, callback) { this.provider.removeListener(event, callback); return this; - }; + } + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */; + _proto.getUser = + /*#__PURE__*/ + function () { + var _getUser = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() { + var api; + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (this.user) { + _context7.next = 11; + break; + } + api = new WalletAPI(); + _context7.prev = 2; + _context7.next = 5; + return api.sendApiRequest('gw_getMe'); + case 5: + this.user = _context7.sent; + _context7.next = 11; + break; + case 8: + _context7.prev = 8; + _context7.t0 = _context7["catch"](2); + throw new Error(_context7.t0 instanceof Error ? _context7.t0.message : 'Failed to fetch user information'); + case 11: + return _context7.abrupt("return", this.user); + case 12: + case "end": + return _context7.stop(); + } + }, _callee7, this, [[2, 8]]); + })); + function getUser() { + return _getUser.apply(this, arguments); + } + return getUser; + }(); /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider @@ -1724,11 +1844,12 @@ var WalletSDK = /*#__PURE__*/function () { _proto.handlePairing = function handlePairing(_ref) { var _window$Telegram; var shortToken = _ref.shortToken, + connectUrl = _ref.connectUrl, connectUrlBrowser = _ref.connectUrlBrowser; var WebApp = (_window$Telegram = window.Telegram) == null ? void 0 : _window$Telegram.WebApp; - var redirectUrl = "https://walletconnect.grindery.com/connect/wc?uri=" + shortToken; - if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown') { - WebApp.openTelegramLink(connectUrlBrowser); + var redirectUrl = connectUrlBrowser || "https://www.grindery.com/connect/wc?uri=" + shortToken; + if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown' && connectUrl) { + WebApp.openTelegramLink(connectUrl); } else { window.open(redirectUrl, '_blank'); } @@ -1743,18 +1864,18 @@ var WalletSDK = /*#__PURE__*/function () { _proto.trackClientEvent = /*#__PURE__*/ function () { - var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(name, data) { + var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(name, data) { var _window$Grindery, _window$Telegram2; var appUrl, appId, userTelegramId, _window$Telegram3, _window$Telegram4, _window$Telegram5, rpc; - return _regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: appUrl = ((_window$Grindery = window.Grindery) == null ? void 0 : _window$Grindery.appUrl) || window.location.origin; appId = getAppId(); userTelegramId = (_window$Telegram2 = window.Telegram) == null || (_window$Telegram2 = _window$Telegram2.WebApp) == null || (_window$Telegram2 = _window$Telegram2.initDataUnsafe) == null || (_window$Telegram2 = _window$Telegram2.user) == null ? void 0 : _window$Telegram2.id; - _context7.prev = 3; + _context8.prev = 3; rpc = new Rpc(); - _context7.next = 7; + _context8.next = 7; return rpc.sendRpcApiRequest(RpcMethodNames.trackClientEvent, { name: name, appUrl: appUrl, @@ -1771,16 +1892,16 @@ var WalletSDK = /*#__PURE__*/function () { }) }); case 7: - _context7.next = 11; + _context8.next = 11; break; case 9: - _context7.prev = 9; - _context7.t0 = _context7["catch"](3); + _context8.prev = 9; + _context8.t0 = _context8["catch"](3); case 11: case "end": - return _context7.stop(); + return _context8.stop(); } - }, _callee7, this, [[3, 9]]); + }, _callee8, this, [[3, 9]]); })); function trackClientEvent(_x5, _x6) { return _trackClientEvent.apply(this, arguments); diff --git a/example/dist/grindery-wallet-sdk.cjs.development.js.map b/example/dist/grindery-wallet-sdk.cjs.development.js.map index 861b565..416e460 100644 --- a/example/dist/grindery-wallet-sdk.cjs.development.js.map +++ b/example/dist/grindery-wallet-sdk.cjs.development.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.cjs.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","accountsChanged","address","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AACH,IAAYA,cAOX,CAAA;AAPD,CAAA,UAAYA,cAAc,EAAA;AACxBA,EAAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnCA,EAAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzBA,EAAAA,cAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAPWA,cAAc,KAAdA,cAAc,GAOzB,EAAA,CAAA,CAAA,CAAA;AAQD;;;AAGG;AACH,IAAaC,YAAY,gBAAA,YAAA;AACvB,EAAA,SAAAA,eAAA;AAIA;;;AAGG;AAHH,IAAA,IAAA,CAIQC,MAAM,GAAA,KAAA,CAAA,CAAA;AAPZ,IAAA,IAAI,CAACA,MAAM,GAAG,IAAIC,GAAG,EAAE,CAAA;AACzB,GAAA;AAAC,EAAA,IAAAC,MAAA,GAAAH,YAAA,CAAAI,SAAA,CAAA;AAQD;;;;;;AAMG;EANHD,MAAA,CAOOE,EAAE,GAAF,SAAAA,GAAGC,KAAwB,EAAEC,QAAkB,EAAA;IACpD,IAAI,CAAC,IAAI,CAACN,MAAM,CAACO,GAAG,CAACF,KAAK,CAAC,EAAE;MAC3B,IAAI,CAACL,MAAM,CAACQ,GAAG,CAACH,KAAK,EAAE,EAAE,CAAC,CAAA;AAC5B,KAAA;IACA,IAAI,CAACL,MAAM,CAACS,GAAG,CAACJ,KAAK,CAAE,CAACK,IAAI,CAACJ,QAAQ,CAAC,CAAA;AACtC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA;;;;;;AAMG,MANH;EAAAJ,MAAA,CAOOS,cAAc,GAAd,SAAAA,eAAeN,KAAwB,EAAEC,QAAkB,EAAA;IAChE,IAAI,IAAI,CAACN,MAAM,CAACO,GAAG,CAACF,KAAK,CAAC,EAAE;AAC1B,MAAA,IAAMO,SAAS,GAAG,IAAI,CAACZ,MAAM,CAACS,GAAG,CAACJ,KAAK,CAAE,CAACQ,MAAM,CAAC,UAACC,EAAE,EAAA;QAAA,OAAKA,EAAE,KAAKR,QAAQ,CAAA;OAAC,CAAA,CAAA;MACzE,IAAI,CAACN,MAAM,CAACQ,GAAG,CAACH,KAAK,EAAEO,SAAS,CAAC,CAAA;AACnC,KAAA;AACA,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA;;;;;;AAMG,MANH;AAAAV,EAAAA,MAAA,CAOUa,IAAI,GAAJ,SAAAA,IAAAA,CAAKV,KAAwB,EAAgB;IAAA,KAAAW,IAAAA,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAXC,IAAW,OAAAC,KAAA,CAAAJ,IAAA,GAAAA,CAAAA,GAAAA,IAAA,WAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAAXF,MAAAA,IAAW,CAAAE,IAAA,GAAAJ,CAAAA,CAAAA,GAAAA,SAAA,CAAAI,IAAA,CAAA,CAAA;AAAA,KAAA;IACrD,IAAI,IAAI,CAACrB,MAAM,CAACO,GAAG,CAACF,KAAK,CAAC,EAAE;MAC1BiB,OAAO,CAACC,GAAG,CAAC,+BAA+B,EAAElB,KAAK,EAAEc,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5D,MAAA,IAAI,CAACnB,MAAM,CAACS,GAAG,CAACJ,KAAK,CAAE,CAACmB,OAAO,CAAC,UAAClB,QAAQ,EAAI;AAC3CA,QAAAA,QAAQ,CAAAmB,KAAA,CAAIN,KAAAA,CAAAA,EAAAA,IAAI,CAAC,CAAA;AACnB,OAAC,CAAC,CAAA;AACJ,KAAA;AACA,IAAA,OAAO,IAAI,CAAA;GACZ,CAAA;AAAA,EAAA,OAAApB,YAAA,CAAA;AAAA,CAAA,EAAA;;ACjFH;;;AAGG;AACI,IAAM2B,QAAQ,GAAG,SAAXA,QAAQA,GAAgB;AAAA,EAAA,IAAAC,gBAAA,CAAA;EACnC,IAAIC,KAAK,GAAW,EAAE,CAAA;AACtB,EAAA,IAAMC,QAAQ,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,eAAe,CAAC,CAAA;AAC3D,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,CAACX,MAAM,EAAEc,CAAC,EAAE,EAAE;AACxC,IAAA,IAAMC,OAAO,GAAGJ,QAAQ,CAACG,CAAC,CAAC,CAAA;AAC3B,IAAA,IAAME,KAAK,GAAGD,OAAO,CAACE,YAAY,CAAC,aAAa,CAAC,CAAA;AACjD,IAAA,IAAMC,GAAG,GAAGH,OAAO,CAACE,YAAY,CAAC,KAAK,CAAC,CAAA;IACvC,IAAME,aAAa,GAAGD,GAAG,IAAIA,GAAG,CAACE,QAAQ,CAAC,qBAAqB,CAAC,CAAA;IAChE,IAAIJ,KAAK,IAAIG,aAAa,EAAE;AAC1BT,MAAAA,KAAK,GAAGM,KAAK,CAAA;AACf,KAAA;AACF,GAAA;EACA,IAAAP,CAAAA,gBAAA,GAAIY,MAAM,CAACC,QAAQ,KAAfb,IAAAA,IAAAA,gBAAA,CAAiBC,KAAK,EAAE;AAC1BA,IAAAA,KAAK,GAAGW,MAAM,CAACC,QAAQ,CAACZ,KAAK,CAAA;AAC/B,GAAA;AACA,EAAA,OAAOA,KAAK,CAAA;AACd,CAAC;;ACpBD;;;AAGG;AACI,IAAMa,IAAI,GAAG,SAAPA,IAAIA,GAAgB;EAC/B,IAAIC,CAAC,GAAG,EAAE,CAAA;EACV,OAAOA,CAAC,CAACxB,MAAM,GAAG,EAAE,EAAEwB,CAAC,IAAIC,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAAA;EAC/D,IAAMC,EAAE,GAAG,CAAEC,QAAQ,CAACN,CAAC,CAACI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAI,GAAG,EAAED,QAAQ,CAAC,EAAE,CAAC,CAAA;EACrE,OAAUH,CAAC,CAACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAIJ,GAAAA,GAAAA,CAAC,CAACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAKJ,IAAAA,GAAAA,CAAC,CAACI,MAAM,CACrD,EAAE,EACF,CAAC,CACF,GAAIC,GAAAA,GAAAA,EAAE,GAAGL,CAAC,CAACI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,SAAIJ,CAAC,CAACI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;AAC/C,CAAC;;ACgBM,IAAMG,YAAY,GAAwB;EAC/CR,IAAI,eAAEA,IAAI,EAAE;AACZS,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,IAAI,EAAE,qBAAqB;AAC3BC,EAAAA,IAAI,EAAE,w0DAAA;CACP;;ACjCD;;;;AAIG;AACUC,IAAAA,aAAc,0BAAAC,MAAA,EAAA;AAKzB,EAAA,SAAAD,cAAYE,OAAe,EAAEC,IAAa,EAAErC,IAAc,EAAA;AAAA,IAAA,IAAAsC,KAAA,CAAA;AACxDA,IAAAA,KAAA,GAAAH,MAAA,CAAAI,IAAA,CAAA,IAAA,EAAMH,OAAO,CAAC,IAAA,IAAA,CAAA;IAACE,KAAA,CALjBP,IAAI,GAAW,6BAA6B,CAAA;AAAAO,IAAAA,KAAA,CAC5CD,IAAI,GAAA,KAAA,CAAA,CAAA;AAAAC,IAAAA,KAAA,CACJtC,IAAI,GAAA,KAAA,CAAA,CAAA;IAIFsC,KAAA,CAAKD,IAAI,GAAGA,IAAI,CAAA;IAChBC,KAAA,CAAKtC,IAAI,GAAGA,IAAI,CAAA;AAAC,IAAA,OAAAsC,KAAA,CAAA;AACnB,GAAA;EAACE,cAAA,CAAAN,aAAA,EAAAC,MAAA,CAAA,CAAA;AAAA,EAAA,OAAAD,aAAA,CAAA;AAAA,CAAAO,eAAAA,gBAAA,CATgCC,KAAK,CAAA,CAAA,CAAA;AAYjC,IAAMC,cAAc,GAAG;AAC5BC,EAAAA,aAAa,eAAE,IAAIV,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC;AACxDW,EAAAA,YAAY,eAAE,IAAIX,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC;AACrDY,EAAAA,iBAAiB,eAAE,IAAIZ,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAC;AAChEa,EAAAA,YAAY,eAAE,IAAIb,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC;AACrDc,EAAAA,QAAQ,eAAE,IAAId,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC;AAC9Ce,EAAAA,OAAO,eAAE,IAAIf,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAC;AACtDgB,EAAAA,YAAY,eAAE,IAAIhB,aAAa,CAAC,uBAAuB,EAAE,IAAI,CAAC;AAC9DiB,EAAAA,iBAAiB,eAAE,IAAIjB,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAA;CAChE,CAAA;AAEM,IAAMkB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAe,EAAmB;AACjE,EAAA,IAAIC,aAA4B,CAAA;EAChC,IAAID,KAAK,YAAYnB,aAAa,EAAE;AAClCoB,IAAAA,aAAa,GAAG,IAAIpB,aAAa,CAC/BmB,KAAK,CAACjB,OAAO,IAAI,eAAe,EAChCiB,KAAK,CAAChB,IAAI,IAAI,IAAI,EAClBgB,KAAK,CAACrD,IAAI,CACX,CAAA;AACH,GAAC,MAAM,IAAIqD,KAAK,YAAYX,KAAK,EAAE;AACjCY,IAAAA,aAAa,GAAG,IAAIpB,aAAa,CAC/BmB,KAAK,CAACjB,OAAO,IAAI,eAAe,EAChC,IAAI,EACJiB,KAAK,CACN,CAAA;AACH,GAAC,MAAM;IACLC,aAAa,GAAG,IAAIpB,aAAa,CAAC,eAAe,EAAE,IAAI,EAAEmB,KAAK,CAAC,CAAA;AACjE,GAAA;AACA,EAAA,OAAOC,aAAa,CAAA;AACtB,CAAC;;AC9CD;;;;;;;AAOG;AACI,IAAMC,MAAM,GAAa,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;AAElE,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,OAAe,EAAY;AACpD,EAAA,OAAA,IAAA,GAAY5B,QAAQ,CAAC4B,OAAO,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAChC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAC9D,CAAC,CAAA;AAEM,IAAMiC,YAAY,GAAG,SAAfA,YAAYA,CAAIH,UAAkB,EAAY;AACzD,EAAA,OAAA,SAAA,GAAiB3B,QAAQ,CAAC2B,UAAU,EAAE,EAAE,CAAC,CAAA;AAC3C,CAAC;;ACbD,IAAMI,gBAAgB,GAAG,wBAAwB,CAAA;AAEjD;;;AAGG;AACH,IAAYC,cASX,CAAA;AATD,CAAA,UAAYA,cAAc,EAAA;AACxBA,EAAAA,cAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,cAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvBA,EAAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzBA,EAAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvCA,EAAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzBA,EAAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EATWA,cAAc,KAAdA,cAAc,GASzB,EAAA,CAAA,CAAA,CAAA;AAYD;;;AAGG;AACH,IAAaC,UAAU,gBAAA,YAAA;AAAA,EAAA,SAAAA,UAAA,GAAA,EAAA;AAAA,EAAA,IAAA/E,MAAA,GAAA+E,UAAA,CAAA9E,SAAA,CAAA;AACrB;;;;;AAKG;AALHD,EAAAA,MAAA,CAMOgF,QAAQ,GAAR,SAAAA,QAAAA,CAASC,GAAkB,EAAA;IAChC,IAAMjD,KAAK,GAAG,IAAI,CAACkD,WAAW,EAAE,CAACD,GAAG,CAAC,IAAI,EAAE,CAAA;AAC3C,IAAA,OAAOjD,KAAK,CAAA;AACd,GAAA;AAEA;;;;;;AAMG,MANH;EAAAhC,MAAA,CAOOmF,QAAQ,GAAR,SAAAA,SAASF,GAAkB,EAAEjD,KAAa,EAAA;AAC/C,IAAA,IAAMoD,QAAQ,GAAG,IAAI,CAACF,WAAW,EAAE,CAAA;AACnCE,IAAAA,QAAQ,CAACH,GAAG,CAAC,GAAGjD,KAAK,CAAA;AACrB,IAAA,IAAI,CAACqD,YAAY,CAACD,QAAQ,CAAC,CAAA;AAC3B,IAAA,OAAOpD,KAAK,CAAA;AACd,GAAA;AAEA;;;;AAIG,MAJH;AAAAhC,EAAAA,MAAA,CAKOsF,KAAK,GAAL,SAAAA,QAAK;IACV,IAAI,CAACD,YAAY,CAAC;MAChBE,QAAQ,EAAE,IAAI,CAACL,WAAW,EAAE,CAACK,QAAQ,IAAIhD,IAAI,EAAE;MAC/CmC,OAAO,EAAE,IAAI,CAACQ,WAAW,EAAE,CAACR,OAAO,IAAIF,MAAM,CAAC,CAAC,CAAA;AAChD,KAAA,CAAC,CAAA;AACJ,GAAA;AAEA;;;;AAIG,MAJH;AAAAxE,EAAAA,MAAA,CAKQkF,WAAW,GAAX,SAAAA,cAAW;IACjB,IAAI;AACF,MAAA,OAAOM,IAAI,CAACC,KAAK,CACfC,YAAY,CAACC,OAAO,CAACd,gBAAgB,CAAC,IAAI,IAAI,CACzB,CAAA;KACxB,CAAC,OAAOP,KAAK,EAAE;AACdoB,MAAAA,YAAY,CAACE,OAAO,CAACf,gBAAgB,EAAEW,IAAI,CAACK,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;AAC1D,MAAA,MAAM,IAAIlC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AAC1C,KAAA;AACF,GAAA;AAEA;;;;AAIG,MAJH;AAAA3D,EAAAA,MAAA,CAKQqF,YAAY,GAAZ,SAAAA,YAAAA,CAAaS,OAA2B,EAAA;IAC9CJ,YAAY,CAACE,OAAO,CAACf,gBAAgB,EAAEW,IAAI,CAACK,SAAS,CAACC,OAAO,CAAC,CAAC,CAAA;GAChE,CAAA;AAAA,EAAA,OAAAf,UAAA,CAAA;AAAA,CAAA,EAAA;;AC5FH;;AAEG;AACH,IAAYgB,cAQX,CAAA;AARD,CAAA,UAAYA,cAAc,EAAA;AACxBA,EAAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjCA,EAAAA,cAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7CA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,cAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7CA,EAAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAA2B,CAAA;AAC3BA,EAAAA,cAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7CA,EAAAA,cAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACvC,CAAC,EARWA,cAAc,KAAdA,cAAc,GAQzB,EAAA,CAAA,CAAA,CAAA;AA+DD;;;AAGG;AACH,IAAaC,GAAG,gBAAA,YAAA;AAAA,EAAA,SAAAA,GAAA,GAAA,EAAA;AAAA,EAAA,IAAAhG,MAAA,GAAAgG,GAAA,CAAA/F,SAAA,CAAA;AACd;;;;;;;AAOG;AAPHD,EAAAA,MAAA,CAQaiG,qBAAqB;AAAA;AAAA,EAAA,YAAA;AAAA,IAAA,IAAAC,sBAAA,gBAAAC,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAA3B,SAAAC,OACLC,CAAAA,MAAc,EACdC,MAA2B,EAC3BC,OAAgB,EAAA;AAAA,MAAA,IAAAC,OAAA,CAAA;AAAA,MAAA,OAAAN,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAAAF,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAEM,IAAI,CAACC,cAAc,CAACT,MAAM,EAAEC,MAAM,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;YAAnDE,OAAO,GAAAG,QAAA,CAAAI,IAAA,CAAA;AAAAJ,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;YAAA,OACA,IAAI,CAACG,cAAc,CAACR,OAAO,CAACS,YAAY,EAAEV,OAAO,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAAI,QAAA,CAAAO,MAAA,CAAAP,QAAAA,EAAAA,QAAA,CAAAI,IAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAJ,QAAA,CAAAQ,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAf,OAAA,EAAA,IAAA,CAAA,CAAA;KAChE,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAL,qBAAAqB,CAAAA,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAAtB,sBAAA,CAAA3E,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAkF,qBAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;;;AAMG;AANH,GAAA;AAAAjG,EAAAA,MAAA,CAOgBgH,cAAc;AAAA;AAAA,EAAA,YAAA;AAAA,IAAA,IAAAS,eAAA,gBAAAtB,iBAAA,eAAAC,mBAAA,EAAA,CAAAC,IAAA,CAApB,SAAAqB,QAAAA,CACRnB,MAAc,EACdC,MAA2B,EAAA;AAAA,MAAA,IAAAV,OAAA,CAAA;AAAA,MAAA,OAAAM,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAgB,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAd,IAAA,GAAAc,SAAA,CAAAb,IAAA;AAAA,UAAA,KAAA,CAAA;AAErBjB,YAAAA,OAAO,GAAG,IAAIf,UAAU,EAAE,CAAA;AAAA6C,YAAAA,SAAA,CAAAb,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OACnB,IAAI,CAACc,iBAAiB,CACjC9B,cAAc,CAACW,OAAO,EACtB;cACEoB,SAAS,EAAEhC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAC;cACrDC,KAAK,EAAEjC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACJ,OAAO,CAAC;AAC/CgC,cAAAA,OAAO,EAAE;AACPH,gBAAAA,MAAM,EAANA,MAAM;AACNC,gBAAAA,MAAM,EAANA,MAAAA;AACD,eAAA;AACF,aAAA,CACF,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAAoB,SAAA,CAAAR,MAAA,CAAAQ,QAAAA,EAAAA,SAAA,CAAAX,IAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAW,SAAA,CAAAP,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAK,QAAA,EAAA,IAAA,CAAA,CAAA;KACF,CAAA,CAAA,CAAA;IAAA,SAAAV,cAAAA,CAAAgB,GAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAAR,eAAA,CAAAlG,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAiG,cAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;;;AAMG;AANH,GAAA;AAAAhH,EAAAA,MAAA,CAOgBkH,cAAc;AAAA;AAAA,EAAA,YAAA;AAAA,IAAA,IAAAgB,eAAA,gBAAA/B,iBAAA,eAAAC,mBAAA,EAAA,CAAAC,IAAA,CAApB,SAAA8B,QAAAA,CACRhB,YAAoB,EACpBV,OAAgB,EAAA;AAAA,MAAA,OAAAL,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAyB,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAvB,IAAA,GAAAuB,SAAA,CAAAtB,IAAA;AAAA,UAAA,KAAA,CAAA;AAAAsB,YAAAA,SAAA,CAAAtB,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAEH,IAAI,CAACc,iBAAiB,CACjC9B,cAAc,CAACuC,oBAAoB,EACnC;AACEnB,cAAAA,YAAY,EAAZA,YAAY;AACZV,cAAAA,OAAO,EAAPA,OAAAA;AACD,aAAA,CACF,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA4B,SAAA,CAAAjB,MAAA,CAAAiB,QAAAA,EAAAA,SAAA,CAAApB,IAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAoB,SAAA,CAAAhB,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAc,QAAA,EAAA,IAAA,CAAA,CAAA;KACF,CAAA,CAAA,CAAA;IAAA,SAAAjB,cAAAA,CAAAqB,GAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAAN,eAAA,CAAA3G,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAmG,cAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;;;AAMG;AANH,GAAA;AAAAlH,EAAAA,MAAA,CAOa6H,iBAAiB;AAAA;AAAA,EAAA,YAAA;AAAA,IAAA,IAAAY,kBAAA,gBAAAtC,iBAAA,eAAAC,mBAAA,EAAA,CAAAC,IAAA,CAAvB,SAAAqC,QAAAA,CACLnC,MAAsB,EACtBC,MAA2B,EAAA;MAAA,IAAAmC,QAAA,EAAA1H,IAAA,CAAA;AAAA,MAAA,OAAAmF,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAiC,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAA9B,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA8B,YAAAA,SAAA,CAAA/B,IAAA,GAAA,CAAA,CAAA;AAAA+B,YAAAA,SAAA,CAAA9B,IAAA,GAAA,CAAA,CAAA;YAAA,OAGF+B,KAAK,CAAC,wCAAwC,EAAE;AACrEvC,cAAAA,MAAM,EAAE,MAAM;AACdwC,cAAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAA;eACjB;AACDC,cAAAA,IAAI,EAAExD,IAAI,CAACK,SAAS,CAAC;AACnBoD,gBAAAA,OAAO,EAAE,KAAK;AACdC,gBAAAA,EAAE,EAAE,CAAC;AACL3C,gBAAAA,MAAM,WAASA,MAAQ;gBACvBC,MAAM,EAAEA,MAAM,IAAI,EAAA;eACnB,CAAA;AACF,aAAA,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;YAXImC,QAAQ,GAAAE,SAAA,CAAA5B,IAAA,CAAA;AAAA4B,YAAAA,SAAA,CAAA9B,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAYK4B,QAAQ,CAACQ,IAAI,EAAE,CAAA;AAAA,UAAA,KAAA,CAAA;YAA5BlI,IAAI,GAAA4H,SAAA,CAAA5B,IAAA,CAAA;YAAA,IACNhG,CAAAA,IAAI,CAACqD,KAAK,EAAA;AAAAuE,cAAAA,SAAA,CAAA9B,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;AAAA,YAAA,MACN,IAAI5D,aAAa,CAAClC,IAAI,CAACqD,KAAK,CAACjB,OAAO,EAAEpC,IAAI,CAACqD,KAAK,CAAChB,IAAI,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;YAAA,IAEzDrC,IAAI,CAACmI,MAAM,EAAA;AAAAP,cAAAA,SAAA,CAAA9B,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;YAAA,MACRnD,cAAc,CAACK,QAAQ,CAAA;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,OAAA4E,SAAA,CAAAzB,MAAA,CAExBnG,QAAAA,EAAAA,IAAI,CAACmI,MAAM,CAAA,CAAA;AAAA,UAAA,KAAA,EAAA;AAAAP,YAAAA,SAAA,CAAA/B,IAAA,GAAA,EAAA,CAAA;YAAA+B,SAAA,CAAAQ,EAAA,GAAAR,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,IAAA,EAEdA,SAAA,CAAAQ,EAAA,YAAiB1F,KAAK,CAAA,EAAA;AAAAkF,cAAAA,SAAA,CAAA9B,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;AAAA,YAAA,MAClB,IAAI5D,aAAa,CAAC0F,SAAA,CAAAQ,EAAA,CAAMhG,OAAO,EAAE,GAAG,EAAAwF,SAAA,CAAAQ,EAAO,CAAC,CAAA;AAAA,UAAA,KAAA,EAAA;YAAA,MAE9C,IAAIlG,aAAa,CAAC,cAAc,EAAE,GAAG,EAAA0F,SAAA,CAAAQ,EAAO,CAAC,CAAA;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAR,SAAA,CAAAxB,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAqB,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;KAEtD,CAAA,CAAA,CAAA;IAAA,SAAAb,iBAAAA,CAAAyB,GAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAAd,kBAAA,CAAAlH,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAA8G,iBAAA,CAAA;AAAA,GAAA,EAAA,CAAA;AAAA,EAAA,OAAA7B,GAAA,CAAA;AAAA,CAAA,EAAA;;ACpKH;;;;AAIG;AACH,IAAYwD,mBASX,CAAA;AATD,CAAA,UAAYA,mBAAmB,EAAA;AAC7BA,EAAAA,mBAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3CA,EAAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/BA,EAAAA,mBAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3CA,EAAAA,mBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjCA,EAAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3BA,EAAAA,mBAAA,CAAA,yBAAA,CAAA,GAAA,yBAAmD,CAAA;AACnDA,EAAAA,mBAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD,CAAA;AAC3D,CAAC,EATWA,mBAAmB,KAAnBA,mBAAmB,GAS9B,EAAA,CAAA,CAAA,CAAA;AAkCD;;;;AAIG;AACUC,IAAAA,QAAS,0BAAAC,aAAA,EAAA;AAGpB,EAAA,SAAAD,WAAA;AAAA,IAAA,IAAAE,aAAA,CAAA;AAAA,IAAA,IAAApG,KAAA,CAAA;AACEA,IAAAA,KAAA,GAAAmG,aAAA,CAAAlG,IAAA,MAAO,IAAA,IAAA,CAAA;IAACD,KAAA,CAHHqG,gBAAgB,GAAY,IAAI,CAAA;AAAArG,IAAAA,KAAA,CA2C/BuC,OAAO,GAAe,IAAIf,UAAU,EAAE,CAAA;AAAAxB,IAAAA,KAAA,CAEtCsG,GAAG,GAAQ,IAAI7D,GAAG,EAAE,CAAA;AAE5B;;;;;AAKG;AALHzC,IAAAA,KAAA,CAMQuG,WAAW,gBAAA,YAAA;MAAA,IAAAC,KAAA,GAAA5D,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAA0D,IAAA,EAAA;QAAA,IAAAtF,OAAA,EAAAuF,SAAA,CAAA;AAAA,QAAA,OAAA7D,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;cAASrC,OAAO,GAAAsF,IAAA,CAAPtF,OAAO,CAAA;AAC9BuF,cAAAA,SAAS,GAAGrF,YAAY,CAACF,OAAO,CAAC,CAAA;AAAA,cAAA,IAClCF,MAAM,CAACpC,QAAQ,CAAC6H,SAAS,CAAC,EAAA;AAAApD,gBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAAA,cAAA,MACvB1C,gBAAgB,CAACT,cAAc,CAACQ,iBAAiB,CAAC,CAAA;AAAA,YAAA,KAAA,CAAA;cAE1Db,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACJ,OAAO,EAAEuF,SAAS,CAAC,CAAA;AACxD1G,cAAAA,KAAA,CAAK1C,IAAI,CAACjB,cAAc,CAACsK,YAAY,EAAE;AAAExF,gBAAAA,OAAO,EAAPA,OAAAA;AAAS,eAAA,CAAC,CAAA;AAAC,cAAA,OAAAmC,QAAA,CAAAO,MAAA,CAAA,QAAA,EAC7C,IAAI,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAP,QAAA,CAAAQ,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAf,OAAA,CAAA,CAAA;OACZ,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,UAAAgB,EAAA,EAAA;AAAA,QAAA,OAAAyC,KAAA,CAAAxI,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;AAAA,KAAA,EAAA,CAAA;AAED;;;AAGG;IAHHwC,KAAA,CAIQ4G,OAAO,IAAAR,aAAA,OAAAA,aAAA,CAIZH,mBAAmB,CAACY,mBAAmB,CAAA,GAAA,YAAA;MAAA,IAAAC,KAAA,GAAAlE,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAqB,QAAAA,CACzClB,MAAuC,EAAA;AAAA,QAAA,IAAA8D,UAAA,EAAAlB,MAAA,EAAAmB,WAAA,CAAA;AAAA,QAAA,OAAAnE,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAgB,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAd,IAAA,GAAAc,SAAA,CAAAb,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,CAEnCxD,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAAC,WAAW,CAAC,EAAA;AAAA4C,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAAAa,cAAAA,SAAA,CAAAd,IAAA,GAAA,CAAA,CAAA;AAAAc,cAAAA,SAAA,CAAAb,IAAA,GAAA,CAAA,CAAA;cAAA,OAErBxD,KAAA,CAAKmD,OAAO,CAAsC;gBAC7DH,MAAM,EAAEiD,mBAAmB,CAACgB,YAAY;AACxChE,gBAAAA,MAAM,EAAE,EAAA;AACT,eAAA,CAAC,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAoB,SAAA,CAAAR,MAAA,CAAAQ,QAAAA,EAAAA,SAAA,CAAAX,IAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAW,cAAAA,SAAA,CAAAd,IAAA,GAAA,CAAA,CAAA;cAAAc,SAAA,CAAAyB,EAAA,GAAAzB,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;cAEFrE,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACgD,SAAS,EAAE,EAAE,CAAC,CAAA;AACnD;AAAA,YAAA,KAAA,EAAA;AAAA,cAAA,IAAA,CAGAvE,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAAC,cAAc,CAAC,EAAA;AAAA4C,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAAAa,cAAAA,SAAA,CAAAd,IAAA,GAAA,EAAA,CAAA;AAAAc,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;cAAA,OAG5BxD,KAAA,CAAKsG,GAAG,CAAChC,iBAAiB,CAC/B9B,cAAc,CAAC0E,oBAAoB,EACnC;gBACEC,YAAY,EAAEnH,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CACjCF,cAAc,CAAC4F,YAAY,CAAA;AAE9B,eAAA,CACF,CAAA;AAAA,YAAA,KAAA,EAAA;cARGJ,UAAU,GAAA1C,SAAA,CAAAX,IAAA,CAAA;AAUhB1D,cAAAA,KAAA,CAAKuC,OAAO,CAACR,KAAK,EAAE,CAAA;AACpB/B,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CACnBL,cAAc,CAACgD,SAAS,EACxBwC,UAAU,CAACK,OAAO,CAAC7C,SAAS,CAC7B,CAAA;AAAC,cAAA,IAEGwC,UAAU,CAACK,OAAO,CAAC7C,SAAS,EAAA;AAAAF,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cAAA,MACzBnD,cAAc,CAACC,aAAa,CAAA;AAAA,YAAA,KAAA,EAAA;AAAA+D,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;cAAA,OAGvBxD,KAAA,CAAKmD,OAAO,CAAsC;gBAC7DH,MAAM,EAAEiD,mBAAmB,CAACgB,YAAY;gBACxChE,MAAM,EAAEA,MAAM,IAAI,EAAA;AACnB,eAAA,CAAC,CAAA;AAAA,YAAA,KAAA,EAAA;AAAA,cAAA,OAAAoB,SAAA,CAAAR,MAAA,CAAAQ,QAAAA,EAAAA,SAAA,CAAAX,IAAA,CAAA,CAAA;AAAA,YAAA,KAAA,EAAA;AAAAW,cAAAA,SAAA,CAAAd,IAAA,GAAA,EAAA,CAAA;cAAAc,SAAA,CAAAgD,EAAA,GAAAhD,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAEFrE,cAAAA,KAAA,CAAKuC,OAAO,CAACR,KAAK,EAAE,CAAA;AACpB;AAAA,YAAA,KAAA,EAAA;AAAAsC,cAAAA,SAAA,CAAAd,IAAA,GAAA,EAAA,CAAA;AAIFvD,cAAAA,KAAA,CAAKuC,OAAO,CAACR,KAAK,EAAE,CAAA;AAACsC,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;cAAA,OAEZxD,KAAA,CAAKsG,GAAG,CAAChC,iBAAiB,CAC/B9B,cAAc,CAAC8E,cAAc,EAC7B;gBACEnJ,KAAK,EAAEF,QAAQ,EAAE;gBACjB+D,QAAQ,EAAEhC,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACS,QAAQ,CAAA;AACxD,eAAA,CACF,CAAA;AAAA,YAAA,KAAA,EAAA;cAPG6D,MAAM,GAAAxB,SAAA,CAAAX,IAAA,CAAA;cAAA,IASR,EAAA,CAACmC,MAAM,CAACsB,YAAY,IAAI,CAACtB,MAAM,CAAC0B,UAAU,CAAA,EAAA;AAAAlD,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cAAA,MACtCnD,cAAc,CAACC,aAAa,CAAA;AAAA,YAAA,KAAA,EAAA;AAGpCN,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAAC4F,YAAY,EAAEtB,MAAM,CAACsB,YAAY,CAAC,CAAA;AACvEnH,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACgG,UAAU,EAAE1B,MAAM,CAAC0B,UAAU,CAAC,CAAA;AACnEvH,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CACnBL,cAAc,CAACiG,iBAAiB,EAChC3B,MAAM,CAAC2B,iBAAiB,CACzB,CAAA;AACDxH,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACkG,UAAU,EAAE5B,MAAM,CAAC4B,UAAU,CAAC,CAAA;AACnEzH,cAAAA,KAAA,CAAK1C,IAAI,CAACjB,cAAc,CAACqL,IAAI,EAAE;gBAC7BD,UAAU,EAAE5B,MAAM,CAAC4B,UAAU;gBAC7BF,UAAU,EAAE1B,MAAM,CAAC0B,UAAU;gBAC7BC,iBAAiB,EAAE3B,MAAM,CAAC2B,iBAAAA;AAC3B,eAAA,CAAC,CAAA;AAACnD,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;cAAA,OAEMxD,KAAA,CAAKsG,GAAG,CAAChC,iBAAiB,CAC/B9B,cAAc,CAAC0E,oBAAoB,EACnC;gBACEC,YAAY,EAAEtB,MAAM,CAACsB,YAAAA;AACtB,eAAA,CACF,CAAA;AAAA,YAAA,KAAA,EAAA;cANGJ,WAAU,GAAA1C,SAAA,CAAAX,IAAA,CAAA;AAQhB1D,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CACnBL,cAAc,CAACgD,SAAS,EACxBwC,WAAU,CAACK,OAAO,CAAC7C,SAAS,CAC7B,CAAA;AAAC,cAAA,IAEGwC,WAAU,CAACK,OAAO,CAAC7C,SAAS,EAAA;AAAAF,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cAAA,MACzBnD,cAAc,CAACC,aAAa,CAAA;AAAA,YAAA,KAAA,EAAA;cAEpCN,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAAC4F,YAAY,EAAE,EAAE,CAAC,CAAA;cACtDnH,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACgG,UAAU,EAAE,EAAE,CAAC,CAAA;cACpDvH,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACiG,iBAAiB,EAAE,EAAE,CAAC,CAAA;cAC3DxH,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACkG,UAAU,EAAE,EAAE,CAAC,CAAA;AAACpD,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA,CAAA;cAAA,OAExCxD,KAAA,CAAKmD,OAAO,CAAC;gBACxBH,MAAM,EAAEiD,mBAAmB,CAACgB,YAAY;gBACxChE,MAAM,EAAEA,MAAM,IAAI,EAAA;AACnB,eAAA,CAAC,CAAA;AAAA,YAAA,KAAA,EAAA;AAAA,cAAA,OAAAoB,SAAA,CAAAR,MAAA,CAAAQ,QAAAA,EAAAA,SAAA,CAAAX,IAAA,CAAA,CAAA;AAAA,YAAA,KAAA,EAAA;AAAAW,cAAAA,SAAA,CAAAd,IAAA,GAAA,EAAA,CAAA;cAAAc,SAAA,CAAAsD,EAAA,GAAAtD,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;cAAA,MAAAA,SAAA,CAAAsD,EAAA,CAAA;AAAA,YAAA,KAAA,EAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAtD,SAAA,CAAAP,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAK,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;OAIL,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,UAAAH,GAAA,EAAA;AAAA,QAAA,OAAA8C,KAAA,CAAA9I,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;AAAA,KAAA,EAAA,EAAA4I,aAAA,CAKAH,mBAAmB,CAACgB,YAAY,CAAA,GAAA,YAAA;MAAA,IAAAW,KAAA,GAAAhF,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAA8B,QAAAA,CAClC3B,MAAuC,EAAA;AAAA,QAAA,IAAA4C,MAAA,CAAA;AAAA,QAAA,OAAAhD,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAyB,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAvB,IAAA,GAAAuB,SAAA,CAAAtB,IAAA;AAAA,YAAA,KAAA,CAAA;AAAAsB,cAAAA,SAAA,CAAAvB,IAAA,GAAA,CAAA,CAAA;AAAAuB,cAAAA,SAAA,CAAAtB,IAAA,GAAA,CAAA,CAAA;cAAA,OAGfxD,KAAA,CAAKsG,GAAG,CAAC5D,qBAAqB,CAClDuD,mBAAmB,CAACgB,YAAY,EAChChE,MAAM,GAAItF,KAAK,CAACkK,OAAO,CAAC5E,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC,GAAI,EAAE,CAC1D,CAAA;AAAA,YAAA,KAAA,CAAA;cAHK4C,MAAM,GAAAf,SAAA,CAAApB,IAAA,CAAA;cAIZ1D,KAAA,CAAK1C,IAAI,CAACjB,cAAc,CAACyL,eAAe,EAAEjC,MAAM,CAAC,CAAA;AACjD7F,cAAAA,KAAA,CAAKuC,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACwG,OAAO,EAAElC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAAC,cAAA,OAAAf,SAAA,CAAAjB,MAAA,CAAA,QAAA,EACxDgC,MAAM,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAf,cAAAA,SAAA,CAAAvB,IAAA,GAAA,CAAA,CAAA;cAAAuB,SAAA,CAAAgB,EAAA,GAAAhB,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,cAAA,MAEPhE,gBAAgB,CAAAgE,SAAA,CAAAgB,EAAM,CAAC,CAAA;AAAA,YAAA,KAAA,EAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAhB,SAAA,CAAAhB,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAc,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAEhC,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,UAAAX,GAAA,EAAA;AAAA,QAAA,OAAA2D,KAAA,CAAA5J,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;AAAA,KAAA,EAAA,EAAA4I,aAAA,CAKAH,mBAAmB,CAAC+B,mBAAmB,CAAA,GAAA,YAAA;MAAA,IAAAC,KAAA,GAAArF,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAqC,QAAAA,CACzClC,MAAuC,EAAA;AAAA,QAAA,OAAAJ,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAiC,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAA9B,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA8B,cAAAA,SAAA,CAAA9B,IAAA,GAAA,CAAA,CAAA;cAAA,OAEzBxD,KAAA,CAAKsG,GAAG,CAAC5D,qBAAqB,CAC1CuD,mBAAmB,CAAC+B,mBAAmB,EACvC/E,MAAM,GAAItF,KAAK,CAACkK,OAAO,CAAC5E,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC,GAAI,EAAE,CAC1D,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAqC,SAAA,CAAAzB,MAAA,CAAAyB,QAAAA,EAAAA,SAAA,CAAA5B,IAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAA4B,SAAA,CAAAxB,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAqB,QAAA,CAAA,CAAA;OACF,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,UAAAV,GAAA,EAAA;AAAA,QAAA,OAAAwD,KAAA,CAAAjK,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;AAAA,KAAA,EAAA,EAAA4I,aAAA,CAKAH,mBAAmB,CAACiC,aAAa,CAAA,GAAA,YAAA;MAAA,IAAAC,KAAA,GAAAvF,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAsF,QAAAA,CACnCnF,MAAgD,EAAA;AAAA,QAAA,OAAAJ,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAiF,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/E,IAAA,GAAA+E,SAAA,CAAA9E,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA8E,cAAAA,SAAA,CAAA9E,IAAA,GAAA,CAAA,CAAA;cAAA,OAElCxD,KAAA,CAAKsG,GAAG,CAAC5D,qBAAqB,CAC1CuD,mBAAmB,CAACiC,aAAa,EACjCjF,MAAM,GAAItF,KAAK,CAACkK,OAAO,CAAC5E,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC,GAAI,EAAE,CAC1D,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAqF,SAAA,CAAAzE,MAAA,CAAAyE,QAAAA,EAAAA,SAAA,CAAA5E,IAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAA4E,SAAA,CAAAxE,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAsE,QAAA,CAAA,CAAA;OACF,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,UAAA1D,GAAA,EAAA;AAAA,QAAA,OAAAyD,KAAA,CAAAnK,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;AAAA,KAAA,EAAA,EAAA4I,aAAA,CAKAH,mBAAmB,CAACsC,cAAc,CAAA,GAAA3F,iBAAA,eAAAC,mBAAA,EAAA,CAAAC,IAAA,CACjC,SAAA0F,QAAA,GAAA;AAAA,MAAA,IAAA3C,MAAA,CAAA;AAAA,MAAA,OAAAhD,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAqF,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAnF,IAAA,GAAAmF,SAAA,CAAAlF,IAAA;AAAA,UAAA,KAAA,CAAA;AAAAkF,YAAAA,SAAA,CAAAnF,IAAA,GAAA,CAAA,CAAA;AAAAmF,YAAAA,SAAA,CAAAlF,IAAA,GAAA,CAAA,CAAA;YAAA,OAGYxD,KAAA,CAAKsG,GAAG,CAAChC,iBAAiB,CAC9B9B,cAAc,CAACmG,UAAU,EACzB;cACEC,YAAY,EAAE5I,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAA;AAC7D,aAAA,CACF,CAAA;AAAA,UAAA,KAAA,CAAA;YANGsB,MAAM,GAAA6C,SAAA,CAAAhF,IAAA,CAAA;YAQZ1D,KAAA,CAAK1C,IAAI,CAACjB,cAAc,CAACsM,UAAU,EAAEtI,cAAc,CAACE,YAAY,CAAC,CAAA;AAAC,YAAA,OAAAmI,SAAA,CAAA7E,MAAA,CAAA,QAAA,EAE3DgC,MAAM,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA6C,YAAAA,SAAA,CAAAnF,IAAA,GAAA,CAAA,CAAA;YAAAmF,SAAA,CAAA5C,EAAA,GAAA4C,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,MAEP5H,gBAAgB,CAAA4H,SAAA,CAAA5C,EAAM,CAAC,CAAA;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAA4C,SAAA,CAAA5E,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAA0E,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAEhC,CAAApC,CAAAA,EAAAA,aAAA,CAMFH,mBAAmB,CAAC4C,WAAW,CAAA,GAAA,YAAA;MAAA,IAAAC,KAAA,GAAAlG,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAiG,QAAAA,CACjCC,CAAkC,EAAA;AAAA,QAAA,OAAAnG,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAA6F,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3F,IAAA,GAAA2F,SAAA,CAAA1F,IAAA;AAAA,YAAA,KAAA,CAAA;cAAA,OAAA0F,SAAA,CAAArF,MAAA,CAAA,QAAA,EAE3B3C,UAAU,CACflB,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACJ,OAAO,CAAC,IAAIF,MAAM,CAAC,CAAC,CAAC,CAC3D,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAiI,SAAA,CAAApF,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAiF,QAAA,CAAA,CAAA;OACF,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,UAAA/D,GAAA,EAAA;AAAA,QAAA,OAAA8D,KAAA,CAAA9K,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;AAAA,KAAA,EAAA,EAAA4I,aAAA,CAMAH,mBAAmB,CAACkD,uBAAuB,CAAA,GAAA,YAAA;MAAA,IAAAC,KAAA,GAAAxG,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAuG,QAAAA,CAC7CL,CAAkC,EAAA;AAAA,QAAA,OAAAnG,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAkG,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,IAAA,GAAAgG,SAAA,CAAA/F,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,MAE5B1C,gBAAgB,CAACT,cAAc,CAACO,YAAY,CAAC,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAA2I,SAAA,CAAAzF,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAuF,QAAA,CAAA,CAAA;OACpD,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,UAAApE,GAAA,EAAA;AAAA,QAAA,OAAAmE,KAAA,CAAApL,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;AAAA,KAAA,EAAA,EAAA4I,aAAA,CAMAH,mBAAmB,CAACuD,0BAA0B,CAAA,GAAA,YAAA;MAAA,IAAAC,MAAA,GAAA7G,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAA4G,QAAAA,CAChDzG,MAAuC,EAAA;AAAA,QAAA,OAAAJ,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAuG,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAArG,IAAA,GAAAqG,SAAA,CAAApG,IAAA;AAAA,YAAA,KAAA,CAAA;AAAAoG,cAAAA,SAAA,CAAApG,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAEjCxD,KAAA,CAAKuG,WAAW,CAACtD,MAAM,CAAC,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAA2G,SAAA,CAAA/F,MAAA,CAAA+F,QAAAA,EAAAA,SAAA,CAAAlG,IAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAkG,SAAA,CAAA9F,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAA4F,QAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,UAAA3D,GAAA,EAAA;AAAA,QAAA,OAAA0D,MAAA,CAAAzL,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;AAAA,KAAA,EAAA,EAAA4I,aAAA,CAAA,CAAA;IAtQhCpG,KAAA,CAAK6J,cAAc,EAAE,CAAA;IACrB7J,KAAA,CAAK8J,8BAA8B,EAAE,CAAA;IACrC9J,KAAA,CAAK+J,gBAAgB,EAAE,CAAA;AACvBjL,IAAAA,MAAM,CAACkL,gBAAgB,CAAC,MAAM,EAAE,YAAK;AACnChK,MAAAA,KAAA,CAAK1C,IAAI,CAACjB,cAAc,CAAC4N,OAAO,EAAE;AAChC9I,QAAAA,OAAO,EAAED,UAAU,CACjBlB,KAAA,CAAKuC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACJ,OAAO,CAAC,IAAIF,MAAM,CAAC,CAAC,CAAC,CAAA;AAE7D,OAAA,CAAC,CAAA;MACFjB,KAAA,CAAKkK,cAAc,EAAE,CAAA;MACrBlK,KAAA,CAAKmK,cAAc,EAAE,CAAA;AACvB,KAAC,CAAC,CAAA;AAAC,IAAA,OAAAnK,KAAA,CAAA;AACL,GAAA;AAEA;;;AAGG;EAHHE,cAAA,CAAAgG,QAAA,EAAAC,aAAA,CAAA,CAAA;AAAA,EAAA,IAAA1J,MAAA,GAAAyJ,QAAA,CAAAxJ,SAAA,CAAA;AAAAD,EAAAA,MAAA,CAIO2N,WAAW,GAAX,SAAAA,cAAW;AAChB;AACA,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA;;;;;;;AAOG,MAPH;AAAA3N,EAAAA,MAAA,CAQa0G,OAAO;AAAA;AAAA,EAAA,YAAA;IAAA,IAAAkH,QAAA,gBAAAzH,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAb,SAAAwH,SAAAA,CAAAC,MAAA,EAAA;MAAA,IAAAC,oBAAA,EAAAC,cAAA,CAAA;MAAA,IAAAzH,MAAA,EAAAC,MAAA,CAAA;AAAA,MAAA,OAAAJ,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAsH,WAAAC,UAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAApH,IAAA,GAAAoH,UAAA,CAAAnH,IAAA;AAAA,UAAA,KAAA,CAAA;YACLR,MAAM,GAAAuH,MAAA,CAANvH,MAAM,EACNC,MAAM,GAAAsH,MAAA,CAANtH,MAAM,CAAA;AAAA0H,YAAAA,UAAA,CAAAnH,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAAA,CAAAgH,oBAAA,GAEQ,CAAAC,cAAA,GAAI,IAAA,CAAC7D,OAAO,EAAC5D,MAAM,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAApBwH,oBAAA,CAAAvK,IAAA,CAAAwK,cAAA,EAAuBxH,MAAM,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA0H,UAAA,CAAA9G,MAAA,CAAA8G,QAAAA,EAAAA,UAAA,CAAAjH,IAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAiH,UAAA,CAAA7G,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAwG,SAAA,EAAA,IAAA,CAAA,CAAA;KAC7C,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAnH,QAAA6C,GAAA,EAAA;AAAA,MAAA,OAAAqE,QAAA,CAAArM,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAA2F,OAAA,CAAA;AAAA,GAAA,EAAA,CAAA;AAqOD;;;;AAIG;AAJH1G,EAAAA,MAAA,CAKcyN,cAAc;AAAA;AAAA,EAAA,YAAA;IAAA,IAAAU,eAAA,gBAAAhI,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAApB,SAAA+H,SAAA,GAAA;MAAA,IAAA1D,YAAA,EAAA5C,SAAA,EAAAuG,mBAAA,EAAA/D,UAAA,EAAAgE,QAAA,CAAA;AAAA,MAAA,OAAAlI,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAA4H,WAAAC,UAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA1H,IAAA,GAAA0H,UAAA,CAAAzH,IAAA;AAAA,UAAA,KAAA,CAAA;YACA2D,YAAY,GAAG,IAAI,CAAC5E,OAAO,CAACd,QAAQ,CAACF,cAAc,CAAC4F,YAAY,CAAC,CAAA;YACjE5C,SAAS,GAAG,IAAI,CAAChC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAC,CAAA;YAAA,IAC7D4C,EAAAA,YAAY,IAAI,CAAC5C,SAAS,CAAA,EAAA;AAAA0G,cAAAA,UAAA,CAAAzH,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;AAAAyH,YAAAA,UAAA,CAAA1H,IAAA,GAAA,CAAA,CAAA;AAAA0H,YAAAA,UAAA,CAAAzH,IAAA,GAAA,CAAA,CAAA;YAAA,OAGlB,IAAI,CAAC8C,GAAG,CAAChC,iBAAiB,CAC9B9B,cAAc,CAAC0E,oBAAoB,EACnC;AACEC,cAAAA,YAAY,EAAZA,YAAAA;AACD,aAAA,CACF,CAAA;AAAA,UAAA,KAAA,CAAA;YANGJ,UAAU,GAAAkE,UAAA,CAAAvH,IAAA,CAAA;AAQhB,YAAA,IAAI,CAACnB,OAAO,CAACR,KAAK,EAAE,CAAA;AACpB,YAAA,IAAI,CAACQ,OAAO,CAACX,QAAQ,CACnBL,cAAc,CAACgD,SAAS,EACxBwC,UAAU,CAACK,OAAO,CAAC7C,SAAS,CAC7B,CAAA;AAAC,YAAA,IAEGwC,UAAU,CAACK,OAAO,CAAC7C,SAAS,EAAA;AAAA0G,cAAAA,UAAA,CAAAzH,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;YAAA,MACzBnD,cAAc,CAACC,aAAa,CAAA;AAAA,UAAA,KAAA,EAAA;AAG9ByK,YAAAA,QAAQ,GAAG,CACf,CAAAD,CAAAA,mBAAA,GAAA/D,UAAU,CAACK,OAAO,KAAA0D,IAAAA,IAAAA,CAAAA,mBAAA,GAAlBA,mBAAA,CAAoBI,UAAU,KAAAJ,IAAAA,IAAAA,CAAAA,mBAAA,GAA9BA,mBAAA,CAA0C,QAAA,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAA1CA,mBAAA,CAA4CC,QAAQ,KAAI,EAAE,EAC1DI,GAAG,CAAC,UAACC,OAAO,EAAA;AAAA,cAAA,OACZA,OAAO,CAACvM,QAAQ,CAAC,GAAG,CAAC,GAAGuM,OAAO,CAAChK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAGgK,OAAO,CAAA;aAC9D,CAAA,CAAA;AACD,YAAA,IAAI,CAAC7I,OAAO,CAACX,QAAQ,CAACL,cAAc,CAACwG,OAAO,EAAEgD,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YAChE,IAAI,CAACzN,IAAI,CAACjB,cAAc,CAACyL,eAAe,EAAEiD,QAAQ,CAAC,CAAA;AAACE,YAAAA,UAAA,CAAAzH,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,UAAA,KAAA,EAAA;AAAAyH,YAAAA,UAAA,CAAA1H,IAAA,GAAA,EAAA,CAAA;YAAA0H,UAAA,CAAAnF,EAAA,GAAAmF,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEpD,YAAA,IAAI,CAAC1I,OAAO,CAACR,KAAK,EAAE,CAAA;AAAC,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAkJ,UAAA,CAAAnH,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAA+G,SAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;KAG1B,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAX,cAAA,GAAA;AAAA,MAAA,OAAAU,eAAA,CAAA5M,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAA0M,cAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;AAIG;AAJH,GAAA;AAAAzN,EAAAA,MAAA,CAKc0N,cAAc;AAAA;AAAA,EAAA,YAAA;IAAA,IAAAkB,eAAA,gBAAAzI,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAApB,SAAAwI,SAAA,GAAA;MAAA,IAAAnE,YAAA,EAAA5C,SAAA,CAAA;AAAA,MAAA,OAAA1B,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAmI,WAAAC,UAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAjI,IAAA,GAAAiI,UAAA,CAAAhI,IAAA;AAAA,UAAA,KAAA,CAAA;YACA2D,YAAY,GAAG,IAAI,CAAC5E,OAAO,CAACd,QAAQ,CAACF,cAAc,CAAC4F,YAAY,CAAC,CAAA;YACjE5C,SAAS,GAAG,IAAI,CAAChC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAC,CAAA;YAAA,IAC7DA,EAAAA,SAAS,IAAI,CAAC4C,YAAY,CAAA,EAAA;AAAAqE,cAAAA,UAAA,CAAAhI,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;AAAAgI,YAAAA,UAAA,CAAAjI,IAAA,GAAA,CAAA,CAAA;AAAAiI,YAAAA,UAAA,CAAAhI,IAAA,GAAA,CAAA,CAAA;YAAA,OAEpB,IAAI,CAACL,OAAO,CAAW;cAC3BH,MAAM,EAAEiD,mBAAmB,CAACY,mBAAAA;AAC7B,aAAA,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA2E,YAAAA,UAAA,CAAAhI,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,UAAA,KAAA,CAAA;AAAAgI,YAAAA,UAAA,CAAAjI,IAAA,GAAA,CAAA,CAAA;YAAAiI,UAAA,CAAA1F,EAAA,GAAA0F,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEF,YAAA,IAAI,CAACjJ,OAAO,CAACR,KAAK,EAAE,CAAA;AAAC,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAyJ,UAAA,CAAA1H,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAwH,SAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;KAG1B,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAnB,cAAA,GAAA;AAAA,MAAA,OAAAkB,eAAA,CAAArN,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAA2M,cAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;AAIG;AAJH,GAAA;AAAA1N,EAAAA,MAAA,CAKQoN,cAAc,GAAd,SAAAA,iBAAc;AACpB,IAAA,IAAI,CAAC/K,MAAM,CAAC2M,QAAQ,EAAE;MACpB3M,MAAM,CAAC2M,QAAQ,GAAG,IAAI,CAAA;AACxB,KAAC,MAAM;AACL,MAAA,IACE3M,MAAM,CAAC2M,QAAQ,CAACC,SAAS,IACzB/N,KAAK,CAACkK,OAAO,CAAC/I,MAAM,CAAC2M,QAAQ,CAACC,SAAS,CAAC,EACxC;QACA5M,MAAM,CAAC2M,QAAQ,CAACC,SAAS,CAACzO,IAAI,CAAC,IAAI,CAAC,CAAA;AACtC,OAAC,MAAM;QACL6B,MAAM,CAAC2M,QAAQ,CAACC,SAAS,GAAG,CAAC5M,MAAM,CAAC2M,QAAQ,EAAE,IAAI,CAAC,CAAA;AACrD,OAAA;AACF,KAAA;AACF,GAAA;AAEA;;;;;;AAMG,MANH;AAAAhP,EAAAA,MAAA,CAOQsN,gBAAgB,GAAhB,SAAAA,mBAAgB;AACtBjL,IAAAA,MAAM,CAAC6M,aAAa,CAClB,IAAIC,WAAW,CAAC,0BAA0B,EAAE;AAC1CC,MAAAA,MAAM,EAAEC,MAAM,CAACC,MAAM,CAAC;AAAEC,QAAAA,IAAI,EAAExM,YAAY;AAAEyM,QAAAA,QAAQ,EAAE,IAAA;OAAM,CAAA;AAC7D,KAAA,CAAC,CACH,CAAA;AACH,GAAA;AAEA;;;;;;AAMG,MANH;AAAAxP,EAAAA,MAAA,CAOQqN,8BAA8B,GAA9B,SAAAA,iCAA8B;AAAA,IAAA,IAAAoC,MAAA,GAAA,IAAA,CAAA;AACpCpN,IAAAA,MAAM,CAACkL,gBAAgB,CAAC,yBAAyB,EAAE,YAAK;MACtDkC,MAAI,CAACnC,gBAAgB,EAAE,CAAA;AACzB,KAAC,CAAC,CAAA;GACH,CAAA;AAAA,EAAA,OAAA7D,QAAA,CAAA;AAAA,CAAA,CAzX2B5J,YAAY,CAAA;;ACvE1C,IAAY6P,gBAiBX,CAAA;AAjBD,CAAA,UAAYA,gBAAgB,EAAA;AAC1B;;AAEG;AACHA,EAAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB;;AAEG;AACHA,EAAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC;;AAEG;AACHA,EAAAA,gBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC;;AAEG;AACHA,EAAAA,gBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACnD,CAAC,EAjBWA,gBAAgB,KAAhBA,gBAAgB,GAiB3B,EAAA,CAAA,CAAA;;ACJD;;;AAGG;AACH,IAAaC,SAAS,gBAAA,YAAA;EAOpB,SAAAA,SAAAA,CAAYC,MAAwB,EAAA;AANpC;;;AAGG;AAHH,IAAA,IAAA,CAIOJ,QAAQ,GAAA,KAAA,CAAA,CAAA;AA0Kf;;;AAGG;AAHH,IAAA,IAAA,CAIQ1J,OAAO,GAAe,IAAIf,UAAU,EAAE,CAAA;IA3K5C,IAAI6K,MAAM,IAANA,IAAAA,IAAAA,MAAM,CAAElO,KAAK,IAAIkO,MAAM,IAANA,IAAAA,IAAAA,MAAM,CAAEC,MAAM,EAAE;MACnCxN,MAAM,CAACC,QAAQ,GAAAwN,QAAA,CAAA,EAAA,EACTzN,MAAM,CAACC,QAAQ,IAAI,EAAE,EAAA;AACzBZ,QAAAA,KAAK,EAAEkO,MAAM,IAANA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAElO,KAAK;AACpBmO,QAAAA,MAAM,EAAED,MAAM,IAANA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEC,MAAAA;OACjB,CAAA,CAAA;AACH,KAAA;IAEA,IAAI,CAAC/J,OAAO,CAACX,QAAQ,CACnBL,cAAc,CAACJ,OAAO,EACtB,IAAI,CAACoB,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACJ,OAAO,CAAC,IAAIF,MAAM,CAAC,CAAC,CAAC,CAC3D,CAAA;AACD,IAAA,IAAI,CAACgL,QAAQ,GAAG,IAAI,CAACO,eAAe,EAAE,CAAA;IACtC,IAAI,CAACC,YAAY,EAAE,CAAA;AACnB,IAAA,IAAI,CAACR,QAAQ,CAACtP,EAAE,CAACN,cAAc,CAACqL,IAAI,EAAE,IAAI,CAACgF,aAAa,CAAC,CAAA;AAC3D,GAAA;AAEA;;;;;;;;AAQG;AARH,EAAA,IAAAjQ,MAAA,GAAA2P,SAAA,CAAA1P,SAAA,CAAA;AAAAD,EAAAA,MAAA,CASO2N,WAAW,GAAX,SAAAA,cAAW;AAChB,IAAA,OAAO,IAAI,CAAC6B,QAAQ,CAAC7B,WAAW,EAAE,CAAA;AACpC,GAAA;AAEA;;;AAGG,MAHH;AAAA3N,EAAAA,MAAA,CAIOkQ,iBAAiB,GAAjB,SAAAA,oBAAiB;AACtB,IAAA,OACE,IAAI,CAACvC,WAAW,EAAE,IAClB,CAAC,CAAC,IAAI,CAAC7H,OAAO,CAACd,QAAQ,CAACF,cAAc,CAAC4F,YAAY,CAAC,IACpD,CAAC,IAAI,CAAC5E,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAC,CAAA;AAEpD,GAAA;AAEA;;;;;AAKG,MALH;AAAA9H,EAAAA,MAAA,CAMawN,OAAO;AAAA;AAAA,EAAA,YAAA;IAAA,IAAA2C,QAAA,gBAAAhK,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAb,SAAAC,OAAA,GAAA;AAAA,MAAA,OAAAF,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAAAF,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OACQ,IAAI,CAACyI,QAAQ,CAAC9I,OAAO,CAAC;cACjCH,MAAM,EAAEiD,mBAAmB,CAACY,mBAAAA;AAC7B,aAAA,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAAvD,QAAA,CAAAO,MAAA,CAAAP,QAAAA,EAAAA,QAAA,CAAAI,IAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAJ,QAAA,CAAAQ,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAf,OAAA,EAAA,IAAA,CAAA,CAAA;KACH,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAkH,OAAA,GAAA;AAAA,MAAA,OAAA2C,QAAA,CAAA5O,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAyM,OAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;;AAKG;AALH,GAAA;AAAAxN,EAAAA,MAAA,CAMakM,UAAU;AAAA;AAAA,EAAA,YAAA;IAAA,IAAAkE,WAAA,gBAAAjK,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAhB,SAAAqB,QAAA,GAAA;AAAA,MAAA,OAAAtB,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAgB,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAd,IAAA,GAAAc,SAAA,CAAAb,IAAA;AAAA,UAAA,KAAA,CAAA;AAAAa,YAAAA,SAAA,CAAAb,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OACQ,IAAI,CAACyI,QAAQ,CAAC9I,OAAO,CAAC;cACjCH,MAAM,EAAEiD,mBAAmB,CAACsC,cAAAA;AAC7B,aAAA,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAAlE,SAAA,CAAAR,MAAA,CAAAQ,QAAAA,EAAAA,SAAA,CAAAX,IAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAW,SAAA,CAAAP,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAK,QAAA,EAAA,IAAA,CAAA,CAAA;KACH,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAwE,UAAA,GAAA;AAAA,MAAA,OAAAkE,WAAA,CAAA7O,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAmL,UAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;;;;;;AASG;AATH,GAAA;AAAAlM,EAAAA,MAAA,CAUaqQ,eAAe;AAAA;AAAA,EAAA,YAAA;IAAA,IAAAC,gBAAA,gBAAAnK,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAArB,SAAA8B,QAAAA,CAAsB3B,MAI5B,EAAA;AAAA,MAAA,OAAAJ,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAyB,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAvB,IAAA,GAAAuB,SAAA,CAAAtB,IAAA;AAAA,UAAA,KAAA,CAAA;AAAAsB,YAAAA,SAAA,CAAAtB,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OACc,IAAI,CAACyI,QAAQ,CAAC9I,OAAO,CAAS;cACzCH,MAAM,EAAEiD,mBAAmB,CAAC+B,mBAAmB;cAC/C/E,MAAM,EAAE,CAACA,MAAM,CAAA;AAChB,aAAA,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA6B,SAAA,CAAAjB,MAAA,CAAAiB,QAAAA,EAAAA,SAAA,CAAApB,IAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAoB,SAAA,CAAAhB,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAc,QAAA,EAAA,IAAA,CAAA,CAAA;KACH,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAkI,gBAAA/I,EAAA,EAAA;AAAA,MAAA,OAAAgJ,gBAAA,CAAA/O,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAsP,eAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;;;AAMG;AANH,GAAA;AAAArQ,EAAAA,MAAA,CAOauQ,WAAW;AAAA;AAAA,EAAA,YAAA;IAAA,IAAAC,YAAA,gBAAArK,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAjB,SAAAqC,QAAAA,CAAkBrF,OAAe,EAAA;AAAA,MAAA,OAAA+C,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAiC,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAA9B,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA8B,YAAAA,SAAA,CAAA9B,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OACzB,IAAI,CAACyI,QAAQ,CAAC9I,OAAO,CAAS;cACzCH,MAAM,EAAEiD,mBAAmB,CAACiC,aAAa;cACzCjF,MAAM,EAAE,CAACnD,OAAO,EAAE,IAAI,CAACyC,OAAO,CAACd,QAAQ,CAAC,SAAS,CAAC,CAAA;AACnD,aAAA,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA6D,SAAA,CAAAzB,MAAA,CAAAyB,QAAAA,EAAAA,SAAA,CAAA5B,IAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAA4B,SAAA,CAAAxB,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAqB,QAAA,EAAA,IAAA,CAAA,CAAA;KACH,CAAA,CAAA,CAAA;AAAA,IAAA,SAAA6H,YAAAhJ,GAAA,EAAA;AAAA,MAAA,OAAAiJ,YAAA,CAAAjP,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAwP,WAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;;;AAMG;AANH,GAAA;AAAAvQ,EAAAA,MAAA,CAOa8J,WAAW;AAAA;AAAA,EAAA,YAAA;IAAA,IAAA2G,YAAA,gBAAAtK,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAjB,SAAAsF,QAAAA,CAAkBjH,OAAe,EAAA;AAAA,MAAA,OAAA0B,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAiF,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/E,IAAA,GAAA+E,SAAA,CAAA9E,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA8E,YAAAA,SAAA,CAAA9E,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OACzB,IAAI,CAACyI,QAAQ,CAAC9I,OAAO,CAAO;cACvCH,MAAM,EAAEiD,mBAAmB,CAACuD,0BAA0B;AACtDvG,cAAAA,MAAM,EAAE;gBAAE9B,OAAO,EAAED,UAAU,CAACC,OAAO,CAAA;AAAG,eAAA;AACzC,aAAA,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAAmH,SAAA,CAAAzE,MAAA,CAAAyE,QAAAA,EAAAA,SAAA,CAAA5E,IAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAA4E,SAAA,CAAAxE,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAsE,QAAA,EAAA,IAAA,CAAA,CAAA;KACH,CAAA,CAAA,CAAA;AAAA,IAAA,SAAA7B,YAAAtC,GAAA,EAAA;AAAA,MAAA,OAAAiJ,YAAA,CAAAlP,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAA+I,WAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;;AAKG;AALH,GAAA;AAAA9J,EAAAA,MAAA,CAMO0Q,QAAQ,GAAR,SAAAA,WAAQ;AACb,IAAA,OAAO,IAAI,CAAC5K,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACJ,OAAO,CAAC,IAAIF,MAAM,CAAC,CAAC,CAAC,CAAA;AACnE,GAAA;AAEA;;;;;;AAMG,MANH;AAAAxE,EAAAA,MAAA,CAOa2Q,oBAAoB;AAAA;AAAA,EAAA,YAAA;IAAA,IAAAC,qBAAA,gBAAAzK,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAA1B,SAAA0F,QAAAA,CACL8E,MAAc,EAAA;AAAA,MAAA,IAAAhH,GAAA,CAAA;AAAA,MAAA,OAAAzD,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAAqF,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAnF,IAAA,GAAAmF,SAAA,CAAAlF,IAAA;AAAA,UAAA,KAAA,CAAA;AAER8C,YAAAA,GAAG,GAAG,IAAI7D,GAAG,EAAE,CAAA;AACrB,YAAA,IAAI,CAAC8K,gBAAgB,CAACpB,gBAAgB,CAACqB,sBAAsB,EAAE;AAAEF,cAAAA,MAAM,EAANA,MAAAA;AAAQ,aAAA,CAAC,CAAA;AAAC5E,YAAAA,SAAA,CAAAlF,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAC9D8C,GAAG,CAAChC,iBAAiB,CAChC9B,cAAc,CAAC4K,oBAAoB,EACnC;cAAEjP,KAAK,EAAEF,QAAQ,EAAE;AAAEqP,cAAAA,MAAM,EAANA,MAAAA;AAAM,aAAE,CAC9B,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA5E,SAAA,CAAA7E,MAAA,CAAA6E,QAAAA,EAAAA,SAAA,CAAAhF,IAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAgF,SAAA,CAAA5E,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAA0E,QAAA,EAAA,IAAA,CAAA,CAAA;KACF,CAAA,CAAA,CAAA;AAAA,IAAA,SAAA4E,qBAAA3I,GAAA,EAAA;AAAA,MAAA,OAAA4I,qBAAA,CAAArP,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAA4P,oBAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;;;AAMG;AANH,GAAA;EAAA3Q,MAAA,CAOOE,EAAE,GAAF,SAAAA,GAAGC,KAAwB,EAAEC,QAAkB,EAAA;IACpD,IAAI,CAACoP,QAAQ,CAACtP,EAAE,CAACC,KAAK,EAAEC,QAAQ,CAAC,CAAA;AACjC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA;;;;;;AAMG,MANH;EAAAJ,MAAA,CAOOS,cAAc,GAAd,SAAAA,eAAeN,KAAwB,EAAEC,QAAkB,EAAA;IAChE,IAAI,CAACoP,QAAQ,CAAC/O,cAAc,CAACN,KAAK,EAAEC,QAAQ,CAAC,CAAA;AAC7C,IAAA,OAAO,IAAI,CAAA;GACZ,CAAA;AAQD;;;AAGG;AAHHJ,EAAAA,MAAA,CAIQ+P,eAAe,GAAf,SAAAA,kBAAe;AAAA,IAAA,IAAAiB,gBAAA,CAAA;AACrB,IAAA,IAAIxB,QAAQ,GAAAwB,CAAAA,gBAAA,GAAG3O,MAAM,CAAC2M,QAAQ,KAAAgC,IAAAA,IAAAA,CAAAA,gBAAA,GAAfA,gBAAA,CAAiB/B,SAAS,KAA1B+B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAA,CAA4BC,IAAI,CAC7C,UAACzB,QAA4B,EAAA;AAAA,MAAA,OAC3BA,QAAQ,YAAY/F,QAAQ,IAAI+F,QAAQ,CAAC5F,gBAAgB,CAAA;KAC5D,CAAA,CAAA;AACD,IAAA,IACE,CAAC4F,QAAQ,IACTnN,MAAM,CAAC2M,QAAQ,YAAYvF,QAAQ,IACnCpH,MAAM,CAAC2M,QAAQ,CAACpF,gBAAgB,EAChC;MACA4F,QAAQ,GAAGnN,MAAM,CAAC2M,QAAQ,CAAA;AAC5B,KAAA;IACA,IAAI,CAACQ,QAAQ,EAAE;AACbA,MAAAA,QAAQ,GAAG,IAAI/F,QAAQ,EAAE,CAAA;AAC3B,KAAA;AACA,IAAA,OAAO+F,QAAQ,CAAA;AACjB,GAAA;AAEA;;;;;AAKG,MALH;AAAAxP,EAAAA,MAAA,CAMQiQ,aAAa,GAAb,SAAAA,aAAAA,CAAAjG,IAAA,EAG2B;AAAA,IAAA,IAAAkH,gBAAA,CAAA;AAAA,IAAA,IAFjClG,UAAU,GAAAhB,IAAA,CAAVgB,UAAU;MACVD,iBAAiB,GAAAf,IAAA,CAAjBe,iBAAiB,CAAA;IAEjB,IAAMoG,MAAM,GAAAD,CAAAA,gBAAA,GAAG7O,MAAM,CAAC+O,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAfF,gBAAA,CAAiBC,MAAM,CAAA;IACtC,IAAME,WAAW,0DAAwDrG,UAAY,CAAA;AACrF,IAAA,IACEmG,MAAM,IACNA,MAAM,CAACG,gBAAgB,IACvBH,MAAM,CAACI,QAAQ,IACfJ,MAAM,CAACI,QAAQ,KAAK,SAAS,EAC7B;AACAJ,MAAAA,MAAM,CAACG,gBAAgB,CAACvG,iBAAiB,CAAC,CAAA;AAC5C,KAAC,MAAM;AACL1I,MAAAA,MAAM,CAACmP,IAAI,CAACH,WAAW,EAAE,QAAQ,CAAC,CAAA;AACpC,KAAA;AACF,GAAA;AAEA;;;;;;AAMG,MANH;AAAArR,EAAAA,MAAA,CAOc8Q,gBAAgB;AAAA;AAAA,EAAA,YAAA;AAAA,IAAA,IAAAW,iBAAA,gBAAAtL,iBAAA,eAAAC,mBAAA,EAAA,CAAAC,IAAA,CAAtB,SAAAiG,QAAAA,CACNtJ,IAAqB,EACrB/B,IAA8B,EAAA;MAAA,IAAAQ,gBAAA,EAAAiQ,iBAAA,CAAA;AAAA,MAAA,IAAA7B,MAAA,EAAAnO,KAAA,EAAAiQ,cAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAjI,GAAA,CAAA;AAAA,MAAA,OAAAzD,mBAAA,EAAA,CAAAO,IAAA,CAAA,SAAA6F,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3F,IAAA,GAAA2F,SAAA,CAAA1F,IAAA;AAAA,UAAA,KAAA,CAAA;AAExB8I,YAAAA,MAAM,GAAG,CAAApO,CAAAA,gBAAA,GAAAY,MAAM,CAACC,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAfb,gBAAA,CAAiBoO,MAAM,KAAIxN,MAAM,CAAC0P,QAAQ,CAACC,MAAM,CAAA;YAC1DtQ,KAAK,GAAGF,QAAQ,EAAE,CAAA;YAClBmQ,cAAc,GAAA,CAAAD,iBAAA,GAAGrP,MAAM,CAAC+O,QAAQ,KAAA,IAAA,IAAA,CAAAM,iBAAA,GAAfA,iBAAA,CAAiBP,MAAM,KAAA,IAAA,IAAA,CAAAO,iBAAA,GAAvBA,iBAAA,CAAyBO,cAAc,KAAA,IAAA,IAAA,CAAAP,iBAAA,GAAvCA,iBAAA,CAAyCQ,IAAI,KAAA,IAAA,GAAA,KAAA,CAAA,GAA7CR,iBAAA,CAA+CxI,EAAE,CAAA;AAAAuD,YAAAA,SAAA,CAAA3F,IAAA,GAAA,CAAA,CAAA;AAGhE+C,YAAAA,GAAG,GAAG,IAAI7D,GAAG,EAAE,CAAA;AAAAyG,YAAAA,SAAA,CAAA1F,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OACf8C,GAAG,CAAChC,iBAAiB,CACzB9B,cAAc,CAAC+K,gBAAgB,EAC/B;AACE9N,cAAAA,IAAI,EAAJA,IAAI;AACJ6M,cAAAA,MAAM,EAANA,MAAM;AACN8B,cAAAA,cAAc,EAAdA,cAAc;AACd1Q,cAAAA,IAAI,EAAA6O,QAAA,CAAA,EAAA,EACE7O,IAAI,IAAI,EAAE,EAAA;AACdkR,gBAAAA,OAAO,EAAE9P,MAAM,CAAC0P,QAAQ,CAACK,IAAI;AAC7B1Q,gBAAAA,KAAK,EAALA,KAAK;gBACLoG,SAAS,EAAE,IAAI,CAAChC,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACgD,SAAS,CAAC;gBAC1DvC,QAAQ,EAAE,IAAI,CAACO,OAAO,CAACd,QAAQ,CAACF,cAAc,CAACS,QAAQ,CAAC;AACxD8M,gBAAAA,SAAS,EAAEC,OAAO,CAAAV,CAAAA,iBAAA,GAACvP,MAAM,CAAC+O,QAAQ,KAAfQ,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAiBK,cAAc,CAAC;AACnDM,gBAAAA,eAAe,EAAAV,CAAAA,iBAAA,GAAExP,MAAM,CAAC+O,QAAQ,KAAA,IAAA,IAAA,CAAAS,iBAAA,GAAfA,iBAAA,CAAiBV,MAAM,KAAvBU,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAyBN,QAAQ;AAClDiB,gBAAAA,iBAAiB,EAAAV,CAAAA,iBAAA,GAAEzP,MAAM,CAAC+O,QAAQ,KAAA,IAAA,IAAA,CAAAU,iBAAA,GAAfA,iBAAA,CAAiBX,MAAM,KAAvBW,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAyBW,OAAO;AACnDC,gBAAAA,SAAS,EAAErQ,MAAM,CAACsQ,SAAS,CAACD,SAAAA;AAAS,eAAA,CAAA;AAExC,aAAA,CACF,CAAA;AAAA,UAAA,KAAA,CAAA;AAAAjG,YAAAA,SAAA,CAAA1F,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,UAAA,KAAA,CAAA;AAAA0F,YAAAA,SAAA,CAAA3F,IAAA,GAAA,CAAA,CAAA;YAAA2F,SAAA,CAAApD,EAAA,GAAAoD,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAA,SAAA,CAAApF,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAiF,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;KAIJ,CAAA,CAAA,CAAA;IAAA,SAAAwE,gBAAAA,CAAA7I,GAAA,EAAAM,GAAA,EAAA;AAAA,MAAA,OAAAkJ,iBAAA,CAAAlQ,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAA+P,gBAAA,CAAA;AAAA,GAAA,EAAA;AAED;;;;;AAKG;AALH,GAAA;AAAA9Q,EAAAA,MAAA,CAMQgQ,YAAY,GAAZ,SAAAA,eAAY;AAAA,IAAA,IAAAzM,KAAA,GAAA,IAAA,CAAA;AAClB,IAAA,IAAI,CAACuN,gBAAgB,CAACpB,gBAAgB,CAACkD,SAAS,CAAC,CAAA;AAEjD,IAAA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,OAAiB,EAAI;AAC5C,MAAA,IAAIA,OAAO,CAAC9R,MAAM,GAAG,CAAC,EAAE;AACtBuC,QAAAA,KAAI,CAACuN,gBAAgB,CAACpB,gBAAgB,CAACqD,eAAe,EAAE;AACtDD,UAAAA,OAAO,EAAEA,OAAAA;AACV,SAAA,CAAC,CAAA;AACJ,OAAA;KACD,CAAA;AAED,IAAA,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAQ;AAC9BzP,MAAAA,KAAI,CAACuN,gBAAgB,CAACpB,gBAAgB,CAACuD,kBAAkB,CAAC,CAAA;KAC3D,CAAA;IAED,IAAI,CAAC/S,EAAE,CAACN,cAAc,CAACyL,eAAe,EAAEwH,eAAe,CAAC,CAAA;IACxD,IAAI,CAAC3S,EAAE,CAACN,cAAc,CAACsM,UAAU,EAAE8G,kBAAkB,CAAC,CAAA;GACvD,CAAA;AAAA,EAAA,OAAArD,SAAA,CAAA;AAAA,CAAA,EAAA;;ACtSH;;AAEG;AACI,IAAMuD,iBAAiB,GAAGvD,UAAS;AAE1C,SAASwD,IAAIA,GAAA;AAAA,EAAA,IAAA1R,gBAAA,CAAA;EACX,IACE,EAAA,CAAAA,gBAAA,GAACY,MAAM,CAACC,QAAQ,KAAA,IAAA,IAAfb,gBAAA,CAAiBkO,SAAS,KAC3B,EAAEtN,MAAM,CAACC,QAAQ,CAACqN,SAAS,YAAYA,SAAS,CAAC,EACjD;IACAtN,MAAM,CAACC,QAAQ,GAAAwN,QAAA,CAAA,EAAA,EACTzN,MAAM,CAACC,QAAQ,IAAI,EAAE,EAAA;MACzBqN,SAAS,EAAE,IAAIA,SAAS,EAAE;KAC3B,CAAA,CAAA;AACH,GAAA;AACF,CAAA;AAEA;AACAwD,IAAI,EAAE;;;;"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.cjs.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","address","accountsChanged","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file diff --git a/example/dist/grindery-wallet-sdk.cjs.production.min.js b/example/dist/grindery-wallet-sdk.cjs.production.min.js index cd31c84..fa826ad 100644 --- a/example/dist/grindery-wallet-sdk.cjs.production.min.js +++ b/example/dist/grindery-wallet-sdk.cjs.production.min.js @@ -1,2 +1,2 @@ -"use strict";function e(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(e=function(){return!!t})()}function t(){t=function(){return n};var e,n={},r=Object.prototype,i=r.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new O(r||[]);return o(i,"_invoke",{value:k(e,n,a)}),i}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}n.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function N(){}function m(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==r&&i.call(D,s)&&(I=D);var j=m.prototype=y.prototype=Object.create(I);function T(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function n(r,o,a,s){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var r;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}})}function k(t,n,r){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(r.method=o,r.arg=a;;){var s=r.delegate;if(s){var c=A(s,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===d)throw i=w,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=h(t,n,r);if("normal"===u.type){if(i=r.done?w:f,u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=w,r.method="throw",r.arg=u.arg)}}}function A(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,A(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=h(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var a=o.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function U(t){if(t||""===t){var n=t[s];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function n(){for(;++r<t.length;)if(i.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return N.prototype=m,o(j,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:N,configurable:!0}),N.displayName=p(m,u,"GeneratorFunction"),n.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===N||"GeneratorFunction"===(t.displayName||t.name))},n.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},n.awrap=function(e){return{__await:e}},T(x.prototype),p(x.prototype,c,(function(){return this})),n.AsyncIterator=x,n.async=function(e,t,r,i,o){void 0===o&&(o=Promise);var a=new x(l(e,t,r,i),o);return n.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},T(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),n.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},n.values=U,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(L),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,i){return s.type="throw",s.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;L(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:U(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},n}function n(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function r(e){return function(){var t=this,r=arguments;return new Promise((function(i,o){var a=e.apply(t,r);function s(e){n(a,i,o,s,c,"next",e)}function c(e){n(a,i,o,s,c,"throw",e)}s(void 0)}))}}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s(e,t)}function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function c(t){var n="function"==typeof Map?new Map:void 0;return c=function(t){if(null===t||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,r)}function r(){return function(t,n,r){if(e())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(t.bind.apply(t,i));return r&&s(o,r.prototype),o}(t,arguments,a(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),s(r,t)},c(t)}var u;Object.defineProperty(exports,"__esModule",{value:!0}),function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(u||(u={}));var p,l=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var n=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,n)}return this},t.emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,n[0]),this.events.get(e).forEach((function(e){e.apply(void 0,n)}))),this},e}(),h=function(){for(var e,t="",n=document.querySelectorAll("[data-app-id]"),r=0;r<n.length;r++){var i=n[r],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},d=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},f={uuid:d(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},g=function(e){function t(t,n,r){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=n,i.data=r,i}return o(t,e),t}(c(Error)),w={PairingFailed:new g("Pairing failed",4900),Disconnected:new g("Disconnected",4900),UnsupportedMethod:new g("Unsupported Method",4200),Unauthorized:new g("Unauthorized",4100),NoResult:new g("No result",4900),NoAppId:new g("App ID is required",4900),UserRejected:new g("User Rejected Request",4001),ChainDisconnected:new g("Chain Disconnected",4901)},v=function(e){return e instanceof g?new g(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new g(e.message||"Unknown error",4900,e):new g("Unknown error",4900,e)},y=["eip155:137","eip155:56","eip155:204"],N=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},m=function(e){return"eip155:"+parseInt(e,16)},I="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(p||(p={}));var M,D=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var n=this.getSnapshot();return n[e]=t,this.saveSnapshot(n),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||d(),chainId:this.getSnapshot().chainId||y[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(I)||"{}")}catch(e){throw localStorage.setItem(I,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(I,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(M||(M={}));var j,T=function(){function e(){}var n=e.prototype;return n.sendAndWaitRpcRequest=function(){var e=r(t().mark((function e(n,r,i){var o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(n,r);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.sendRpcRequest=function(){var e=r(t().mark((function e(n,r){var i;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new D,e.next=3,this.sendRpcApiRequest(M.request,{sessionId:i.getValue(p.sessionId),scope:i.getValue(p.chainId),request:{method:n,params:r}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.waitRpcRequest=function(){var e=r(t().mark((function e(n,r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(M.waitForRequestResult,{requestToken:n,timeout:r});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.sendRpcApiRequest=function(){var e=r(t().mark((function e(n,r){var i,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+n,params:r||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new g(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw w.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new g(e.t0.message,500,e.t0);case 18:throw new g("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,n){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(j||(j={}));var x,k=function(e){function n(){var n,i,o,a,s,c,l,d,f;return(i=e.call(this)||this).isGrinderyWallet=!0,i.storage=new D,i.rpc=new T,i.switchChain=function(){var e=r(t().mark((function e(n){var r,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=m(r=n.chainId),y.includes(o)){e.next=4;break}throw v(w.ChainDisconnected);case 4:return i.storage.setValue(p.chainId,o),i.emit(u.chainChanged,{chainId:r}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),i.methods=((n={})[j.eth_requestAccounts]=(f=r(t().mark((function e(n){var r,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!i.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,i.request({method:j.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),i.storage.setValue(p.sessionId,"");case 10:if(!i.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:i.storage.getValue(p.pairingToken)});case 14:if(r=e.sent,i.storage.clear(),i.storage.setValue(p.sessionId,r.session.sessionId),r.session.sessionId){e.next=19;break}throw w.PairingFailed;case 19:return e.next=21,i.request({method:j.eth_accounts,params:n||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),i.storage.clear();case 27:return e.prev=27,i.storage.clear(),e.next=31,i.rpc.sendRpcApiRequest(M.requestPairing,{appId:h(),clientId:i.storage.getValue(p.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw w.PairingFailed;case 34:return i.storage.setValue(p.pairingToken,o.pairingToken),i.storage.setValue(p.connectUrl,o.connectUrl),i.storage.setValue(p.connectUrlBrowser,o.connectUrlBrowser),i.storage.setValue(p.shortToken,o.shortToken),i.emit(u.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(i.storage.setValue(p.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw w.PairingFailed;case 45:return i.storage.setValue(p.pairingToken,""),i.storage.setValue(p.connectUrl,""),i.storage.setValue(p.connectUrlBrowser,""),i.storage.setValue(p.shortToken,""),e.next=51,i.request({method:j.eth_accounts,params:n||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),n[j.eth_accounts]=(d=r(t().mark((function e(n){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendAndWaitRpcRequest(j.eth_accounts,n?Array.isArray(n)?n:[n]:[]);case 3:return i.emit(u.accountsChanged,r=e.sent),i.storage.setValue(p.address,r[0]||""),e.abrupt("return",r);case 9:throw e.prev=9,e.t0=e.catch(0),v(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return d.apply(this,arguments)}),n[j.eth_sendTransaction]=(l=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.eth_sendTransaction,n?Array.isArray(n)?n:[n]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return l.apply(this,arguments)}),n[j.personal_sign]=(c=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.personal_sign,n?Array.isArray(n)?n:[n]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),n[j.gws_disconnect]=r(t().mark((function e(){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendRpcApiRequest(M.disconnect,{sessionToken:i.storage.getValue(p.sessionId)});case 3:return n=e.sent,i.emit(u.disconnect,w.Disconnected),e.abrupt("return",n);case 8:throw e.prev=8,e.t0=e.catch(0),v(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),n[j.eth_chainId]=(s=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",N(i.storage.getValue(p.chainId)||y[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),n[j.wallet_addEthereumChain]=(a=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw v(w.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),n[j.wallet_switchEthereumChain]=(o=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.switchChain(n);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),n),i.injectProvider(),i.listenForRequestProviderEvents(),i.announceProvider(),window.addEventListener("load",(function(){i.emit(u.connect,{chainId:N(i.storage.getValue(p.chainId)||y[0])}),i.restorePairing(),i.restoreSession()})),i}o(n,e);var i=n.prototype;return i.isConnected=function(){return!0},i.request=function(){var e=r(t().mark((function e(n){var r,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.method,a=n.params,e.next=3,null==(r=(i=this.methods)[o])?void 0:r.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),i.restorePairing=function(){var e=r(t().mark((function e(){var n,r,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.storage.getValue(p.pairingToken),r=this.storage.getValue(p.sessionId),!n||r){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:n});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(p.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw w.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(p.address,a[0]||""),this.emit(u.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),i.restoreSession=function(){var e=r(t().mark((function e(){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.storage.getValue(p.pairingToken),!this.storage.getValue(p.sessionId)||n){e.next=11;break}return e.prev=3,e.next=6,this.request({method:j.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),i.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},i.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:f,provider:this})}))},i.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},n}(l);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(x||(x={}));var A,b=function(){function e(e){this.provider=void 0,this.storage=new D,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=i({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(p.chainId,this.storage.getValue(p.chainId)||y[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(u.pair,this.handlePairing)}var n=e.prototype;return n.isConnected=function(){return this.provider.isConnected()},n.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(p.pairingToken)&&!this.storage.getValue(p.sessionId)},n.connect=function(){var e=r(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.disconnect=function(){var e=r(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.sendTransaction=function(){var e=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_sendTransaction,params:[n]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.signMessage=function(){var e=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.personal_sign,params:[n,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.switchChain=function(){var e=r(t().mark((function e(n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.wallet_switchEthereumChain,params:{chainId:N(n)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.getChain=function(){return this.storage.getValue(p.chainId)||y[0]},n.getUserWalletAddress=function(){var e=r(t().mark((function e(n){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new T,this.trackClientEvent(x.walletAddressRequested,{userId:n}),e.next=4,r.sendRpcApiRequest(M.getUserWalletAddress,{appId:h(),userId:n});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.on=function(e,t){return this.provider.on(e,t),this},n.removeListener=function(e,t){return this.provider.removeListener(e,t),this},n.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof k&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof k&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new k),t},n.handlePairing=function(e){var t,n=null==(t=window.Telegram)?void 0:t.WebApp,r="https://walletconnect.grindery.com/connect/wc?uri="+e.shortToken;n&&n.openTelegramLink&&n.platform&&"unknown"!==n.platform?n.openTelegramLink(e.connectUrlBrowser):window.open(r,"_blank")},n.trackClientEvent=function(){var e=r(t().mark((function e(n,r){var o,a,s,c,u,l,d,f,g;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(o=window.Grindery)?void 0:o.appUrl)||window.location.origin,c=h(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new T,e.next=7,g.sendRpcApiRequest(M.trackClientEvent,{name:n,appUrl:s,userTelegramId:u,data:i({},r||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(p.sessionId),clientId:this.storage.getValue(p.clientId),isMiniApp:Boolean(null==(l=window.Telegram)?void 0:l.initDataUnsafe),miniAppPlatform:null==(d=window.Telegram)||null==(d=d.WebApp)?void 0:d.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,n){return e.apply(this,arguments)}}(),n.initTracking=function(){var e=this;this.trackClientEvent(x.appOpened),this.on(u.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(x.walletConnected,{wallets:t})})),this.on(u.disconnect,(function(){e.trackClientEvent(x.walletDisconnected)}))},e}(),L=b;null!=(A=window.Grindery)&&A.WalletSDK&&window.Grindery.WalletSDK instanceof b||(window.Grindery=i({},window.Grindery||{},{WalletSDK:new b})),exports.GrinderyWalletSDK=L; +"use strict";function e(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(e=function(){return!!t})()}function t(){t=function(){return r};var e,r={},n=Object.prototype,i=n.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,r){return e[t]=r}}function l(e,t,r,n){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new L(n||[]);return o(i,"_invoke",{value:T(e,r,a)}),i}function h(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}r.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function N(){}function m(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==n&&i.call(D,s)&&(I=D);var j=m.prototype=y.prototype=Object.create(I);function x(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function r(n,o,a,s){var c=h(e[n],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return r("throw",e,a,s)}))}s(c.arg)}var n;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,n){r(e,i,t,n)}))}return n=n?n.then(o,o):o()}})}function T(t,r,n){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(n.method=o,n.arg=a;;){var s=n.delegate;if(s){var c=A(s,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===d)throw i=w,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=g;var u=h(t,r,n);if("normal"===u.type){if(i=n.done?w:f,u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(i=w,n.method="throw",n.arg=u.arg)}}}function A(t,r){var n=r.method,i=t.iterator[n];if(i===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,A(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var o=h(i,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var a=o.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function U(t){if(t||""===t){var r=t[s];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function r(){for(;++n<t.length;)if(i.call(t,n))return r.value=t[n],r.done=!1,r;return r.value=e,r.done=!0,r};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return N.prototype=m,o(j,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:N,configurable:!0}),N.displayName=p(m,u,"GeneratorFunction"),r.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===N||"GeneratorFunction"===(t.displayName||t.name))},r.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},r.awrap=function(e){return{__await:e}},x(k.prototype),p(k.prototype,c,(function(){return this})),r.AsyncIterator=k,r.async=function(e,t,n,i,o){void 0===o&&(o=Promise);var a=new k(l(e,t,n,i),o);return r.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),r.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},r.values=U,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var r in this)"t"===r.charAt(0)&&i.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function n(n,i){return s.type="throw",s.arg=t,r.next=n,i&&(r.method="next",r.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;O(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:U(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},r}function r(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function n(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,c,"next",e)}function c(e){r(a,i,o,s,c,"throw",e)}s(void 0)}))}}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},i.apply(this,arguments)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s(e,t)}function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function c(t){var r="function"==typeof Map?new Map:void 0;return c=function(t){if(null===t||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,n)}function n(){return function(t,r,n){if(e())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,r);var o=new(t.bind.apply(t,i));return n&&s(o,n.prototype),o}(t,arguments,a(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),s(n,t)},c(t)}var u;Object.defineProperty(exports,"__esModule",{value:!0}),function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(u||(u={}));var p,l=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var r=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,r)}return this},t.emit=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,r[0]),this.events.get(e).forEach((function(e){e.apply(void 0,r)}))),this},e}(),h=function(){for(var e,t="",r=document.querySelectorAll("[data-app-id]"),n=0;n<r.length;n++){var i=r[n],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},d=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},f={uuid:d(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},g=function(e){function t(t,r,n){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=r,i.data=n,i}return o(t,e),t}(c(Error)),w={PairingFailed:new g("Pairing failed",4900),Disconnected:new g("Disconnected",4900),UnsupportedMethod:new g("Unsupported Method",4200),Unauthorized:new g("Unauthorized",4100),NoResult:new g("No result",4900),NoAppId:new g("App ID is required",4900),UserRejected:new g("User Rejected Request",4001),ChainDisconnected:new g("Chain Disconnected",4901)},v=function(e){return e instanceof g?new g(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new g(e.message||"Unknown error",4900,e):new g("Unknown error",4900,e)},y=["eip155:137","eip155:56","eip155:204"],N=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},m=function(e){return"eip155:"+parseInt(e,16)},I="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(p||(p={}));var M,D=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var r=this.getSnapshot();return r[e]=t,this.saveSnapshot(r),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||d(),chainId:this.getSnapshot().chainId||y[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(I)||"{}")}catch(e){throw localStorage.setItem(I,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(I,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(M||(M={}));var j,x=function(){function e(){}var r=e.prototype;return r.sendAndWaitRpcRequest=function(){var e=n(t().mark((function e(r,n,i){var o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(r,n);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.sendRpcRequest=function(){var e=n(t().mark((function e(r,n){var i;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new D,e.next=3,this.sendRpcApiRequest(M.request,{sessionId:i.getValue(p.sessionId),scope:i.getValue(p.chainId),request:{method:r,params:n}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.waitRpcRequest=function(){var e=n(t().mark((function e(r,n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(M.waitForRequestResult,{requestToken:r,timeout:n});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.sendRpcApiRequest=function(){var e=n(t().mark((function e(r,n){var i,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+r,params:n||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new g(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw w.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new g(e.t0.message,500,e.t0);case 18:throw new g("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,r){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(j||(j={}));var k,T=function(e){function r(){var r,i,o,a,s,c,l,d,f;return(i=e.call(this)||this).isGrinderyWallet=!0,i.storage=new D,i.rpc=new x,i.switchChain=function(){var e=n(t().mark((function e(r){var n,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=m(n=r.chainId),y.includes(o)){e.next=4;break}throw v(w.ChainDisconnected);case 4:return i.storage.setValue(p.chainId,o),i.emit(u.chainChanged,{chainId:n}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),i.methods=((r={})[j.eth_requestAccounts]=(f=n(t().mark((function e(r){var n,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!i.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,i.request({method:j.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),i.storage.setValue(p.sessionId,"");case 10:if(!i.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:i.storage.getValue(p.pairingToken)});case 14:if(n=e.sent,i.storage.clear(),i.storage.setValue(p.sessionId,n.session.sessionId),n.session.sessionId){e.next=19;break}throw w.PairingFailed;case 19:return e.next=21,i.request({method:j.eth_accounts,params:r||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),i.storage.clear();case 27:return e.prev=27,i.storage.clear(),e.next=31,i.rpc.sendRpcApiRequest(M.requestPairing,{appId:h(),clientId:i.storage.getValue(p.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw w.PairingFailed;case 34:return i.storage.setValue(p.pairingToken,o.pairingToken),i.storage.setValue(p.connectUrl,o.connectUrl),i.storage.setValue(p.connectUrlBrowser,o.connectUrlBrowser),i.storage.setValue(p.shortToken,o.shortToken),i.emit(u.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,i.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(i.storage.setValue(p.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw w.PairingFailed;case 45:return i.storage.setValue(p.pairingToken,""),i.storage.setValue(p.connectUrl,""),i.storage.setValue(p.connectUrlBrowser,""),i.storage.setValue(p.shortToken,""),e.next=51,i.request({method:j.eth_accounts,params:r||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),r[j.eth_accounts]=(d=n(t().mark((function e(r){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendAndWaitRpcRequest(j.eth_accounts,r?Array.isArray(r)?r:[r]:[]);case 3:return i.storage.setValue(p.address,(n=e.sent)[0]||""),i.emit(u.accountsChanged,n),e.abrupt("return",n);case 9:throw e.prev=9,e.t0=e.catch(0),v(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return d.apply(this,arguments)}),r[j.eth_sendTransaction]=(l=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.eth_sendTransaction,r?Array.isArray(r)?r:[r]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return l.apply(this,arguments)}),r[j.personal_sign]=(c=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.rpc.sendAndWaitRpcRequest(j.personal_sign,r?Array.isArray(r)?r:[r]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),r[j.gws_disconnect]=n(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.rpc.sendRpcApiRequest(M.disconnect,{sessionToken:i.storage.getValue(p.sessionId)});case 3:return r=e.sent,i.emit(u.disconnect,w.Disconnected),e.abrupt("return",r);case 8:throw e.prev=8,e.t0=e.catch(0),v(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),r[j.eth_chainId]=(s=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",N(i.storage.getValue(p.chainId)||y[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),r[j.wallet_addEthereumChain]=(a=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw v(w.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),r[j.wallet_switchEthereumChain]=(o=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.switchChain(r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),r),i.injectProvider(),i.listenForRequestProviderEvents(),i.announceProvider(),window.addEventListener("load",(function(){i.emit(u.connect,{chainId:N(i.storage.getValue(p.chainId)||y[0])}),i.restorePairing(),i.restoreSession()})),i}o(r,e);var i=r.prototype;return i.isConnected=function(){return!0},i.request=function(){var e=n(t().mark((function e(r){var n,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.method,a=r.params,e.next=3,null==(n=(i=this.methods)[o])?void 0:n.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),i.restorePairing=function(){var e=n(t().mark((function e(){var r,n,i,o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.storage.getValue(p.pairingToken),n=this.storage.getValue(p.sessionId),!r||n){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(M.waitForPairingResult,{pairingToken:r});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(p.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw w.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(p.address,a[0]||""),this.emit(u.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),i.restoreSession=function(){var e=n(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.storage.getValue(p.pairingToken),!this.storage.getValue(p.sessionId)||r){e.next=11;break}return e.prev=3,e.next=6,this.request({method:j.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),i.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},i.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:f,provider:this})}))},i.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},r}(l);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(k||(k={}));var A,b=function(){function e(){}return e.prototype.sendApiRequest=function(){var e=n(t().mark((function e(r,n){var i,o,a,s;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=new D,o=i.getValue(p.sessionId),a=i.getValue(p.address),o&&a){e.next=5;break}throw new Error("Not connected to the wallet");case 5:return e.next=7,fetch("https://wallet-api.grindery.com/v3",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+a+":"+o},body:JSON.stringify({jsonrpc:"2.0",id:1,method:r,params:n||{}})});case 7:if((s=e.sent).ok){e.next=10;break}throw new Error("Failed to call "+r);case 10:return e.next=12,s.json();case 12:return e.abrupt("return",e.sent.result);case 14:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),e}(),O=function(){function e(e){this.provider=void 0,this.storage=new D,this.user=null,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=i({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(p.chainId,this.storage.getValue(p.chainId)||y[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(u.pair,this.handlePairing)}var r=e.prototype;return r.isConnected=function(){return this.provider.isConnected()},r.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(p.pairingToken)&&!this.storage.getValue(p.sessionId)},r.connect=function(){var e=n(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.disconnect=function(){var e=n(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.sendTransaction=function(){var e=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.eth_sendTransaction,params:[r]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.signMessage=function(){var e=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.personal_sign,params:[r,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.switchChain=function(){var e=n(t().mark((function e(r){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:j.wallet_switchEthereumChain,params:{chainId:N(r)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getChain=function(){return this.storage.getValue(p.chainId)||y[0]},r.getUserWalletAddress=function(){var e=n(t().mark((function e(r){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=new x,this.trackClientEvent(k.walletAddressRequested,{userId:r}),e.next=4,n.sendRpcApiRequest(M.getUserWalletAddress,{appId:h(),userId:r});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.on=function(e,t){return this.provider.on(e,t),this},r.removeListener=function(e,t){return this.provider.removeListener(e,t),this},r.getUser=function(){var e=n(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.user){e.next=11;break}return r=new b,e.prev=2,e.next=5,r.sendApiRequest("gw_getMe");case 5:this.user=e.sent,e.next=11;break;case 8:throw e.prev=8,e.t0=e.catch(2),new Error(e.t0 instanceof Error?e.t0.message:"Failed to fetch user information");case 11:return e.abrupt("return",this.user);case 12:case"end":return e.stop()}}),e,this,[[2,8]])})));return function(){return e.apply(this,arguments)}}(),r.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof T&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof T&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new T),t},r.handlePairing=function(e){var t,r=e.connectUrl,n=null==(t=window.Telegram)?void 0:t.WebApp,i=e.connectUrlBrowser||"https://www.grindery.com/connect/wc?uri="+e.shortToken;n&&n.openTelegramLink&&n.platform&&"unknown"!==n.platform&&r?n.openTelegramLink(r):window.open(i,"_blank")},r.trackClientEvent=function(){var e=n(t().mark((function e(r,n){var o,a,s,c,u,l,d,f,g;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(o=window.Grindery)?void 0:o.appUrl)||window.location.origin,c=h(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new x,e.next=7,g.sendRpcApiRequest(M.trackClientEvent,{name:r,appUrl:s,userTelegramId:u,data:i({},n||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(p.sessionId),clientId:this.storage.getValue(p.clientId),isMiniApp:Boolean(null==(l=window.Telegram)?void 0:l.initDataUnsafe),miniAppPlatform:null==(d=window.Telegram)||null==(d=d.WebApp)?void 0:d.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,r){return e.apply(this,arguments)}}(),r.initTracking=function(){var e=this;this.trackClientEvent(k.appOpened),this.on(u.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(k.walletConnected,{wallets:t})})),this.on(u.disconnect,(function(){e.trackClientEvent(k.walletDisconnected)}))},e}(),L=O;null!=(A=window.Grindery)&&A.WalletSDK&&window.Grindery.WalletSDK instanceof O||(window.Grindery=i({},window.Grindery||{},{WalletSDK:new O})),exports.GrinderyWalletSDK=L; //# sourceMappingURL=grindery-wallet-sdk.cjs.production.min.js.map diff --git a/example/dist/grindery-wallet-sdk.cjs.production.min.js.map b/example/dist/grindery-wallet-sdk.cjs.production.min.js.map index 746f52c..62f2988 100644 --- a/example/dist/grindery-wallet-sdk.cjs.production.min.js.map +++ b/example/dist/grindery-wallet-sdk.cjs.production.min.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.cjs.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","accountsChanged","address","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.cjs.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/index.ts","../src/classes/WalletSDK.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","address","accountsChanged","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file diff --git a/example/dist/grindery-wallet-sdk.esm.js b/example/dist/grindery-wallet-sdk.esm.js index 494d15e..4b1eace 100644 --- a/example/dist/grindery-wallet-sdk.esm.js +++ b/example/dist/grindery-wallet-sdk.esm.js @@ -1066,8 +1066,8 @@ var Provider = /*#__PURE__*/function (_EventEmitter) { return _this.rpc.sendAndWaitRpcRequest(ProviderMethodNames.eth_accounts, params ? Array.isArray(params) ? params : [params] : []); case 3: result = _context3.sent; - _this.emit(ProviderEvents.accountsChanged, result); _this.storage.setValue(SdkStorageKeys.address, result[0] || ''); + _this.emit(ProviderEvents.accountsChanged, result); return _context3.abrupt("return", result); case 9: _context3.prev = 9; @@ -1412,6 +1412,78 @@ var ClientEventNames; ClientEventNames["walletAddressRequested"] = "walletAddressRequested"; })(ClientEventNames || (ClientEventNames = {})); +/** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ +var WalletAPI = /*#__PURE__*/function () { + function WalletAPI() {} + var _proto = WalletAPI.prototype; + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + _proto.sendApiRequest = + /*#__PURE__*/ + function () { + var _sendApiRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(method, params) { + var storage, sessionId, address, response, json; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + storage = new SdkStorage(); + sessionId = storage.getValue(SdkStorageKeys.sessionId); + address = storage.getValue(SdkStorageKeys.address); + if (!(!sessionId || !address)) { + _context.next = 5; + break; + } + throw new Error('Not connected to the wallet'); + case 5: + _context.next = 7; + return fetch("https://wallet-api.grindery.com/v3", { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: "Bearer " + address + ":" + sessionId + }, + body: JSON.stringify({ + jsonrpc: '2.0', + id: 1, + method: method, + params: params || {} + }) + }); + case 7: + response = _context.sent; + if (response.ok) { + _context.next = 10; + break; + } + throw new Error("Failed to call " + method); + case 10: + _context.next = 12; + return response.json(); + case 12: + json = _context.sent; + return _context.abrupt("return", json.result); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + })); + function sendApiRequest(_x, _x2) { + return _sendApiRequest.apply(this, arguments); + } + return sendApiRequest; + }(); + return WalletAPI; +}(); + /** * @summary The Wallet SDK class * @since 0.2.0 @@ -1428,6 +1500,11 @@ var WalletSDK = /*#__PURE__*/function () { * @private */ this.storage = new SdkStorage(); + /** + * @summary The Grindery Wallet user + * @private + */ + this.user = null; if (config != null && config.appId || config != null && config.appUrl) { window.Grindery = _extends({}, window.Grindery || {}, { appId: config == null ? void 0 : config.appId, @@ -1693,7 +1770,50 @@ var WalletSDK = /*#__PURE__*/function () { _proto.removeListener = function removeListener(event, callback) { this.provider.removeListener(event, callback); return this; - }; + } + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */; + _proto.getUser = + /*#__PURE__*/ + function () { + var _getUser = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() { + var api; + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (this.user) { + _context7.next = 11; + break; + } + api = new WalletAPI(); + _context7.prev = 2; + _context7.next = 5; + return api.sendApiRequest('gw_getMe'); + case 5: + this.user = _context7.sent; + _context7.next = 11; + break; + case 8: + _context7.prev = 8; + _context7.t0 = _context7["catch"](2); + throw new Error(_context7.t0 instanceof Error ? _context7.t0.message : 'Failed to fetch user information'); + case 11: + return _context7.abrupt("return", this.user); + case 12: + case "end": + return _context7.stop(); + } + }, _callee7, this, [[2, 8]]); + })); + function getUser() { + return _getUser.apply(this, arguments); + } + return getUser; + }(); /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider @@ -1720,11 +1840,12 @@ var WalletSDK = /*#__PURE__*/function () { _proto.handlePairing = function handlePairing(_ref) { var _window$Telegram; var shortToken = _ref.shortToken, + connectUrl = _ref.connectUrl, connectUrlBrowser = _ref.connectUrlBrowser; var WebApp = (_window$Telegram = window.Telegram) == null ? void 0 : _window$Telegram.WebApp; - var redirectUrl = "https://walletconnect.grindery.com/connect/wc?uri=" + shortToken; - if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown') { - WebApp.openTelegramLink(connectUrlBrowser); + var redirectUrl = connectUrlBrowser || "https://www.grindery.com/connect/wc?uri=" + shortToken; + if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown' && connectUrl) { + WebApp.openTelegramLink(connectUrl); } else { window.open(redirectUrl, '_blank'); } @@ -1739,18 +1860,18 @@ var WalletSDK = /*#__PURE__*/function () { _proto.trackClientEvent = /*#__PURE__*/ function () { - var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(name, data) { + var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(name, data) { var _window$Grindery, _window$Telegram2; var appUrl, appId, userTelegramId, _window$Telegram3, _window$Telegram4, _window$Telegram5, rpc; - return _regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: appUrl = ((_window$Grindery = window.Grindery) == null ? void 0 : _window$Grindery.appUrl) || window.location.origin; appId = getAppId(); userTelegramId = (_window$Telegram2 = window.Telegram) == null || (_window$Telegram2 = _window$Telegram2.WebApp) == null || (_window$Telegram2 = _window$Telegram2.initDataUnsafe) == null || (_window$Telegram2 = _window$Telegram2.user) == null ? void 0 : _window$Telegram2.id; - _context7.prev = 3; + _context8.prev = 3; rpc = new Rpc(); - _context7.next = 7; + _context8.next = 7; return rpc.sendRpcApiRequest(RpcMethodNames.trackClientEvent, { name: name, appUrl: appUrl, @@ -1767,16 +1888,16 @@ var WalletSDK = /*#__PURE__*/function () { }) }); case 7: - _context7.next = 11; + _context8.next = 11; break; case 9: - _context7.prev = 9; - _context7.t0 = _context7["catch"](3); + _context8.prev = 9; + _context8.t0 = _context8["catch"](3); case 11: case "end": - return _context7.stop(); + return _context8.stop(); } - }, _callee7, this, [[3, 9]]); + }, _callee8, this, [[3, 9]]); })); function trackClientEvent(_x5, _x6) { return _trackClientEvent.apply(this, arguments); diff --git a/example/dist/grindery-wallet-sdk.esm.js.map b/example/dist/grindery-wallet-sdk.esm.js.map index 51e8d36..7a5aba6 100644 --- a/example/dist/grindery-wallet-sdk.esm.js.map +++ b/example/dist/grindery-wallet-sdk.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.esm.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","accountsChanged","address","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.esm.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","address","accountsChanged","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file diff --git a/example/dist/grindery-wallet-sdk.umd.development.js b/example/dist/grindery-wallet-sdk.umd.development.js index 8cca20a..c055f93 100644 --- a/example/dist/grindery-wallet-sdk.umd.development.js +++ b/example/dist/grindery-wallet-sdk.umd.development.js @@ -1072,8 +1072,8 @@ return _this.rpc.sendAndWaitRpcRequest(ProviderMethodNames.eth_accounts, params ? Array.isArray(params) ? params : [params] : []); case 3: result = _context3.sent; - _this.emit(ProviderEvents.accountsChanged, result); _this.storage.setValue(SdkStorageKeys.address, result[0] || ''); + _this.emit(ProviderEvents.accountsChanged, result); return _context3.abrupt("return", result); case 9: _context3.prev = 9; @@ -1418,6 +1418,78 @@ ClientEventNames["walletAddressRequested"] = "walletAddressRequested"; })(ClientEventNames || (ClientEventNames = {})); + /** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ + var WalletAPI = /*#__PURE__*/function () { + function WalletAPI() {} + var _proto = WalletAPI.prototype; + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + _proto.sendApiRequest = + /*#__PURE__*/ + function () { + var _sendApiRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(method, params) { + var storage, sessionId, address, response, json; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + storage = new SdkStorage(); + sessionId = storage.getValue(SdkStorageKeys.sessionId); + address = storage.getValue(SdkStorageKeys.address); + if (!(!sessionId || !address)) { + _context.next = 5; + break; + } + throw new Error('Not connected to the wallet'); + case 5: + _context.next = 7; + return fetch("https://wallet-api.grindery.com/v3", { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: "Bearer " + address + ":" + sessionId + }, + body: JSON.stringify({ + jsonrpc: '2.0', + id: 1, + method: method, + params: params || {} + }) + }); + case 7: + response = _context.sent; + if (response.ok) { + _context.next = 10; + break; + } + throw new Error("Failed to call " + method); + case 10: + _context.next = 12; + return response.json(); + case 12: + json = _context.sent; + return _context.abrupt("return", json.result); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + })); + function sendApiRequest(_x, _x2) { + return _sendApiRequest.apply(this, arguments); + } + return sendApiRequest; + }(); + return WalletAPI; + }(); + /** * @summary The Wallet SDK class * @since 0.2.0 @@ -1434,6 +1506,11 @@ * @private */ this.storage = new SdkStorage(); + /** + * @summary The Grindery Wallet user + * @private + */ + this.user = null; if (config != null && config.appId || config != null && config.appUrl) { window.Grindery = _extends({}, window.Grindery || {}, { appId: config == null ? void 0 : config.appId, @@ -1699,7 +1776,50 @@ _proto.removeListener = function removeListener(event, callback) { this.provider.removeListener(event, callback); return this; - }; + } + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */; + _proto.getUser = + /*#__PURE__*/ + function () { + var _getUser = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() { + var api; + return _regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (this.user) { + _context7.next = 11; + break; + } + api = new WalletAPI(); + _context7.prev = 2; + _context7.next = 5; + return api.sendApiRequest('gw_getMe'); + case 5: + this.user = _context7.sent; + _context7.next = 11; + break; + case 8: + _context7.prev = 8; + _context7.t0 = _context7["catch"](2); + throw new Error(_context7.t0 instanceof Error ? _context7.t0.message : 'Failed to fetch user information'); + case 11: + return _context7.abrupt("return", this.user); + case 12: + case "end": + return _context7.stop(); + } + }, _callee7, this, [[2, 8]]); + })); + function getUser() { + return _getUser.apply(this, arguments); + } + return getUser; + }(); /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider @@ -1726,11 +1846,12 @@ _proto.handlePairing = function handlePairing(_ref) { var _window$Telegram; var shortToken = _ref.shortToken, + connectUrl = _ref.connectUrl, connectUrlBrowser = _ref.connectUrlBrowser; var WebApp = (_window$Telegram = window.Telegram) == null ? void 0 : _window$Telegram.WebApp; - var redirectUrl = "https://walletconnect.grindery.com/connect/wc?uri=" + shortToken; - if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown') { - WebApp.openTelegramLink(connectUrlBrowser); + var redirectUrl = connectUrlBrowser || "https://www.grindery.com/connect/wc?uri=" + shortToken; + if (WebApp && WebApp.openTelegramLink && WebApp.platform && WebApp.platform !== 'unknown' && connectUrl) { + WebApp.openTelegramLink(connectUrl); } else { window.open(redirectUrl, '_blank'); } @@ -1745,18 +1866,18 @@ _proto.trackClientEvent = /*#__PURE__*/ function () { - var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(name, data) { + var _trackClientEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(name, data) { var _window$Grindery, _window$Telegram2; var appUrl, appId, userTelegramId, _window$Telegram3, _window$Telegram4, _window$Telegram5, rpc; - return _regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { + return _regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: appUrl = ((_window$Grindery = window.Grindery) == null ? void 0 : _window$Grindery.appUrl) || window.location.origin; appId = getAppId(); userTelegramId = (_window$Telegram2 = window.Telegram) == null || (_window$Telegram2 = _window$Telegram2.WebApp) == null || (_window$Telegram2 = _window$Telegram2.initDataUnsafe) == null || (_window$Telegram2 = _window$Telegram2.user) == null ? void 0 : _window$Telegram2.id; - _context7.prev = 3; + _context8.prev = 3; rpc = new Rpc(); - _context7.next = 7; + _context8.next = 7; return rpc.sendRpcApiRequest(RpcMethodNames.trackClientEvent, { name: name, appUrl: appUrl, @@ -1773,16 +1894,16 @@ }) }); case 7: - _context7.next = 11; + _context8.next = 11; break; case 9: - _context7.prev = 9; - _context7.t0 = _context7["catch"](3); + _context8.prev = 9; + _context8.t0 = _context8["catch"](3); case 11: case "end": - return _context7.stop(); + return _context8.stop(); } - }, _callee7, this, [[3, 9]]); + }, _callee8, this, [[3, 9]]); })); function trackClientEvent(_x5, _x6) { return _trackClientEvent.apply(this, arguments); diff --git a/example/dist/grindery-wallet-sdk.umd.development.js.map b/example/dist/grindery-wallet-sdk.umd.development.js.map index 66bf303..4e26803 100644 --- a/example/dist/grindery-wallet-sdk.umd.development.js.map +++ b/example/dist/grindery-wallet-sdk.umd.development.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.umd.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","accountsChanged","address","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.umd.development.js","sources":["../src/classes/EventEmitter.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/SdkStorage.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","EventEmitter","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","errorResponse","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","SdkStorageKeys","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","RpcMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_callee$","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_callee2$","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_callee3$","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_callee4$","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","ProviderMethodNames","Provider","_EventEmitter","_this$methods","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","_ref3","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","_ref4","isArray","address","accountsChanged","eth_sendTransaction","_ref5","personal_sign","_ref6","_callee5","_callee5$","_context5","gws_disconnect","_callee6","_callee6$","_context6","disconnect","sessionToken","eth_chainId","_ref8","_callee7","_","_callee7$","_context7","wallet_addEthereumChain","_ref9","_callee8","_callee8$","_context8","wallet_switchEthereumChain","_ref10","_callee9","_callee9$","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_callee10$","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_callee11$","_context11","namespaces","map","account","_restoreSession","_callee12","_callee12$","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","ClientEventNames","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","onWalletConnect","wallets","walletConnected","onWalletDisconnect","walletDisconnected","GrinderyWalletSDK","init"],"mappings":"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"} \ No newline at end of file diff --git a/example/dist/grindery-wallet-sdk.umd.production.min.js b/example/dist/grindery-wallet-sdk.umd.production.min.js index 39d5250..8f75fc3 100644 --- a/example/dist/grindery-wallet-sdk.umd.production.min.js +++ b/example/dist/grindery-wallet-sdk.umd.production.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["grindery-wallet-sdk"]={})}(this,(function(e){"use strict";function t(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(t=function(){return!!e})()}function n(){n=function(){return t};var e,t={},r=Object.prototype,i=r.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new O(r||[]);return o(i,"_invoke",{value:k(e,n,a)}),i}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function N(){}function m(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==r&&i.call(D,s)&&(I=D);var j=m.prototype=y.prototype=Object.create(I);function T(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function n(r,o,a,s){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var r;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}})}function k(t,n,r){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(r.method=o,r.arg=a;;){var s=r.delegate;if(s){var c=A(s,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===d)throw i=w,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=h(t,n,r);if("normal"===u.type){if(i=r.done?w:f,u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=w,r.method="throw",r.arg=u.arg)}}}function A(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,A(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=h(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var a=o.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function U(t){if(t||""===t){var n=t[s];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function n(){for(;++r<t.length;)if(i.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return N.prototype=m,o(j,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:N,configurable:!0}),N.displayName=p(m,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===N||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},t.awrap=function(e){return{__await:e}},T(x.prototype),p(x.prototype,c,(function(){return this})),t.AsyncIterator=x,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new x(l(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},T(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=U,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(L),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,i){return s.type="throw",s.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;L(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:U(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function r(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,c,"next",e)}function c(e){r(a,i,o,s,c,"throw",e)}s(void 0)}))}}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,c(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function u(e){var n="function"==typeof Map?new Map:void 0;return u=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,r)}function r(){return function(e,n,r){if(t())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(e.bind.apply(e,i));return r&&c(o,r.prototype),o}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)},u(e)}var p;!function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(p||(p={}));var l,h=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var n=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,n)}return this},t.emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,n[0]),this.events.get(e).forEach((function(e){e.apply(void 0,n)}))),this},e}(),d=function(){for(var e,t="",n=document.querySelectorAll("[data-app-id]"),r=0;r<n.length;r++){var i=n[r],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},f=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},g={uuid:f(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},w=function(e){function t(t,n,r){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=n,i.data=r,i}return a(t,e),t}(u(Error)),v={PairingFailed:new w("Pairing failed",4900),Disconnected:new w("Disconnected",4900),UnsupportedMethod:new w("Unsupported Method",4200),Unauthorized:new w("Unauthorized",4100),NoResult:new w("No result",4900),NoAppId:new w("App ID is required",4900),UserRejected:new w("User Rejected Request",4001),ChainDisconnected:new w("Chain Disconnected",4901)},y=function(e){return e instanceof w?new w(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new w(e.message||"Unknown error",4900,e):new w("Unknown error",4900,e)},N=["eip155:137","eip155:56","eip155:204"],m=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},I=function(e){return"eip155:"+parseInt(e,16)},M="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(l||(l={}));var D,j=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var n=this.getSnapshot();return n[e]=t,this.saveSnapshot(n),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||f(),chainId:this.getSnapshot().chainId||N[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(M)||"{}")}catch(e){throw localStorage.setItem(M,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(M,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(D||(D={}));var T,x=function(){function e(){}var t=e.prototype;return t.sendAndWaitRpcRequest=function(){var e=i(n().mark((function e(t,r,i){var o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(t,r);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t.sendRpcRequest=function(){var e=i(n().mark((function e(t,r){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new j,e.next=3,this.sendRpcApiRequest(D.request,{sessionId:i.getValue(l.sessionId),scope:i.getValue(l.chainId),request:{method:t,params:r}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.waitRpcRequest=function(){var e=i(n().mark((function e(t,r){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(D.waitForRequestResult,{requestToken:t,timeout:r});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.sendRpcApiRequest=function(){var e=i(n().mark((function e(t,r){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+t,params:r||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new w(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw v.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new w(e.t0.message,500,e.t0);case 18:throw new w("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,n){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(T||(T={}));var k,A=function(e){function t(){var t,r,o,a,s,c,u,h,f;return(r=e.call(this)||this).isGrinderyWallet=!0,r.storage=new j,r.rpc=new x,r.switchChain=function(){var e=i(n().mark((function e(t){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=I(i=t.chainId),N.includes(o)){e.next=4;break}throw y(v.ChainDisconnected);case 4:return r.storage.setValue(l.chainId,o),r.emit(p.chainChanged,{chainId:i}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.methods=((t={})[T.eth_requestAccounts]=(f=i(n().mark((function e(t){var i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,r.request({method:T.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),r.storage.setValue(l.sessionId,"");case 10:if(!r.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:r.storage.getValue(l.pairingToken)});case 14:if(i=e.sent,r.storage.clear(),r.storage.setValue(l.sessionId,i.session.sessionId),i.session.sessionId){e.next=19;break}throw v.PairingFailed;case 19:return e.next=21,r.request({method:T.eth_accounts,params:t||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),r.storage.clear();case 27:return e.prev=27,r.storage.clear(),e.next=31,r.rpc.sendRpcApiRequest(D.requestPairing,{appId:d(),clientId:r.storage.getValue(l.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw v.PairingFailed;case 34:return r.storage.setValue(l.pairingToken,o.pairingToken),r.storage.setValue(l.connectUrl,o.connectUrl),r.storage.setValue(l.connectUrlBrowser,o.connectUrlBrowser),r.storage.setValue(l.shortToken,o.shortToken),r.emit(p.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(r.storage.setValue(l.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw v.PairingFailed;case 45:return r.storage.setValue(l.pairingToken,""),r.storage.setValue(l.connectUrl,""),r.storage.setValue(l.connectUrlBrowser,""),r.storage.setValue(l.shortToken,""),e.next=51,r.request({method:T.eth_accounts,params:t||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),t[T.eth_accounts]=(h=i(n().mark((function e(t){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendAndWaitRpcRequest(T.eth_accounts,t?Array.isArray(t)?t:[t]:[]);case 3:return r.emit(p.accountsChanged,i=e.sent),r.storage.setValue(l.address,i[0]||""),e.abrupt("return",i);case 9:throw e.prev=9,e.t0=e.catch(0),y(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return h.apply(this,arguments)}),t[T.eth_sendTransaction]=(u=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(T.eth_sendTransaction,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return u.apply(this,arguments)}),t[T.personal_sign]=(c=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(T.personal_sign,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),t[T.gws_disconnect]=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendRpcApiRequest(D.disconnect,{sessionToken:r.storage.getValue(l.sessionId)});case 3:return t=e.sent,r.emit(p.disconnect,v.Disconnected),e.abrupt("return",t);case 8:throw e.prev=8,e.t0=e.catch(0),y(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),t[T.eth_chainId]=(s=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",m(r.storage.getValue(l.chainId)||N[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),t[T.wallet_addEthereumChain]=(a=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw y(v.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),t[T.wallet_switchEthereumChain]=(o=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.switchChain(t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),t),r.injectProvider(),r.listenForRequestProviderEvents(),r.announceProvider(),window.addEventListener("load",(function(){r.emit(p.connect,{chainId:m(r.storage.getValue(l.chainId)||N[0])}),r.restorePairing(),r.restoreSession()})),r}a(t,e);var r=t.prototype;return r.isConnected=function(){return!0},r.request=function(){var e=i(n().mark((function e(t){var r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.method,a=t.params,e.next=3,null==(r=(i=this.methods)[o])?void 0:r.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.restorePairing=function(){var e=i(n().mark((function e(){var t,r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),r=this.storage.getValue(l.sessionId),!t||r){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:t});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(l.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw v.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(l.address,a[0]||""),this.emit(p.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),r.restoreSession=function(){var e=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),!this.storage.getValue(l.sessionId)||t){e.next=11;break}return e.prev=3,e.next=6,this.request({method:T.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),r.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},r.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:g,provider:this})}))},r.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},t}(h);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(k||(k={}));var b,L=function(){function e(e){this.provider=void 0,this.storage=new j,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=o({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(l.chainId,this.storage.getValue(l.chainId)||N[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(p.pair,this.handlePairing)}var t=e.prototype;return t.isConnected=function(){return this.provider.isConnected()},t.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(l.pairingToken)&&!this.storage.getValue(l.sessionId)},t.connect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.disconnect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.sendTransaction=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.eth_sendTransaction,params:[t]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.signMessage=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.personal_sign,params:[t,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.switchChain=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:T.wallet_switchEthereumChain,params:{chainId:m(t)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getChain=function(){return this.storage.getValue(l.chainId)||N[0]},t.getUserWalletAddress=function(){var e=i(n().mark((function e(t){var r;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new x,this.trackClientEvent(k.walletAddressRequested,{userId:t}),e.next=4,r.sendRpcApiRequest(D.getUserWalletAddress,{appId:d(),userId:t});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.on=function(e,t){return this.provider.on(e,t),this},t.removeListener=function(e,t){return this.provider.removeListener(e,t),this},t.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof A&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof A&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new A),t},t.handlePairing=function(e){var t,n=null==(t=window.Telegram)?void 0:t.WebApp,r="https://walletconnect.grindery.com/connect/wc?uri="+e.shortToken;n&&n.openTelegramLink&&n.platform&&"unknown"!==n.platform?n.openTelegramLink(e.connectUrlBrowser):window.open(r,"_blank")},t.trackClientEvent=function(){var e=i(n().mark((function e(t,r){var i,a,s,c,u,p,h,f,g;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(i=window.Grindery)?void 0:i.appUrl)||window.location.origin,c=d(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new x,e.next=7,g.sendRpcApiRequest(D.trackClientEvent,{name:t,appUrl:s,userTelegramId:u,data:o({},r||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(l.sessionId),clientId:this.storage.getValue(l.clientId),isMiniApp:Boolean(null==(p=window.Telegram)?void 0:p.initDataUnsafe),miniAppPlatform:null==(h=window.Telegram)||null==(h=h.WebApp)?void 0:h.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,n){return e.apply(this,arguments)}}(),t.initTracking=function(){var e=this;this.trackClientEvent(k.appOpened),this.on(p.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(k.walletConnected,{wallets:t})})),this.on(p.disconnect,(function(){e.trackClientEvent(k.walletDisconnected)}))},e}(),O=L;null!=(b=window.Grindery)&&b.WalletSDK&&window.Grindery.WalletSDK instanceof L||(window.Grindery=o({},window.Grindery||{},{WalletSDK:new L})),e.GrinderyWalletSDK=O,Object.defineProperty(e,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["grindery-wallet-sdk"]={})}(this,(function(e){"use strict";function t(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(t=function(){return!!e})()}function n(){n=function(){return t};var e,t={},r=Object.prototype,i=r.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),a=new L(r||[]);return o(i,"_invoke",{value:T(e,n,a)}),i}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var d="suspendedStart",f="suspendedYield",g="executing",w="completed",v={};function y(){}function m(){}function N(){}var I={};p(I,s,(function(){return this}));var M=Object.getPrototypeOf,D=M&&M(M(U([])));D&&D!==r&&i.call(D,s)&&(I=D);var j=N.prototype=y.prototype=Object.create(I);function x(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(r,o,a,s){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&i.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(p).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var r;o(this,"_invoke",{value:function(e,i){function o(){return new t((function(t,r){n(e,i,t,r)}))}return r=r?r.then(o,o):o()}})}function T(t,n,r){var i=d;return function(o,a){if(i===g)throw Error("Generator is already running");if(i===w){if("throw"===o)throw a;return{value:e,done:!0}}for(r.method=o,r.arg=a;;){var s=r.delegate;if(s){var c=b(s,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===d)throw i=w,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var u=h(t,n,r);if("normal"===u.type){if(i=r.done?w:f,u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=w,r.method="throw",r.arg=u.arg)}}}function b(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,b(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=h(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var a=o.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function A(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(A,this),this.reset(!0)}function U(t){if(t||""===t){var n=t[s];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function n(){for(;++r<t.length;)if(i.call(t,r))return n.value=t[r],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return m.prototype=N,o(j,"constructor",{value:N,configurable:!0}),o(N,"constructor",{value:m,configurable:!0}),m.displayName=p(N,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,N):(e.__proto__=N,p(e,u,"GeneratorFunction")),e.prototype=Object.create(j),e},t.awrap=function(e){return{__await:e}},x(k.prototype),p(k.prototype,c,(function(){return this})),t.AsyncIterator=k,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new k(l(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(j),p(j,u,"Generator"),p(j,s,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=U,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(O),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,i){return s.type="throw",s.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;O(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:U(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function r(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,c,"next",e)}function c(e){r(a,i,o,s,c,"throw",e)}s(void 0)}))}}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,c(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function u(e){var n="function"==typeof Map?new Map:void 0;return u=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,r)}function r(){return function(e,n,r){if(t())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(e.bind.apply(e,i));return r&&c(o,r.prototype),o}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)},u(e)}var p;!function(e){e.accountsChanged="accountsChanged",e.pair="pair",e.connect="connect",e.disconnect="disconnect",e.chainChanged="chainChanged",e.message="message"}(p||(p={}));var l,h=function(){function e(){this.events=void 0,this.events=new Map}var t=e.prototype;return t.on=function(e,t){return this.events.has(e)||this.events.set(e,[]),this.events.get(e).push(t),this},t.removeListener=function(e,t){if(this.events.has(e)){var n=this.events.get(e).filter((function(e){return e!==t}));this.events.set(e,n)}return this},t.emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.events.has(e)&&(console.log("[Grindery.WalletSDK] > Event:",e,n[0]),this.events.get(e).forEach((function(e){e.apply(void 0,n)}))),this},e}(),d=function(){for(var e,t="",n=document.querySelectorAll("[data-app-id]"),r=0;r<n.length;r++){var i=n[r],o=i.getAttribute("data-app-id"),a=i.getAttribute("src"),s=a&&a.includes("grindery-wallet-sdk");o&&s&&(t=o)}return null!=(e=window.Grindery)&&e.appId&&(t=window.Grindery.appId),t},f=function(){for(var e="";e.length<32;)e+=Math.random().toString(16).substr(2);var t=(3&parseInt(e.substr(16,1),16)|8).toString(16);return e.substr(0,8)+"-"+e.substr(8,4)+"-4"+e.substr(13,3)+"-"+t+e.substr(17,3)+"-"+e.substr(20,12)},g={uuid:f(),name:"Grindery Wallet",rdns:"com.grindery.wallet",icon:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},w=function(e){function t(t,n,r){var i;return(i=e.call(this,t)||this).name="GrinderyWalletProviderError",i.code=void 0,i.data=void 0,i.code=n,i.data=r,i}return a(t,e),t}(u(Error)),v={PairingFailed:new w("Pairing failed",4900),Disconnected:new w("Disconnected",4900),UnsupportedMethod:new w("Unsupported Method",4200),Unauthorized:new w("Unauthorized",4100),NoResult:new w("No result",4900),NoAppId:new w("App ID is required",4900),UserRejected:new w("User Rejected Request",4001),ChainDisconnected:new w("Chain Disconnected",4901)},y=function(e){return e instanceof w?new w(e.message||"Unknown error",e.code||4900,e.data):e instanceof Error?new w(e.message||"Unknown error",4900,e):new w("Unknown error",4900,e)},m=["eip155:137","eip155:56","eip155:204"],N=function(e){return"0x"+parseInt(e.split(":")[1],10).toString(16)},I=function(e){return"eip155:"+parseInt(e,16)},M="GrinderyWalletProvider";!function(e){e.pairingToken="pairingToken",e.sessionId="sessionId",e.connectUrl="connectUrl",e.connectUrlBrowser="connectUrlBrowser",e.shortToken="shortToken",e.clientId="clientId",e.address="address",e.chainId="chainId"}(l||(l={}));var D,j=function(){function e(){}var t=e.prototype;return t.getValue=function(e){return this.getSnapshot()[e]||""},t.setValue=function(e,t){var n=this.getSnapshot();return n[e]=t,this.saveSnapshot(n),t},t.clear=function(){this.saveSnapshot({clientId:this.getSnapshot().clientId||f(),chainId:this.getSnapshot().chainId||m[0]})},t.getSnapshot=function(){try{return JSON.parse(localStorage.getItem(M)||"{}")}catch(e){throw localStorage.setItem(M,JSON.stringify({})),new Error("Error parsing storage")}},t.saveSnapshot=function(e){localStorage.setItem(M,JSON.stringify(e))},e}();!function(e){e.requestPairing="requestPairing",e.waitForPairingResult="waitForPairingResult",e.request="request",e.waitForRequestResult="waitForRequestResult",e.disconnect="disconnect",e.getUserWalletAddress="getUserWalletAddress",e.trackClientEvent="trackClientEvent"}(D||(D={}));var x,k=function(){function e(){}var t=e.prototype;return t.sendAndWaitRpcRequest=function(){var e=i(n().mark((function e(t,r,i){var o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcRequest(t,r);case 2:return o=e.sent,e.next=5,this.waitRpcRequest(o.requestToken,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t.sendRpcRequest=function(){var e=i(n().mark((function e(t,r){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new j,e.next=3,this.sendRpcApiRequest(D.request,{sessionId:i.getValue(l.sessionId),scope:i.getValue(l.chainId),request:{method:t,params:r}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.waitRpcRequest=function(){var e=i(n().mark((function e(t,r){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendRpcApiRequest(D.waitForRequestResult,{requestToken:t,timeout:r});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.sendRpcApiRequest=function(){var e=i(n().mark((function e(t,r){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("https://walletconnect-api.grindery.com",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"gws_"+t,params:r||[]})});case 3:return i=e.sent,e.next=6,i.json();case 6:if(!(o=e.sent).error){e.next=9;break}throw new w(o.error.message,o.error.code);case 9:if(o.result){e.next=11;break}throw v.NoResult;case 11:return e.abrupt("return",o.result);case 14:if(e.prev=14,e.t0=e.catch(0),!(e.t0 instanceof Error)){e.next=18;break}throw new w(e.t0.message,500,e.t0);case 18:throw new w("Server error",500,e.t0);case 19:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t,n){return e.apply(this,arguments)}}(),e}();!function(e){e.eth_requestAccounts="eth_requestAccounts",e.eth_accounts="eth_accounts",e.personal_sign="personal_sign",e.eth_sendTransaction="eth_sendTransaction",e.gws_disconnect="gws_disconnect",e.eth_chainId="eth_chainId",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain"}(x||(x={}));var T,b=function(e){function t(){var t,r,o,a,s,c,u,h,f;return(r=e.call(this)||this).isGrinderyWallet=!0,r.storage=new j,r.rpc=new k,r.switchChain=function(){var e=i(n().mark((function e(t){var i,o;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=I(i=t.chainId),m.includes(o)){e.next=4;break}throw y(v.ChainDisconnected);case 4:return r.storage.setValue(l.chainId,o),r.emit(p.chainChanged,{chainId:i}),e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.methods=((t={})[x.eth_requestAccounts]=(f=i(n().mark((function e(t){var i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.storage.getValue("sessionId")){e.next=10;break}return e.prev=1,e.next=4,r.request({method:x.eth_accounts,params:[]});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),r.storage.setValue(l.sessionId,"");case 10:if(!r.storage.getValue("pairingToken")){e.next=27;break}return e.prev=11,e.next=14,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:r.storage.getValue(l.pairingToken)});case 14:if(i=e.sent,r.storage.clear(),r.storage.setValue(l.sessionId,i.session.sessionId),i.session.sessionId){e.next=19;break}throw v.PairingFailed;case 19:return e.next=21,r.request({method:x.eth_accounts,params:t||[]});case 21:return e.abrupt("return",e.sent);case 24:e.prev=24,e.t1=e.catch(11),r.storage.clear();case 27:return e.prev=27,r.storage.clear(),e.next=31,r.rpc.sendRpcApiRequest(D.requestPairing,{appId:d(),clientId:r.storage.getValue(l.clientId)});case 31:if((o=e.sent).pairingToken&&o.connectUrl){e.next=34;break}throw v.PairingFailed;case 34:return r.storage.setValue(l.pairingToken,o.pairingToken),r.storage.setValue(l.connectUrl,o.connectUrl),r.storage.setValue(l.connectUrlBrowser,o.connectUrlBrowser),r.storage.setValue(l.shortToken,o.shortToken),r.emit(p.pair,{shortToken:o.shortToken,connectUrl:o.connectUrl,connectUrlBrowser:o.connectUrlBrowser}),e.next=41,r.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:o.pairingToken});case 41:if(r.storage.setValue(l.sessionId,(a=e.sent).session.sessionId),a.session.sessionId){e.next=45;break}throw v.PairingFailed;case 45:return r.storage.setValue(l.pairingToken,""),r.storage.setValue(l.connectUrl,""),r.storage.setValue(l.connectUrlBrowser,""),r.storage.setValue(l.shortToken,""),e.next=51,r.request({method:x.eth_accounts,params:t||[]});case 51:return e.abrupt("return",e.sent);case 54:throw e.prev=54,e.t2=e.catch(27),e.t2;case 57:case"end":return e.stop()}}),e,null,[[1,7],[11,24],[27,54]])}))),function(e){return f.apply(this,arguments)}),t[x.eth_accounts]=(h=i(n().mark((function e(t){var i;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendAndWaitRpcRequest(x.eth_accounts,t?Array.isArray(t)?t:[t]:[]);case 3:return r.storage.setValue(l.address,(i=e.sent)[0]||""),r.emit(p.accountsChanged,i),e.abrupt("return",i);case 9:throw e.prev=9,e.t0=e.catch(0),y(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))),function(e){return h.apply(this,arguments)}),t[x.eth_sendTransaction]=(u=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(x.eth_sendTransaction,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return u.apply(this,arguments)}),t[x.personal_sign]=(c=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.rpc.sendAndWaitRpcRequest(x.personal_sign,t?Array.isArray(t)?t:[t]:[]);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)}),t[x.gws_disconnect]=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.rpc.sendRpcApiRequest(D.disconnect,{sessionToken:r.storage.getValue(l.sessionId)});case 3:return t=e.sent,r.emit(p.disconnect,v.Disconnected),e.abrupt("return",t);case 8:throw e.prev=8,e.t0=e.catch(0),y(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),t[x.eth_chainId]=(s=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",N(r.storage.getValue(l.chainId)||m[0]));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)}),t[x.wallet_addEthereumChain]=(a=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw y(v.UserRejected);case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)}),t[x.wallet_switchEthereumChain]=(o=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.switchChain(t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)}),t),r.injectProvider(),r.listenForRequestProviderEvents(),r.announceProvider(),window.addEventListener("load",(function(){r.emit(p.connect,{chainId:N(r.storage.getValue(l.chainId)||m[0])}),r.restorePairing(),r.restoreSession()})),r}a(t,e);var r=t.prototype;return r.isConnected=function(){return!0},r.request=function(){var e=i(n().mark((function e(t){var r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.method,a=t.params,e.next=3,null==(r=(i=this.methods)[o])?void 0:r.call(i,a);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.restorePairing=function(){var e=i(n().mark((function e(){var t,r,i,o,a;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),r=this.storage.getValue(l.sessionId),!t||r){e.next=19;break}return e.prev=3,e.next=6,this.rpc.sendRpcApiRequest(D.waitForPairingResult,{pairingToken:t});case 6:if(o=e.sent,this.storage.clear(),this.storage.setValue(l.sessionId,o.session.sessionId),o.session.sessionId){e.next=11;break}throw v.PairingFailed;case 11:a=((null==(i=o.session)||null==(i=i.namespaces)||null==(i=i.eip155)?void 0:i.accounts)||[]).map((function(e){return e.includes(":")?e.split(":")[2]||"":e})),this.storage.setValue(l.address,a[0]||""),this.emit(p.accountsChanged,a),e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),this.storage.clear();case 19:case"end":return e.stop()}}),e,this,[[3,16]])})));return function(){return e.apply(this,arguments)}}(),r.restoreSession=function(){var e=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.storage.getValue(l.pairingToken),!this.storage.getValue(l.sessionId)||t){e.next=11;break}return e.prev=3,e.next=6,this.request({method:x.eth_requestAccounts});case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(3),this.storage.clear();case 11:case"end":return e.stop()}}),e,this,[[3,8]])})));return function(){return e.apply(this,arguments)}}(),r.injectProvider=function(){window.ethereum?window.ethereum.providers&&Array.isArray(window.ethereum.providers)?window.ethereum.providers.push(this):window.ethereum.providers=[window.ethereum,this]:window.ethereum=this},r.announceProvider=function(){window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:g,provider:this})}))},r.listenForRequestProviderEvents=function(){var e=this;window.addEventListener("eip6963:requestProvider",(function(){e.announceProvider()}))},t}(h);!function(e){e.appOpened="appOpened",e.walletConnected="walletConnected",e.walletDisconnected="walletDisconnected",e.walletAddressRequested="walletAddressRequested"}(T||(T={}));var A,O=function(){function e(){}return e.prototype.sendApiRequest=function(){var e=i(n().mark((function e(t,r){var i,o,a,s;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=new j,o=i.getValue(l.sessionId),a=i.getValue(l.address),o&&a){e.next=5;break}throw new Error("Not connected to the wallet");case 5:return e.next=7,fetch("https://wallet-api.grindery.com/v3",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+a+":"+o},body:JSON.stringify({jsonrpc:"2.0",id:1,method:t,params:r||{}})});case 7:if((s=e.sent).ok){e.next=10;break}throw new Error("Failed to call "+t);case 10:return e.next=12,s.json();case 12:return e.abrupt("return",e.sent.result);case 14:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),e}(),L=function(){function e(e){this.provider=void 0,this.storage=new j,this.user=null,(null!=e&&e.appId||null!=e&&e.appUrl)&&(window.Grindery=o({},window.Grindery||{},{appId:null==e?void 0:e.appId,appUrl:null==e?void 0:e.appUrl})),this.storage.setValue(l.chainId,this.storage.getValue(l.chainId)||m[0]),this.provider=this.getWeb3Provider(),this.initTracking(),this.provider.on(p.pair,this.handlePairing)}var t=e.prototype;return t.isConnected=function(){return this.provider.isConnected()},t.isWalletConnected=function(){return this.isConnected()&&!!this.storage.getValue(l.pairingToken)&&!this.storage.getValue(l.sessionId)},t.connect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.eth_requestAccounts});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.disconnect=function(){var e=i(n().mark((function e(){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.gws_disconnect});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.sendTransaction=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.eth_sendTransaction,params:[t]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.signMessage=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.personal_sign,params:[t,this.storage.getValue("address")]});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.switchChain=function(){var e=i(n().mark((function e(t){return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.provider.request({method:x.wallet_switchEthereumChain,params:{chainId:N(t)}});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getChain=function(){return this.storage.getValue(l.chainId)||m[0]},t.getUserWalletAddress=function(){var e=i(n().mark((function e(t){var r;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new k,this.trackClientEvent(T.walletAddressRequested,{userId:t}),e.next=4,r.sendRpcApiRequest(D.getUserWalletAddress,{appId:d(),userId:t});case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.on=function(e,t){return this.provider.on(e,t),this},t.removeListener=function(e,t){return this.provider.removeListener(e,t),this},t.getUser=function(){var e=i(n().mark((function e(){var t;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.user){e.next=11;break}return t=new O,e.prev=2,e.next=5,t.sendApiRequest("gw_getMe");case 5:this.user=e.sent,e.next=11;break;case 8:throw e.prev=8,e.t0=e.catch(2),new Error(e.t0 instanceof Error?e.t0.message:"Failed to fetch user information");case 11:return e.abrupt("return",this.user);case 12:case"end":return e.stop()}}),e,this,[[2,8]])})));return function(){return e.apply(this,arguments)}}(),t.getWeb3Provider=function(){var e,t=null==(e=window.ethereum)||null==(e=e.providers)?void 0:e.find((function(e){return e instanceof b&&e.isGrinderyWallet}));return!t&&window.ethereum instanceof b&&window.ethereum.isGrinderyWallet&&(t=window.ethereum),t||(t=new b),t},t.handlePairing=function(e){var t,n=e.connectUrl,r=null==(t=window.Telegram)?void 0:t.WebApp,i=e.connectUrlBrowser||"https://www.grindery.com/connect/wc?uri="+e.shortToken;r&&r.openTelegramLink&&r.platform&&"unknown"!==r.platform&&n?r.openTelegramLink(n):window.open(i,"_blank")},t.trackClientEvent=function(){var e=i(n().mark((function e(t,r){var i,a,s,c,u,p,h,f,g;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(null==(i=window.Grindery)?void 0:i.appUrl)||window.location.origin,c=d(),u=null==(a=window.Telegram)||null==(a=a.WebApp)||null==(a=a.initDataUnsafe)||null==(a=a.user)?void 0:a.id,e.prev=3,g=new k,e.next=7,g.sendRpcApiRequest(D.trackClientEvent,{name:t,appUrl:s,userTelegramId:u,data:o({},r||{},{pageUrl:window.location.href,appId:c,sessionId:this.storage.getValue(l.sessionId),clientId:this.storage.getValue(l.clientId),isMiniApp:Boolean(null==(p=window.Telegram)?void 0:p.initDataUnsafe),miniAppPlatform:null==(h=window.Telegram)||null==(h=h.WebApp)?void 0:h.platform,miniAppSdkVersion:null==(f=window.Telegram)||null==(f=f.WebApp)?void 0:f.version,userAgent:window.navigator.userAgent})});case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(3);case 11:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(t,n){return e.apply(this,arguments)}}(),t.initTracking=function(){var e=this;this.trackClientEvent(T.appOpened),this.on(p.accountsChanged,(function(t){t.length>0&&e.trackClientEvent(T.walletConnected,{wallets:t})})),this.on(p.disconnect,(function(){e.trackClientEvent(T.walletDisconnected)}))},e}(),U=L;null!=(A=window.Grindery)&&A.WalletSDK&&window.Grindery.WalletSDK instanceof L||(window.Grindery=o({},window.Grindery||{},{WalletSDK:new L})),e.GrinderyWalletSDK=U,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=grindery-wallet-sdk.umd.production.min.js.map diff --git a/example/dist/grindery-wallet-sdk.umd.production.min.js.map b/example/dist/grindery-wallet-sdk.umd.production.min.js.map index e45a821..e35b6f9 100644 --- a/example/dist/grindery-wallet-sdk.umd.production.min.js.map +++ b/example/dist/grindery-wallet-sdk.umd.production.min.js.map @@ -1 +1 @@ -{"version":3,"file":"grindery-wallet-sdk.umd.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletSDK.ts","../src/index.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.emit(ProviderEvents.accountsChanged, result);\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown'\n ) {\n WebApp.openTelegramLink(connectUrlBrowser);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","accountsChanged","address","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletSDK","config","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","user","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grindery-wallet-sdk.umd.production.min.js","sources":["../src/classes/EventEmitter.ts","../src/classes/SdkStorage.ts","../src/utils/getAppId.ts","../src/utils/uuid.ts","../src/utils/providerInfo.ts","../src/classes/ProviderError.ts","../src/utils/chains.ts","../src/classes/Rpc.ts","../src/classes/Provider.ts","../src/utils/clientEvents.ts","../src/classes/WalletAPI.ts","../src/index.ts","../src/classes/WalletSDK.ts"],"sourcesContent":["/**\n * @summary Provider events\n * @since 0.2.0\n * @link https://eips.ethereum.org/EIPS/eip-1193#provider-events\n * @enum {string}\n */\nexport enum ProviderEvents {\n accountsChanged = 'accountsChanged',\n pair = 'pair',\n connect = 'connect',\n disconnect = 'disconnect',\n chainChanged = 'chainChanged',\n message = 'message',\n}\n\n/**\n * @summary Provider event name\n * @since 0.2.0\n */\nexport type ProviderEventName = keyof typeof ProviderEvents;\n\n/**\n * @summary A class for emitting provider events\n * @since 0.2.0\n */\nexport class EventEmitter {\n constructor() {\n this.events = new Map();\n }\n\n /**\n * @summary A map of events and their listeners\n * @private\n */\n private events: Map<ProviderEventName, Array<Function>>;\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n if (this.events.has(event)) {\n const callbacks = this.events.get(event)!.filter((cb) => cb !== callback);\n this.events.set(event, callbacks);\n }\n return this;\n }\n\n /**\n * @summary Emits an event\n * @public\n * @param {string} event Event name\n * @param data Event data\n * @returns {EventEmitter} The instance of the class itself\n */\n protected emit(event: ProviderEventName, ...data: any[]) {\n if (this.events.has(event)) {\n console.log('[Grindery.WalletSDK] > Event:', event, data[0]);\n this.events.get(event)!.forEach((callback) => {\n callback(...data);\n });\n }\n return this;\n }\n}\n","import { CHAINS } from '../utils/chains';\nimport { uuid } from '../utils/uuid';\n\nconst LOCALSTORAGE_KEY = 'GrinderyWalletProvider';\n\n/**\n * @summary SdkStorage keys\n * @since 0.2.0\n */\nexport enum SdkStorageKeys {\n pairingToken = 'pairingToken',\n sessionId = 'sessionId',\n connectUrl = 'connectUrl',\n connectUrlBrowser = 'connectUrlBrowser',\n shortToken = 'shortToken',\n clientId = 'clientId',\n address = 'address',\n chainId = 'chainId',\n}\n\n/**\n * @summary SdkStorage key type\n * @since 0.2.0\n */\nexport type SdkStorageKey = keyof typeof SdkStorageKeys;\n\nexport type SdkStorageSnapshot = {\n [key in SdkStorageKeys]?: string;\n};\n\n/**\n * @summary A class to handle local storage\n * @since 0.2.0\n */\nexport class SdkStorage {\n /**\n * @summary Gets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @returns {string} The value of the storage by the key\n */\n public getValue(key: SdkStorageKey): string {\n const value = this.getSnapshot()[key] || '';\n return value;\n }\n\n /**\n * @summary Sets the value of the storage by the key\n * @public\n * @param {SdkStorageKey} key Provider storage key\n * @param {string} value The value to set\n * @returns {void}\n */\n public setValue(key: SdkStorageKey, value: string): string {\n const snapshot = this.getSnapshot();\n snapshot[key] = value;\n this.saveSnapshot(snapshot);\n return value;\n }\n\n /**\n * @summary Clears the storage\n * @public\n * @returns {void}\n */\n public clear(): void {\n this.saveSnapshot({\n clientId: this.getSnapshot().clientId || uuid(),\n chainId: this.getSnapshot().chainId || CHAINS[0],\n });\n }\n\n /**\n * @summary Gets the storage\n * @since 0.2.0\n * @returns {SdkStorageSnapshot} The storage snapshot object\n */\n private getSnapshot(): SdkStorageSnapshot {\n try {\n return JSON.parse(\n localStorage.getItem(LOCALSTORAGE_KEY) || '{}'\n ) as SdkStorageSnapshot;\n } catch (error) {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify({}));\n throw new Error('Error parsing storage');\n }\n }\n\n /**\n * @summary Saves the storage\n * @since 0.2.0\n * @param {SdkStorageSnapshot} storage SdkStorage snapshot object\n */\n private saveSnapshot(storage: SdkStorageSnapshot): void {\n localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(storage));\n }\n}\n","/**\n * @summary Get the app id from the script tag or window object\n * @returns {string} The app id\n */\nexport const getAppId = (): string => {\n let appId: string = '';\n const elements = document.querySelectorAll('[data-app-id]');\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const value = element.getAttribute('data-app-id');\n const src = element.getAttribute('src');\n const isGrinderySrc = src && src.includes('grindery-wallet-sdk');\n if (value && isGrinderySrc) {\n appId = value;\n }\n }\n if (window.Grindery?.appId) {\n appId = window.Grindery.appId;\n }\n return appId;\n};\n","/**\n * @summary Generates a Version 4 (pseudorandom) UUID\n * @returns {string} The UUID\n */\nexport const uuid = (): string => {\n let d = '';\n while (d.length < 32) d += Math.random().toString(16).substr(2);\n const vr = ((parseInt(d.substr(16, 1), 16) & 0x3) | 0x8).toString(16);\n return `${d.substr(0, 8)}-${d.substr(8, 4)}-4${d.substr(\n 13,\n 3\n )}-${vr}${d.substr(17, 3)}-${d.substr(20, 12)}`;\n};\n","import { uuid } from './uuid';\n\n/**\n * Represents the assets needed to display a wallet\n *\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#provider-info\n */\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n\n /**\n * Data URI as defined in RFC-2397.\n *\n * The image SHOULD be a square with 96x96px minimum resolution.\n * The image format is RECOMMENDED to be either lossless or vector based such as PNG, WebP or SVG.\n * @link https://eips.ethereum.org/EIPS/eip-6963#imagesicons\n */\n icon: string;\n\n /**\n * MUST BE a valid RFC-1034 Domain Name\n * @link https://eips.ethereum.org/EIPS/eip-6963#rdns\n */\n rdns: string;\n}\n\nexport const providerInfo: EIP6963ProviderInfo = {\n uuid: uuid(),\n name: 'Grindery Wallet',\n rdns: 'com.grindery.wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iNDgiIGZpbGw9IiMwQjBEMTciLz4KPHBhdGggZD0iTTUyLjcwOTMgNTQuNjI5NUw0My40MDAzIDYwLjU2MTdDNDEuOTkwMiA2MS40NjAzIDQxLjU4OTQgNjMuMzEwNSA0Mi41MDUxIDY0LjY5NDJDNDMuNDA5NyA2Ni4wNjExIDQ1LjI2MDYgNjYuNDYxNSA0Ni42NjQ4IDY1LjYwNDhMNTIuNDQ4MiA2MS43MjY5TDU3LjU1NjggNTguMjk1MUM1Ny42MzgyIDU4LjI0MTkgNTcuNzE5MyA1OC4xODk2IDU3LjgwMDMgNTguMTM4NEw1OC4wNTgxIDU3Ljk2NTVDNTguMjA1MyA1Ny44NjY4IDU4LjM1NzggNTcuNzgxMyA1OC41MTQxIDU3LjcwODlDNTguNjQwNiA1Ny42MzY5IDU4Ljc2NjYgNTcuNTY3MyA1OC44OTIxIDU3LjUwMDFDNjEuOTUwMSA1NS44NjQ0IDY1Ljc4MDQgNTYuOTcwOSA2Ny40NDczIDU5Ljk3MTdDNjguOTA3NSA2Mi42MDAzIDY4LjI0MDggNjUuODc3NiA2NS44NjQgNjcuNzU0NUM2Ni4yMzc2IDY2Ljg3NDggNjYuMTc2OCA2NS44MzUyIDY1LjYwNzkgNjQuOTc1NUM2NC43MDMzIDYzLjYwODYgNjIuODUyNCA2My4yMDgzIDYxLjQ0ODIgNjQuMDY1TDU1LjY2NDggNjcuOTQyOEw1MC41NTYyIDcxLjM3NDdDNTAuNTA3OSA3MS40MDU1IDUwLjQ1OTQgNzEuNDM1OCA1MC40MTA3IDcxLjQ2NTdMNTAuMDU1IDcxLjcwNDJDNDkuNzU1OCA3MS45MDQ5IDQ5LjQzNDkgNzIuMDUwNiA0OS4xMDQ3IDcyLjE0MzhDNDQuNjU3MyA3NC4wNTkyIDM5LjMyMzggNzIuNTg5NCAzNi41OTI0IDY4LjQ2MjFDMzMuNzUxNiA2NC4xNjk2IDM0LjczMTcgNTguNTIzNCAzOC42OTg2IDU1LjM3MzZDMzYuODE0IDU0LjY1NzkgMzUuMDI3NSA1My41OTk1IDMzLjQzNjEgNTIuMTkzNEMyNi40MzA0IDQ2LjAwMzYgMjUuODU3NyAzNS40MjA1IDMyLjE1NjkgMjguNTU1NEMzOC40NTYyIDIxLjY5MDQgNDkuMjQxOSAyMS4xNDMxIDU2LjI0NzYgMjcuMzMyOUM2My4yNTMzIDMzLjUyMjggNjMuODI2IDQ0LjEwNTkgNTcuNTI2NyA1MC45NzA5QzU2LjExNTIgNTIuNTA5MyA1NC40Nzg0IDUzLjczMDQgNTIuNzA5MyA1NC42Mjk1Wk01MS44MDcgNDYuMDUxNkM1NS40MjMgNDIuMDgyMyA1NS4wOTQzIDM1Ljk2MzEgNTEuMDcyNyAzMi4zODQxQzQ3LjA1MTEgMjguODA1MiA0MC44NTk1IDI5LjEyMTYgMzcuMjQzNSAzMy4wOTFDMzMuNjI3NCAzNy4wNjA0IDMzLjk1NjIgNDMuMTc5NSAzNy45Nzc4IDQ2Ljc1ODVDNDEuOTk5NCA1MC4zMzc1IDQ4LjE5MDkgNTAuMDIxIDUxLjgwNyA0Ni4wNTE2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==',\n};\n","/**\n * @summary Error class for wallet Provider\n * @since 0.1.0\n * @extends Error\n */\nexport class ProviderError extends Error {\n name: string = 'GrinderyWalletProviderError';\n code?: number;\n data?: unknown;\n\n constructor(message: string, code?: number, data?: unknown) {\n super(message);\n this.code = code;\n this.data = data;\n }\n}\n\nexport const ProviderErrors = {\n PairingFailed: new ProviderError('Pairing failed', 4900),\n Disconnected: new ProviderError('Disconnected', 4900),\n UnsupportedMethod: new ProviderError('Unsupported Method', 4200),\n Unauthorized: new ProviderError('Unauthorized', 4100),\n NoResult: new ProviderError('No result', 4900),\n NoAppId: new ProviderError('App ID is required', 4900),\n UserRejected: new ProviderError('User Rejected Request', 4001),\n ChainDisconnected: new ProviderError('Chain Disconnected', 4901),\n};\n\nexport const newProviderError = (error?: unknown): ProviderError => {\n let errorResponse: ProviderError;\n if (error instanceof ProviderError) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n error.code || 4900,\n error.data\n );\n } else if (error instanceof Error) {\n errorResponse = new ProviderError(\n error.message || 'Unknown error',\n 4900,\n error\n );\n } else {\n errorResponse = new ProviderError('Unknown error', 4900, error);\n }\n return errorResponse;\n};\n","/**\n * Supported chains list\n *\n * @description Currently supports the following chains: Polygon, BNB Smart Chain, and opBNB Smart Chain\n *\n * @since 0.3.0\n * @type {string[]} Chain ids in CAIP-2 format\n */\nexport const CHAINS: string[] = ['eip155:137', 'eip155:56', 'eip155:204'];\n\nexport const hexChainId = (chainId: string): string => {\n return `0x${parseInt(chainId.split(':')[1], 10).toString(16)}`;\n};\n\nexport const unhexChainId = (hexChainId: string): string => {\n return `eip155:${parseInt(hexChainId, 16)}`;\n};\n","import { ProviderError, ProviderErrors } from './ProviderError';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery RPC API method names\n */\nexport enum RpcMethodNames {\n requestPairing = 'requestPairing',\n waitForPairingResult = 'waitForPairingResult',\n request = 'request',\n waitForRequestResult = 'waitForRequestResult',\n 'disconnect' = 'disconnect',\n getUserWalletAddress = 'getUserWalletAddress',\n trackClientEvent = 'trackClientEvent',\n}\n\n/**\n * @summary The Grindery RPC API request results\n * @since 0.2.0\n */\nexport namespace RpcRequestResults {\n /**\n * @summary `waitForPairingResult` method result\n */\n export type waitForPairingResult = {\n session: {\n expiry: number;\n sessionId: string;\n namespaces: {\n [key: string]: {\n accounts: string[];\n chains: string[];\n events: string[];\n methods: string[];\n };\n };\n };\n };\n\n /**\n * @summary `requestPairing` method result\n */\n export type requestPairing = {\n pairingToken: string;\n connectUrl: string;\n connectUrlBrowser: string;\n shortToken: string;\n };\n\n /**\n * @summary `request` method result\n */\n export type request = {\n requestToken: string;\n };\n\n /**\n * @summary `waitForRequestResult` method result\n */\n export type waitForRequestResult = any;\n\n /**\n * @summary `disconnect` method result\n */\n export type disconnect = boolean;\n\n /**\n * @summary `getUserWalletAddress` method result\n */\n export type getUserWalletAddress = string;\n\n /**\n * @summary `trackClientEvent` method result\n */\n export type trackClientEvent = true;\n}\n\n/**\n * @summary The Grindery RPC API wrapper class\n * @since 0.2.0\n */\nexport class Rpc {\n /**\n * @summary Sends a provider request to the Grindery RPC API and waits for the result.\n * @public\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n public async sendAndWaitRpcRequest<T>(\n method: string,\n params?: readonly unknown[],\n timeout?: number\n ): Promise<T> {\n const request = await this.sendRpcRequest(method, params);\n return await this.waitRpcRequest(request.requestToken, timeout);\n }\n\n /**\n * @summary Sends a provider request to the Grindery RPC API.\n * @protected\n * @param {RpcMethodNames} method Provider request method name\n * @param {Array} params Provider request parameters\n * @returns {RpcRequestResults.request} Promise resolving with the request token to use in the `waitGrinderyRpcProviderRequest` method\n */\n protected async sendRpcRequest(\n method: string,\n params?: readonly unknown[]\n ): Promise<RpcRequestResults.request> {\n const storage = new SdkStorage();\n return await this.sendRpcApiRequest<RpcRequestResults.request>(\n RpcMethodNames.request,\n {\n sessionId: storage.getValue(SdkStorageKeys.sessionId),\n scope: storage.getValue(SdkStorageKeys.chainId),\n request: {\n method,\n params,\n },\n }\n );\n }\n\n /**\n * @summary Waits for the result of the provider request.\n * @protected\n * @param {string} requestToken A token to identify provider request. Recieved in the results of `sendGrinderyRpcProviderRequest` method.\n * @param {number} timeout Optional. The time in milliseconds to wait for the request result. Default is 30000.\n * @returns The result of the provider request\n */\n protected async waitRpcRequest<T>(\n requestToken: string,\n timeout?: number\n ): Promise<T> {\n return await this.sendRpcApiRequest<T>(\n RpcMethodNames.waitForRequestResult,\n {\n requestToken,\n timeout,\n }\n );\n }\n\n /**\n * @summary Sends a request to the Grindery Walletconnect RPC API.\n * @public\n * @param {RpcMethodNames} method Request method name\n * @param {RequestArgumentsParams} params Request parameters\n * @returns {T} The result of the request\n */\n public async sendRpcApiRequest<T>(\n method: RpcMethodNames,\n params?: unknown[] | object\n ): Promise<T> {\n try {\n const response = await fetch('https://walletconnect-api.grindery.com', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method: `gws_${method}`,\n params: params || [],\n }),\n });\n const data = await response.json();\n if (data.error) {\n throw new ProviderError(data.error.message, data.error.code);\n }\n if (!data.result) {\n throw ProviderErrors.NoResult;\n }\n return data.result;\n } catch (error) {\n if (error instanceof Error) {\n throw new ProviderError(error.message, 500, error);\n }\n throw new ProviderError('Server error', 500, error);\n }\n }\n}\n","import { getAppId } from '../utils/getAppId';\nimport { providerInfo } from '../utils/providerInfo';\nimport { EventEmitter, ProviderEvents } from './EventEmitter';\nimport { ProviderErrors, newProviderError } from './ProviderError';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId, unhexChainId } from '../utils/chains';\n\n/**\n * @summary The Grindery wallet provider methods\n * @since 0.2.0\n */\nexport type ProviderMethods = {\n [name in ProviderMethodNames]: (\n params?: ProviderRequestArgumentsParams\n ) => Promise<unknown>;\n};\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n * @since 0.3.0 Added `eth_chainId`, `wallet_addEthereumChain` and `wallet_switchEthereumChain` methods\n */\nexport enum ProviderMethodNames {\n eth_requestAccounts = 'eth_requestAccounts',\n eth_accounts = 'eth_accounts',\n personal_sign = 'personal_sign',\n eth_sendTransaction = 'eth_sendTransaction',\n gws_disconnect = 'gws_disconnect',\n eth_chainId = 'eth_chainId',\n wallet_addEthereumChain = 'wallet_addEthereumChain',\n wallet_switchEthereumChain = 'wallet_switchEthereumChain',\n}\n\nexport namespace ProviderRequestResults {\n export type eth_accounts = string[];\n export type eth_requestAccounts = string[];\n export type personal_sign = string;\n export type eth_sendTransaction = string;\n export type disconnect = boolean;\n export type wallet_switchEthereumChain = null;\n export type wallet_addEthereumChain = null;\n export type eth_chainId = string;\n}\n\n/**\n * @summary The Grindery wallet provider method names\n * @since 0.2.0\n */\nexport type ProviderMethodName = keyof typeof ProviderMethodNames;\n\n/**\n * @summary The Grindery wallet provider request params\n * @since 0.2.0\n */\nexport type ProviderRequestArgumentsParams = readonly unknown[] | object;\n\n/**\n * @summary The Grindery wallet provider request arguments\n * @since 0.2.0\n */\nexport interface ProviderRequestArguments {\n readonly method: ProviderMethodName;\n readonly params?: ProviderRequestArgumentsParams;\n}\n\n/**\n * @summary The base wallet provider class\n * @since 0.2.0\n * @extends EventEmitter\n */\nexport class Provider extends EventEmitter {\n public isGrinderyWallet: boolean = true;\n\n constructor() {\n super();\n\n this.injectProvider();\n this.listenForRequestProviderEvents();\n this.announceProvider();\n window.addEventListener('load', () => {\n this.emit(ProviderEvents.connect, {\n chainId: hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n ),\n });\n this.restorePairing();\n this.restoreSession();\n });\n }\n\n /**\n * @public\n * @returns {boolean} True if the provider is connected to the server.\n */\n public isConnected(): boolean {\n // Always true\n return true;\n }\n\n /**\n * @summary Sends a request to the provider\n * @public\n * @param {ProviderRequestArguments} args Request arguments\n * @param {string} args.method The method name\n * @param {ProviderRequestArgumentsParams} args.params The method parameters\n * @returns {T} The result of the request\n */\n public async request<T>({\n method,\n params,\n }: ProviderRequestArguments): Promise<T> {\n return (await this.methods[method]?.(params)) as T;\n }\n\n private storage: SdkStorage = new SdkStorage();\n\n private rpc: Rpc = new Rpc();\n\n /**\n * @summary Switches the chain\n * @since 0.3.0\n * @param {string} chainId Chain id in hex format\n * @returns {null} `Null` on success\n */\n private switchChain = async ({ chainId }: any): Promise<null> => {\n const chainCaip = unhexChainId(chainId);\n if (!CHAINS.includes(chainCaip)) {\n throw newProviderError(ProviderErrors.ChainDisconnected);\n }\n this.storage.setValue(SdkStorageKeys.chainId, chainCaip);\n this.emit(ProviderEvents.chainChanged, { chainId });\n return null;\n };\n\n /**\n * @summary The list of supported provider methods.\n * @private\n */\n private methods: Partial<ProviderMethods> = {\n /**\n * @summary The `eth_requestAccounts` provider method\n */\n [ProviderMethodNames.eth_requestAccounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_requestAccounts> => {\n if (this.storage.getValue('sessionId')) {\n try {\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: [],\n });\n } catch (error) {\n this.storage.setValue(SdkStorageKeys.sessionId, '');\n // skip failed request and continue with pairing\n }\n }\n if (this.storage.getValue('pairingToken')) {\n try {\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: this.storage.getValue(\n SdkStorageKeys.pairingToken\n ),\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n return await this.request<ProviderRequestResults.eth_accounts>({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n this.storage.clear();\n // skip failed request and continue with pairing\n }\n }\n try {\n this.storage.clear();\n const result =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.requestPairing>(\n RpcMethodNames.requestPairing,\n {\n appId: getAppId(),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n }\n )) as RpcRequestResults.requestPairing;\n\n if (!result.pairingToken || !result.connectUrl) {\n throw ProviderErrors.PairingFailed;\n }\n\n this.storage.setValue(SdkStorageKeys.pairingToken, result.pairingToken);\n this.storage.setValue(SdkStorageKeys.connectUrl, result.connectUrl);\n this.storage.setValue(\n SdkStorageKeys.connectUrlBrowser,\n result.connectUrlBrowser\n );\n this.storage.setValue(SdkStorageKeys.shortToken, result.shortToken);\n this.emit(ProviderEvents.pair, {\n shortToken: result.shortToken,\n connectUrl: result.connectUrl,\n connectUrlBrowser: result.connectUrlBrowser,\n });\n const pairResult =\n (await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken: result.pairingToken,\n }\n )) as RpcRequestResults.waitForPairingResult;\n\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n this.storage.setValue(SdkStorageKeys.pairingToken, '');\n this.storage.setValue(SdkStorageKeys.connectUrl, '');\n this.storage.setValue(SdkStorageKeys.connectUrlBrowser, '');\n this.storage.setValue(SdkStorageKeys.shortToken, '');\n\n return await this.request({\n method: ProviderMethodNames.eth_accounts,\n params: params || [],\n });\n } catch (error) {\n throw error;\n }\n },\n\n /**\n * @summary The `eth_accounts` provider method\n */\n [ProviderMethodNames.eth_accounts]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_accounts> => {\n try {\n const result = (await this.rpc.sendAndWaitRpcRequest<string[]>(\n ProviderMethodNames.eth_accounts,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_accounts;\n this.storage.setValue(SdkStorageKeys.address, result[0] || '');\n this.emit(ProviderEvents.accountsChanged, result);\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_sendTransaction` provider method\n */\n [ProviderMethodNames.eth_sendTransaction]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_sendTransaction> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.eth_sendTransaction,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.eth_sendTransaction;\n },\n\n /**\n * @summary The `personal_sign` provider method\n */\n [ProviderMethodNames.personal_sign]: async (\n params?: Partial<ProviderRequestArgumentsParams>\n ): Promise<ProviderRequestResults.personal_sign> => {\n return (await this.rpc.sendAndWaitRpcRequest(\n ProviderMethodNames.personal_sign,\n params ? (Array.isArray(params) ? params : [params]) : []\n )) as ProviderRequestResults.personal_sign;\n },\n\n /**\n * @summary The `gws_disconnect` provider method\n */\n [ProviderMethodNames.gws_disconnect]:\n async (): Promise<ProviderRequestResults.disconnect> => {\n try {\n const result =\n await this.rpc.sendRpcApiRequest<ProviderRequestResults.disconnect>(\n RpcMethodNames.disconnect,\n {\n sessionToken: this.storage.getValue(SdkStorageKeys.sessionId),\n }\n );\n\n this.emit(ProviderEvents.disconnect, ProviderErrors.Disconnected);\n\n return result;\n } catch (error) {\n throw newProviderError(error);\n }\n },\n\n /**\n * @summary The `eth_chainId` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.eth_chainId]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.eth_chainId> => {\n return hexChainId(\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n },\n\n /**\n * @summary The `wallet_addEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_addEthereumChain]: async (\n _?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_addEthereumChain> => {\n throw newProviderError(ProviderErrors.UserRejected);\n },\n\n /**\n * @summary The `wallet_switchEthereumChain` provider method\n * @since 0.3.0\n */\n [ProviderMethodNames.wallet_switchEthereumChain]: async (\n params?: ProviderRequestArgumentsParams\n ): Promise<ProviderRequestResults.wallet_switchEthereumChain> =>\n await this.switchChain(params),\n };\n\n /**\n * @summary Restores the pairing process if pairing token is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restorePairing(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (pairingToken && !sessionId) {\n try {\n const pairResult =\n await this.rpc.sendRpcApiRequest<RpcRequestResults.waitForPairingResult>(\n RpcMethodNames.waitForPairingResult,\n {\n pairingToken,\n }\n );\n\n this.storage.clear();\n this.storage.setValue(\n SdkStorageKeys.sessionId,\n pairResult.session.sessionId\n );\n\n if (!pairResult.session.sessionId) {\n throw ProviderErrors.PairingFailed;\n }\n\n const accounts = (\n pairResult.session?.namespaces?.[`eip155`]?.accounts || []\n ).map((account) =>\n account.includes(':') ? account.split(':')[2] || '' : account\n );\n this.storage.setValue(SdkStorageKeys.address, accounts[0] || '');\n this.emit(ProviderEvents.accountsChanged, accounts);\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Restores the session if session Id is stored in the local storage\n * @private\n * @returns {void}\n */\n private async restoreSession(): Promise<void> {\n const pairingToken = this.storage.getValue(SdkStorageKeys.pairingToken);\n const sessionId = this.storage.getValue(SdkStorageKeys.sessionId);\n if (sessionId && !pairingToken) {\n try {\n await this.request<string[]>({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n } catch (error) {\n this.storage.clear();\n }\n }\n }\n\n /**\n * @summary Injects the provider into the window object\n * @private\n * @returns {void}\n */\n private injectProvider(): void {\n if (!window.ethereum) {\n window.ethereum = this;\n } else {\n if (\n window.ethereum.providers &&\n Array.isArray(window.ethereum.providers)\n ) {\n window.ethereum.providers.push(this);\n } else {\n window.ethereum.providers = [window.ethereum, this];\n }\n }\n }\n\n /**\n * @summary Announces the provider to the window object\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private announceProvider(): void {\n window.dispatchEvent(\n new CustomEvent('eip6963:announceProvider', {\n detail: Object.freeze({ info: providerInfo, provider: this }),\n })\n );\n }\n\n /**\n * @summary Listens for the request provider events\n * @private\n * @since 0.1.1\n * @link https://eips.ethereum.org/EIPS/eip-6963#announce-and-request-events\n * @returns {void}\n */\n private listenForRequestProviderEvents(): void {\n window.addEventListener('eip6963:requestProvider', () => {\n this.announceProvider();\n });\n }\n}\n","export enum ClientEventNames {\n /**\n * @summary The event is triggered every time the app page is opened\n */\n appOpened = 'appOpened',\n /**\n * @summary The event is triggered when the user wallet is connected\n */\n walletConnected = 'walletConnected',\n /**\n * @summary The event is triggered when the user wallet is disconnected\n */\n walletDisconnected = 'walletDisconnected',\n /**\n * @summary The event is triggered when the app requests user wallet address\n */\n walletAddressRequested = 'walletAddressRequested',\n}\n\nexport type ClientEventName = keyof typeof ClientEventNames;\n","import { SdkStorage, SdkStorageKeys } from './SdkStorage';\n\n/**\n * @summary The Grindery Wallet API wrapper class\n * @since 0.5.0\n */\nexport class WalletAPI {\n /**\n * @summary Sends a request to the Grindery Wallet API\n * @public\n * @param {string} method JSON-RPC method name\n * @param {object} params JSON-RPC method parameters, optional\n * @returns {T} The result of the API request\n */\n public async sendApiRequest<T>(method: string, params?: object): Promise<T> {\n const storage = new SdkStorage();\n const sessionId = storage.getValue(SdkStorageKeys.sessionId);\n const address = storage.getValue(SdkStorageKeys.address);\n if (!sessionId || !address) {\n throw new Error('Not connected to the wallet');\n }\n const response = await fetch(`https://wallet-api.grindery.com/v3`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${address}:${sessionId}`,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: 1,\n method,\n params: params || {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to call ${method}`);\n }\n const json = await response.json();\n return json.result as T;\n }\n}\n","import { WalletSDK } from './classes/WalletSDK';\n\ndeclare global {\n interface Window {\n Telegram?: any;\n ethereum?: any;\n Grindery?: {\n appId?: string;\n appUrl?: string;\n WalletSDK?: WalletSDK;\n };\n }\n}\n\n/**\n * @summary The Grindery Wallet SDK\n */\nexport const GrinderyWalletSDK = WalletSDK;\n\nfunction init() {\n if (\n !window.Grindery?.WalletSDK ||\n !(window.Grindery.WalletSDK instanceof WalletSDK)\n ) {\n window.Grindery = {\n ...(window.Grindery || {}),\n WalletSDK: new WalletSDK(),\n };\n }\n}\n\n// Initialize the SDK\ninit();\n","import { ProviderEventName, ProviderEvents } from './EventEmitter';\nimport { Provider, ProviderMethodNames } from './Provider';\nimport { Rpc, RpcMethodNames, RpcRequestResults } from './Rpc';\nimport { SdkStorage, SdkStorageKeys } from './SdkStorage';\nimport { CHAINS, hexChainId } from '../utils/chains';\nimport { getAppId } from '../utils/getAppId';\nimport { ClientEventName, ClientEventNames } from '../utils/clientEvents';\nimport { User } from '../utils/user';\nimport { WalletAPI } from './WalletAPI';\n\nexport type WalletSDKConfig = {\n appId?: string;\n appUrl?: string;\n};\n\n/**\n * @summary The Wallet SDK class\n * @since 0.2.0\n */\nexport class WalletSDK {\n /**\n * @summary The provider instance\n * @public\n */\n public provider: Provider;\n\n constructor(config?: WalletSDKConfig) {\n if (config?.appId || config?.appUrl) {\n window.Grindery = {\n ...(window.Grindery || {}),\n appId: config?.appId,\n appUrl: config?.appUrl,\n };\n }\n\n this.storage.setValue(\n SdkStorageKeys.chainId,\n this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0]\n );\n this.provider = this.getWeb3Provider();\n this.initTracking();\n this.provider.on(ProviderEvents.pair, this.handlePairing);\n }\n\n /**\n * @summary Checks if the provider is connected to the server\n * @returns {boolean} True if the provider is connected to the server.\n *\n * @example\n * ```typescript\n * const isConnected = window.Grindery.WalletSDK.isConnected();\n * ```\n */\n public isConnected(): boolean {\n return this.provider.isConnected();\n }\n\n /**\n * @summary Checks if the provider is connected to the server and the Grindery Wallet\n * @returns {boolean} True if the provider is connected to the server and the Grindery Wallet.\n */\n public isWalletConnected(): boolean {\n return (\n this.isConnected() &&\n !!this.storage.getValue(SdkStorageKeys.pairingToken) &&\n !this.storage.getValue(SdkStorageKeys.sessionId)\n );\n }\n\n /**\n * @summary Initiate connection to the Grindery Wallet\n * @public\n * @returns {Promise<string[]>} The array of ethereum addresses\n * @since 0.1.0\n */\n public async connect(): Promise<string[]> {\n return await this.provider.request({\n method: ProviderMethodNames.eth_requestAccounts,\n });\n }\n\n /**\n * @summary Disconnects Grindery Wallet\n * @public\n * @returns {Promise<boolean>} True if wallet is disconnected\n * @since 0.1.0\n */\n public async disconnect(): Promise<boolean> {\n return await this.provider.request({\n method: ProviderMethodNames.gws_disconnect,\n });\n }\n\n /**\n * @summary Sends a transaction request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {object} params The transaction parameters\n * @param {string} params.to The recipient address\n * @param {string} [params.value] The amount to send in wei\n * @param {string} [params.data] The data to send\n * @returns {Promise<string>} Transaction hash string\n */\n public async sendTransaction(params: {\n to: string;\n value?: string;\n data?: string;\n }): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.eth_sendTransaction,\n params: [params],\n });\n }\n\n /**\n * @summary Sends a personal signature request to the Grindery Wallet\n * @public\n * @since 0.1.0\n * @param {string} message The message to sign\n * @returns {Promise<string>} Signature string\n */\n public async signMessage(message: string): Promise<string> {\n return await this.provider.request<string>({\n method: ProviderMethodNames.personal_sign,\n params: [message, this.storage.getValue('address')],\n });\n }\n\n /**\n * @summary Requests the Grindery Wallet to switch the chain\n * @public\n * @since 0.3.0\n * @param {string} chainId Chain id in CAIP-2 format\n * @returns {Promise<null>} Returns `null` on success\n */\n public async switchChain(chainId: string): Promise<null> {\n return await this.provider.request<null>({\n method: ProviderMethodNames.wallet_switchEthereumChain,\n params: { chainId: hexChainId(chainId) },\n });\n }\n\n /**\n * @summary Gets currently connected chain\n * @public\n * @since 0.3.0\n * @returns {string} Returns chain id in CAIP-2 format\n */\n public getChain(): string {\n return this.storage.getValue(SdkStorageKeys.chainId) || CHAINS[0];\n }\n\n /**\n * @summary Exchange Telegram user ID to Grindery Wallet address\n * @public\n * @since 0.4.0\n * @param {string} userId Telegram user ID\n * @returns {Promise<string>} Grindery Wallet address\n */\n public async getUserWalletAddress(\n userId: string\n ): Promise<RpcRequestResults.getUserWalletAddress> {\n const rpc = new Rpc();\n this.trackClientEvent(ClientEventNames.walletAddressRequested, { userId });\n return await rpc.sendRpcApiRequest<RpcRequestResults.getUserWalletAddress>(\n RpcMethodNames.getUserWalletAddress,\n { appId: getAppId(), userId }\n );\n }\n\n /**\n * @summary Adds a listener to the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public on(event: ProviderEventName, callback: Function) {\n this.provider.on(event, callback);\n return this;\n }\n\n /**\n * @summary Removes a listener from the event\n * @public\n * @param {ProviderEventName} event Event name\n * @param {Function} callback Callback function\n * @returns {EventEmitter} The instance of the class itself\n */\n public removeListener(event: ProviderEventName, callback: Function) {\n this.provider.removeListener(event, callback);\n return this;\n }\n\n /**\n * @summary Gets the Grindery user information\n * @public\n * @since 0.5.0\n * @returns {Promise<User>} The Grindery user information\n */\n public async getUser(): Promise<User> {\n if (!this.user) {\n const api = new WalletAPI();\n try {\n this.user = await api.sendApiRequest<User>('gw_getMe');\n } catch (e) {\n throw new Error(\n e instanceof Error ? e.message : 'Failed to fetch user information'\n );\n }\n }\n return this.user;\n }\n\n /**\n * @summary SdkStorage class instance\n * @private\n */\n private storage: SdkStorage = new SdkStorage();\n\n /**\n * @summary The Grindery Wallet user\n * @private\n */\n private user: User | null = null;\n\n /**\n * @summary Gets the Grindery Wallet ethereum provider\n * @returns {Provider} The Grindery Wallet ethereum provider\n */\n private getWeb3Provider(): Provider {\n let provider = window.ethereum?.providers?.find(\n (provider: Provider | unknown) =>\n provider instanceof Provider && provider.isGrinderyWallet\n );\n if (\n !provider &&\n window.ethereum instanceof Provider &&\n window.ethereum.isGrinderyWallet\n ) {\n provider = window.ethereum;\n }\n if (!provider) {\n provider = new Provider();\n }\n return provider;\n }\n\n /**\n * @summary Handles the pairing request, by opening the Grindery Wallet\n * @private\n * @param ProviderRequestPairingResult\n * @returns {void}\n */\n private handlePairing({\n shortToken,\n connectUrl,\n connectUrlBrowser,\n }: RpcRequestResults.requestPairing): void {\n const WebApp = window.Telegram?.WebApp;\n const redirectUrl =\n connectUrlBrowser ||\n `https://www.grindery.com/connect/wc?uri=${shortToken}`;\n if (\n WebApp &&\n WebApp.openTelegramLink &&\n WebApp.platform &&\n WebApp.platform !== 'unknown' &&\n connectUrl\n ) {\n WebApp.openTelegramLink(connectUrl);\n } else {\n window.open(redirectUrl, '_blank');\n }\n }\n\n /**\n * @summary Tracks client side event\n * @since 0.4.2\n * @private\n * @param AppEvent\n * @returns {Promise<void>}\n */\n private async trackClientEvent(\n name: ClientEventName,\n data?: Record<string, unknown>\n ): Promise<void> {\n const appUrl = window.Grindery?.appUrl || window.location.origin;\n const appId = getAppId();\n const userTelegramId = window.Telegram?.WebApp?.initDataUnsafe?.user?.id;\n\n try {\n const rpc = new Rpc();\n await rpc.sendRpcApiRequest<RpcRequestResults.trackClientEvent>(\n RpcMethodNames.trackClientEvent,\n {\n name,\n appUrl,\n userTelegramId,\n data: {\n ...(data || {}),\n pageUrl: window.location.href,\n appId,\n sessionId: this.storage.getValue(SdkStorageKeys.sessionId),\n clientId: this.storage.getValue(SdkStorageKeys.clientId),\n isMiniApp: Boolean(window.Telegram?.initDataUnsafe),\n miniAppPlatform: window.Telegram?.WebApp?.platform,\n miniAppSdkVersion: window.Telegram?.WebApp?.version,\n userAgent: window.navigator.userAgent,\n },\n }\n );\n } catch (e) {\n // ignore\n }\n }\n\n /**\n * @summary Initializes the tracking\n * @since 0.4.2\n * @private\n * @returns {void}\n */\n private initTracking(): void {\n this.trackClientEvent(ClientEventNames.appOpened);\n\n const onWalletConnect = (wallets: string[]) => {\n if (wallets.length > 0) {\n this.trackClientEvent(ClientEventNames.walletConnected, {\n wallets: wallets,\n });\n }\n };\n\n const onWalletDisconnect = () => {\n this.trackClientEvent(ClientEventNames.walletDisconnected);\n };\n\n this.on(ProviderEvents.accountsChanged, onWalletConnect);\n this.on(ProviderEvents.disconnect, onWalletDisconnect);\n }\n}\n"],"names":["ProviderEvents","SdkStorageKeys","EventEmitter","this","events","Map","_proto","prototype","on","event","callback","has","set","get","push","removeListener","callbacks","filter","cb","emit","_len","arguments","length","data","Array","_key","console","log","forEach","apply","getAppId","_window$Grindery","appId","elements","document","querySelectorAll","i","element","value","getAttribute","src","isGrinderySrc","includes","window","Grindery","uuid","d","Math","random","toString","substr","vr","parseInt","providerInfo","name","rdns","icon","ProviderError","_Error","message","code","_this","call","_inheritsLoose","_wrapNativeSuper","Error","ProviderErrors","PairingFailed","Disconnected","UnsupportedMethod","Unauthorized","NoResult","NoAppId","UserRejected","ChainDisconnected","newProviderError","error","CHAINS","hexChainId","chainId","split","unhexChainId","LOCALSTORAGE_KEY","RpcMethodNames","SdkStorage","getValue","key","getSnapshot","setValue","snapshot","saveSnapshot","clear","clientId","JSON","parse","localStorage","getItem","setItem","stringify","storage","ProviderMethodNames","Rpc","sendAndWaitRpcRequest","_sendAndWaitRpcRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","timeout","request","wrap","_context","prev","next","sendRpcRequest","sent","waitRpcRequest","requestToken","abrupt","stop","_x","_x2","_x3","_sendRpcRequest","_callee2","_context2","sendRpcApiRequest","sessionId","scope","_x4","_x5","_waitRpcRequest","_callee3","_context3","waitForRequestResult","_x6","_x7","_sendRpcApiRequest","_callee4","response","_context4","fetch","headers","body","jsonrpc","id","json","result","t0","_x8","_x9","Provider","ClientEventNames","_EventEmitter","_this$methods","_ref10","_ref9","_ref8","_ref6","_ref5","_ref4","_ref3","isGrinderyWallet","rpc","switchChain","_ref2","_ref","chainCaip","chainChanged","methods","eth_requestAccounts","pairResult","_pairResult","eth_accounts","waitForPairingResult","pairingToken","session","t1","requestPairing","connectUrl","connectUrlBrowser","shortToken","pair","t2","isArray","address","accountsChanged","eth_sendTransaction","personal_sign","_callee5","_context5","gws_disconnect","_callee6","_context6","disconnect","sessionToken","eth_chainId","_callee7","_","_context7","wallet_addEthereumChain","_callee8","_context8","wallet_switchEthereumChain","_callee9","_context9","injectProvider","listenForRequestProviderEvents","announceProvider","addEventListener","connect","restorePairing","restoreSession","isConnected","_request","_callee10","_ref11","_this$methods$method","_this$methods2","_context10","_restorePairing","_callee11","_pairResult$session","accounts","_context11","namespaces","map","account","_restoreSession","_callee12","_context12","ethereum","providers","dispatchEvent","CustomEvent","detail","Object","freeze","info","provider","_this2","WalletAPI","sendApiRequest","_sendApiRequest","Authorization","ok","WalletSDK","config","user","appUrl","_extends","getWeb3Provider","initTracking","handlePairing","isWalletConnected","_connect","_disconnect","sendTransaction","_sendTransaction","signMessage","_signMessage","_switchChain","getChain","getUserWalletAddress","_getUserWalletAddress","userId","trackClientEvent","walletAddressRequested","getUser","_getUser","api","_window$ethereum","find","_window$Telegram","WebApp","Telegram","redirectUrl","openTelegramLink","platform","open","_trackClientEvent","_window$Telegram2","userTelegramId","_window$Telegram3","_window$Telegram4","_window$Telegram5","location","origin","initDataUnsafe","pageUrl","href","isMiniApp","Boolean","miniAppPlatform","miniAppSdkVersion","version","userAgent","navigator","appOpened","wallets","walletConnected","walletDisconnected","GrinderyWalletSDK"],"mappings":"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"} \ No newline at end of file diff --git a/example/dist/utils/user.d.ts b/example/dist/utils/user.d.ts new file mode 100644 index 0000000..2bf8f15 --- /dev/null +++ b/example/dist/utils/user.d.ts @@ -0,0 +1,8 @@ +export type User = { + userTelegramID: string; + userName: string; + userHandle: string; + patchwallet: string; + dateAdded: string; + photoUrl?: string; +}; diff --git a/example/main.js b/example/main.js index af06d6d..a222831 100644 --- a/example/main.js +++ b/example/main.js @@ -84,6 +84,11 @@ const showConnectedWallet = (address, target) => { Switch chain to ${newChainName} </button> </div> + <div class="mt-4"> + <button id="getUser" class="py-2 px-4 bg-blue-500 text-white rounded-xl disabled:opacity-50"> + Get user data + </button> + </div> <div class="mt-4"> <button id="gws_disconnect" class="py-2 px-4 bg-red-500 text-white rounded-xl disabled:opacity-50"> Disconnect wallet @@ -182,6 +187,7 @@ const listenWalletButtonsClicks = (address, target) => { const signButton = target.querySelector('#personal_sign'); const sendButton = target.querySelector('#eth_sendTransaction'); const switchChainButton = target.querySelector('#wallet_switchEthereumChain'); + const getUserButton = target.querySelector('#getUser'); const disconnectButton = target.querySelector('#gws_disconnect'); if (signButton) { signButton.addEventListener('click', (event) => @@ -198,6 +204,21 @@ const listenWalletButtonsClicks = (address, target) => { onSwitchChainButtonclick(event, switchChainButton) ); } + if (getUserButton) { + getUserButton.addEventListener('click', (event) => { + getUserButton.disabled = true; + WalletSDK.getUser() + .then((user) => { + alert(JSON.stringify(user)); + getUserButton.disabled = false; + }) + .catch((error) => { + console.error('getUser', error); + alert('Error: ' + error.message); + getUserButton.disabled = false; + }); + }); + } if (disconnectButton) { disconnectButton.addEventListener('click', (event) => onDisconnectButtonClick(event, disconnectButton, target) @@ -209,9 +230,10 @@ const onPairing = (data, target) => { if (!target) { return; } - const redirectUrl = data.shortToken - ? `https://walletconnect.grindery.com/connect/wc?uri=${data.shortToken}` - : data.connectUrlBrowser || data.connectUrl || ''; + const redirectUrl = + data.connectUrlBrowser || data.shortToken + ? `https://wallet.grindery.com/connect/wc?uri=${data.shortToken}` + : ''; if (redirectUrl) { target.innerHTML = ` <p class="text-center mb-4">Approve wallet connection in Grindery Bot</p> diff --git a/package.json b/package.json index efbe885..c1524d8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "grindery-wallet-sdk", "author": "Egor Miliukov", - "version": "0.4.2", + "version": "0.5.0", "license": "MIT", "main": "dist/index.js", "typings": "dist/index.d.ts", diff --git a/src/classes/Provider.ts b/src/classes/Provider.ts index 8220d43..c691234 100644 --- a/src/classes/Provider.ts +++ b/src/classes/Provider.ts @@ -254,8 +254,8 @@ export class Provider extends EventEmitter { ProviderMethodNames.eth_accounts, params ? (Array.isArray(params) ? params : [params]) : [] )) as ProviderRequestResults.eth_accounts; - this.emit(ProviderEvents.accountsChanged, result); this.storage.setValue(SdkStorageKeys.address, result[0] || ''); + this.emit(ProviderEvents.accountsChanged, result); return result; } catch (error) { throw newProviderError(error); diff --git a/src/classes/WalletAPI.ts b/src/classes/WalletAPI.ts new file mode 100644 index 0000000..2b84253 --- /dev/null +++ b/src/classes/WalletAPI.ts @@ -0,0 +1,42 @@ +import { SdkStorage, SdkStorageKeys } from './SdkStorage'; + +/** + * @summary The Grindery Wallet API wrapper class + * @since 0.5.0 + */ +export class WalletAPI { + /** + * @summary Sends a request to the Grindery Wallet API + * @public + * @param {string} method JSON-RPC method name + * @param {object} params JSON-RPC method parameters, optional + * @returns {T} The result of the API request + */ + public async sendApiRequest<T>(method: string, params?: object): Promise<T> { + const storage = new SdkStorage(); + const sessionId = storage.getValue(SdkStorageKeys.sessionId); + const address = storage.getValue(SdkStorageKeys.address); + if (!sessionId || !address) { + throw new Error('Not connected to the wallet'); + } + const response = await fetch(`https://wallet-api.grindery.com/v3`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${address}:${sessionId}`, + }, + body: JSON.stringify({ + jsonrpc: '2.0', + id: 1, + method, + params: params || {}, + }), + }); + + if (!response.ok) { + throw new Error(`Failed to call ${method}`); + } + const json = await response.json(); + return json.result as T; + } +} diff --git a/src/classes/WalletSDK.ts b/src/classes/WalletSDK.ts index 8ccfec1..be4672e 100644 --- a/src/classes/WalletSDK.ts +++ b/src/classes/WalletSDK.ts @@ -5,6 +5,8 @@ import { SdkStorage, SdkStorageKeys } from './SdkStorage'; import { CHAINS, hexChainId } from '../utils/chains'; import { getAppId } from '../utils/getAppId'; import { ClientEventName, ClientEventNames } from '../utils/clientEvents'; +import { User } from '../utils/user'; +import { WalletAPI } from './WalletAPI'; export type WalletSDKConfig = { appId?: string; @@ -190,12 +192,38 @@ export class WalletSDK { return this; } + /** + * @summary Gets the Grindery user information + * @public + * @since 0.5.0 + * @returns {Promise<User>} The Grindery user information + */ + public async getUser(): Promise<User> { + if (!this.user) { + const api = new WalletAPI(); + try { + this.user = await api.sendApiRequest<User>('gw_getMe'); + } catch (e) { + throw new Error( + e instanceof Error ? e.message : 'Failed to fetch user information' + ); + } + } + return this.user; + } + /** * @summary SdkStorage class instance * @private */ private storage: SdkStorage = new SdkStorage(); + /** + * @summary The Grindery Wallet user + * @private + */ + private user: User | null = null; + /** * @summary Gets the Grindery Wallet ethereum provider * @returns {Provider} The Grindery Wallet ethereum provider @@ -226,17 +254,21 @@ export class WalletSDK { */ private handlePairing({ shortToken, + connectUrl, connectUrlBrowser, }: RpcRequestResults.requestPairing): void { const WebApp = window.Telegram?.WebApp; - const redirectUrl = `https://walletconnect.grindery.com/connect/wc?uri=${shortToken}`; + const redirectUrl = + connectUrlBrowser || + `https://www.grindery.com/connect/wc?uri=${shortToken}`; if ( WebApp && WebApp.openTelegramLink && WebApp.platform && - WebApp.platform !== 'unknown' + WebApp.platform !== 'unknown' && + connectUrl ) { - WebApp.openTelegramLink(connectUrlBrowser); + WebApp.openTelegramLink(connectUrl); } else { window.open(redirectUrl, '_blank'); } diff --git a/src/utils/user.ts b/src/utils/user.ts new file mode 100644 index 0000000..cb910f1 --- /dev/null +++ b/src/utils/user.ts @@ -0,0 +1,8 @@ +export type User = { + userTelegramID: string; + userName: string; + userHandle: string; + patchwallet: string; + dateAdded: string; + photoUrl?: string; +};