Swisstronik Web3.js Plugin allows the users to use Web3.js library with Swisstronik
eth_estimateGas
eth_call
eth_sendTransaction
- Custom -
eth_getNodePublicKey
Note: Make sure you are using
web3
version 4.11.1 or higher in your project.
npm install @swisstronik/web3-plugin-swisstronik web3@latest --save
import { Web3 } from "web3";
import { SwisstronikPlugin } from "@swisstronik/web3-plugin-swisstronik";
const web3 = new Web3("https://json-rpc.testnet.swisstronik.com/"); // Any RPC node you wanted to connect with
web3.registerPlugin(new SwisstronikPlugin());
// Get node public key
web3.swisstronik.getNodePublicKey().then((resp) => {
console.log(resp);
});
import { Web3 } from "web3";
import { SwisstronikPlugin } from "@swisstronik/web3-plugin-swisstronik";
const web3 = new Web3("https://json-rpc.testnet.swisstronik.com/"); // Any RPC node you wanted to connect with
web3.registerPlugin(new SwisstronikPlugin());
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);
import { Web3, DEFAULT_RETURN_FORMAT } from "web3";
import { SwisstronikPlugin } from "@swisstronik/web3-plugin-swisstronik";
const web3 = new Web3("https://json-rpc.testnet.swisstronik.com/"); // Any RPC node you wanted to connect with
web3.registerPlugin(new SwisstronikPlugin());
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);
import { Web3 } from "web3";
import { SwisstronikPlugin } from "@swisstronik/web3-plugin-swisstronik";
// 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 SwisstronikPlugin("https://json-rpc.testnet.swisstronik.com/"));
Refer to Swisstronik Developer Docs for more information & usage scenarios.
To publish a new version of the package to npm, run the following command:
npm run build
npm publish
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.
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.