@xpla/evm
v1.8.1
Published
TypeChain generated TypeScript interfaces for XPLA EVM smart contracts
Downloads
121
Readme
@xpla/evm
TypeScript interfaces for XPLA EVM smart contracts generated by TypeChain.
Installation
npm install @xpla/evm
# or
yarn add @xpla/evmUsage
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';
// Setup provider
const provider = new ethers.JsonRpcProvider('YOUR_RPC_URL');
// Create contract instances
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);
// Call contract functions
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);
// Send transaction
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');
// Create individual precompile contracts
const bankContract = createPrecompileBank(provider);
const govContract = createPrecompileGov(provider);
// Or create all precompile contracts at once
const contracts = createPrecompileContracts(provider);
const balance = await contracts.bank.balanceOf('WALLET_ADDRESS');
const proposals = await contracts.gov.proposals(1);Included Interfaces
IAuth- Authentication related contractsIBank- Bank/Token related contractsIGov- Governance related contractsStakingI- Staking related contractsDistributionI- Distribution related contractsISlashing- Slashing related contractsIWasm- CosmWasm related contractsBech32I- Bech32 encoding related contracts
Development
Build
npm run buildType Check
npm run typecheckLicense
MIT
