@near-wallet-selector/core
Version:
This is the core package for NEAR Wallet Selector.
81 lines (61 loc) • 3.72 kB
Markdown
# @near-wallet-selector/core
This is the core package for NEAR Wallet Selector.
## Upgrading from v9 to v10
If you're upgrading from v9.x to v10.x, please read the [Migration Guide](../../MIGRATION-v10.md) for detailed instructions on the breaking changes and how to update your code.
## Installation and Usage
The easiest way to use this package is to install it from the NPM registry
```bash
# Using pnpm
pnpm add -w @near-wallet-selector/core
# Using NPM.
npm install @near-wallet-selector/core
```
Then use it in your dApp:
```ts
import { setupWalletSelector } from "@near-wallet-selector/core";
import { setupMyNearWallet } from "@near-wallet-selector/my-near-wallet";
// The entire set of options can be found in the section below.
const selector = await setupWalletSelector({
network: "testnet",
modules: [setupMyNearWallet()],
});
// Example with createAccessKeyFor for limited access keys (object format)
const selectorWithLimitedAccess = await setupWalletSelector({
network: "testnet",
modules: [setupMyNearWallet()],
createAccessKeyFor: {
contractId: "guest-book.testnet",
methodNames: ["addMessage", "getMessages"]
},
});
// Example with createAccessKeyFor using string format (creates key with no method restrictions)
const selectorWithSimpleAccess = await setupWalletSelector({
network: "testnet",
modules: [setupMyNearWallet()],
createAccessKeyFor: "guest-book.testnet",
});
```
## Options
- `network` (`NetworkId | Network`): Network ID or object matching that of your dApp configuration . Network ID can be either `mainnet` or `testnet`.
- `networkId` (`string`): Custom network ID (e.g. `localnet`).
- `nodeUrl` (`string`): Custom URL for RPC requests.
- `helperUrl` (`string`): Custom URL for creating accounts.
- `explorerUrl` (`string`): Custom URL for the NEAR explorer.
- `indexerUrl` (`string`): Custom URL for the Indexer service.
- `debug` (`boolean?`): Enable internal logging for debugging purposes. Defaults to `false`.
- `optimizeWalletOrder` (`boolean?`): Enable automatic wallet order. Reorders last signed in wallet on top, then installed wallets over not installed and deprecated wallets.
- `randomizeWalletOrder` (`boolean?`): Randomize wallets order in the `More` section of the UI.
- `allowMultipleSelectors` (`boolean?`): Optionally allow creating new instances of wallet selector.
- `languageCode` (`string?`): Optionally set specific ISO 639-1 two-letter language code, disables language detection based on the browser's settings.
- `relayerUrl` (`string?`): Optionally set the URL that meta-transaction enabled wallet modules can use to submit DelegateActions to a relayer
- `createAccessKeyFor` (`string | object?`): The contract ID and method names to create a function call access key for. This allows wallets to create limited access keys for specific contract methods. Can be either:
- A string containing just the contract ID (creates access key with no method restrictions)
- An object with the following properties:
- `contractId` (`string`): The contract ID to create the access key for.
- `methodNames` (`Array<string>`): Array of method names that the access key will be limited to.
- `storage` (`StorageService?`): Async storage implementation. Useful when [`localStorage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) is unavailable. Defaults to `localStorage`.
- `modules` (`Array<WalletModuleFactory>`): List of wallets to support in your dApp.
## API Reference
You can find the entire API reference for Wallet Selector [here](./docs/api/selector.md).
## License
This repository is distributed under the terms of both the MIT license and the Apache License (Version 2.0).