The ENS Expiration Manager is a smart contract that allows users to manage the expiration of their ENS domains.
$ git clone [email protected]:linkpoolio/ens-expiration-manager.git
# Network RPCs
export RPC_URL=
# Mainnet RPC
export MAINNET_RPC_URL=
# Private key for contract deployment
export PRIVATE_KEY=
# Explorer API key used to verify contracts
export EXPLORER_KEY=
# From anvil
export LOCAL_RPC_URL="http://localhost:8545"
export ANVIL_PRIVATE_KEY="" # Get from anvil after running for the first time, see below
# UI
export UI_ENS_EXPIRATION_MANAGER_CONTRACT_ADDRESS=
export UI_ENS_BASE_REGISTRAR_CONTRACT_ADDRESS=
Install any wallet to your browser (currently supports Metamask)
# <root>
$ docker compose up
- Open browser at localhost:3005
# Download foundry
$ curl -L https://foundry.paradigm.xyz | bash
# Install foundry
$ foundryup
# (Mac only) Install anvil (prereq: Homebrew)
$ brew install libusb
# <root>/contracts
$ make install
# <root>/contracts (run in new terminal window)
$ anvil
Note: each time anvil is restarted, the contract will need to be re-deployed but will have the same contract address assuming no contract changes
# <root>/contracts
# If deploying locally
$ make deploy-local
# Or if deploying to public network, set RPC_URL to desired network:
$ make deploy
# <root>/client
$ nvm use
$ yarn
# <root>/client/packages/ui
$ yarn start
- Open browser at localhost:3005
# <root>/contracts
make test-contracts-all
# <root>/client/packages/ui
$ yarn test
$ yarn tsc
$ yarn lint
$ yarn prettier