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

dracoder-web3-package

v2.0.1

Published

Dracoder package used for web3 provider integration.

Downloads

10

Readme

Rocketchain-package.

Summary

Package used for web3 provider integration between client side and API.

A repository to integrate required interaction between platform user (on client app) and blockchain actions signatures. Then the info generated and logs are sent to the related API endpoints.

Index

  • Installation
  • Specification

Installation

npm install rocketchain-package

Dependencies used:

Axios, web3

Specification

Function: setClientServerUrl

Sets the client server url received. setClientServerUrl(param1)

Parameters:

param1: client server url address

Example:

setClientServerUrl("http://localhost:5000")

Return:

No return.

Function: metamaskConnect

Checks if client app user is logged in with Metamask (to be able to receive transaction signature requests) and returns a promise with the user wallet address. If not, Metamask prompts asking to log in.

Parameters:

No parameters

Example:

    const someFunctionThatNeedsTheUserWalletAddress = async() => {
        const walletAddress = await metamaskConnect()
        ...
    }

Return:

Returns a promise.

Success:

console.log(walletAddress)
0xECf8C3205B230a39a71354214561dAA83433Ae3B

Failure - string with error description if fails (depending on where the problem was)

console.log(connect)
"There is no account to connect to"
console.log(connect)
"There was a problem connecting to your Metamask wallet. Do you have Metamask installed?"

Function: clientTokenTransfer

Transfer -that must be signed- of some amount of token from the user to another receiver

clientTokenTransfer(param1, param2, param3)

Parameters:

  • param1: address receiver of the tokens
  • param2: address of the token contract that will be transferred
  • param3: amount of token to be transferred

Example:

tokenTransfer(0xe4513a7BCd98dE50Fe7984C82dAf5611beBa7170, 0xa6c99e129cecf74865f6ed847a62c63cd6e0c045, 17) 

Return:

Returns a promise:

Success: transaction object from Blockchain

{
  "blockHash": "0x59ae5fc6af98787806d2733e97bc749e057ef0bf6d1c85d2f42f3eed92b9cba1",
  "blockNumber": 9245548,
  "contractAddress": null,
  "cumulativeGasUsed": 8907523,
  "effectiveGasPrice": "0x3b9aca0e",
  "from": "0x212f260404a05e954bc9285bfae89d6b2bb45134",
  "gasUsed": 34494,
  "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000008000000000000010000008000000000000000000000000000000000040000000000000000000000000000000000000010000000000000000000000100000000004000000000004000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000",
  "status": true,
  "to": "0xa6c99e129cecf74865f6ed847a62c63cd6e0c045",
  "transactionHash": "0xe8992e16afc720381390cb54f1bb3a6a0e3a30fc143797dced38417b2a02f99e",
  "transactionIndex": 37,
  "type": "0x2",
  "events": {
    "Transfer": {
      "address": "0xa6C99E129cecF74865F6eD847a62c63cD6E0C045",
      "blockHash": "0x59ae5fc6af98787806d2733e97bc749e057ef0bf6d1c85d2f42f3eed92b9cba1",
      "blockNumber": 9245548,
      "logIndex": 92,
      "removed": false,
      "transactionHash": "0xe8992e16afc720381390cb54f1bb3a6a0e3a30fc143797dced38417b2a02f99e",
      "transactionIndex": 37,
      "id": "log_696ad3a5",
      "returnValues": {
        "0": "0x212f260404A05E954BC9285BFAe89D6B2bB45134",
        "1": "0xe4513a7BCd98dE50Fe7984C82dAf5611beBa7170",
        "2": "17",
        "from": "0x212f260404A05E954BC9285BFAe89D6B2bB45134",
        "to": "0xe4513a7BCd98dE50Fe7984C82dAf5611beBa7170",
        "value": "17"
      },
      "event": "Transfer",
      "signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
      "raw": {
        "data": "0x0000000000000000000000000000000000000000000000000000000000000011",
        "topics": [
          "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
          "0x000000000000000000000000212f260404a05e954bc9285bfae89d6b2bb45134",
          "0x000000000000000000000000e4513a7bcd98de50fe7984c82daf5611beba7170"
        ]
      }
    }
  }
}

Error: The log depends on where the error was produced

Function: tokenCreate

Creates a token using given token parameters and the user wallet address to relate the request

tokenCreate(param1, param2, param3, param4, param5)

Parameters:

  • param1: Name given to the token by the user
  • param2: total amount of tokens that will be created
  • param3: Symbol of the token given by the user
  • param4: Decimals of the token
  • param5: wallet address of the user that requested the token creation

Example:

const RocketchainPackage = require('rocketchain-package');
const someFunction = async () => {
        const createdToken = await RocketchainPackage.tokenCreate(
             "Token Doc",
             "44",
             "TkD",
             "0",
             "0xe4513a7BCd98dE50Fe7984C82dAf5611beBa7170",
        );
    }

Return:

Returns a promise.

Database object with all the creation Blockchain data related

console.log(createdToken);
{
  "data": {
    "is_transferred": false,
    "_id": "613628fcf7a6782270588ee1",
    "token_address": "0x85398185A1CBE64D7f8Bf4aD668AB7352A93F589",
    "wallet_address": "0xe4513a7BCd98dE50Fe7984C82dAf5611beBa7170",
    "amount": "44",
    "log_id": "613628fcf7a6782270588edf",
    "created_at": "2021-09-06T12:42:55.000Z",
    "__v": 0
  },
  "status": 200,
  "statusText": "OK",
  "headers": {
    "cache-control": "no-cache, private",
    "content-length": "278",
    "content-type": "text/html; charset=UTF-8"
  },
  "config": {
    "url": "http://rocketchain-server.test/api/token_creation_response",
    "method": "post",
    "data": "{\"nameOfToken\":\"Token Doc\",\"numberOfToken\":\"44\",\"symbolOfToken\":\"TkD\",\"numberOfDecimals\":\"0\",\"userWalletAddress\":\"0xe4513a7BCd98dE50Fe7984C82dAf5611beBa7170\"}",
    "headers": {
      "Accept": "application/json, text/plain, */*",
      "Content-Type": "application/json"
    },
    "transformRequest": [
      null
    ],
    "transformResponse": [
      null
    ],
    "timeout": 0,
    "xsrfCookieName": "XSRF-TOKEN",
    "xsrfHeaderName": "X-XSRF-TOKEN",
    "maxContentLength": -1,
    "maxBodyLength": -1,
    "transitional": {
      "silentJSONParsing": true,
      "forcedJSONParsing": true,
      "clarifyTimeoutError": false
    }
  },
  "request": {}
}

Function: tokenTransferWithTokenAddressOnly

Transfer linked with the token creation (as a second step) process

tokenTransferWithTokenAddressOnly(param1)

Parameters:

param1: token smart contract address.

(Retrieved from tokenCreate method response => data.token_address)

Example:

const RocketchainPackage = require('rocketchain-package');
const someFunction = async data => {
        const tokenTransferred = await RocketchainPackage.tokenTransferWithTokenAddressOnly("0x85398185A1CBE64D7f8Bf4aD668AB7352A93F589");
    };

Return:

Returns a promise.

Database object with all the Blockchain transfer data related

console.log(tokenTransferred);
{
	"blockHash": "0xd5da8d878e62ec7868e80d0df0676fe9f52a21af4a1277c40ab2cb1b7d092b95",
	"blockNumber": 9245705,
	"contractAddress": null,
	"cumulativeGasUsed": 3396087,
	"effectiveGasPrice": "0x3b9aca0d",
	"from": "0x212f260404a05e954bc9285bfae89d6b2bb45134",
	"gasUsed": 46794,
	"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000010004008000000000000000000000000000000000040000000000000000000000000000000000000010000000000000000000000100000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000002000000000000000000000000000000000000010000002000000000000000000000000000000000000000000000000000000000000000000000000000",
	"status": true,
	"to": "0x85398185a1cbe64d7f8bf4ad668ab7352a93f589",
	"transactionHash": "0x6cea70d5436e706a659ff339fc7b012576eafc6b28bcf9c93355fd19ad2a800b",
	"transactionIndex": 24,
	"type": "0x0",
	"events": {
		"Transfer": {
			"address": "0x85398185A1CBE64D7f8Bf4aD668AB7352A93F589",
			"blockHash": "0xd5da8d878e62ec7868e80d0df0676fe9f52a21af4a1277c40ab2cb1b7d092b95",
			"blockNumber": 9245705,
			"logIndex": 30,
			"removed": false,
			"transactionHash": "0x6cea70d5436e706a659ff339fc7b012576eafc6b28bcf9c93355fd19ad2a800b",
			"transactionIndex": 24,
			"id": "log_0dd77e89",
			"returnValues": {
				"0": "0x212f260404A05E954BC9285BFAe89D6B2bB45134",
				"1": "0xe4513a7BCd98dE50Fe7984C82dAf5611beBa7170",
				"2": "44",
				"from": "0x212f260404A05E954BC9285BFAe89D6B2bB45134",
				"to": "0xe4513a7BCd98dE50Fe7984C82dAf5611beBa7170",
				"value": "44"
			},
			"event": "Transfer",
			"signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
			"raw": {
				"data": "0x000000000000000000000000000000000000000000000000000000000000002c",
				"topics": [
					"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
					"0x000000000000000000000000212f260404a05e954bc9285bfae89d6b2bb45134",
					"0x000000000000000000000000e4513a7bcd98de50fe7984c82daf5611beba7170"
				]
			}
		}
	}
}

Function: getTokenOwnersBalance

Retrieves all the accounts that have owned (0 balance now) or currently own (positive balance) the token specified by the token contract address.

getTokenOwnersBalance(param1)

Parameters:

param1: smart contract token address.

Example:

const RocketchainPackage = require('rocketchain-package');
const someFunction = async () => {
        const ownersArray = await RocketchainPackage.getTokenOwnersBalance(0xa6c99e129cecf74865f6ed847a62c63cd6e0c045);                
    };

Return:

Returns a promise.

Array of objects. Each object represents a pair of owner-balance values.

console.log(ownersArray);
[{"owner":"0xe4513a7BCd98dE50Fe7984C82dAf5611beBa7170","balance":"41"},{"owner":"0x212f260404A05E954BC9285BFAe89D6B2bB45134","balance":"5959"}]

Function: isMetamaskInstalled

Checks if Metamask is installed in order to proceed with the rest of functionalities

isMetamaskInstalled()

Parameters:

No parameters required.

Example:

const RocketchainPackage = require('rocketchain-package');
const someFunction = async () => {
        const checkMetamask = await RocketchainPackage.isMetamaskInstalled();                
    };

Return:

Returns a response depending on Metamask is/is not installed.

{ ok: false, message: "You don't have Metamask installed." }

Function: checkWalletFormat

Checks if the wallet provided has the proper structure and format.

checkWalletFormat(param1)

Parameters:

param1: wallet address.

Example:

const RocketchainPackage = require('rocketchain-package');
const someFunction = async () => {
        const formatVerification = await RocketchainPackage.checkWalletFormat(0xLZf8C3205B230a39a71354214561dAA83433Ae4K);                
    };

Return

Returns a response depending on whether the data provided has the right format or not.

{ ok: true, message: "Proper address format" }

Function: selectOrAddPolygonMainNetwork

Selects or adds the Polygon Matic Mainnet to the Metamask wallet.

selectOrAddPolygonMainNetwork()

Parameters:

No parameters required.

Example:

const RocketchainPackage = require('rocketchain-package');
const someFunction = async () => {
        const selectOrAddPolygonMainNetwork = await RocketchainPackage.selectOrAddPolygonMainNetwork();                
    };

Return

Returns a response depending on whether the Polygon main network was previously added or needs to be added.

{ ok: true, message: "Matic Mainnet added successfully", response: ... }