From 301cdaddaac15892d4a7ee712ca75f288fea94ec Mon Sep 17 00:00:00 2001 From: Dan Forbes Date: Thu, 5 Sep 2024 09:48:57 -0400 Subject: [PATCH 1/2] feat(requestEIP6963Providers): return-type Add return type to requestEIP6963Providers function signature. Closes #7238 --- packages/web3/src/web3_eip6963.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/web3/src/web3_eip6963.ts b/packages/web3/src/web3_eip6963.ts index 787502a4125..d2169191b5c 100644 --- a/packages/web3/src/web3_eip6963.ts +++ b/packages/web3/src/web3_eip6963.ts @@ -35,6 +35,8 @@ export interface EIP6963ProviderDetail { provider: EIP1193Provider; } +export type EIP6963ProviderResponse = Map; + export interface EIP6963AnnounceProviderEvent extends CustomEvent { type: Eip6963EventName.eip6963announceProvider; detail: EIP6963ProviderDetail; @@ -44,15 +46,15 @@ export interface EIP6963RequestProviderEvent extends Event { type: Eip6963EventName.eip6963requestProvider; } -export const eip6963ProvidersMap: Map = new Map(); +export const eip6963ProvidersMap: EIP6963ProviderResponse = new Map(); export const web3ProvidersMapUpdated = "web3:providersMapUpdated"; export interface EIP6963ProvidersMapUpdateEvent extends CustomEvent { type: string; - detail: Map; + detail: EIP6963ProviderResponse; } -export const requestEIP6963Providers = async () => +export const requestEIP6963Providers = async (): Promise => new Promise((resolve, reject) => { if (typeof window === 'undefined') { reject(new Error("window object not available, EIP-6963 is intended to be used within a browser")); From afb8235408615707d5855bd3eac5745761a3d686 Mon Sep 17 00:00:00 2001 From: Dan Forbes Date: Thu, 5 Sep 2024 11:42:15 -0400 Subject: [PATCH 2/2] Update Changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f2e5ea09b0..48117f4e47c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2697,4 +2697,8 @@ If there are any bugs, improvements, optimizations or any new feature proposal f - Revert `TransactionFactory.registerTransactionType` if there is a version mistatch between `web3-eth` and `web3-eth-accounts` and fix nextjs problem. (#7216) +#### web3 + +- `Web3.providers` namespace exports `type EIP6963ProviderResponse = Map`. Return type for the static `Web3.requestEIP6963Providers` is now `Promise`. (#7239) + ## [Unreleased]