diff --git a/.changeset/long-windows-listen.md b/.changeset/long-windows-listen.md new file mode 100644 index 00000000..ddadd597 --- /dev/null +++ b/.changeset/long-windows-listen.md @@ -0,0 +1,12 @@ +--- +'@blocto/aptos-wallet-adapter-plugin': patch +'@blocto/connectkit-connector': patch +'@blocto/rainbowkit-connector': patch +'@blocto/web3-react-connector': patch +'@blocto/web3modal-connector': patch +'@blocto/wagmi-connector': patch +'@blocto/sdk': patch +'@blocto/dappauth': patch +--- + +fix: handle existedSDK handle window not defined diff --git a/packages/blocto-sdk/src/providers/aptos.ts b/packages/blocto-sdk/src/providers/aptos.ts index fe70100d..a670cc7d 100644 --- a/packages/blocto-sdk/src/providers/aptos.ts +++ b/packages/blocto-sdk/src/providers/aptos.ts @@ -67,6 +67,7 @@ export default class AptosProvider sessionKey: KEY_SESSION; private get existedSDK() { + if (typeof window === 'undefined') return undefined; return (window as any).bloctoAptos; } @@ -147,7 +148,6 @@ export default class AptosProvider transaction: AptosTypes.TransactionPayload, txOptions: TxOptions = {} ): Promise<{ hash: AptosTypes.HexEncodedBytes }> { - if (this.existedSDK) { return this.existedSDK.signAndSubmitTransaction(transaction, txOptions); } @@ -217,7 +217,6 @@ export default class AptosProvider } async signMessage(payload: SignMessagePayload): Promise { - const formattedPayload = checkMessagePayloadFormat(payload); if (this.existedSDK) { @@ -291,7 +290,10 @@ export default class AptosProvider if (this.existedSDK) { return new Promise((resolve, reject) => // add a small delay to make sure the network has been switched - setTimeout(() => this.existedSDK.connect().then(resolve).catch(reject), 10) + setTimeout( + () => this.existedSDK.connect().then(resolve).catch(reject), + 10 + ) ); } @@ -406,18 +408,16 @@ export default class AptosProvider } override on(event: string, listener: (arg: any) => void): void { - if (this.existedSDK) - this.existedSDK.on(event, listener); - + if (this.existedSDK) this.existedSDK.on(event, listener); + super.on(event, listener); } - + override removeListener(event: string, listener: (arg: any) => void): void { - if (this.existedSDK) - this.existedSDK.off(event, listener); - + if (this.existedSDK) this.existedSDK.off(event, listener); + super.removeListener(event, listener); } - + off = this.removeListener; } diff --git a/packages/blocto-sdk/src/providers/ethereum.ts b/packages/blocto-sdk/src/providers/ethereum.ts index 2ab78b76..dcf019ef 100644 --- a/packages/blocto-sdk/src/providers/ethereum.ts +++ b/packages/blocto-sdk/src/providers/ethereum.ts @@ -74,6 +74,7 @@ export default class EthereumProvider }; private get existedSDK() { + if (typeof window === 'undefined') return undefined; return (window as any).ethereum; } @@ -647,6 +648,13 @@ export default class EthereumProvider // eip-1102 alias // DEPRECATED API: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1102.md async enable(email?: string): Promise { + if (typeof window === 'undefined') { + throw ethErrors.provider.custom({ + code: 1001, + message: 'Blocto SDK only works in browser environment', + }); + } + const { walletServer, blockchainName, sessionKeyEnv } = await this.#getBloctoProperties();