{"version":3,"file":"static/chunks/9514-dd3b0053f8f1dd21.js","mappings":"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","sources":["webpack://_N_E/./lib/contracts/licenses.ts","webpack://_N_E/./ui/address/contract/contractSubmitAuditForm/fields/AuditComment.tsx","webpack://_N_E/./ui/address/contract/contractSubmitAuditForm/fields/AuditCompanyName.tsx","webpack://_N_E/./ui/address/contract/contractSubmitAuditForm/fields/AuditProjectName.tsx","webpack://_N_E/./ui/address/contract/contractSubmitAuditForm/fields/AuditProjectUrl.tsx","webpack://_N_E/./ui/address/contract/contractSubmitAuditForm/fields/AuditReportDate.tsx","webpack://_N_E/./ui/address/contract/contractSubmitAuditForm/fields/AuditReportUrl.tsx","webpack://_N_E/./ui/address/contract/contractSubmitAuditForm/fields/AuditSubmitterEmail.tsx","webpack://_N_E/./ui/address/contract/contractSubmitAuditForm/fields/AuditSubmitterIsOwner.tsx","webpack://_N_E/./ui/address/contract/contractSubmitAuditForm/fields/AuditSubmitterName.tsx","webpack://_N_E/./ui/address/contract/contractSubmitAuditForm/ContractSubmitAuditForm.tsx","webpack://_N_E/./ui/address/contract/ContractSecurityAudits.tsx","webpack://_N_E/./lib/isMetaKey.tsx","webpack://_N_E/./lib/stripLeadingSlash.ts","webpack://_N_E/./ui/shared/monaco/utils/themes.ts","webpack://_N_E/./ui/shared/monaco/utils/useThemeColors.ts","webpack://_N_E/./ui/shared/monaco/CodeEditorBreadcrumbs.tsx","webpack://_N_E/./ui/shared/monaco/CodeEditorLoading.tsx","webpack://_N_E/./ui/shared/monaco/CodeEditorFileIcon.tsx","webpack://_N_E/./ui/shared/monaco/CodeEditorMainFileIndicator.tsx","webpack://_N_E/./ui/shared/monaco/CodeEditorFileTree.tsx","webpack://_N_E/./ui/shared/monaco/CoderEditorCollapseButton.tsx","webpack://_N_E/./ui/shared/monaco/utils/sortFileTree.ts","webpack://_N_E/./ui/shared/monaco/utils/composeFileTree.ts","webpack://_N_E/./ui/shared/monaco/CodeEditorFileExplorer.tsx","webpack://_N_E/./ui/shared/monaco/CodeEditorSearchResultItem.tsx","webpack://_N_E/./ui/shared/monaco/utils/getFileName.ts","webpack://_N_E/./ui/shared/monaco/CodeEditorSearchSection.tsx","webpack://_N_E/./ui/shared/monaco/CodeEditorSearch.tsx","webpack://_N_E/./ui/shared/monaco/CodeEditorSideBar.tsx","webpack://_N_E/./ui/shared/monaco/utils/getFilePathParts.ts","webpack://_N_E/./ui/shared/monaco/CodeEditorTab.tsx","webpack://_N_E/./ui/shared/monaco/CodeEditorTabs.tsx","webpack://_N_E/./ui/shared/monaco/utils/sortByEndLineNumberAsc.ts","webpack://_N_E/./ui/shared/monaco/utils/addExternalLibraryWarningDecoration.ts","webpack://_N_E/./ui/shared/monaco/utils/addFileImportDecorations.ts","webpack://_N_E/./ui/shared/monaco/utils/addMainContractCodeDecoration.ts","webpack://_N_E/./ui/shared/monaco/utils/getFullPathOfImportedFile.ts","webpack://_N_E/./ui/shared/monaco/CodeEditor.tsx","webpack://_N_E/./ui/shared/monaco/utils/formatFilePath.ts","webpack://_N_E/./ui/address/contract/ContractCodeIdes.tsx","webpack://_N_E/./ui/address/contract/ContractExternalLibraries.tsx","webpack://_N_E/./ui/address/contract/ContractSourceCode.tsx","webpack://_N_E/./ui/address/contract/ContractCode.tsx","webpack://_N_E/./ui/address/contract/methods/ContractConnectWallet.tsx","webpack://_N_E/./ui/address/contract/methods/ContractCustomAbiAlert.tsx","webpack://_N_E/./ui/address/contract/methods/utils.ts","webpack://_N_E/./ui/address/contract/methods/form/ContractMethodArrayButton.tsx","webpack://_N_E/./ui/address/contract/methods/form/ContractMethodFieldAccordion.tsx","webpack://_N_E/./ui/address/contract/methods/form/utils.ts","webpack://_N_E/./ui/address/contract/methods/form/ContractMethodFieldLabel.tsx","webpack://_N_E/./ui/address/contract/methods/form/ContractMethodMultiplyButton.tsx","webpack://_N_E/./ui/address/contract/methods/form/useFormatFieldValue.tsx","webpack://_N_E/./ui/address/contract/methods/form/useValidateField.tsx","webpack://_N_E/./ui/address/contract/methods/form/ContractMethodFieldInput.tsx","webpack://_N_E/./ui/address/contract/methods/form/ContractMethodFieldInputTuple.tsx","webpack://_N_E/./ui/address/contract/methods/form/ContractMethodFieldInputArray.tsx","webpack://_N_E/./ui/address/contract/methods/form/resultPublicClient/ItemLabel.tsx","webpack://_N_E/./ui/address/contract/methods/form/resultPublicClient/utils.ts","webpack://_N_E/./ui/address/contract/methods/form/resultPublicClient/ItemPrimitive.tsx","webpack://_N_E/./ui/address/contract/methods/form/resultPublicClient/ItemTuple.tsx","webpack://_N_E/./ui/address/contract/methods/form/resultPublicClient/ItemArray.tsx","webpack://_N_E/./ui/address/contract/methods/form/resultPublicClient/Item.tsx","webpack://_N_E/./ui/address/contract/methods/form/ContractMethodResultPublicClient.tsx","webpack://_N_E/./ui/address/contract/methods/form/ContractMethodResultWalletClient.tsx","webpack://_N_E/./ui/address/contract/methods/form/ContractMethodForm.tsx","webpack://_N_E/./ui/address/contract/methods/useScrollToMethod.ts","webpack://_N_E/./ui/address/contract/methods/ContractAbiItem.tsx","webpack://_N_E/./ui/address/contract/methods/useCallMethodPublicClient.ts","webpack://_N_E/./ui/address/contract/methods/useCallMethodWalletClient.ts","webpack://_N_E/./ui/address/contract/methods/useFormSubmit.ts","webpack://_N_E/./ui/address/contract/methods/ContractAbi.tsx","webpack://_N_E/./ui/address/contract/methods/ContractMethods.tsx","webpack://_N_E/./ui/address/contract/methods/ContractMethodsCustom.tsx","webpack://_N_E/./ui/shared/links/LinkNewTab.tsx","webpack://_N_E/./ui/address/contract/methods/ContractImplementationAddress.tsx","webpack://_N_E/./ui/address/contract/methods/ContractMethodsProxy.tsx","webpack://_N_E/./ui/address/contract/methods/ContractMethodsRegular.tsx","webpack://_N_E/./lib/hooks/useContractTabs.tsx","webpack://_N_E/./lib/validations/email.ts","webpack://_N_E/./lib/validations/url.ts","webpack://_N_E/./stubs/contract.ts","webpack://_N_E/./ui/address/AddressContract.tsx","webpack://_N_E/./ui/shared/CheckboxInput.tsx","webpack://_N_E/./ui/shared/EntityTags/formatUserTags.ts","webpack://_N_E/./ui/shared/EntityTags/sortEntityTags.ts","webpack://_N_E/./ui/shared/ResetIconButton.tsx"],"sourcesContent":["import type { ContractLicense } from 'types/client/contract';\n\nexport const CONTRACT_LICENSES: Array = [\n {\n type: 'none',\n label: 'None',\n title: 'No License',\n url: 'https://choosealicense.com/no-permission/',\n },\n {\n type: 'unlicense',\n label: 'Unlicense',\n title: 'The Unlicense',\n url: 'https://choosealicense.com/licenses/unlicense/',\n },\n {\n type: 'mit',\n label: 'MIT',\n title: 'MIT License',\n url: 'https://choosealicense.com/licenses/mit/',\n },\n {\n type: 'gnu_gpl_v2',\n label: 'GNU GPLv2',\n title: 'GNU General Public License v2.0',\n url: 'https://choosealicense.com/licenses/gpl-2.0/',\n },\n {\n type: 'gnu_gpl_v3',\n label: 'GNU GPLv3',\n title: 'GNU General Public License v3.0',\n url: 'https://choosealicense.com/licenses/gpl-3.0/',\n },\n {\n type: 'gnu_lgpl_v2_1',\n label: 'GNU LGPLv2.1',\n title: 'GNU Lesser General Public License v2.1',\n url: 'https://choosealicense.com/licenses/lgpl-2.1/',\n },\n {\n type: 'gnu_lgpl_v3',\n label: 'GNU LGPLv3',\n title: 'GNU Lesser General Public License v3.0',\n url: 'https://choosealicense.com/licenses/lgpl-3.0/',\n },\n {\n type: 'bsd_2_clause',\n label: 'BSD-2-Clause',\n title: 'BSD 2-clause \"Simplified\" license',\n url: 'https://choosealicense.com/licenses/bsd-2-clause/',\n },\n {\n type: 'bsd_3_clause',\n label: 'BSD-3-Clause',\n title: 'BSD 3-clause \"New\" Or \"Revised\" license',\n url: 'https://choosealicense.com/licenses/bsd-3-clause/',\n },\n {\n type: 'mpl_2_0',\n label: 'MPL-2.0',\n title: 'Mozilla Public License 2.0',\n url: 'https://choosealicense.com/licenses/mpl-2.0/',\n },\n {\n type: 'osl_3_0',\n label: 'OSL-3.0',\n title: 'Open Software License 3.0',\n url: 'https://choosealicense.com/licenses/osl-3.0/',\n },\n {\n type: 'apache_2_0',\n label: 'Apache',\n title: 'Apache 2.0',\n url: 'https://choosealicense.com/licenses/apache-2.0/',\n },\n {\n type: 'gnu_agpl_v3',\n label: 'GNU AGPLv3',\n title: 'GNU Affero General Public License',\n url: 'https://choosealicense.com/licenses/agpl-3.0/',\n },\n {\n type: 'bsl_1_1',\n label: 'BSL 1.1',\n title: 'Business Source License',\n url: 'https://mariadb.com/bsl11/',\n },\n];\n","import { FormControl, Textarea } from '@chakra-ui/react';\nimport React from 'react';\nimport type { Control, ControllerProps } from 'react-hook-form';\nimport { Controller } from 'react-hook-form';\n\nimport InputPlaceholder from 'ui/shared/InputPlaceholder';\n\nimport type { Inputs } from '../ContractSubmitAuditForm';\n\ninterface Props {\n control: Control;\n}\n\nconst AuditComment = ({ control }: Props) => {\n const renderControl: ControllerProps['render'] = React.useCallback(({ field, fieldState }) => {\n return (\n \n \n \n \n );\n }, [ ]);\n\n return (\n \n );\n};\n\nexport default React.memo(AuditComment);\n","import { FormControl, Input } from '@chakra-ui/react';\nimport React from 'react';\nimport type { Control, ControllerProps } from 'react-hook-form';\nimport { Controller } from 'react-hook-form';\n\nimport InputPlaceholder from 'ui/shared/InputPlaceholder';\n\nimport type { Inputs } from '../ContractSubmitAuditForm';\n\ninterface Props {\n control: Control;\n}\n\nconst AuditCompanyName = ({ control }: Props) => {\n const renderControl: ControllerProps['render'] = React.useCallback(({ field, fieldState }) => {\n return (\n \n \n \n \n );\n }, [ ]);\n\n return (\n \n );\n};\n\nexport default React.memo(AuditCompanyName);\n","import { FormControl, Input } from '@chakra-ui/react';\nimport React from 'react';\nimport type { Control, ControllerProps } from 'react-hook-form';\nimport { Controller } from 'react-hook-form';\n\nimport InputPlaceholder from 'ui/shared/InputPlaceholder';\n\nimport type { Inputs } from '../ContractSubmitAuditForm';\n\ninterface Props {\n control: Control;\n}\n\nconst AuditProjectName = ({ control }: Props) => {\n const renderControl: ControllerProps['render'] = React.useCallback(({ field, fieldState }) => {\n return (\n \n \n \n \n );\n }, [ ]);\n\n return (\n \n );\n};\n\nexport default React.memo(AuditProjectName);\n","import { FormControl, Input } from '@chakra-ui/react';\nimport React from 'react';\nimport type { Control, ControllerProps } from 'react-hook-form';\nimport { Controller } from 'react-hook-form';\n\nimport { validator as validateUrl } from 'lib/validations/url';\nimport InputPlaceholder from 'ui/shared/InputPlaceholder';\n\nimport type { Inputs } from '../ContractSubmitAuditForm';\n\ninterface Props {\n control: Control;\n}\n\nconst AuditProjectUrl = ({ control }: Props) => {\n const renderControl: ControllerProps['render'] = React.useCallback(({ field, fieldState }) => {\n return (\n \n \n \n \n );\n }, [ ]);\n\n return (\n \n );\n};\n\nexport default React.memo(AuditProjectUrl);\n","import { FormControl, Input } from '@chakra-ui/react';\nimport React from 'react';\nimport type { Control, ControllerProps } from 'react-hook-form';\nimport { Controller } from 'react-hook-form';\n\nimport dayjs from 'lib/date/dayjs';\nimport InputPlaceholder from 'ui/shared/InputPlaceholder';\n\nimport type { Inputs } from '../ContractSubmitAuditForm';\n\ninterface Props {\n control: Control;\n}\n\nconst AuditCompanyName = ({ control }: Props) => {\n const renderControl: ControllerProps['render'] = React.useCallback(({ field, fieldState }) => {\n return (\n \n \n \n \n );\n }, [ ]);\n\n return (\n \n );\n};\n\nexport default React.memo(AuditCompanyName);\n","import { FormControl, Input } from '@chakra-ui/react';\nimport React from 'react';\nimport type { Control, ControllerProps } from 'react-hook-form';\nimport { Controller } from 'react-hook-form';\n\nimport { validator as validateUrl } from 'lib/validations/url';\nimport InputPlaceholder from 'ui/shared/InputPlaceholder';\n\nimport type { Inputs } from '../ContractSubmitAuditForm';\n\ninterface Props {\n control: Control;\n}\n\nconst AuditReportUrl = ({ control }: Props) => {\n const renderControl: ControllerProps['render'] = React.useCallback(({ field, fieldState }) => {\n return (\n \n \n \n \n );\n }, [ ]);\n\n return (\n \n );\n};\n\nexport default React.memo(AuditReportUrl);\n","import { FormControl, Input } from '@chakra-ui/react';\nimport React from 'react';\nimport type { Control, ControllerProps } from 'react-hook-form';\nimport { Controller } from 'react-hook-form';\n\nimport { EMAIL_REGEXP } from 'lib/validations/email';\nimport InputPlaceholder from 'ui/shared/InputPlaceholder';\n\nimport type { Inputs } from '../ContractSubmitAuditForm';\n\ninterface Props {\n control: Control;\n}\n\nconst AuditSubmitterEmail = ({ control }: Props) => {\n const renderControl: ControllerProps['render'] = React.useCallback(({ field, fieldState }) => {\n return (\n \n \n \n \n );\n }, [ ]);\n\n return (\n \n );\n};\n\nexport default React.memo(AuditSubmitterEmail);\n","import { FormControl } from '@chakra-ui/react';\nimport React from 'react';\nimport type { Control, ControllerProps } from 'react-hook-form';\nimport { Controller } from 'react-hook-form';\n\nimport CheckboxInput from 'ui/shared/CheckboxInput';\n\nimport type { Inputs } from '../ContractSubmitAuditForm';\n\ninterface Props {\n control: Control;\n}\n\nconst AuditSubmitterIsOwner = ({ control }: Props) => {\n const renderControl: ControllerProps['render'] = React.useCallback(({ field }) => {\n return (\n \n \n text=\"I'm the contract owner\"\n field={ field }\n />\n \n );\n }, [ ]);\n\n return (\n \n );\n};\n\nexport default React.memo(AuditSubmitterIsOwner);\n","import { FormControl, Input } from '@chakra-ui/react';\nimport React from 'react';\nimport type { Control, ControllerProps } from 'react-hook-form';\nimport { Controller } from 'react-hook-form';\n\nimport InputPlaceholder from 'ui/shared/InputPlaceholder';\n\nimport type { Inputs } from '../ContractSubmitAuditForm';\n\ninterface Props {\n control: Control;\n}\n\nconst AuditSubmitterName = ({ control }: Props) => {\n const renderControl: ControllerProps['render'] = React.useCallback(({ field, fieldState }) => {\n return (\n \n \n \n \n );\n }, [ ]);\n\n return (\n \n );\n};\n\nexport default React.memo(AuditSubmitterName);\n","import { Button, VStack } from '@chakra-ui/react';\nimport React from 'react';\nimport type { SubmitHandler } from 'react-hook-form';\nimport { useForm } from 'react-hook-form';\n\nimport type { SmartContractSecurityAuditSubmission } from 'types/api/contract';\n\nimport type { ResourceError } from 'lib/api/resources';\nimport useApiFetch from 'lib/api/useApiFetch';\nimport useToast from 'lib/hooks/useToast';\n\nimport AuditComment from './fields/AuditComment';\nimport AuditCompanyName from './fields/AuditCompanyName';\nimport AuditProjectName from './fields/AuditProjectName';\nimport AuditProjectUrl from './fields/AuditProjectUrl';\nimport AuditReportDate from './fields/AuditReportDate';\nimport AuditReportUrl from './fields/AuditReportUrl';\nimport AuditSubmitterEmail from './fields/AuditSubmitterEmail';\nimport AuditSubmitterIsOwner from './fields/AuditSubmitterIsOwner';\nimport AuditSubmitterName from './fields/AuditSubmitterName';\n\ninterface Props {\n address?: string;\n onSuccess: () => void;\n}\n\nexport type Inputs = {\n submitter_name: string;\n submitter_email: string;\n is_project_owner: boolean;\n project_name: string;\n project_url: string;\n audit_company_name: string;\n audit_report_url: string;\n audit_publish_date: string;\n comment?: string;\n}\n\ntype AuditSubmissionErrors = {\n errors: Record>;\n}\n\nconst ContractSubmitAuditForm = ({ address, onSuccess }: Props) => {\n const containerRef = React.useRef(null);\n\n const apiFetch = useApiFetch();\n const toast = useToast();\n\n const { handleSubmit, formState, control, setError } = useForm({\n mode: 'onTouched',\n defaultValues: { is_project_owner: false },\n });\n\n const onFormSubmit: SubmitHandler = React.useCallback(async(data) => {\n try {\n await apiFetch<'contract_security_audits', SmartContractSecurityAuditSubmission, AuditSubmissionErrors>('contract_security_audits', {\n pathParams: { hash: address },\n fetchParams: {\n method: 'POST',\n body: data,\n },\n });\n\n toast({\n position: 'top-right',\n title: 'Success',\n description: 'Your audit report has been successfully submitted for review',\n status: 'success',\n variant: 'subtle',\n isClosable: true,\n });\n\n onSuccess();\n\n } catch (_error) {\n const error = _error as ResourceError;\n // add scroll to the error field\n const errorMap = error?.payload?.errors;\n if (errorMap && Object.keys(errorMap).length) {\n (Object.keys(errorMap) as Array).forEach((errorField) => {\n setError(errorField, { type: 'custom', message: errorMap[errorField].join(', ') });\n });\n } else {\n toast({\n position: 'top-right',\n title: 'Error',\n description: (_error as ResourceError<{ message: string }>)?.payload?.message || 'Something went wrong. Try again later.',\n status: 'error',\n variant: 'subtle',\n isClosable: true,\n });\n }\n }\n }, [ apiFetch, address, toast, setError, onSuccess ]);\n\n return (\n
\n \n \n \n \n \n \n \n \n \n\n \n \n \n Send request\n \n \n );\n};\n\nexport default React.memo(ContractSubmitAuditForm);\n","import { Box, Button, useDisclosure } from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { SmartContractSecurityAuditSubmission } from 'types/api/contract';\n\nimport useApiQuery from 'lib/api/useApiQuery';\nimport dayjs from 'lib/date/dayjs';\nimport ContainerWithScrollY from 'ui/shared/ContainerWithScrollY';\nimport FormModal from 'ui/shared/FormModal';\nimport LinkExternal from 'ui/shared/links/LinkExternal';\n\nimport ContractSubmitAuditForm from './contractSubmitAuditForm/ContractSubmitAuditForm';\n\ntype Props = {\n addressHash?: string;\n}\n\nconst ContractSecurityAudits = ({ addressHash }: Props) => {\n const { data, isPlaceholderData } = useApiQuery('contract_security_audits', {\n pathParams: { hash: addressHash },\n queryOptions: {\n refetchOnMount: false,\n placeholderData: { items: [] },\n enabled: Boolean(addressHash),\n },\n });\n\n const formTitle = 'Submit audit';\n\n const modalProps = useDisclosure();\n\n const renderForm = React.useCallback(() => {\n return ;\n }, [ addressHash, modalProps.onClose ]);\n\n return (\n <>\n \n { data?.items && data.items.length > 0 && (\n \n \n { data.items.map(item => (\n \n { `${ item.audit_company_name }, ${ dayjs(item.audit_publish_date).format('MMM DD, YYYY') }` }\n \n )) }\n \n \n ) }\n \n isOpen={ modalProps.isOpen }\n onClose={ modalProps.onClose }\n title={ formTitle }\n renderForm={ renderForm }\n />\n \n );\n};\n\nexport default React.memo(ContractSecurityAudits);\n","export default function isMetaKey(event: React.KeyboardEvent) {\n return event.metaKey || event.getModifierState('Meta') || event.getModifierState('OS');\n}\n","const stripLeadingSlash = (str: string) => str[0] === '/' ? str.slice(1) : str;\n\nexport default stripLeadingSlash;\n","export const light = {\n base: 'vs' as const,\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#f5f5f6',\n 'editorWidget.background': '#f5f5f6',\n\n 'tab.activeBackground': '#f5f5f6',\n 'tab.inactiveBackground': 'rgb(236, 236, 236)',\n 'tab.activeForeground': '#101112', // black\n 'tab.inactiveForeground': '#4a5568', // gray.600\n 'tab.border': 'rgb(243, 243, 243)',\n\n 'icon.foreground': '#616161',\n\n 'input.foreground': '#616161',\n 'input.background': '#fff',\n\n 'list.inactiveSelectionBackground': '#e4e6f1',\n\n 'breadcrumbs.foreground': 'rgb(97, 97, 97)',\n\n 'badge.background': '#c4c4c4',\n\n 'sideBar.background': '#eee',\n\n focusBorder: '#0090f1',\n\n // not able to use rgba for standard variables, so we use custom prefix here\n 'custom.list.hoverBackground': 'rgba(16, 17, 18, 0.08)', // blackAlpha.200\n 'custom.findMatchHighlightBackground': 'rgba(198, 246, 213, 1)',\n 'custom.inputOption.activeBackground': 'rgba(0, 144, 241, 0.2)',\n 'custom.inputOption.hoverBackground': 'rgba(184, 184, 184, 0.31)',\n\n // don't know the name of this variables in vscode\n 'custom.fileLink.hoverForeground': '#4299E1', // blue.400\n 'custom.riskWarning.primaryBackground': '#FEEBCB', // orange.100\n 'custom.riskWarning.background': '#FFFAF0', // orange.50\n 'custom.mainContract.header': 'rgba(233, 216, 253, 1)', // purple.100\n 'custom.mainContract.body': 'rgba(250, 245, 255, 1)', // purple.50\n } as const,\n};\n\nexport const dark = {\n base: 'vs-dark' as const,\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#1a1b1b',\n 'editorWidget.background': '#1a1b1b',\n\n 'tab.activeBackground': '#1a1b1b', // black\n 'tab.inactiveBackground': 'rgb(45, 45, 45)',\n 'tab.activeForeground': '#fff', // white\n 'tab.inactiveForeground': '#a0aec0', // gray.400\n 'tab.border': 'rgb(37, 37, 38)',\n\n 'icon.foreground': '#616161',\n\n 'input.foreground': '#cccccc',\n 'input.background': '#3c3c3c',\n\n 'list.inactiveSelectionBackground': '#37373d',\n\n 'badge.background': '#4d4d4d',\n\n 'breadcrumbs.foreground': 'rgb(97, 97, 97)',\n\n 'sideBar.background': '#222',\n\n focusBorder: '#007fd4',\n\n // not able to use rgba for standard variables, so we use custom prefix here\n 'custom.list.hoverBackground': 'rgba(255, 255, 255, 0.08)', // whiteAlpha.200\n 'custom.findMatchHighlightBackground': 'rgba(34, 84, 61, 1)',\n 'custom.inputOption.activeBackground': 'rgba(0, 127, 212, 0.4)',\n 'custom.inputOption.hoverBackground': 'rgba(90, 93, 94, 0.31)',\n\n // don't know the name of this variables in vscode\n 'custom.fileLink.hoverForeground': '#4299E1', // blue.400\n 'custom.riskWarning.primaryBackground': 'rgba(246, 173, 85, 0.3)', // orange.300\n 'custom.riskWarning.background': 'rgba(246, 173, 85, 0.1)', // orange.300\n 'custom.mainContract.header': 'rgba(183, 148, 244, 0.3)', // purple.300\n 'custom.mainContract.body': 'rgba(214, 188, 250, 0.1)', // purple.200\n } as const,\n};\n","import { useColorModeValue } from '@chakra-ui/react';\n\nimport * as themes from './themes';\n\nexport default function useThemeColors() {\n const theme = useColorModeValue(themes.light, themes.dark);\n\n return theme.colors;\n}\n","import { Flex, Box } from '@chakra-ui/react';\nimport React from 'react';\n\nimport stripLeadingSlash from 'lib/stripLeadingSlash';\nimport useThemeColors from 'ui/shared/monaco/utils/useThemeColors';\n\ninterface Props {\n path: string;\n}\n\nconst CodeEditorBreadcrumbs = ({ path }: Props) => {\n const chunks = stripLeadingSlash(path).split('/');\n const themeColors = useThemeColors();\n\n return (\n \n { chunks.map((chunk, index) => {\n return (\n \n { index !== 0 && (\n \n ) }\n { chunk }\n \n );\n }) }\n \n );\n};\n\nexport default React.memo(CodeEditorBreadcrumbs);\n","import { Center, chakra } from '@chakra-ui/react';\nimport React from 'react';\n\nimport ContentLoader from 'ui/shared/ContentLoader';\n\nimport useThemeColors from './utils/useThemeColors';\n\ninterface Props {\n className?: string;\n}\n\nconst CodeEditorLoading = ({ className }: Props) => {\n const themeColors = useThemeColors();\n\n return (\n
\n \n
\n );\n};\n\nexport default React.memo(chakra(CodeEditorLoading));\n","import { chakra } from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { IconName } from 'ui/shared/IconSvg';\nimport IconSvg from 'ui/shared/IconSvg';\n\ninterface Props {\n className?: string;\n fileName: string;\n}\n\nconst CodeEditorFileIcon = ({ className, fileName }: Props) => {\n const name: IconName = (() => {\n if (/.vy$/.test(fileName)) {\n return 'monaco/vyper';\n }\n\n if (/.sol|.yul$/.test(fileName)) {\n return 'monaco/solidity';\n }\n\n return 'monaco/file';\n })();\n\n return ;\n};\n\nexport default React.memo(chakra(CodeEditorFileIcon));\n","import { Box, chakra, Tooltip } from '@chakra-ui/react';\nimport React from 'react';\n\nimport IconSvg from 'ui/shared/IconSvg';\n\ninterface Props {\n className?: string;\n}\n\nconst CodeEditorMainFileIndicator = ({ className }: Props) => {\n return (\n \n \n \n \n \n );\n};\n\nexport default chakra(CodeEditorMainFileIndicator);\n","import type { ChakraProps } from '@chakra-ui/react';\nimport { Box, Accordion, AccordionButton, AccordionItem, AccordionPanel, chakra } from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { FileTree } from './types';\n\nimport IconSvg from 'ui/shared/IconSvg';\n\nimport CodeEditorFileIcon from './CodeEditorFileIcon';\nimport CodeEditorMainFileIndicator from './CodeEditorMainFileIndicator';\nimport useThemeColors from './utils/useThemeColors';\n\ninterface Props {\n tree: FileTree;\n level?: number;\n isCollapsed?: boolean;\n onItemClick: (event: React.MouseEvent) => void;\n selectedFile: string;\n mainFile?: string;\n}\n\nconst CodeEditorFileTree = ({ tree, level = 0, onItemClick, isCollapsed, selectedFile, mainFile }: Props) => {\n const itemProps: ChakraProps = {\n borderWidth: '0px',\n cursor: 'pointer',\n lineHeight: '22px',\n _last: {\n borderBottomWidth: '0px',\n },\n };\n const themeColors = useThemeColors();\n\n return (\n index) } reduceMotion>\n {\n tree.map((leaf, index) => {\n const leafName = { leaf.name };\n\n if ('children' in leaf) {\n return (\n \n { ({ isExpanded }) => (\n <>\n \n \n \n { leafName }\n \n \n \n \n \n ) }\n \n );\n }\n\n return (\n \n { mainFile === leaf.file_path && (\n \n ) }\n \n { leafName }\n \n );\n })\n }\n \n );\n};\n\nexport default React.memo(CodeEditorFileTree);\n","import { Box } from '@chakra-ui/react';\nimport React from 'react';\n\nimport useThemeColors from './utils/useThemeColors';\n\ninterface Props {\n onClick: () => void;\n label: string;\n isDisabled?: boolean;\n isCollapsed?: boolean;\n}\n\nconst CoderEditorCollapseButton = ({ onClick, label, isDisabled, isCollapsed }: Props) => {\n const themeColors = useThemeColors();\n\n return (\n \n );\n};\n\nexport default React.memo(CoderEditorCollapseButton);\n","import type { FileTree } from '../types';\nimport type { ArrayElement } from 'types/utils';\n\nexport default function sortFileTree(a: ArrayElement, b: ArrayElement) {\n if ('children' in a && !('children' in b)) {\n return -1;\n }\n\n if ('children' in b && !('children' in a)) {\n return 1;\n }\n\n return a.name.localeCompare(b.name);\n}\n","import type { File, FileTree } from '../types';\n\nimport stripLeadingSlash from 'lib/stripLeadingSlash';\n\nimport sortFileTree from './sortFileTree';\n\nexport default function composeFileTree(files: Array) {\n const result: FileTree = [];\n type Level = {\n result: FileTree;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } & Record;\n const level: Level = { result };\n\n files.forEach((file) => {\n const path = stripLeadingSlash(file.file_path);\n const segments = path.split('/');\n\n segments.reduce((acc, segment, currentIndex, array) => {\n if (!acc[segment]) {\n acc[segment] = { result: [] };\n acc.result.push({\n name: segment,\n ...(currentIndex === array.length - 1 ? file : { children: acc[segment].result }),\n });\n }\n acc.result.sort(sortFileTree);\n\n return acc[segment];\n }, level);\n });\n\n return result.sort(sortFileTree);\n}\n","import { Box } from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { File } from './types';\n\nimport CodeEditorFileTree from './CodeEditorFileTree';\nimport CoderEditorCollapseButton from './CoderEditorCollapseButton';\nimport composeFileTree from './utils/composeFileTree';\n\ninterface Props {\n data: Array;\n onFileSelect: (index: number) => void;\n selectedFile: string;\n mainFile?: string;\n isActive: boolean;\n setActionBarRenderer: React.Dispatch JSX.Element) | undefined>>;\n}\n\nconst CodeEditorFileExplorer = ({ data, onFileSelect, selectedFile, mainFile, isActive, setActionBarRenderer }: Props) => {\n const [ key, setKey ] = React.useState(0);\n const tree = React.useMemo(() => {\n return composeFileTree(data);\n }, [ data ]);\n\n const handleCollapseButtonClick = React.useCallback(() => {\n setKey((prev) => prev + 1);\n }, []);\n\n const renderActionBar = React.useCallback(() => {\n return (\n \n );\n }, [ handleCollapseButtonClick ]);\n\n const handleFileClick = React.useCallback((event: React.MouseEvent) => {\n const filePath = (event.currentTarget as HTMLDivElement).getAttribute('data-file-path');\n const fileIndex = data.findIndex((item) => item.file_path === filePath);\n\n if (fileIndex > -1) {\n onFileSelect(fileIndex);\n }\n }, [ data, onFileSelect ]);\n\n React.useEffect(() => {\n isActive && setActionBarRenderer(() => renderActionBar);\n }, [ isActive, renderActionBar, setActionBarRenderer ]);\n\n return (\n \n 0 }\n selectedFile={ selectedFile }\n mainFile={ mainFile }\n />\n \n );\n};\n\nexport default React.memo(CodeEditorFileExplorer);\n","import { Box, chakra } from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { SearchResult } from './types';\nimport type { ArrayElement } from 'types/utils';\n\nimport useThemeColors from './utils/useThemeColors';\n\ninterface Props extends ArrayElement {\n filePath: string;\n onClick: (event: React.MouseEvent) => void;\n}\n\nconst calculateStartPosition = (lineContent: string, startColumn: number) => {\n\n let start = 0;\n\n for (let index = 0; index < startColumn; index++) {\n const element = lineContent[index];\n\n if (element === ' ') {\n start = index + 1;\n continue;\n }\n }\n\n return start ? start - 1 : 0;\n};\n\nconst CodeEditorSearchResultItem = ({ lineContent, filePath, onClick, startLineNumber, startColumn, endColumn }: Props) => {\n const start = calculateStartPosition(lineContent, startColumn);\n const themeColors = useThemeColors();\n\n return (\n \n { lineContent.slice(start, startColumn - 1) }\n \n { lineContent.slice(startColumn - 1, endColumn - 1) }\n \n { lineContent.slice(endColumn - 1) }\n \n );\n};\n\nexport default React.memo(CodeEditorSearchResultItem);\n","export default function getFileName(path: string) {\n const chunks = path.split('/');\n\n return chunks[chunks.length - 1];\n}\n","import { AccordionButton, AccordionItem, AccordionPanel, Box } from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { SearchResult } from './types';\n\nimport CodeEditorFileIcon from './CodeEditorFileIcon';\nimport CodeEditorSearchResultItem from './CodeEditorSearchResultItem';\nimport getFileName from './utils/getFileName';\nimport useThemeColors from './utils/useThemeColors';\n\ninterface Props {\n data: SearchResult;\n onItemClick: (filePath: string, lineNumber: number) => void;\n}\n\nconst CodeEditorSearchSection = ({ data, onItemClick }: Props) => {\n const fileName = getFileName(data.file_path);\n\n const handleFileLineClick = React.useCallback((event: React.MouseEvent) => {\n const lineNumber = Number((event.currentTarget as HTMLDivElement).getAttribute('data-line-number'));\n if (!Object.is(lineNumber, NaN)) {\n onItemClick(data.file_path, Number(lineNumber));\n }\n }, [ data.file_path, onItemClick ]);\n\n const themeColors = useThemeColors();\n\n return (\n \n { ({ isExpanded }) => (\n <>\n \n \n \n \n { fileName }\n \n \n { data.matches.length }\n \n \n \n { data.matches.map((match) => (\n \n ),\n ) }\n \n \n ) }\n \n );\n};\n\nexport default React.memo(CodeEditorSearchSection);\n","import type { ChakraProps } from '@chakra-ui/react';\nimport { Accordion, Box, Input, InputGroup, InputRightElement, useBoolean } from '@chakra-ui/react';\nimport type * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport React from 'react';\n\nimport type { File, Monaco, SearchResult } from './types';\n\nimport useDebounce from 'lib/hooks/useDebounce';\n\nimport CodeEditorSearchSection from './CodeEditorSearchSection';\nimport CoderEditorCollapseButton from './CoderEditorCollapseButton';\nimport useThemeColors from './utils/useThemeColors';\n\ninterface Props {\n data: Array;\n monaco: Monaco | undefined;\n onFileSelect: (index: number, lineNumber?: number) => void;\n isInputStuck: boolean;\n isActive: boolean;\n setActionBarRenderer: React.Dispatch JSX.Element) | undefined>>;\n defaultValue: string;\n}\n\nconst CodeEditorSearch = ({ monaco, data, onFileSelect, isInputStuck, isActive, setActionBarRenderer, defaultValue }: Props) => {\n const [ searchTerm, changeSearchTerm ] = React.useState('');\n const [ searchResults, setSearchResults ] = React.useState>([]);\n const [ expandedSections, setExpandedSections ] = React.useState>([]);\n const [ isMatchCase, setMatchCase ] = useBoolean();\n const [ isMatchWholeWord, setMatchWholeWord ] = useBoolean();\n const [ isMatchRegex, setMatchRegex ] = useBoolean();\n const decorations = React.useRef>>({});\n\n const themeColors = useThemeColors();\n\n const debouncedSearchTerm = useDebounce(searchTerm, 300);\n\n React.useEffect(() => {\n changeSearchTerm(defaultValue);\n }, [ defaultValue ]);\n\n React.useEffect(() => {\n if (!monaco) {\n return;\n }\n\n if (!debouncedSearchTerm) {\n setSearchResults([]);\n }\n\n const models = monaco.editor.getModels();\n const matches = models.map((model) => model.findMatches(debouncedSearchTerm, false, isMatchRegex, isMatchCase, isMatchWholeWord ? 'true' : null, false));\n\n models.forEach((model, index) => {\n const filePath = model.uri.path;\n const prevDecorations = decorations.current[filePath] || [];\n const newDecorations: Array = matches[index].map(({ range }) => ({ range, options: { className: 'highlight' } }));\n\n const newDecorationsIds = model.deltaDecorations(prevDecorations, newDecorations);\n decorations.current[filePath] = newDecorationsIds;\n });\n\n const result: Array = matches\n .map((match, index) => {\n const model = models[index];\n return {\n file_path: model.uri.path,\n matches: match.map(({ range }) => ({ ...range, lineContent: model.getLineContent(range.startLineNumber) })),\n };\n })\n .filter(({ matches }) => matches.length > 0);\n\n setSearchResults(result.length > 0 ? result : []);\n }, [ debouncedSearchTerm, isMatchCase, isMatchRegex, isMatchWholeWord, monaco ]);\n\n React.useEffect(() => {\n setExpandedSections(searchResults.map((item, index) => index));\n }, [ searchResults ]);\n\n const handleSearchTermChange = React.useCallback((event: React.ChangeEvent) => {\n changeSearchTerm(event.target.value);\n }, []);\n\n const handleResultItemClick = React.useCallback((filePath: string, lineNumber: number) => {\n const fileIndex = data.findIndex((item) => item.file_path === filePath);\n if (fileIndex > -1) {\n onFileSelect(fileIndex, Number(lineNumber));\n }\n }, [ data, onFileSelect ]);\n\n const handleAccordionStateChange = React.useCallback((newValue: Array) => {\n setExpandedSections(newValue);\n }, []);\n\n const handleToggleCollapseClick = React.useCallback(() => {\n if (expandedSections.length === 0) {\n setExpandedSections(searchResults.map((item, index) => index));\n } else {\n setExpandedSections([]);\n }\n }, [ expandedSections.length, searchResults ]);\n\n const renderActionBar = React.useCallback(() => {\n return (\n \n );\n }, [ expandedSections.length, handleToggleCollapseClick, searchResults.length ]);\n\n React.useEffect(() => {\n isActive && setActionBarRenderer(() => renderActionBar);\n }, [ isActive, renderActionBar, setActionBarRenderer ]);\n\n const buttonProps: ChakraProps = {\n boxSize: '20px',\n p: '1px',\n cursor: 'pointer',\n borderRadius: '3px',\n borderWidth: '1px',\n borderColor: 'transparent',\n };\n\n const searchResultNum = (() => {\n if (!debouncedSearchTerm) {\n return null;\n }\n\n const totalResults = searchResults.map(({ matches }) => matches.length).reduce((result, item) => result + item, 0);\n\n if (!totalResults) {\n return (\n \n No results found. Review your settings for configured exclusions.\n \n );\n }\n\n return (\n \n { totalResults } result{ totalResults > 1 ? 's' : '' } in { searchResults.length } file{ searchResults.length > 1 ? 's' : '' }\n \n );\n })();\n\n return (\n \n \n \n \n \n \n \n \n \n { searchResultNum }\n \n { searchResults.map((item) => ) }\n \n \n );\n};\n\nexport default React.memo(CodeEditorSearch);\n","import type { HTMLChakraProps } from '@chakra-ui/react';\nimport { Box, Tab, TabList, TabPanel, TabPanels, Tabs, useBoolean } from '@chakra-ui/react';\nimport _throttle from 'lodash/throttle';\nimport type * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport React from 'react';\n\nimport type { File, Monaco } from './types';\n\nimport { shift, cmd } from 'lib/html-entities';\n\nimport CodeEditorFileExplorer from './CodeEditorFileExplorer';\nimport CodeEditorSearch from './CodeEditorSearch';\nimport useThemeColors from './utils/useThemeColors';\n\ninterface Props {\n monaco: Monaco | undefined;\n editor: monaco.editor.IStandaloneCodeEditor | undefined;\n data: Array;\n onFileSelect: (index: number, lineNumber?: number) => void;\n selectedFile: string;\n mainFile?: string;\n}\n\nexport const CONTAINER_WIDTH = 250;\n\nconst CodeEditorSideBar = ({ onFileSelect, data, monaco, editor, selectedFile, mainFile }: Props) => {\n\n const [ isStuck, setIsStuck ] = React.useState(false);\n const [ isDrawerOpen, setIsDrawerOpen ] = useBoolean(false);\n const [ tabIndex, setTabIndex ] = React.useState(0);\n const [ searchValue, setSearchValue ] = React.useState('');\n const [ actionBarRenderer, setActionBarRenderer ] = React.useState<() => JSX.Element>();\n\n const themeColors = useThemeColors();\n\n const tabProps: HTMLChakraProps<'button'> = {\n fontFamily: 'heading',\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '35px',\n fontWeight: 500,\n color: themeColors['tab.inactiveForeground'],\n _selected: {\n color: themeColors['tab.activeForeground'],\n },\n px: 0,\n letterSpacing: 0.3,\n };\n\n const handleScrollThrottled = React.useRef(_throttle((event: React.SyntheticEvent) => {\n setIsStuck((event.target as HTMLDivElement).scrollTop > 0);\n }, 100));\n\n const handleFileSelect = React.useCallback((index: number, lineNumber?: number) => {\n isDrawerOpen && setIsDrawerOpen.off();\n onFileSelect(index, lineNumber);\n }, [ isDrawerOpen, onFileSelect, setIsDrawerOpen ]);\n\n React.useEffect(() => {\n if (editor && monaco) {\n editor.addAction({\n id: 'file-explorer',\n label: 'Show File Explorer',\n keybindings: [\n monaco.KeyMod.CtrlCmd | monaco.KeyMod.Shift | monaco.KeyCode.KeyE,\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n run: function() {\n setTabIndex(0);\n },\n });\n\n editor.addAction({\n id: 'search-in-files',\n label: 'Show Search in Files',\n keybindings: [\n monaco.KeyMod.CtrlCmd | monaco.KeyMod.Shift | monaco.KeyCode.KeyF,\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.6,\n run: function(editor) {\n setTabIndex(1);\n const selection = editor.getSelection();\n const selectedValue = selection ? editor.getModel()?.getValueInRange(selection) : '';\n setSearchValue(selectedValue || '');\n },\n });\n }\n }, [ editor, monaco ]);\n\n return (\n <>\n \n \n \n Explorer\n Search\n { actionBarRenderer?.() }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default React.memo(CodeEditorSideBar);\n","export default function getFilePathParts(path: string, tabsPathChunks: Array>): [string, string | undefined] {\n const chunks = path.split('/');\n const fileName = chunks[chunks.length - 1];\n const folderName = getFolderName(chunks, tabsPathChunks);\n\n return [ fileName, folderName ];\n}\n\nfunction getFolderName(chunks: Array, tabsPathChunks: Array>): string | undefined {\n const fileName = chunks[chunks.length - 1];\n const otherTabsPathChunks = tabsPathChunks.filter((item) => item.join('/') !== chunks.join('/'));\n const tabsWithSameFileName = otherTabsPathChunks.filter((tabChunks) => tabChunks[tabChunks.length - 1] === fileName);\n\n if (tabsWithSameFileName.length === 0 || chunks.length <= 1) {\n return;\n }\n\n if (chunks.length === 2) {\n return './' + chunks[chunks.length - 2];\n }\n\n let result = '/' + chunks[chunks.length - 2];\n\n for (let index = 3; index <= chunks.length; index++) {\n const element = chunks[chunks.length - index];\n\n if (element === '') {\n result = '.' + result;\n }\n\n const subFolderNames = tabsWithSameFileName.map((tab) => tab[tab.length - index]);\n if (subFolderNames.includes(element)) {\n result = '/' + element + result;\n } else {\n break;\n }\n }\n\n return result;\n}\n","import { Flex, chakra, Box } from '@chakra-ui/react';\nimport React from 'react';\n\nimport { alt } from 'lib/html-entities';\nimport useThemeColors from 'ui/shared/monaco/utils/useThemeColors';\n\nimport CodeEditorFileIcon from './CodeEditorFileIcon';\nimport CodeEditorMainFileIndicator from './CodeEditorMainFileIndicator';\nimport getFilePathParts from './utils/getFilePathParts';\n\ninterface Props {\n isActive?: boolean;\n isMainFile?: boolean;\n path: string;\n onClick: (path: string) => void;\n onClose: (path: string) => void;\n isCloseDisabled: boolean;\n tabsPathChunks: Array>;\n}\n\nconst CodeEditorTab = ({ isActive, isMainFile, path, onClick, onClose, isCloseDisabled, tabsPathChunks }: Props) => {\n const [ fileName, folderName ] = getFilePathParts(path, tabsPathChunks);\n const themeColors = useThemeColors();\n\n const handleClick = React.useCallback(() => {\n onClick(path);\n }, [ onClick, path ]);\n\n const handleClose = React.useCallback((event: React.MouseEvent) => {\n event.stopPropagation();\n !isCloseDisabled && onClose(path);\n }, [ isCloseDisabled, onClose, path ]);\n\n return (\n \n \n { fileName }\n { folderName && { folderName[0] === '.' ? '' : '...' }{ folderName } }\n { isMainFile && }\n \n \n );\n};\n\nexport default React.memo(CodeEditorTab);\n","import { Flex } from '@chakra-ui/react';\nimport React from 'react';\n\nimport CodeEditorTab from './CodeEditorTab';\nimport useThemeColors from './utils/useThemeColors';\n\ninterface Props {\n tabs: Array;\n activeTab: string;\n mainFile?: string;\n onTabSelect: (tab: string) => void;\n onTabClose: (tab: string) => void;\n}\n\nconst CodeEditorTabs = ({ tabs, activeTab, mainFile, onTabSelect, onTabClose }: Props) => {\n const themeColors = useThemeColors();\n\n const tabsPathChunks = React.useMemo(() => {\n return tabs.map((tab) => tab.split('/'));\n }, [ tabs ]);\n\n return (\n \n { tabs.map((tab) => (\n \n )) }\n \n );\n};\n\nexport default React.memo(CodeEditorTabs);\n","import type * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\n\nexport default function sortByEndLineNumberAsc(a: monaco.editor.FindMatch, b: monaco.editor.FindMatch) {\n if (a.range.endLineNumber < b.range.endLineNumber) {\n return -1;\n }\n\n if (a.range.endLineNumber > b.range.endLineNumber) {\n return 1;\n }\n\n return 0;\n}\n","import type * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\n\nimport type { SmartContractExternalLibrary } from 'types/api/contract';\n\nimport sortByEndLineNumberAsc from './sortByEndLineNumberAsc';\n\nexport default function addExternalLibraryWarningDecoration(model: monaco.editor.ITextModel, libraries: Array) {\n const options: monaco.editor.IModelDecorationOptions = {\n isWholeLine: true,\n hoverMessage: [\n { value: '**This is an external library linked to the verified contract**' },\n // eslint-disable-next-line max-len\n { value: 'The linked library source code only affects the bytecode part with external `DELEGATECALL` to the library and it is not possible to automatically ensure that provided library is really the one deployed at specified address. If you want to be sure, check the source code of the library at the given address. (See [issue](https://github.com/blockscout/blockscout-rs/issues/532) for more details)',\n },\n ],\n };\n\n const names = libraries.map(getLibraryName(model)).filter(Boolean).join('|');\n\n if (!names) {\n return;\n }\n\n const [ firstLineMatch ] = model.findMatches(`(^library ${ names })\\\\s?\\\\{`, false, true, false, null, true);\n\n if (!firstLineMatch) {\n return;\n }\n\n const firstLineDecoration: monaco.editor.IModelDeltaDecoration = {\n range: {\n startColumn: 1,\n endColumn: 10, // doesn't really matter since isWholeLine is true\n startLineNumber: firstLineMatch.range.startLineNumber,\n endLineNumber: firstLineMatch.range.startLineNumber,\n },\n options: {\n ...options,\n className: '.risk-warning-primary',\n marginClassName: '.risk-warning-primary',\n },\n };\n\n const lastLineRange: monaco.IRange = {\n startLineNumber: firstLineMatch.range.startLineNumber,\n startColumn: 1,\n endColumn: 10,\n endLineNumber: model.getLineCount(),\n };\n const [ lastLineMatch ] = model\n .findMatches(`^\\\\}`, lastLineRange, true, false, null, true)\n .sort(sortByEndLineNumberAsc);\n\n const restDecoration: monaco.editor.IModelDeltaDecoration = {\n range: {\n startLineNumber: firstLineMatch.range.startLineNumber + 1,\n endLineNumber: lastLineMatch.range.startLineNumber,\n startColumn: 1,\n endColumn: 10, // doesn't really matter since isWholeLine is true\n },\n options: {\n ...options,\n className: '.risk-warning',\n marginClassName: '.risk-warning',\n },\n };\n\n model.deltaDecorations([], [ firstLineDecoration, restDecoration ]);\n}\n\nconst getLibraryName = (model: monaco.editor.ITextModel) => (library: SmartContractExternalLibrary) => {\n const containsFileName = library.name.includes(':');\n\n if (!containsFileName) {\n return library.name;\n }\n\n const [ fileName, libraryName ] = library.name.split(':');\n\n if (model.uri.path !== `/${ fileName }`) {\n return;\n }\n\n return libraryName;\n};\n","import type * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\n\nexport default function addFileImportDecorations(model: monaco.editor.ITextModel) {\n const options: monaco.editor.IModelDecorationOptions = {\n inlineClassName: 'import-link',\n hoverMessage: {\n value: 'Cmd/Win + click to open file',\n },\n };\n\n const regularImportMatches = model.findMatches('^import (\\'|\")(.+)(\\'|\")', false, true, false, null, true);\n const regularImportDecorations: Array = regularImportMatches.map(({ range }) => ({\n range: {\n ...range,\n startColumn: range.startColumn + 8,\n endColumn: range.endColumn - 1,\n },\n options,\n }));\n\n const namedImportMatches = model.findMatches('(^import \\\\{.+\\\\} from )(\\'|\")(.+)(\\'|\")', false, true, false, null, true);\n const namedImportDecorations: Array = namedImportMatches.map(({ range, matches }) => ({\n range: {\n ...range,\n startColumn: range.startColumn + (Array.isArray(matches) ? matches?.[1]?.length + 1 : 0),\n endColumn: range.endColumn - 1,\n },\n options,\n }));\n\n // TODO: add support for \"import * as\" - https://docs.soliditylang.org/en/latest/grammar.html#a4.SolidityParser.importDirective\n // but we need a live example first to test it\n\n model.deltaDecorations([], regularImportDecorations.concat(namedImportDecorations));\n}\n","import type * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\n\nimport sortByEndLineNumberAsc from './sortByEndLineNumberAsc';\n\nexport default function addMainContractCodeDecoration(model: monaco.editor.ITextModel, contractName: string, editor: monaco.editor.IStandaloneCodeEditor) {\n const options: monaco.editor.IModelDecorationOptions = {\n isWholeLine: true,\n };\n\n const contractBlockMatches = model.findMatches(`^contract\\\\s`, false, true, false, null, true);\n\n if (contractBlockMatches.length < 2) {\n return;\n }\n\n const [ firstLineMatch ] = model.findMatches(`(^contract ${ contractName })( is .+)?\\\\s?\\\\{`, false, true, false, null, true);\n\n if (!firstLineMatch) {\n return;\n }\n\n const firstLineDecoration: monaco.editor.IModelDeltaDecoration = {\n range: {\n startColumn: 1,\n endColumn: 10, // doesn't really matter since isWholeLine is true\n startLineNumber: firstLineMatch.range.startLineNumber,\n endLineNumber: firstLineMatch.range.startLineNumber,\n },\n options: {\n ...options,\n className: '.main-contract-header',\n marginClassName: '.main-contract-header',\n glyphMarginClassName: '.main-contract-glyph',\n glyphMarginHoverMessage: [\n { value: 'Main contract' },\n ],\n },\n };\n\n const lastLineRange: monaco.IRange = {\n startLineNumber: firstLineMatch.range.startLineNumber,\n startColumn: 1,\n endColumn: 10,\n endLineNumber: model.getLineCount(),\n };\n const [ lastLineMatch ] = model\n .findMatches(`^\\\\}`, lastLineRange, true, false, null, true)\n .sort(sortByEndLineNumberAsc);\n\n const restDecoration: monaco.editor.IModelDeltaDecoration = {\n range: {\n startLineNumber: firstLineMatch.range.startLineNumber + 1,\n endLineNumber: lastLineMatch.range.startLineNumber,\n startColumn: 1,\n endColumn: 10, // doesn't really matter since isWholeLine is true\n },\n options: {\n ...options,\n className: '.main-contract-body',\n marginClassName: '.main-contract-body',\n },\n };\n\n editor.updateOptions({ glyphMargin: true });\n model.deltaDecorations([], [ firstLineDecoration, restDecoration ]);\n}\n","import stripLeadingSlash from 'lib/stripLeadingSlash';\nimport stripTrailingSlash from 'lib/stripTrailingSlash';\n\n// FIXME support multiline imports - https://base-goerli.blockscout.com/address/0x3442844D5d4938CA70f8C227dB88F6069C0b82A9?tab=contract\n\nexport default function getFullPathOfImportedFile(baseFilePath: string, importedFilePath: string, compilerRemappings?: Array) {\n if (importedFilePath[0] !== '.') {\n let result = importedFilePath;\n\n // how remappings work - https://docs.soliditylang.org/en/v0.8.13/path-resolution.html#import-remapping\n if (compilerRemappings && compilerRemappings.length > 0) {\n const remappings = formatCompilerRemappings(compilerRemappings);\n\n const { prefix, target } = remappings.find(({ context, prefix }) => {\n if (context) {\n const contextPart = '/' + stripLeadingSlash(stripTrailingSlash(context));\n return baseFilePath.startsWith(contextPart + '/') && importedFilePath.startsWith(prefix);\n }\n\n return importedFilePath.startsWith(prefix);\n }) || {};\n\n if (prefix && target) {\n result = importedFilePath.replace(prefix, target);\n }\n }\n\n return result[0] === '/' ? result : '/' + result;\n }\n\n const baseFileChunks = stripLeadingSlash(baseFilePath).split('/');\n const importedFileChunks = importedFilePath.split('/');\n\n const result: Array = baseFileChunks.slice(0, -1);\n\n for (let index = 0; index < importedFileChunks.length; index++) {\n const element = importedFileChunks[index];\n\n if (element === '.') {\n continue;\n }\n\n if (element === '..') {\n if (result.length === 0) {\n break;\n }\n result.pop();\n continue;\n }\n\n result.push(element);\n }\n\n if (result.length === 0) {\n return;\n }\n\n return '/' + result.join('/');\n}\n\ninterface Remapping {\n context?: string;\n prefix: string;\n target: string;\n}\n\nfunction formatCompilerRemappings(remappings: Array): Array {\n return remappings.map((item) => {\n const chunks = item.split(':');\n\n const [ prefix, target ] = chunks[chunks.length - 1].split('=');\n return {\n context: chunks.length > 1 ? chunks[0] : undefined,\n prefix,\n target,\n };\n });\n}\n","import type { SystemStyleObject } from '@chakra-ui/react';\nimport { Box, useColorMode, Flex, useToken, Center } from '@chakra-ui/react';\nimport type { EditorProps } from '@monaco-editor/react';\nimport MonacoEditor from '@monaco-editor/react';\nimport type * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport React from 'react';\n\nimport type { File, Monaco } from './types';\nimport type { SmartContractExternalLibrary } from 'types/api/contract';\n\nimport useClientRect from 'lib/hooks/useClientRect';\nimport useIsMobile from 'lib/hooks/useIsMobile';\nimport isMetaKey from 'lib/isMetaKey';\nimport ErrorBoundary from 'ui/shared/ErrorBoundary';\n\nimport CodeEditorBreadcrumbs from './CodeEditorBreadcrumbs';\nimport CodeEditorLoading from './CodeEditorLoading';\nimport CodeEditorSideBar, { CONTAINER_WIDTH as SIDE_BAR_WIDTH } from './CodeEditorSideBar';\nimport CodeEditorTabs from './CodeEditorTabs';\nimport addExternalLibraryWarningDecoration from './utils/addExternalLibraryWarningDecoration';\nimport addFileImportDecorations from './utils/addFileImportDecorations';\nimport addMainContractCodeDecoration from './utils/addMainContractCodeDecoration';\nimport getFullPathOfImportedFile from './utils/getFullPathOfImportedFile';\nimport * as themes from './utils/themes';\nimport useThemeColors from './utils/useThemeColors';\n\nconst EDITOR_OPTIONS: EditorProps['options'] = {\n readOnly: true,\n minimap: { enabled: false },\n scrollbar: {\n alwaysConsumeMouseWheel: true,\n },\n dragAndDrop: false,\n};\n\nconst TABS_HEIGHT = 35;\nconst BREADCRUMBS_HEIGHT = 22;\nconst EDITOR_HEIGHT = 500;\n\ninterface Props {\n data: Array;\n remappings?: Array;\n libraries?: Array;\n language?: string;\n mainFile?: string;\n contractName?: string;\n}\n\nconst CodeEditor = ({ data, remappings, libraries, language, mainFile, contractName }: Props) => {\n const [ instance, setInstance ] = React.useState();\n const [ editor, setEditor ] = React.useState();\n const [ index, setIndex ] = React.useState(0);\n const [ tabs, setTabs ] = React.useState([ data[index].file_path ]);\n const [ isMetaPressed, setIsMetaPressed ] = React.useState(false);\n\n const [ containerRect, containerNodeRef ] = useClientRect();\n\n const { colorMode } = useColorMode();\n const borderRadius = useToken('radii', 'md');\n const isMobile = useIsMobile();\n const themeColors = useThemeColors();\n\n const editorWidth = containerRect ? containerRect.width - (isMobile ? 0 : SIDE_BAR_WIDTH) : 0;\n\n const editorLanguage = language === 'vyper' ? 'elixir' : 'sol';\n\n React.useEffect(() => {\n instance?.editor.setTheme(colorMode === 'light' ? 'blockscout-light' : 'blockscout-dark');\n }, [ colorMode, instance?.editor ]);\n\n const handleEditorDidMount = React.useCallback((editor: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) => {\n setInstance(monaco);\n setEditor(editor);\n\n monaco.editor.defineTheme('blockscout-light', themes.light);\n monaco.editor.defineTheme('blockscout-dark', themes.dark);\n monaco.editor.setTheme(colorMode === 'light' ? 'blockscout-light' : 'blockscout-dark');\n\n const loadedModels = monaco.editor.getModels();\n const loadedModelsPaths = loadedModels.map((model) => model.uri.path);\n const newModels = data.slice(1)\n .filter((file) => !loadedModelsPaths.includes(file.file_path))\n .map((file) => monaco.editor.createModel(file.source_code, editorLanguage, monaco.Uri.parse(file.file_path)));\n\n if (language === 'solidity') {\n loadedModels.concat(newModels)\n .forEach((model) => {\n contractName && mainFile === model.uri.path && addMainContractCodeDecoration(model, contractName, editor);\n addFileImportDecorations(model);\n libraries?.length && addExternalLibraryWarningDecoration(model, libraries);\n });\n }\n\n editor.addAction({\n id: 'close-tab',\n label: 'Close current tab',\n keybindings: [\n monaco.KeyMod.Alt | monaco.KeyCode.KeyW,\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.7,\n run: function(editor) {\n const model = editor.getModel();\n const path = model?.uri.path;\n if (path) {\n handleTabClose(path, true);\n }\n },\n });\n // componentDidMount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ ]);\n\n const handleSelectFile = React.useCallback((index: number, lineNumber?: number) => {\n setIndex(index);\n setTabs((prev) => prev.some((item) => item === data[index].file_path) ? prev : ([ ...prev, data[index].file_path ]));\n if (lineNumber !== undefined && !Object.is(lineNumber, NaN)) {\n window.setTimeout(() => {\n editor?.revealLineInCenter(lineNumber);\n }, 0);\n }\n editor?.focus();\n }, [ data, editor ]);\n\n const handleTabSelect = React.useCallback((path: string) => {\n const index = data.findIndex((item) => item.file_path === path);\n if (index > -1) {\n setIndex(index);\n }\n }, [ data ]);\n\n const handleTabClose = React.useCallback((path: string, _isActive?: boolean) => {\n setTabs((prev) => {\n if (prev.length > 1) {\n const tabIndex = prev.findIndex((item) => item === path);\n const isActive = _isActive !== undefined ? _isActive : data[index].file_path === path;\n\n if (isActive) {\n const nextActiveIndex = data.findIndex((item) => item.file_path === prev[(tabIndex === 0 ? 1 : tabIndex - 1)]);\n setIndex(nextActiveIndex);\n }\n\n return prev.filter((item) => item !== path);\n }\n\n return prev;\n });\n }, [ data, index ]);\n\n const handleClick = React.useCallback((event: React.MouseEvent) => {\n if (!isMetaPressed && !isMobile) {\n return;\n }\n\n const target = event.target as HTMLSpanElement;\n const isImportLink = target.classList.contains('import-link');\n if (isImportLink) {\n const path = [\n target.previousElementSibling as HTMLSpanElement,\n target,\n target.nextElementSibling as HTMLSpanElement,\n ]\n .filter((element) => element?.classList.contains('import-link'))\n .map((element: HTMLSpanElement) => element.innerText)\n .join('');\n\n const fullPath = getFullPathOfImportedFile(data[index].file_path, path, remappings);\n const fileIndex = data.findIndex((file) => file.file_path === fullPath);\n if (fileIndex > -1) {\n event.stopPropagation();\n handleSelectFile(fileIndex);\n }\n }\n }, [ data, handleSelectFile, index, isMetaPressed, isMobile, remappings ]);\n\n const handleKeyDown = React.useCallback((event: React.KeyboardEvent) => {\n isMetaKey(event) && setIsMetaPressed(true);\n }, []);\n\n const handleKeyUp = React.useCallback(() => {\n setIsMetaPressed(false);\n }, []);\n\n const containerSx: SystemStyleObject = React.useMemo(() => ({\n '.editor-container': {\n position: 'absolute',\n top: 0,\n left: 0,\n width: `${ editorWidth }px`,\n height: '100%',\n },\n '.monaco-editor': {\n 'border-bottom-left-radius': borderRadius,\n },\n '.monaco-editor .overflow-guard': {\n 'border-bottom-left-radius': borderRadius,\n },\n '.monaco-editor .core-guide': {\n zIndex: 1,\n },\n // '.monaco-editor .currentFindMatch': // TODO: find a better way to style this\n '.monaco-editor .findMatch': {\n backgroundColor: themeColors['custom.findMatchHighlightBackground'],\n },\n '.highlight': {\n backgroundColor: themeColors['custom.findMatchHighlightBackground'],\n },\n '&&.meta-pressed .import-link:hover, &&.meta-pressed .import-link:hover + .import-link': {\n color: themeColors['custom.fileLink.hoverForeground'],\n textDecoration: 'underline',\n cursor: 'pointer',\n },\n '.risk-warning-primary': {\n backgroundColor: themeColors['custom.riskWarning.primaryBackground'],\n },\n '.risk-warning': {\n backgroundColor: themeColors['custom.riskWarning.background'],\n },\n '.main-contract-header': {\n backgroundColor: themeColors['custom.mainContract.header'],\n },\n '.main-contract-body': {\n backgroundColor: themeColors['custom.mainContract.body'],\n },\n '.main-contract-glyph': {\n zIndex: 1,\n background: 'url(/static/contract_star.png) no-repeat center center',\n backgroundSize: '12px',\n cursor: 'pointer',\n },\n }), [ editorWidth, themeColors, borderRadius ]);\n\n const renderErrorScreen = React.useCallback(() => {\n return
Oops! Something went wrong!
;\n }, [ themeColors ]);\n\n if (data.length === 1) {\n const sx = {\n ...containerSx,\n '.monaco-editor': {\n 'border-radius': borderRadius,\n },\n '.monaco-editor .overflow-guard': {\n 'border-radius': borderRadius,\n },\n };\n\n return (\n \n \n }\n />\n \n \n );\n }\n\n return (\n \n \n \n \n \n }\n />\n \n \n \n \n );\n};\n\nexport default React.memo(CodeEditor);\n","// ensure that path always starts with /\nexport default function formatFilePath(path: string) {\n if (path[0] === '.' && path[1] === '/') {\n return path.slice(1);\n }\n\n if (path[0] === '/') {\n return path;\n }\n\n return '/' + path;\n}\n","import {\n Flex,\n Button,\n chakra,\n PopoverTrigger,\n PopoverBody,\n PopoverContent,\n Image,\n Skeleton,\n useDisclosure,\n useColorModeValue,\n} from '@chakra-ui/react';\nimport React from 'react';\n\nimport config from 'configs/app';\nimport Popover from 'ui/shared/chakra/Popover';\nimport IconSvg from 'ui/shared/IconSvg';\nimport LinkExternal from 'ui/shared/links/LinkExternal';\n\ninterface Props {\n className?: string;\n hash: string;\n isLoading?: string;\n}\n\nconst ContractCodeIde = ({ className, hash, isLoading }: Props) => {\n const { isOpen, onToggle, onClose } = useDisclosure();\n const defaultIconColor = useColorModeValue('gray.600', 'gray.500');\n\n const ideLinks = React.useMemo(() => {\n return config.UI.ides.items\n .map((ide) => {\n const url = decodeURIComponent(ide.url.replace('{hash}', hash).replace('{domain}', config.app.host || ''));\n const icon = 'icon_url' in ide ?\n { :\n ;\n\n return (\n \n { icon }\n { ide.title }\n \n );\n });\n }, [ defaultIconColor, hash ]);\n\n if (isLoading) {\n return ;\n }\n\n if (ideLinks.length === 0) {\n return null;\n }\n\n return (\n \n \n \n Open in\n \n \n \n \n \n Redactors\n \n { ideLinks }\n \n \n \n \n );\n};\n\nexport default React.memo(chakra(ContractCodeIde));\n","import {\n Alert,\n Box,\n Button,\n Flex,\n Heading,\n Modal,\n ModalCloseButton,\n ModalContent,\n PopoverBody,\n PopoverContent,\n PopoverTrigger,\n Skeleton,\n StackDivider,\n useDisclosure,\n VStack,\n} from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { SmartContractExternalLibrary } from 'types/api/contract';\n\nimport useIsMobile from 'lib/hooks/useIsMobile';\nimport { apos } from 'lib/html-entities';\nimport Popover from 'ui/shared/chakra/Popover';\nimport AddressEntity from 'ui/shared/entities/address/AddressEntity';\nimport IconSvg from 'ui/shared/IconSvg';\n\ninterface Props {\n className?: string;\n data: Array;\n isLoading?: boolean;\n}\n\nconst Item = (data: SmartContractExternalLibrary) => {\n return (\n \n { data.name }\n \n \n );\n};\n\nconst ContractExternalLibraries = ({ className, data, isLoading }: Props) => {\n const { isOpen, onToggle, onClose } = useDisclosure();\n const isMobile = useIsMobile();\n\n if (isLoading) {\n return ;\n }\n\n if (data.length === 0) {\n return null;\n }\n\n const button = (\n \n { data.length } { data.length > 1 ? 'Libraries' : 'Library' } \n \n \n \n );\n\n const content = (\n <>\n External libraries ({ data.length })\n \n The linked library{ apos }s source code may not be the real one.\n Check the source code at the library address (if any) if you want to be sure in case if there is any library linked\n \n }\n spacing={ 2 }\n mt={ 4 }\n maxH={{ lg: '50vh' }}\n overflowY=\"scroll\"\n >\n { data.map((item) => ) }\n \n \n );\n\n if (isMobile) {\n return (\n <>\n { button }\n \n \n \n { content }\n \n \n \n );\n }\n\n return (\n \n \n { button }\n \n \n \n { content }\n \n \n \n );\n};\n\nexport default ContractExternalLibraries;\n","import { Flex, Select, Skeleton, Text, Tooltip } from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { AddressImplementation } from 'types/api/addressParams';\nimport type { SmartContract } from 'types/api/contract';\n\nimport { route } from 'nextjs-routes';\n\nimport useApiQuery from 'lib/api/useApiQuery';\nimport * as stubs from 'stubs/contract';\nimport CopyToClipboard from 'ui/shared/CopyToClipboard';\nimport LinkInternal from 'ui/shared/links/LinkInternal';\nimport CodeEditor from 'ui/shared/monaco/CodeEditor';\nimport formatFilePath from 'ui/shared/monaco/utils/formatFilePath';\n\nimport ContractCodeIdes from './ContractCodeIdes';\nimport ContractExternalLibraries from './ContractExternalLibraries';\n\nfunction getEditorData(contractInfo: SmartContract | undefined) {\n if (!contractInfo || !contractInfo.source_code) {\n return undefined;\n }\n\n const extension = (() => {\n switch (contractInfo.language) {\n case 'vyper':\n return 'vy';\n case 'yul':\n return 'yul';\n default:\n return 'sol';\n }\n })();\n\n return [\n { file_path: formatFilePath(contractInfo.file_path || `index.${ extension }`), source_code: contractInfo.source_code },\n ...(contractInfo.additional_sources || []).map((source) => ({ ...source, file_path: formatFilePath(source.file_path) })),\n ];\n}\n\ninterface SourceContractOption {\n address: string;\n label: string;\n}\n\ninterface Props {\n address: string;\n implementations?: Array;\n}\n\nexport const ContractSourceCode = ({ address, implementations }: Props) => {\n\n const options: Array = React.useMemo(() => {\n return [\n { label: 'Proxy', address },\n ...(implementations || [])\n .filter((item) => item.name && item.address !== address)\n .map(({ name, address }, item, array) => ({ address, label: array.length === 1 ? 'Implementation' : `Impl: ${ name }` })),\n ];\n }, [ address, implementations ]);\n\n const [ sourceContract, setSourceContract ] = React.useState(options[0]);\n\n const contractQuery = useApiQuery('contract', {\n pathParams: { hash: sourceContract.address },\n queryOptions: {\n refetchOnMount: false,\n placeholderData: stubs.CONTRACT_CODE_VERIFIED,\n },\n });\n\n const editorData = React.useMemo(() => {\n return getEditorData(contractQuery.data);\n }, [ contractQuery.data ]);\n\n const isLoading = contractQuery.isPlaceholderData;\n\n const handleSelectChange = React.useCallback((event: React.ChangeEvent) => {\n const nextOption = options.find(({ address }) => address === event.target.value);\n if (nextOption) {\n setSourceContract(nextOption);\n }\n }, [ options ]);\n\n const heading = (\n \n Contract source code\n { contractQuery.data?.language &&\n ({ contractQuery.data.language }) }\n \n );\n\n const select = options.length > 1 ? (\n \n { options.map((option) => ) }\n \n ) : null;\n\n const externalLibraries = contractQuery.data?.external_libraries ?\n :\n null;\n\n const diagramLink = contractQuery?.data?.can_be_visualized_via_sol2uml ? (\n \n \n \n View UML diagram\n \n \n \n ) : null;\n\n const ides = ;\n\n const copyToClipboard = contractQuery.data && editorData?.length === 1 ? (\n \n ) :\n null;\n\n const content = (() => {\n if (isLoading) {\n return ;\n }\n\n if (!editorData) {\n return null;\n }\n\n return (\n \n );\n })();\n\n return (\n
\n \n { heading }\n { select }\n { externalLibraries }\n { diagramLink }\n { ides }\n { copyToClipboard }\n \n { content }\n
\n );\n};\n\nexport default React.memo(ContractSourceCode);\n","import { Flex, Skeleton, Button, Grid, GridItem, Alert, Link, chakra, Box, useColorModeValue } from '@chakra-ui/react';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useQueryClient } from '@tanstack/react-query';\nimport type { Channel } from 'phoenix';\nimport React from 'react';\n\nimport type { SocketMessage } from 'lib/socket/types';\nimport type { Address as AddressInfo } from 'types/api/address';\nimport type { SmartContract } from 'types/api/contract';\n\nimport { route } from 'nextjs-routes';\n\nimport config from 'configs/app';\nimport type { ResourceError } from 'lib/api/resources';\nimport { getResourceKey } from 'lib/api/useApiQuery';\nimport { CONTRACT_LICENSES } from 'lib/contracts/licenses';\nimport dayjs from 'lib/date/dayjs';\nimport useSocketMessage from 'lib/socket/useSocketMessage';\nimport ContractCertifiedLabel from 'ui/shared/ContractCertifiedLabel';\nimport DataFetchAlert from 'ui/shared/DataFetchAlert';\nimport AddressEntity from 'ui/shared/entities/address/AddressEntity';\nimport Hint from 'ui/shared/Hint';\nimport LinkExternal from 'ui/shared/links/LinkExternal';\nimport LinkInternal from 'ui/shared/links/LinkInternal';\nimport RawDataSnippet from 'ui/shared/RawDataSnippet';\n\nimport ContractSecurityAudits from './ContractSecurityAudits';\nimport ContractSourceCode from './ContractSourceCode';\n\ntype Props = {\n addressHash?: string;\n contractQuery: UseQueryResult>;\n channel: Channel | undefined;\n}\n\ntype InfoItemProps = {\n label: string;\n content: string | React.ReactNode;\n className?: string;\n isLoading: boolean;\n hint?: string;\n}\n\nconst InfoItem = chakra(({ label, content, hint, className, isLoading }: InfoItemProps) => (\n \n \n \n { label }\n { hint && (\n \n ) }\n \n \n { content }\n \n));\n\nconst rollupFeature = config.features.rollup;\n\nconst ContractCode = ({ addressHash, contractQuery, channel }: Props) => {\n const [ isChangedBytecodeSocket, setIsChangedBytecodeSocket ] = React.useState();\n\n const queryClient = useQueryClient();\n const addressInfo = queryClient.getQueryData(getResourceKey('address', { pathParams: { hash: addressHash } }));\n\n const { data, isPlaceholderData, isError } = contractQuery;\n\n const handleChangedBytecodeMessage: SocketMessage.AddressChangedBytecode['handler'] = React.useCallback(() => {\n setIsChangedBytecodeSocket(true);\n }, [ ]);\n\n const handleContractWasVerifiedMessage: SocketMessage.SmartContractWasVerified['handler'] = React.useCallback(() => {\n queryClient.refetchQueries({\n queryKey: getResourceKey('address', { pathParams: { hash: addressHash } }),\n });\n queryClient.refetchQueries({\n queryKey: getResourceKey('contract', { pathParams: { hash: addressHash } }),\n });\n }, [ addressHash, queryClient ]);\n\n useSocketMessage({\n channel,\n event: 'changed_bytecode',\n handler: handleChangedBytecodeMessage,\n });\n useSocketMessage({\n channel,\n event: 'smart_contract_was_verified',\n handler: handleContractWasVerifiedMessage,\n });\n\n if (isError) {\n return ;\n }\n\n const canBeVerified = !data?.is_self_destructed && !data?.is_verified;\n\n const verificationButton = isPlaceholderData ? (\n \n ) : (\n \n Verify & publish\n \n );\n\n const licenseLink = (() => {\n if (!data?.license_type) {\n return null;\n }\n\n const license = CONTRACT_LICENSES.find((license) => license.type === data.license_type);\n if (!license || license.type === 'none') {\n return null;\n }\n\n return (\n \n { license.label }\n \n );\n })();\n\n const constructorArgs = (() => {\n if (!data?.decoded_constructor_args) {\n return data?.constructor_args;\n }\n\n const decoded = data.decoded_constructor_args\n .map(([ value, { name, type } ], index) => {\n const valueEl = type === 'address' ? (\n \n ) : { value };\n return (\n \n Arg [{ index }] { name || '' } ({ type }): \n { valueEl }\n \n );\n });\n\n return (\n <>\n { data.constructor_args }\n

\n { decoded }\n \n );\n })();\n\n const verificationAlert = (() => {\n if (data?.is_verified_via_eth_bytecode_db) {\n return (\n \n This contract has been { data.is_partially_verified ? 'partially ' : '' }verified using \n \n Blockscout Bytecode Database\n \n \n );\n }\n\n if (data?.is_verified_via_sourcify) {\n return (\n \n This contract has been { data.is_partially_verified ? 'partially ' : '' }verified via Sourcify. \n { data.sourcify_repo_url && View contract in Sourcify repository }\n \n );\n }\n\n return null;\n })();\n\n const contractNameWithCertifiedIcon = data?.is_verified ? (\n \n { data.name }\n { data.certified && }\n \n ) : null;\n\n return (\n <>\n \n { data?.is_blueprint && (\n \n This is an \n \n ERC-5202 Blueprint contract\n \n \n ) }\n { data?.is_verified && (\n \n \n Contract Source Code Verified ({ data.is_partially_verified ? 'Partial' : 'Exact' } Match)\n { data.is_partially_verified ? verificationButton : null }\n \n \n ) }\n { verificationAlert }\n { (data?.is_changed_bytecode || isChangedBytecodeSocket) && (\n \n Warning! Contract bytecode has been changed and does not match the verified one. Therefore, interaction with this smart contract may be risky.\n \n ) }\n { !data?.is_verified && data?.verified_twin_address_hash && !data?.minimal_proxy_address_hash && (\n \n Contract is not verified. However, we found a verified contract with the same bytecode in Blockscout DB \n \n All functions displayed below are from ABI of that contract. In order to verify current contract, proceed with \n \n Verify & Publish\n \n page\n \n ) }\n { data?.minimal_proxy_address_hash && (\n \n Minimal Proxy Contract for \n \n . \n \n EIP-1167\n - minimal bytecode implementation that delegates all calls to a known address\n \n \n ) }\n \n { data?.is_verified && (\n \n { data.name && }\n { data.compiler_version && }\n { data.zk_compiler_version && }\n { data.evm_version && }\n { licenseLink && (\n \n ) }\n { typeof data.optimization_enabled === 'boolean' &&\n }\n { data.optimization_runs !== null && (\n \n ) }\n { data.verified_at &&\n }\n { data.file_path && }\n { config.UI.hasContractAuditReports && (\n }\n isLoading={ isPlaceholderData }\n />\n ) }\n \n ) }\n \n { constructorArgs && (\n \n ) }\n { data?.source_code && addressHash && (\n \n ) }\n { data?.compiler_settings ? (\n \n ) : null }\n { data?.abi && (\n \n ) }\n { data?.creation_bytecode && (\n \n Contracts that self destruct in their constructors have no contract code published and cannot be verified.\n Displaying the init data provided of the creating transaction.\n \n ) : null }\n textareaMaxHeight=\"200px\"\n isLoading={ isPlaceholderData }\n />\n ) }\n { data?.deployed_bytecode && (\n \n ) }\n \n \n );\n};\n\nexport default ContractCode;\n","import { Alert, Button, Flex, Skeleton } from '@chakra-ui/react';\nimport React from 'react';\n\nimport config from 'configs/app';\nimport useIsMobile from 'lib/hooks/useIsMobile';\nimport AddressEntity from 'ui/shared/entities/address/AddressEntity';\nimport useWallet from 'ui/snippets/walletMenu/useWallet';\n\ninterface Props {\n isLoading?: boolean;\n}\n\nconst ContractConnectWallet = ({ isLoading }: Props) => {\n const { isModalOpening, isModalOpen, connect, disconnect, address, isWalletConnected } = useWallet({ source: 'Smart contracts' });\n const isMobile = useIsMobile();\n\n const content = (() => {\n if (!isWalletConnected) {\n return (\n <>\n Disconnected\n \n Connect wallet\n \n \n );\n }\n\n return (\n \n \n Connected to \n \n \n \n \n );\n })();\n\n return (\n \n \n { content }\n \n \n );\n};\n\nconst Fallback = () => null;\n\nexport default config.features.blockchainInteraction.isEnabled ? ContractConnectWallet : Fallback;\n","import { Alert, Skeleton } from '@chakra-ui/react';\nimport React from 'react';\n\ninterface Props {\n isLoading?: boolean;\n}\n\nconst ContractCustomAbiAlert = ({ isLoading }: Props) => {\n return (\n \n \n Note: Contract with custom ABI is only meant for debugging purpose and it is the user’s responsibility to ensure that the provided ABI\n matches the contract, otherwise errors may occur or results returned may be incorrect.\n Blockscout is not responsible for any losses that arise from the use of Read & Write contract.\n \n \n );\n};\n\nexport default React.memo(ContractCustomAbiAlert);\n","import type { Abi } from 'abitype';\nimport type { AbiFunction } from 'viem';\nimport { toFunctionSelector } from 'viem';\n\nimport type { SmartContractMethodCustomFields, SmartContractMethodRead, SmartContractMethodWrite } from './types';\n\nexport const getNativeCoinValue = (value: unknown) => {\n if (typeof value !== 'string') {\n return BigInt(0);\n }\n\n return BigInt(value);\n};\n\ninterface DividedAbi {\n read: Array;\n write: Array;\n}\n\nexport const isReadMethod = (method: Abi[number]): method is SmartContractMethodRead =>\n method.type === 'function' && (\n method.constant || method.stateMutability === 'view' || method.stateMutability === 'pure'\n );\n\nexport const isWriteMethod = (method: Abi[number]): method is SmartContractMethodWrite =>\n (method.type === 'function' || method.type === 'fallback' || method.type === 'receive') &&\n !isReadMethod(method);\n\nconst enrichWithMethodId = (method: AbiFunction): SmartContractMethodCustomFields => {\n try {\n return {\n method_id: toFunctionSelector(method).slice(2),\n };\n } catch (error) {\n return {\n is_invalid: true,\n };\n }\n};\n\nexport function divideAbiIntoMethodTypes(abi: Abi): DividedAbi {\n return {\n read: abi\n .filter(isReadMethod)\n .map((method) => ({\n ...method,\n ...enrichWithMethodId(method),\n })),\n write: abi\n .filter(isWriteMethod)\n .map((method) => {\n\n if (method.type !== 'function') {\n return method;\n }\n\n return {\n ...method,\n ...enrichWithMethodId(method),\n };\n }),\n };\n}\n","import { IconButton, chakra } from '@chakra-ui/react';\nimport React from 'react';\n\nimport IconSvg from 'ui/shared/IconSvg';\n\ninterface Props {\n index: number;\n onClick: (event: React.MouseEvent) => void;\n isDisabled?: boolean;\n type: 'add' | 'remove';\n className?: string;\n}\n\nconst ContractMethodArrayButton = ({ className, type, index, onClick, isDisabled }: Props) => {\n return (\n }\n isDisabled={ isDisabled }\n />\n );\n};\n\nexport default React.memo(chakra(ContractMethodArrayButton));\n","import { Accordion, AccordionButton, AccordionIcon, AccordionItem, AccordionPanel, Box, useColorModeValue } from '@chakra-ui/react';\nimport React from 'react';\n\nimport ContractMethodArrayButton from './ContractMethodArrayButton';\n\nexport interface Props {\n label: string;\n level: number;\n children: React.ReactNode;\n onAddClick?: (event: React.MouseEvent) => void;\n onRemoveClick?: (event: React.MouseEvent) => void;\n index?: number;\n isInvalid?: boolean;\n}\n\nconst ContractMethodFieldAccordion = ({ label, level, children, onAddClick, onRemoveClick, index, isInvalid }: Props) => {\n const bgColorLevel0 = useColorModeValue('blackAlpha.50', 'whiteAlpha.50');\n const bgColor = useColorModeValue('whiteAlpha.700', 'blackAlpha.700');\n\n return (\n \n \n { ({ isExpanded }) => (\n <>\n \n \n \n { label }\n \n { onRemoveClick && }\n { onAddClick && }\n \n \n { children }\n \n \n ) }\n \n \n );\n};\n\nexport default React.memo(ContractMethodFieldAccordion);\n","import _set from 'lodash/set';\n\nimport type { ContractAbiItemInput } from '../types';\n\nexport type ContractMethodFormFields = Record;\n\nexport const INT_REGEXP = /^(u)?int(\\d+)?$/i;\n\nexport const BYTES_REGEXP = /^bytes(\\d+)?$/i;\n\nexport const ARRAY_REGEXP = /^(.*)\\[(\\d*)\\]$/;\n\nexport interface MatchArray {\n itemType: string;\n size: number;\n isNested: boolean;\n}\n\nexport const matchArray = (argType: string): MatchArray | null => {\n const match = argType.match(ARRAY_REGEXP);\n if (!match) {\n return null;\n }\n\n const [ , itemType, size ] = match;\n const isNested = Boolean(matchArray(itemType));\n\n return {\n itemType,\n size: size ? Number(size) : Infinity,\n isNested,\n };\n};\n\nexport interface MatchInt {\n isUnsigned: boolean;\n power: string;\n min: bigint;\n max: bigint;\n}\n\nexport const matchInt = (argType: string): MatchInt | null => {\n const match = argType.match(INT_REGEXP);\n if (!match) {\n return null;\n }\n\n const [ , isUnsigned, power = '256' ] = match;\n const [ min, max ] = getIntBoundaries(Number(power), Boolean(isUnsigned));\n\n return { isUnsigned: Boolean(isUnsigned), power, min, max };\n};\n\nexport const transformDataForArrayItem = (data: ContractAbiItemInput, index: number): ContractAbiItemInput => {\n const arrayMatchType = matchArray(data.type);\n const arrayMatchInternalType = data.internalType ? matchArray(data.internalType) : null;\n const childrenInternalType = arrayMatchInternalType?.itemType.replaceAll('struct ', '');\n\n const postfix = childrenInternalType ? ' ' + childrenInternalType : '';\n\n return {\n ...data,\n type: arrayMatchType?.itemType || data.type,\n internalType: childrenInternalType,\n name: `#${ index + 1 }${ postfix }`,\n };\n};\n\nexport const getIntBoundaries = (power: number, isUnsigned: boolean) => {\n const maxUnsigned = BigInt(2 ** power);\n const max = isUnsigned ? maxUnsigned - BigInt(1) : maxUnsigned / BigInt(2) - BigInt(1);\n const min = isUnsigned ? BigInt(0) : -maxUnsigned / BigInt(2);\n return [ min, max ];\n};\n\nexport function transformFormDataToMethodArgs(formData: ContractMethodFormFields) {\n const result: Array = [];\n\n for (const field in formData) {\n const value = formData[field];\n _set(result, field.replaceAll(':', '.'), value);\n }\n\n return filterOutEmptyItems(result);\n}\n\nfunction filterOutEmptyItems(array: Array): Array {\n // The undefined value may occur in two cases:\n // 1. When an optional form field is left blank by the user.\n // The only optional field is the native coin value, which is safely handled in the form submit handler.\n // 2. When the user adds and removes items from a field array.\n // In this scenario, empty items need to be filtered out to maintain the correct sequence of arguments.\n return array\n .map((item) => Array.isArray(item) ? filterOutEmptyItems(item) : item)\n .filter((item) => item !== undefined);\n}\n\nexport function getFieldLabel(input: ContractAbiItemInput, isRequired?: boolean) {\n const name = input.name || input.internalType || '';\n return `${ name } (${ input.type })${ isRequired ? '*' : '' }`;\n}\n","import { Box, useColorModeValue } from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { ContractAbiItemInput } from '../types';\n\nimport { getFieldLabel } from './utils';\n\ninterface Props {\n data: ContractAbiItemInput;\n isOptional?: boolean;\n level: number;\n}\n\nconst ContractMethodFieldLabel = ({ data, isOptional, level }: Props) => {\n const color = useColorModeValue('blackAlpha.600', 'whiteAlpha.600');\n\n return (\n 1 ? color : undefined }\n >\n { getFieldLabel(data, !isOptional) }\n \n );\n};\n\nexport default React.memo(ContractMethodFieldLabel);\n","import {\n chakra,\n PopoverBody,\n PopoverContent,\n PopoverTrigger,\n Portal,\n Button,\n List,\n ListItem,\n useDisclosure,\n Input,\n} from '@chakra-ui/react';\nimport React from 'react';\n\nimport { times } from 'lib/html-entities';\nimport Popover from 'ui/shared/chakra/Popover';\nimport IconSvg from 'ui/shared/IconSvg';\n\ninterface Props {\n onClick: (power: number) => void;\n isDisabled?: boolean;\n}\n\nconst ContractMethodMultiplyButton = ({ onClick, isDisabled }: Props) => {\n const [ selectedOption, setSelectedOption ] = React.useState(18);\n const [ customValue, setCustomValue ] = React.useState();\n const { isOpen, onToggle, onClose } = useDisclosure();\n\n const handleOptionClick = React.useCallback((event: React.MouseEvent) => {\n const id = Number((event.currentTarget as HTMLDivElement).getAttribute('data-id'));\n if (!Object.is(id, NaN)) {\n setSelectedOption((prev) => prev === id ? undefined : id);\n setCustomValue(undefined);\n onClose();\n }\n }, [ onClose ]);\n\n const handleInputChange = React.useCallback((event: React.ChangeEvent) => {\n setCustomValue(Number(event.target.value));\n setSelectedOption(undefined);\n }, []);\n\n const value = selectedOption || customValue;\n\n const handleButtonClick = React.useCallback(() => {\n value && onClick(value);\n }, [ onClick, value ]);\n\n return (\n <>\n { Boolean(value) && (\n \n { times }\n 10\n { value }\n \n ) }\n \n \n \n \n \n \n \n \n \n \n { [ 8, 12, 16, 18, 20 ].map((id) => (\n \n 10*{ id }\n { selectedOption === id && }\n \n )) }\n \n 10*\n \n \n \n \n \n \n \n \n );\n};\n\nexport default React.memo(ContractMethodMultiplyButton);\n","import React from 'react';\n\nimport type { MatchInt } from './utils';\n\ninterface Params {\n argType: string;\n argTypeMatchInt: MatchInt | null;\n}\n\nexport default function useFormatFieldValue({ argType, argTypeMatchInt }: Params) {\n\n return React.useCallback((value: string | undefined) => {\n if (!value) {\n return;\n }\n\n if (argTypeMatchInt) {\n // we have to store all numbers as strings to avoid precision loss\n // and we cannot store them as BigInt because the NumberFormat component will not work properly\n // so we just remove all white spaces here otherwise the `viem` library will throw an error on attempt to write value to a contract\n const formattedString = value.replace(/\\s/g, '');\n return formattedString;\n }\n\n if (argType === 'bool') {\n const formattedValue = value.toLowerCase();\n\n switch (formattedValue) {\n case 'true': {\n return true;\n }\n\n case 'false':{\n return false;\n }\n\n default:\n return value;\n }\n }\n\n return value;\n }, [ argType, argTypeMatchInt ]);\n}\n","import React from 'react';\nimport { getAddress, isAddress, isHex } from 'viem';\n\nimport type { MatchInt } from './utils';\nimport { BYTES_REGEXP } from './utils';\n\ninterface Params {\n argType: string;\n argTypeMatchInt: MatchInt | null;\n isOptional: boolean;\n}\n\nexport default function useValidateField({ isOptional, argType, argTypeMatchInt }: Params) {\n\n const bytesMatch = React.useMemo(() => {\n return argType.match(BYTES_REGEXP);\n }, [ argType ]);\n\n // some values are formatted before they are sent to the validator\n // see ./useFormatFieldValue.tsx hook\n return React.useCallback((value: string | boolean | undefined) => {\n if (value === undefined || value === '') {\n return isOptional ? true : 'Field is required';\n }\n\n if (argType === 'address') {\n if (typeof value !== 'string' || !isAddress(value)) {\n return 'Invalid address format';\n }\n\n // all lowercase addresses are valid\n const isInLowerCase = value === value.toLowerCase();\n if (isInLowerCase) {\n return true;\n }\n\n // check if address checksum is valid\n return getAddress(value) === value ? true : 'Invalid address checksum';\n }\n\n if (argTypeMatchInt) {\n const valueBi = (() => {\n try {\n return BigInt(value);\n } catch (error) {\n return null;\n }\n })();\n\n if (typeof value !== 'string' || valueBi === null) {\n return 'Invalid integer format';\n }\n\n if (valueBi > argTypeMatchInt.max || valueBi < argTypeMatchInt.min) {\n const lowerBoundary = argTypeMatchInt.isUnsigned ? '0' : `-1 * 2 ^ ${ Number(argTypeMatchInt.power) - 1 }`;\n const upperBoundary = argTypeMatchInt.isUnsigned ? `2 ^ ${ argTypeMatchInt.power } - 1` : `2 ^ ${ Number(argTypeMatchInt.power) - 1 } - 1`;\n return `Value should be in range from \"${ lowerBoundary }\" to \"${ upperBoundary }\" inclusively`;\n }\n\n return true;\n }\n\n if (argType === 'bool') {\n if (typeof value !== 'boolean') {\n return 'Invalid boolean format. Allowed values: true, false';\n }\n }\n\n if (bytesMatch) {\n const [ , length ] = bytesMatch;\n\n if (!isHex(value)) {\n return 'Invalid bytes format';\n }\n\n if (length) {\n const valueLengthInBytes = value.replace('0x', '').length / 2;\n return valueLengthInBytes !== Number(length) ? `Value should be ${ length } bytes in length` : true;\n }\n\n return true;\n }\n\n return true;\n }, [ isOptional, argType, argTypeMatchInt, bytesMatch ]);\n}\n","import { Box, Flex, FormControl, Input, InputGroup, InputRightElement, chakra, useColorModeValue } from '@chakra-ui/react';\nimport React from 'react';\nimport { useController, useFormContext } from 'react-hook-form';\nimport { NumericFormat } from 'react-number-format';\n\nimport type { ContractAbiItemInput } from '../types';\n\nimport ClearButton from 'ui/shared/ClearButton';\n\nimport ContractMethodFieldLabel from './ContractMethodFieldLabel';\nimport ContractMethodMultiplyButton from './ContractMethodMultiplyButton';\nimport useFormatFieldValue from './useFormatFieldValue';\nimport useValidateField from './useValidateField';\nimport { matchInt } from './utils';\n\ninterface Props {\n data: ContractAbiItemInput;\n hideLabel?: boolean;\n path: string;\n className?: string;\n isDisabled: boolean;\n isOptional?: boolean;\n level: number;\n}\n\nconst ContractMethodFieldInput = ({ data, hideLabel, path: name, className, isDisabled, isOptional: isOptionalProp, level }: Props) => {\n const ref = React.useRef(null);\n\n const isNativeCoin = data.fieldType === 'native_coin';\n const isOptional = isOptionalProp || isNativeCoin;\n\n const argTypeMatchInt = React.useMemo(() => matchInt(data.type), [ data.type ]);\n const validate = useValidateField({ isOptional, argType: data.type, argTypeMatchInt });\n const format = useFormatFieldValue({ argType: data.type, argTypeMatchInt });\n\n const { control, setValue, getValues } = useFormContext();\n const { field, fieldState } = useController({ control, name, rules: { validate } });\n\n const inputBgColor = useColorModeValue('white', 'black');\n const nativeCoinRowBgColor = useColorModeValue('gray.100', 'gray.700');\n\n const hasMultiplyButton = argTypeMatchInt && Number(argTypeMatchInt.power) >= 64;\n\n const handleChange = React.useCallback((event: React.ChangeEvent) => {\n const formattedValue = format(event.target.value);\n field.onChange(formattedValue); // data send back to hook form\n setValue(name, formattedValue); // UI state\n }, [ field, name, setValue, format ]);\n\n const handleClear = React.useCallback(() => {\n setValue(name, '');\n ref.current?.focus();\n }, [ name, setValue ]);\n\n const handleMultiplyButtonClick = React.useCallback((power: number) => {\n const zeroes = Array(power).fill('0').join('');\n const value = getValues(name);\n const newValue = format(value ? value + zeroes : '1' + zeroes);\n setValue(name, newValue);\n }, [ format, getValues, name, setValue ]);\n\n const error = fieldState.error;\n\n return (\n \n { !hideLabel && }\n \n \n \n \n { field.value !== undefined && field.value !== '' && }\n { hasMultiplyButton && }\n \n \n { error && { error.message } }\n \n \n );\n};\n\nexport default React.memo(chakra(ContractMethodFieldInput));\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport type { ContractAbiItemInput } from '../types';\n\nimport type { Props as AccordionProps } from './ContractMethodFieldAccordion';\nimport ContractMethodFieldAccordion from './ContractMethodFieldAccordion';\nimport ContractMethodFieldInput from './ContractMethodFieldInput';\nimport ContractMethodFieldInputArray from './ContractMethodFieldInputArray';\nimport { getFieldLabel, matchArray } from './utils';\n\ninterface Props extends Pick {\n data: ContractAbiItemInput;\n basePath: string;\n level: number;\n isDisabled: boolean;\n isOptional?: boolean;\n}\n\nconst ContractMethodFieldInputTuple = ({ data, basePath, level, isDisabled, isOptional, ...accordionProps }: Props) => {\n const { formState: { errors } } = useFormContext();\n const fieldsWithErrors = Object.keys(errors);\n const isInvalid = fieldsWithErrors.some((field) => field.startsWith(basePath));\n\n if (!('components' in data)) {\n return null;\n }\n\n return (\n \n { data.components?.map((component, index) => {\n if ('components' in component && component.type === 'tuple') {\n return (\n \n );\n }\n\n const arrayMatch = matchArray(component.type);\n if (arrayMatch) {\n return (\n \n );\n }\n\n return (\n \n );\n }) }\n \n );\n};\n\nexport default React.memo(ContractMethodFieldInputTuple);\n","import { Flex } from '@chakra-ui/react';\nimport React from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport type { ContractAbiItemInput } from '../types';\n\nimport ContractMethodArrayButton from './ContractMethodArrayButton';\nimport type { Props as AccordionProps } from './ContractMethodFieldAccordion';\nimport ContractMethodFieldAccordion from './ContractMethodFieldAccordion';\nimport ContractMethodFieldInput from './ContractMethodFieldInput';\nimport ContractMethodFieldInputTuple from './ContractMethodFieldInputTuple';\nimport ContractMethodFieldLabel from './ContractMethodFieldLabel';\nimport { getFieldLabel, matchArray, transformDataForArrayItem } from './utils';\n\ninterface Props extends Pick {\n data: ContractAbiItemInput;\n level: number;\n basePath: string;\n isDisabled: boolean;\n isArrayElement?: boolean;\n size?: number;\n}\n\nconst ContractMethodFieldInputArray = ({\n data,\n level,\n basePath,\n onAddClick,\n onRemoveClick,\n index: parentIndex,\n isDisabled,\n isArrayElement,\n}: Props) => {\n const { formState: { errors } } = useFormContext();\n const fieldsWithErrors = Object.keys(errors);\n const isInvalid = fieldsWithErrors.some((field) => field.startsWith(basePath));\n\n const arrayMatch = matchArray(data.type);\n const hasFixedSize = arrayMatch !== null && arrayMatch.size !== Infinity;\n\n const [ registeredIndices, setRegisteredIndices ] = React.useState(hasFixedSize ? Array(arrayMatch.size).fill(0).map((_, i) => i) : [ 0 ]);\n\n const handleAddButtonClick = React.useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n setRegisteredIndices((prev) => [ ...prev, prev[prev.length - 1] + 1 ]);\n }, []);\n\n const handleRemoveButtonClick = React.useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n const itemIndex = event.currentTarget.getAttribute('data-index');\n if (itemIndex) {\n setRegisteredIndices((prev) => prev.filter((index) => index !== Number(itemIndex)));\n }\n }, [ ]);\n\n if (arrayMatch?.isNested) {\n return (\n <>\n {\n registeredIndices.map((registeredIndex, index) => {\n const itemData = transformDataForArrayItem(data, index);\n const itemBasePath = `${ basePath }:${ registeredIndex }`;\n const itemIsInvalid = fieldsWithErrors.some((field) => field.startsWith(itemBasePath));\n\n return (\n 1 ? handleRemoveButtonClick : undefined }\n index={ registeredIndex }\n >\n \n \n );\n })\n }\n \n );\n }\n\n const isTupleArray = arrayMatch?.itemType.includes('tuple');\n\n if (isTupleArray) {\n const content = (\n <>\n { registeredIndices.map((registeredIndex, index) => {\n const itemData = transformDataForArrayItem(data, index);\n\n return (\n 1 ? handleRemoveButtonClick : undefined }\n index={ registeredIndex }\n isDisabled={ isDisabled }\n isOptional={ registeredIndices.length === 1 }\n />\n );\n }) }\n \n );\n\n if (isArrayElement) {\n return content;\n }\n\n return (\n \n { content }\n \n );\n }\n\n // primitive value array\n return (\n \n { !isArrayElement && }\n \n { registeredIndices.map((registeredIndex, index) => {\n const itemData = transformDataForArrayItem(data, index);\n\n return (\n \n \n { !hasFixedSize && registeredIndices.length > 1 &&\n }\n { !hasFixedSize && index === registeredIndices.length - 1 &&\n }\n \n );\n }) }\n \n \n );\n};\n\nexport default React.memo(ContractMethodFieldInputArray);\n","import { chakra } from '@chakra-ui/react';\nimport React from 'react';\nimport type { AbiParameter } from 'viem';\n\ninterface Props {\n abiParameter: AbiParameter;\n}\n\nconst ItemLabel = ({ abiParameter }: Props) => {\n return (\n <>\n { abiParameter.name && { abiParameter.name } }\n ({ abiParameter.type }) : \n \n );\n};\n\nexport default React.memo(ItemLabel);\n","const TAB_SIZE = 2;\nexport const printRowOffset = (level: number) => ' '.repeat(level * TAB_SIZE);\n","import { Tooltip } from '@chakra-ui/react';\nimport BigNumber from 'bignumber.js';\nimport React from 'react';\nimport type { AbiParameter } from 'viem';\n\nimport { route } from 'nextjs-routes';\n\nimport { WEI } from 'lib/consts';\nimport CopyToClipboard from 'ui/shared/CopyToClipboard';\nimport LinkInternal from 'ui/shared/links/LinkInternal';\n\nimport { matchInt } from '../utils';\nimport ItemLabel from './ItemLabel';\nimport { printRowOffset } from './utils';\n\nfunction castValueToString(value: unknown): string {\n switch (typeof value) {\n case 'string':\n return value === '' ? `\"\"` : value;\n case 'undefined':\n return '';\n case 'number':\n return value.toLocaleString(undefined, { useGrouping: false });\n case 'bigint':\n return value.toString();\n case 'boolean':\n default:\n return String(value);\n }\n}\n\nconst INT_TOOLTIP_THRESHOLD = 10 ** 9;\n\ninterface Props {\n abiParameter: AbiParameter;\n data: unknown;\n level: number;\n hideLabel?: boolean;\n}\n\nconst ItemPrimitive = ({ abiParameter, data, level, hideLabel }: Props) => {\n\n const value = (() => {\n if (abiParameter.type === 'address' && typeof data === 'string') {\n return (\n <>\n { data }\n \n \n );\n }\n\n const intMatch = matchInt(abiParameter.type);\n if (intMatch && typeof data === 'bigint' && intMatch.max > INT_TOOLTIP_THRESHOLD && data > INT_TOOLTIP_THRESHOLD) {\n const dividedValue = BigNumber(data.toString()).div(WEI);\n return (\n \n { castValueToString(data) }\n \n );\n }\n\n return { castValueToString(data) };\n })();\n\n return (\n

\n { printRowOffset(level) }\n { !hideLabel && }\n { value }\n

\n );\n};\n\nexport default React.memo(ItemPrimitive);\n","import { chakra } from '@chakra-ui/react';\nimport React from 'react';\nimport type { AbiParameter } from 'viem';\n\nimport type { ResultViewMode } from '../../types';\n\nimport Item from './Item';\nimport { printRowOffset } from './utils';\n\ninterface Props {\n abiParameter: AbiParameter;\n data: unknown;\n level: number;\n mode: ResultViewMode;\n}\n\nconst ItemTuple = ({ abiParameter, data, mode, level }: Props) => {\n return (\n
\n

\n { printRowOffset(level) }\n { abiParameter.name || abiParameter.internalType }\n { '{' }\n

\n { 'components' in abiParameter && abiParameter.components.map((component, index) => {\n const dataObj = typeof data === 'object' && data !== null ? data : undefined;\n const itemData = dataObj && component.name && component.name in dataObj ? dataObj[component.name as keyof typeof dataObj] : undefined;\n return (\n \n );\n }) }\n

{ printRowOffset(level) }{ '}' }

\n
\n );\n};\n\nexport default React.memo(ItemTuple);\n","import React from 'react';\nimport type { AbiParameter } from 'viem';\n\nimport type { ResultViewMode } from '../../types';\n\nimport { matchArray, type MatchArray } from '../utils';\nimport ItemLabel from './ItemLabel';\nimport ItemPrimitive from './ItemPrimitive';\nimport ItemTuple from './ItemTuple';\nimport { printRowOffset } from './utils';\n\ninterface Props {\n abiParameter: AbiParameter;\n data: Array;\n mode: ResultViewMode;\n level: number;\n arrayMatch: MatchArray;\n}\n\nconst ItemArray = ({ abiParameter, data, level, arrayMatch, mode }: Props) => {\n\n const itemAbiParameter = React.useMemo(() => {\n const type = arrayMatch.itemType;\n const internalType = matchArray(abiParameter.internalType || '')?.itemType;\n return { ...abiParameter, type, internalType };\n }, [ abiParameter, arrayMatch.itemType ]);\n\n const content = (() => {\n if (arrayMatch.isNested && data.every(Array.isArray)) {\n const itemArrayMatch = matchArray(arrayMatch.itemType);\n\n if (itemArrayMatch) {\n return data.map((item, index) => (\n \n ));\n }\n }\n\n if (arrayMatch.itemType === 'tuple') {\n return data.map((item, index) => (\n \n ));\n }\n\n return data.map((item, index) => (\n \n ));\n })();\n\n return (\n

\n

\n { printRowOffset(level) }\n \n [{ data.length === 0 ? ' ]' : '' }\n

\n { content }\n { data.length > 0 &&

{ printRowOffset(level) }]

}\n

\n );\n};\n\nexport default React.memo(ItemArray);\n","import React from 'react';\nimport type { AbiParameter } from 'viem';\n\nimport type { ResultViewMode } from '../../types';\n\nimport { matchArray } from '../utils';\nimport ItemArray from './ItemArray';\nimport ItemPrimitive from './ItemPrimitive';\nimport ItemTuple from './ItemTuple';\n\ninterface Props {\n abiParameter: AbiParameter;\n data: unknown;\n mode: ResultViewMode;\n level?: number;\n}\n\nconst Item = ({ abiParameter, data, mode, level = 0 }: Props) => {\n\n const arrayMatch = React.useMemo(() => matchArray(abiParameter.type), [ abiParameter.type ]);\n if (arrayMatch) {\n if (!Array.isArray(data)) {\n if (arrayMatch.itemType === 'tuple' && mode === 'preview' && 'components' in abiParameter) {\n const previewData = Object.fromEntries(abiParameter.components.map(({ name }) => ([ name ?? '', undefined ])));\n return ;\n }\n return ;\n }\n return ;\n }\n\n const tupleMatch = abiParameter.type.includes('tuple');\n if (tupleMatch) {\n return ;\n }\n\n return ;\n};\n\nexport default React.memo(Item);\n","import { Alert, Flex, useColorModeValue } from '@chakra-ui/react';\nimport React from 'react';\nimport type { AbiFunction } from 'viem';\n\nimport type { FormSubmitResultPublicClient, ResultViewMode } from '../types';\n\nimport ResultItem from './resultPublicClient/Item';\n\nexport interface Props {\n data: FormSubmitResultPublicClient['data'];\n abiItem: AbiFunction;\n onSettle: () => void;\n mode: ResultViewMode;\n}\n\nconst ContractMethodResultPublicClient = ({ data, abiItem, onSettle, mode: modeProps }: Props) => {\n const bgColor = useColorModeValue('blackAlpha.50', 'whiteAlpha.50');\n\n React.useEffect(() => {\n if (modeProps === 'result') {\n onSettle();\n }\n }, [ onSettle, modeProps ]);\n\n const formattedData = (() => {\n return abiItem.outputs.length > 1 && Array.isArray(data) ? data : [ data ];\n })();\n\n const isError = data instanceof Error;\n const mode = isError ? 'preview' : modeProps;\n\n return (\n <>\n { isError && (\n \n { 'shortMessage' in data && typeof data.shortMessage === 'string' ? data.shortMessage : data.message }\n \n ) }\n \n { abiItem.outputs.map((output, index) => (\n \n )) }\n \n \n );\n};\n\nexport default React.memo(ContractMethodResultPublicClient);\n","import { chakra, Spinner, Box, Alert } from '@chakra-ui/react';\nimport React from 'react';\nimport type { UseWaitForTransactionReceiptReturnType } from 'wagmi';\nimport { useWaitForTransactionReceipt } from 'wagmi';\n\nimport type { FormSubmitResultWalletClient } from '../types';\n\nimport { route } from 'nextjs-routes';\n\nimport LinkInternal from 'ui/shared/links/LinkInternal';\n\ninterface Props {\n data: FormSubmitResultWalletClient['data'];\n onSettle: () => void;\n}\n\nconst ContractMethodResultWalletClient = ({ data, onSettle }: Props) => {\n const txHash = data && 'hash' in data ? data.hash as `0x${ string }` : undefined;\n const txInfo = useWaitForTransactionReceipt({\n hash: txHash,\n });\n\n return ;\n};\n\nexport interface PropsDumb {\n data: FormSubmitResultWalletClient['data'];\n onSettle: () => void;\n txInfo: UseWaitForTransactionReceiptReturnType;\n}\n\nexport const ContractMethodResultWalletClientDumb = ({ data, onSettle, txInfo }: PropsDumb) => {\n const txHash = data && 'hash' in data ? data.hash : undefined;\n\n React.useEffect(() => {\n if (txInfo.status !== 'pending') {\n onSettle();\n }\n }, [ onSettle, txInfo.status ]);\n\n if (!data) {\n return null;\n }\n\n const isErrorResult = 'message' in data;\n\n const txLink = txHash ? (\n View transaction details\n ) : null;\n\n const content = (() => {\n if (isErrorResult) {\n return (\n \n { data.message }\n \n );\n }\n\n switch (txInfo.status) {\n case 'success': {\n return (\n <>\n Transaction has been confirmed. \n { txLink }\n \n );\n }\n\n case 'pending': {\n return (\n <>\n \n \n { 'Waiting for transaction\\'s confirmation. ' }\n { txLink }\n \n \n );\n }\n\n case 'error': {\n return (\n \n Error: { txInfo.error ? txInfo.error.message : 'Something went wrong' } { txLink }\n \n );\n }\n }\n })();\n\n return (\n \n { content }\n \n );\n};\n\nexport default React.memo(ContractMethodResultWalletClient);\n","import { Box, Button, Flex, Tooltip, chakra } from '@chakra-ui/react';\nimport React from 'react';\nimport type { SubmitHandler } from 'react-hook-form';\nimport { useForm, FormProvider } from 'react-hook-form';\nimport type { AbiFunction } from 'viem';\n\nimport type { FormSubmitHandler, FormSubmitResult, MethodCallStrategy, SmartContractMethod } from '../types';\n\nimport config from 'configs/app';\nimport * as mixpanel from 'lib/mixpanel/index';\nimport IconSvg from 'ui/shared/IconSvg';\n\nimport { isReadMethod } from '../utils';\nimport ContractMethodFieldAccordion from './ContractMethodFieldAccordion';\nimport ContractMethodFieldInput from './ContractMethodFieldInput';\nimport ContractMethodFieldInputArray from './ContractMethodFieldInputArray';\nimport ContractMethodFieldInputTuple from './ContractMethodFieldInputTuple';\nimport ContractMethodResultPublicClient from './ContractMethodResultPublicClient';\nimport ContractMethodResultWalletClient from './ContractMethodResultWalletClient';\nimport { getFieldLabel, matchArray, transformFormDataToMethodArgs } from './utils';\nimport type { ContractMethodFormFields } from './utils';\n\n// eslint-disable-next-line max-len\nconst NO_WALLET_CLIENT_TEXT = 'Blockchain interaction is not available at the moment since WalletConnect is not configured for this application. Please contact the service maintainer to make necessary changes in the service configuration.';\n\ninterface Props {\n data: SmartContractMethod;\n attempt: number;\n onSubmit: FormSubmitHandler;\n isOpen: boolean;\n onReset: () => void;\n}\n\nconst ContractMethodForm = ({ data, attempt, onSubmit, onReset, isOpen }: Props) => {\n\n const [ result, setResult ] = React.useState();\n const [ isLoading, setLoading ] = React.useState(false);\n const [ callStrategy, setCallStrategy ] = React.useState();\n const callStrategyRef = React.useRef(callStrategy);\n\n const formApi = useForm({\n mode: 'all',\n shouldUnregister: true,\n });\n\n const handleButtonClick = React.useCallback((event: React.MouseEvent) => {\n const callStrategy = event?.currentTarget.getAttribute('data-call-strategy');\n setCallStrategy(callStrategy as MethodCallStrategy);\n callStrategyRef.current = callStrategy as MethodCallStrategy;\n }, []);\n\n const methodType = isReadMethod(data) ? 'read' : 'write';\n\n const onFormSubmit: SubmitHandler = React.useCallback(async(formData) => {\n const args = transformFormDataToMethodArgs(formData);\n\n setResult(undefined);\n setLoading(true);\n\n onSubmit(data, args, callStrategyRef.current)\n .then((result) => {\n setResult(result);\n })\n .catch((error: Error) => {\n setResult({\n source: callStrategyRef.current === 'write' ? 'wallet_client' : 'public_client',\n data: error,\n });\n setLoading(false);\n })\n .finally(() => {\n mixpanel.logEvent(mixpanel.EventTypes.CONTRACT_INTERACTION, {\n 'Method type': methodType === 'write' ? 'Write' : 'Read',\n 'Method name': 'name' in data ? data.name : 'Fallback',\n });\n });\n }, [ data, methodType, onSubmit ]);\n\n React.useEffect(() => {\n if (isOpen && !callStrategyRef.current && attempt === 0) {\n const hasConstantOutputs = isReadMethod(data) && data.inputs.length === 0;\n if (hasConstantOutputs) {\n setCallStrategy('read');\n callStrategyRef.current = 'read';\n onFormSubmit({});\n }\n }\n }, [ data, isOpen, onFormSubmit, attempt ]);\n\n const handleResultSettle = React.useCallback(() => {\n setLoading(false);\n }, []);\n\n const handleFormChange = React.useCallback(() => {\n result && setResult(undefined);\n }, [ result ]);\n\n const inputs: AbiFunction['inputs'] = React.useMemo(() => {\n return [\n ...('inputs' in data && data.inputs ? data.inputs : []),\n ...('stateMutability' in data && data.stateMutability === 'payable' ? [ {\n name: `Send native ${ config.chain.currency.symbol || 'coin' }`,\n type: 'uint256' as const,\n internalType: 'uint256' as const,\n fieldType: 'native_coin' as const,\n } ] : []),\n ];\n }, [ data ]);\n\n const primaryButton = (() => {\n const isDisabled = !config.features.blockchainInteraction.isEnabled && methodType === 'write';\n const text = methodType === 'write' ? 'Write' : 'Read';\n const buttonCallStrategy = methodType === 'write' ? 'write' : 'read';\n\n return (\n \n \n { text }\n \n \n );\n })();\n\n const secondaryButton = (() => {\n if (methodType === 'read') {\n return null;\n }\n\n const hasOutputs = 'outputs' in data && data.outputs.length > 0;\n if (!hasOutputs) {\n return null;\n }\n\n const text = 'Simulate';\n const buttonCallStrategy = 'simulate';\n\n return (\n \n { text }\n \n );\n })();\n\n return (\n \n \n \n \n { inputs.map((input, index) => {\n const props = {\n data: input,\n basePath: `${ index }`,\n isDisabled: isLoading,\n level: 0,\n };\n\n if ('components' in input && input.components && input.type === 'tuple') {\n return ;\n }\n\n const arrayMatch = matchArray(input.type);\n if (arrayMatch) {\n if (arrayMatch.isNested) {\n const fieldsWithErrors = Object.keys(formApi.formState.errors);\n const isInvalid = fieldsWithErrors.some((field) => field.startsWith(index + ':'));\n\n return (\n \n \n \n );\n\n }\n\n return ;\n }\n\n return ;\n }) }\n \n { secondaryButton }\n { primaryButton }\n { result && !isLoading && (\n \n \n Reset\n \n ) }\n \n \n { result && result.source === 'wallet_client' && (\n \n ) }\n { 'outputs' in data && data.outputs.length > 0 && (\n \n ) }\n \n );\n};\n\nexport default React.memo(ContractMethodForm) as typeof ContractMethodForm;\n","import React from 'react';\nimport { scroller } from 'react-scroll';\n\nimport type { SmartContractMethod } from './types';\n\nexport const getElementName = (id: string) => `method_${ id }`;\n\nexport default function useScrollToMethod(data: Array, onScroll: (indices: Array) => void) {\n React.useEffect(() => {\n const id = window.location.hash.replace('#', '');\n\n if (!id) {\n return;\n }\n\n const index = data.findIndex((item) => 'method_id' in item && item.method_id === id);\n if (index > -1) {\n scroller.scrollTo(getElementName(id), {\n duration: 500,\n smooth: true,\n offset: -100,\n });\n onScroll([ index ]);\n }\n }, [ data, onScroll ]);\n}\n","import { AccordionButton, AccordionIcon, AccordionItem, AccordionPanel, Alert, Box } from '@chakra-ui/react';\nimport React from 'react';\nimport { Element } from 'react-scroll';\n\nimport type { FormSubmitHandler, SmartContractMethod } from './types';\n\nimport { route } from 'nextjs-routes';\n\nimport config from 'configs/app';\nimport Tag from 'ui/shared/chakra/Tag';\nimport CopyToClipboard from 'ui/shared/CopyToClipboard';\nimport Hint from 'ui/shared/Hint';\n\nimport ContractMethodForm from './form/ContractMethodForm';\nimport { getElementName } from './useScrollToMethod';\n\ninterface Props {\n data: SmartContractMethod;\n index: number;\n id: number;\n addressHash: string;\n tab: string;\n onSubmit: FormSubmitHandler;\n}\n\nconst ContractAbiItem = ({ data, index, id, addressHash, tab, onSubmit }: Props) => {\n const [ attempt, setAttempt ] = React.useState(0);\n\n const url = React.useMemo(() => {\n if (!('method_id' in data)) {\n return '';\n }\n\n return config.app.baseUrl + route({\n pathname: '/address/[hash]',\n query: {\n hash: addressHash ?? '',\n tab,\n },\n hash: data.method_id,\n });\n }, [ addressHash, data, tab ]);\n\n const handleCopyLinkClick = React.useCallback((event: React.MouseEvent) => {\n event.stopPropagation();\n }, []);\n\n const handleCopyMethodIdClick = React.useCallback((event: React.MouseEvent) => {\n event.stopPropagation();\n }, []);\n\n const handleReset = React.useCallback(() => {\n setAttempt((prev) => prev + 1);\n }, []);\n\n return (\n \n { ({ isExpanded }) => (\n <>\n \n \n { 'method_id' in data && }\n \n { index + 1 }. { data.type === 'fallback' || data.type === 'receive' ? data.type : data.name }\n \n { data.type === 'fallback' && (\n \n ) }\n { data.type === 'receive' && (\n \n ) }\n { 'method_id' in data && (\n <>\n { data.method_id }\n \n \n ) }\n \n \n \n \n { 'is_invalid' in data && data.is_invalid ? (\n An error occurred while parsing the method signature.\n ) : (\n \n ) }\n \n \n ) }\n \n );\n};\n\nexport default React.memo(ContractAbiItem);\n","import React from 'react';\nimport { getAddress } from 'viem';\nimport { usePublicClient } from 'wagmi';\n\nimport type { FormSubmitResult, MethodCallStrategy, SmartContractMethod } from './types';\n\nimport config from 'configs/app';\nimport useAccount from 'lib/web3/useAccount';\n\ninterface Params {\n item: SmartContractMethod;\n args: Array;\n addressHash: string;\n strategy: Exclude;\n}\n\nexport default function useCallMethodPublicClient(): (params: Params) => Promise {\n const publicClient = usePublicClient({ chainId: Number(config.chain.id) });\n const { address: account } = useAccount();\n\n return React.useCallback(async({ args, item, addressHash, strategy }) => {\n if (!('name' in item)) {\n throw new Error('Unknown contract method');\n }\n\n if (!publicClient) {\n throw new Error('Public Client is not defined');\n }\n\n const address = getAddress(addressHash);\n\n const params = {\n abi: [ item ],\n functionName: item.name,\n args: args,\n address,\n account,\n };\n\n const result = strategy === 'read' ? await publicClient.readContract(params) : await publicClient.simulateContract(params);\n return {\n source: 'public_client' as const,\n data: strategy === 'read' ? result : result.result,\n };\n\n }, [ account, publicClient ]);\n}\n","import React from 'react';\nimport { getAddress, type Abi } from 'viem';\nimport { useAccount, useWalletClient, useSwitchChain } from 'wagmi';\n\nimport type { FormSubmitResult, SmartContractMethod } from './types';\n\nimport config from 'configs/app';\n\nimport { getNativeCoinValue } from './utils';\n\ninterface Params {\n item: SmartContractMethod;\n args: Array;\n addressHash: string;\n}\n\nexport default function useCallMethodWalletClient(): (params: Params) => Promise {\n const { data: walletClient } = useWalletClient();\n const { isConnected, chainId, address: account } = useAccount();\n const { switchChainAsync } = useSwitchChain();\n\n return React.useCallback(async({ args, item, addressHash }) => {\n if (!isConnected) {\n throw new Error('Wallet is not connected');\n }\n\n if (!walletClient) {\n throw new Error('Wallet Client is not defined');\n }\n\n if (chainId && String(chainId) !== config.chain.id) {\n await switchChainAsync?.({ chainId: Number(config.chain.id) });\n }\n\n const address = getAddress(addressHash);\n\n if (item.type === 'receive' || item.type === 'fallback') {\n const value = getNativeCoinValue(args[0]);\n const hash = await walletClient.sendTransaction({\n to: address,\n value,\n });\n return { source: 'wallet_client', data: { hash } };\n }\n\n const methodName = item.name;\n\n if (!methodName) {\n throw new Error('Method name is not defined');\n }\n\n const _args = args.slice(0, item.inputs.length);\n const value = getNativeCoinValue(args[item.inputs.length]);\n\n const hash = await walletClient.writeContract({\n args: _args,\n // Here we provide the ABI as an array containing only one item from the submitted form.\n // This is a workaround for the issue with the \"viem\" library.\n // It lacks a \"method_id\" field to uniquely identify the correct method and instead attempts to find a method based on its name.\n // But the name is not unique in the contract ABI and this behavior in the \"viem\" could result in calling the wrong method.\n // See related issues:\n // - https://github.com/blockscout/frontend/issues/1032,\n // - https://github.com/blockscout/frontend/issues/1327\n abi: [ item ] as Abi,\n functionName: methodName,\n address,\n value,\n account,\n });\n\n return { source: 'wallet_client', data: { hash } };\n }, [ chainId, isConnected, switchChainAsync, walletClient, account ]);\n}\n","import React from 'react';\n\nimport type { FormSubmitHandler } from './types';\n\nimport config from 'configs/app';\n\nimport useCallMethodPublicClient from './useCallMethodPublicClient';\nimport useCallMethodWalletClient from './useCallMethodWalletClient';\n\ninterface Params {\n addressHash: string;\n}\n\nfunction useFormSubmit({ addressHash }: Params): FormSubmitHandler {\n const callMethodWalletClient = useCallMethodWalletClient();\n const callMethodPublicClient = useCallMethodPublicClient();\n\n return React.useCallback(async(item, args, strategy) => {\n switch (strategy) {\n case 'read':\n case 'simulate': {\n return callMethodPublicClient({ args, item, addressHash, strategy });\n }\n case 'write': {\n return callMethodWalletClient({ args, item, addressHash });\n }\n\n default: {\n throw new Error(`Unknown call strategy \"${ strategy }\"`);\n }\n }\n }, [ addressHash, callMethodWalletClient, callMethodPublicClient ]);\n}\n\nfunction useFormSubmitFallback({ addressHash }: Params): FormSubmitHandler {\n const callMethodPublicClient = useCallMethodPublicClient();\n\n return React.useCallback(async(item, args, strategy) => {\n switch (strategy) {\n case 'read':\n case 'simulate': {\n return callMethodPublicClient({ args, item, addressHash, strategy });\n }\n\n default: {\n throw new Error(`Unknown call strategy \"${ strategy }\"`);\n }\n }\n\n }, [ callMethodPublicClient, addressHash ]);\n}\n\nconst hook = config.features.blockchainInteraction.isEnabled ? useFormSubmit : useFormSubmitFallback;\n\nexport default hook;\n","import { Accordion, Box, Flex, Link } from '@chakra-ui/react';\nimport _range from 'lodash/range';\nimport React from 'react';\n\nimport type { SmartContractMethod } from './types';\n\nimport ContractAbiItem from './ContractAbiItem';\nimport useFormSubmit from './useFormSubmit';\nimport useScrollToMethod from './useScrollToMethod';\n\ninterface Props {\n abi: Array;\n addressHash: string;\n tab: string;\n}\n\nconst ContractAbi = ({ abi, addressHash, tab }: Props) => {\n const [ expandedSections, setExpandedSections ] = React.useState>(abi.length === 1 ? [ 0 ] : []);\n const [ id, setId ] = React.useState(0);\n\n useScrollToMethod(abi, setExpandedSections);\n\n const handleFormSubmit = useFormSubmit({ addressHash });\n\n const handleAccordionStateChange = React.useCallback((newValue: Array) => {\n setExpandedSections(newValue);\n }, []);\n\n const handleExpandAll = React.useCallback(() => {\n if (!abi) {\n return;\n }\n\n if (expandedSections.length < abi.length) {\n setExpandedSections(_range(0, abi.length));\n } else {\n setExpandedSections([]);\n }\n }, [ abi, expandedSections.length ]);\n\n const handleReset = React.useCallback(() => {\n setId((id) => id + 1);\n }, []);\n\n return (\n <>\n \n Contract information\n { abi.length > 1 && (\n \n { expandedSections.length === abi.length ? 'Collapse' : 'Expand' } all\n \n ) }\n Reset\n \n \n { abi.map((item, index) => (\n \n )) }\n \n \n );\n};\n\nexport default React.memo(ContractAbi);\n","import { useRouter } from 'next/router';\nimport React from 'react';\n\nimport type { MethodType, SmartContractMethod } from './types';\n\nimport getQueryParamString from 'lib/router/getQueryParamString';\nimport ContentLoader from 'ui/shared/ContentLoader';\nimport DataFetchAlert from 'ui/shared/DataFetchAlert';\n\nimport ContractAbi from './ContractAbi';\n\ninterface Props {\n abi: Array;\n isLoading?: boolean;\n isError?: boolean;\n type: MethodType;\n}\n\nconst ContractMethods = ({ abi, isLoading, isError, type }: Props) => {\n\n const router = useRouter();\n\n const tab = getQueryParamString(router.query.tab);\n const addressHash = getQueryParamString(router.query.hash);\n\n if (isLoading) {\n return ;\n }\n\n if (isError) {\n return ;\n }\n\n if (abi.length === 0) {\n return No public { type } functions were found for this contract.;\n }\n\n return ;\n};\n\nexport default React.memo(ContractMethods);\n","import React from 'react';\n\nimport type { MethodType, SmartContractMethod } from './types';\n\nimport ContractConnectWallet from './ContractConnectWallet';\nimport ContractCustomAbiAlert from './ContractCustomAbiAlert';\nimport ContractMethods from './ContractMethods';\n\ninterface Props {\n abi: Array;\n isLoading?: boolean;\n type: MethodType;\n}\n\nconst ContractMethodsCustom = ({ abi, isLoading, type }: Props) => {\n\n return (\n <>\n \n \n \n \n );\n};\n\nexport default React.memo(ContractMethodsCustom);\n","import { chakra, IconButton, Tooltip, useColorModeValue } from '@chakra-ui/react';\nimport React from 'react';\n\nimport IconSvg from '../IconSvg';\n\ninterface Props {\n className?: string;\n label?: string;\n href: string;\n}\n\nconst LinkNewTab = ({ className, label, href }: Props) => {\n const iconColor = useColorModeValue('gray.400', 'gray.500');\n\n return (\n \n }\n w=\"20px\"\n h=\"20px\"\n color={ iconColor }\n variant=\"simple\"\n display=\"inline-block\"\n flexShrink={ 0 }\n as=\"a\"\n href={ href }\n target=\"_blank\"\n className={ className }\n borderRadius={ 0 }\n />\n \n );\n};\n\nexport default React.memo(chakra(LinkNewTab));\n","import { Flex, Select, Skeleton } from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { AddressImplementation } from 'types/api/addressParams';\n\nimport { route } from 'nextjs-routes';\n\nimport CopyToClipboard from 'ui/shared/CopyToClipboard';\nimport AddressEntity from 'ui/shared/entities/address/AddressEntity';\nimport LinkNewTab from 'ui/shared/links/LinkNewTab';\n\ninterface Props {\n selectedItem: AddressImplementation;\n onItemSelect: (event: React.ChangeEvent) => void;\n implementations: Array;\n isLoading?: boolean;\n}\n\nconst ContractImplementationAddress = ({ selectedItem, onItemSelect, implementations, isLoading }: Props) => {\n\n if (isLoading) {\n return ;\n }\n\n if (implementations.length === 0) {\n return null;\n }\n\n if (implementations.length === 1) {\n return (\n \n Implementation address:\n \n \n );\n }\n\n return (\n \n Implementation address:\n \n { implementations.map((implementation) => (\n \n )) }\n \n \n \n \n );\n};\n\nexport default React.memo(ContractImplementationAddress);\n","import { Box } from '@chakra-ui/react';\nimport React from 'react';\n\nimport type { MethodType } from './types';\nimport type { AddressImplementation } from 'types/api/addressParams';\n\nimport useApiQuery from 'lib/api/useApiQuery';\n\nimport ContractConnectWallet from './ContractConnectWallet';\nimport ContractImplementationAddress from './ContractImplementationAddress';\nimport ContractMethods from './ContractMethods';\nimport { isReadMethod, isWriteMethod } from './utils';\n\ninterface Props {\n type: MethodType;\n implementations: Array;\n isLoading?: boolean;\n}\n\nconst ContractMethodsProxy = ({ type, implementations, isLoading: isInitialLoading }: Props) => {\n\n const [ selectedItem, setSelectedItem ] = React.useState(implementations[0]);\n\n const contractQuery = useApiQuery('contract', {\n pathParams: { hash: selectedItem.address },\n queryOptions: {\n enabled: Boolean(selectedItem.address),\n refetchOnMount: false,\n },\n });\n\n const handleItemSelect = React.useCallback((event: React.ChangeEvent) => {\n const nextOption = implementations.find(({ address }) => address === event.target.value);\n if (nextOption) {\n setSelectedItem(nextOption);\n }\n }, [ implementations ]);\n\n const abi = contractQuery.data?.abi?.filter(type === 'read' ? isReadMethod : isWriteMethod) || [];\n\n return (\n \n \n \n \n \n );\n};\n\nexport default React.memo(ContractMethodsProxy);\n","import React from 'react';\n\nimport type { MethodType, SmartContractMethod } from './types';\n\nimport ContractConnectWallet from './ContractConnectWallet';\nimport ContractMethods from './ContractMethods';\n\ninterface Props {\n abi: Array;\n isLoading?: boolean;\n type: MethodType;\n}\n\nconst ContractMethodsRegular = ({ abi, isLoading, type }: Props) => {\n\n return (\n <>\n \n \n \n );\n};\n\nexport default React.memo(ContractMethodsRegular);\n","import { useRouter } from 'next/router';\nimport React from 'react';\n\nimport type { Address } from 'types/api/address';\n\nimport useApiQuery from 'lib/api/useApiQuery';\nimport * as cookies from 'lib/cookies';\nimport getQueryParamString from 'lib/router/getQueryParamString';\nimport useSocketChannel from 'lib/socket/useSocketChannel';\nimport * as stubs from 'stubs/contract';\nimport ContractCode from 'ui/address/contract/ContractCode';\nimport ContractMethodsCustom from 'ui/address/contract/methods/ContractMethodsCustom';\nimport ContractMethodsProxy from 'ui/address/contract/methods/ContractMethodsProxy';\nimport ContractMethodsRegular from 'ui/address/contract/methods/ContractMethodsRegular';\nimport { divideAbiIntoMethodTypes } from 'ui/address/contract/methods/utils';\n\nconst CONTRACT_TAB_IDS = [\n 'contract_code',\n 'read_contract',\n 'read_contract_rpc',\n 'read_proxy',\n 'read_custom_methods',\n 'write_contract',\n 'write_contract_rpc',\n 'write_proxy',\n 'write_custom_methods',\n] as const;\n\ninterface ContractTab {\n id: typeof CONTRACT_TAB_IDS[number];\n title: string;\n component: JSX.Element;\n}\n\ninterface ReturnType {\n tabs: Array;\n isLoading: boolean;\n}\n\nexport default function useContractTabs(data: Address | undefined, isPlaceholderData: boolean): ReturnType {\n const [ isQueryEnabled, setIsQueryEnabled ] = React.useState(false);\n\n const router = useRouter();\n const tab = getQueryParamString(router.query.tab);\n\n const isEnabled = Boolean(data?.hash) && data?.is_contract && !isPlaceholderData && CONTRACT_TAB_IDS.concat('contract' as never).includes(tab);\n\n const enableQuery = React.useCallback(() => {\n setIsQueryEnabled(true);\n }, []);\n\n const contractQuery = useApiQuery('contract', {\n pathParams: { hash: data?.hash },\n queryOptions: {\n enabled: isEnabled && isQueryEnabled,\n refetchOnMount: false,\n placeholderData: data?.is_verified ? stubs.CONTRACT_CODE_VERIFIED : stubs.CONTRACT_CODE_UNVERIFIED,\n },\n });\n\n const customAbiQuery = useApiQuery('custom_abi', {\n queryOptions: {\n enabled: isEnabled && isQueryEnabled && Boolean(cookies.get(cookies.NAMES.API_TOKEN)),\n refetchOnMount: false,\n },\n });\n\n const channel = useSocketChannel({\n topic: `addresses:${ data?.hash?.toLowerCase() }`,\n isDisabled: !isEnabled,\n onJoin: enableQuery,\n onSocketError: enableQuery,\n });\n\n const methods = React.useMemo(() => divideAbiIntoMethodTypes(contractQuery.data?.abi ?? []), [ contractQuery.data?.abi ]);\n const methodsCustomAbi = React.useMemo(() => {\n return divideAbiIntoMethodTypes(\n customAbiQuery.data\n ?.find((item) => data && item.contract_address_hash.toLowerCase() === data.hash.toLowerCase())\n ?.abi ??\n [],\n );\n }, [ customAbiQuery.data, data ]);\n\n const verifiedImplementations = React.useMemo(() => {\n return data?.implementations?.filter(({ name, address }) => name && address && address !== data?.hash) || [];\n }, [ data?.hash, data?.implementations ]);\n\n return React.useMemo(() => {\n return {\n tabs: [\n {\n id: 'contract_code' as const,\n title: 'Code',\n component: ,\n },\n methods.read.length > 0 && {\n id: 'read_contract' as const,\n title: 'Read contract',\n component: ,\n },\n methodsCustomAbi.read.length > 0 && {\n id: 'read_custom_methods' as const,\n title: 'Read custom',\n component: ,\n },\n verifiedImplementations.length > 0 && {\n id: 'read_proxy' as const,\n title: 'Read proxy',\n component: (\n \n ),\n },\n methods.write.length > 0 && {\n id: 'write_contract' as const,\n title: 'Write contract',\n component: ,\n },\n methodsCustomAbi.write.length > 0 && {\n id: 'write_custom_methods' as const,\n title: 'Write custom',\n component: ,\n },\n verifiedImplementations.length > 0 && {\n id: 'write_proxy' as const,\n title: 'Write proxy',\n component: (\n \n ),\n },\n ].filter(Boolean),\n isLoading: contractQuery.isPlaceholderData,\n };\n }, [ contractQuery, channel, data?.hash, verifiedImplementations, methods.read, methods.write, methodsCustomAbi.read, methodsCustomAbi.write ]);\n}\n","export const EMAIL_REGEXP = /^[\\w.%+-]+@[a-zA-Z\\d-]+(?:\\.[a-zA-Z\\d-]+)+$/;\n\nexport const validator = (value: string) => EMAIL_REGEXP.test(value) ? true : 'Invalid email';\n","export const validator = (value: string | undefined) => {\n if (!value) {\n return true;\n }\n\n try {\n new URL(value);\n return true;\n } catch (error) {\n return 'Incorrect URL';\n }\n};\n","import type { SmartContract } from 'types/api/contract';\nimport type { VerifiedContract, VerifiedContractsCounters } from 'types/api/contracts';\n\nimport type { SolidityScanReport } from 'lib/solidityScan/schema';\n\nimport { ADDRESS_PARAMS } from './addressParams';\n\nexport const CONTRACT_CODE_UNVERIFIED = {\n creation_bytecode: '0x60806040526e',\n deployed_bytecode: '0x608060405233',\n is_self_destructed: false,\n} as SmartContract;\n\nexport const CONTRACT_CODE_VERIFIED = {\n abi: [\n {\n inputs: [],\n name: 'symbol',\n outputs: [ { internalType: 'string', name: '', type: 'string' } ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [ { internalType: 'address', name: 'newOwner', type: 'address' } ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ],\n additional_sources: [],\n can_be_visualized_via_sol2uml: true,\n compiler_settings: {\n compilationTarget: {\n 'contracts/StubContract.sol': 'StubContract',\n },\n evmVersion: 'london',\n libraries: {},\n metadata: {\n bytecodeHash: 'ipfs',\n },\n optimizer: {\n enabled: false,\n runs: 200,\n },\n remappings: [],\n },\n compiler_version: 'v0.8.7+commit.e28d00a7',\n creation_bytecode: '0x6080604052348',\n deployed_bytecode: '0x60806040',\n evm_version: 'london',\n external_libraries: [],\n file_path: 'contracts/StubContract.sol',\n is_verified: true,\n name: 'StubContract',\n optimization_enabled: false,\n optimization_runs: 200,\n source_code: 'source_code',\n verified_at: '2023-02-21T14:39:16.906760Z',\n license_type: 'mit',\n} as unknown as SmartContract;\n\nexport const VERIFIED_CONTRACT_INFO: VerifiedContract = {\n address: { ...ADDRESS_PARAMS, name: 'StubContract' },\n coin_balance: '30319033612988277',\n compiler_version: 'v0.8.17+commit.8df45f5f',\n has_constructor_args: true,\n language: 'solidity',\n market_cap: null,\n optimization_enabled: false,\n tx_count: 565058,\n verified_at: '2023-04-10T13:16:33.884921Z',\n license_type: 'mit',\n};\n\nexport const VERIFIED_CONTRACTS_COUNTERS: VerifiedContractsCounters = {\n smart_contracts: '123456789',\n new_smart_contracts_24h: '12345',\n verified_smart_contracts: '654321',\n new_verified_smart_contracts_24h: '1234',\n};\n\nexport const SOLIDITY_SCAN_REPORT: SolidityScanReport = {\n scan_report: {\n contractname: 'BullRunners',\n scan_status: 'scan_done',\n scan_summary: {\n issue_severity_distribution: {\n critical: 0,\n gas: 1,\n high: 0,\n informational: 0,\n low: 2,\n medium: 0,\n },\n score_v2: '72.22',\n },\n scanner_reference_url: 'https://solidityscan.com/quickscan/0xc1EF7811FF2ebFB74F80ed7423f2AdAA37454be2/blockscout/eth-goerli?ref=blockscout',\n },\n};\n","import React from 'react';\n\nimport type { RoutedSubTab } from 'ui/shared/Tabs/types';\n\nimport RoutedTabs from 'ui/shared/Tabs/RoutedTabs';\n\ninterface Props {\n tabs: Array;\n isLoading: boolean;\n shouldRender?: boolean;\n}\n\nconst TAB_LIST_PROPS = {\n columnGap: 3,\n};\n\nconst AddressContract = ({ tabs, isLoading, shouldRender }: Props) => {\n if (!shouldRender) {\n return null;\n }\n\n return (\n \n );\n};\n\nexport default React.memo(AddressContract);\n","import {\n Checkbox,\n} from '@chakra-ui/react';\nimport React from 'react';\nimport type { ControllerRenderProps, FieldValues, Path } from 'react-hook-form';\n\ntype Props> = {\n field: ControllerRenderProps;\n text: string;\n onChange?: () => void;\n isDisabled?: boolean;\n}\n\nexport default function CheckboxInput>(\n {\n field,\n text,\n onChange,\n isDisabled,\n }: Props) {\n\n const handleChange: typeof field.onChange = React.useCallback((...args) => {\n field.onChange(...args);\n onChange?.();\n }, [ field, onChange ]);\n\n return (\n \n { text }\n \n );\n}\n","import type { EntityTag } from './types';\nimport type { UserTags } from 'types/api/addressParams';\n\nexport default function formatUserTags(data: UserTags | undefined): Array {\n return [\n ...(data?.private_tags || []).map((tag) => ({ slug: tag.label, name: tag.display_name, tagType: 'private_tag' as const, ordinal: 1_000 })),\n ...(data?.watchlist_names || []).map((tag) => ({ slug: tag.label, name: tag.display_name, tagType: 'watchlist' as const, ordinal: 1_000 })),\n ];\n}\n","import type { EntityTag } from './types';\n\nexport default function sortEntityTags(tagA: EntityTag, tagB: EntityTag): number {\n if (tagA.ordinal < tagB.ordinal) {\n return 1;\n }\n\n if (tagA.ordinal > tagB.ordinal) {\n return -1;\n }\n\n return 0;\n}\n","import { Tooltip, Flex, useColorModeValue } from '@chakra-ui/react';\nimport React from 'react';\n\nimport IconSvg from 'ui/shared/IconSvg';\n\ntype Props = {\n onClick: () => void;\n}\n\nconst ResetIconButton = ({ onClick }: Props) => {\n const resetTokenIconColor = useColorModeValue('blue.600', 'blue.300');\n const resetTokenIconHoverColor = useColorModeValue('blue.400', 'blue.200');\n\n return (\n \n \n \n \n \n );\n};\n\nexport default ResetIconButton;\n"],"names":["CONTRACT_LICENSES","type","label","title","url","fields_AuditComment","React","control","param","renderControl","field","fieldState","jsx_runtime","jsxs","FormControl","variant","id","name","jsx","Textarea","isInvalid","Boolean","error","autoComplete","maxH","maxLength","InputPlaceholder","text","Controller","render","rules","fields_AuditCompanyName","isRequired","Input","required","fields_AuditProjectName","fields_AuditProjectUrl","validate","validateUrl","AuditReportDate","max","dayjs","format","fields_AuditReportUrl","fields_AuditSubmitterEmail","pattern","EMAIL_REGEXP","fields_AuditSubmitterIsOwner","CheckboxInput","fields_AuditSubmitterName","contractSubmitAuditForm_ContractSubmitAuditForm","address","onSuccess","containerRef","apiFetch","useApiFetch","toast","useToast","handleSubmit","formState","setError","useForm","mode","defaultValues","is_project_owner","onFormSubmit","data","pathParams","hash","fetchParams","method","body","position","description","status","isClosable","_error","_error_payload1","errorMap","payload","errors","Object","keys","length","forEach","errorField","message","join","form","noValidate","onSubmit","ref","VStack","gap","AuditSubmitterName","AuditSubmitterEmail","AuditSubmitterIsOwner","AuditProjectName","AuditProjectUrl","AuditCompanyName","AuditReportUrl","AuditComment","Button","size","mt","isLoading","isSubmitting","loadingText","isDisabled","isDirty","contract_ContractSecurityAudits","addressHash","isPlaceholderData","useApiQuery","queryOptions","refetchOnMount","placeholderData","items","enabled","modalProps","useDisclosure","renderForm","ContractSubmitAuditForm","onClose","Fragment","onClick","onOpen","Box","ContainerWithScrollY","gradientHeight","rowGap","w","map","item","LinkExternal","href","audit_report_url","audit_company_name","concat","audit_publish_date","FormModal","isOpen","lib_stripLeadingSlash","str","slice","light","base","inherit","colors","focusBorder","dark","useThemeColors","theme","useColorModeValue","themes","monaco_CodeEditorBreadcrumbs","path","chunks","stripLeadingSlash","split","themeColors","Flex","color","bgColor","pl","pr","flexWrap","fontSize","lineHeight","alignItems","chunk","index","className","boxSize","_before","content","monaco_CodeEditorLoading","chakra","Center","h","overflow","ContentLoader","monaco_CodeEditorFileIcon","fileName","test","IconSvg","monaco_CodeEditorMainFileIndicator","Tooltip","display","CodeEditorFileTree","tree","level","onItemClick","isCollapsed","selectedFile","mainFile","itemProps","borderWidth","cursor","_last","borderBottomWidth","Accordion","allowMultiple","defaultIndex","undefined","reduceMotion","leaf","leafName","span","textOverflow","whiteSpace","AccordionItem","isExpanded","AccordionButton","py","_hover","transitionDuration","transform","mr","AccordionPanel","p","children","data-file-path","file_path","CodeEditorMainFileIndicator","top","left","CodeEditorFileIcon","monaco_CodeEditorFileTree","monaco_CoderEditorCollapseButton","ml","alignSelf","opacity","borderRadius","aria-label","sortFileTree","a","b","localeCompare","monaco_CodeEditorFileExplorer","onFileSelect","isActive","setActionBarRenderer","key","setKey","composeFileTree","files","result","segments","file","reduce","acc","segment","currentIndex","array","push","sort","handleCollapseButtonClick","prev","renderActionBar","CoderEditorCollapseButton","handleFileClick","filePath","event","currentTarget","getAttribute","fileIndex","findIndex","calculateStartPosition","lineContent","startColumn","start","element","monaco_CodeEditorSearchResultItem","startLineNumber","endColumn","data-line-number","monaco_CodeEditorSearchSection","getFileName","handleFileLineClick","lineNumber","Number","is","NaN","px","width","height","flexShrink","textAlign","matches","CodeEditorSearchResultItem","match","monaco_CodeEditorSearch","monaco","isInputStuck","defaultValue","searchTerm","changeSearchTerm","searchResults","setSearchResults","expandedSections","setExpandedSections","isMatchCase","setMatchCase","useBoolean","isMatchWholeWord","setMatchWholeWord","isMatchRegex","setMatchRegex","decorations","debouncedSearchTerm","useDebounce","models","editor","getModels","model","findMatches","uri","prevDecorations","current","newDecorations","range","options","newDecorationsIds","deltaDecorations","getLineContent","filter","handleSearchTermChange","target","value","handleResultItemClick","handleAccordionStateChange","newValue","handleToggleCollapseClick","buttonProps","borderColor","searchResultNum","totalResults","mb","InputGroup","zIndex","pb","boxShadow","onChange","placeholder","_focus","InputRightElement","right","columnGap","toggle","CodeEditorSearchSection","monaco_CodeEditorSideBar","isStuck","setIsStuck","isDrawerOpen","setIsDrawerOpen","tabIndex","setTabIndex","searchValue","setSearchValue","actionBarRenderer","tabProps","fontFamily","textTransform","fontWeight","_selected","letterSpacing","handleScrollThrottled","_throttle","scrollTop","handleFileSelect","off","addAction","keybindings","KeyMod","CtrlCmd","Shift","KeyCode","KeyE","contextMenuGroupId","contextMenuOrder","run","KeyF","selection","getSelection","selectedValue","getModel","getValueInRange","overflowY","onScroll","lg","transitionProperty","transitionTimingFunction","borderTopRightRadius","borderBottomRightRadius","Tabs","isLazy","lazyBehavior","TabList","Tab","shift","cmd","TabPanels","TabPanel","CodeEditorFileExplorer","CodeEditorSearch","CONTAINER_WIDTH","backgroundColor","borderTopLeftRadius","borderBottomLeftRadius","monaco_CodeEditorTab","isMainFile","isCloseDisabled","tabsPathChunks","folderName","getFilePathParts","getFolderName","tabsWithSameFileName","otherTabsPathChunks","tabChunks","subFolderNames","tab","includes","handleClick","handleClose","stopPropagation","borderRightWidth","borderRightColor","borderBottomColor","visibility","userSelect","alt","monaco_CodeEditorTabs","tabs","activeTab","onTabSelect","onTabClose","CodeEditorTab","sortByEndLineNumberAsc","endLineNumber","getLibraryName","library","libraryName","EDITOR_OPTIONS","readOnly","minimap","scrollbar","alwaysConsumeMouseWheel","dragAndDrop","monaco_CodeEditor","remappings","libraries","language","contractName","instance","setInstance","setEditor","setIndex","setTabs","isMetaPressed","setIsMetaPressed","containerRect","containerNodeRef","useClientRect","colorMode","useColorMode","useToken","isMobile","useIsMobile","editorWidth","SIDE_BAR_WIDTH","editorLanguage","setTheme","handleEditorDidMount","defineTheme","loadedModels","loadedModelsPaths","newModels","createModel","source_code","Uri","parse","addMainContractCodeDecoration","isWholeLine","contractBlockMatches","firstLineMatch","firstLineDecoration","marginClassName","glyphMarginClassName","glyphMarginHoverMessage","lastLineRange","getLineCount","lastLineMatch","restDecoration","updateOptions","glyphMargin","addFileImportDecorations","inlineClassName","hoverMessage","regularImportDecorations","regularImportMatches","namedImportDecorations","namedImportMatches","Array","isArray","addExternalLibraryWarningDecoration","names","Alt","KeyW","handleTabClose","handleSelectFile","some","window","setTimeout","revealLineInCenter","focus","handleTabSelect","_isActive","classList","contains","previousElementSibling","nextElementSibling","innerText","fullPath","getFullPathOfImportedFile","baseFilePath","importedFilePath","compilerRemappings","prefix","context","find","contextPart","stripTrailingSlash","startsWith","replace","baseFileChunks","importedFileChunks","pop","handleKeyDown","isMetaKey","metaKey","getModifierState","handleKeyUp","containerSx","textDecoration","background","backgroundSize","renderErrorScreen","sx","ErrorBoundary","MonacoEditor","onMount","loading","CodeEditorLoading","EDITOR_HEIGHT","onKeyDown","onKeyUp","flexGrow","CodeEditorTabs","CodeEditorBreadcrumbs","CodeEditorSideBar","formatFilePath","ContractCodeIdes","onToggle","defaultIconColor","ideLinks","config","UI","ides","decodeURIComponent","ide","app","host","icon","Image","src","icon_url","Skeleton","Popover","placement","PopoverTrigger","colorScheme","PopoverContent","PopoverBody","flexDir","Item","AddressEntity","address_hash","is_contract","query","contract_ContractExternalLibraries","button","Heading","Alert","apos","divider","StackDivider","spacing","Modal","ModalContent","paddingTop","ModalCloseButton","contract_ContractSourceCode","contractQuery","editorData","implementations","sourceContract","setSourceContract","stubs","getEditorData","contractInfo","extension","additional_sources","source","handleSelectChange","nextOption","heading","isLoaded","Text","as","select","Select","maxW","xl","option","externalLibraries","external_libraries","ContractExternalLibraries","diagramLink","can_be_visualized_via_sol2uml","LinkInternal","route","pathname","copyToClipboard","CopyToClipboard","CodeEditor","compiler_settings","section","InfoItem","hint","GridItem","wordBreak","Hint","tooltipProps","rollupFeature","features","rollup","contract_ContractCode","channel","isChangedBytecodeSocket","setIsChangedBytecodeSocket","queryClient","useQueryClient","addressInfo","getQueryData","getResourceKey","isError","handleChangedBytecodeMessage","handleContractWasVerifiedMessage","refetchQueries","queryKey","useSocketMessage","handler","DataFetchAlert","canBeVerified","is_self_destructed","is_verified","verificationButton","is_partially_verified","licenseLink","license_type","license","constructorArgs","decoded_constructor_args","constructor_args","decoded","valueEl","noIcon","br","verificationAlert","is_verified_via_eth_bytecode_db","is_verified_via_sourcify","sourcify_repo_url","contractNameWithCertifiedIcon","certified","ContractCertifiedLabel","iconSize","_empty","is_blueprint","is_changed_bytecode","verified_twin_address_hash","minimal_proxy_address_hash","truncation","noCopy","Link","Grid","templateColumns","compiler_version","zk_compiler_version","evm_version","optimization_enabled","optimization_runs","isEnabled","String","verified_at","hasContractAuditReports","ContractSecurityAudits","RawDataSnippet","textareaMaxHeight","ContractSourceCode","JSON","stringify","abi","creation_bytecode","rightSlot","beforeSlot","deployed_bytecode","methods_ContractConnectWallet","blockchainInteraction","isModalOpening","isModalOpen","connect","disconnect","isWalletConnected","useWallet","methods_ContractCustomAbiAlert","getNativeCoinValue","BigInt","isReadMethod","constant","stateMutability","isWriteMethod","enrichWithMethodId","method_id","toFunctionSelector","is_invalid","divideAbiIntoMethodTypes","read","write","form_ContractMethodArrayButton","IconButton","data-index","form_ContractMethodFieldAccordion","onAddClick","onRemoveClick","bgColorLevel0","allowToggle","_first","borderTopWidth","AccordionIcon","ContractMethodArrayButton","INT_REGEXP","BYTES_REGEXP","ARRAY_REGEXP","matchArray","argType","itemType","isNested","Infinity","matchInt","isUnsigned","power","min","getIntBoundaries","transformDataForArrayItem","arrayMatchType","arrayMatchInternalType","internalType","childrenInternalType","replaceAll","postfix","maxUnsigned","getFieldLabel","input","form_ContractMethodFieldLabel","isOptional","form_ContractMethodMultiplyButton","selectedOption","setSelectedOption","customValue","setCustomValue","handleOptionClick","handleInputChange","handleButtonClick","times","verticalAlign","Portal","List","ListItem","data-id","justifyContent","form_ContractMethodFieldInput","hideLabel","isOptionalProp","isNativeCoin","fieldType","argTypeMatchInt","useValidateField","bytesMatch","isAddress","toLowerCase","getAddress","valueBi","lowerBoundary","upperBoundary","isHex","valueLengthInBytes","useFormatFieldValue","setValue","getValues","useFormContext","useController","inputBgColor","nativeCoinRowBgColor","hasMultiplyButton","handleChange","formattedValue","handleClear","handleMultiplyButtonClick","zeroes","fill","md","ContractMethodFieldLabel","NumericFormat","thousandSeparator","decimalScale","allowNegative","paddingRight","ClearButton","ContractMethodMultiplyButton","ContractMethodFieldInputTuple","basePath","accordionProps","fieldsWithErrors","ContractMethodFieldAccordion","components","component","arrayMatch","ContractMethodFieldInputArray","ContractMethodFieldInput","form_ContractMethodFieldInputTuple","parentIndex","isArrayElement","hasFixedSize","registeredIndices","setRegisteredIndices","_","i","handleAddButtonClick","preventDefault","handleRemoveButtonClick","itemIndex","registeredIndex","itemData","itemBasePath","itemIsInvalid","my","form_ContractMethodFieldInputArray","resultPublicClient_ItemLabel","abiParameter","printRowOffset","repeat","castValueToString","toLocaleString","useGrouping","toString","resultPublicClient_ItemPrimitive","intMatch","dividedValue","BigNumber","div","WEI","ItemLabel","resultPublicClient_ItemTuple","dataObj","ItemArray","itemAbiParameter","every","itemArrayMatch","ItemTuple","ItemPrimitive","resultPublicClient_ItemArray","resultPublicClient_Item","previewData","fromEntries","form_ContractMethodResultPublicClient","abiItem","onSettle","modeProps","formattedData","outputs","Error","shortMessage","output","ResultItem","ContractMethodResultWalletClientDumb","txInfo","txHash","isErrorResult","txLink","Spinner","form_ContractMethodResultWalletClient","useWaitForTransactionReceipt","form_ContractMethodForm","attempt","onReset","setResult","setLoading","callStrategy","setCallStrategy","callStrategyRef","formApi","shouldUnregister","methodType","formData","args","transformFormDataToMethodArgs","_set","filterOutEmptyItems","then","catch","finally","mixpanel","CONTRACT_INTERACTION","inputs","handleResultSettle","handleFormChange","chain","currency","symbol","primaryButton","buttonCallStrategy","data-call-strategy","secondaryButton","FormProvider","props","ContractMethodResultWalletClient","ContractMethodResultPublicClient","getElementName","methods_ContractAbiItem","setAttempt","baseUrl","handleCopyLinkClick","handleCopyMethodIdClick","handleReset","Element","Tag","ContractMethodForm","useCallMethodPublicClient","publicClient","usePublicClient","chainId","account","useAccount","strategy","params","functionName","readContract","simulateContract","hook","callMethodWalletClient","useCallMethodWalletClient","walletClient","useWalletClient","isConnected","switchChainAsync","useSwitchChain","sendTransaction","to","methodName","_args","writeContract","callMethodPublicClient","methods_ContractAbi","setId","location","scroller","scrollTo","duration","smooth","offset","handleFormSubmit","useFormSubmit","handleExpandAll","_range","ContractAbiItem","methods_ContractMethods","router","useRouter","getQueryParamString","ContractAbi","methods_ContractMethodsCustom","ContractConnectWallet","ContractCustomAbiAlert","ContractMethods","links_LinkNewTab","iconColor","methods_ContractImplementationAddress","selectedItem","onItemSelect","implementation","LinkNewTab","methods_ContractMethodsProxy","isInitialLoading","setSelectedItem","handleItemSelect","ContractImplementationAddress","isPending","methods_ContractMethodsRegular","CONTRACT_TAB_IDS","useContractTabs","isQueryEnabled","setIsQueryEnabled","enableQuery","customAbiQuery","cookies","API_TOKEN","useSocketChannel","topic","onJoin","onSocketError","methods","methodsCustomAbi","contract_address_hash","verifiedImplementations","ContractCode","ContractMethodsRegular","ContractMethodsCustom","ContractMethodsProxy","validator","URL","CONTRACT_CODE_UNVERIFIED","CONTRACT_CODE_VERIFIED","compilationTarget","evmVersion","metadata","bytecodeHash","optimizer","runs","VERIFIED_CONTRACT_INFO","ADDRESS_PARAMS","coin_balance","has_constructor_args","market_cap","tx_count","VERIFIED_CONTRACTS_COUNTERS","smart_contracts","new_smart_contracts_24h","verified_smart_contracts","new_verified_smart_contracts_24h","SOLIDITY_SCAN_REPORT","scan_report","contractname","scan_status","scan_summary","issue_severity_distribution","critical","gas","high","informational","low","medium","score_v2","scanner_reference_url","TAB_LIST_PROPS","__webpack_exports__","Z","shouldRender","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","RoutedTabs","tabListProps","Checkbox","isChecked","formatUserTags","private_tags","slug","tag","display_name","tagType","ordinal","watchlist_names","sortEntityTags","tagA","tagB","resetTokenIconColor","resetTokenIconHoverColor"],"sourceRoot":""}