Commit 1b21831c authored by tom's avatar tom

api fixes

parent 8c349948
......@@ -116,7 +116,7 @@ export type SmartContractQueryMethodRead = SmartContractQueryMethodReadSuccess |
// VERIFICATION
export type SmartContractVerificationMethod = 'flattened_code' | 'standard_input' | 'sourcify' | 'multi_part' | 'vyper_code' | 'vyper_multi_part';
export type SmartContractVerificationMethod = 'flattened-code' | 'standard-input' | 'sourcify' | 'multi-part' | 'vyper-code' | 'vyper-multi-part';
export interface SmartContractVerificationConfigRaw {
solidity_compiler_versions: Array<string>;
......
......@@ -29,11 +29,11 @@ const formConfig: SmartContractVerificationConfig = {
'berlin',
],
verification_options: [
'flattened_code',
'standard_input',
'flattened-code',
'standard-input',
'sourcify',
'multi_part',
'vyper_code',
'multi-part',
'vyper-code',
],
vyper_compiler_versions: [
'v0.3.7+commit.6020b8bb',
......
......@@ -21,15 +21,15 @@ 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, formatSocketErrors } from './utils';
import { prepareRequestBody, formatSocketErrors } from './utils';
const METHOD_COMPONENTS = {
flattened_code: <ContractVerificationFlattenSourceCode/>,
standard_input: <ContractVerificationStandardInput/>,
'flattened-code': <ContractVerificationFlattenSourceCode/>,
'standard-input': <ContractVerificationStandardInput/>,
sourcify: <ContractVerificationSourcify/>,
multi_part: <ContractVerificationMultiPartFile/>,
vyper_code: <ContractVerificationVyperContract/>,
vyper_multi_part: <ContractVerificationVyperMultiPartFile/>,
'multi-part': <ContractVerificationMultiPartFile/>,
'vyper-code': <ContractVerificationVyperContract/>,
'vyper-multi-part': <ContractVerificationVyperMultiPartFile/>,
};
interface Props {
......@@ -53,14 +53,11 @@ const ContractVerificationForm = ({ method: methodFromQuery, config, hash }: Pro
const router = useRouter();
const onFormSubmit: SubmitHandler<FormFields> = React.useCallback(async(data) => {
// eslint-disable-next-line no-console
console.log('__>__', data);
const body = prepareRequestBody(data);
try {
await apiFetch('contract_verification_via', {
pathParams: { method: METHOD_TO_ENDPOINT_MAP[data.method], id: hash },
pathParams: { method: data.method, id: hash },
fetchParams: {
method: 'POST',
body,
......
......@@ -37,9 +37,9 @@ const ContractVerificationFieldMethod = ({ control, isDisabled, methods }: Props
const renderItem = React.useCallback((method: SmartContractVerificationMethod) => {
switch (method) {
case 'flattened_code':
case 'flattened-code':
return 'Via flattened source code';
case 'standard_input':
case 'standard-input':
return (
<>
<span>Via standard </span>
......@@ -85,11 +85,11 @@ const ContractVerificationFieldMethod = ({ control, isDisabled, methods }: Props
</Popover>
</>
);
case 'multi_part':
case 'multi-part':
return 'Via multi-part files';
case 'vyper_code':
case 'vyper-code':
return 'Vyper contract';
case 'vyper_multi_part':
case 'vyper-multi-part':
return 'Via multi-part Vyper files';
default:
......
......@@ -5,7 +5,7 @@ export interface ContractLibrary {
address: string;
}
export interface FormFieldsFlattenSourceCode {
method: 'flattened_code';
method: 'flattened-code';
is_yul: boolean;
name: string;
compiler: Option;
......@@ -19,7 +19,7 @@ export interface FormFieldsFlattenSourceCode {
}
export interface FormFieldsStandardInput {
method: 'standard_input';
method: 'standard-input';
name: string;
compiler: Option;
sources: Array<File>;
......@@ -33,7 +33,7 @@ export interface FormFieldsSourcify {
}
export interface FormFieldsMultiPartFile {
method: 'multi_part';
method: 'multi-part';
compiler: Option;
evm_version: Option;
is_optimization_enabled: boolean;
......@@ -43,7 +43,7 @@ export interface FormFieldsMultiPartFile {
}
export interface FormFieldsVyperContract {
method: 'vyper_code';
method: 'vyper-code';
name: string;
compiler: Option;
code: string;
......@@ -51,7 +51,7 @@ export interface FormFieldsVyperContract {
}
export interface FormFieldsVyperMultiPartFile {
method: 'vyper_multi_part';
method: 'vyper-multi-part';
compiler: Option;
evm_version: Option;
sources: Array<File>;
......
......@@ -6,23 +6,14 @@ import type { SmartContractVerificationMethod, SmartContractVerificationError }
import type { Params as FetchParams } from 'lib/hooks/useFetch';
export const SUPPORTED_VERIFICATION_METHODS: Array<SmartContractVerificationMethod> = [
'flattened_code',
'standard_input',
'flattened-code',
'standard-input',
'sourcify',
'multi_part',
'vyper_code',
'vyper_multi_part',
'multi-part',
'vyper-code',
'vyper-multi-part',
];
export const METHOD_TO_ENDPOINT_MAP: Record<SmartContractVerificationMethod, string> = {
flattened_code: 'flattened-code',
standard_input: 'standard-input',
sourcify: 'sourcify',
multi_part: 'multi-part',
vyper_code: 'vyper-code',
vyper_multi_part: 'vyper-multi-part',
};
export function isValidVerificationMethod(method?: string): method is SmartContractVerificationMethod {
return method && SUPPORTED_VERIFICATION_METHODS.includes(method as SmartContractVerificationMethod) ? true : false;
}
......@@ -44,11 +35,12 @@ export function sortVerificationMethods(methodA: SmartContractVerificationMethod
export function prepareRequestBody(data: FormFields): FetchParams['body'] {
switch (data.method) {
case 'flattened_code': {
case 'flattened-code': {
return {
compiler_version: data.compiler?.value,
source_code: data.code,
is_optimization_enabled: data.is_optimization_enabled,
is_yul_contract: data.is_yul,
optimization_runs: data.optimization_runs,
contract_name: data.name,
libraries: reduceLibrariesArray(data.libraries),
......@@ -58,7 +50,7 @@ export function prepareRequestBody(data: FormFields): FetchParams['body'] {
};
}
case 'standard_input': {
case 'standard-input': {
const body = new FormData();
body.set('compiler_version', data.compiler?.value);
body.set('contract_name', data.name);
......@@ -76,7 +68,7 @@ export function prepareRequestBody(data: FormFields): FetchParams['body'] {
return body;
}
case 'multi_part': {
case 'multi-part': {
const body = new FormData();
body.set('compiler_version', data.compiler?.value);
body.set('evm_version', data.evm_version?.value);
......@@ -90,7 +82,7 @@ export function prepareRequestBody(data: FormFields): FetchParams['body'] {
return body;
}
case 'vyper_code': {
case 'vyper-code': {
return {
compiler_version: data.compiler?.value,
source_code: data.code,
......@@ -99,7 +91,7 @@ export function prepareRequestBody(data: FormFields): FetchParams['body'] {
};
}
case 'vyper_multi_part': {
case 'vyper-multi-part': {
const body = new FormData();
body.set('compiler_version', data.compiler?.value);
body.set('evm_version', data.evm_version?.value);
......
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