Commit 37bcdf1f authored by tom's avatar tom

vyper multi part method

parent 8214712e
......@@ -116,7 +116,7 @@ export type SmartContractQueryMethodRead = SmartContractQueryMethodReadSuccess |
// VERIFICATION
export type SmartContractVerificationMethod = 'flattened_code' | 'standard_input' | 'sourcify' | 'multi_part' | 'vyper_code';
export type SmartContractVerificationMethod = 'flattened_code' | 'standard_input' | 'sourcify' | 'multi_part' | 'vyper_code' | 'vyper_multi_part';
export interface SmartContractVerificationConfigRaw {
solidity_compiler_versions: Array<string>;
......
......@@ -17,6 +17,7 @@ import ContractVerificationMultiPartFile from './methods/ContractVerificationMul
import ContractVerificationSourcify from './methods/ContractVerificationSourcify';
import ContractVerificationStandardInput from './methods/ContractVerificationStandardInput';
import ContractVerificationVyperContract from './methods/ContractVerificationVyperContract';
import ContractVerificationVyperMultiPartFile from './methods/ContractVerificationVyperMultiPartFile';
import { prepareRequestBody, METHOD_TO_ENDPOINT_MAP } from './utils';
const METHOD_COMPONENTS = {
......@@ -25,6 +26,7 @@ const METHOD_COMPONENTS = {
sourcify: <ContractVerificationSourcify/>,
multi_part: <ContractVerificationMultiPartFile/>,
vyper_code: <ContractVerificationVyperContract/>,
vyper_multi_part: <ContractVerificationVyperMultiPartFile/>,
};
interface Props {
......
......@@ -89,6 +89,8 @@ const ContractVerificationFieldMethod = ({ control, isDisabled, methods }: Props
return 'Via multi-part files';
case 'vyper_code':
return 'Vyper contract';
case 'vyper_multi_part':
return 'Via multi-part Vyper files';
default:
break;
......@@ -97,7 +99,7 @@ const ContractVerificationFieldMethod = ({ control, isDisabled, methods }: Props
const renderRadioGroup = React.useCallback(({ field }: {field: ControllerRenderProps<FormFields, 'method'>}) => {
return (
<RadioGroup defaultValue="add" colorScheme="blue" isDisabled={ isDisabled } { ...field }>
<RadioGroup defaultValue="add" colorScheme="blue" isDisabled={ isDisabled } isFocusable={ !isDisabled } { ...field } >
<Stack spacing={ 4 }>
{ methods.map((method) => {
return <Radio key={ method } value={ method } size="lg">{ renderItem(method) }</Radio>;
......
import React from 'react';
import ContractVerificationMethod from '../ContractVerificationMethod';
import ContractVerificationFieldCompiler from '../fields/ContractVerificationFieldCompiler';
import ContractVerificationFieldEvmVersion from '../fields/ContractVerificationFieldEvmVersion';
import ContractVerificationFieldSources from '../fields/ContractVerificationFieldSources';
const ContractVerificationVyperMultiPartFile = () => {
return (
<ContractVerificationMethod title="New Vyper Smart Contract Verification">
<ContractVerificationFieldCompiler isVyper/>
<ContractVerificationFieldEvmVersion isVyper/>
<ContractVerificationFieldSources
accept=".vy"
multiple
title="Sources *.vy files"
hint="Upload all Vyper contract source files."
/>
</ContractVerificationMethod>
);
};
export default React.memo(ContractVerificationVyperMultiPartFile);
......@@ -48,5 +48,12 @@ export interface FormFieldsVyperContract {
abi_encoded_args: string;
}
export interface FormFieldsVyperMultiPartFile {
method: 'vyper_multi_part';
compiler: Option;
evm_version: Option;
sources: Array<File>;
}
export type FormFields = FormFieldsFlattenSourceCode | FormFieldsStandardInput | FormFieldsSourcify |
FormFieldsMultiPartFile | FormFieldsVyperContract;
FormFieldsMultiPartFile | FormFieldsVyperContract | FormFieldsVyperMultiPartFile;
......@@ -9,6 +9,7 @@ export const SUPPORTED_VERIFICATION_METHODS: Array<SmartContractVerificationMeth
'sourcify',
'multi_part',
'vyper_code',
'vyper_multi_part',
];
export const METHOD_TO_ENDPOINT_MAP: Record<SmartContractVerificationMethod, string> = {
......@@ -17,6 +18,7 @@ export const METHOD_TO_ENDPOINT_MAP: Record<SmartContractVerificationMethod, str
sourcify: 'sourcify',
multi_part: 'multi-part',
vyper_code: 'vyper-code',
vyper_multi_part: 'vyper-multi-part',
};
export function isValidVerificationMethod(method?: string): method is SmartContractVerificationMethod {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment