npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@d11k-ts/ethereum

v0.1.5

Published

ethereum module for d11k chain

Downloads

2

Readme

@d11k-ts/ethereum

Modules

  • client - Custom client for communicating with Ethereum by using web3 and ethers

Installation

yarn add @d11k-ts/ethereum

Documentation : Basic usage examples

Connect wallet to new EthereumClient

  • Create new EthereumChain client
  • Network default is Mainnet
  • InfuraApiKey: Optional (Api key provided by 'Infura' for mainnet calls. Sign up for getting one)
// Imports
import {Network} from '@d11k-ts/client'
import {EthereumClient} from '@d11k-ts/ethereum'

//Connect wallet, validate address and check balance 
const connectWallet = async () => {
  let phrase = "phrase"
  // Mainnet
  const ethClient = new EthereumClient({
    phrase
  })
  // testnet
  // const ethClient = new EthereumClient({ 
  //    phrase,
  //    network: Network.DojTestnet,
  //    rpcUrl: 'https://eth-test.h4s.dojima.network/',
  //        If above rpc url doesn't work use below one
  //    rpcUrl: 'https://eth-test.h4s.dojima.network:9545/',
  //    network: Network.Testnet,
  //    rpcUrl: 'https://goerli.infura.io/v3/',
  //    infuraApiKey: '***********************',
  //  })
  let address = ethClient.getAddress()
  try {
    const balance = await ethClient.getBalance(address)
    console.log(`Adress: ${address} with balance ${balance}`)

  } catch (error) {
    console.log(`Caught: ${error} `)
  }
}

Transfer eth using EthereumClient

  • Create new EthereumClient instance
  • Returns txHash as string
  • Note: Uses only required gas for Tx and remaining will be sent back
const transferEth = async () => {
  // First initiate EthereumClient
  let amount = 0.001
  let recipient = 'insert address'
  console.log("Building transaction")
  try {
    const txid = await ethClient.transfer({
      amount,
      recipient,
      // fee: number,  // optional. Calculated by default(if not provided) based on input amount.
      // memo: string,  // optional
    })
    console.log(`Transaction sent: ${txid}`)
    return txid
  } catch (error) {
    console.log(`Caught: ${error} `)
  }
}

Get transaction Data

  • Create new EthereumClient instance
  • Call getTransactionData(hash) returns hash-details
  • Call getTransactionsHistory(address) returns list of transactions (if any)
  • Get 'Etherscan' api key for txs list
  • Note : DojTestnet doesn't provide txs list
// Retrieve transaction data for a particular hash
const transactionData = async () => {
  let hash = "insert hash"
  try {
    const txData = await ethClient.getTransactionData(
      hash,
    )
    console.log(`Transaction data ${txData}`)
  } catch (error) {
    console.log(`Caught: ${error} `)
  }
}

// Retrieve transaction history for a particular address
const transactionHistory = async () => {
  let Address = ethClient.getAddress()
  try {
    const txHistory = await ethClient.getTransactionsHistory({
      address: Address,
      apiKey: '********',
    })
    console.log(`Found ${txHistory.total.toString()}`)
    txHistory.txs.forEach(tx => console.log(tx))
  } catch (error) {
    console.log(`Caught: ${error} `)
  }
}

Get transfer Fees estimations

  • Retrieve estimated gas fees from ethereum client
// Retrieve fee estimations from transaction parameters
const feeEstimations = async () => {
  let amountToTransfer = 0.001
  try {
    const fees = await ethClient.gasFees({
      amount: amount,
      // memo: string          // optional
    })
    console.log(`Fees : ${fees}`)

  } catch (error) {
    console.log(`Caught: ${error} `)
  }
}

Add ETH token into liquidity pool

  • Add ETH tokens into liquidity pool
  • Get Ethereum Inbound address from hermes chain
const addETHToLiquidityPool = async () => {
  let amountToTransfer = 0.001
  const inboundAddress = await ethClient.getEthereumInboundAddress()
  try {
    const liquidityPoolHash = await ethClient.addLiquidityPool(
      amountToTransfer,
      inboundAddress,
      dojAddress,           // optional dojima address
    )
    console.log('Liquidity pool hash : ', liquidityPoolHash)
  } catch (error) {
    console.log(`Caught ${error}`)
  }
}

Swap ETH tokens

  • Swap ETH tokens to required token using receiver address
  • Get Ethereum Inbound address from hermes chain
  • Supported tokens for swapping - 'DOT', 'DOJ', 'AR', 'SOL'
import {SwapAssetList} from '@d11k-ts/utils'

const swapETH = async () => {
  let amountToTransfer = 0.001
  const inboundAddress = await ethClient.getEthereumInboundAddress()
  try {
    const swapHash = await ethClient.swap(
       amountToTransfer,
      SwapAssetList,
      inboundAddress,
      reciepient                // Respective receiver SwapAssetList token address
    )
    console.log('Swap tx hash : ', swapHash)
  } catch (error) {
    console.log(`Caught ${error}`)
  }
}

Example Code

For sample code check out example test case in ./examples/test.ts