@waves/provider-keeper
Version:
ProviderKeeper for Signer
116 lines (86 loc) • 3.03 kB
Markdown
# ProviderKeeper
[](https://www.npmjs.com/package/@waves/provider-keeper)
[](https://bundlephobia.com/package/@waves/provider-keeper)
[](https://bundlephobia.com/package/@waves/provider-keeper)
[](https://bundlephobia.com/package/@waves/provider-keeper)
[](https://bundlephobia.com/package/@waves/provider-keeper)
- [Overview](#overview)
- [Getting Started](#getting-started)
## Overview
ProviderKeeper implements a Signature Provider for [Signer](https://github.com/wavesplatform/signer) protocol library.
## Getting Started
### Library installation
Install using npm:
```sh
npm install @waves/signer @waves/provider-keeper
```
or yarn
```sh
yarn add @waves/signer @waves/provider-keeper
```
### Library initialization
Add library initialization to your app.
- For Testnet:
```js
import { Signer } from '@waves/signer';
import { ProviderKeeper } from '@waves/provider-keeper';
const signer = new Signer({
// Specify URL of the node on Testnet
NODE_URL: 'https://nodes-testnet.wavesnodes.com',
});
const keeper = new ProviderKeeper();
signer.setProvider(keeper);
```
- For Mainnet:
```js
import { Signer } from '@waves/signer';
import { ProviderKeeper } from '@waves/provider-keeper';
const signer = new Signer();
const keeper = new ProviderKeeper();
signer.setProvider(keeper);
```
You can also check if the Keeper Wallet is installed.
```js
import { isKeeperInstalled } from '@waves/provider-keeper';
const isInstalled = await isKeeperInstalled();
if (!isInstalled) {
// Some logic in case KeeperWallet is not installed
}
```
### Basic example
Now your application is ready to work with Waves Platform. Let's test it by implementing basic functionality.
For example, we could try to authenticate user and transfer funds:
```js
const user = await signer.login();
const [transfer] = await signer
.transfer({
recipient: '3Myqjf1D44wR8Vko4Tr5CwSzRNo2Vg9S7u7',
amount: 100000, // equals to 0.001 WAVES
assetId: null, // equals to WAVES
})
.broadcast();
```
Or invoke some dApp:
```js
const [invoke] = await signer
.invoke({
dApp: '3Fb641A9hWy63K18KsBJwns64McmdEATgJd',
fee: 1000000,
payment: [
{
assetId: '73pu8pHFNpj9tmWuYjqnZ962tXzJvLGX86dxjZxGYhoK',
amount: 7,
},
],
call: {
function: 'foo',
args: [
{ type: 'integer', value: 1 },
{ type: 'binary', value: 'base64:AAA=' },
{ type: 'string', value: 'foo' },
],
},
})
.broadcast();
```
For more examples see [Signer documentation](https://github.com/wavesplatform/signer/blob/master/README.md).