add network guardrails for name registration (#770)

This commit is contained in:
Jordan Frankfurt
2024-08-01 09:22:01 -05:00
committed by GitHub
parent 8a847206fa
commit a9c81529ea
2 changed files with 11 additions and 4 deletions

View File

@@ -244,7 +244,11 @@ export default function RegistrationForm() {
return (
<Button
onClick={registerNameCallback}
onClick={
connectedChain?.id === basenameChain.id
? registerNameCallback
: switchToIntendedNetwork
}
type="button"
variant={ButtonVariants.Black}
size={ButtonSizes.Medium}
@@ -253,7 +257,7 @@ export default function RegistrationForm() {
rounded
fullWidth
>
Register name
{connectedChain?.id === basenameChain.id ? 'Register name' : 'Get based'}
</Button>
);
}}

View File

@@ -71,6 +71,10 @@ export function useRegisterNameCallback(
const registerName = useCallback(async () => {
if (!address) return;
if (chainId !== basenameChain.id) {
await switchChainAsync({ chainId: basenameChain.id });
return;
}
const addressData = encodeFunctionData({
abi: L2ResolverAbi,
@@ -100,8 +104,6 @@ export function useRegisterNameCallback(
logEventWithContext('register_name_transaction_initiated', ActionType.click);
try {
await switchChainAsync({ chainId: basenameChain.id });
if (!capabilities || Object.keys(capabilities).length === 0) {
await writeContractAsync({
abi: REGISTER_CONTRACT_ABI,
@@ -136,6 +138,7 @@ export function useRegisterNameCallback(
}
}, [
address,
chainId,
basenameChain.id,
capabilities,
discountKey,