From 8d931472d83d1dbb3ef731070ae7f2b7689708d8 Mon Sep 17 00:00:00 2001 From: evilpeach Date: Wed, 15 Jan 2025 17:05:55 +0700 Subject: [PATCH 1/2] feat: improve constructor args, add optimizer config --- CHANGELOG.md | 1 + src/lib/components/forms/ControllerInput.tsx | 10 ++- .../components/ConstructorArgs.tsx | 49 +++++++++++---- .../components/EvmContractVerifyOptions.tsx | 14 +++-- .../components/OptimizerConfiguration.tsx | 56 +++++++++++++++++ .../evm-contract-verify/components/helper.ts | 63 +++++++++++++++++++ .../EvmContractVerifySolidityUploadFiles.tsx | 3 + src/lib/pages/evm-contract-verify/index.tsx | 14 +++-- src/lib/pages/evm-contract-verify/types.ts | 28 ++++++--- src/lib/styles/theme/components/input.ts | 4 +- 10 files changed, 209 insertions(+), 33 deletions(-) create mode 100644 src/lib/pages/evm-contract-verify/components/OptimizerConfiguration.tsx create mode 100644 src/lib/pages/evm-contract-verify/components/helper.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cf51a537..9d815d0de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Features +- [#1193](https://github.com/alleslabs/celatone-frontend/pull/1193) Add optimizer configuration to EVM contract verify page, fix constructor args, and Zod type - [#1188](https://github.com/alleslabs/celatone-frontend/pull/1188) Add request and simulate evm tx - [#1192](https://github.com/alleslabs/celatone-frontend/pull/1192) Add fixed bytes hex address util - [#1189](https://github.com/alleslabs/celatone-frontend/pull/1189) Add constructor args to EVM contract verify page diff --git a/src/lib/components/forms/ControllerInput.tsx b/src/lib/components/forms/ControllerInput.tsx index b33f640fc..823b4ee13 100644 --- a/src/lib/components/forms/ControllerInput.tsx +++ b/src/lib/components/forms/ControllerInput.tsx @@ -172,9 +172,13 @@ export const ControllerInput = ({ {isError && ( {error} )} - - {status?.message ? getResponseMsg(status, helperText) : helperText} - + {(status?.message || helperText) && ( + + {status?.message + ? getResponseMsg(status, helperText) + : helperText} + + )} {helperAction} diff --git a/src/lib/pages/evm-contract-verify/components/ConstructorArgs.tsx b/src/lib/pages/evm-contract-verify/components/ConstructorArgs.tsx index fd10d2776..5becbeadd 100644 --- a/src/lib/pages/evm-contract-verify/components/ConstructorArgs.tsx +++ b/src/lib/pages/evm-contract-verify/components/ConstructorArgs.tsx @@ -1,13 +1,26 @@ -import { Checkbox, Heading, Stack, Text, Textarea } from "@chakra-ui/react"; -import { Control, useController } from "react-hook-form"; +import { Box, Checkbox, Heading, Stack, Text } from "@chakra-ui/react"; +import { Control, useController, useWatch } from "react-hook-form"; import { EvmContractVerifyForm } from "../types"; +import { ControllerTextarea } from "lib/components/forms"; interface ConstructorArgsProps { control: Control; } export const ConstructorArgs = ({ control }: ConstructorArgsProps) => { - const { field } = useController({ + const { field: fieldEnabled } = useController({ + control, + name: "verifyForm.form.constructorArgs.enabled", + }); + + const { + fieldState: { error }, + } = useController({ + control, + name: "verifyForm.form.constructorArgs.value", + }); + + const constructorArgs = useWatch({ control, name: "verifyForm.form.constructorArgs", }); @@ -23,17 +36,31 @@ export const ConstructorArgs = ({ control }: ConstructorArgsProps) => { field.onChange(e.target.checked ? "" : undefined)} + pl={3} + isChecked={constructorArgs.enabled} + onChange={(e) => fieldEnabled.onChange(e.target.checked)} > Have constructor arguments -