@xpla/evm
TypeScript interfaces for XPLA EVM smart contracts generated by TypeChain.
Installation
npm install @xpla/evm
yarn add @xpla/evm
Usage
Using in CommonJS environment
const { ethers } = require('ethers');
const { IBank__factory, IGov__factory } = require('@xpla/evm');
Using in ES Modules environment
import { ethers } from 'ethers';
import { IBank__factory, IGov__factory } from '@xpla/evm';
Basic Usage
import { ethers } from 'ethers';
import {
IBank__factory,
IGov__factory,
StakingI__factory,
DistributionI__factory
} from '@xpla/evm';
const provider = new ethers.JsonRpcProvider('YOUR_RPC_URL');
const bankContract = IBank__factory.connect('CONTRACT_ADDRESS', provider);
const govContract = IGov__factory.connect('CONTRACT_ADDRESS', provider);
const stakingContract = StakingI__factory.connect('CONTRACT_ADDRESS', provider);
const distributionContract = DistributionI__factory.connect('CONTRACT_ADDRESS', provider);
const balance = await bankContract.balanceOf('WALLET_ADDRESS');
const proposals = await govContract.proposals(1);
Using with Signer
import { ethers } from 'ethers';
import { IBank__factory } from '@xpla/evm';
const provider = new ethers.JsonRpcProvider('YOUR_RPC_URL');
const signer = new ethers.Wallet('PRIVATE_KEY', provider);
const bankContract = IBank__factory.connect('CONTRACT_ADDRESS', signer);
const tx = await bankContract.transfer('TO_ADDRESS', ethers.parseEther('1.0'));
await tx.wait();
Using Precompile Contracts
For convenience, you can use pre-connected precompile contracts:
import { ethers } from 'ethers';
import {
createPrecompileBank,
createPrecompileGov,
createPrecompileContracts
} from '@xpla/evm';
const provider = new ethers.JsonRpcProvider('YOUR_RPC_URL');
const bankContract = createPrecompileBank(provider);
const govContract = createPrecompileGov(provider);
const contracts = createPrecompileContracts(provider);
const balance = await contracts.bank.balanceOf('WALLET_ADDRESS');
const proposals = await contracts.gov.proposals(1);
Included Interfaces
IAuth
- Authentication related contracts
IBank
- Bank/Token related contracts
IGov
- Governance related contracts
StakingI
- Staking related contracts
DistributionI
- Distribution related contracts
ISlashing
- Slashing related contracts
IWasm
- CosmWasm related contracts
Bech32I
- Bech32 encoding related contracts
Development
Build
npm run build
Type Check
npm run typecheck
License
MIT