1.1.2 • Published 10 months ago

arpitweb3-plugin v1.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Supported methods:

  • eth_estimateGas
  • eth_call
  • eth_sendTransaction
  • Custom - eth_getNodePublicKey

Installation

Note: Make sure you are using web3 version 4.11.1 or higher in your project.

npm install arpitweb3-plugin web3@latest --save

Usage

Basic Usage

import { Web3 } from "web3";
import { ArpitWeb3Plugin } from "arpitweb3-plugin";

const web3 = new Web3("https://json-rpc.testnet.swisstronik.com/"); // Any RPC node you wanted to connect with
web3.registerPlugin(new ArpitWeb3Plugin());

// Get node public key
web3.swisstronik.getNodePublicKey().then((resp) => {
  console.log(resp);
});

Sending transactions & performing calls

import { Web3 } from "web3";
import { ArpitWeb3Plugin } from "arpitweb3-plugin";

const web3 = new Web3("https://json-rpc.testnet.swisstronik.com/"); // Any RPC node you wanted to connect with
web3.registerPlugin(new ArpitWeb3Plugin());
let wallet = web3.eth.accounts.wallet.add("0x..."); // Private Key

let tx = {
  to: '0xF8bEB8c8Be514772097103e39C2ccE057117CC92',
  from: wallet[0].address,
  data: '0x61bc221a'
}
let callResult = await web3.eth.call(tx);
console.log(callResult);

let estimateGasResult = await web3.eth.estimateGas(tx);
console.log(estimateGasResult);

let sentTxReceipt = await web3.eth.sendTransaction(tx, undefined, {
  checkRevertBeforeSending: false,
});
console.log(sentTxReceipt);

Interacting with a Smart Contract

import { Web3, DEFAULT_RETURN_FORMAT } from "web3";
import { ArpitWeb3Plugin } from "arpitweb3-plugin";

const web3 = new Web3("https://json-rpc.testnet.swisstronik.com/"); // Any RPC node you wanted to connect with
web3.registerPlugin(new ArpitWeb3Plugin());
let wallet = web3.eth.accounts.wallet.add("0x..."); // Private Key

const contract = new web3.eth.Contract(abi, ERC20_CONTRACT_ADDRESS);

const balanceOf = await contract.methods
  .balanceOf(wallet[0].address)
  .call();
console.log(balanceOf);

const gas = await contract.methods
  .transfer(wallet[0].address, 5n)
  .estimateGas({ from: wallet[0].address });
console.log(gas);

const sentTxReceipt = await contract.methods.transfer(wallet[0].address, 5n).send({from: wallet[0].address});
console.log(sentTxReceipt);

Connecting Accounts to Web3

import { Web3 } from "web3";
import { ArpitWeb3Plugin } from "arpitweb3-plugin";

// With any RPC node and private key
const web3 = new Web3("https://json-rpc.testnet.swisstronik.com/");
const wallet = web3.eth.accounts.wallet.add("0x..."); // Private Key
const { address: account } = wallet[0];

// or with browser wallets
const web3 = new Web3(window.ethereum);
const [account] = await window.ethereum.request({
  method: "eth_requestAccounts"
});

web3.registerPlugin(new ArpitWeb3Plugin("https://json-rpc.testnet.swisstronik.com/"));

Refer to Swisstronik Developer Docs for more information & usage scenarios.

Publishing

To publish a new version of the package to npm, run the following command:

npm run build

npm publish

Resources

Safety

This is experimental software and subject to change over time.

This package is not audited and has not been tested for security. Use at your own risk. I do not give any warranties and will not be liable for any loss incurred through any use of this codebase.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

1.1.2

10 months ago

1.1.1

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago