Installing the library
The following instructions assume you have a project already created, and you have npm
installed and operable.
Copy $ npm install idena-js
Import the library in your project
Copy import { Idena , LocalKeyStore } from "idena-js" ;
Configuration
Copy import { Idena , LocalKeyStore } from "idena-js" ;
const provider = new LocalKeyStore ();
const idena = new Idena (provider);
Example
Create random address and import
This will import your private key in memory letting idena
object to sign transaction using such key.
Copy const provider = new LocalKeyStore ();
const idena = new Idena (provider);
Import private key
This will import your private key in memory letting idena
object to sign transaction using such key.
Copy const privateKey = "6a666fb86f57ca37c333768982047781a4a2c31a902a89ee8c2b5bc7e12da444" ;
const provider = new LocalKeyStore (privateKey);
const idena = new Idena (provider);
Transfer
The transfer
operation requires an idena
object with an imported key having some funds.
Copy const to = "0xab5801a7d398351b8be11c439e05c5b3259aec9b" ;
const amount = 0.001 ;
const operation = await idena .transfer ({ amount , to });
console .log ( `Hash: ${ operation .hash } ` );
Wait for transaction mining
When a transaction is injected an Operation
object is returned. You can use the confirmation
method to wait for an operation confirmation.
Copy const to = "0xab5801a7d398351b8be11c439e05c5b3259aec9b" ;
const amount = 0.001 ;
const operation = await idena .transfer ({ amount , to });
await operation .confirmation ();
console .log ( `Hash: ${ operation .hash } ` );
Bulk transactions
You can also send more transactions in bulk.
Copy let operations = await idena .bulkTransactions ([
{ amount : 6.12 , to : "0xab5801a7d398351b8be11c439e05c5b3259aec9b" } ,
{ amount : 2.12 , to : "0xf8db1ee1be12b28aa12477fc66b296dccfa66609" } ,
{ amount : 4.93 , to : "0xbe314949e2b9d14c27fa6785323f7cfc9250f92a" }
]);
operations = await Promise .all ( operations .map (op => op .confirmation ()));
operations .forEach (op => console .log ( `Hash: ${ op .hash } ` ));
Balance
Following example shows how to retrieve balance and stake (where stake are the balance plus the frozen DNA due staking/mining activity).
Copy const address = "0xcf979f9472e38d45c577394747a3028ea7433bb5" ;
const { balance , stake } = await idena .getBalanceByAddress (address);
console .log (balance , stake);
Identity
This method returns an Identity object about identity address.
Copy const address = "0xcf979f9472e38d45c577394747a3028ea7433bb5" ;
const identity = await idena .getIdentityByAddress (address);
console .log (identity);
Retrieve address
Copy const address = await idena .getProvider () .getAddress ();
Retrieve current epoch
Copy const epoch = await idena .getProvider () .getEpoch ();