Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@harmony-js/staking

Package Overview
Dependencies
Maintainers
3
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@harmony-js/staking

staking transaction package for harmony

  • 0.1.58
  • next
  • npm
  • Socket score

Version published
Weekly downloads
622
increased by3.15%
Maintainers
3
Weekly downloads
 
Created
Source

@harmony-js/staking

This package provides a collection of apis to create, sign/send staking transaction, and receive confirm/receipt.

Installation

npm install @harmony-js/staking

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,
    },
);

Below, examples show how to send delegate, undelegate, and collect rewards staking transactions. First, set the chainId, gasLimit, gasPrice for all subsequent staking transactions

hmy.stakings.setTxParams({
  gasLimit: 25000,
  gasPrice: numberToHex(new hmy.utils.Unit('1').asGwei().toWei()),
  chainId: 2
});

Note: create and edit validator transactions are not fully supported in the sdk

Create delegate staking transaction

const delegate = hmy.stakings.delegate({
  delegatorAddress: 'one103q7qe5t2505lypvltkqtddaef5tzfxwsse4z7',
  validatorAddress: 'one1vfqqagdzz352mtvdl69v0hw953hm993n6v26yl',
  amount: numberToHex(new Unit(1000).asOne().toWei())
});
const delegateStakingTx = delegate.build();

Sign and send the delegate transaction and receive confirmation

// key corresponds to one103q7qe5t2505lypvltkqtddaef5tzfxwsse4z7, only has testnet balance
hmy.wallet.addByPrivateKey('45e497bd45a9049bcb649016594489ac67b9f052a6cdf5cb74ee2427a60bf25e');

hmy.wallet.signStaking(delegateStakingTx).then(signedTxn => {
  signedTxn.sendTransaction().then(([tx, hash]) => {
    console.log(hash);
    signedTxn.confirm(hash).then(response => {
      console.log(response.receipt);
    });
  });
});

Similarily, undelegate and collect reward transactions can be composed, signed and sent Create undelegate staking transaction

const undelegate = hmy.stakings.undelegate({
  delegatorAddress: 'one103q7qe5t2505lypvltkqtddaef5tzfxwsse4z7',
  validatorAddress: 'one1vfqqagdzz352mtvdl69v0hw953hm993n6v26yl',
  amount: numberToHex(new Unit(1000).asOne().toWei())
});
const undelegateStakingTx = undelegate.build();

Create collect rewards staking transaction

const collectRewards = hmy.stakings.collectRewards({
  delegatorAddress: 'one103q7qe5t2505lypvltkqtddaef5tzfxwsse4z7'
});
const collectRewardsStakingTx = collectRewards.build();

Also, similar to normal transaction, signing and sending can be performed asynchronously.

FAQs

Package last updated on 06 Jul 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc