From c2777b56b34118786b956042058228e26d5f298e Mon Sep 17 00:00:00 2001 From: FedericoAmura Date: Tue, 1 Oct 2024 18:54:26 +0200 Subject: [PATCH 1/4] feat: remove vanilla js instructions and their necessary global scope litnodeclient export --- packages/access-control-conditions/README.md | 9 - packages/auth-browser/README.md | 9 - packages/auth-helpers/README.md | 9 - packages/constants/README.md | 9 - packages/contracts-sdk/README.md | 16 +- packages/crypto/README.md | 9 - packages/encryption/README.md | 9 - packages/lit-node-client-nodejs/src/index.ts | 14 -- packages/lit-node-client/README.md | 9 - packages/lit-node-client/src/index.ts | 14 -- packages/misc-browser/README.md | 9 - packages/misc/README.md | 9 - packages/nacl/README.md | 9 - packages/pkp-base/README.md | 9 - packages/uint8arrays/README.md | 9 - tools/scripts/gen-utils.mjs | 168 ------------------- 16 files changed, 1 insertion(+), 319 deletions(-) delete mode 100644 tools/scripts/gen-utils.mjs diff --git a/packages/access-control-conditions/README.md b/packages/access-control-conditions/README.md index 28dc06d302..0a207960e9 100644 --- a/packages/access-control-conditions/README.md +++ b/packages/access-control-conditions/README.md @@ -7,12 +7,3 @@ This submodule provides functionalities for formatting and canonicalizing data, ``` yarn add @lit-protocol/access-control-conditions ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/packages/auth-browser/README.md b/packages/auth-browser/README.md index 273496264c..4daea68c8c 100644 --- a/packages/auth-browser/README.md +++ b/packages/auth-browser/README.md @@ -8,15 +8,6 @@ This submodule provides functionalities from various modules within the Lit SDK, yarn add @lit-protocol/auth-browser ``` -### Vanilla JS (UMD) - -```js - - -``` - ## Generate an authSig with long expiration ``` diff --git a/packages/auth-helpers/README.md b/packages/auth-helpers/README.md index 26afc96f27..440c2d3e23 100644 --- a/packages/auth-helpers/README.md +++ b/packages/auth-helpers/README.md @@ -7,12 +7,3 @@ This submodule manages permissions and capabilities related to accessing specifi ``` yarn add @lit-protocol/auth-helpers ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/packages/constants/README.md b/packages/constants/README.md index 80aab1d4dd..d32b5254e6 100644 --- a/packages/constants/README.md +++ b/packages/constants/README.md @@ -7,12 +7,3 @@ This submodule exports various modules, constants, interfaces, errors, utilities ``` yarn add @lit-protocol/constants ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/packages/contracts-sdk/README.md b/packages/contracts-sdk/README.md index ade10b2923..214248db11 100644 --- a/packages/contracts-sdk/README.md +++ b/packages/contracts-sdk/README.md @@ -6,22 +6,8 @@ Demo: https://demo-contracts-sdk-react.vercel.app/ # Installation -```js -yarn add @lit-protocol/contracts-sdk ``` - -# Vanilla JS (UMD) - -```html - - +yarn add @lit-protocol/contracts-sdk ``` # Quick Start diff --git a/packages/crypto/README.md b/packages/crypto/README.md index ca2c3bc468..f7cb8d8f30 100644 --- a/packages/crypto/README.md +++ b/packages/crypto/README.md @@ -7,12 +7,3 @@ The crypto.ts file in the Lit SDK handles cryptographic operations, including th ``` yarn add @lit-protocol/crypto ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/packages/encryption/README.md b/packages/encryption/README.md index 821bca6bbc..82cd8d9b38 100644 --- a/packages/encryption/README.md +++ b/packages/encryption/README.md @@ -7,12 +7,3 @@ This submodule provides encryption and decryption of contents (string, file, etc ``` yarn add @lit-protocol/encryption ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/packages/lit-node-client-nodejs/src/index.ts b/packages/lit-node-client-nodejs/src/index.ts index e84cb24cc7..bbe72272e2 100644 --- a/packages/lit-node-client-nodejs/src/index.ts +++ b/packages/lit-node-client-nodejs/src/index.ts @@ -1,19 +1,5 @@ import 'cross-fetch/dist/node-polyfill.js'; -import * as _LitNodeClientNodeJs from './lib/lit-node-client-nodejs'; -// ==================== Environment ==================== - -declare global { - // This `declare global` hackery _must_ use var to work. - // eslint-disable-next-line no-var, @typescript-eslint/no-explicit-any - var LitNodeClientNodeJs: any; -} - -const LitNodeClientNodeJs = _LitNodeClientNodeJs.LitNodeClientNodeJs; -if (!globalThis.LitNodeClientNodeJs) { - globalThis.LitNodeClientNodeJs = LitNodeClientNodeJs; -} - // ==================== Exports ==================== export * from './lib/lit-node-client-nodejs'; diff --git a/packages/lit-node-client/README.md b/packages/lit-node-client/README.md index e20e4656b2..86ee2ff17e 100644 --- a/packages/lit-node-client/README.md +++ b/packages/lit-node-client/README.md @@ -7,12 +7,3 @@ This module is the main module of this monorepo. It sets a default authenticatio ``` yarn add @lit-protocol/lit-node-client ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/packages/lit-node-client/src/index.ts b/packages/lit-node-client/src/index.ts index 5550589b19..534a93b50a 100644 --- a/packages/lit-node-client/src/index.ts +++ b/packages/lit-node-client/src/index.ts @@ -1,18 +1,4 @@ -import * as _LitNodeClient from './lib/lit-node-client'; - -declare global { - // This `var` is necessary for global hackery - // eslint-disable-next-line no-var, @typescript-eslint/no-explicit-any - var LitNodeClient: any; -} - -const LitNodeClient = _LitNodeClient.LitNodeClient; -if (!globalThis.LitNodeClient) { - globalThis.LitNodeClient = LitNodeClient; -} - // ==================== Exports ==================== - export * from './lib/lit-node-client'; export { diff --git a/packages/misc-browser/README.md b/packages/misc-browser/README.md index 22c3454e4a..dd282b9528 100644 --- a/packages/misc-browser/README.md +++ b/packages/misc-browser/README.md @@ -7,12 +7,3 @@ This submodule includes functions for interaction with local storage (get, set, ``` yarn add @lit-protocol/misc-browser ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/packages/misc/README.md b/packages/misc/README.md index 88853a1112..381773dbee 100644 --- a/packages/misc/README.md +++ b/packages/misc/README.md @@ -7,12 +7,3 @@ This submodule contains various utility functions for error handling, logging, t ``` yarn add @lit-protocol/misc ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/packages/nacl/README.md b/packages/nacl/README.md index 4874f9d584..9e0511c571 100644 --- a/packages/nacl/README.md +++ b/packages/nacl/README.md @@ -7,12 +7,3 @@ re-export of https://www.npmjs.com/package/nacl ``` yarn add @lit-protocol/nacl ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/packages/pkp-base/README.md b/packages/pkp-base/README.md index 2482e597ba..3580e77099 100644 --- a/packages/pkp-base/README.md +++ b/packages/pkp-base/README.md @@ -20,12 +20,3 @@ This submodule defines a PKPBase class, providing shared wallet functionality fo ``` yarn add @lit-protocol/pkp-base ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/packages/uint8arrays/README.md b/packages/uint8arrays/README.md index f5c6252183..a97c419da8 100644 --- a/packages/uint8arrays/README.md +++ b/packages/uint8arrays/README.md @@ -12,12 +12,3 @@ Here are the two main functions: ``` yarn add @lit-protocol/uint8array ``` - -### Vanilla JS (UMD) - -```js - - -``` diff --git a/tools/scripts/gen-utils.mjs b/tools/scripts/gen-utils.mjs deleted file mode 100644 index 1b1a6307fd..0000000000 --- a/tools/scripts/gen-utils.mjs +++ /dev/null @@ -1,168 +0,0 @@ -export const GEN_STYLE = ` -`; - -export const GEN_FOOTER_SCRIPTS = ` -`; - -/** -// --- Template look something like this --- -// if(typeof LitJsSdk_constants === 'undefined') { -// console.error("LitJsSdk_constants:", LitJsSdk_constants); -// }else{ -// console.warn("LitJsSdk_constants:", LitJsSdk_constants); -// window.LitJsSdk_constants = LitJsSdk_constants; -// } -// window.addEventListener('load', function() { -// var entries = Object.entries(LitJsSdk_authBrowser); -// var lis = entries.map(([key, value]) => '
  • ' + key + '
    ' + (typeof value === 'function' ? value : JSON.stringify(value, null, 2)) + '
  • '); -// lis = lis.join(',', '').replaceAll(',', ''); -// var template = `

    LitJsSdk_authBrowser has ${entries.length} functions

    `; -// document.getElementById('root').insertAdjacentHTML('beforeend', template); -// }); - */ -export const getConsoleTemplate = ( - name, - i, - globalVarPrefix, - isReact = false -) => { - const capitalisedName = name.split(globalVarPrefix)[1].toUpperCase(); - - return ` - ${!isReact ? `` : ''} - ${!isReact ? `` : ''} - `; -}; From cf4ea127cbdf28401998e4ad96be120186e45b4b Mon Sep 17 00:00:00 2001 From: FedericoAmura Date: Tue, 1 Oct 2024 18:57:02 +0200 Subject: [PATCH 2/4] feat: replace litWCProvider global scope variable with module scoped one in auth-browsers/eth --- packages/auth-browser/src/lib/chains/eth.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/auth-browser/src/lib/chains/eth.ts b/packages/auth-browser/src/lib/chains/eth.ts index c93200c06e..faaa2635dd 100644 --- a/packages/auth-browser/src/lib/chains/eth.ts +++ b/packages/auth-browser/src/lib/chains/eth.ts @@ -7,7 +7,10 @@ import { toUtf8Bytes } from '@ethersproject/strings'; // import WalletConnectProvider from '@walletconnect/ethereum-provider'; import { verifyMessage } from '@ethersproject/wallet'; -import { EthereumProvider } from '@walletconnect/ethereum-provider'; +import { + EthereumProvider, + default as WalletConnectProvider, +} from '@walletconnect/ethereum-provider'; import { ethers } from 'ethers'; import { getAddress } from 'ethers/lib/utils'; import { SiweMessage } from 'siwe'; @@ -128,6 +131,8 @@ export type WALLET_ERROR_VALUES = /** ---------- Local Helpers ---------- */ +let litWCProvider: WalletConnectProvider | undefined; + /** * * Convert chain hex id to chain name @@ -386,8 +391,7 @@ export const connectWeb3 = async ({ }; if (isBrowser()) { - // @ts-ignore - globalThis.litWCProvider = wcProvider; + litWCProvider = wcProvider; } } @@ -440,10 +444,9 @@ export const disconnectWeb3 = (): void => { } // @ts-ignore - if (isBrowser() && globalThis.litWCProvider) { + if (isBrowser() && litWCProvider) { try { - // @ts-ignore - globalThis.litWCProvider.disconnect(); + litWCProvider.disconnect(); } catch (err) { log( 'Attempted to disconnect global WalletConnectProvider for lit-connect-modal', From 9a5abd31d8d3d573f24165f04bc0714af131dd6b Mon Sep 17 00:00:00 2001 From: FedericoAmura Date: Tue, 1 Oct 2024 19:00:26 +0200 Subject: [PATCH 3/4] feat: replace globalThis in misc used to retrieve litCore config with a function and module scoped variable --- packages/core/src/lib/lit-core.ts | 10 ++++------ packages/misc/src/lib/misc.ts | 25 ++++++++++++++++--------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/packages/core/src/lib/lit-core.ts b/packages/core/src/lib/lit-core.ts index 4b391ceb64..6f4ed8f15f 100644 --- a/packages/core/src/lib/lit-core.ts +++ b/packages/core/src/lib/lit-core.ts @@ -50,6 +50,7 @@ import { logWithRequestId, mostCommonString, sendRequest, + setMiscLitConfig, } from '@lit-protocol/misc'; import { AuthSig, @@ -197,8 +198,8 @@ export class LitCore { // -- set bootstrapUrls to match the network litNetwork unless it's set to custom this.setCustomBootstrapUrls(); - // -- set global variables - globalThis.litConfig = this.config; + // -- set misc global variables + setMiscLitConfig(this.config); bootstrapLogManager('core'); // -- configure local storage if not present @@ -387,7 +388,7 @@ export class LitCore { this._stopListeningForNewEpoch(); // this._stopNetworkPolling(); - if (globalThis.litConfig) delete globalThis.litConfig; + setMiscLitConfig(undefined); } // _stopNetworkPolling() { @@ -532,9 +533,6 @@ export class LitCore { // this._scheduleNetworkSync(); this._listenForNewEpoch(); - // FIXME: don't create global singleton; multiple instances of `core` should not all write to global - // @ts-expect-error typeof globalThis is not defined. We're going to get rid of the global soon. - globalThis.litNodeClient = this; this.ready = true; log(`🔥 lit is ready. "litNodeClient" variable is ready to use globally.`); diff --git a/packages/misc/src/lib/misc.ts b/packages/misc/src/lib/misc.ts index fee4f54913..0217952377 100644 --- a/packages/misc/src/lib/misc.ts +++ b/packages/misc/src/lib/misc.ts @@ -1,3 +1,4 @@ +import { LitNodeClientConfig } from '@lit-protocol/types'; import { Contract } from '@ethersproject/contracts'; import { JsonRpcProvider } from '@ethersproject/providers'; import Ajv, { JSONSchemaType } from 'ajv'; @@ -31,6 +32,13 @@ import { const logBuffer: any[][] = []; const ajv = new Ajv(); +// Module scoped variable to store the LitNodeClientConfig passed to LitCore +let litConfig: LitNodeClientConfig | undefined; + +export const setMiscLitConfig = (config: LitNodeClientConfig | undefined) => { + litConfig = config; +}; + /** * * Print error message based on Error interface @@ -95,7 +103,6 @@ export const findMostCommonResponse = (responses: object[]): object => { }; declare global { - var litConfig: any; var wasmExport: any; var wasmECDSA: any; var logger: any; @@ -148,13 +155,13 @@ export const log = (...args: any): void => { } // check if config is loaded yet - if (!globalThis?.litConfig) { + if (!litConfig) { // config isn't loaded yet, push into buffer logBuffer.push(args); return; } - if (globalThis?.litConfig?.debug !== true) { + if (litConfig?.debug !== true) { return; } // config is loaded, and debug is true @@ -176,13 +183,13 @@ export const logWithRequestId = (id: string, ...args: any) => { } // check if config is loaded yet - if (!globalThis?.litConfig) { + if (!litConfig) { // config isn't loaded yet, push into buffer logBuffer.push(args); return; } - if (globalThis?.litConfig?.debug !== true) { + if (litConfig?.debug !== true) { return; } // config is loaded, and debug is true @@ -206,13 +213,13 @@ export const logErrorWithRequestId = (id: string, ...args: any) => { } // check if config is loaded yet - if (!globalThis?.litConfig) { + if (!litConfig) { // config isn't loaded yet, push into buffer logBuffer.push(args); return; } - if (globalThis?.litConfig?.debug !== true) { + if (litConfig?.debug !== true) { return; } // config is loaded, and debug is true @@ -236,13 +243,13 @@ export const logError = (...args: any) => { } // check if config is loaded yet - if (!globalThis?.litConfig) { + if (!litConfig) { // config isn't loaded yet, push into buffer logBuffer.push(args); return; } - if (globalThis?.litConfig?.debug !== true) { + if (litConfig?.debug !== true) { return; } // config is loaded, and debug is true From 42ffd7c5b9b92a945bb1d24f486404da334117f2 Mon Sep 17 00:00:00 2001 From: FedericoAmura Date: Thu, 3 Oct 2024 20:33:41 +0200 Subject: [PATCH 4/4] fix: merge conflict resolution --- packages/core/src/lib/lit-core.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/lib/lit-core.ts b/packages/core/src/lib/lit-core.ts index 74591a6f62..b2bdd0a847 100644 --- a/packages/core/src/lib/lit-core.ts +++ b/packages/core/src/lib/lit-core.ts @@ -201,7 +201,7 @@ export class LitCore { this.setCustomBootstrapUrls(); // -- set global variables - globalThis.litConfig = this.config; + setMiscLitConfig(this.config); bootstrapLogManager( 'core', this.config.debug ? LogLevel.DEBUG : LogLevel.OFF