/ethers-url

🦄 🔗 Convert high level ethers transactions into sharable links!

Primary LanguageTypeScriptCreative Commons Zero v1.0 UniversalCC0-1.0

⚠️ This project is still under development.

🦄 🐝 Ethereum URL parsing and generation using ethers.

🚀 getting started

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'

🙏 attribution

Huge thanks to @brunobar79 for his compliant implementations of EIP-681 and EIP-831:

✌️ license

CC0-1.0