Commit 1b21831c authored by tom's avatar tom

api fixes

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