@futureverse/evm
A utility package that simplifies EVM development on The Root Network.
Install
npm i @futureverse/evm
Usage
import {
collectionIdToERC721Address,
ERC721_PRECOMPILE_ABI,
} from '@futureverse/evm';
import { createPublicClient, http } from 'viem';
import { root } from 'viem/chains';
const client = createPublicClient({
chain: root,
transport: http(),
});
const owner = await client.readContract({
address: collectionIdToERC721Address(17508)
abi: ERC721_PRECOMPILE_ABI,
functionName: 'ownerOf',
args: [3248n]
})
API
ABIs
ERC20_ABI | ABI for the ERC-20 standard |
ERC721_ABI | ABI for the ERC-721 standard |
ERC1155_ABI | ABI for the ERC-1155 standard |
NFT_PRECOMPILE_ABI | ABI for the nft pallet |
SFT_PRECOMPILE_ABI | ABI for the sft pallet |
FEE_PROXY_PRECOMPILE_ABI | ABI for feeProxy pallet |
FUTUREPASS_PRECOMPILE_ABI | ABI for a futurepass account |
FUTUREPASS_REGISTRAR_PRECOMPILE_ABI | ABI for futurepass pallet |
DEX_PRECOMPILE_ABI | ABI for the dex pallet |
OWNABLE_ABI | ABI for the ownable interface |
MARKETPLACE_PRECOMBILE_ABI | ABI for the marketplace pallet |
MULTICALL3_ABI | ABI for the multicall3 contract |
Addresses
NFT_PRECOMPILE_ADDRESS: string | Precompile address for nft pallet |
SFT_PRECOMPILE_ADDRESS: string | Precompile address for sft pallet |
FUTUREPASS_REGISTRAR_PRECOMPILE_ADDRESS: string | Precompile address for futurepass pallet |
PEG_PRECOMPILE_ADDRESS: string | Precompile address for erc20Peg and nftPeg pallets |
DEX_PRECOMPILE_ADDRESS: string | Precompile address for dex pallet |
FEE_PROXY_PRECOMPILE_ADDRESS | Precompile address for feeProxy pallet |
MARKETPLACE_PRECOMPILE_ADDRESS | Precompile address for marketplace pallet |
MULTICALL3_ADDRESS | Address for multicall3 contract |
RNS_REGISTRAR_ADDRESS_ROOT | Address for rnsRegistrar contract on Root |
RNS_REGISTRAR_ADDRESS_PORCINI | Address for rnsRegistrar contract on Porcini |
Helpers
function assetIdToERC20Address(assetId: string | number): `0x${string}`;
function collectionIdToERC721Address(
collectionId: string | number
): `0x${string}`;
function collectionIdToERC1155Address(
collectionId: string | number
): `0x${string}`;
function contractAddressToNativeId(contractAddress: Address): number | null;
function isFuturepass(address: Address): boolean;