Sections in this article
Install the Client
First, install the kyokan-plasma-client
library via NPM:
$ npm install --save kyokan-plasma-client
This guide will be written in JavaScript, but the client itself is written in TypeScript and provides its own typings.
Instantiate the Client
Instantiating the Client is straightforward:
import Plasma from 'kyokan-plasma-client';
const web3 = new Web3('...');
const client = new Plasma({
web3: web3, // a Web3 instance
contractAddress: '0x123abc', // the address of the Plasma smart contract
rootUrl: 'localhost:6545', // the URL to a Plasma node
privateKey: '0x12345', // your private key
});
Note that whatever Web3 provider you use needs to have an unlocked account whose address belongs to the private key passed into the Plasma constructor if you want to be able to deposit, send, or exit.
Deposit And Send Some Funds
To deposit funds, use the deposit()
method on the Plasma class like this:
// all values are in Wei
const valueToDeposit = '10000000000';
const depositReceipt = await client.deposit(valueToDeposit);
The depositReceipt
returned by client.deposit
includes a nonce value that can be used to spend your deposit in subsequent transactions:
const sender = '0x1234....';
const amount = '999';
const fee = '0';
await client.send(sender, amount, fee, depositReceipt.nonce);
To send funds that don’t come directly from a deposit, simply omit the nonce parameter. The client will pick the correct UTXOs and spend them for you.