KardiaChain JS SDK
KardiaChain JS SDK is a wrapper built on top of KardiaChain RCF protocol that helps developers to easily interact with KardiaChain's blockchain network.
This is just a quick introduction to Kardia JS SDK. For more detailed documentation, please refer to https://docs.kardiachain.io/js-sdk/
KardiaChain JS SDK contains 5 modules:
Account module
is for managing KardiaChain walletKAI module
is for interacting directly with KardiaChain's blockchain networkContract module
is for interacting with KardiaChain's smart contract.KRC20 module
is for interacting with KRC20 tokensTransaction module
is for creating KardiaChain's transaction.
KardiaChain JS SDK can be installed from npm
npm i kardia-js-sdk
import KardiaClient from 'kardia-js-sdk';
const RPC_ENDPOINT = 'YOUR_RPC_ENDPOINT';
const kardiaClient = new KardiaClient({ endpoint: RPC_ENDPOINT });
// Account module
const accountModule = kardiaClient.account;
// KAI module
const kaiModule = kardiaClient.kaiChain;
// Smart contract module
const smcModule = kardiaClient.contract;
// KRC20 module
const krcModule = kardiaClient.krc20;
// Transaction module
const transactionModule = kardiaClient.transaction;
import {KardiaAccount} from 'kardia-js-sdk';
const wallet = KardiaAccount.generateWallet();
// Expected result:
// {
// address: "YOUR_WALLET_ADDRESS",
// privateKey: "YOUR_ADDRESS_PRIVATE_KEY",
// balace: 0
// }
import KardiaClient from 'kardia-js-sdk';
const RPC_ENDPOINT = 'YOUR_RPC_ENDPOINT';
const kardiaClient = new KardiaClient({ endpoint: RPC_ENDPOINT });
// Account module
const accountModule = kardiaClient.account;
// Get balance
const balance = await accountModule.getBalance('YOUR_WALLET_ADDRESS');
import {KardiaAccount} from 'kardia-js-sdk';
const wallet = KardiaAccount.getWalletFromPK('YOUR_ADDRESS_PRIVATE_KEY');
// Expected result:
// {
// address: "YOUR_WALLET_ADDRESS",
// privateKey: "YOUR_ADDRESS_PRIVATE_KEY",
// balace: 123 // your wallet balance
// }
import {KardiaAccount} from 'kardia-js-sdk';
const wallet = KardiaAccount.getWalletFromMnemonic('YOUR_MNEMONIC_PHRASE');
// Expected result:
// {
// address: "YOUR_WALLET_ADDRESS",
// privateKey: "YOUR_ADDRESS_PRIVATE_KEY",
// balace: 123 // your wallet balance
// }
const topic = keccak256('Transfer(address,address,uint256)');
const filterId = await kardiaClient.kaiChain.newFilter({
fromBlock: 200000,
topics: [topic]
})
// To get all logs
const allLogs = await kardiaClient.kaiChain.getFilterLogs(filterId);
// To get logs since last poll
const logs = await kardiaClient.kaiChain.getFilterChanges(filterId);
import KardiaClient from 'kardia-js-sdk';
const RPC_ENDPOINT = 'YOUR_RPC_ENDPOINT';
const kardiaClient = new KardiaClient({ endpoint: RPC_ENDPOINT });
const krc20Instance = kardiaClient.krc20;
// Fetch KRC20 token's data from smart contract
await krc20Instance.getFromAddress('KRC20_TOKEN_ADDRESS');
const balance = await krc20Instance.balanceOf('YOUR_WALLET_ADDRESS');
// `balance` will be your wallet's balance, but with token's `decimals` padding.
// To get real ballance, use the following code
const decimals = krc20Instance.getDecimals();
const parsedBalance = balance / 10 ** decimals;
import KardiaClient from 'kardia-js-sdk';
const RPC_ENDPOINT = 'YOUR_RPC_ENDPOINT';
const kardiaClient = new KardiaClient({ endpoint: RPC_ENDPOINT });
const krc20Instance = kardiaClient.krc20;
const txResult = await krc20Instance.transfer(
'YOUR_WALLET_PRIVATE_KEY',
'RECEIVER_ADDRESS',
1 // Amount of tokens to send
);
import KardiaClient from 'kardia-js-sdk';
const RPC_ENDPOINT = 'YOUR_RPC_ENDPOINT';
const kardiaClient = new KardiaClient({ endpoint: RPC_ENDPOINT });
// Get your wallet's latest nonce
const nonce = await kardiaClient.account.getNonce('YOUR_WALLET_ADDRESS');
const txData = {
to: 'RECEIVER_WALLET_ADDRESS',
nonce,
gas: 3000000, // Gas limit
gasPrice: 1*10**9, // Minimum Gas Price = 1 OXY
value: 231095, // Amount of KAI to send
};
// Send transaction to network and get transaction hash immediately
const txHash = await kardiaClient.transaction.sendTransaction(
txData,
'YOUR_WALLET_PRIVATEKEY'
);
// txHash should be something like '0x0a2db5831c314363a97a79f416061a9daec5230f8b6306cd1c431b467c42f820'
// If you want to wait to the transaction to complete, follow the below code
const txResult = await kardiaClient.transaction.sendTransaction(
txData,
'YOUR_WALLET_PRIVATEKEY',
true, // Flag to indicate if you want to wait for the transaction to complete
50000 // Time (in ms) you want to wait for transaction to complete, default will be 300000 (300s)
);
import KardiaClient from 'kardia-js-sdk';
const RPC_ENDPOINT = 'YOUR_RPC_ENDPOINT';
const kardiaClient = new KardiaClient({ endpoint: RPC_ENDPOINT });
const txDetail = await kardiaClient.transaction.getTransaction('TRANSACTION_HASH');
import KardiaClient from 'kardia-js-sdk';
const RPC_ENDPOINT = 'YOUR_RPC_ENDPOINT';
const kardiaClient = new KardiaClient({ endpoint: RPC_ENDPOINT });
const txReceipt = await kardiaClient.transaction.getTransactionReceipt('TRANSACTION_HASH');
Last modified 1yr ago