2.13.0 • Published 2 days ago

@walletconnect/universal-provider v2.13.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 days ago

@walletconnect/universal-provider

Universal Provider for WalletConnect Protocol

Usage

import { ethers } from "ethers";
import UniversalProvider from "@walletconnect/universal-provider";

//  Initialize the provider
const provider = await UniversalProvider.init({
  logger: "info",
  relayUrl: "ws://<relay-url>",
  projectId: "12345678",
  metadata: {
    name: "React App",
    description: "React App for WalletConnect",
    url: "https://walletconnect.com/",
    icons: ["https://avatars.githubusercontent.com/u/37784886"],
  },
  client: undefined, // optional instance of @walletconnect/sign-client
});

//  create sub providers for each namespace/chain
await provider.connect({
  namespaces: {
    eip155: {
      methods: [
        "eth_sendTransaction",
        "eth_signTransaction",
        "eth_sign",
        "personal_sign",
        "eth_signTypedData",
      ],
      chains: ["eip155:80001"],
      events: ["chainChanged", "accountsChanged"],
      rpcMap: {
        80001: "https://rpc.walletconnect.com?chainId=eip155:80001&projectId=<your walletconnect project id>",
      },
    },
    pairingTopic: "<123...topic>", // optional topic to connect to
    skipPairing: false, // optional to skip pairing ( later it can be resumed by invoking .pair())
  },
});

//  Create Web3 Provider
const web3Provider = new ethers.providers.Web3Provider(provider);

Events

// Subscribe for pairing URI
provider.on("display_uri", (uri) => {
  console.log(uri);
});

// Subscribe to session ping
provider.on("session_ping", ({ id, topic }) => {
  console.log(id, topic);
});

// Subscribe to session event
provider.on("session_event", ({ event, chainId }) => {
  console.log(event, chainId);
});

// Subscribe to session update
provider.on("session_update", ({ topic, params }) => {
  console.log(topic, params);
});

// Subscribe to session delete
provider.on("session_delete", ({ id, topic }) => {
  console.log(id, topic);
});

Provider Methods

interface RequestArguments {
  method: string;
  params?: any[] | undefined;
}

// Send JSON RPC requests

/**
 * @param payload
 * @param chain - optionally specify which chain should handle this request
 * in the format `<namespace>:<chainId>` e.g. `eip155:1`
 */
const result = await provider.request(payload: RequestArguments, chain: string | undefined);

Multi-chain

const web3 = new Web3(provider);

// default chainId is the FIRST chain during setup
const chainId = await web3.eth.getChainId();

// set the default chain to 56
provider.setDefaultChain(`eip155:56`, rpcUrl?: string | undefined);

// get the updated default chainId
const updatedDefaultChainId = await web3.eth.getChainId();

Creating a provider file

  • Create a file under providers/universal-provider/src/providers/<NAMESPACE>.ts
  • Implement the IProvider interface
  • In the IProvider.request method, there should be a check for whether or not to run the request against the wallet or the blockchain. this.namespace.methods should only contain the methods supported by the wallet.
  • The rest of the methods of the class are very similar, mainly centering around httpProvider and for the most part will be 90% similar to other providers given similar structure of chainId. For example eip155:1 or solana:mainnetBeta.
  • Export provider under providers/universal-provider/src/providers/index.ts
2.13.0

2 days ago

2.12.2-req-q.0

18 days ago

2.12.2-rc-0

1 month ago

2.12.2

30 days ago

2.12.1

1 month ago

2.12.0

1 month ago

2.11.3

2 months ago

2.11.2

3 months ago

2.11.2-rc-ec7dcc

3 months ago

2.11.1

3 months ago

2.11.0-canary-ws.0

3 months ago

2.11.0-canary-ws.1

3 months ago

2.11.1-rc-7b41511

4 months ago

2.11.0-rc-338bee1

5 months ago

2.11.0

5 months ago

2.10.6-canary-8

5 months ago

2.9.2-canary-1

9 months ago

2.8.7-rc.0

10 months ago

2.9.0-db80be53

10 months ago

2.9.1-5f93de27

10 months ago

2.9.0-e4636394

10 months ago

2.10.0-rc-c5e5ef60

9 months ago

2.8.7-canary.8

10 months ago

2.9.2-canary.1

9 months ago

2.10.1-rc-3aa9b56

8 months ago

2.10.1

8 months ago

2.10.2

7 months ago

2.10.0

9 months ago

2.9.0-929ffe53

10 months ago

2.10.1-665f0a23

8 months ago

2.10.1-c362fdc6

7 months ago

2.10.5

6 months ago

2.10.6

5 months ago

2.10.3

7 months ago

2.10.4

7 months ago

2.10.0-rc-a6fe729

9 months ago

2.10.0-canary.0

10 months ago

2.10.3-rc.0

7 months ago

2.10.4-184f2234

7 months ago

2.10.5-rc-c91a538

6 months ago

2.9.0

10 months ago

2.10.5-rc-60b8e52

6 months ago

2.9.2-rc.0

9 months ago

2.9.2

9 months ago

2.9.1

10 months ago

2.10.5-canary-5

5 months ago

2.10.1-99a16bff

8 months ago

2.10.5-canary-7

5 months ago

2.10.5-canary-8

5 months ago

2.9.1-canary.0

10 months ago

2.9.1-canary.1

10 months ago

2.9.1-canary.2

10 months ago

2.8.6-409b14d4

10 months ago

2.9.0-canary.0

10 months ago

2.10.5-canary-01

6 months ago

2.10.4-rc.0

7 months ago

2.10.6-rc-0.1

5 months ago

2.10.5-rc-e12288e

6 months ago

2.9.0-e9ace057

10 months ago

2.10.5-rc-57761a66

6 months ago

2.10.3-canary.0

7 months ago

2.9.1-rc-e8b829

10 months ago

2.10.1-c46eedfa

8 months ago

2.8.7-canary.3

10 months ago

2.8.7-canary.2

10 months ago

2.8.7-canary.0

10 months ago

2.8.4-6fcdca29

11 months ago

2.8.5

11 months ago

2.8.6

11 months ago

2.8.5-3491a772

11 months ago

2.8.6-canary.0

11 months ago

2.8.5-canary-1

11 months ago

2.8.4

11 months ago

2.8.4-bb15cb97

11 months ago

2.8.4-ea99f08e

11 months ago

2.8.4-f0722c28

11 months ago

2.8.3-canary-2

11 months ago

2.8.3-canary-1

11 months ago

2.8.4-canary-1

11 months ago

2.8.1

11 months ago

2.8.0

11 months ago

2.7.7-8e063431

11 months ago

2.8.1-d072eaa1

11 months ago

2.8.0-canary-1

11 months ago

2.7.3-canary-4

12 months ago

2.8.1-0107ef6c

11 months ago

2.8.3

11 months ago

2.8.2

11 months ago

2.8.0-8b98a0a4

11 months ago

2.8.2-canary.0

11 months ago

2.8.0-3884b2f0

11 months ago

2.7.5-rc-cc9217a

12 months ago

2.8.1-canary-1

11 months ago

2.7.4-rc-a7ad32

12 months ago

2.7.3-rc-a381c3

12 months ago

2.7.4

12 months ago

2.7.6

12 months ago

2.7.5

12 months ago

2.7.8

11 months ago

2.7.7

12 months ago

2.7.8-canary-1

11 months ago

2.7.8-canary-2

11 months ago

2.7.9-7fa58fba

11 months ago

2.7.6-rc-fabb7af

12 months ago

2.7.7-rc-c8ff35d

12 months ago

2.8.3-9732d9dd

11 months ago

2.4.9-c4dcd8cf

1 year ago

2.5.2-1edcbbbc

1 year ago

2.5.2-4198a778

1 year ago

2.6.1-e3b9baab

1 year ago

2.5.2-c4056f44

1 year ago

2.4.9-ff902def

1 year ago

2.4.9-c072c335

1 year ago

2.6.2-rc-verify

1 year ago

2.6.2-rc-01

1 year ago

2.7.3-canary-1

1 year ago

2.7.3-canary-3

1 year ago

2.7.3-canary-2

1 year ago

2.7.0

1 year ago

2.7.2

1 year ago

2.7.1

1 year ago

2.4.10

1 year ago

2.5.2-77e444fc

1 year ago

2.4.7

1 year ago

2.4.6

1 year ago

2.4.9

1 year ago

2.4.8

1 year ago

2.5.2-1ab0d161

1 year ago

2.4.6-793c2c4b

1 year ago

2.7.1-canary-1

1 year ago

2.7.1-canary-2

1 year ago

2.6.1

1 year ago

2.6.0

1 year ago

2.4.7-a3bfbe12

1 year ago

2.6.2

1 year ago

2.6.2-rc-0.2

1 year ago

2.6.1-canary-2

1 year ago

2.6.1-canary-1

1 year ago

2.7.3

1 year ago

2.4.7-73d253e7

1 year ago

2.6.2-rc-4a445a

1 year ago

2.4.5-c0afa9fa

1 year ago

2.5.0

1 year ago

2.5.2

1 year ago

2.5.1

1 year ago

2.6.1-2c3df021

1 year ago

2.4.6-956e5f87

1 year ago

2.7.0-rc-1

1 year ago

2.7.0-rc-2

1 year ago

2.7.0-rc-3

1 year ago

2.4.7-ccfb1f33

1 year ago

2.4.7-4f7d9ddb

1 year ago

2.7.0-rc-4

1 year ago

2.4.4-45d260b7

1 year ago

2.4.1

1 year ago

2.4.3

1 year ago

2.4.2

1 year ago

2.4.5

1 year ago

2.4.4

1 year ago

2.4.3-a65f5498

1 year ago

2.4.3-286812ca

1 year ago

2.4.4-c454b368

1 year ago

2.4.0

1 year ago

2.3.4-7690b8b7

1 year ago

2.3.2-858d3960

1 year ago

2.3.3

1 year ago

2.3.3-778440e6

1 year ago

2.3.1-9db1b17b

1 year ago

2.3.1-1035808b

1 year ago

2.3.1-fb95c666

1 year ago

2.3.0-d99c4199

1 year ago

2.3.0-7a336602

1 year ago

2.3.0

1 year ago

2.3.2

1 year ago

2.3.1

1 year ago

2.0.0-636b7436.0

2 years ago

2.0.0-rc.4

2 years ago

2.2.0-82965d54

1 year ago

2.0.0-c8f344a6.0

2 years ago

2.0.0-8bbc6344.0

2 years ago

2.0.0-9bbb2943.0

2 years ago

2.0.0-5dcbd195.0

2 years ago

2.2.1

1 year ago

2.1.2

1 year ago

2.2.0

1 year ago

2.1.1

2 years ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.5

1 year ago

2.0.0-1aec2f40.0

2 years ago

2.1.2-eaa4818c

1 year ago

2.1.0

2 years ago

2.0.0

2 years ago

2.1.3-1d7c9de6

1 year ago

2.1.3-a040238d

1 year ago

2.1.3-1edb9cd9

1 year ago

2.2.0-6f8302d5

1 year ago

2.0.0-2cf22fb.0

2 years ago

2.0.0-1d956b6d.0

2 years ago

2.0.0-bbe8e01f.0

2 years ago

2.0.0-9f21d2a0.0

2 years ago

2.2.0-a30a3fd6

1 year ago

2.1.3-c6047312

1 year ago

2.0.0-3ab9f144.0

2 years ago

2.2.1-29d82574

1 year ago

2.0.0-7f8b8dcc.0

2 years ago

2.0.0-rc.3-1

2 years ago

2.0.0-rc.2-6

2 years ago

2.0.0-rc.2-5

2 years ago

2.0.0-rc.2

2 years ago