Skip to content
This repository was archived by the owner on Mar 5, 2025. It is now read-only.

Commit 70352cd

Browse files
authored
Update Intermediate dApp Guide (EIP-6963 Types no Longer in Namespace) (#7349)
1 parent 4ca66af commit 70352cd

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

docs/docs/guides/07_dapps/intermediate-dapp.md

+20-15
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,16 @@ Create a `src/useProviders.ts` file and add the following code:
158158

159159
```ts
160160
import { useSyncExternalStore } from 'react';
161-
import { providers, Web3 } from 'web3';
161+
import {
162+
type EIP6963ProviderDetail,
163+
type EIP6963ProviderResponse,
164+
type EIP6963ProvidersMapUpdateEvent,
165+
Web3,
166+
web3ProvidersMapUpdated,
167+
} from 'web3';
162168

163169
// initial empty list of providers
164-
let providerList: providers.EIP6963ProviderDetail[] = [];
170+
let providerList: EIP6963ProviderDetail[] = [];
165171

166172
/**
167173
* External store for subscribing to EIP-6963 providers
@@ -172,9 +178,9 @@ const providerStore = {
172178
// subscribe to EIP-6963 provider events
173179
subscribe: (callback: () => void) => {
174180
// update the list of providers
175-
function setProviders(response: providers.EIP6963ProviderResponse) {
181+
function setProviders(response: EIP6963ProviderResponse) {
176182
providerList = [];
177-
response.forEach((provider: providers.EIP6963ProviderDetail) => {
183+
response.forEach((provider: EIP6963ProviderDetail) => {
178184
providerList.push(provider);
179185
});
180186

@@ -186,16 +192,15 @@ const providerStore = {
186192
Web3.requestEIP6963Providers().then(setProviders);
187193

188194
// handler for newly discovered providers
189-
function updateProviders(providerEvent: providers.EIP6963ProvidersMapUpdateEvent) {
195+
function updateProviders(providerEvent: EIP6963ProvidersMapUpdateEvent) {
190196
setProviders(providerEvent.detail);
191197
}
192198

193199
// register handler for newly discovered providers with Web3.js helper function
194200
Web3.onNewProviderDiscovered(updateProviders);
195201

196202
// return a function that unsubscribes from the created event listener
197-
return () =>
198-
window.removeEventListener(providers.web3ProvidersMapUpdated as any, updateProviders);
203+
return () => window.removeEventListener(web3ProvidersMapUpdated as any, updateProviders);
199204
},
200205
};
201206

@@ -209,7 +214,7 @@ This file exports a single member - a React [`useSyncExternalStore` hook](https:
209214
Replace the contents of the `src/App.tsx` file with the following:
210215

211216
```tsx
212-
import type { providers } from 'web3';
217+
import type { EIP6963ProviderDetail } from 'web3';
213218

214219
import { useProviders } from './useProviders';
215220

@@ -219,7 +224,7 @@ function App() {
219224

220225
return (
221226
<>
222-
{providers.map((provider: providers.EIP6963ProviderDetail) => {
227+
{providers.map((provider: EIP6963ProviderDetail) => {
223228
// list available providers
224229
return (
225230
<div key={provider.info.uuid}>
@@ -244,7 +249,7 @@ Replace the contents of the `src/App.tsx` file with the following:
244249

245250
```tsx
246251
import { useEffect, useState } from 'react';
247-
import { type providers, Web3 } from 'web3';
252+
import { type EIP6963ProviderDetail, Web3 } from 'web3';
248253

249254
import { useProviders } from './useProviders';
250255

@@ -258,7 +263,7 @@ function App() {
258263
const [balances, setBalances] = useState<Map<string, number>>(new Map());
259264

260265
// click-handler for provider buttons
261-
function setProvider(provider: providers.EIP6963ProviderDetail) {
266+
function setProvider(provider: EIP6963ProviderDetail) {
262267
const web3: Web3 = new Web3(provider.provider);
263268
setWeb3(web3);
264269
web3.eth.requestAccounts().then(setAccounts);
@@ -300,7 +305,7 @@ function App() {
300305
<>
301306
{web3 === undefined
302307
? // no provider set, display list of available providers
303-
providers.map((provider: providers.EIP6963ProviderDetail) => {
308+
providers.map((provider: EIP6963ProviderDetail) => {
304309
// for each provider, display a button to connect to that provider
305310
return (
306311
<div key={provider.info.uuid}>
@@ -456,7 +461,7 @@ Replace the contents of the `src/App.tsx` file with the following:
456461

457462
```tsx
458463
import { useEffect, useState } from 'react';
459-
import { type providers, Web3 } from 'web3';
464+
import { type EIP6963ProviderDetail, Web3 } from 'web3';
460465

461466
// highlight-next-line
462467
import TransferForm from './TransferForm';
@@ -472,7 +477,7 @@ function App() {
472477
const [balances, setBalances] = useState<Map<string, number>>(new Map());
473478

474479
// click-handler for provider buttons
475-
function setProvider(provider: providers.EIP6963ProviderDetail) {
480+
function setProvider(provider: EIP6963ProviderDetail) {
476481
const web3: Web3 = new Web3(provider.provider);
477482
setWeb3(web3);
478483
web3.eth.requestAccounts().then(setAccounts);
@@ -514,7 +519,7 @@ function App() {
514519
<>
515520
{web3 === undefined
516521
? // no provider set, display list of available providers
517-
providers.map((provider: providers.EIP6963ProviderDetail) => {
522+
providers.map((provider: EIP6963ProviderDetail) => {
518523
// for each provider, display a button to connect to that provider
519524
return (
520525
<div key={provider.info.uuid}>

0 commit comments

Comments
 (0)