Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
frontend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
vicotor
frontend
Commits
77621de2
Commit
77621de2
authored
Feb 02, 2023
by
tom
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
constructor args field
parent
37bcdf1f
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
78 additions
and
19 deletions
+78
-19
types.ts
lib/socket/types.ts
+1
-1
ContractVerificationFieldAutodetectArgs.tsx
...cation/fields/ContractVerificationFieldAutodetectArgs.tsx
+45
-0
ContractVerificationFieldConstructorArgs.tsx
...ation/fields/ContractVerificationFieldConstructorArgs.tsx
+4
-4
ContractVerificationFieldOptimization.tsx
...fication/fields/ContractVerificationFieldOptimization.tsx
+3
-2
ContractVerificationFlattenSourceCode.tsx
...ication/methods/ContractVerificationFlattenSourceCode.tsx
+2
-2
ContractVerificationStandardInput.tsx
...erification/methods/ContractVerificationStandardInput.tsx
+2
-2
ContractVerificationVyperContract.tsx
...erification/methods/ContractVerificationVyperContract.tsx
+2
-2
types.ts
ui/contractVerification/types.ts
+5
-3
utils.ts
ui/contractVerification/utils.ts
+14
-3
No files found.
lib/socket/types.ts
View file @
77621de2
...
...
@@ -45,6 +45,6 @@ export namespace SocketMessage {
export
type
AddressTxsPending
=
SocketMessageParamsGeneric
<
'
pending_transaction
'
,
{
transaction
:
Transaction
}
>
;
export
type
AddressTokenTransfer
=
SocketMessageParamsGeneric
<
'
token_transfer
'
,
{
token_transfer
:
TokenTransfer
}
>
;
export
type
TokenTransfers
=
SocketMessageParamsGeneric
<
'
token_transfer
'
,
{
token_transfer
:
number
}
>
;
export
type
ContractVerification
=
SocketMessageParamsGeneric
<
'
verification
'
,
unknown
>
;
export
type
ContractVerification
=
SocketMessageParamsGeneric
<
'
verification
_result
'
,
unknown
>
;
export
type
Unknown
=
SocketMessageParamsGeneric
<
undefined
,
unknown
>
;
}
ui/contractVerification/fields/ContractVerificationField
Cons
tArgs.tsx
→
ui/contractVerification/fields/ContractVerificationField
Autodetec
tArgs.tsx
View file @
77621de2
...
...
@@ -7,27 +7,39 @@ import type { FormFields } from '../types';
import
CheckboxInput
from
'
ui/shared/CheckboxInput
'
;
import
ContractVerificationFormRow
from
'
../ContractVerificationFormRow
'
;
import
ContractVerificationFieldConstructorArgs
from
'
./ContractVerificationFieldConstructorArgs
'
;
const
ContractVerificationFieldConstArgs
=
()
=>
{
const
{
formState
,
control
}
=
useFormContext
<
FormFields
>
();
const
ContractVerificationFieldAutodetectArgs
=
()
=>
{
const
[
isOn
,
setIsOn
]
=
React
.
useState
(
true
);
const
{
formState
,
control
,
resetField
}
=
useFormContext
<
FormFields
>
();
const
renderControl
=
React
.
useCallback
(({
field
}:
{
field
:
ControllerRenderProps
<
FormFields
,
'
constructor_args
'
>
})
=>
(
<
CheckboxInput
<
FormFields
,
'
constructor_args
'
>
const
handleCheckboxChange
=
React
.
useCallback
(()
=>
{
!
isOn
&&
resetField
(
'
constructor_args
'
);
setIsOn
(
prev
=>
!
prev
);
},
[
isOn
,
resetField
]);
const
renderControl
=
React
.
useCallback
(({
field
}:
{
field
:
ControllerRenderProps
<
FormFields
,
'
autodetect_constructor_args
'
>
})
=>
(
<
CheckboxInput
<
FormFields
,
'
autodetect_constructor_args
'
>
text="Try to fetch constructor arguments automatically"
field=
{
field
}
isDisabled=
{
formState
.
isSubmitting
}
onChange=
{
handleCheckboxChange
}
/
>
), [ formState.isSubmitting ]);
), [ formState.isSubmitting
, handleCheckboxChange
]);
return (
<
ContractVerificationFormRow
>
<
Controller
name=
"constructor_args"
control=
{
control
}
render=
{
renderControl
}
/>
</
ContractVerificationFormRow
>
<>
<
ContractVerificationFormRow
>
<
Controller
name=
"autodetect_constructor_args"
control=
{
control
}
render=
{
renderControl
}
defaultValue=
{
true
}
/>
</
ContractVerificationFormRow
>
{
!
isOn
&&
<
ContractVerificationFieldConstructorArgs
/>
}
</>
);
};
export default React.memo(ContractVerificationField
Cons
tArgs);
export default React.memo(ContractVerificationField
Autodetec
tArgs);
ui/contractVerification/fields/ContractVerificationField
AbiEncoded
Args.tsx
→
ui/contractVerification/fields/ContractVerificationField
Constructor
Args.tsx
View file @
77621de2
...
...
@@ -9,10 +9,10 @@ import InputPlaceholder from 'ui/shared/InputPlaceholder';
import
ContractVerificationFormRow
from
'
../ContractVerificationFormRow
'
;
const
ContractVerificationField
AbiEncoded
Args
=
()
=>
{
const
ContractVerificationField
Constructor
Args
=
()
=>
{
const
{
formState
,
control
}
=
useFormContext
<
FormFields
>
();
const
renderControl
=
React
.
useCallback
(({
field
}:
{
field
:
ControllerRenderProps
<
FormFields
,
'
abi_encoded
_args
'
>
})
=>
{
const
renderControl
=
React
.
useCallback
(({
field
}:
{
field
:
ControllerRenderProps
<
FormFields
,
'
constructor
_args
'
>
})
=>
{
return
(
<
FormControl
variant=
"floating"
id=
{
field
.
name
}
size=
{
{
base
:
'
md
'
,
lg
:
'
lg
'
}
}
>
<
Textarea
...
...
@@ -28,7 +28,7 @@ const ContractVerificationFieldAbiEncodedArgs = () => {
return
(
<
ContractVerificationFormRow
>
<
Controller
name=
"
abi_encoded
_args"
name=
"
constructor
_args"
control=
{
control
}
render=
{
renderControl
}
/>
...
...
@@ -44,4 +44,4 @@ const ContractVerificationFieldAbiEncodedArgs = () => {
);
};
export
default
React
.
memo
(
ContractVerificationField
AbiEncoded
Args
);
export
default
React
.
memo
(
ContractVerificationField
Constructor
Args
);
ui/contractVerification/fields/ContractVerificationFieldOptimization.tsx
View file @
77621de2
...
...
@@ -11,7 +11,7 @@ import InputPlaceholder from 'ui/shared/InputPlaceholder';
import
ContractVerificationFormRow
from
'
../ContractVerificationFormRow
'
;
const
ContractVerificationFieldOptimization
=
()
=>
{
const
[
isEnabled
,
setIsEnabled
]
=
React
.
useState
(
fals
e
);
const
[
isEnabled
,
setIsEnabled
]
=
React
.
useState
(
tru
e
);
const
{
formState
,
control
}
=
useFormContext
<
FormFields
>
();
const
handleCheckboxChange
=
React
.
useCallback
(()
=>
{
...
...
@@ -49,6 +49,7 @@ const ContractVerificationFieldOptimization = () => {
name=
"is_optimization_enabled"
control=
{
control
}
render=
{
renderCheckboxControl
}
defaultValue=
{
true
}
/>
</
ContractVerificationFormRow
>
{
isEnabled
&&
(
...
...
@@ -58,7 +59,7 @@ const ContractVerificationFieldOptimization = () => {
control=
{
control
}
render=
{
renderInputControl
}
rules=
{
{
required
:
true
}
}
defaultValue=
""
defaultValue=
"
200
"
/>
</
ContractVerificationFormRow
>
)
}
...
...
ui/contractVerification/methods/ContractVerificationFlattenSourceCode.tsx
View file @
77621de2
import
React
from
'
react
'
;
import
ContractVerificationMethod
from
'
../ContractVerificationMethod
'
;
import
ContractVerificationFieldAutodetectArgs
from
'
../fields/ContractVerificationFieldAutodetectArgs
'
;
import
ContractVerificationFieldCode
from
'
../fields/ContractVerificationFieldCode
'
;
import
ContractVerificationFieldCompiler
from
'
../fields/ContractVerificationFieldCompiler
'
;
import
ContractVerificationFieldConstArgs
from
'
../fields/ContractVerificationFieldConstArgs
'
;
import
ContractVerificationFieldEvmVersion
from
'
../fields/ContractVerificationFieldEvmVersion
'
;
import
ContractVerificationFieldIsYul
from
'
../fields/ContractVerificationFieldIsYul
'
;
import
ContractVerificationFieldLibraries
from
'
../fields/ContractVerificationFieldLibraries
'
;
...
...
@@ -19,7 +19,7 @@ const ContractVerificationFlattenSourceCode = () => {
<
ContractVerificationFieldEvmVersion
/>
<
ContractVerificationFieldOptimization
/>
<
ContractVerificationFieldCode
/>
<
ContractVerificationField
Cons
tArgs
/>
<
ContractVerificationField
Autodetec
tArgs
/>
<
ContractVerificationFieldLibraries
/>
</
ContractVerificationMethod
>
);
...
...
ui/contractVerification/methods/ContractVerificationStandardInput.tsx
View file @
77621de2
import
React
from
'
react
'
;
import
ContractVerificationMethod
from
'
../ContractVerificationMethod
'
;
import
ContractVerificationFieldAutodetectArgs
from
'
../fields/ContractVerificationFieldAutodetectArgs
'
;
import
ContractVerificationFieldCompiler
from
'
../fields/ContractVerificationFieldCompiler
'
;
import
ContractVerificationFieldConstArgs
from
'
../fields/ContractVerificationFieldConstArgs
'
;
import
ContractVerificationFieldName
from
'
../fields/ContractVerificationFieldName
'
;
import
ContractVerificationFieldSources
from
'
../fields/ContractVerificationFieldSources
'
;
...
...
@@ -16,7 +16,7 @@ const ContractVerificationStandardInput = () => {
title=
"Standard Input JSON"
hint=
"Upload the standard input JSON file created during contract compilation."
/>
<
ContractVerificationField
Cons
tArgs
/>
<
ContractVerificationField
Autodetec
tArgs
/>
</
ContractVerificationMethod
>
);
};
...
...
ui/contractVerification/methods/ContractVerificationVyperContract.tsx
View file @
77621de2
import
React
from
'
react
'
;
import
ContractVerificationMethod
from
'
../ContractVerificationMethod
'
;
import
ContractVerificationFieldAbiEncodedArgs
from
'
../fields/ContractVerificationFieldAbiEncodedArgs
'
;
import
ContractVerificationFieldCode
from
'
../fields/ContractVerificationFieldCode
'
;
import
ContractVerificationFieldCompiler
from
'
../fields/ContractVerificationFieldCompiler
'
;
import
ContractVerificationFieldConstructorArgs
from
'
../fields/ContractVerificationFieldConstructorArgs
'
;
import
ContractVerificationFieldName
from
'
../fields/ContractVerificationFieldName
'
;
const
ContractVerificationVyperContract
=
()
=>
{
...
...
@@ -12,7 +12,7 @@ const ContractVerificationVyperContract = () => {
<
ContractVerificationFieldName
hint=
"Must match the name specified in the code."
/>
<
ContractVerificationFieldCompiler
isVyper
/>
<
ContractVerificationFieldCode
isVyper
/>
<
ContractVerificationField
AbiEncoded
Args
/>
<
ContractVerificationField
Constructor
Args
/>
</
ContractVerificationMethod
>
);
};
...
...
ui/contractVerification/types.ts
View file @
77621de2
...
...
@@ -13,7 +13,8 @@ export interface FormFieldsFlattenSourceCode {
is_optimization_enabled
:
boolean
;
optimization_runs
:
string
;
code
:
string
;
constructor_args
:
boolean
;
autodetect_constructor_args
:
boolean
;
constructor_args
:
string
;
libraries
:
Array
<
ContractLibrary
>
;
}
...
...
@@ -22,7 +23,8 @@ export interface FormFieldsStandardInput {
name
:
string
;
compiler
:
Option
;
sources
:
Array
<
File
>
;
constructor_args
:
boolean
;
autodetect_constructor_args
:
boolean
;
constructor_args
:
string
;
}
export
interface
FormFieldsSourcify
{
...
...
@@ -45,7 +47,7 @@ export interface FormFieldsVyperContract {
name
:
string
;
compiler
:
Option
;
code
:
string
;
abi_encoded
_args
:
string
;
constructor
_args
:
string
;
}
export
interface
FormFieldsVyperMultiPartFile
{
...
...
ui/contractVerification/utils.ts
View file @
77621de2
...
...
@@ -51,7 +51,8 @@ export function prepareRequestBody(data: FormFields): FetchParams['body'] {
contract_name
:
data
.
name
,
libraries
:
reduceLibrariesArray
(
data
.
libraries
),
evm_version
:
data
.
evm_version
.
value
,
autodetect_constructor_args
:
data
.
constructor_args
,
autodetect_constructor_args
:
data
.
autodetect_constructor_args
,
constructor_args
:
data
.
constructor_args
,
};
}
...
...
@@ -59,7 +60,8 @@ export function prepareRequestBody(data: FormFields): FetchParams['body'] {
const
body
=
new
FormData
();
body
.
set
(
'
compiler_version
'
,
data
.
compiler
.
value
);
body
.
set
(
'
contract_name
'
,
data
.
name
);
body
.
set
(
'
autodetect_constructor_args
'
,
String
(
Boolean
(
data
.
constructor_args
)));
body
.
set
(
'
autodetect_constructor_args
'
,
String
(
Boolean
(
data
.
autodetect_constructor_args
)));
body
.
set
(
'
constructor_args
'
,
data
.
constructor_args
);
addFilesToFormData
(
body
,
data
.
sources
);
return
body
;
...
...
@@ -91,10 +93,19 @@ export function prepareRequestBody(data: FormFields): FetchParams['body'] {
compiler_version
:
data
.
compiler
.
value
,
source_code
:
data
.
code
,
contract_name
:
data
.
name
,
constructor_args
:
data
.
abi_encoded
_args
,
constructor_args
:
data
.
constructor
_args
,
};
}
case
'
vyper_multi_part
'
:
{
const
body
=
new
FormData
();
body
.
set
(
'
compiler_version
'
,
data
.
compiler
.
value
);
body
.
set
(
'
evm_version
'
,
data
.
evm_version
.
value
);
addFilesToFormData
(
body
,
data
.
sources
);
return
body
;
}
default
:
{
return
{};
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment