Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hide unused features #39

Merged
merged 4 commits into from
Oct 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 39 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,26 +109,44 @@ Example contents for `config.json`:
{
"SERVER_URL": "https://server.sourcify-integration.hedera-devops.com",
"REPOSITORY_SERVER_URL": "https://repository.sourcify-integration.hedera-devops.com",
"HASHSCAN_URL": "https://hashscan.io"
"HASHSCAN_URL": "https://hashscan.io",
"REMOTE_IMPORT": false,
"GITHUB_IMPORT": false,
"CONTRACT_IMPORT": false,
"JSON_IMPORT": false,
"OPEN_IN_REMIX": false
}
```
The following properties can be provided in config.json

| Name | Description |
|-------------------------|------------------------------------------------------------------------------|
| `SERVER_URL` | URL of the server (from outside the cluster). |
| `REPOSITORY_SERVER_URL` | HTTP port exposed by container |
| `HASHSCAN_URL` | URL of HashScan |
| `REMOTE_IMPORT` | Flag to activate mode "Import from remote" |
| `GITHUB_IMPORT` | Flag to activate mode "Import from GitHub" |
| `CONTRACT_IMPORT` | Flag to activate mode "Import from contract's metadata" |
| `JSON_IMPORT` | Flag to activate mode "Import contracts from Solidity's Standard JSON Input" |
| `OPEN_IN_REMIX` | Flag to activate link "Open in Remix" |

### _server_ module

The following environment variables are needed by the _server_ at runtime:

| Name | Example value | Description |
|-------------------------|-----------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
| `REPOSITORY_PATH` | ../../data/repository | DO NOT CHANGE - Path of the contract repository, both inside container and mount point on the host. |
| `SOLC_REPO` | /home/data/solc-bin/linux-amd64 | Path where Solidity compiler binaries will be saved (inside container) |
| `SOLJSON_REPO` | /home/data/solc-bin/soljson | Path where Solidity JS compilers will be saved (inside container) |
| `SOLC_REPO_HOST` | ../../data/solc-bin/linux-amd64 | Mount point for the Solidity compiler binaries downloaded (on host machine) |
| `SOLJSON_REPO_HOST` | ../../data/solc-bin/soljson | Mount point for the Solidity JS compilers downloaded (on host machine) |
| `SERVER_PORT` | 80 | HTTP port used inside container |
| `SERVER_EXTERNAL_PORT` | 5002 | HTTP port exposed by container |
| `UI_DOMAIN_NAME` | sourcify-integration.hedera-devops.com | Fully qualified domain name of the host running the ui |
| `REPOSITORY_SERVER_URL` | https://repository.sourcify-integration.hedera-devops.com | URL of repository server (from outside the cluster) |
| `TESTING` | false | DO NOT CHANGE |
| `TAG` | latest | DO NOT CHANGE |
| Name | Example value | Description |
|-------------------------|-----------------------------------------------------------|-----------------------------------------------------------------------------------------|
| `REPOSITORY_PATH` | ../../data/repository | DO NOT CHANGE - Path of the contract repository, both inside container and on the host. |
| `SOLC_REPO` | /home/data/solc-bin/linux-amd64 | Path where Solidity compiler binaries will be saved (inside container) |
| `SOLJSON_REPO` | /home/data/solc-bin/soljson | Path where Solidity JS compilers will be saved (inside container) |
| `SOLC_REPO_HOST` | ../../data/solc-bin/linux-amd64 | Path for the Solidity compiler binaries downloaded (on host machine) |
| `SOLJSON_REPO_HOST` | ../../data/solc-bin/soljson | Path for the Solidity JS compilers downloaded (on host machine) |
| `SERVER_PORT` | 80 | HTTP port used inside container |
| `SERVER_EXTERNAL_PORT` | 5002 | HTTP port exposed by container |
| `UI_DOMAIN_NAME` | sourcify-integration.hedera-devops.com | Fully qualified domain name of the host running the ui |
| `REPOSITORY_SERVER_URL` | https://repository.sourcify-integration.hedera-devops.com | URL of repository server (from outside the cluster) |
| `TESTING` | false | DO NOT CHANGE |
| `TAG` | latest | DO NOT CHANGE |

### _repository_ module

Expand All @@ -141,13 +159,13 @@ even though the only useful item for the _repository_ is the following:

- The web server part needs the following environment variables at runtime:

| Name | Example value | Description |
|-----------------------------------|----------------------------------------|----------------------------------------------------------|
| `REPOSITORY_PATH` | ../../data/repository | Path of the contract repository mount point on the host. |
| `REPOSITORY_SERVER_EXTERNAL_PORT` | 10000 | HTTP port exposed by container |
| `UI_DOMAIN_NAME` | sourcify-integration.hedera-devops.com | Fully qualified domain name of the host running the ui |
| `TESTING` | false | DO NOT CHANGE |
| `TAG` | latest | DO NOT CHANGE |
| Name | Example value | Description |
|-----------------------------------|----------------------------------------|--------------------------------------------------------|
| `REPOSITORY_PATH` | ../../data/repository | Path of the contract repository on the host. |
| `REPOSITORY_SERVER_EXTERNAL_PORT` | 10000 | HTTP port exposed by container |
| `UI_DOMAIN_NAME` | sourcify-integration.hedera-devops.com | Fully qualified domain name of the host running the ui |
| `TESTING` | false | DO NOT CHANGE |
| `TAG` | latest | DO NOT CHANGE |

## Support

Expand Down
7 changes: 6 additions & 1 deletion ui/public/config.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"SERVER_URL": "http://localhost:5002",
"REPOSITORY_SERVER_URL": "http://localhost:10000",
"HASHSCAN_URL": "https://hashscan-latest.hedera-devops.com"
"HASHSCAN_URL": "https://hashscan-latest.hedera-devops.com",
"REMOTE_IMPORT": false,
"GITHUB_IMPORT": false,
"CONTRACT_IMPORT": false,
"JSON_IMPORT": false,
"OPEN_IN_REMIX": false
}
40 changes: 24 additions & 16 deletions ui/src/pages/Lookup/Result.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -156,14 +156,18 @@ const NetworkRow = ({ address, chainId, status }: NetworkRowProp) => {
View in Sourcify Repository
</a>
</td>
<td className="py-4 pr-4 text-right">
<a
className="underline"
href={generateUrl(URL_TYPE.REMIX, chainId, address, status)}
>
View in Remix
</a>
</td>
{configuration.openInRemix ? (
<td className="py-4 pr-4 text-right">
<a
className="underline"
href={generateUrl(URL_TYPE.REMIX, chainId, address, status)}
>
View in Remix
</a>
</td>
) : (
<td/>
)}
</tr>
) : (
<div className="border-b hover:bg-gray-100 flex flex-col">
Expand All @@ -181,14 +185,18 @@ const NetworkRow = ({ address, chainId, status }: NetworkRowProp) => {
View in Sourcify Repository
</a>
</div>
<div className="pb-4">
<a
className="underline"
href={generateUrl(URL_TYPE.REMIX, chainId, address, status)}
>
View in Remix
</a>
</div>
{configuration.openInRemix ? (
<div className="pb-4">
<a
className="underline"
href={generateUrl(URL_TYPE.REMIX, chainId, address, status)}
>
View in Remix
</a>
</div>
) : (
<div/>
)}
</div>
)}
</>
Expand Down
129 changes: 73 additions & 56 deletions ui/src/pages/Verifier/FileUpload.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import RemoteInput from "./RemoteInput";
import GitHubInput from "./GitHubInput";
import ContractInput from "./ContractInput";
import SolcJsonInput from "./SolcJsonInput";
import {configuration} from "../../utils/Configuration";

enum ImportMethods {
UPLOAD,
Expand Down Expand Up @@ -76,62 +77,78 @@ const FileUpload: React.FC<FileUploadProps> = ({
</p>
</div>
<div className="flex flex-row flex-wrap gap-3 mt-4 justify-center md:justify-start">
<Button
type={
importMethodSelected === ImportMethods.REMOTE
? "primary"
: "secondary"
}
onClick={() => selectImportMethod(ImportMethods.REMOTE)}
className="text-sm"
>
<>
<AiOutlinePlus className="inline align-middle mr-1" />
Import from remote
</>
</Button>
<Button
type={
importMethodSelected === ImportMethods.GITHUB
? "primary"
: "secondary"
}
onClick={() => selectImportMethod(ImportMethods.GITHUB)}
className="text-sm"
>
<>
<AiOutlineGithub className="inline align-middle mr-1" />
Import from GitHub
</>
</Button>
<Button
type={
importMethodSelected === ImportMethods.CONTRACT
? "primary"
: "secondary"
}
onClick={() => selectImportMethod(ImportMethods.CONTRACT)}
className="text-sm"
>
<>
<AiOutlineFileSearch className="inline align-middle mr-1" />
Import from Contract
</>
</Button>
<Button
type={
importMethodSelected === ImportMethods.SOLIDITY_JSON
? "primary"
: "secondary"
}
onClick={() => selectImportMethod(ImportMethods.SOLIDITY_JSON)}
className="text-sm"
>
<>
<SiSolidity className="inline align-middle mr-1" />
Import from Solidity JSON
</>
</Button>
{configuration.remoteImport ? (
<Button
type={
importMethodSelected === ImportMethods.REMOTE
? "primary"
: "secondary"
}
onClick={() => selectImportMethod(ImportMethods.REMOTE)}
className="text-sm"
>
<>
<AiOutlinePlus className="inline align-middle mr-1" />
Import from remote
</>
</Button>
) : (
<div/>
)}
{configuration.githubImport ? (
<Button
type={
importMethodSelected === ImportMethods.GITHUB
? "primary"
: "secondary"
}
onClick={() => selectImportMethod(ImportMethods.GITHUB)}
className="text-sm"
>
<>
<AiOutlineGithub className="inline align-middle mr-1"/>
Import from GitHub
</>
</Button>
) : (
<div/>
)}
{configuration.contractImport ? (
<Button
type={
importMethodSelected === ImportMethods.CONTRACT
? "primary"
: "secondary"
}
onClick={() => selectImportMethod(ImportMethods.CONTRACT)}
className="text-sm"
>
<>
<AiOutlineFileSearch className="inline align-middle mr-1"/>
Import from Contract
</>
</Button>
) : (
<div/>
)}
{configuration.jsonImport ? (
<Button
type={
importMethodSelected === ImportMethods.SOLIDITY_JSON
? "primary"
: "secondary"
}
onClick={() => selectImportMethod(ImportMethods.SOLIDITY_JSON)}
className="text-sm"
>
<>
<SiSolidity className="inline align-middle mr-1"/>
Import from Solidity JSON
</>
</Button>
) : (
<div/>
)}
</div>
<div className="flex flex-grow flex-col pb-8">
{importMethodSelected === ImportMethods.REMOTE && (
Expand Down
25 changes: 25 additions & 0 deletions ui/src/utils/Configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ export class Configuration {
private _repositoryServerUrl: string | undefined;
private _repositoryServerUrlFullMatch: string | undefined;
private _hashScanUrl: string | undefined;
private _remoteImport: boolean | undefined;
private _githubImport: boolean | undefined;
private _contractImport: boolean | undefined;
private _jsonImport: boolean | undefined;
private _openInRemix: boolean | undefined;
private _repositoryServerUrlPartialMatch: string | undefined;
private _ipfsIpnsGatewayUrl: string | undefined;
private _sessionDataUrl: string | undefined;
Expand Down Expand Up @@ -66,6 +71,21 @@ export class Configuration {
get serverUrl(): string {
return this._serverUrl ?? ""
}
get remoteImport(): boolean {
return this._remoteImport ?? false
}
get githubImport(): boolean {
return this._githubImport ?? false
}
get contractImport(): boolean {
return this._contractImport ?? false
}
get jsonImport(): boolean {
return this._jsonImport ?? false
}
get openInRemix(): boolean {
return this._openInRemix ?? false
}

public readConfig = async (): Promise<void> => {

Expand All @@ -82,6 +102,11 @@ export class Configuration {
this._serverUrl = configData.SERVER_URL
this._repositoryServerUrl = configData.REPOSITORY_SERVER_URL
this._hashScanUrl = configData.HASHSCAN_URL
this._remoteImport = configData.REMOTE_IMPORT
this._githubImport = configData.GITHUB_IMPORT
this._contractImport = configData.CONTRACT_IMPORT
this._jsonImport = configData.JSON_IMPORT
this._openInRemix = configData.OPEN_IN_REMIX

this._repositoryServerUrlFullMatch = `${this._repositoryServerUrl}/contracts/full_match`
this._repositoryServerUrlPartialMatch = `${this._repositoryServerUrl}/contracts/partial_match`
Expand Down
Loading