@sei-js/evm
Version:
TypeScript library for EVM interactions on the Sei blockchain
38 lines (37 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ETHERS_ADDRESS_PRECOMPILE_ABI = void 0;
exports.getAddressPrecompileEthersV6Contract = getAddressPrecompileEthersV6Contract;
const ethers_1 = require("ethers");
const precompiles_1 = require("../precompiles");
/**
* The ABI for the Address precompile contract, used to create an Ethers contract.
* @category Cosmos Interoperability
*/
exports.ETHERS_ADDRESS_PRECOMPILE_ABI = precompiles_1.ADDRESS_PRECOMPILE_ABI;
/**
* Creates and returns a typed Ethers v6 contract instance for the Address precompile contract.
* This contract is used for interoperability between the EVM and Cosmos.
*
* @example
* ```tsx
* import { getAddressPrecompileEthersV6Contract } from '@sei-js/evm/ethers';
* import { ethers } from 'ethers';
*
* const provider = new ethers.BrowserProvider(window.ethereum); // or any other provider
* const signer = await provider.getSigner();
*
* const accounts = await provider.send('eth_requestAccounts', []);
*
* const addressPrecompileContract = getAddressPrecompileEthersV6Contract(signer);
*
* const seiAddr = await addressPrecompileContract.getSeiAddr(accounts[0]);
* ```
*
* @param runner A [Provider](https://docs.ethers.org/v6/api/providers/) (read-only) or ethers.Signer to use with the contract.
* @returns The typed contract instance for interacting with the precompile contract.
* @category Cosmos Interoperability
*/
function getAddressPrecompileEthersV6Contract(runner) {
return new ethers_1.Contract(precompiles_1.ADDRESS_PRECOMPILE_ADDRESS, exports.ETHERS_ADDRESS_PRECOMPILE_ABI, runner);
}