feat(BA-2964): Premium auction UI/UX for expired names in auction#2691
feat(BA-2964): Premium auction UI/UX for expired names in auction#2691stevieraykatz merged 7 commits intomasterfrom
Conversation
✅ Heimdall Review Status
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
|
||
| export function useBasenamesNameExpires(name: string) { | ||
| // Convert name to full basename format | ||
| const fullBasename = name.includes('.') ? (name as Basename) : formatBaseEthDomain(name, 8453); // Base mainnet |
There was a problem hiding this comment.
[nit] Prefer using base from viem
| const fullBasename = name.includes('.') ? (name as Basename) : formatBaseEthDomain(name, 8453); // Base mainnet | |
| import { base } from 'viem/chains'; | |
| const fullBasename = name.includes('.') ? (name as Basename) : formatBaseEthDomain(name, base.id); |
Also should we be supporting testnet here as well? usually we'd do:
const { basenameChain } = useBasenameChain();
const fullBasename = name.includes('.') ? (name as Basename) : formatBaseEthDomain(name, basenameChain.id);There was a problem hiding this comment.
Actually good catch. We shouldn't assume base mainnet and can use the useBasenameChain hook to fetch the chain id properly.
| // Add 90 days (grace period) to get the auction start time | ||
| const auctionStartTime = nameExpiresTimestamp | ||
| ? nameExpiresTimestamp + BigInt(GRACE_PERIOD_DURATION_SECONDS) | ||
| : undefined; |
There was a problem hiding this comment.
Is it safe to return undefined here? should we throw instead?
There was a problem hiding this comment.
Throwing is a good idea. It's handled properly in the functional portion of usePremiumEndDurationRemaining but could look weird in the modal text in PremiumExplainerModal.
| To ensure fair distribution of recently expired Basenames, all names have a price premium | ||
| which starts at 100 ETH that then decays exponentially to 0 over 21 days. |
There was a problem hiding this comment.
Does it decay to 0 or is there a base/min price?
There was a problem hiding this comment.
Good q, the premium component decays to 0 but the base price is always applied. Let me take another pass at copy.
There was a problem hiding this comment.
On second read, the context is specific to price premium so I think it's clear AND the modal shows the price breakdown between the premium and the base price. I think leaving this as-is is fine.
JFrankfurt
left a comment
There was a problem hiding this comment.
Arjun's comments all seem good and worth consideration. I have no further input. lgtm otherwise
Approved review 3384180620 from JFrankfurt is now dismissed due to new commit. Re-request for approval.
What changed? Why?
We had launch premium auction logic in the repo when we launched basenames. Expired names enter a similar dutch auction but the auction params are different. Specifically; the launch auction is 21 days long starting from the moment the name expires. As such the logic we initially had needed to be reworked to fetch the expiry time and then generate ui elements related to the auction given the live expiration auction params.
Screenshare.-.2025-10-24.3_47_40.PM.mp4
Notes to reviewers
How has it been tested?
Have you tested the following pages?
BaseWeb