⚠️ This project is still under development.
🦄 🐝 Ethereum URL parsing and generation using ethers
.
You can download ethers-url
from Yarn:
yarn add ethers@5.7.2 bignumber.js ethers-url
Next, it's easy to take any existing contract interactions you're using and generate the corresponding URL:
import {ethers} from 'ethers';
import {wrap} from 'ethers-url';
import erc20 from './erc20.abi.json';
// This is a proxy of the Contract.
// Traditionally, where you'd usually invoke transactions, you will now receive equivalent transaction URLs.
const wrappedWeth = wrap(
new ethers.Contract('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', erc20)
);
const erc20TokenTransferUrl = await wrappedWeth.transfer(
ethers.utils.getAddress('0x8e23ee67d1332ad560396262c48ffbb01f93d052'),
ethers.BigNumber.from('1'),
); // 'ethereum:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/transfer?address=0x8e23Ee67d1332aD560396262C48ffbB01F93D052&uint256=1'
Huge thanks to @brunobar79
for his compliant implementations of EIP-681 and EIP-831: