Skip to content

Commit

Permalink
added migration guide
Browse files Browse the repository at this point in the history
  • Loading branch information
ihsraham committed Sep 19, 2023
1 parent 0c86050 commit 8dec932
Show file tree
Hide file tree
Showing 5 changed files with 167 additions and 160 deletions.
1 change: 1 addition & 0 deletions docs/pnp/migration-guides/modal-v5-to-v6.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: PnP Modal SDK - v5 to v6
displayed_sidebar: docs
description: "PnP Modal SDK - v5 to v6 | Documentation - Web3Auth"
sidebar_label: v5 to v6
---

## General
Expand Down
95 changes: 37 additions & 58 deletions docs/pnp/migration-guides/modal-v6-to-v7.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,88 +2,67 @@
title: PnP Modal SDK - v6 to v7
displayed_sidebar: docs
description: "PnP Modal SDK - v6 to v7 | Documentation - Web3Auth"
sidebar_label: v6 to v7
---

## General

### `IProvider` is introduced at @web3auth/base
### `web3auth.connect()` now returns a provider of type `IProvider`

#### set web3auth provider type as `IProvider` instead of `SafeEventEmitterProvider`
#### The new provider object now works with the latest version of `web3.js`.

With V7, users can manage their web3auth provider using `IProvider` instead of `SafeEventEmitterProvider`. If `SafeEventEmitterProvider` compatible
with your existing example, there's nothing wrong with using it.
With V7, the type for the provider has been changed to `IProvider` which is compatible with the latest version of `web3.js` instead of the old type
`SafeEventEmitterProvider`. The type `Iprovider` can be imported from the `@web3auth/base` package.

```tsx
// With V7
// highlight-start
const [provider, setProvider] = useState<IProvider | null>(null);
connect(): Promise<IProvider | null>;
// highlight-end
```

### TypeError: Cannot read properties of undefined (reading 'defaultLanguage')
###

In V6, we could initialize Web3Auth without uiConfig. However in V7, if you encounter this kind of problem, this is because you initialized web3auth
without uiConfig
## OpenLoginAdapter

```tsx
// With V6
const web3auth = new Web3Auth({
clientId,
chainConfig: {
chainNamespace: CHAIN_NAMESPACES.EIP155,
chainId: "0x1",
rpcTarget: "https://rpc.ankr.com/eth", // This is the public RPC we have added, please pass on your own endpoint while creating an app
},
web3AuthNetwork: "cyan",
});
// With V7
const web3auth = new Web3Auth({
clientId,
chainConfig: {
chainNamespace: CHAIN_NAMESPACES.EIP155,
chainId: "0x1",
rpcTarget: "https://rpc.ankr.com/eth", // This is the public RPC we have added, please pass on your own endpoint while creating an app
},
// add uiConfig
// highlight-start
uiConfig: {
appName: "W3A",
// appLogo: "https://web3auth.io/images/w3a-L-Favicon-1.svg", // Your App Logo Here
theme: {
primary: "red",
},
mode: "dark",
logoLight: "https://web3auth.io/images/w3a-L-Favicon-1.svg",
logoDark: "https://web3auth.io/images/w3a-D-Favicon-1.svg",
defaultLanguage: "en", // en, de, ja, ko, zh, es, fr, pt, nl
loginGridCol: 3,
primaryButton: "externalLogin", // "externalLogin" | "socialLogin" | "emailLogin"
},
// highlight-end
### Change in the naming of some whitelabel parameters for `OpenLoginAdapter`

web3AuthNetwork: "cyan",
});
```
#### `name` and `url` are now `appName` and `appUrl`, respectively.

In `adapterSettings`, the `whitelabel` object now accepts `appName` and `appUrl` instead of `name` and `url`, respectively. This is done to bring
consistency to the naming convention.

### `rpcTarget` and `chainId` is now a mandatory parameter
#### Light and dark mode is now toggled by the `mode` parameter instead of `dark`.

Previously, the Web Modal SDK required `chainConfig` as a parameter which had `rpcTarget` & `chainId` as the optional parameter. But with V6, it's
mandatory to add `rpcTarget` & `chainId` in the `chainConfig` object.
`mode` accepts a string from the following options: `auto`, `light` or `dark`. This replaces the `dark` boolean parameter from previous versions.

```tsx
const web3auth = new Web3Auth({
clientId,
chainConfig: {
chainNamespace: CHAIN_NAMESPACES.EIP155,
// highlight-start
chainId: "0x1",
rpcTarget: "https://rpc.ankr.com/eth", // This is the public RPC we have added, please pass on your own custom endpoint while creating an app
// highlight-end
const openloginAdapter = new OpenloginAdapter({
adapterSettings: {
whiteLabel: {
// highlight-start
appName: "W3A Heroes",
appUrl: "https://web3auth.io",
// highlight-end
logoLight: "https://web3auth.io/images/w3a-L-Favicon-1.svg",
logoDark: "https://web3auth.io/images/w3a-D-Favicon-1.svg",
defaultLanguage: "en", // en, de, ja, ko, zh, es, fr, pt, nl
// highlight-next-line
mode: "auto", // whether to enable dark mode. defaultValue: false
theme: {
primary: "#768729",
},
useLogoLoader: true,
},
},
web3AuthNetwork: "cyan",
privateKeyProvider,
});
```

## Other changes

### Extra parameters for `solana-provider` and `xrpl-provider`

#### For Solana

For Solana, SolanaWallet in package "@web3auth/solana-provider", the request typings require both input and output now use `string[]` when input
Expand Down
1 change: 1 addition & 0 deletions docs/pnp/migration-guides/no-modal-v5-to-v6.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: PnP No Modal SDK - v5 to v6
displayed_sidebar: docs
description: "PnP No Modal SDK - v5 to v6 | Documentation - Web3Auth"
sidebar_label: v5 to v6
---

## General
Expand Down
42 changes: 40 additions & 2 deletions docs/pnp/migration-guides/no-modal-v6-to-v7.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: PnP No Modal SDK - v6 to v7
displayed_sidebar: docs
description: "PnP No Modal SDK - v6 to v7 | Documentation - Web3Auth"
sidebar_label: v6 to v7
---

## General
Expand Down Expand Up @@ -47,11 +48,48 @@ const openloginAdapter = new OpenloginAdapter({
// highlight-next-line
mode: "auto", // whether to enable dark mode. defaultValue: false
theme: {
primary: "#768729",
primary: "#768729",
},
useLogoLoader: true,
}
},
},
privateKeyProvider,
});
```

## Other changes

### Extra parameters for `solana-provider` and `xrpl-provider`

#### For Solana

For Solana, SolanaWallet in package "@web3auth/solana-provider", the request typings require both input and output now use `string[]` when input
placeholder is needed

```tsx
// With V7
const connectionConfig = await solanaWallet.request<string[], CustomChainConfig>({
method: "solana_provider_config",
params: [],
});
const conn = new Connection(connectionConfig.rpcTarget);
```

#### For XRPL

For XRPL, after the change of "@web3auth/xrpl-provider" version to v7, the request typings require both input and output now so use `never` when input
or output placeholder is needed

```tsx
// With V7
const txSign = await this.provider.request<{ signature: string }, never>({
method: "xrpl_signMessage",
params: {
signature: hexMsg,
},
});

const accounts = await this.provider.request<never, string[]>({
method: "xrpl_getAccounts",
});
```
Loading

0 comments on commit 8dec932

Please sign in to comment.