@tonconnect/sdk 0.0.44 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -8
- package/dist/tonconnect-sdk.min.js +1 -1
- package/dist/tonconnect-sdk.min.js.map +1 -1
- package/lib/cjs/errors/address/index.js +5 -0
- package/lib/cjs/errors/address/wrong-address.error.js +11 -0
- package/lib/cjs/errors/binary/base64-encode.error.js +11 -0
- package/lib/cjs/errors/binary/index.js +7 -0
- package/lib/cjs/errors/binary/parse-hex.error.js +11 -0
- package/lib/cjs/errors/index.js +2 -0
- package/lib/cjs/index.js +3 -1
- package/lib/cjs/utils/address.js +87 -0
- package/lib/cjs/wallets-list-manager.js +40 -16
- package/lib/esm/errors/address/index.js +1 -0
- package/lib/esm/errors/address/wrong-address.error.js +7 -0
- package/lib/esm/errors/binary/base64-encode.error.js +7 -0
- package/lib/esm/errors/binary/index.js +2 -0
- package/lib/esm/errors/binary/parse-hex.error.js +7 -0
- package/lib/esm/errors/index.js +2 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/utils/address.js +83 -0
- package/lib/esm/wallets-list-manager.js +40 -16
- package/lib/types/errors/address/index.d.ts +1 -0
- package/lib/types/errors/address/wrong-address.error.d.ts +4 -0
- package/lib/types/errors/binary/base64-encode.error.d.ts +4 -0
- package/lib/types/errors/binary/index.d.ts +2 -0
- package/lib/types/errors/binary/parse-hex.error.d.ts +4 -0
- package/lib/types/errors/index.d.ts +2 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/models/wallet/wallet-info.d.ts +14 -7
- package/lib/types/utils/address.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tonconnect-sdk.min.js","mappings":"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","sources":["webpack://TonConnectSDK/./src/errors/dapp/dapp-metadata.error.ts","webpack://TonConnectSDK/./src/errors/index.ts","webpack://TonConnectSDK/./src/errors/protocol/events/connect/index.ts","webpack://TonConnectSDK/./src/errors/protocol/events/connect/manifest-content-error.error.ts","webpack://TonConnectSDK/./src/errors/protocol/events/connect/manifest-not-found.error.ts","webpack://TonConnectSDK/./src/errors/protocol/events/connect/user-rejects.error.ts","webpack://TonConnectSDK/./src/errors/protocol/events/index.ts","webpack://TonConnectSDK/./src/errors/protocol/index.ts","webpack://TonConnectSDK/./src/errors/protocol/responses/bad-request.error.ts","webpack://TonConnectSDK/./src/errors/protocol/responses/index.ts","webpack://TonConnectSDK/./src/errors/protocol/responses/unknown-app.error.ts","webpack://TonConnectSDK/./src/errors/storage/index.ts","webpack://TonConnectSDK/./src/errors/storage/localstorage-not-found.error.ts","webpack://TonConnectSDK/./src/errors/ton-connect.error.ts","webpack://TonConnectSDK/./src/errors/unknown.error.ts","webpack://TonConnectSDK/./src/errors/wallet/index.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-already-connected.error.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-not-connected.error.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-not-injected.error.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-not-support-feature.error.ts","webpack://TonConnectSDK/./src/errors/wallets-manager/fetch-wallets.error.ts","webpack://TonConnectSDK/./src/errors/wallets-manager/index.ts","webpack://TonConnectSDK/./src/index.ts","webpack://TonConnectSDK/./src/models/index.ts","webpack://TonConnectSDK/./src/models/methods/index.ts","webpack://TonConnectSDK/./src/models/wallet/index.ts","webpack://TonConnectSDK/./src/models/wallet/wallet-connection-source.ts","webpack://TonConnectSDK/./src/models/wallet/wallet-info.ts","webpack://TonConnectSDK/./src/parsers/connect-errors-parser.ts","webpack://TonConnectSDK/./src/parsers/rpc-parser.ts","webpack://TonConnectSDK/./src/parsers/send-transaction-parser.ts","webpack://TonConnectSDK/./src/provider/bridge/bridge-gateway.ts","webpack://TonConnectSDK/./src/provider/bridge/bridge-provider.ts","webpack://TonConnectSDK/./src/provider/injected/injected-provider.ts","webpack://TonConnectSDK/./src/resources/protocol.ts","webpack://TonConnectSDK/./src/storage/bridge-connection-storage.ts","webpack://TonConnectSDK/./src/storage/default-storage.ts","webpack://TonConnectSDK/./src/storage/http-bridge-gateway-storage.ts","webpack://TonConnectSDK/./src/ton-connect.ts","webpack://TonConnectSDK/./src/utils/url.ts","webpack://TonConnectSDK/./src/utils/web-api.ts","webpack://TonConnectSDK/./src/wallets-list-manager.ts","webpack://TonConnectSDK/../../node_modules/tweetnacl-util/nacl-util.js","webpack://TonConnectSDK/../../node_modules/tweetnacl/nacl-fast.js","webpack://TonConnectSDK/../protocol/lib/cjs/crypto/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/crypto/session-crypto.js","webpack://TonConnectSDK/../protocol/lib/cjs/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/CHAIN.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/app-message/connect-request/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/app-message/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/app-message/request/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/wallet-message/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/wallet-message/wallet-event/connect-event.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/wallet-message/wallet-event/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/wallet-message/wallet-response/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/wallet-message/wallet-response/send-transaction-rpc-response.js","webpack://TonConnectSDK/../protocol/lib/cjs/utils/base64.js","webpack://TonConnectSDK/../protocol/lib/cjs/utils/binary.js","webpack://TonConnectSDK/../protocol/lib/cjs/utils/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/utils/web-api.js","webpack://TonConnectSDK/webpack/bootstrap","webpack://TonConnectSDK/webpack/startup"],"sourcesContent":["import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when passed DappMetadata is in incorrect format.\n */\nexport class DappMetadataError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, DappMetadataError.prototype);\n }\n}\n","export * from './protocol';\nexport * from './wallet';\nexport * from './storage';\nexport * from './wallets-manager';\nexport { TonConnectError } from './ton-connect.error';\nexport { UnknownError } from './unknown.error';\n","export { UserRejectsError } from 'src/errors/protocol/events/connect/user-rejects.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when passed manifest contains errors.\n */\nexport class ManifestContentErrorError extends TonConnectError {\n private static additionalMessage =\n '\\nPassed `tonconnect-manifest.json` contains errors. Check format of your manifest. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest';\n\n constructor(message?: string) {\n super(message || '' + ManifestContentErrorError.additionalMessage);\n\n Object.setPrototypeOf(this, ManifestContentErrorError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when wallet can't get manifest by passed manifestUrl.\n */\nexport class ManifestNotFoundError extends TonConnectError {\n private static additionalMessage =\n '\\nManifest not found. Make sure you added `tonconnect-manifest.json` to the root of your app or passed correct manifestUrl. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest';\n\n constructor(message?: string) {\n super(message || '' + ManifestNotFoundError.additionalMessage);\n\n Object.setPrototypeOf(this, ManifestNotFoundError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when user rejects the action in the wallet.\n */\nexport class UserRejectsError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, UserRejectsError.prototype);\n }\n}\n","export * from './connect';\n","export * from './events';\nexport * from './responses';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when request to the wallet contains errors.\n */\nexport class BadRequestError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, BadRequestError.prototype);\n }\n}\n","export { BadRequestError } from './bad-request.error';\nexport { UnknownAppError } from './unknown-app.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when app tries to send rpc request to the injected wallet while not connected.\n */\nexport class UnknownAppError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, UnknownAppError.prototype);\n }\n}\n","export { LocalstorageNotFoundError } from './localstorage-not-found.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when `Storage` was not specified in the `DappMetadata` and default `localStorage` was not detected in the environment.\n */\nexport class LocalstorageNotFoundError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, LocalstorageNotFoundError.prototype);\n }\n}\n","/**\n * Base class for TonConnect errors. You can check if the error was triggered by the @tonconnect/sdk using `err instanceof TonConnectError`.\n */\nexport class TonConnectError extends Error {\n private static prefix = '[TON_CONNECT_SDK_ERROR]';\n\n constructor(message?: string, options?: ErrorOptions) {\n if (message) {\n message = TonConnectError.prefix + ' ' + message;\n }\n super(message, options);\n\n Object.setPrototypeOf(this, TonConnectError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Unhanded unknown error.\n */\nexport class UnknownError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, UnknownError.prototype);\n }\n}\n","export { WalletAlreadyConnectedError } from './wallet-already-connected.error';\nexport { WalletNotConnectedError } from './wallet-not-connected.error';\nexport { WalletNotInjectedError } from './wallet-not-injected.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when wallet connection called but wallet already connected. To avoid the error, disconnect the wallet before doing a new connection.\n */\nexport class WalletAlreadyConnectedError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletAlreadyConnectedError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when send transaction or other protocol methods called while wallet is not connected.\n */\nexport class WalletNotConnectedError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletNotConnectedError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when there is an attempt to connect to the injected wallet while it is not exists in the webpage.\n */\nexport class WalletNotInjectedError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletNotInjectedError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when wallet doesn't support requested feature method.\n */\nexport class WalletNotSupportFeatureError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletNotSupportFeatureError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when an error occurred while fetching the wallets list.\n */\nexport class FetchWalletsError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, FetchWalletsError.prototype);\n }\n}\n","export { FetchWalletsError } from './fetch-wallets.error';\n","export * from './ton-connect';\nexport * from './models';\nexport * from './errors';\nexport { IStorage } from './storage/models/storage.interface';\nexport { TonConnect as default } from './ton-connect';\nexport { ITonConnect } from './ton-connect.interface';\nexport { CHAIN, DeviceInfo } from '@tonconnect/protocol';\n","export * from './wallet';\nexport * from './methods';\nexport { DappMetadata } from './dapp/dapp-metadata';\nexport { TonConnectOptions } from './ton-connect-options';\n","export * from './connect';\nexport * from './send-transaction';\n","export type { Account } from './account';\nexport type { Wallet } from './wallet';\nexport type {\n WalletConnectionSource,\n WalletConnectionSourceHTTP,\n WalletConnectionSourceJS\n} from './wallet-connection-source';\nexport {\n WalletInfo,\n WalletInfoInjected,\n WalletInfoRemote,\n isWalletInfoInjected\n} from './wallet-info';\n","export type WalletConnectionSource = WalletConnectionSourceHTTP | WalletConnectionSourceJS;\n\nexport interface WalletConnectionSourceHTTP {\n /**\n * Base part of the wallet universal url. The link should support [Ton Connect parameters]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#universal-link}.\n */\n universalLink: string;\n\n /**\n * Url of the wallet's implementation of the [HTTP bridge]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#http-bridge}.\n */\n bridgeUrl: string;\n}\n\nexport interface WalletConnectionSourceJS {\n /**\n * If the wallet handles JS Bridge connection, specifies the binding for the bridge object accessible through window. Example: the key \"tonkeeper\" means the bridge can be accessed as window.tonkeeper.\n */\n jsBridgeKey: string;\n}\n\nexport function isWalletConnectionSourceJS(\n value: WalletConnectionSource\n): value is WalletConnectionSourceJS {\n return 'jsBridgeKey' in value;\n}\n","export interface WalletInfoBase {\n /**\n * Name of the wallet.\n */\n name: string;\n\n /**\n * Url to the icon of the wallet. Resolution 288×288px. On non-transparent background, without rounded corners. PNG format.\n */\n imageUrl: string;\n\n /**\n * Will be used in the protocol later.\n */\n tondns?: string;\n\n /**\n * Info or landing page of your wallet. May be useful for TON newcomers.\n */\n aboutUrl: string;\n}\n\nexport interface WalletInfoRemote extends WalletInfoBase {\n /**\n * Base part of the wallet universal url. The link should support [Ton Connect parameters]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#universal-link}.\n */\n universalLink: string;\n\n /**\n * Url of the wallet's implementation of the [HTTP bridge]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#http-bridge}.\n */\n bridgeUrl: string;\n}\n\nexport interface WalletInfoInjected extends WalletInfoBase {\n /**\n * If the wallet handles JS Bridge connection, specifies the binding for the bridge object accessible through window. Example: the key \"tonkeeper\" means the bridge can be accessed as window.tonkeeper.\n */\n jsBridgeKey: string;\n\n /**\n * Indicates if the wallet currently is injected to the webpage.\n */\n injected: boolean;\n\n /**\n * Indicates if the dapp is opened inside this wallet's browser.\n */\n embedded: boolean;\n}\n\nexport type WalletInfo =\n | WalletInfoRemote\n | WalletInfoInjected\n | (WalletInfoRemote & WalletInfoInjected);\n\nexport interface WalletInfoDTOBase {\n name: string;\n image: string;\n tondns?: string;\n about_url: string;\n}\n\nexport interface WalletInfoRemoteDTO extends WalletInfoDTOBase {\n universal_url: string;\n bridge_url: string;\n}\n\nexport interface WalletInfoInjectedDTO extends WalletInfoDTOBase {\n js_bridge_key: string;\n}\n\nexport type WalletInfoDTO =\n | WalletInfoRemoteDTO\n | WalletInfoInjectedDTO\n | (WalletInfoRemoteDTO & WalletInfoInjectedDTO);\n\nexport function isWalletInfoInjected(value: WalletInfo): value is WalletInfoInjected {\n return 'jsBridgeKey' in value;\n}\n","import { BadRequestError, UnknownAppError, UserRejectsError } from 'src/errors';\nimport { ManifestContentErrorError } from 'src/errors/protocol/events/connect/manifest-content-error.error';\nimport { ManifestNotFoundError } from 'src/errors/protocol/events/connect/manifest-not-found.error';\nimport { TonConnectError } from 'src/errors/ton-connect.error';\nimport { UnknownError } from 'src/errors/unknown.error';\nimport { CONNECT_EVENT_ERROR_CODES, ConnectEventError } from '@tonconnect/protocol';\n\nconst connectEventErrorsCodes: Partial<Record<CONNECT_EVENT_ERROR_CODES, typeof TonConnectError>> =\n {\n [CONNECT_EVENT_ERROR_CODES.UNKNOWN_ERROR]: UnknownError,\n [CONNECT_EVENT_ERROR_CODES.USER_REJECTS_ERROR]: UserRejectsError,\n [CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR]: BadRequestError,\n [CONNECT_EVENT_ERROR_CODES.UNKNOWN_APP_ERROR]: UnknownAppError,\n [CONNECT_EVENT_ERROR_CODES.MANIFEST_NOT_FOUND_ERROR]: ManifestNotFoundError,\n [CONNECT_EVENT_ERROR_CODES.MANIFEST_CONTENT_ERROR]: ManifestContentErrorError\n };\n\nclass ConnectErrorsParser {\n parseError(error: ConnectEventError['payload']): TonConnectError {\n let ErrorConstructor: typeof TonConnectError = UnknownError;\n\n if (error.code in connectEventErrorsCodes) {\n ErrorConstructor = connectEventErrorsCodes[error.code] || UnknownError;\n }\n\n return new ErrorConstructor(error.message);\n }\n}\n\nexport const connectErrorsParser = new ConnectErrorsParser();\n","import {\n AppRequest,\n RpcMethod,\n WalletResponse,\n WalletResponseError,\n WalletResponseSuccess\n} from '@tonconnect/protocol';\nimport { WithoutId } from 'src/utils/types';\n\nexport abstract class RpcParser<T extends RpcMethod> {\n abstract convertToRpcRequest(...args: unknown[]): WithoutId<AppRequest<T>>;\n\n abstract convertFromRpcResponse(rpcResponse: WithoutId<WalletResponseSuccess<T>>): unknown;\n\n abstract parseAndThrowError(response: WithoutId<WalletResponseError<T>>): never;\n\n public isError(\n response: WithoutId<WalletResponse<T>>\n ): response is WithoutId<WalletResponseError<T>> {\n return 'error' in response;\n }\n}\n","import {\n CONNECT_EVENT_ERROR_CODES,\n SEND_TRANSACTION_ERROR_CODES,\n SendTransactionRpcRequest,\n SendTransactionRpcResponseError,\n SendTransactionRpcResponseSuccess\n} from '@tonconnect/protocol';\nimport { BadRequestError, TonConnectError, UnknownAppError, UserRejectsError } from 'src/errors';\nimport { UnknownError } from 'src/errors/unknown.error';\nimport { SendTransactionRequest, SendTransactionResponse } from 'src/models/methods';\nimport { RpcParser } from 'src/parsers/rpc-parser';\nimport { WithoutId } from 'src/utils/types';\n\nconst sendTransactionErrors: Partial<Record<CONNECT_EVENT_ERROR_CODES, typeof TonConnectError>> = {\n [SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR]: UnknownError,\n [SEND_TRANSACTION_ERROR_CODES.USER_REJECTS_ERROR]: UserRejectsError,\n [SEND_TRANSACTION_ERROR_CODES.BAD_REQUEST_ERROR]: BadRequestError,\n [SEND_TRANSACTION_ERROR_CODES.UNKNOWN_APP_ERROR]: UnknownAppError\n};\n\nclass SendTransactionParser extends RpcParser<'sendTransaction'> {\n convertToRpcRequest(\n request: Omit<SendTransactionRequest, 'validUntil'> & { valid_until: number }\n ): WithoutId<SendTransactionRpcRequest> {\n return {\n method: 'sendTransaction',\n params: [JSON.stringify(request)]\n };\n }\n\n parseAndThrowError(response: WithoutId<SendTransactionRpcResponseError>): never {\n let ErrorConstructor: typeof TonConnectError = UnknownError;\n\n if (response.error.code in sendTransactionErrors) {\n ErrorConstructor = sendTransactionErrors[response.error.code] || UnknownError;\n }\n\n throw new ErrorConstructor(response.error.message);\n }\n\n convertFromRpcResponse(\n rpcResponse: WithoutId<SendTransactionRpcResponseSuccess>\n ): SendTransactionResponse {\n return {\n boc: rpcResponse.result\n };\n }\n}\n\nexport const sendTransactionParser = new SendTransactionParser();\n","import { Base64, isNode } from '@tonconnect/protocol';\nimport { TonConnectError } from 'src/errors';\nimport { BridgeIncomingMessage } from 'src/provider/bridge/models/bridge-incomming-message';\nimport { HttpBridgeGatewayStorage } from 'src/storage/http-bridge-gateway-storage';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { addPathToUrl } from 'src/utils/url';\n\nif (isNode()) {\n try {\n eval(\"global.EventSource = require('eventsource')\");\n eval(\"global.fetch = require('node-fetch')\");\n } catch (err) {\n console.error(err);\n }\n}\n\nexport class BridgeGateway {\n private readonly ssePath = 'events';\n\n private readonly postPath = 'message';\n\n private readonly heartbeatMessage = 'heartbeat';\n\n private readonly defaultTtl = 300;\n\n private eventSource: EventSource | undefined;\n\n private isClosed = false;\n\n private readonly bridgeGatewayStorage: HttpBridgeGatewayStorage;\n\n constructor(\n storage: IStorage,\n private readonly bridgeUrl: string,\n public readonly sessionId: string,\n private readonly listener: (msg: BridgeIncomingMessage) => void,\n private readonly errorsListener: (err: Event) => void\n ) {\n this.bridgeGatewayStorage = new HttpBridgeGatewayStorage(storage);\n }\n\n public async registerSession(): Promise<void> {\n const url = new URL(addPathToUrl(this.bridgeUrl, this.ssePath));\n url.searchParams.append('client_id', this.sessionId);\n\n const lastEventId = await this.bridgeGatewayStorage.getLastEventId();\n if (lastEventId) {\n url.searchParams.append('last_event_id', lastEventId);\n }\n\n this.eventSource = new EventSource(url.toString());\n\n return new Promise((resolve, reject) => {\n this.eventSource!.onerror = reject;\n this.eventSource!.onopen! = (): void => {\n this.eventSource!.onerror = this.errorsHandler.bind(this);\n this.eventSource!.onmessage = this.messagesHandler.bind(this);\n resolve();\n };\n });\n }\n\n public async send(message: Uint8Array, receiver: string, ttl?: number): Promise<void> {\n const url = new URL(addPathToUrl(this.bridgeUrl, this.postPath));\n url.searchParams.append('client_id', this.sessionId);\n url.searchParams.append('to', receiver);\n url.searchParams.append('ttl', (ttl || this.defaultTtl).toString());\n await fetch(url, {\n method: 'post',\n body: Base64.encode(message)\n });\n }\n\n public close(): void {\n this.isClosed = true;\n this.eventSource?.close();\n }\n\n private errorsHandler(e: Event): void {\n if (!this.isClosed) {\n if (this.eventSource?.readyState === EventSource.CLOSED) {\n this.eventSource.close();\n this.registerSession();\n return;\n }\n\n if (this.eventSource?.readyState === EventSource.CONNECTING) {\n console.debug('[TON_CONNET_SDK_ERROR]: Bridge error', JSON.stringify(e));\n return;\n }\n\n this.errorsListener(e);\n }\n }\n\n private async messagesHandler(e: MessageEvent<string>): Promise<void> {\n if (e.data === this.heartbeatMessage) {\n return;\n }\n\n await this.bridgeGatewayStorage.storeLastEventId(e.lastEventId);\n\n if (!this.isClosed) {\n let bridgeIncomingMessage: BridgeIncomingMessage;\n\n try {\n bridgeIncomingMessage = JSON.parse(e.data);\n } catch (e) {\n throw new TonConnectError(`Bridge message parse failed, message ${e.data}`);\n }\n\n this.listener(bridgeIncomingMessage);\n }\n }\n}\n","import {\n Base64,\n SessionCrypto,\n AppRequest,\n ConnectRequest,\n RpcMethod,\n WalletEvent,\n WalletResponse,\n WalletMessage,\n hexToByteArray,\n ConnectEventSuccess,\n TonAddressItemReply\n} from '@tonconnect/protocol';\nimport { TonConnectError } from 'src/errors/ton-connect.error';\nimport { WalletConnectionSourceHTTP } from 'src/models/wallet/wallet-connection-source';\nimport { BridgeGateway } from 'src/provider/bridge/bridge-gateway';\nimport { BridgeConnectionHttp } from 'src/provider/bridge/models/bridge-connection';\nimport { BridgeIncomingMessage } from 'src/provider/bridge/models/bridge-incomming-message';\nimport { BridgePartialSession, BridgeSession } from 'src/provider/bridge/models/bridge-session';\nimport { HTTPProvider } from 'src/provider/provider';\nimport { BridgeConnectionStorage } from 'src/storage/bridge-connection-storage';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { WithoutId } from 'src/utils/types';\nimport { PROTOCOL_VERSION } from 'src/resources/protocol';\n\nexport class BridgeProvider implements HTTPProvider {\n public static async fromStorage(storage: IStorage): Promise<BridgeProvider> {\n const bridgeConnectionStorage = new BridgeConnectionStorage(storage);\n const connection = await bridgeConnectionStorage.getHttpConnection();\n return new BridgeProvider(storage, connection.session.walletConnectionSource);\n }\n\n public readonly type = 'http';\n\n private readonly connectionStorage: BridgeConnectionStorage;\n\n private readonly pendingRequests = new Map<\n string,\n (response: WithoutId<WalletResponse<RpcMethod>>) => void\n >();\n\n private nextRequestId = 0;\n\n private session: BridgeSession | BridgePartialSession | null = null;\n\n private bridge: BridgeGateway | null = null;\n\n private listeners: Array<(e: WalletEvent) => void> = [];\n\n constructor(\n private readonly storage: IStorage,\n private readonly walletConnectionSource: WalletConnectionSourceHTTP\n ) {\n this.connectionStorage = new BridgeConnectionStorage(storage);\n }\n\n public connect(message: ConnectRequest): string {\n this.bridge?.close();\n const sessionCrypto = new SessionCrypto();\n\n this.session = {\n sessionCrypto,\n walletConnectionSource: this.walletConnectionSource\n };\n\n this.bridge = new BridgeGateway(\n this.storage,\n this.walletConnectionSource.bridgeUrl,\n sessionCrypto.sessionId,\n this.gatewayListener.bind(this),\n this.gatewayErrorsListener.bind(this)\n );\n this.bridge.registerSession();\n\n return this.generateUniversalLink(message);\n }\n\n public async restoreConnection(): Promise<void> {\n this.bridge?.close();\n const storedConnection = await this.connectionStorage.getHttpConnection();\n if (!storedConnection) {\n return;\n }\n\n this.session = storedConnection.session;\n\n this.bridge = new BridgeGateway(\n this.storage,\n this.walletConnectionSource.bridgeUrl,\n storedConnection.session.sessionCrypto.sessionId,\n this.gatewayListener.bind(this),\n this.gatewayErrorsListener.bind(this)\n );\n\n await this.bridge.registerSession();\n\n this.listeners.forEach(listener => listener(storedConnection.connectEvent));\n }\n\n public sendRequest<T extends RpcMethod>(\n request: WithoutId<AppRequest<T>>\n ): Promise<WithoutId<WalletResponse<T>>> {\n return new Promise((resolve, reject) => {\n const id = this.nextRequestId;\n this.nextRequestId++;\n if (!this.bridge || !this.session || !('walletPublicKey' in this.session)) {\n throw new TonConnectError('Trying to send bridge request without session');\n }\n\n const encodedRequest = this.session!.sessionCrypto.encrypt(\n JSON.stringify({ ...request, id }),\n hexToByteArray(this.session.walletPublicKey)\n );\n\n this.bridge.send(encodedRequest, this.session.walletPublicKey).catch(reject);\n this.pendingRequests.set(id.toString(), resolve);\n });\n }\n\n public closeConnection(): void {\n this.bridge?.close();\n this.listeners = [];\n }\n\n public disconnect(): Promise<void> {\n this.bridge?.close();\n this.listeners = [];\n return this.removeBridgeAndSession();\n }\n\n public listen(callback: (e: WalletEvent) => void): () => void {\n this.listeners.push(callback);\n return () => (this.listeners = this.listeners.filter(listener => listener !== callback));\n }\n\n private async gatewayListener(bridgeIncomingMessage: BridgeIncomingMessage): Promise<void> {\n const walletMessage: WalletMessage = JSON.parse(\n this.session!.sessionCrypto.decrypt(\n Base64.decode(bridgeIncomingMessage.message).toUint8Array(),\n hexToByteArray(bridgeIncomingMessage.from)\n )\n );\n\n if (!('event' in walletMessage)) {\n const id = walletMessage.id.toString();\n const resolve = this.pendingRequests.get(id);\n if (!resolve) {\n throw new TonConnectError(`Response id ${id} doesn't match any request's id`);\n }\n\n resolve(walletMessage);\n this.pendingRequests.delete(id);\n return;\n }\n\n if (walletMessage.event === 'connect') {\n await this.updateSession(walletMessage, bridgeIncomingMessage.from);\n }\n\n if (walletMessage.event === 'disconnect') {\n await this.removeBridgeAndSession();\n }\n\n this.listeners.forEach(listener => listener(walletMessage));\n }\n\n private async gatewayErrorsListener(e: Event): Promise<void> {\n throw new TonConnectError(`Bridge error ${JSON.stringify(e)}`);\n }\n\n private async updateSession(\n connectEvent: ConnectEventSuccess,\n walletPublicKey: string\n ): Promise<void> {\n this.session = {\n ...this.session!,\n walletPublicKey\n };\n\n const tonAddrItem: TonAddressItemReply = connectEvent.payload.items.find(\n item => item.name === 'ton_addr'\n ) as TonAddressItemReply;\n\n const connectEventToSave: BridgeConnectionHttp['connectEvent'] = {\n ...connectEvent,\n payload: {\n ...connectEvent.payload,\n items: [tonAddrItem]\n }\n };\n\n await this.connectionStorage.storeConnection({\n type: 'http',\n session: this.session,\n connectEvent: connectEventToSave\n });\n }\n\n private async removeBridgeAndSession(): Promise<void> {\n this.session = null;\n this.bridge = null;\n await this.connectionStorage.removeConnection();\n }\n\n private generateUniversalLink(message: ConnectRequest): string {\n const url = new URL(this.walletConnectionSource.universalLink);\n url.searchParams.append('v', PROTOCOL_VERSION.toString());\n url.searchParams.append('id', this.session!.sessionCrypto.sessionId);\n url.searchParams.append('r', JSON.stringify(message));\n return url.toString();\n }\n}\n","import { WalletNotInjectedError } from 'src/errors/wallet/wallet-not-injected.error';\nimport {\n AppRequest,\n RpcMethod,\n WalletResponse,\n ConnectRequest,\n WalletEvent,\n ConnectEvent\n} from '@tonconnect/protocol';\nimport { InjectedWalletApi } from 'src/provider/injected/models/injected-wallet-api';\nimport { InternalProvider } from 'src/provider/provider';\nimport { BridgeConnectionStorage } from 'src/storage/bridge-connection-storage';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { WithoutId } from 'src/utils/types';\nimport { getWindow } from 'src/utils/web-api';\nimport { PROTOCOL_VERSION } from 'src/resources/protocol';\n\ntype WindowWithTon<T extends string> = {\n [key in T]: {\n tonconnect: InjectedWalletApi;\n };\n} & Window;\n\nexport class InjectedProvider<T extends string = string> implements InternalProvider {\n private static window = getWindow();\n\n public static async fromStorage(storage: IStorage): Promise<InjectedProvider> {\n const bridgeConnectionStorage = new BridgeConnectionStorage(storage);\n const connection = await bridgeConnectionStorage.getInjectedConnection();\n return new InjectedProvider(connection.jsBridgeKey);\n }\n\n public static isWalletInjected(injectedWalletKey: string): boolean {\n return InjectedProvider.isWindowContainsWallet(this.window, injectedWalletKey);\n }\n\n public static isInsideWalletBrowser(injectedWalletKey: string): boolean {\n if (InjectedProvider.isWindowContainsWallet(this.window, injectedWalletKey)) {\n return this.window[injectedWalletKey]!.tonconnect.isWalletBrowser;\n }\n\n return false;\n }\n\n private static isWindowContainsWallet<T extends string>(\n window: Window | undefined,\n injectedWalletKey: string\n ): window is WindowWithTon<T> {\n return (\n !!window &&\n injectedWalletKey in window &&\n typeof window[injectedWalletKey as keyof Window] === 'object' &&\n 'tonconnect' in window[injectedWalletKey as keyof Window]\n );\n }\n\n public readonly type = 'injected';\n\n private unsubscribeCallback: (() => void) | null = null;\n\n private injectedWallet: InjectedWalletApi;\n\n private listenSubscriptions = false;\n\n private listeners: Array<(e: WalletEvent) => void> = [];\n\n constructor(injectedWalletKey: T) {\n const window: Window | undefined | WindowWithTon<T> = InjectedProvider.window;\n if (!InjectedProvider.isWindowContainsWallet(window, injectedWalletKey)) {\n throw new WalletNotInjectedError();\n }\n\n this.injectedWallet = window[injectedWalletKey]!.tonconnect!;\n }\n\n public connect(message: ConnectRequest, auto = false): void {\n this.injectedWallet\n .connect(PROTOCOL_VERSION, message, auto)\n .then(connectEvent => {\n if (connectEvent.event === 'connect') {\n this.makeSubscriptions();\n this.listenSubscriptions = true;\n }\n this.listeners.forEach(listener => listener(connectEvent));\n })\n .catch(e => {\n const connectEventError: ConnectEvent = {\n event: 'connect_error',\n payload: {\n code: 0,\n message: e?.toString()\n }\n };\n\n this.listeners.forEach(listener => listener(connectEventError));\n });\n }\n\n public async restoreConnection(): Promise<void> {\n try {\n const connectEvent = await this.injectedWallet.restoreConnection();\n if (connectEvent.event === 'connect') {\n this.makeSubscriptions();\n this.listenSubscriptions = true;\n this.listeners.forEach(listener => listener(connectEvent));\n }\n } catch (e) {\n console.error(e);\n }\n }\n\n public closeConnection(): void {\n if (this.listenSubscriptions) {\n this.injectedWallet.disconnect();\n }\n this.closeAllListeners();\n }\n\n public disconnect(): Promise<void> {\n this.closeAllListeners();\n this.injectedWallet.disconnect();\n return Promise.resolve();\n }\n\n private closeAllListeners(): void {\n this.listenSubscriptions = false;\n this.listeners = [];\n this.unsubscribeCallback?.();\n }\n\n public listen(eventsCallback: (e: WalletEvent) => void): () => void {\n this.listeners.push(eventsCallback);\n return () =>\n (this.listeners = this.listeners.filter(listener => listener !== eventsCallback));\n }\n\n public async sendRequest<T extends RpcMethod>(\n request: WithoutId<AppRequest<T>>\n ): Promise<WithoutId<WalletResponse<T>>> {\n return this.injectedWallet.send<T>({ ...request, id: '0' });\n }\n\n private makeSubscriptions(): void {\n this.unsubscribeCallback = this.injectedWallet.listen(e => {\n if (this.listenSubscriptions) {\n this.listeners.forEach(listener => listener(e));\n }\n\n if (e.event === 'disconnect') {\n this.disconnect();\n }\n });\n }\n}\n","export const PROTOCOL_VERSION = 2;\n","import { SessionCrypto } from '@tonconnect/protocol';\nimport { TonConnectError } from 'src/errors';\nimport { BridgeSessionRaw } from 'src/provider/bridge/models/bridge-session-raw';\nimport {\n BridgeConnection,\n BridgeConnectionHttp,\n BridgeConnectionHttpRaw,\n BridgeConnectionInjected,\n BridgeConnectionRaw\n} from 'src/provider/bridge/models/bridge-connection';\nimport { IStorage } from 'src/storage/models/storage.interface';\n\nexport class BridgeConnectionStorage {\n private readonly storeKey = 'ton-connect-storage_bridge-connection';\n\n constructor(private readonly storage: IStorage) {}\n\n public async storeConnection(connection: BridgeConnection): Promise<void> {\n if (connection.type === 'injected') {\n return this.storage.setItem(this.storeKey, JSON.stringify(connection));\n }\n\n const rawSession: BridgeSessionRaw = {\n sessionKeyPair: connection.session.sessionCrypto.stringifyKeypair(),\n walletPublicKey: connection.session.walletPublicKey,\n walletConnectionSource: connection.session.walletConnectionSource\n };\n\n const rawConnection: BridgeConnectionHttpRaw = {\n type: 'http',\n connectEvent: connection.connectEvent,\n session: rawSession\n };\n return this.storage.setItem(this.storeKey, JSON.stringify(rawConnection));\n }\n\n public async removeConnection(): Promise<void> {\n return this.storage.removeItem(this.storeKey);\n }\n\n public async getConnection(): Promise<BridgeConnection | null> {\n const stored = await this.storage.getItem(this.storeKey);\n if (!stored) {\n return null;\n }\n\n const connection: BridgeConnectionRaw = JSON.parse(stored);\n\n if (connection.type === 'injected') {\n return connection;\n }\n\n const sessionCrypto = new SessionCrypto(connection.session.sessionKeyPair);\n return {\n type: 'http',\n connectEvent: connection.connectEvent,\n session: {\n sessionCrypto,\n walletConnectionSource: connection.session.walletConnectionSource,\n walletPublicKey: connection.session.walletPublicKey\n }\n };\n }\n\n public async getHttpConnection(): Promise<BridgeConnectionHttp> {\n const connection = await this.getConnection();\n if (!connection) {\n throw new TonConnectError(\n 'Trying to read HTTP connection source while nothing is stored'\n );\n }\n\n if (connection.type === 'injected') {\n throw new TonConnectError(\n 'Trying to read HTTP connection source while injected connection is stored'\n );\n }\n\n return connection;\n }\n\n public async getInjectedConnection(): Promise<BridgeConnectionInjected> {\n const connection = await this.getConnection();\n\n if (!connection) {\n throw new TonConnectError(\n 'Trying to read Injected bridge connection source while nothing is stored'\n );\n }\n\n if (connection?.type === 'http') {\n throw new TonConnectError(\n 'Trying to read Injected bridge connection source while HTTP connection is stored'\n );\n }\n\n return connection;\n }\n\n public async storedConnectionType(): Promise<BridgeConnection['type'] | null> {\n const stored = await this.storage.getItem(this.storeKey);\n if (!stored) {\n return null;\n }\n const connection: BridgeConnection = JSON.parse(stored);\n return connection.type;\n }\n}\n","import { LocalstorageNotFoundError } from 'src/errors/storage/localstorage-not-found.error';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { getWindow } from 'src/utils/web-api';\n\nexport class DefaultStorage implements IStorage {\n private readonly window: Window;\n\n constructor() {\n const window = getWindow();\n\n if (!window?.localStorage) {\n throw new LocalstorageNotFoundError();\n }\n\n this.window = window;\n }\n\n public async getItem(key: string): Promise<string | null> {\n return Promise.resolve(this.window.localStorage.getItem(key));\n }\n\n public async removeItem(key: string): Promise<void> {\n this.window.localStorage.removeItem(key);\n return Promise.resolve();\n }\n\n setItem(key: string, value: string): Promise<void> {\n this.window.localStorage.setItem(key, value);\n return Promise.resolve();\n }\n}\n","import { IStorage } from 'src/storage/models/storage.interface';\n\nexport class HttpBridgeGatewayStorage {\n private readonly storeKey = 'ton-connect-storage_http-bridge-gateway';\n\n constructor(private readonly storage: IStorage) {}\n\n public async storeLastEventId(lastEventId: string): Promise<void> {\n return this.storage.setItem(this.storeKey, lastEventId);\n }\n\n public async removeLastEventId(): Promise<void> {\n return this.storage.removeItem(this.storeKey);\n }\n\n public async getLastEventId(): Promise<string | null> {\n const stored = await this.storage.getItem(this.storeKey);\n if (!stored) {\n return null;\n }\n\n return stored;\n }\n}\n","import {\n ConnectEventError,\n ConnectEventSuccess,\n ConnectRequest,\n SendTransactionRpcResponseSuccess,\n TonAddressItemReply,\n WalletEvent,\n TonProofItemReply,\n ConnectItem,\n Feature\n} from '@tonconnect/protocol';\nimport { DappMetadataError } from 'src/errors/dapp/dapp-metadata.error';\nimport { ManifestContentErrorError } from 'src/errors/protocol/events/connect/manifest-content-error.error';\nimport { ManifestNotFoundError } from 'src/errors/protocol/events/connect/manifest-not-found.error';\nimport { TonConnectError } from 'src/errors/ton-connect.error';\nimport { WalletAlreadyConnectedError } from 'src/errors/wallet/wallet-already-connected.error';\nimport { WalletNotConnectedError } from 'src/errors/wallet/wallet-not-connected.error';\nimport { WalletNotSupportFeatureError } from 'src/errors/wallet/wallet-not-support-feature.error';\nimport { Account, Wallet, WalletConnectionSource, WalletInfo } from 'src/models';\nimport { SendTransactionRequest, SendTransactionResponse } from 'src/models/methods';\nimport { ConnectAdditionalRequest } from 'src/models/methods/connect/connect-additional-request';\nimport { TonConnectOptions } from 'src/models/ton-connect-options';\nimport {\n isWalletConnectionSourceJS,\n WalletConnectionSourceJS\n} from 'src/models/wallet/wallet-connection-source';\nimport { connectErrorsParser } from 'src/parsers/connect-errors-parser';\nimport { sendTransactionParser } from 'src/parsers/send-transaction-parser';\nimport { BridgeProvider } from 'src/provider/bridge/bridge-provider';\nimport { InjectedProvider } from 'src/provider/injected/injected-provider';\nimport { Provider } from 'src/provider/provider';\nimport { BridgeConnectionStorage } from 'src/storage/bridge-connection-storage';\nimport { DefaultStorage } from 'src/storage/default-storage';\nimport { ITonConnect } from 'src/ton-connect.interface';\nimport { getWebPageManifest } from 'src/utils/web-api';\nimport { WalletsListManager } from 'src/wallets-list-manager';\n\nexport class TonConnect implements ITonConnect {\n private readonly walletsList = new WalletsListManager();\n\n private readonly dappSettings: Required<TonConnectOptions>;\n\n private readonly bridgeConnectionStorage: BridgeConnectionStorage;\n\n private _wallet: Wallet | null = null;\n\n private provider: Provider | null = null;\n\n private statusChangeSubscriptions: ((walletInfo: Wallet | null) => void)[] = [];\n\n private statusChangeErrorSubscriptions: ((err: TonConnectError) => void)[] = [];\n\n /**\n * Shows if the wallet is connected right now.\n */\n public get connected(): boolean {\n return this._wallet !== null;\n }\n\n /**\n * Current connected account or null if no account is connected.\n */\n public get account(): Account | null {\n return this._wallet?.account || null;\n }\n\n /**\n * Current connected wallet or null if no account is connected.\n */\n public get wallet(): Wallet | null {\n return this._wallet;\n }\n\n private set wallet(value: Wallet | null) {\n this._wallet = value;\n this.statusChangeSubscriptions.forEach(callback => callback(this._wallet));\n }\n\n constructor(options?: TonConnectOptions) {\n this.dappSettings = {\n manifestUrl: options?.manifestUrl || getWebPageManifest(),\n storage: options?.storage || new DefaultStorage()\n };\n\n if (!this.dappSettings.manifestUrl) {\n throw new DappMetadataError(\n 'Dapp tonconnect-manifest.json must be specified if window.location.origin is undefined. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest'\n );\n }\n\n this.bridgeConnectionStorage = new BridgeConnectionStorage(this.dappSettings.storage);\n }\n\n /**\n * Returns available wallets list.\n */\n public getWallets(): Promise<WalletInfo[]> {\n return this.walletsList.getWallets();\n }\n\n /**\n * Allows to subscribe to connection status changes and handle connection errors.\n * @param callback will be called after connections status changes with actual wallet or null.\n * @param errorsHandler (optional) will be called with some instance of TonConnectError when connect error is received.\n * @returns unsubscribe callback.\n */\n public onStatusChange(\n callback: (wallet: Wallet | null) => void,\n errorsHandler?: (err: TonConnectError) => void\n ): () => void {\n this.statusChangeSubscriptions.push(callback);\n if (errorsHandler) {\n this.statusChangeErrorSubscriptions.push(errorsHandler);\n }\n\n return () => {\n this.statusChangeSubscriptions = this.statusChangeSubscriptions.filter(\n item => item !== callback\n );\n if (errorsHandler) {\n this.statusChangeErrorSubscriptions = this.statusChangeErrorSubscriptions.filter(\n item => item !== errorsHandler\n );\n }\n };\n }\n\n /**\n * Generates universal link for an external wallet and subscribes to the wallet's bridge, or sends connect request to the injected wallet.\n * @param wallet wallet's bridge url and universal link for an external wallet or jsBridge key for the injected wallet.\n * @param request (optional) additional request to pass to the wallet while connect (currently only ton_proof is available).\n * @returns universal link if external wallet was passed or void for the injected wallet.\n */\n public connect<T extends WalletConnectionSource>(\n wallet: T,\n request?: ConnectAdditionalRequest\n ): T extends WalletConnectionSourceJS ? void : string;\n public connect(\n wallet: WalletConnectionSource,\n request?: ConnectAdditionalRequest\n ): void | string {\n if (this.connected) {\n throw new WalletAlreadyConnectedError();\n }\n\n this.provider?.closeConnection();\n this.provider = this.createProvider(wallet);\n\n return this.provider.connect(this.createConnectRequest(request));\n }\n\n /**\n * Try to restore existing session and reconnect to the corresponding wallet. Call it immediately when your app is loaded.\n */\n public async restoreConnection(): Promise<void> {\n const [bridgeConnectionType, embeddedWallet] = await Promise.all([\n this.bridgeConnectionStorage.storedConnectionType(),\n this.walletsList.getEmbeddedWallet()\n ]);\n\n switch (bridgeConnectionType) {\n case 'http':\n this.provider = await BridgeProvider.fromStorage(this.dappSettings.storage);\n break;\n case 'injected':\n this.provider = await InjectedProvider.fromStorage(this.dappSettings.storage);\n break;\n default:\n if (embeddedWallet) {\n this.provider = await this.createProvider(embeddedWallet);\n } else {\n return;\n }\n }\n\n this.provider.listen(this.walletEventsListener.bind(this));\n return this.provider.restoreConnection();\n }\n\n /**\n * Asks connected wallet to sign and send the transaction.\n * @param transaction transaction to send.\n * @returns signed transaction boc that allows you to find the transaction in the blockchain.\n * If user rejects transaction, method will throw the corresponding error.\n */\n public async sendTransaction(\n transaction: SendTransactionRequest\n ): Promise<SendTransactionResponse> {\n this.checkConnection();\n this.checkFeatureSupport('SendTransaction');\n\n const { validUntil, ...tx } = transaction;\n const response = await this.provider!.sendRequest(\n sendTransactionParser.convertToRpcRequest({ ...tx, valid_until: validUntil })\n );\n\n if (sendTransactionParser.isError(response)) {\n return sendTransactionParser.parseAndThrowError(response);\n }\n\n return sendTransactionParser.convertFromRpcResponse(\n response as SendTransactionRpcResponseSuccess\n );\n }\n\n /**\n * Disconnect form thw connected wallet and drop current session.\n */\n public async disconnect(): Promise<void> {\n if (!this.connected) {\n throw new WalletNotConnectedError();\n }\n await this.provider!.disconnect();\n this.onWalletDisconnected();\n }\n\n private createProvider(wallet: WalletConnectionSource): Provider {\n let provider: Provider;\n\n if (isWalletConnectionSourceJS(wallet)) {\n provider = new InjectedProvider(wallet.jsBridgeKey);\n } else {\n provider = new BridgeProvider(this.dappSettings.storage, wallet);\n }\n\n provider.listen(this.walletEventsListener.bind(this));\n return provider;\n }\n\n private walletEventsListener(e: WalletEvent): void {\n switch (e.event) {\n case 'connect':\n this.onWalletConnected(e.payload);\n break;\n case 'connect_error':\n this.onWalletConnectError(e.payload);\n break;\n case 'disconnect':\n this.onWalletDisconnected();\n }\n }\n\n private onWalletConnected(connectEvent: ConnectEventSuccess['payload']): void {\n const tonAccountItem: TonAddressItemReply | undefined = connectEvent.items.find(\n item => item.name === 'ton_addr'\n ) as TonAddressItemReply | undefined;\n\n const tonProofItem: TonProofItemReply | undefined = connectEvent.items.find(\n item => item.name === 'ton_proof'\n ) as TonProofItemReply | undefined;\n\n if (!tonAccountItem) {\n throw new TonConnectError('ton_addr connection item was not found');\n }\n\n const wallet: Wallet = {\n device: connectEvent.device,\n provider: this.provider!.type,\n account: {\n address: tonAccountItem.address,\n chain: tonAccountItem.network,\n walletStateInit: tonAccountItem.walletStateInit\n }\n };\n\n if (tonProofItem) {\n wallet.connectItems = {\n tonProof: tonProofItem\n };\n }\n\n this.wallet = wallet;\n }\n\n private onWalletConnectError(connectEventError: ConnectEventError['payload']): void {\n const error = connectErrorsParser.parseError(connectEventError);\n this.statusChangeErrorSubscriptions.forEach(errorsHandler => errorsHandler(error));\n\n console.debug(error);\n\n if (error instanceof ManifestNotFoundError || error instanceof ManifestContentErrorError) {\n console.error(error);\n throw error;\n }\n }\n\n private onWalletDisconnected(): void {\n this.wallet = null;\n }\n\n private checkConnection(): void | never {\n if (!this.connected) {\n throw new WalletNotConnectedError();\n }\n }\n\n private checkFeatureSupport(feature: Feature): void | never {\n if (!this.wallet?.device.features.includes(feature)) {\n throw new WalletNotSupportFeatureError();\n }\n }\n\n private createConnectRequest(request?: ConnectAdditionalRequest): ConnectRequest {\n const items: ConnectItem[] = [\n {\n name: 'ton_addr'\n }\n ];\n\n if (request?.tonProof) {\n items.push({\n name: 'ton_proof',\n payload: request.tonProof\n });\n }\n\n return {\n manifestUrl: this.dappSettings.manifestUrl,\n items\n };\n }\n}\n","export function removeUrlLastSlash(url: string): string {\n if (url.slice(-1) === '/') {\n return url.slice(0, -1);\n }\n\n return url;\n}\n\nexport function addPathToUrl(url: string, path: string): string {\n return removeUrlLastSlash(url) + '/' + path;\n}\n","export function getWindow(): Window | undefined {\n if (typeof window === 'undefined') {\n return undefined;\n }\n\n return window;\n}\n\nexport function getDocument(): Document | undefined {\n if (typeof document === 'undefined') {\n return undefined;\n }\n\n return document;\n}\n\nexport function getWebPageManifest(): string {\n const origin = getWindow()?.location.origin;\n if (origin) {\n return origin + '/tonconnect-manifest.json';\n }\n\n return '';\n}\n","import { FetchWalletsError } from 'src/errors/wallets-manager/fetch-wallets.error';\nimport {\n WalletInfoRemote,\n WalletInfoInjected,\n WalletInfo,\n WalletInfoDTO,\n isWalletInfoInjected\n} from 'src/models/wallet/wallet-info';\nimport { InjectedProvider } from 'src/provider/injected/injected-provider';\n\nexport class WalletsListManager {\n private walletsListCache: Promise<WalletInfo[]> | null = null;\n\n private readonly walletsListSource =\n 'https://raw.githubusercontent.com/ton-connect/wallets-list/main/wallets.json';\n\n public async getWallets(): Promise<WalletInfo[]> {\n if (!this.walletsListCache) {\n this.walletsListCache = this.fetchWalletsList();\n this.walletsListCache.catch(() => (this.walletsListCache = null));\n }\n\n return this.walletsListCache;\n }\n\n public async getEmbeddedWallet(): Promise<WalletInfoInjected | null> {\n const walletsList = await this.getWallets();\n const injectedWallets = walletsList.filter(isWalletInfoInjected);\n\n if (injectedWallets.length !== 1) {\n return null;\n }\n\n return injectedWallets[0]!.embedded ? injectedWallets[0]! : null;\n }\n\n private async fetchWalletsList(): Promise<WalletInfo[]> {\n try {\n const walletsResponse = await fetch(this.walletsListSource);\n const walletsList: WalletInfoDTO[] = await walletsResponse.json();\n\n if (\n !Array.isArray(walletsList) ||\n !walletsList.every(wallet => this.isCorrectWalletConfigDTO(wallet))\n ) {\n throw new FetchWalletsError('Wrong wallets list format');\n }\n\n return this.walletConfigDTOListToWalletConfigList(walletsList);\n } catch (e) {\n throw new FetchWalletsError(e);\n }\n }\n\n private walletConfigDTOListToWalletConfigList(walletConfigDTO: WalletInfoDTO[]): WalletInfo[] {\n return walletConfigDTO.map(walletConfigDTO => {\n const walletConfig: WalletInfo = {\n name: walletConfigDTO.name,\n imageUrl: walletConfigDTO.image,\n aboutUrl: walletConfigDTO.about_url,\n tondns: walletConfigDTO.tondns\n } as WalletInfo;\n\n if ('bridge_url' in walletConfigDTO) {\n (walletConfig as WalletInfoRemote).bridgeUrl = walletConfigDTO.bridge_url;\n (walletConfig as WalletInfoRemote).universalLink = walletConfigDTO.universal_url;\n }\n\n if ('js_bridge_key' in walletConfigDTO) {\n const jsBridgeKey = walletConfigDTO.js_bridge_key;\n (walletConfig as WalletInfoInjected).jsBridgeKey = jsBridgeKey;\n (walletConfig as WalletInfoInjected).injected =\n InjectedProvider.isWalletInjected(jsBridgeKey);\n (walletConfig as WalletInfoInjected).embedded =\n InjectedProvider.isInsideWalletBrowser(jsBridgeKey);\n }\n\n return walletConfig;\n });\n }\n\n private isCorrectWalletConfigDTO(value: unknown): value is WalletInfoDTO {\n if (!value || !(typeof value === 'object')) {\n return false;\n }\n\n const containsName = 'name' in value;\n const containsImage = 'image' in value;\n const containsAbout = 'about_url' in value;\n\n if (!containsName || !containsImage || !containsAbout) {\n return false;\n }\n\n const containsUniversalUrl = 'universal_url' in value;\n const containsHttpBridge = 'bridge_url' in value;\n const containsJsBridge = 'js_bridge_key' in value;\n\n return (containsHttpBridge && containsUniversalUrl) || containsJsBridge;\n }\n}\n","// Written in 2014-2016 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n(function(root, f) {\n 'use strict';\n if (typeof module !== 'undefined' && module.exports) module.exports = f();\n else if (root.nacl) root.nacl.util = f();\n else {\n root.nacl = {};\n root.nacl.util = f();\n }\n}(this, function() {\n 'use strict';\n\n var util = {};\n\n function validateBase64(s) {\n if (!(/^(?:[A-Za-z0-9+\\/]{2}[A-Za-z0-9+\\/]{2})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/.test(s))) {\n throw new TypeError('invalid encoding');\n }\n }\n\n util.decodeUTF8 = function(s) {\n if (typeof s !== 'string') throw new TypeError('expected string');\n var i, d = unescape(encodeURIComponent(s)), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n util.encodeUTF8 = function(arr) {\n var i, s = [];\n for (i = 0; i < arr.length; i++) s.push(String.fromCharCode(arr[i]));\n return decodeURIComponent(escape(s.join('')));\n };\n\n if (typeof atob === 'undefined') {\n // Node.js\n\n if (typeof Buffer.from !== 'undefined') {\n // Node v6 and later\n util.encodeBase64 = function (arr) { // v6 and later\n return Buffer.from(arr).toString('base64');\n };\n\n util.decodeBase64 = function (s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(Buffer.from(s, 'base64'), 0));\n };\n\n } else {\n // Node earlier than v6\n util.encodeBase64 = function (arr) { // v6 and later\n return (new Buffer(arr)).toString('base64');\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(new Buffer(s, 'base64'), 0));\n };\n }\n\n } else {\n // Browsers\n\n util.encodeBase64 = function(arr) {\n var i, s = [], len = arr.length;\n for (i = 0; i < len; i++) s.push(String.fromCharCode(arr[i]));\n return btoa(s.join(''));\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n var i, d = atob(s), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n }\n\n return util;\n\n}));\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionCrypto = void 0;\nvar session_crypto_1 = require(\"./session-crypto\");\nObject.defineProperty(exports, \"SessionCrypto\", { enumerable: true, get: function () { return session_crypto_1.SessionCrypto; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionCrypto = void 0;\nconst utils_1 = require(\"../utils\");\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nif ((0, utils_1.isNode)()) {\n try {\n eval(\"global.crypto = require('crypto').webcrypto\");\n }\n catch (err) { }\n}\nclass SessionCrypto {\n constructor(keyPair) {\n this.nonceLength = 24;\n this.keyPair = keyPair ? this.createKeypairFromString(keyPair) : this.createKeypair();\n this.sessionId = (0, utils_1.toHexString)(this.keyPair.publicKey);\n }\n createKeypair() {\n return tweetnacl_1.default.box.keyPair();\n }\n createKeypairFromString(keyPair) {\n return {\n publicKey: (0, utils_1.hexToByteArray)(keyPair.publicKey),\n secretKey: (0, utils_1.hexToByteArray)(keyPair.secretKey)\n };\n }\n createNonce() {\n const buffer = new Uint8Array(this.nonceLength);\n return crypto.getRandomValues(buffer);\n }\n encrypt(message, receiverPublicKey) {\n const encodedMessage = new TextEncoder().encode(message);\n const nonce = this.createNonce();\n const encrypted = tweetnacl_1.default.box(encodedMessage, nonce, receiverPublicKey, this.keyPair.secretKey);\n return (0, utils_1.concatUint8Arrays)(nonce, encrypted);\n }\n decrypt(message, senderPublicKey) {\n const [nonce, internalMessage] = (0, utils_1.splitToUint8Arrays)(message, this.nonceLength);\n const decrypted = tweetnacl_1.default.box.open(internalMessage, nonce, senderPublicKey, this.keyPair.secretKey);\n if (!decrypted) {\n throw new Error('Decryption error');\n }\n return new TextDecoder().decode(decrypted);\n }\n stringifyKeypair() {\n return {\n publicKey: (0, utils_1.toHexString)(this.keyPair.publicKey),\n secretKey: (0, utils_1.toHexString)(this.keyPair.secretKey)\n };\n }\n}\nexports.SessionCrypto = SessionCrypto;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./models\"), exports);\n__exportStar(require(\"./crypto\"), exports);\n__exportStar(require(\"./utils\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHAIN = void 0;\nvar CHAIN;\n(function (CHAIN) {\n CHAIN[\"MAINNET\"] = \"-239\";\n CHAIN[\"TESTNET\"] = \"-3\";\n})(CHAIN = exports.CHAIN || (exports.CHAIN = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./request\"), exports);\n__exportStar(require(\"./connect-request\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHAIN = void 0;\n__exportStar(require(\"./app-message\"), exports);\n__exportStar(require(\"./wallet-message\"), exports);\nvar CHAIN_1 = require(\"./CHAIN\");\nObject.defineProperty(exports, \"CHAIN\", { enumerable: true, get: function () { return CHAIN_1.CHAIN; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./wallet-event\"), exports);\n__exportStar(require(\"./wallet-response\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CONNECT_ITEM_ERROR_CODES = exports.CONNECT_EVENT_ERROR_CODES = void 0;\nvar CONNECT_EVENT_ERROR_CODES;\n(function (CONNECT_EVENT_ERROR_CODES) {\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"UNKNOWN_ERROR\"] = 0] = \"UNKNOWN_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"BAD_REQUEST_ERROR\"] = 1] = \"BAD_REQUEST_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"MANIFEST_NOT_FOUND_ERROR\"] = 2] = \"MANIFEST_NOT_FOUND_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"MANIFEST_CONTENT_ERROR\"] = 3] = \"MANIFEST_CONTENT_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"UNKNOWN_APP_ERROR\"] = 100] = \"UNKNOWN_APP_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"USER_REJECTS_ERROR\"] = 300] = \"USER_REJECTS_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"METHOD_NOT_SUPPORTED\"] = 400] = \"METHOD_NOT_SUPPORTED\";\n})(CONNECT_EVENT_ERROR_CODES = exports.CONNECT_EVENT_ERROR_CODES || (exports.CONNECT_EVENT_ERROR_CODES = {}));\nvar CONNECT_ITEM_ERROR_CODES;\n(function (CONNECT_ITEM_ERROR_CODES) {\n CONNECT_ITEM_ERROR_CODES[CONNECT_ITEM_ERROR_CODES[\"UNKNOWN_ERROR\"] = 0] = \"UNKNOWN_ERROR\";\n CONNECT_ITEM_ERROR_CODES[CONNECT_ITEM_ERROR_CODES[\"METHOD_NOT_SUPPORTED\"] = 400] = \"METHOD_NOT_SUPPORTED\";\n})(CONNECT_ITEM_ERROR_CODES = exports.CONNECT_ITEM_ERROR_CODES || (exports.CONNECT_ITEM_ERROR_CODES = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CONNECT_EVENT_ERROR_CODES = void 0;\nvar connect_event_1 = require(\"./connect-event\");\nObject.defineProperty(exports, \"CONNECT_EVENT_ERROR_CODES\", { enumerable: true, get: function () { return connect_event_1.CONNECT_EVENT_ERROR_CODES; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SEND_TRANSACTION_ERROR_CODES = void 0;\nvar send_transaction_rpc_response_1 = require(\"./send-transaction-rpc-response\");\nObject.defineProperty(exports, \"SEND_TRANSACTION_ERROR_CODES\", { enumerable: true, get: function () { return send_transaction_rpc_response_1.SEND_TRANSACTION_ERROR_CODES; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SEND_TRANSACTION_ERROR_CODES = void 0;\nvar SEND_TRANSACTION_ERROR_CODES;\n(function (SEND_TRANSACTION_ERROR_CODES) {\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"UNKNOWN_ERROR\"] = 0] = \"UNKNOWN_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"BAD_REQUEST_ERROR\"] = 1] = \"BAD_REQUEST_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"UNKNOWN_APP_ERROR\"] = 100] = \"UNKNOWN_APP_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"USER_REJECTS_ERROR\"] = 300] = \"USER_REJECTS_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"METHOD_NOT_SUPPORTED\"] = 400] = \"METHOD_NOT_SUPPORTED\";\n})(SEND_TRANSACTION_ERROR_CODES = exports.SEND_TRANSACTION_ERROR_CODES || (exports.SEND_TRANSACTION_ERROR_CODES = {}));\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Base64 = void 0;\nconst tweetnacl_util_1 = __importDefault(require(\"tweetnacl-util\"));\nfunction encodeUint8Array(value, urlSafe) {\n const encoded = tweetnacl_util_1.default.encodeBase64(value);\n if (!urlSafe) {\n return encoded;\n }\n return encodeURIComponent(encoded);\n}\nfunction decodeToUint8Array(value, urlSafe) {\n if (urlSafe) {\n value = decodeURIComponent(value);\n }\n return tweetnacl_util_1.default.decodeBase64(value);\n}\nfunction encode(value, urlSafe = false) {\n let uint8Array;\n if (value instanceof Uint8Array) {\n uint8Array = value;\n }\n else {\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n uint8Array = tweetnacl_util_1.default.decodeUTF8(value);\n }\n return encodeUint8Array(uint8Array, urlSafe);\n}\nfunction decode(value, urlSafe = false) {\n const decodedUint8Array = decodeToUint8Array(value, urlSafe);\n return {\n toString() {\n return tweetnacl_util_1.default.encodeUTF8(decodedUint8Array);\n },\n toObject() {\n try {\n return JSON.parse(tweetnacl_util_1.default.encodeUTF8(decodedUint8Array));\n }\n catch (e) {\n return null;\n }\n },\n toUint8Array() {\n return decodedUint8Array;\n }\n };\n}\nexports.Base64 = {\n encode,\n decode\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hexToByteArray = exports.toHexString = exports.splitToUint8Arrays = exports.concatUint8Arrays = void 0;\nfunction concatUint8Arrays(buffer1, buffer2) {\n const mergedArray = new Uint8Array(buffer1.length + buffer2.length);\n mergedArray.set(buffer1);\n mergedArray.set(buffer2, buffer1.length);\n return mergedArray;\n}\nexports.concatUint8Arrays = concatUint8Arrays;\nfunction splitToUint8Arrays(array, index) {\n if (index >= array.length) {\n throw new Error('Index is out of buffer');\n }\n const subArray1 = array.slice(0, index);\n const subArray2 = array.slice(index);\n return [subArray1, subArray2];\n}\nexports.splitToUint8Arrays = splitToUint8Arrays;\nfunction toHexString(byteArray) {\n let hexString = '';\n byteArray.forEach(byte => {\n hexString += ('0' + (byte & 0xff).toString(16)).slice(-2);\n });\n return hexString;\n}\nexports.toHexString = toHexString;\nfunction hexToByteArray(hexString) {\n if (hexString.length % 2 !== 0) {\n throw new Error(`Cannot convert ${hexString} to bytesArray`);\n }\n const result = new Uint8Array(hexString.length / 2);\n for (let i = 0; i < hexString.length; i += 2) {\n result[i / 2] = parseInt(hexString.slice(i, i + 2), 16);\n }\n return result;\n}\nexports.hexToByteArray = hexToByteArray;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNode = exports.hexToByteArray = exports.toHexString = exports.splitToUint8Arrays = exports.concatUint8Arrays = exports.Base64 = void 0;\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"Base64\", { enumerable: true, get: function () { return base64_1.Base64; } });\nvar binary_1 = require(\"./binary\");\nObject.defineProperty(exports, \"concatUint8Arrays\", { enumerable: true, get: function () { return binary_1.concatUint8Arrays; } });\nObject.defineProperty(exports, \"splitToUint8Arrays\", { enumerable: true, get: function () { return binary_1.splitToUint8Arrays; } });\nObject.defineProperty(exports, \"toHexString\", { enumerable: true, get: function () { return binary_1.toHexString; } });\nObject.defineProperty(exports, \"hexToByteArray\", { enumerable: true, get: function () { return binary_1.hexToByteArray; } });\nvar web_api_1 = require(\"./web-api\");\nObject.defineProperty(exports, \"isNode\", { enumerable: true, get: function () { return web_api_1.isNode; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNode = void 0;\nfunction isNode() {\n return (typeof process !== 'undefined' && process.versions != null && process.versions.node != null);\n}\nexports.isNode = isNode;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(4027);\n"],"names":["DappMetadataError","TonConnectError","constructor","args","super","Object","setPrototypeOf","this","prototype","UnknownError","UserRejectsError","ManifestContentErrorError","message","additionalMessage","ManifestNotFoundError","BadRequestError","UnknownAppError","LocalstorageNotFoundError","Error","options","prefix","WalletAlreadyConnectedError","WalletNotConnectedError","WalletNotInjectedError","WalletNotSupportFeatureError","FetchWalletsError","TonConnect","CHAIN","isWalletInfoInjected","value","connectEventErrorsCodes","CONNECT_EVENT_ERROR_CODES","UNKNOWN_ERROR","USER_REJECTS_ERROR","BAD_REQUEST_ERROR","UNKNOWN_APP_ERROR","MANIFEST_NOT_FOUND_ERROR","MANIFEST_CONTENT_ERROR","connectErrorsParser","parseError","error","ErrorConstructor","code","isError","response","sendTransactionErrors","SEND_TRANSACTION_ERROR_CODES","SendTransactionParser","RpcParser","convertToRpcRequest","request","method","params","JSON","stringify","parseAndThrowError","convertFromRpcResponse","rpcResponse","boc","result","sendTransactionParser","isNode","eval","err","console","BridgeGateway","storage","bridgeUrl","sessionId","listener","errorsListener","ssePath","postPath","heartbeatMessage","defaultTtl","isClosed","bridgeGatewayStorage","HttpBridgeGatewayStorage","registerSession","url","URL","addPathToUrl","searchParams","append","lastEventId","getLastEventId","eventSource","EventSource","toString","Promise","resolve","reject","onerror","onopen","errorsHandler","bind","onmessage","messagesHandler","send","receiver","ttl","fetch","body","Base64","encode","close","e","readyState","CLOSED","CONNECTING","debug","data","storeLastEventId","bridgeIncomingMessage","parse","BridgeProvider","walletConnectionSource","type","pendingRequests","Map","nextRequestId","session","bridge","listeners","connectionStorage","BridgeConnectionStorage","static","bridgeConnectionStorage","connection","getHttpConnection","connect","sessionCrypto","SessionCrypto","gatewayListener","gatewayErrorsListener","generateUniversalLink","restoreConnection","storedConnection","forEach","connectEvent","sendRequest","id","encodedRequest","encrypt","hexToByteArray","walletPublicKey","catch","set","closeConnection","disconnect","removeBridgeAndSession","listen","callback","push","filter","walletMessage","decrypt","decode","toUint8Array","from","get","delete","event","updateSession","tonAddrItem","payload","items","find","item","name","connectEventToSave","storeConnection","removeConnection","universalLink","PROTOCOL_VERSION","InjectedProvider","injectedWalletKey","unsubscribeCallback","listenSubscriptions","window","isWindowContainsWallet","injectedWallet","tonconnect","getInjectedConnection","jsBridgeKey","isWalletBrowser","auto","then","makeSubscriptions","connectEventError","closeAllListeners","eventsCallback","getWindow","storeKey","setItem","rawSession","sessionKeyPair","stringifyKeypair","rawConnection","removeItem","getConnection","stored","getItem","storedConnectionType","localStorage","key","removeLastEventId","walletsList","WalletsListManager","_wallet","provider","statusChangeSubscriptions","statusChangeErrorSubscriptions","dappSettings","manifestUrl","getWebPageManifest","DefaultStorage","connected","account","wallet","getWallets","onStatusChange","createProvider","createConnectRequest","bridgeConnectionType","embeddedWallet","all","getEmbeddedWallet","fromStorage","walletEventsListener","sendTransaction","transaction","checkConnection","checkFeatureSupport","validUntil","tx","valid_until","onWalletDisconnected","isWalletConnectionSourceJS","onWalletConnected","onWalletConnectError","tonAccountItem","tonProofItem","device","address","chain","network","walletStateInit","connectItems","tonProof","feature","features","includes","removeUrlLastSlash","slice","path","document","origin","location","walletsListCache","walletsListSource","fetchWalletsList","injectedWallets","length","embedded","walletsResponse","json","Array","isArray","every","isCorrectWalletConfigDTO","walletConfigDTOListToWalletConfigList","walletConfigDTO","map","walletConfig","imageUrl","image","aboutUrl","about_url","tondns","bridge_url","universal_url","js_bridge_key","injected","isWalletInjected","isInsideWalletBrowser","root","f","module","exports","nacl","util","validateBase64","s","test","TypeError","decodeUTF8","i","d","unescape","encodeURIComponent","b","Uint8Array","charCodeAt","encodeUTF8","arr","String","fromCharCode","decodeURIComponent","escape","join","atob","Buffer","encodeBase64","decodeBase64","call","len","btoa","gf","init","r","Float64Array","randombytes","_0","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","x","h","l","vn","xi","y","yi","n","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","out","inp","k","c","o","p","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","m","mpos","z","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","buffer","Uint16Array","pad","leftover","fin","crypto_onetimeauth","outpos","update","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","a","car25519","v","Math","floor","sel25519","q","t","pack25519","j","neq25519","par25519","unpack25519","A","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","x32","subarray","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","blocks","bytes","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","g","want","crypto_box_afternm","crypto_box_open_afternm","K","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hash","add","cswap","pack","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","carry","reduce","crypto_sign","sm","smlen","crypto_sign_open","chk","num","den","den2","den4","den6","unpackneg","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","arguments","cleanup","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_secretbox_BOXZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","randomBytes","secretbox","msg","nonce","open","box","keyLength","nonceLength","overheadLength","scalarMult","base","scalarLength","groupElementLength","publicKey","secretKey","before","checkBoxLengths","after","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","sign","signedMsg","tmp","mlen","detached","sig","verify","fromSeed","seed","seedLength","signatureLength","hash","hashLength","setPRNG","fn","crypto","self","msCrypto","getRandomValues","min","defineProperty","session_crypto_1","enumerable","__importDefault","mod","__esModule","utils_1","tweetnacl_1","createKeypairFromString","createKeypair","toHexString","default","createNonce","receiverPublicKey","encodedMessage","TextEncoder","encrypted","concatUint8Arrays","senderPublicKey","internalMessage","splitToUint8Arrays","decrypted","TextDecoder","__createBinding","create","k2","undefined","desc","getOwnPropertyDescriptor","writable","configurable","__exportStar","hasOwnProperty","CHAIN_1","CONNECT_ITEM_ERROR_CODES","connect_event_1","send_transaction_rpc_response_1","tweetnacl_util_1","urlSafe","uint8Array","encoded","encodeUint8Array","decodedUint8Array","decodeToUint8Array","toObject","buffer1","buffer2","mergedArray","array","index","byteArray","hexString","byte","parseInt","base64_1","binary_1","web_api_1","process","versions","node","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__webpack_exports__"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"tonconnect-sdk.min.js","mappings":"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","sources":["webpack://TonConnectSDK/./src/errors/address/index.ts","webpack://TonConnectSDK/./src/errors/address/wrong-address.error.ts","webpack://TonConnectSDK/./src/errors/binary/base64-encode.error.ts","webpack://TonConnectSDK/./src/errors/binary/index.ts","webpack://TonConnectSDK/./src/errors/binary/parse-hex.error.ts","webpack://TonConnectSDK/./src/errors/dapp/dapp-metadata.error.ts","webpack://TonConnectSDK/./src/errors/index.ts","webpack://TonConnectSDK/./src/errors/protocol/events/connect/index.ts","webpack://TonConnectSDK/./src/errors/protocol/events/connect/manifest-content-error.error.ts","webpack://TonConnectSDK/./src/errors/protocol/events/connect/manifest-not-found.error.ts","webpack://TonConnectSDK/./src/errors/protocol/events/connect/user-rejects.error.ts","webpack://TonConnectSDK/./src/errors/protocol/events/index.ts","webpack://TonConnectSDK/./src/errors/protocol/index.ts","webpack://TonConnectSDK/./src/errors/protocol/responses/bad-request.error.ts","webpack://TonConnectSDK/./src/errors/protocol/responses/index.ts","webpack://TonConnectSDK/./src/errors/protocol/responses/unknown-app.error.ts","webpack://TonConnectSDK/./src/errors/storage/index.ts","webpack://TonConnectSDK/./src/errors/storage/localstorage-not-found.error.ts","webpack://TonConnectSDK/./src/errors/ton-connect.error.ts","webpack://TonConnectSDK/./src/errors/unknown.error.ts","webpack://TonConnectSDK/./src/errors/wallet/index.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-already-connected.error.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-not-connected.error.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-not-injected.error.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-not-support-feature.error.ts","webpack://TonConnectSDK/./src/errors/wallets-manager/fetch-wallets.error.ts","webpack://TonConnectSDK/./src/errors/wallets-manager/index.ts","webpack://TonConnectSDK/./src/index.ts","webpack://TonConnectSDK/./src/models/index.ts","webpack://TonConnectSDK/./src/models/methods/index.ts","webpack://TonConnectSDK/./src/models/wallet/index.ts","webpack://TonConnectSDK/./src/models/wallet/wallet-connection-source.ts","webpack://TonConnectSDK/./src/models/wallet/wallet-info.ts","webpack://TonConnectSDK/./src/parsers/connect-errors-parser.ts","webpack://TonConnectSDK/./src/parsers/rpc-parser.ts","webpack://TonConnectSDK/./src/parsers/send-transaction-parser.ts","webpack://TonConnectSDK/./src/provider/bridge/bridge-gateway.ts","webpack://TonConnectSDK/./src/provider/bridge/bridge-provider.ts","webpack://TonConnectSDK/./src/provider/injected/injected-provider.ts","webpack://TonConnectSDK/./src/resources/protocol.ts","webpack://TonConnectSDK/./src/storage/bridge-connection-storage.ts","webpack://TonConnectSDK/./src/storage/default-storage.ts","webpack://TonConnectSDK/./src/storage/http-bridge-gateway-storage.ts","webpack://TonConnectSDK/./src/ton-connect.ts","webpack://TonConnectSDK/./src/utils/address.ts","webpack://TonConnectSDK/./src/utils/url.ts","webpack://TonConnectSDK/./src/utils/web-api.ts","webpack://TonConnectSDK/./src/wallets-list-manager.ts","webpack://TonConnectSDK/../../node_modules/tweetnacl-util/nacl-util.js","webpack://TonConnectSDK/../../node_modules/tweetnacl/nacl-fast.js","webpack://TonConnectSDK/../protocol/lib/cjs/crypto/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/crypto/session-crypto.js","webpack://TonConnectSDK/../protocol/lib/cjs/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/CHAIN.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/app-message/connect-request/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/app-message/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/app-message/request/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/wallet-message/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/wallet-message/wallet-event/connect-event.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/wallet-message/wallet-event/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/wallet-message/wallet-response/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/models/wallet-message/wallet-response/send-transaction-rpc-response.js","webpack://TonConnectSDK/../protocol/lib/cjs/utils/base64.js","webpack://TonConnectSDK/../protocol/lib/cjs/utils/binary.js","webpack://TonConnectSDK/../protocol/lib/cjs/utils/index.js","webpack://TonConnectSDK/../protocol/lib/cjs/utils/web-api.js","webpack://TonConnectSDK/webpack/bootstrap","webpack://TonConnectSDK/webpack/startup"],"sourcesContent":["export { WrongAddressError } from './wrong-address.error';\n","import { TonConnectError } from 'src/errors';\n\nexport class WrongAddressError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, WrongAddressError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors';\n\nexport class Base64EncodeError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, Base64EncodeError.prototype);\n }\n}\n","export { Base64EncodeError } from './base64-encode.error';\nexport { ParseHexError } from './parse-hex.error';\n","import { TonConnectError } from 'src/errors';\n\nexport class ParseHexError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, ParseHexError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when passed DappMetadata is in incorrect format.\n */\nexport class DappMetadataError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, DappMetadataError.prototype);\n }\n}\n","export * from './protocol';\nexport * from './wallet';\nexport * from './storage';\nexport * from './wallets-manager';\nexport * from './address';\nexport * from './binary';\nexport { TonConnectError } from './ton-connect.error';\nexport { UnknownError } from './unknown.error';\n","export { UserRejectsError } from 'src/errors/protocol/events/connect/user-rejects.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when passed manifest contains errors.\n */\nexport class ManifestContentErrorError extends TonConnectError {\n private static additionalMessage =\n '\\nPassed `tonconnect-manifest.json` contains errors. Check format of your manifest. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest';\n\n constructor(message?: string) {\n super(message || '' + ManifestContentErrorError.additionalMessage);\n\n Object.setPrototypeOf(this, ManifestContentErrorError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when wallet can't get manifest by passed manifestUrl.\n */\nexport class ManifestNotFoundError extends TonConnectError {\n private static additionalMessage =\n '\\nManifest not found. Make sure you added `tonconnect-manifest.json` to the root of your app or passed correct manifestUrl. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest';\n\n constructor(message?: string) {\n super(message || '' + ManifestNotFoundError.additionalMessage);\n\n Object.setPrototypeOf(this, ManifestNotFoundError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when user rejects the action in the wallet.\n */\nexport class UserRejectsError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, UserRejectsError.prototype);\n }\n}\n","export * from './connect';\n","export * from './events';\nexport * from './responses';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when request to the wallet contains errors.\n */\nexport class BadRequestError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, BadRequestError.prototype);\n }\n}\n","export { BadRequestError } from './bad-request.error';\nexport { UnknownAppError } from './unknown-app.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when app tries to send rpc request to the injected wallet while not connected.\n */\nexport class UnknownAppError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, UnknownAppError.prototype);\n }\n}\n","export { LocalstorageNotFoundError } from './localstorage-not-found.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when `Storage` was not specified in the `DappMetadata` and default `localStorage` was not detected in the environment.\n */\nexport class LocalstorageNotFoundError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, LocalstorageNotFoundError.prototype);\n }\n}\n","/**\n * Base class for TonConnect errors. You can check if the error was triggered by the @tonconnect/sdk using `err instanceof TonConnectError`.\n */\nexport class TonConnectError extends Error {\n private static prefix = '[TON_CONNECT_SDK_ERROR]';\n\n constructor(message?: string, options?: ErrorOptions) {\n if (message) {\n message = TonConnectError.prefix + ' ' + message;\n }\n super(message, options);\n\n Object.setPrototypeOf(this, TonConnectError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Unhanded unknown error.\n */\nexport class UnknownError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, UnknownError.prototype);\n }\n}\n","export { WalletAlreadyConnectedError } from './wallet-already-connected.error';\nexport { WalletNotConnectedError } from './wallet-not-connected.error';\nexport { WalletNotInjectedError } from './wallet-not-injected.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when wallet connection called but wallet already connected. To avoid the error, disconnect the wallet before doing a new connection.\n */\nexport class WalletAlreadyConnectedError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletAlreadyConnectedError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when send transaction or other protocol methods called while wallet is not connected.\n */\nexport class WalletNotConnectedError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletNotConnectedError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when there is an attempt to connect to the injected wallet while it is not exists in the webpage.\n */\nexport class WalletNotInjectedError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletNotInjectedError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when wallet doesn't support requested feature method.\n */\nexport class WalletNotSupportFeatureError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletNotSupportFeatureError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when an error occurred while fetching the wallets list.\n */\nexport class FetchWalletsError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, FetchWalletsError.prototype);\n }\n}\n","export { FetchWalletsError } from './fetch-wallets.error';\n","export * from './ton-connect';\nexport * from './models';\nexport * from './errors';\nexport { IStorage } from './storage/models/storage.interface';\nexport { TonConnect as default } from './ton-connect';\nexport { ITonConnect } from './ton-connect.interface';\nexport { CHAIN, DeviceInfo } from '@tonconnect/protocol';\nexport { toUserFriendlyAddress } from './utils/address';\n","export * from './wallet';\nexport * from './methods';\nexport { DappMetadata } from './dapp/dapp-metadata';\nexport { TonConnectOptions } from './ton-connect-options';\n","export * from './connect';\nexport * from './send-transaction';\n","export type { Account } from './account';\nexport type { Wallet } from './wallet';\nexport type {\n WalletConnectionSource,\n WalletConnectionSourceHTTP,\n WalletConnectionSourceJS\n} from './wallet-connection-source';\nexport {\n WalletInfo,\n WalletInfoInjected,\n WalletInfoRemote,\n isWalletInfoInjected\n} from './wallet-info';\n","export type WalletConnectionSource = WalletConnectionSourceHTTP | WalletConnectionSourceJS;\n\nexport interface WalletConnectionSourceHTTP {\n /**\n * Base part of the wallet universal url. The link should support [Ton Connect parameters]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#universal-link}.\n */\n universalLink: string;\n\n /**\n * Url of the wallet's implementation of the [HTTP bridge]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#http-bridge}.\n */\n bridgeUrl: string;\n}\n\nexport interface WalletConnectionSourceJS {\n /**\n * If the wallet handles JS Bridge connection, specifies the binding for the bridge object accessible through window. Example: the key \"tonkeeper\" means the bridge can be accessed as window.tonkeeper.\n */\n jsBridgeKey: string;\n}\n\nexport function isWalletConnectionSourceJS(\n value: WalletConnectionSource\n): value is WalletConnectionSourceJS {\n return 'jsBridgeKey' in value;\n}\n","export interface WalletInfoBase {\n /**\n * Name of the wallet.\n */\n name: string;\n\n /**\n * Url to the icon of the wallet. Resolution 288×288px. On non-transparent background, without rounded corners. PNG format.\n */\n imageUrl: string;\n\n /**\n * Will be used in the protocol later.\n */\n tondns?: string;\n\n /**\n * Info or landing page of your wallet. May be useful for TON newcomers.\n */\n aboutUrl: string;\n}\n\nexport interface WalletInfoRemote extends WalletInfoBase {\n /**\n * Base part of the wallet universal url. The link should support [Ton Connect parameters]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#universal-link}.\n */\n universalLink: string;\n\n /**\n * Native wallet app deepLink. The link should support [Ton Connect parameters]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#universal-link}.\n */\n deepLink: string;\n\n /**\n * Url of the wallet's implementation of the [HTTP bridge]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#http-bridge}.\n */\n bridgeUrl: string;\n}\n\nexport interface WalletInfoInjected extends WalletInfoBase {\n /**\n * If the wallet handles JS Bridge connection, specifies the binding for the bridge object accessible through window. Example: the key \"tonkeeper\" means the bridge can be accessed as window.tonkeeper.\n */\n jsBridgeKey: string;\n\n /**\n * Indicates if the wallet currently is injected to the webpage.\n */\n injected: boolean;\n\n /**\n * Indicates if the dapp is opened inside this wallet's browser.\n */\n embedded: boolean;\n}\n\nexport type WalletInfo =\n | WalletInfoRemote\n | WalletInfoInjected\n | (WalletInfoRemote & WalletInfoInjected);\n\nexport interface WalletInfoDTO {\n name: string;\n image: string;\n tondns?: string;\n about_url: string;\n universal_url: string;\n\n deepLink: string;\n bridge: (WalletInfoBridgeRemoteDTO | WalletInfoBridgeInjectedDTO)[];\n}\n\nexport interface WalletInfoBridgeRemoteDTO {\n type: 'sse';\n url: string;\n}\n\nexport interface WalletInfoBridgeInjectedDTO {\n type: 'js';\n key: string;\n}\n\nexport function isWalletInfoInjected(value: WalletInfo): value is WalletInfoInjected {\n return 'jsBridgeKey' in value;\n}\n","import { BadRequestError, UnknownAppError, UserRejectsError } from 'src/errors';\nimport { ManifestContentErrorError } from 'src/errors/protocol/events/connect/manifest-content-error.error';\nimport { ManifestNotFoundError } from 'src/errors/protocol/events/connect/manifest-not-found.error';\nimport { TonConnectError } from 'src/errors/ton-connect.error';\nimport { UnknownError } from 'src/errors/unknown.error';\nimport { CONNECT_EVENT_ERROR_CODES, ConnectEventError } from '@tonconnect/protocol';\n\nconst connectEventErrorsCodes: Partial<Record<CONNECT_EVENT_ERROR_CODES, typeof TonConnectError>> =\n {\n [CONNECT_EVENT_ERROR_CODES.UNKNOWN_ERROR]: UnknownError,\n [CONNECT_EVENT_ERROR_CODES.USER_REJECTS_ERROR]: UserRejectsError,\n [CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR]: BadRequestError,\n [CONNECT_EVENT_ERROR_CODES.UNKNOWN_APP_ERROR]: UnknownAppError,\n [CONNECT_EVENT_ERROR_CODES.MANIFEST_NOT_FOUND_ERROR]: ManifestNotFoundError,\n [CONNECT_EVENT_ERROR_CODES.MANIFEST_CONTENT_ERROR]: ManifestContentErrorError\n };\n\nclass ConnectErrorsParser {\n parseError(error: ConnectEventError['payload']): TonConnectError {\n let ErrorConstructor: typeof TonConnectError = UnknownError;\n\n if (error.code in connectEventErrorsCodes) {\n ErrorConstructor = connectEventErrorsCodes[error.code] || UnknownError;\n }\n\n return new ErrorConstructor(error.message);\n }\n}\n\nexport const connectErrorsParser = new ConnectErrorsParser();\n","import {\n AppRequest,\n RpcMethod,\n WalletResponse,\n WalletResponseError,\n WalletResponseSuccess\n} from '@tonconnect/protocol';\nimport { WithoutId } from 'src/utils/types';\n\nexport abstract class RpcParser<T extends RpcMethod> {\n abstract convertToRpcRequest(...args: unknown[]): WithoutId<AppRequest<T>>;\n\n abstract convertFromRpcResponse(rpcResponse: WithoutId<WalletResponseSuccess<T>>): unknown;\n\n abstract parseAndThrowError(response: WithoutId<WalletResponseError<T>>): never;\n\n public isError(\n response: WithoutId<WalletResponse<T>>\n ): response is WithoutId<WalletResponseError<T>> {\n return 'error' in response;\n }\n}\n","import {\n CONNECT_EVENT_ERROR_CODES,\n SEND_TRANSACTION_ERROR_CODES,\n SendTransactionRpcRequest,\n SendTransactionRpcResponseError,\n SendTransactionRpcResponseSuccess\n} from '@tonconnect/protocol';\nimport { BadRequestError, TonConnectError, UnknownAppError, UserRejectsError } from 'src/errors';\nimport { UnknownError } from 'src/errors/unknown.error';\nimport { SendTransactionRequest, SendTransactionResponse } from 'src/models/methods';\nimport { RpcParser } from 'src/parsers/rpc-parser';\nimport { WithoutId } from 'src/utils/types';\n\nconst sendTransactionErrors: Partial<Record<CONNECT_EVENT_ERROR_CODES, typeof TonConnectError>> = {\n [SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR]: UnknownError,\n [SEND_TRANSACTION_ERROR_CODES.USER_REJECTS_ERROR]: UserRejectsError,\n [SEND_TRANSACTION_ERROR_CODES.BAD_REQUEST_ERROR]: BadRequestError,\n [SEND_TRANSACTION_ERROR_CODES.UNKNOWN_APP_ERROR]: UnknownAppError\n};\n\nclass SendTransactionParser extends RpcParser<'sendTransaction'> {\n convertToRpcRequest(\n request: Omit<SendTransactionRequest, 'validUntil'> & { valid_until: number }\n ): WithoutId<SendTransactionRpcRequest> {\n return {\n method: 'sendTransaction',\n params: [JSON.stringify(request)]\n };\n }\n\n parseAndThrowError(response: WithoutId<SendTransactionRpcResponseError>): never {\n let ErrorConstructor: typeof TonConnectError = UnknownError;\n\n if (response.error.code in sendTransactionErrors) {\n ErrorConstructor = sendTransactionErrors[response.error.code] || UnknownError;\n }\n\n throw new ErrorConstructor(response.error.message);\n }\n\n convertFromRpcResponse(\n rpcResponse: WithoutId<SendTransactionRpcResponseSuccess>\n ): SendTransactionResponse {\n return {\n boc: rpcResponse.result\n };\n }\n}\n\nexport const sendTransactionParser = new SendTransactionParser();\n","import { Base64, isNode } from '@tonconnect/protocol';\nimport { TonConnectError } from 'src/errors';\nimport { BridgeIncomingMessage } from 'src/provider/bridge/models/bridge-incomming-message';\nimport { HttpBridgeGatewayStorage } from 'src/storage/http-bridge-gateway-storage';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { addPathToUrl } from 'src/utils/url';\n\nif (isNode()) {\n try {\n eval(\"global.EventSource = require('eventsource')\");\n eval(\"global.fetch = require('node-fetch')\");\n } catch (err) {\n console.error(err);\n }\n}\n\nexport class BridgeGateway {\n private readonly ssePath = 'events';\n\n private readonly postPath = 'message';\n\n private readonly heartbeatMessage = 'heartbeat';\n\n private readonly defaultTtl = 300;\n\n private eventSource: EventSource | undefined;\n\n private isClosed = false;\n\n private readonly bridgeGatewayStorage: HttpBridgeGatewayStorage;\n\n constructor(\n storage: IStorage,\n private readonly bridgeUrl: string,\n public readonly sessionId: string,\n private readonly listener: (msg: BridgeIncomingMessage) => void,\n private readonly errorsListener: (err: Event) => void\n ) {\n this.bridgeGatewayStorage = new HttpBridgeGatewayStorage(storage);\n }\n\n public async registerSession(): Promise<void> {\n const url = new URL(addPathToUrl(this.bridgeUrl, this.ssePath));\n url.searchParams.append('client_id', this.sessionId);\n\n const lastEventId = await this.bridgeGatewayStorage.getLastEventId();\n if (lastEventId) {\n url.searchParams.append('last_event_id', lastEventId);\n }\n\n this.eventSource = new EventSource(url.toString());\n\n return new Promise((resolve, reject) => {\n this.eventSource!.onerror = reject;\n this.eventSource!.onopen! = (): void => {\n this.eventSource!.onerror = this.errorsHandler.bind(this);\n this.eventSource!.onmessage = this.messagesHandler.bind(this);\n resolve();\n };\n });\n }\n\n public async send(message: Uint8Array, receiver: string, ttl?: number): Promise<void> {\n const url = new URL(addPathToUrl(this.bridgeUrl, this.postPath));\n url.searchParams.append('client_id', this.sessionId);\n url.searchParams.append('to', receiver);\n url.searchParams.append('ttl', (ttl || this.defaultTtl).toString());\n await fetch(url, {\n method: 'post',\n body: Base64.encode(message)\n });\n }\n\n public close(): void {\n this.isClosed = true;\n this.eventSource?.close();\n }\n\n private errorsHandler(e: Event): void {\n if (!this.isClosed) {\n if (this.eventSource?.readyState === EventSource.CLOSED) {\n this.eventSource.close();\n this.registerSession();\n return;\n }\n\n if (this.eventSource?.readyState === EventSource.CONNECTING) {\n console.debug('[TON_CONNET_SDK_ERROR]: Bridge error', JSON.stringify(e));\n return;\n }\n\n this.errorsListener(e);\n }\n }\n\n private async messagesHandler(e: MessageEvent<string>): Promise<void> {\n if (e.data === this.heartbeatMessage) {\n return;\n }\n\n await this.bridgeGatewayStorage.storeLastEventId(e.lastEventId);\n\n if (!this.isClosed) {\n let bridgeIncomingMessage: BridgeIncomingMessage;\n\n try {\n bridgeIncomingMessage = JSON.parse(e.data);\n } catch (e) {\n throw new TonConnectError(`Bridge message parse failed, message ${e.data}`);\n }\n\n this.listener(bridgeIncomingMessage);\n }\n }\n}\n","import {\n Base64,\n SessionCrypto,\n AppRequest,\n ConnectRequest,\n RpcMethod,\n WalletEvent,\n WalletResponse,\n WalletMessage,\n hexToByteArray,\n ConnectEventSuccess,\n TonAddressItemReply\n} from '@tonconnect/protocol';\nimport { TonConnectError } from 'src/errors/ton-connect.error';\nimport { WalletConnectionSourceHTTP } from 'src/models/wallet/wallet-connection-source';\nimport { BridgeGateway } from 'src/provider/bridge/bridge-gateway';\nimport { BridgeConnectionHttp } from 'src/provider/bridge/models/bridge-connection';\nimport { BridgeIncomingMessage } from 'src/provider/bridge/models/bridge-incomming-message';\nimport { BridgePartialSession, BridgeSession } from 'src/provider/bridge/models/bridge-session';\nimport { HTTPProvider } from 'src/provider/provider';\nimport { BridgeConnectionStorage } from 'src/storage/bridge-connection-storage';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { WithoutId } from 'src/utils/types';\nimport { PROTOCOL_VERSION } from 'src/resources/protocol';\n\nexport class BridgeProvider implements HTTPProvider {\n public static async fromStorage(storage: IStorage): Promise<BridgeProvider> {\n const bridgeConnectionStorage = new BridgeConnectionStorage(storage);\n const connection = await bridgeConnectionStorage.getHttpConnection();\n return new BridgeProvider(storage, connection.session.walletConnectionSource);\n }\n\n public readonly type = 'http';\n\n private readonly connectionStorage: BridgeConnectionStorage;\n\n private readonly pendingRequests = new Map<\n string,\n (response: WithoutId<WalletResponse<RpcMethod>>) => void\n >();\n\n private nextRequestId = 0;\n\n private session: BridgeSession | BridgePartialSession | null = null;\n\n private bridge: BridgeGateway | null = null;\n\n private listeners: Array<(e: WalletEvent) => void> = [];\n\n constructor(\n private readonly storage: IStorage,\n private readonly walletConnectionSource: WalletConnectionSourceHTTP\n ) {\n this.connectionStorage = new BridgeConnectionStorage(storage);\n }\n\n public connect(message: ConnectRequest): string {\n this.bridge?.close();\n const sessionCrypto = new SessionCrypto();\n\n this.session = {\n sessionCrypto,\n walletConnectionSource: this.walletConnectionSource\n };\n\n this.bridge = new BridgeGateway(\n this.storage,\n this.walletConnectionSource.bridgeUrl,\n sessionCrypto.sessionId,\n this.gatewayListener.bind(this),\n this.gatewayErrorsListener.bind(this)\n );\n this.bridge.registerSession();\n\n return this.generateUniversalLink(message);\n }\n\n public async restoreConnection(): Promise<void> {\n this.bridge?.close();\n const storedConnection = await this.connectionStorage.getHttpConnection();\n if (!storedConnection) {\n return;\n }\n\n this.session = storedConnection.session;\n\n this.bridge = new BridgeGateway(\n this.storage,\n this.walletConnectionSource.bridgeUrl,\n storedConnection.session.sessionCrypto.sessionId,\n this.gatewayListener.bind(this),\n this.gatewayErrorsListener.bind(this)\n );\n\n await this.bridge.registerSession();\n\n this.listeners.forEach(listener => listener(storedConnection.connectEvent));\n }\n\n public sendRequest<T extends RpcMethod>(\n request: WithoutId<AppRequest<T>>\n ): Promise<WithoutId<WalletResponse<T>>> {\n return new Promise((resolve, reject) => {\n const id = this.nextRequestId;\n this.nextRequestId++;\n if (!this.bridge || !this.session || !('walletPublicKey' in this.session)) {\n throw new TonConnectError('Trying to send bridge request without session');\n }\n\n const encodedRequest = this.session!.sessionCrypto.encrypt(\n JSON.stringify({ ...request, id }),\n hexToByteArray(this.session.walletPublicKey)\n );\n\n this.bridge.send(encodedRequest, this.session.walletPublicKey).catch(reject);\n this.pendingRequests.set(id.toString(), resolve);\n });\n }\n\n public closeConnection(): void {\n this.bridge?.close();\n this.listeners = [];\n }\n\n public disconnect(): Promise<void> {\n this.bridge?.close();\n this.listeners = [];\n return this.removeBridgeAndSession();\n }\n\n public listen(callback: (e: WalletEvent) => void): () => void {\n this.listeners.push(callback);\n return () => (this.listeners = this.listeners.filter(listener => listener !== callback));\n }\n\n private async gatewayListener(bridgeIncomingMessage: BridgeIncomingMessage): Promise<void> {\n const walletMessage: WalletMessage = JSON.parse(\n this.session!.sessionCrypto.decrypt(\n Base64.decode(bridgeIncomingMessage.message).toUint8Array(),\n hexToByteArray(bridgeIncomingMessage.from)\n )\n );\n\n if (!('event' in walletMessage)) {\n const id = walletMessage.id.toString();\n const resolve = this.pendingRequests.get(id);\n if (!resolve) {\n throw new TonConnectError(`Response id ${id} doesn't match any request's id`);\n }\n\n resolve(walletMessage);\n this.pendingRequests.delete(id);\n return;\n }\n\n if (walletMessage.event === 'connect') {\n await this.updateSession(walletMessage, bridgeIncomingMessage.from);\n }\n\n if (walletMessage.event === 'disconnect') {\n await this.removeBridgeAndSession();\n }\n\n this.listeners.forEach(listener => listener(walletMessage));\n }\n\n private async gatewayErrorsListener(e: Event): Promise<void> {\n throw new TonConnectError(`Bridge error ${JSON.stringify(e)}`);\n }\n\n private async updateSession(\n connectEvent: ConnectEventSuccess,\n walletPublicKey: string\n ): Promise<void> {\n this.session = {\n ...this.session!,\n walletPublicKey\n };\n\n const tonAddrItem: TonAddressItemReply = connectEvent.payload.items.find(\n item => item.name === 'ton_addr'\n ) as TonAddressItemReply;\n\n const connectEventToSave: BridgeConnectionHttp['connectEvent'] = {\n ...connectEvent,\n payload: {\n ...connectEvent.payload,\n items: [tonAddrItem]\n }\n };\n\n await this.connectionStorage.storeConnection({\n type: 'http',\n session: this.session,\n connectEvent: connectEventToSave\n });\n }\n\n private async removeBridgeAndSession(): Promise<void> {\n this.session = null;\n this.bridge = null;\n await this.connectionStorage.removeConnection();\n }\n\n private generateUniversalLink(message: ConnectRequest): string {\n const url = new URL(this.walletConnectionSource.universalLink);\n url.searchParams.append('v', PROTOCOL_VERSION.toString());\n url.searchParams.append('id', this.session!.sessionCrypto.sessionId);\n url.searchParams.append('r', JSON.stringify(message));\n return url.toString();\n }\n}\n","import { WalletNotInjectedError } from 'src/errors/wallet/wallet-not-injected.error';\nimport {\n AppRequest,\n RpcMethod,\n WalletResponse,\n ConnectRequest,\n WalletEvent,\n ConnectEvent\n} from '@tonconnect/protocol';\nimport { InjectedWalletApi } from 'src/provider/injected/models/injected-wallet-api';\nimport { InternalProvider } from 'src/provider/provider';\nimport { BridgeConnectionStorage } from 'src/storage/bridge-connection-storage';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { WithoutId } from 'src/utils/types';\nimport { getWindow } from 'src/utils/web-api';\nimport { PROTOCOL_VERSION } from 'src/resources/protocol';\n\ntype WindowWithTon<T extends string> = {\n [key in T]: {\n tonconnect: InjectedWalletApi;\n };\n} & Window;\n\nexport class InjectedProvider<T extends string = string> implements InternalProvider {\n private static window = getWindow();\n\n public static async fromStorage(storage: IStorage): Promise<InjectedProvider> {\n const bridgeConnectionStorage = new BridgeConnectionStorage(storage);\n const connection = await bridgeConnectionStorage.getInjectedConnection();\n return new InjectedProvider(connection.jsBridgeKey);\n }\n\n public static isWalletInjected(injectedWalletKey: string): boolean {\n return InjectedProvider.isWindowContainsWallet(this.window, injectedWalletKey);\n }\n\n public static isInsideWalletBrowser(injectedWalletKey: string): boolean {\n if (InjectedProvider.isWindowContainsWallet(this.window, injectedWalletKey)) {\n return this.window[injectedWalletKey]!.tonconnect.isWalletBrowser;\n }\n\n return false;\n }\n\n private static isWindowContainsWallet<T extends string>(\n window: Window | undefined,\n injectedWalletKey: string\n ): window is WindowWithTon<T> {\n return (\n !!window &&\n injectedWalletKey in window &&\n typeof window[injectedWalletKey as keyof Window] === 'object' &&\n 'tonconnect' in window[injectedWalletKey as keyof Window]\n );\n }\n\n public readonly type = 'injected';\n\n private unsubscribeCallback: (() => void) | null = null;\n\n private injectedWallet: InjectedWalletApi;\n\n private listenSubscriptions = false;\n\n private listeners: Array<(e: WalletEvent) => void> = [];\n\n constructor(injectedWalletKey: T) {\n const window: Window | undefined | WindowWithTon<T> = InjectedProvider.window;\n if (!InjectedProvider.isWindowContainsWallet(window, injectedWalletKey)) {\n throw new WalletNotInjectedError();\n }\n\n this.injectedWallet = window[injectedWalletKey]!.tonconnect!;\n }\n\n public connect(message: ConnectRequest, auto = false): void {\n this.injectedWallet\n .connect(PROTOCOL_VERSION, message, auto)\n .then(connectEvent => {\n if (connectEvent.event === 'connect') {\n this.makeSubscriptions();\n this.listenSubscriptions = true;\n }\n this.listeners.forEach(listener => listener(connectEvent));\n })\n .catch(e => {\n const connectEventError: ConnectEvent = {\n event: 'connect_error',\n payload: {\n code: 0,\n message: e?.toString()\n }\n };\n\n this.listeners.forEach(listener => listener(connectEventError));\n });\n }\n\n public async restoreConnection(): Promise<void> {\n try {\n const connectEvent = await this.injectedWallet.restoreConnection();\n if (connectEvent.event === 'connect') {\n this.makeSubscriptions();\n this.listenSubscriptions = true;\n this.listeners.forEach(listener => listener(connectEvent));\n }\n } catch (e) {\n console.error(e);\n }\n }\n\n public closeConnection(): void {\n if (this.listenSubscriptions) {\n this.injectedWallet.disconnect();\n }\n this.closeAllListeners();\n }\n\n public disconnect(): Promise<void> {\n this.closeAllListeners();\n this.injectedWallet.disconnect();\n return Promise.resolve();\n }\n\n private closeAllListeners(): void {\n this.listenSubscriptions = false;\n this.listeners = [];\n this.unsubscribeCallback?.();\n }\n\n public listen(eventsCallback: (e: WalletEvent) => void): () => void {\n this.listeners.push(eventsCallback);\n return () =>\n (this.listeners = this.listeners.filter(listener => listener !== eventsCallback));\n }\n\n public async sendRequest<T extends RpcMethod>(\n request: WithoutId<AppRequest<T>>\n ): Promise<WithoutId<WalletResponse<T>>> {\n return this.injectedWallet.send<T>({ ...request, id: '0' });\n }\n\n private makeSubscriptions(): void {\n this.unsubscribeCallback = this.injectedWallet.listen(e => {\n if (this.listenSubscriptions) {\n this.listeners.forEach(listener => listener(e));\n }\n\n if (e.event === 'disconnect') {\n this.disconnect();\n }\n });\n }\n}\n","export const PROTOCOL_VERSION = 2;\n","import { SessionCrypto } from '@tonconnect/protocol';\nimport { TonConnectError } from 'src/errors';\nimport { BridgeSessionRaw } from 'src/provider/bridge/models/bridge-session-raw';\nimport {\n BridgeConnection,\n BridgeConnectionHttp,\n BridgeConnectionHttpRaw,\n BridgeConnectionInjected,\n BridgeConnectionRaw\n} from 'src/provider/bridge/models/bridge-connection';\nimport { IStorage } from 'src/storage/models/storage.interface';\n\nexport class BridgeConnectionStorage {\n private readonly storeKey = 'ton-connect-storage_bridge-connection';\n\n constructor(private readonly storage: IStorage) {}\n\n public async storeConnection(connection: BridgeConnection): Promise<void> {\n if (connection.type === 'injected') {\n return this.storage.setItem(this.storeKey, JSON.stringify(connection));\n }\n\n const rawSession: BridgeSessionRaw = {\n sessionKeyPair: connection.session.sessionCrypto.stringifyKeypair(),\n walletPublicKey: connection.session.walletPublicKey,\n walletConnectionSource: connection.session.walletConnectionSource\n };\n\n const rawConnection: BridgeConnectionHttpRaw = {\n type: 'http',\n connectEvent: connection.connectEvent,\n session: rawSession\n };\n return this.storage.setItem(this.storeKey, JSON.stringify(rawConnection));\n }\n\n public async removeConnection(): Promise<void> {\n return this.storage.removeItem(this.storeKey);\n }\n\n public async getConnection(): Promise<BridgeConnection | null> {\n const stored = await this.storage.getItem(this.storeKey);\n if (!stored) {\n return null;\n }\n\n const connection: BridgeConnectionRaw = JSON.parse(stored);\n\n if (connection.type === 'injected') {\n return connection;\n }\n\n const sessionCrypto = new SessionCrypto(connection.session.sessionKeyPair);\n return {\n type: 'http',\n connectEvent: connection.connectEvent,\n session: {\n sessionCrypto,\n walletConnectionSource: connection.session.walletConnectionSource,\n walletPublicKey: connection.session.walletPublicKey\n }\n };\n }\n\n public async getHttpConnection(): Promise<BridgeConnectionHttp> {\n const connection = await this.getConnection();\n if (!connection) {\n throw new TonConnectError(\n 'Trying to read HTTP connection source while nothing is stored'\n );\n }\n\n if (connection.type === 'injected') {\n throw new TonConnectError(\n 'Trying to read HTTP connection source while injected connection is stored'\n );\n }\n\n return connection;\n }\n\n public async getInjectedConnection(): Promise<BridgeConnectionInjected> {\n const connection = await this.getConnection();\n\n if (!connection) {\n throw new TonConnectError(\n 'Trying to read Injected bridge connection source while nothing is stored'\n );\n }\n\n if (connection?.type === 'http') {\n throw new TonConnectError(\n 'Trying to read Injected bridge connection source while HTTP connection is stored'\n );\n }\n\n return connection;\n }\n\n public async storedConnectionType(): Promise<BridgeConnection['type'] | null> {\n const stored = await this.storage.getItem(this.storeKey);\n if (!stored) {\n return null;\n }\n const connection: BridgeConnection = JSON.parse(stored);\n return connection.type;\n }\n}\n","import { LocalstorageNotFoundError } from 'src/errors/storage/localstorage-not-found.error';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { getWindow } from 'src/utils/web-api';\n\nexport class DefaultStorage implements IStorage {\n private readonly window: Window;\n\n constructor() {\n const window = getWindow();\n\n if (!window?.localStorage) {\n throw new LocalstorageNotFoundError();\n }\n\n this.window = window;\n }\n\n public async getItem(key: string): Promise<string | null> {\n return Promise.resolve(this.window.localStorage.getItem(key));\n }\n\n public async removeItem(key: string): Promise<void> {\n this.window.localStorage.removeItem(key);\n return Promise.resolve();\n }\n\n setItem(key: string, value: string): Promise<void> {\n this.window.localStorage.setItem(key, value);\n return Promise.resolve();\n }\n}\n","import { IStorage } from 'src/storage/models/storage.interface';\n\nexport class HttpBridgeGatewayStorage {\n private readonly storeKey = 'ton-connect-storage_http-bridge-gateway';\n\n constructor(private readonly storage: IStorage) {}\n\n public async storeLastEventId(lastEventId: string): Promise<void> {\n return this.storage.setItem(this.storeKey, lastEventId);\n }\n\n public async removeLastEventId(): Promise<void> {\n return this.storage.removeItem(this.storeKey);\n }\n\n public async getLastEventId(): Promise<string | null> {\n const stored = await this.storage.getItem(this.storeKey);\n if (!stored) {\n return null;\n }\n\n return stored;\n }\n}\n","import {\n ConnectEventError,\n ConnectEventSuccess,\n ConnectRequest,\n SendTransactionRpcResponseSuccess,\n TonAddressItemReply,\n WalletEvent,\n TonProofItemReply,\n ConnectItem,\n Feature\n} from '@tonconnect/protocol';\nimport { DappMetadataError } from 'src/errors/dapp/dapp-metadata.error';\nimport { ManifestContentErrorError } from 'src/errors/protocol/events/connect/manifest-content-error.error';\nimport { ManifestNotFoundError } from 'src/errors/protocol/events/connect/manifest-not-found.error';\nimport { TonConnectError } from 'src/errors/ton-connect.error';\nimport { WalletAlreadyConnectedError } from 'src/errors/wallet/wallet-already-connected.error';\nimport { WalletNotConnectedError } from 'src/errors/wallet/wallet-not-connected.error';\nimport { WalletNotSupportFeatureError } from 'src/errors/wallet/wallet-not-support-feature.error';\nimport { Account, Wallet, WalletConnectionSource, WalletInfo } from 'src/models';\nimport { SendTransactionRequest, SendTransactionResponse } from 'src/models/methods';\nimport { ConnectAdditionalRequest } from 'src/models/methods/connect/connect-additional-request';\nimport { TonConnectOptions } from 'src/models/ton-connect-options';\nimport {\n isWalletConnectionSourceJS,\n WalletConnectionSourceJS\n} from 'src/models/wallet/wallet-connection-source';\nimport { connectErrorsParser } from 'src/parsers/connect-errors-parser';\nimport { sendTransactionParser } from 'src/parsers/send-transaction-parser';\nimport { BridgeProvider } from 'src/provider/bridge/bridge-provider';\nimport { InjectedProvider } from 'src/provider/injected/injected-provider';\nimport { Provider } from 'src/provider/provider';\nimport { BridgeConnectionStorage } from 'src/storage/bridge-connection-storage';\nimport { DefaultStorage } from 'src/storage/default-storage';\nimport { ITonConnect } from 'src/ton-connect.interface';\nimport { getWebPageManifest } from 'src/utils/web-api';\nimport { WalletsListManager } from 'src/wallets-list-manager';\n\nexport class TonConnect implements ITonConnect {\n private readonly walletsList = new WalletsListManager();\n\n private readonly dappSettings: Required<TonConnectOptions>;\n\n private readonly bridgeConnectionStorage: BridgeConnectionStorage;\n\n private _wallet: Wallet | null = null;\n\n private provider: Provider | null = null;\n\n private statusChangeSubscriptions: ((walletInfo: Wallet | null) => void)[] = [];\n\n private statusChangeErrorSubscriptions: ((err: TonConnectError) => void)[] = [];\n\n /**\n * Shows if the wallet is connected right now.\n */\n public get connected(): boolean {\n return this._wallet !== null;\n }\n\n /**\n * Current connected account or null if no account is connected.\n */\n public get account(): Account | null {\n return this._wallet?.account || null;\n }\n\n /**\n * Current connected wallet or null if no account is connected.\n */\n public get wallet(): Wallet | null {\n return this._wallet;\n }\n\n private set wallet(value: Wallet | null) {\n this._wallet = value;\n this.statusChangeSubscriptions.forEach(callback => callback(this._wallet));\n }\n\n constructor(options?: TonConnectOptions) {\n this.dappSettings = {\n manifestUrl: options?.manifestUrl || getWebPageManifest(),\n storage: options?.storage || new DefaultStorage()\n };\n\n if (!this.dappSettings.manifestUrl) {\n throw new DappMetadataError(\n 'Dapp tonconnect-manifest.json must be specified if window.location.origin is undefined. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest'\n );\n }\n\n this.bridgeConnectionStorage = new BridgeConnectionStorage(this.dappSettings.storage);\n }\n\n /**\n * Returns available wallets list.\n */\n public getWallets(): Promise<WalletInfo[]> {\n return this.walletsList.getWallets();\n }\n\n /**\n * Allows to subscribe to connection status changes and handle connection errors.\n * @param callback will be called after connections status changes with actual wallet or null.\n * @param errorsHandler (optional) will be called with some instance of TonConnectError when connect error is received.\n * @returns unsubscribe callback.\n */\n public onStatusChange(\n callback: (wallet: Wallet | null) => void,\n errorsHandler?: (err: TonConnectError) => void\n ): () => void {\n this.statusChangeSubscriptions.push(callback);\n if (errorsHandler) {\n this.statusChangeErrorSubscriptions.push(errorsHandler);\n }\n\n return () => {\n this.statusChangeSubscriptions = this.statusChangeSubscriptions.filter(\n item => item !== callback\n );\n if (errorsHandler) {\n this.statusChangeErrorSubscriptions = this.statusChangeErrorSubscriptions.filter(\n item => item !== errorsHandler\n );\n }\n };\n }\n\n /**\n * Generates universal link for an external wallet and subscribes to the wallet's bridge, or sends connect request to the injected wallet.\n * @param wallet wallet's bridge url and universal link for an external wallet or jsBridge key for the injected wallet.\n * @param request (optional) additional request to pass to the wallet while connect (currently only ton_proof is available).\n * @returns universal link if external wallet was passed or void for the injected wallet.\n */\n public connect<T extends WalletConnectionSource>(\n wallet: T,\n request?: ConnectAdditionalRequest\n ): T extends WalletConnectionSourceJS ? void : string;\n public connect(\n wallet: WalletConnectionSource,\n request?: ConnectAdditionalRequest\n ): void | string {\n if (this.connected) {\n throw new WalletAlreadyConnectedError();\n }\n\n this.provider?.closeConnection();\n this.provider = this.createProvider(wallet);\n\n return this.provider.connect(this.createConnectRequest(request));\n }\n\n /**\n * Try to restore existing session and reconnect to the corresponding wallet. Call it immediately when your app is loaded.\n */\n public async restoreConnection(): Promise<void> {\n const [bridgeConnectionType, embeddedWallet] = await Promise.all([\n this.bridgeConnectionStorage.storedConnectionType(),\n this.walletsList.getEmbeddedWallet()\n ]);\n\n switch (bridgeConnectionType) {\n case 'http':\n this.provider = await BridgeProvider.fromStorage(this.dappSettings.storage);\n break;\n case 'injected':\n this.provider = await InjectedProvider.fromStorage(this.dappSettings.storage);\n break;\n default:\n if (embeddedWallet) {\n this.provider = await this.createProvider(embeddedWallet);\n } else {\n return;\n }\n }\n\n this.provider.listen(this.walletEventsListener.bind(this));\n return this.provider.restoreConnection();\n }\n\n /**\n * Asks connected wallet to sign and send the transaction.\n * @param transaction transaction to send.\n * @returns signed transaction boc that allows you to find the transaction in the blockchain.\n * If user rejects transaction, method will throw the corresponding error.\n */\n public async sendTransaction(\n transaction: SendTransactionRequest\n ): Promise<SendTransactionResponse> {\n this.checkConnection();\n this.checkFeatureSupport('SendTransaction');\n\n const { validUntil, ...tx } = transaction;\n const response = await this.provider!.sendRequest(\n sendTransactionParser.convertToRpcRequest({ ...tx, valid_until: validUntil })\n );\n\n if (sendTransactionParser.isError(response)) {\n return sendTransactionParser.parseAndThrowError(response);\n }\n\n return sendTransactionParser.convertFromRpcResponse(\n response as SendTransactionRpcResponseSuccess\n );\n }\n\n /**\n * Disconnect form thw connected wallet and drop current session.\n */\n public async disconnect(): Promise<void> {\n if (!this.connected) {\n throw new WalletNotConnectedError();\n }\n await this.provider!.disconnect();\n this.onWalletDisconnected();\n }\n\n private createProvider(wallet: WalletConnectionSource): Provider {\n let provider: Provider;\n\n if (isWalletConnectionSourceJS(wallet)) {\n provider = new InjectedProvider(wallet.jsBridgeKey);\n } else {\n provider = new BridgeProvider(this.dappSettings.storage, wallet);\n }\n\n provider.listen(this.walletEventsListener.bind(this));\n return provider;\n }\n\n private walletEventsListener(e: WalletEvent): void {\n switch (e.event) {\n case 'connect':\n this.onWalletConnected(e.payload);\n break;\n case 'connect_error':\n this.onWalletConnectError(e.payload);\n break;\n case 'disconnect':\n this.onWalletDisconnected();\n }\n }\n\n private onWalletConnected(connectEvent: ConnectEventSuccess['payload']): void {\n const tonAccountItem: TonAddressItemReply | undefined = connectEvent.items.find(\n item => item.name === 'ton_addr'\n ) as TonAddressItemReply | undefined;\n\n const tonProofItem: TonProofItemReply | undefined = connectEvent.items.find(\n item => item.name === 'ton_proof'\n ) as TonProofItemReply | undefined;\n\n if (!tonAccountItem) {\n throw new TonConnectError('ton_addr connection item was not found');\n }\n\n const wallet: Wallet = {\n device: connectEvent.device,\n provider: this.provider!.type,\n account: {\n address: tonAccountItem.address,\n chain: tonAccountItem.network,\n walletStateInit: tonAccountItem.walletStateInit\n }\n };\n\n if (tonProofItem) {\n wallet.connectItems = {\n tonProof: tonProofItem\n };\n }\n\n this.wallet = wallet;\n }\n\n private onWalletConnectError(connectEventError: ConnectEventError['payload']): void {\n const error = connectErrorsParser.parseError(connectEventError);\n this.statusChangeErrorSubscriptions.forEach(errorsHandler => errorsHandler(error));\n\n console.debug(error);\n\n if (error instanceof ManifestNotFoundError || error instanceof ManifestContentErrorError) {\n console.error(error);\n throw error;\n }\n }\n\n private onWalletDisconnected(): void {\n this.wallet = null;\n }\n\n private checkConnection(): void | never {\n if (!this.connected) {\n throw new WalletNotConnectedError();\n }\n }\n\n private checkFeatureSupport(feature: Feature): void | never {\n if (!this.wallet?.device.features.includes(feature)) {\n throw new WalletNotSupportFeatureError();\n }\n }\n\n private createConnectRequest(request?: ConnectAdditionalRequest): ConnectRequest {\n const items: ConnectItem[] = [\n {\n name: 'ton_addr'\n }\n ];\n\n if (request?.tonProof) {\n items.push({\n name: 'ton_proof',\n payload: request.tonProof\n });\n }\n\n return {\n manifestUrl: this.dappSettings.manifestUrl,\n items\n };\n }\n}\n","import { WrongAddressError, ParseHexError } from 'src/errors';\nimport { Base64 } from '@tonconnect/protocol';\n\nexport function toUserFriendlyAddress(hexAddress: string): string {\n const { wc, hex } = parseHexAddress(hexAddress);\n\n const bounceableTag = 0x11;\n const addr = new Int8Array(34);\n addr[0] = bounceableTag;\n addr[1] = wc;\n addr.set(hex, 2);\n\n const addressWithChecksum = new Uint8Array(36);\n addressWithChecksum.set(addr);\n addressWithChecksum.set(crc16(addr), 34);\n\n let addressBase64 = Base64.encode(addressWithChecksum);\n\n return addressBase64.replace(/\\+/g, '-').replace(/\\//g, '_');\n}\n\nfunction parseHexAddress(hexAddress: string): { wc: 0 | -1; hex: Uint8Array } {\n if (!hexAddress.includes(':')) {\n throw new WrongAddressError(`Wrong address ${hexAddress}. Address must include \":\".`);\n }\n\n const parts = hexAddress.split(':');\n if (parts.length !== 2) {\n throw new WrongAddressError(\n `Wrong address ${hexAddress}. Address must include \":\" only once.`\n );\n }\n\n const wc = parseInt(parts[0]!);\n if (wc !== 0 && wc !== -1) {\n throw new WrongAddressError(\n `Wrong address ${hexAddress}. WC must be eq 0 or -1, but ${wc} received.`\n );\n }\n\n const hex = parts[1];\n if (hex?.length !== 64) {\n throw new WrongAddressError(\n `Wrong address ${hexAddress}. Hex part must be 64bytes length, but ${hex?.length} received.`\n );\n }\n\n return {\n wc,\n hex: hexToBytes(hex)\n };\n}\n\nfunction crc16(data: ArrayLike<number>): Uint8Array {\n const poly = 0x1021;\n let reg = 0;\n const message = new Uint8Array(data.length + 2);\n message.set(data);\n for (let byte of message) {\n let mask = 0x80;\n while (mask > 0) {\n reg <<= 1;\n if (byte & mask) {\n reg += 1;\n }\n mask >>= 1;\n if (reg > 0xffff) {\n reg &= 0xffff;\n reg ^= poly;\n }\n }\n }\n return new Uint8Array([Math.floor(reg / 256), reg % 256]);\n}\n\nconst toByteMap: Record<string, number> = {};\nfor (let ord = 0; ord <= 0xff; ord++) {\n let s = ord.toString(16);\n if (s.length < 2) {\n s = '0' + s;\n }\n toByteMap[s] = ord;\n}\n\nfunction hexToBytes(hex: string): Uint8Array {\n hex = hex.toLowerCase();\n const length2 = hex.length;\n if (length2 % 2 !== 0) {\n throw new ParseHexError('Hex string must have length a multiple of 2: ' + hex);\n }\n const length = length2 / 2;\n const result = new Uint8Array(length);\n for (let i = 0; i < length; i++) {\n const doubled = i * 2;\n const hexSubstring = hex.substring(doubled, doubled + 2);\n if (!toByteMap.hasOwnProperty(hexSubstring)) {\n throw new ParseHexError('Invalid hex character: ' + hexSubstring);\n }\n result[i] = toByteMap[hexSubstring]!;\n }\n return result;\n}\n","export function removeUrlLastSlash(url: string): string {\n if (url.slice(-1) === '/') {\n return url.slice(0, -1);\n }\n\n return url;\n}\n\nexport function addPathToUrl(url: string, path: string): string {\n return removeUrlLastSlash(url) + '/' + path;\n}\n","export function getWindow(): Window | undefined {\n if (typeof window === 'undefined') {\n return undefined;\n }\n\n return window;\n}\n\nexport function getDocument(): Document | undefined {\n if (typeof document === 'undefined') {\n return undefined;\n }\n\n return document;\n}\n\nexport function getWebPageManifest(): string {\n const origin = getWindow()?.location.origin;\n if (origin) {\n return origin + '/tonconnect-manifest.json';\n }\n\n return '';\n}\n","import { FetchWalletsError } from 'src/errors/wallets-manager/fetch-wallets.error';\nimport {\n WalletInfoRemote,\n WalletInfoInjected,\n WalletInfo,\n WalletInfoDTO,\n isWalletInfoInjected\n} from 'src/models/wallet/wallet-info';\nimport { InjectedProvider } from 'src/provider/injected/injected-provider';\n\nexport class WalletsListManager {\n private walletsListCache: Promise<WalletInfo[]> | null = null;\n\n private readonly walletsListSource =\n 'https://raw.githubusercontent.com/ton-connect/wallets-list/main/wallets.json';\n\n public async getWallets(): Promise<WalletInfo[]> {\n if (!this.walletsListCache) {\n this.walletsListCache = this.fetchWalletsList();\n this.walletsListCache.catch(() => (this.walletsListCache = null));\n }\n\n return this.walletsListCache;\n }\n\n public async getEmbeddedWallet(): Promise<WalletInfoInjected | null> {\n const walletsList = await this.getWallets();\n const injectedWallets = walletsList.filter(isWalletInfoInjected);\n\n if (injectedWallets.length !== 1) {\n return null;\n }\n\n return injectedWallets[0]!.embedded ? injectedWallets[0]! : null;\n }\n\n private async fetchWalletsList(): Promise<WalletInfo[]> {\n try {\n const walletsResponse = await fetch(this.walletsListSource);\n const walletsList: WalletInfoDTO[] = await walletsResponse.json();\n\n if (\n !Array.isArray(walletsList) ||\n !walletsList.every(wallet => this.isCorrectWalletConfigDTO(wallet))\n ) {\n throw new FetchWalletsError('Wrong wallets list format');\n }\n\n return this.walletConfigDTOListToWalletConfigList(walletsList);\n } catch (e) {\n throw new FetchWalletsError(e);\n }\n }\n\n private walletConfigDTOListToWalletConfigList(walletConfigDTO: WalletInfoDTO[]): WalletInfo[] {\n return walletConfigDTO.map(walletConfigDTO => {\n const walletConfig: WalletInfo = {\n name: walletConfigDTO.name,\n imageUrl: walletConfigDTO.image,\n aboutUrl: walletConfigDTO.about_url,\n tondns: walletConfigDTO.tondns\n } as WalletInfo;\n\n walletConfigDTO.bridge.forEach(bridge => {\n if (bridge.type === 'sse') {\n (walletConfig as WalletInfoRemote).bridgeUrl = bridge.url;\n (walletConfig as WalletInfoRemote).universalLink =\n walletConfigDTO.universal_url;\n (walletConfig as WalletInfoRemote).deepLink = walletConfigDTO.deepLink;\n }\n\n if (bridge.type === 'js') {\n const jsBridgeKey = bridge.key;\n (walletConfig as WalletInfoInjected).jsBridgeKey = jsBridgeKey;\n (walletConfig as WalletInfoInjected).injected =\n InjectedProvider.isWalletInjected(jsBridgeKey);\n (walletConfig as WalletInfoInjected).embedded =\n InjectedProvider.isInsideWalletBrowser(jsBridgeKey);\n }\n });\n\n return walletConfig;\n });\n }\n\n private isCorrectWalletConfigDTO(value: unknown): value is WalletInfoDTO {\n if (!value || !(typeof value === 'object')) {\n return false;\n }\n\n const containsName = 'name' in value;\n const containsImage = 'image' in value;\n const containsAbout = 'about_url' in value;\n\n if (!containsName || !containsImage || !containsAbout) {\n return false;\n }\n\n if (\n !('bridge' in value) ||\n !Array.isArray((value as { bridge: unknown }).bridge) ||\n !(value as { bridge: unknown[] }).bridge.length\n ) {\n return false;\n }\n\n const bridge = (value as { bridge: unknown[] }).bridge;\n\n if (bridge.some(item => !item || typeof item !== 'object' || !('type' in item))) {\n return false;\n }\n\n const sseBridge = bridge.find(item => (item as { type: string }).type === 'sse');\n\n if (sseBridge) {\n if (\n !('url' in sseBridge) ||\n !(sseBridge as { url: string }).url ||\n !(value as { universal_url: string }).universal_url\n ) {\n return false;\n }\n }\n\n const jsBridge = bridge.find(item => (item as { type: string }).type === 'js');\n\n if (jsBridge) {\n if (!('key' in jsBridge) || !(jsBridge as { key: string }).key) {\n return false;\n }\n }\n\n return true;\n }\n}\n","// Written in 2014-2016 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n(function(root, f) {\n 'use strict';\n if (typeof module !== 'undefined' && module.exports) module.exports = f();\n else if (root.nacl) root.nacl.util = f();\n else {\n root.nacl = {};\n root.nacl.util = f();\n }\n}(this, function() {\n 'use strict';\n\n var util = {};\n\n function validateBase64(s) {\n if (!(/^(?:[A-Za-z0-9+\\/]{2}[A-Za-z0-9+\\/]{2})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/.test(s))) {\n throw new TypeError('invalid encoding');\n }\n }\n\n util.decodeUTF8 = function(s) {\n if (typeof s !== 'string') throw new TypeError('expected string');\n var i, d = unescape(encodeURIComponent(s)), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n util.encodeUTF8 = function(arr) {\n var i, s = [];\n for (i = 0; i < arr.length; i++) s.push(String.fromCharCode(arr[i]));\n return decodeURIComponent(escape(s.join('')));\n };\n\n if (typeof atob === 'undefined') {\n // Node.js\n\n if (typeof Buffer.from !== 'undefined') {\n // Node v6 and later\n util.encodeBase64 = function (arr) { // v6 and later\n return Buffer.from(arr).toString('base64');\n };\n\n util.decodeBase64 = function (s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(Buffer.from(s, 'base64'), 0));\n };\n\n } else {\n // Node earlier than v6\n util.encodeBase64 = function (arr) { // v6 and later\n return (new Buffer(arr)).toString('base64');\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(new Buffer(s, 'base64'), 0));\n };\n }\n\n } else {\n // Browsers\n\n util.encodeBase64 = function(arr) {\n var i, s = [], len = arr.length;\n for (i = 0; i < len; i++) s.push(String.fromCharCode(arr[i]));\n return btoa(s.join(''));\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n var i, d = atob(s), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n }\n\n return util;\n\n}));\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionCrypto = void 0;\nvar session_crypto_1 = require(\"./session-crypto\");\nObject.defineProperty(exports, \"SessionCrypto\", { enumerable: true, get: function () { return session_crypto_1.SessionCrypto; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionCrypto = void 0;\nconst utils_1 = require(\"../utils\");\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nif ((0, utils_1.isNode)()) {\n try {\n eval(\"global.crypto = require('crypto').webcrypto\");\n }\n catch (err) { }\n}\nclass SessionCrypto {\n constructor(keyPair) {\n this.nonceLength = 24;\n this.keyPair = keyPair ? this.createKeypairFromString(keyPair) : this.createKeypair();\n this.sessionId = (0, utils_1.toHexString)(this.keyPair.publicKey);\n }\n createKeypair() {\n return tweetnacl_1.default.box.keyPair();\n }\n createKeypairFromString(keyPair) {\n return {\n publicKey: (0, utils_1.hexToByteArray)(keyPair.publicKey),\n secretKey: (0, utils_1.hexToByteArray)(keyPair.secretKey)\n };\n }\n createNonce() {\n const buffer = new Uint8Array(this.nonceLength);\n return crypto.getRandomValues(buffer);\n }\n encrypt(message, receiverPublicKey) {\n const encodedMessage = new TextEncoder().encode(message);\n const nonce = this.createNonce();\n const encrypted = tweetnacl_1.default.box(encodedMessage, nonce, receiverPublicKey, this.keyPair.secretKey);\n return (0, utils_1.concatUint8Arrays)(nonce, encrypted);\n }\n decrypt(message, senderPublicKey) {\n const [nonce, internalMessage] = (0, utils_1.splitToUint8Arrays)(message, this.nonceLength);\n const decrypted = tweetnacl_1.default.box.open(internalMessage, nonce, senderPublicKey, this.keyPair.secretKey);\n if (!decrypted) {\n throw new Error('Decryption error');\n }\n return new TextDecoder().decode(decrypted);\n }\n stringifyKeypair() {\n return {\n publicKey: (0, utils_1.toHexString)(this.keyPair.publicKey),\n secretKey: (0, utils_1.toHexString)(this.keyPair.secretKey)\n };\n }\n}\nexports.SessionCrypto = SessionCrypto;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./models\"), exports);\n__exportStar(require(\"./crypto\"), exports);\n__exportStar(require(\"./utils\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHAIN = void 0;\nvar CHAIN;\n(function (CHAIN) {\n CHAIN[\"MAINNET\"] = \"-239\";\n CHAIN[\"TESTNET\"] = \"-3\";\n})(CHAIN = exports.CHAIN || (exports.CHAIN = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./request\"), exports);\n__exportStar(require(\"./connect-request\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHAIN = void 0;\n__exportStar(require(\"./app-message\"), exports);\n__exportStar(require(\"./wallet-message\"), exports);\nvar CHAIN_1 = require(\"./CHAIN\");\nObject.defineProperty(exports, \"CHAIN\", { enumerable: true, get: function () { return CHAIN_1.CHAIN; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./wallet-event\"), exports);\n__exportStar(require(\"./wallet-response\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CONNECT_ITEM_ERROR_CODES = exports.CONNECT_EVENT_ERROR_CODES = void 0;\nvar CONNECT_EVENT_ERROR_CODES;\n(function (CONNECT_EVENT_ERROR_CODES) {\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"UNKNOWN_ERROR\"] = 0] = \"UNKNOWN_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"BAD_REQUEST_ERROR\"] = 1] = \"BAD_REQUEST_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"MANIFEST_NOT_FOUND_ERROR\"] = 2] = \"MANIFEST_NOT_FOUND_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"MANIFEST_CONTENT_ERROR\"] = 3] = \"MANIFEST_CONTENT_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"UNKNOWN_APP_ERROR\"] = 100] = \"UNKNOWN_APP_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"USER_REJECTS_ERROR\"] = 300] = \"USER_REJECTS_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"METHOD_NOT_SUPPORTED\"] = 400] = \"METHOD_NOT_SUPPORTED\";\n})(CONNECT_EVENT_ERROR_CODES = exports.CONNECT_EVENT_ERROR_CODES || (exports.CONNECT_EVENT_ERROR_CODES = {}));\nvar CONNECT_ITEM_ERROR_CODES;\n(function (CONNECT_ITEM_ERROR_CODES) {\n CONNECT_ITEM_ERROR_CODES[CONNECT_ITEM_ERROR_CODES[\"UNKNOWN_ERROR\"] = 0] = \"UNKNOWN_ERROR\";\n CONNECT_ITEM_ERROR_CODES[CONNECT_ITEM_ERROR_CODES[\"METHOD_NOT_SUPPORTED\"] = 400] = \"METHOD_NOT_SUPPORTED\";\n})(CONNECT_ITEM_ERROR_CODES = exports.CONNECT_ITEM_ERROR_CODES || (exports.CONNECT_ITEM_ERROR_CODES = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CONNECT_EVENT_ERROR_CODES = void 0;\nvar connect_event_1 = require(\"./connect-event\");\nObject.defineProperty(exports, \"CONNECT_EVENT_ERROR_CODES\", { enumerable: true, get: function () { return connect_event_1.CONNECT_EVENT_ERROR_CODES; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SEND_TRANSACTION_ERROR_CODES = void 0;\nvar send_transaction_rpc_response_1 = require(\"./send-transaction-rpc-response\");\nObject.defineProperty(exports, \"SEND_TRANSACTION_ERROR_CODES\", { enumerable: true, get: function () { return send_transaction_rpc_response_1.SEND_TRANSACTION_ERROR_CODES; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SEND_TRANSACTION_ERROR_CODES = void 0;\nvar SEND_TRANSACTION_ERROR_CODES;\n(function (SEND_TRANSACTION_ERROR_CODES) {\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"UNKNOWN_ERROR\"] = 0] = \"UNKNOWN_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"BAD_REQUEST_ERROR\"] = 1] = \"BAD_REQUEST_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"UNKNOWN_APP_ERROR\"] = 100] = \"UNKNOWN_APP_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"USER_REJECTS_ERROR\"] = 300] = \"USER_REJECTS_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"METHOD_NOT_SUPPORTED\"] = 400] = \"METHOD_NOT_SUPPORTED\";\n})(SEND_TRANSACTION_ERROR_CODES = exports.SEND_TRANSACTION_ERROR_CODES || (exports.SEND_TRANSACTION_ERROR_CODES = {}));\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Base64 = void 0;\nconst tweetnacl_util_1 = __importDefault(require(\"tweetnacl-util\"));\nfunction encodeUint8Array(value, urlSafe) {\n const encoded = tweetnacl_util_1.default.encodeBase64(value);\n if (!urlSafe) {\n return encoded;\n }\n return encodeURIComponent(encoded);\n}\nfunction decodeToUint8Array(value, urlSafe) {\n if (urlSafe) {\n value = decodeURIComponent(value);\n }\n return tweetnacl_util_1.default.decodeBase64(value);\n}\nfunction encode(value, urlSafe = false) {\n let uint8Array;\n if (value instanceof Uint8Array) {\n uint8Array = value;\n }\n else {\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n uint8Array = tweetnacl_util_1.default.decodeUTF8(value);\n }\n return encodeUint8Array(uint8Array, urlSafe);\n}\nfunction decode(value, urlSafe = false) {\n const decodedUint8Array = decodeToUint8Array(value, urlSafe);\n return {\n toString() {\n return tweetnacl_util_1.default.encodeUTF8(decodedUint8Array);\n },\n toObject() {\n try {\n return JSON.parse(tweetnacl_util_1.default.encodeUTF8(decodedUint8Array));\n }\n catch (e) {\n return null;\n }\n },\n toUint8Array() {\n return decodedUint8Array;\n }\n };\n}\nexports.Base64 = {\n encode,\n decode\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hexToByteArray = exports.toHexString = exports.splitToUint8Arrays = exports.concatUint8Arrays = void 0;\nfunction concatUint8Arrays(buffer1, buffer2) {\n const mergedArray = new Uint8Array(buffer1.length + buffer2.length);\n mergedArray.set(buffer1);\n mergedArray.set(buffer2, buffer1.length);\n return mergedArray;\n}\nexports.concatUint8Arrays = concatUint8Arrays;\nfunction splitToUint8Arrays(array, index) {\n if (index >= array.length) {\n throw new Error('Index is out of buffer');\n }\n const subArray1 = array.slice(0, index);\n const subArray2 = array.slice(index);\n return [subArray1, subArray2];\n}\nexports.splitToUint8Arrays = splitToUint8Arrays;\nfunction toHexString(byteArray) {\n let hexString = '';\n byteArray.forEach(byte => {\n hexString += ('0' + (byte & 0xff).toString(16)).slice(-2);\n });\n return hexString;\n}\nexports.toHexString = toHexString;\nfunction hexToByteArray(hexString) {\n if (hexString.length % 2 !== 0) {\n throw new Error(`Cannot convert ${hexString} to bytesArray`);\n }\n const result = new Uint8Array(hexString.length / 2);\n for (let i = 0; i < hexString.length; i += 2) {\n result[i / 2] = parseInt(hexString.slice(i, i + 2), 16);\n }\n return result;\n}\nexports.hexToByteArray = hexToByteArray;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNode = exports.hexToByteArray = exports.toHexString = exports.splitToUint8Arrays = exports.concatUint8Arrays = exports.Base64 = void 0;\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"Base64\", { enumerable: true, get: function () { return base64_1.Base64; } });\nvar binary_1 = require(\"./binary\");\nObject.defineProperty(exports, \"concatUint8Arrays\", { enumerable: true, get: function () { return binary_1.concatUint8Arrays; } });\nObject.defineProperty(exports, \"splitToUint8Arrays\", { enumerable: true, get: function () { return binary_1.splitToUint8Arrays; } });\nObject.defineProperty(exports, \"toHexString\", { enumerable: true, get: function () { return binary_1.toHexString; } });\nObject.defineProperty(exports, \"hexToByteArray\", { enumerable: true, get: function () { return binary_1.hexToByteArray; } });\nvar web_api_1 = require(\"./web-api\");\nObject.defineProperty(exports, \"isNode\", { enumerable: true, get: function () { return web_api_1.isNode; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNode = void 0;\nfunction isNode() {\n return (typeof process !== 'undefined' && process.versions != null && process.versions.node != null);\n}\nexports.isNode = isNode;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(4027);\n"],"names":["WrongAddressError","TonConnectError","constructor","args","super","Object","setPrototypeOf","this","prototype","Base64EncodeError","ParseHexError","DappMetadataError","UnknownError","UserRejectsError","ManifestContentErrorError","message","additionalMessage","ManifestNotFoundError","BadRequestError","UnknownAppError","LocalstorageNotFoundError","Error","options","prefix","WalletAlreadyConnectedError","WalletNotConnectedError","WalletNotInjectedError","WalletNotSupportFeatureError","FetchWalletsError","TonConnect","CHAIN","toUserFriendlyAddress","isWalletInfoInjected","value","connectEventErrorsCodes","CONNECT_EVENT_ERROR_CODES","UNKNOWN_ERROR","USER_REJECTS_ERROR","BAD_REQUEST_ERROR","UNKNOWN_APP_ERROR","MANIFEST_NOT_FOUND_ERROR","MANIFEST_CONTENT_ERROR","connectErrorsParser","parseError","error","ErrorConstructor","code","isError","response","sendTransactionErrors","SEND_TRANSACTION_ERROR_CODES","SendTransactionParser","RpcParser","convertToRpcRequest","request","method","params","JSON","stringify","parseAndThrowError","convertFromRpcResponse","rpcResponse","boc","result","sendTransactionParser","isNode","eval","err","console","BridgeGateway","storage","bridgeUrl","sessionId","listener","errorsListener","ssePath","postPath","heartbeatMessage","defaultTtl","isClosed","bridgeGatewayStorage","HttpBridgeGatewayStorage","registerSession","url","URL","addPathToUrl","searchParams","append","lastEventId","getLastEventId","eventSource","EventSource","toString","Promise","resolve","reject","onerror","onopen","errorsHandler","bind","onmessage","messagesHandler","send","receiver","ttl","fetch","body","Base64","encode","close","e","readyState","CLOSED","CONNECTING","debug","data","storeLastEventId","bridgeIncomingMessage","parse","BridgeProvider","walletConnectionSource","type","pendingRequests","Map","nextRequestId","session","bridge","listeners","connectionStorage","BridgeConnectionStorage","static","bridgeConnectionStorage","connection","getHttpConnection","connect","sessionCrypto","SessionCrypto","gatewayListener","gatewayErrorsListener","generateUniversalLink","restoreConnection","storedConnection","forEach","connectEvent","sendRequest","id","encodedRequest","encrypt","hexToByteArray","walletPublicKey","catch","set","closeConnection","disconnect","removeBridgeAndSession","listen","callback","push","filter","walletMessage","decrypt","decode","toUint8Array","from","get","delete","event","updateSession","tonAddrItem","payload","items","find","item","name","connectEventToSave","storeConnection","removeConnection","universalLink","PROTOCOL_VERSION","InjectedProvider","injectedWalletKey","unsubscribeCallback","listenSubscriptions","window","isWindowContainsWallet","injectedWallet","tonconnect","getInjectedConnection","jsBridgeKey","isWalletBrowser","auto","then","makeSubscriptions","connectEventError","closeAllListeners","eventsCallback","getWindow","storeKey","setItem","rawSession","sessionKeyPair","stringifyKeypair","rawConnection","removeItem","getConnection","stored","getItem","storedConnectionType","localStorage","key","removeLastEventId","walletsList","WalletsListManager","_wallet","provider","statusChangeSubscriptions","statusChangeErrorSubscriptions","dappSettings","manifestUrl","getWebPageManifest","DefaultStorage","connected","account","wallet","getWallets","onStatusChange","createProvider","createConnectRequest","bridgeConnectionType","embeddedWallet","all","getEmbeddedWallet","fromStorage","walletEventsListener","sendTransaction","transaction","checkConnection","checkFeatureSupport","validUntil","tx","valid_until","onWalletDisconnected","isWalletConnectionSourceJS","onWalletConnected","onWalletConnectError","tonAccountItem","tonProofItem","device","address","chain","network","walletStateInit","connectItems","tonProof","feature","features","includes","hexAddress","wc","hex","parts","split","length","parseInt","hexToBytes","parseHexAddress","addr","Int8Array","addressWithChecksum","Uint8Array","reg","byte","mask","Math","floor","crc16","replace","toByteMap","ord","s","length2","toLowerCase","i","doubled","hexSubstring","substring","hasOwnProperty","removeUrlLastSlash","slice","path","document","origin","location","walletsListCache","walletsListSource","fetchWalletsList","injectedWallets","embedded","walletsResponse","json","Array","isArray","every","isCorrectWalletConfigDTO","walletConfigDTOListToWalletConfigList","walletConfigDTO","map","walletConfig","imageUrl","image","aboutUrl","about_url","tondns","universal_url","deepLink","injected","isWalletInjected","isInsideWalletBrowser","some","sseBridge","jsBridge","root","f","module","exports","nacl","util","validateBase64","test","TypeError","decodeUTF8","d","unescape","encodeURIComponent","b","charCodeAt","encodeUTF8","arr","String","fromCharCode","decodeURIComponent","escape","join","atob","Buffer","encodeBase64","decodeBase64","call","len","btoa","gf","init","r","Float64Array","randombytes","_0","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","x","h","l","vn","xi","y","yi","n","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","out","inp","k","c","o","p","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","m","mpos","z","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","buffer","Uint16Array","pad","leftover","fin","crypto_onetimeauth","outpos","update","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","a","car25519","v","sel25519","q","t","pack25519","j","neq25519","par25519","unpack25519","A","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","x32","subarray","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","blocks","bytes","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","g","want","crypto_box_afternm","crypto_box_open_afternm","K","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hash","add","cswap","pack","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","carry","reduce","crypto_sign","sm","smlen","crypto_sign_open","chk","num","den","den2","den4","den6","unpackneg","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","arguments","cleanup","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_secretbox_BOXZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","randomBytes","secretbox","msg","nonce","open","box","keyLength","nonceLength","overheadLength","scalarMult","base","scalarLength","groupElementLength","publicKey","secretKey","before","checkBoxLengths","after","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","sign","signedMsg","tmp","mlen","detached","sig","verify","fromSeed","seed","seedLength","signatureLength","hash","hashLength","setPRNG","fn","crypto","self","msCrypto","getRandomValues","min","defineProperty","session_crypto_1","enumerable","__importDefault","mod","__esModule","utils_1","tweetnacl_1","createKeypairFromString","createKeypair","toHexString","default","createNonce","receiverPublicKey","encodedMessage","TextEncoder","encrypted","concatUint8Arrays","senderPublicKey","internalMessage","splitToUint8Arrays","decrypted","TextDecoder","__createBinding","create","k2","undefined","desc","getOwnPropertyDescriptor","writable","configurable","__exportStar","CHAIN_1","CONNECT_ITEM_ERROR_CODES","connect_event_1","send_transaction_rpc_response_1","tweetnacl_util_1","urlSafe","uint8Array","encoded","encodeUint8Array","decodedUint8Array","decodeToUint8Array","toObject","buffer1","buffer2","mergedArray","array","index","byteArray","hexString","base64_1","binary_1","web_api_1","process","versions","node","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__webpack_exports__"],"sourceRoot":""}
|