Exit util
matic.js internally use ExitUtil for generating proofs. It is a class which has different methods for helping with exit utilities.
matic.js internally use ExitUtil for generating proofs. It is a class which has different methods for helping with exit utilities.
buildPayloadForExit
It exposes buildPayloadForExit method which can be used to generate proof.
import { ExitUtil, RootChain, use, Web3SideChainClient } from "@maticnetwork/maticjs";
import { Web3ClientPlugin } from "@maticnetwork/maticjs-web3";
import HDWalletProvider from "@truffle/hdwallet-provider";
import { from, privateKey, RPC } from "./config";
use(Web3ClientPlugin);
const client = new Web3SideChainClient<any>();
// initiate client
await client.init({
// log: true,
network: 'testnet',
version: 'amoy',
parent: {
provider: new HDWalletProvider(privateKey, RPC.parent),
defaultConfig: {
from
}
},
child: {
provider: new HDWalletProvider(privateKey, RPC.child),
defaultConfig: {
from
}
}
});
// create root chain instance
const rootChain = new RootChain(client, <root chain address>);
// create exitUtil Instance
const exitUtil = new ExitUtil(client, rootChain);
// generate proof
const proof = await exitUtil.buildPayloadForExit(
<burn tx hash>,
<log event signature>,
<isFast>
)Generating proof using a bridge client
Every bridge client, including POSClient exposes the exitUtil property.
import { POSClient,use } from "@maticnetwork/maticjs"
import { Web3ClientPlugin } from '@maticnetwork/maticjs-web3'
import HDWalletProvider from "@truffle/hdwallet-provider"
// install web3 plugin
use(Web3ClientPlugin);
const posClient = new POSClient();
await posClient.init({
network: 'testnet',
version: 'amoy',
parent: {
provider: new HDWalletProvider(privateKey, mainRPC),
defaultConfig: {
from : fromAddress
}
},
child: {
provider: new HDWalletProvider(privateKey, childRPC),
defaultConfig: {
from : fromAddress
}
}
});
const proof = await posClient.exitUtil.buildPayloadForExit(
<burn tx hash>,
<log event signature>,
<isFast>
)Edit on GitHub
Last updated on
ABI manager
matic.js internally uses ABIManager for handling ABI management, configuration for you. All of the ABI and config are taken from static repo.
Plugin
Using plugin you can inject your code into matic.js. It can be used to write common set of generic codes which can be provided to anyone using a package.