ProviderKeeperMobile implements a Signature Provider for Signer protocol library.
Install using npm:
npm install @waves/signer @keeper-wallet/provider-keeper-mobile
or yarn
yarn add @waves/signer @keeper-wallet/provider-keeper-mobile
If your dapp uses a CSP enabled server setup, you need to append Wallet Connect endpoints for the following directives:
connect-src wss://relay.walletconnect.com https://registry.walletconnect.com;
frame-src https://verify.walletconnect.com;
For more information and common use cases for CSP, see the MDN CSP documentation.
-
You can specify application metadata used to display in Keeper Wallet.
import { ProviderKeeperMobile } from '@keeper-wallet/provider-keeper-mobile'; const keeperMobile = new ProviderKeeperMobile({ // meta: all fields are optional name: 'My dApp', // name of your dApp icon: 'https://avatars.githubusercontent.com/u/96250405', // display icon for your dApp });
🛈 The recommended icon size is at least 180×180 px.
-
import { Signer } from '@waves/signer'; import { ProviderKeeperMobile } from '@keeper-wallet/provider-keeper-mobile'; const signer = new Signer({ // Specify URL of the node on Testnet NODE_URL: 'https://nodes-testnet.wavesnodes.com', }); const keeperMobile = new ProviderKeeperMobile(); signer.setProvider(keeperMobile);
-
import { Signer } from '@waves/signer'; import { ProviderKeeperMobile } from '@keeper-wallet/provider-keeper-mobile'; const signer = new Signer(); const keeperMobile = new ProviderKeeperMobile(); signer.setProvider(keeperMobile);
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.