@maticnetwork/maticjs-fxportal
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

fx-portal.js

Library for interacting with fx-portal bridge.

fx-portal is plugin for maticjs.

Installation

npm i @maticnetwork/fx-portal

Install ethers library

Currently matic.js support two ethers library -

1. web3.js

npm i @maticnetwork/maticjs-web3

2. Ethers

npm i @maticnetwork/maticjs-ethers

DOCS

Initiate client

const { use } = require("@maticnetwork/maticjs");
const { Web3ClientPlugin } = require("@maticnetwork/maticjs-web3");
const { FxPortalPlugin, FxPortalClient } = require("@maticnetwork/fx-portal");

const HDWalletProvider = require("@truffle/hdwallet-provider");

// add Web3Plugin

use(Web3ClientPlugin);

// add FxPortal Plugin into maticjs
use(FxPortalPlugin);

const fxPortalClient = new FxPortalClient({
    network: 'testnet',
    version: 'mumbai',
    parent: {
        provider: new HDWalletProvider(privateKey, rootRPC),
        defaultConfig: {
            from
        }
    },
    child: {
        provider: new HDWalletProvider(privateKey, childRPC),
        defaultConfig: {
            from
        }
    }
});

await fxPortalClient.init();

ERC20

Method erc20 allows you to interact with erc20 token.

const erc20 = fxPortalClient.erc20(<tokenAddress>, <isRoot>);

getBalance

Get balance of a user by supplying user address

const balance = await erc20.getBalance(<user address>);

approve

Approve required amount for depositing to polygon chain

const approveResult = await erc20.approve(<amount>);
const txHash = await approveResult.getTransactionHash();
const receipt = await approveResult.getReceipt();

approveMax

Approve max amount for depositing to polygon chain

const approveResult = await erc20.approveMax();
const txHash = await approveResult.getTransactionHash();
const receipt = await approveResult.getReceipt();

getAllowance

Get approve amount of a user by supplying user address

const balance = await erc20.getAllowance(<user address>);

deposit

Deposit required amount from ethereum to polygon

const result = await erc20.deposit(<amount>, <user address>);
const txHash = await result.getTransactionHash();
const receipt = await result.getReceipt();

withdrawStart

Initiate withdraw process by burning the required amount.

const result = await erc20.withdrawStart(<amount>);
const txHash = await result.getTransactionHash();
const receipt = await result.getReceipt();

isCheckPointed

Check if transaction has been checkpointed or not.

await fxPortalClient.isCheckPointed(<tx hash>);

withdrawExit

Exit withdraw process by providng txHash received in withdrawStart process.

Note:- withdrawExit can be called after checkpoint has been submitted for withdrawStart.

const result = await erc20.withdrawExit(<burn tx hash>);
const txHash = await result.getTransactionHash();
const receipt = await result.getReceipt();

isWithdrawExited

Check if withdraw process has been completed by supplying burn transaction hash.

const balance = await erc20.isExited(<burn tx hash>);

withdrawExitFaster

Faster exit withdraw process by providng txHash received in withdrawStart process.

It is faster because it uses api to create the proof.

const result = await erc20.withdrawExitFaster(<burn tx hash>);
const txHash = await result.getTransactionHash();
const receipt = await result.getReceipt();

Readme

Keywords

none

Package Sidebar

Install

npm i @maticnetwork/maticjs-fxportal

Weekly Downloads

1

Version

1.0.1

License

ISC

Unpacked Size

108 kB

Total Files

24

Last publish

Collaborators

  • jminfantepolygon
  • nitinmittal23
  • devops-polygon.technology
  • ankitboghra