@xcapit/lacchain-ethers
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

LACCHAIN Ethers

Ethers.js v6 compatible LAC-NET Models Provider & Signer

Community

Getting Started

Installation

npm i @xcapit/lacchain-ethers

or

yarn add @xcapit/lacchain-ethers

Usage

import { LacchainProvider, LacchainSigner } from '@xcapit/lacchain-ethers';

const provider = new LacchainProvider(RPC_URL);
const signer: LacchainSigner = new LacchainSigner(
  PRIVATE_KEY,
  provider,
  NODE_ADDRESS,
  EXPIRATION
);

Where

  • RPC_URL: the RPC url of your node (i.e. http://node-ip)
  • PRIVATE_KEY: is the ethereum account private key in hex
  • NODE_ADDRESS: the node address
  • EXPIRATION: the expiration unix timestamp of the transaction

Examples

Deploy smart contract

import { ContractFactory } from 'ethers';
import { LacchainProvider, LacchainSigner } from '@xcapit/lacchain-ethers';

const signer: LacchainSigner = new LacchainSigner(
  PRIVATE_KEY,
  new LacchainProvider(RPC_URL!),
  NODE_ADDRESS!,
  EXPIRATION
);

const contractFactory = new ContractFactory(
  CONTRACT_ABI,
  CONTRACT_BYTECODE,
  signer
);

const contract = await contractFactory.deploy(signer.address, TRUSTED_FORWARDER!);
const txReceipt = await contract.deploymentTransaction()?.wait();
console.log( `Contract Address: ${txReceipt?.contractAddress}` );

Where:

  • CONTRACT_ABI: is the contract ABI
  • CONTRACT_BYTECODE: is the contract bytecode
  • TRUSTED_FORWARDER: is the trusted forwarder setted by LACChain for the network (Protestnet/Mainnet)

Note: Don't use contract.address, instead use the example code above to get the contract address

Note 2: Find the correct trusted forwarder address in the LACChain documentation in the "Adapt your Smart Contract to our GAS Distribution Protocol" section.

Invoke and call contract

import { Contract } from 'ethers';
import { LacchainProvider, LacchainSigner } from '@xcapit/lacchain-ethers';

const signer: LacchainSigner = new LacchainSigner(
  PRIVATE_KEY,
  new LacchainProvider(RPC_URL!),
  NODE_ADDRESS!,
  EXPIRATION
);

const contract = new Contract(CONTRACT_ADDRESS, CONTRACT_ABI, signer);

await (await contract.someContractFunction()).wait();

Where:

  • CONTRACT_ADDRESS: is the contract address
  • CONTRACT_ABI: is the contract ABI

More examples

If you are looking for a complete example in some context go to this e2e test deploy-and-tx.test.ts.

/@xcapit/lacchain-ethers/

    Package Sidebar

    Install

    npm i @xcapit/lacchain-ethers

    Weekly Downloads

    2

    Version

    1.0.4

    License

    AGPL-3.0

    Unpacked Size

    54 kB

    Total Files

    18

    Last publish

    Collaborators

    • tipo-xcapit
    • gringonivoli
    • martin316
    • xcapit_one