forked from Koniverse/SubWallet-Extension
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move the extension-dapp to docs (Koniverse#509)
Co-authored-by: Github Actions <[email protected]>
- Loading branch information
1 parent
087fc28
commit 431ae37
Showing
2 changed files
with
4 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,40 +1,3 @@ | ||
# @polkadot/extension-dapp | ||
|
||
A basic extractor that manipulates the `window.injectedWeb3` to retrieve all the providers added to the page. It has a number of utilities - | ||
|
||
- `web3Enable(dappName: string): Promise<InjectedExtension[]>` - to be called before anything else, retrieves the list of all injected extensions/providers | ||
- `web3Accounts(): Promise<InjectedAccountWithMeta[]>` - returns a list of all the injected accounts, accross all extensions (source in meta) | ||
- `web3AccountsSubscribe(cb: (accounts: InjectedAccountWithMeta[]) => any): Promise<Unsubcall>` - subscribes to the accounts accross all extensions, returning a full list as changes are made | ||
- `web3FromAddress(address: string): Promise<InjectedExtension>` - Retrieves a provider for a specific address | ||
- `web3FromSource(name: string): Promise<InjectedExtension>` - Retrieves a provider identified by the name | ||
- `isWeb3Injected: boolean` - boolean to indicate if `injectedWeb3` was found on the page | ||
- `web3EnablePromise: Promise<InjectedExtension[]> | null` - `null` or the promise as a result of the last call to `web3Enable` | ||
|
||
## Usage | ||
|
||
```js | ||
import { web3Accounts, web3Enable, web3FromAddress, web3ListRpcProviders, web3UseRpcProvider } from '@polkadot/extension-dapp'; | ||
|
||
// returns an array of all the injected sources | ||
// (this needs to be called first, before other requests) | ||
const allInjected = await web3Enable('my cool dapp'); | ||
|
||
// returns an array of { address, meta: { name, source } } | ||
// meta.source contains the name of the extension that provides this account | ||
const allAccounts = await web3Accounts(); | ||
|
||
// finds an injector for an address | ||
const injector = await web3FromAddress('5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFabHE'); | ||
|
||
// sets the signer for the address on the @polkadot/api. The alternative approach it to pass the signer through | ||
// options to signAndSend in the next step where we are sending (and skip this injection here), e.g | ||
// `.signAndSend(<address>, { signer: injector.signer }, (status) => { ... })` | ||
api.setSigner(injector.signer); | ||
|
||
// sign and send our transaction - notice here that the address of the account (as retrieved injected) | ||
// is passed through as the param to the `signAndSend`, the API then calls the extension to present | ||
// to the user and get it signed. Once complete, the api sends the tx + signature via the normal process | ||
api.tx.balances | ||
.transfer('5C5555yEXUcmEJ5kkcCMvdZjUo7NGJiQJMS7vZXEeoMhj3VQ', 123456) | ||
.signAndSend('5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFabHE', (status) => { ... }); | ||
``` | ||
Documentation available [in the polkadot-js doc](https://polkadot.js.org/docs/extension). |