Skip to content

Keeper-Wallet/provider-keeper

Repository files navigation

ProviderKeeper

npm "" "" "" ""

Overview

ProviderKeeper implements a Signature Provider for Signer protocol library.

Getting Started

Library installation

Install using npm:

npm install @waves/signer @waves/provider-keeper

or yarn

yarn add @waves/signer @waves/provider-keeper

Library initialization

Add library initialization to your app.

  • For Testnet:

    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:

    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.

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:

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:

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.