@harmony-js/core
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.57 • Public • Published

    @harmony-js/core

    This package provides a collection of apis to interact with Harmony blockchain.

    Installation

    npm install @harmony-js/core
    

    Usage

    Create a Harmony instance connecting to testnet

    const { Harmony } = require('@harmony-js/core');
    const {
      ChainID,
      ChainType,
      hexToNumber,
      numberToHex,
      fromWei,
      Units,
      Unit,
    } = require('@harmony-js/utils');
    
    const hmy = new Harmony(
        'https://api.s0.b.hmny.io/',
        {
            chainType: ChainType.Harmony,
            chainId: ChainID.HmyTestnet,
        },
    );

    Getting balance of account one103q7qe5t2505lypvltkqtddaef5tzfxwsse4z7

    hmy.blockchain
      .getBalance({ address: 'one103q7qe5t2505lypvltkqtddaef5tzfxwsse4z7' })
      .then((response) => {
        console.log('balance in ONEs: ' + fromWei(hexToNumber(response.result), Units.one));
      });

    Getting the latest block number

    hmy.blockchain.getBlockNumber().then((response) => {
      console.log('current block number: ' + hexToNumber(response.result));
    });

    Getting the block using block hash

    hmy.blockchain
      .getBlockByHash({
        blockHash: '0x08c46ae7249362a7d1f602d44c5a81f33ebdab6a7dcb6068f99610b57911aafd',
      })
      .then((response) => {
        console.log(response.result);
      });

    Getting the block using block number

    hmy.blockchain
      .getBlockByNumber({
        blockNumber: numberToHex(422635),
      })
      .then((response) => {
        console.log(response.result);
      });

    Getting the transaction using hash

    hmy.blockchain
      .getTransactionByHash({
        txnHash: '0x56c73eb993b18dc04baacec5c2e9d1292a090f6a978a4a1c461db5255fcbc831',
      })
      .then((response) => {
        console.log(response.result);
      });

    Getting the transaction receipt

    hmy.blockchain
      .getTransactionReceipt({
        txnHash: '0x56c73eb993b18dc04baacec5c2e9d1292a090f6a978a4a1c461db5255fcbc831',
      })
      .then((response) => {
        console.log(response.result);
      });

    Getting the cross-shard transaction receipt

    hmy.blockchain
      .getCxReceiptByHash({
        txnHash: '0xcd36a90ff5d5373285c2896ba7bbcd3f5324263c0cb8ecfb7cad2f5fc2fbdbda',
        shardID: 1,
      })
      .then((value) => {
        console.log(value.result);
      });

    Getting the deployed smart contract code

    hmy.blockchain
      .getCode({
        address: '0x08AE1abFE01aEA60a47663bCe0794eCCD5763c19',
        blockNumber: 'latest',
      })
      .then((response) => {
        console.log(response.result);
      });

    Getting the transaction count of an account

    hmy.blockchain
      .getTransactionCount({
        address: 'one1pdv9lrdwl0rg5vglh4xtyrv3wjk3wsqket7zxy',
      })
      .then((response) => {
        console.log(hexToNumber(response.result));
      });

    Getting the shard structure and details

    hmy.blockchain.getShardingStructure().then((response) => {
      console.log(response.result);
    });

    Transferring funds using sendTransaction

    // key corresponds to one103q7qe5t2505lypvltkqtddaef5tzfxwsse4z7, only has testnet balance
    hmy.wallet.addByPrivateKey('45e497bd45a9049bcb649016594489ac67b9f052a6cdf5cb74ee2427a60bf25e');
    
    async function transfer() {
      const txn = hmy.transactions.newTx({
        to: 'one166axnkjmghkf3df7xfvd0hn4dft8kemrza4cd2',
        value: new Unit(1).asOne().toWei(),
        // gas limit, you can use string
        gasLimit: '21000',
        // send token from shardID
        shardID: 0,
        // send token to toShardID
        toShardID: 0,
        // gas Price, you can use Unit class, and use Gwei, then remember to use toWei(), which will be transformed to BN
        gasPrice: new hmy.utils.Unit('1').asGwei().toWei(),
      });
    
      // sign the transaction use wallet;
      const signedTxn = await hmy.wallet.signTransaction(txn);
      const txnHash = await hmy.blockchain.sendTransaction(signedTxn);
      console.log(txnHash.result);
    }
    
    transfer();

    Keywords

    none

    Install

    npm i @harmony-js/core

    DownloadsWeekly Downloads

    2,260

    Version

    0.1.57

    License

    MIT

    Unpacked Size

    240 kB

    Total Files

    41

    Last publish

    Collaborators

    • ghostcorn
    • jhwon0820
    • gupadhyaya