ProviderKeeper implements a Signature Provider for Signer protocol library.
To install Signer and ProviderKeeper libraries use
npm i @turtlenetwork/signer @waves/provider-keeper
Add library initialization to your app.
-
For Testnet:
import { Signer } from '@turtlenetwork/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 authData = { data: 'server generated string', } const keeper = new ProviderKeeper(authData); signer.setProvider(keeper);
-
For Mainnet:
import { Signer } from '@turtlenetwork/signer'; import { ProviderKeeper } from '@waves/provider-keeper'; const signer = new Signer(); const authData = { data: 'server generated string', } const keeper = new ProviderKeeper(authData); signer.setProvider(keeper);
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.
npm ci
npm run build