2.19.1 • Published 4 months ago

@walletconnect/universal-provider v2.19.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
4 months 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.org?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
@plgwagmi/connectors@infinitebrahmanuniverse/nolb-_wal@everything-registry/sub-chunk-998@subwallet_connect/common@subwallet_connect/qr_code@subwallet_connect/walletconnect@subwallet_connect/walletconnect-polkadotweb3-provider-test@colligence/ethereum-provider@argent/login@ant-design/web3-solana@blocksafudev/appkit@blocksafudev/appkit-adapter-ethers@blocksafudev/appkit-adapter-ethers5@blocksafudev/appkit-adapter-solana@blocksafudev/appkit-adapter-wagmi@blocksafudev/appkit-core@blocksafudev/appkit-utils@byzanlink/aa-sdk@byzanlink/aa-wallet-auth@dcspark/adalib@dedo_ai/web3modal-solana@dgpub/prime-sdk@fluencelabs/cli@flydaxwagmi/connectors@etherspot/modular-sdk@etherspot/prime-sdk@funded-labs/plug-inpage-provider@funded-labs/plug-mobile-sdk@loopring-web/web3-provider@eridanus-network/cli@minswap/wc-dapp@itsobvioustech/web3native@quirks/vue@quirks/core@quirks/store@reactive-dot/wallet-walletconnect@notabene/appkit@rerock/adapter-ethers5@rerock/adapter-solana@rerock/adapter-wagmi@rerock/base@rerock/core@rerock/scaffold-utils@rerock/solana@reown/appkit@reown/appkit-adapter-ethers@reown/appkit-adapter-ethers5@reown/appkit-adapter-solana@reown/appkit-adapter-wagmi@reown/appkit-solana@reown/appkit-utils@reown/appkit-core@sekmet/connectorsrouter-tangled-reactquomagniquaeaspernatur@walletconnect/solana-adapter@walletconnect/solib@walletconnect/modal-react-native@walletconnect/ethereum-provider@web5modal/solana@web3modal/solana@web4modal/solana@web3modal/react-native@web3inno/appkit@web3inno/appkit-adapter-ethers@web3inno/appkit-adapter-ethers5@web3inno/appkit-adapter-solana@web3inno/appkit-adapter-wagmi@web3inno/appkit-core@web3inno/appkit-solana@web3inno/appkit-utils@web3modal-x/solana@tokenscript/token-negotiator@vukhaihoan/etherspot@vukhaihoan/prime-sdk@usedapp/wallet-connect-v2-connector@venables/web3modal-react-native@xrpl-wallet-adapter/walletconnect@zalastax/nolb-_walcodatta-connectauthc-spa-jsetherspotethereum-provider-iretsoluta@shieldswap/wallet-sdk@spinamp/walletconnect-react-native@tangled3/react@subwallet-connect/walletconnect-polkadot@subwallet-connect/common@swing.xyz/wallets@tari-project/wallet-connect-provider@tari-project/wallet-connect-signer@soramitsu/soraneo-wallet-web
2.19.0-canary-sp-0

4 months ago

2.19.1

4 months ago

2.19.1-rc-1

4 months ago

2.19.0-canary-mw-2

4 months ago

2.19.0-canary-mw-1

4 months ago

2.19.0

5 months ago

2.19.0-rc-1

5 months ago

2.19.0-canary-ak-1

5 months ago

2.18.1

5 months ago

2.18.1-rc-1

5 months ago

2.18.1-canary-ws-3

5 months ago

2.18.1-canary-ws-2

5 months ago

2.18.1-canary-ws-1

5 months ago

2.18.0-rc-1

6 months ago

2.18.0

6 months ago

2.17.5

6 months ago

2.17.5-rc-1

6 months ago

2.17.4

6 months ago

2.17.3

7 months ago

2.17.3-rc-0

7 months ago

2.17.2-canary-ws-0

8 months ago

2.17.2-canary-rcnt

8 months ago

2.17.2-rc-0

8 months ago

2.17.2

8 months ago

2.16.2-canary-tma-2

10 months ago

2.16.2-canary-tma-3

10 months ago

2.17.1-rc-0

9 months ago

2.17.0

10 months ago

2.17.1

9 months ago

2.17.0-rc-1

10 months ago

2.17.0-rc-0

10 months ago

2.17.0-canary-0

9 months ago

2.16.3

10 months ago

2.17.1-canary-0

9 months ago

2.16.3-rc-tma-0

10 months ago

2.16.3-rc-tma-1

10 months ago

2.16.2-canary-tma-1

10 months ago

2.16.1

10 months ago

2.16.2

10 months ago

2.16.0

10 months ago

2.16.1-rc-0

10 months ago

2.15.3-rc.0

10 months ago

2.15.2

11 months ago

2.15.3

10 months ago

2.16.2-rc-1

10 months ago

2.16.2-rc-0

10 months ago

2.15.2-canary-lm.0

10 months ago

2.15.0-canary-lm.8

11 months ago

2.16.0-rc-0

10 months ago

2.15.2-canary-lm.4

10 months ago

2.15.2-canary-lm.3

10 months ago

2.15.1-canary-lm.9

11 months ago

2.15.2-canary-lm.2

10 months ago

2.15.2-canary-lm.1

10 months ago

2.15.2-canary-lm.6

10 months ago

2.15.2-canary-lm.5

10 months ago

2.15.0-verify-v3.0

11 months ago

2.15.0-verify-v3.1

11 months ago

2.15.1

11 months ago

2.15.1-canary.0

11 months ago

2.15.0-canary-lm.4

11 months ago

2.15.0-canary-lm.6

11 months ago

2.15.0-canary-lm.7

11 months ago

2.15.0-canary-lm.1

11 months ago

2.15.0-rc.0

11 months ago

2.15.0

11 months ago

2.15.0-canary-lm.0

11 months ago

2.14.0-canary.3

11 months ago

2.14.0-canary.5

11 months ago

2.14.0-canary.4

11 months ago

2.14.0-canary.2

11 months ago

2.14.0-canary.1

11 months ago

2.14.0-4cdaf58b

12 months ago

2.14.0-7a985e45

12 months ago

2.14.0-2040e092

12 months ago

2.13.3-13604ac8

12 months ago

2.14.0

12 months ago

2.14.0-rc-0

12 months ago

2.13.3

1 year ago

2.13.2

1 year ago

2.13.1

1 year ago

2.13.0

1 year ago

2.12.2-req-q.0

1 year ago

2.12.2-rc-0

1 year ago

2.12.2

1 year ago

2.12.1

1 year ago

2.12.0

1 year ago

2.11.3

1 year ago

2.11.2

1 year ago

2.11.1

1 year ago

2.11.0

2 years ago

2.10.6-canary-8

2 years ago

2.9.2-canary-1

2 years ago

2.8.7-rc.0

2 years ago

2.9.0-db80be53

2 years ago

2.9.1-5f93de27

2 years ago

2.9.0-e4636394

2 years ago

2.8.7-canary.8

2 years ago

2.9.2-canary.1

2 years ago

2.10.1

2 years ago

2.10.2

2 years ago

2.10.0

2 years ago

2.9.0-929ffe53

2 years ago

2.10.1-665f0a23

2 years ago

2.10.1-c362fdc6

2 years ago

2.10.5

2 years ago

2.10.6

2 years ago

2.10.3

2 years ago

2.10.4

2 years ago

2.10.0-canary.0

2 years ago

2.10.3-rc.0

2 years ago

2.10.4-184f2234

2 years ago

2.9.0

2 years ago

2.9.2-rc.0

2 years ago

2.9.2

2 years ago

2.9.1

2 years ago

2.10.5-canary-5

2 years ago

2.10.1-99a16bff

2 years ago

2.10.5-canary-7

2 years ago

2.10.5-canary-8

2 years ago

2.9.1-canary.0

2 years ago

2.9.1-canary.1

2 years ago

2.9.1-canary.2

2 years ago

2.8.6-409b14d4

2 years ago

2.9.0-canary.0

2 years ago

2.10.5-canary-01

2 years ago

2.10.4-rc.0

2 years ago

2.10.6-rc-0.1

2 years ago

2.9.0-e9ace057

2 years ago

2.10.3-canary.0

2 years ago

2.9.1-rc-e8b829

2 years ago

2.10.1-c46eedfa

2 years ago

2.8.7-canary.3

2 years ago

2.8.7-canary.2

2 years ago

2.8.7-canary.0

2 years ago

2.8.4-6fcdca29

2 years ago

2.8.5

2 years ago

2.8.6

2 years ago

2.8.5-3491a772

2 years ago

2.8.6-canary.0

2 years ago

2.8.5-canary-1

2 years ago

2.8.4

2 years ago

2.8.4-bb15cb97

2 years ago

2.8.4-ea99f08e

2 years ago

2.8.4-f0722c28

2 years ago

2.8.3-canary-2

2 years ago

2.8.3-canary-1

2 years ago

2.8.4-canary-1

2 years ago

2.8.1

2 years ago

2.8.0

2 years ago

2.7.7-8e063431

2 years ago

2.8.1-d072eaa1

2 years ago

2.8.0-canary-1

2 years ago

2.7.3-canary-4

2 years ago

2.8.1-0107ef6c

2 years ago

2.8.3

2 years ago

2.8.2

2 years ago

2.8.0-8b98a0a4

2 years ago

2.8.2-canary.0

2 years ago

2.8.0-3884b2f0

2 years ago

2.7.5-rc-cc9217a

2 years ago

2.8.1-canary-1

2 years ago

2.7.4-rc-a7ad32

2 years ago

2.7.3-rc-a381c3

2 years ago

2.7.4

2 years ago

2.7.6

2 years ago

2.7.5

2 years ago

2.7.8

2 years ago

2.7.7

2 years ago

2.7.8-canary-1

2 years ago

2.7.8-canary-2

2 years ago

2.7.9-7fa58fba

2 years ago

2.7.6-rc-fabb7af

2 years ago

2.7.7-rc-c8ff35d

2 years ago

2.8.3-9732d9dd

2 years ago

2.4.9-c4dcd8cf

2 years ago

2.5.2-1edcbbbc

2 years ago

2.5.2-4198a778

2 years ago

2.6.1-e3b9baab

2 years ago

2.5.2-c4056f44

2 years ago

2.4.9-ff902def

2 years ago

2.4.9-c072c335

2 years ago

2.6.2-rc-verify

2 years ago

2.6.2-rc-01

2 years ago

2.7.3-canary-1

2 years ago

2.7.3-canary-3

2 years ago

2.7.3-canary-2

2 years ago

2.7.0

2 years ago

2.7.2

2 years ago

2.7.1

2 years ago

2.4.10

2 years ago

2.5.2-77e444fc

2 years ago

2.4.7

2 years ago

2.4.6

2 years ago

2.4.9

2 years ago

2.4.8

2 years ago

2.5.2-1ab0d161

2 years ago

2.4.6-793c2c4b

2 years ago

2.7.1-canary-1

2 years ago

2.7.1-canary-2

2 years ago

2.6.1

2 years ago

2.6.0

2 years ago

2.4.7-a3bfbe12

2 years ago

2.6.2

2 years ago

2.6.2-rc-0.2

2 years ago

2.6.1-canary-2

2 years ago

2.6.1-canary-1

2 years ago

2.7.3

2 years ago

2.4.7-73d253e7

2 years ago

2.6.2-rc-4a445a

2 years ago

2.4.5-c0afa9fa

2 years ago

2.5.0

2 years ago

2.5.2

2 years ago

2.5.1

2 years ago

2.6.1-2c3df021

2 years ago

2.4.6-956e5f87

2 years ago

2.7.0-rc-1

2 years ago

2.7.0-rc-2

2 years ago

2.7.0-rc-3

2 years ago

2.4.7-ccfb1f33

2 years ago

2.4.7-4f7d9ddb

2 years ago

2.7.0-rc-4

2 years ago

2.4.4-45d260b7

2 years ago

2.4.1

2 years ago

2.4.3

2 years ago

2.4.2

2 years ago

2.4.5

2 years ago

2.4.4

2 years ago

2.4.3-a65f5498

2 years ago

2.4.3-286812ca

2 years ago

2.4.4-c454b368

2 years ago

2.4.0

2 years ago

2.3.4-7690b8b7

2 years ago

2.3.2-858d3960

2 years ago

2.3.2-73ba9e57-1

2 years ago

2.3.3

2 years ago

2.3.3-778440e6

2 years ago

2.3.1-9db1b17b

2 years ago

2.3.0-7a336602-1

2 years ago

2.3.1-1035808b

2 years ago

2.3.1-fb95c666

2 years ago

2.3.0-d99c4199

2 years ago

2.3.0-7a336602

2 years ago

2.3.0

2 years ago

2.3.2

2 years ago

2.3.1

2 years ago

2.0.0-636b7436.0

3 years ago

2.0.0-rc.4

3 years ago

2.2.0-82965d54

3 years ago

2.0.0-c8f344a6.0

3 years ago

2.0.0-8bbc6344.0

3 years ago

2.0.0-9bbb2943.0

3 years ago

2.0.0-5dcbd195.0

3 years ago

2.2.1

3 years ago

2.1.2

3 years ago

2.2.0

3 years ago

2.1.1

3 years ago

2.1.4

3 years ago

2.1.3

3 years ago

2.1.5

3 years ago

2.0.0-1aec2f40.0

3 years ago

2.1.2-eaa4818c

3 years ago

2.1.0

3 years ago

2.0.0

3 years ago

2.1.3-1d7c9de6

3 years ago

2.1.3-a040238d

3 years ago

2.1.3-1edb9cd9

3 years ago

2.2.0-6f8302d5

3 years ago

2.0.0-2cf22fb.0

3 years ago

2.0.0-1d956b6d.0

3 years ago

2.0.0-bbe8e01f.0

3 years ago

2.0.0-9f21d2a0.0

3 years ago

2.2.0-a30a3fd6

3 years ago

2.1.3-c6047312

3 years ago

2.0.0-3ab9f144.0

3 years ago

2.2.1-29d82574

3 years ago

2.0.0-7f8b8dcc.0

3 years ago

2.0.0-rc.3-1

3 years ago

2.0.0-rc.2-6

3 years ago

2.0.0-rc.2-5

3 years ago

2.0.0-rc.2

3 years ago