forked from hyperledger-cacti/cacti
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add feature and options to switch in GUI app to visualize fabric hype…
…rledger ledger data stored in supabase by persistence plugins Depends on: hyperledger-cacti#2265 Depends on: hyperledger-cacti#2331 Signed-off-by: Barnaba Pawelczak [email protected]
- Loading branch information
Showing
78 changed files
with
3,453 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# `@hyperledger/cacti-cmd-gui-app` | ||
|
||
This component allows viewing ledger data in Supabase or other postgreSQL compatible database. The data is fed to supabase by persistence plugins for each ledgers. | ||
|
||
## Summary | ||
|
||
- [`@hyperledger/cacti-cmd-gui-app`](#hyperledgercacti-cmd-gui-app) | ||
- [Summary](#summary) | ||
- [Remarks](#remarks) | ||
- [Getting Started](#getting-started) | ||
- [Prerequisites using yarn](#prerequisites-using-yarn) | ||
- [Alternative Prerequisites using npm](#alternative-prerequisites-using-npm) | ||
- [Usage](#usage) | ||
- [Contributing](#contributing) | ||
- [License](#license) | ||
- [Acknowledgments](#acknowledgments) | ||
|
||
## Remarks | ||
|
||
- Plugin requires running Supabase or other database and persistence plugins in order to properly view ledger data. | ||
- Currently, fabric and ethereum based ledgers are supported. | ||
|
||
## Getting Started | ||
|
||
Clone the git repository on your local machine. Follow these instructions that will get you a copy of the project up and running on your local machine for development and testing purposes. | ||
|
||
### Prerequisites using yarn | ||
|
||
In the root of the project, execute the command to install and build the dependencies. It will also build this GUI front-end component: | ||
|
||
```sh | ||
yarn run build | ||
``` | ||
### Alternative Prerequisites using npm | ||
|
||
In the root of the project, execute the command to install and build the dependencies. It will also build this GUI front-end component: | ||
|
||
```sh | ||
npm install | ||
``` | ||
|
||
### Usage | ||
- Run Supabase instance (see documentation for detailed instructions). For development purposes, you can use our image located in `tools/docker/supabase-all-in-one`. | ||
- Run one or more persistence plugins: | ||
- [Ethereum](../cacti-plugin-persistence-ethereum) | ||
- [Fabric] (../cacti-plugin-persistence-fabric) | ||
- Edit [Supabase configuration file](./src/supabase-client.tsx), set correct supabase API URL and service_role key. | ||
- Execute `yarn run start` or `npm start` in this package directory. | ||
- The running application address: http://localhost:3001/ (can be changed in [Vite configuration](./vite.config.ts)) | ||
|
||
## Contributing | ||
|
||
We welcome contributions to Hyperledger Cacti in many forms, and there’s always plenty to do! | ||
|
||
Please review [CONTIRBUTING.md](../../CONTRIBUTING.md) to get started. | ||
|
||
## License | ||
|
||
This distribution is published under the Apache License Version 2.0 found in the [LICENSE](../../LICENSE) file. | ||
|
||
## Acknowledgments |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8" /> | ||
<meta name="viewport" content="width=device-width, initial-scale=1" /> | ||
<meta name="theme-color" content="#000000" /> | ||
<link rel="shortcut icon" type="image/ico" href="/src/assets/favicon.ico" /> | ||
<title>Cacti GUI</title> | ||
</head> | ||
<body> | ||
<noscript>You need to enable JavaScript to run this app.</noscript> | ||
<div id="root"></div> | ||
|
||
<script src="/src/index.tsx" type="module"></script> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
{ | ||
"name": "@hyperledger/cactus-cmd-gui-app", | ||
"version": "1.1.3", | ||
"description": "Cacti GUI for visualizing ledger data.", | ||
"keywords": [ | ||
"Hyperledger", | ||
"Cacti", | ||
"Integration", | ||
"Blockchain", | ||
"Distributed Ledger Technology" | ||
], | ||
"homepage": "https://github.com/hyperledger/cacti#readme", | ||
"bugs": { | ||
"url": "https://github.com/hyperledger/cacti/issues" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/hyperledger/cacti.git" | ||
}, | ||
"license": "Apache-2.0", | ||
"author": { | ||
"name": "Hyperledger Cacti Contributors", | ||
"email": "[email protected]", | ||
"url": "https://www.hyperledger.org/use/cacti" | ||
}, | ||
"contributors": [ | ||
{ | ||
"name": "Please add yourself to the list of contributors", | ||
"email": "[email protected]", | ||
"url": "https://example.com" | ||
}, | ||
{ | ||
"name": "Eryk Baranowski", | ||
"email": "[email protected]", | ||
"url": "https://www.fujitsu.com/global/" | ||
}, | ||
{ | ||
"name": "Barnaba Pawelczak", | ||
"email": "[email protected]", | ||
"url": "https://www.fujitsu.com/global/" | ||
} | ||
], | ||
"scripts": { | ||
"start": "vite", | ||
"serve": "vite preview", | ||
"build": "yarn run build:prod:frontend", | ||
"build:prod:frontend": "vite build" | ||
}, | ||
"devDependencies": { | ||
"autoprefixer": "10.4.8", | ||
"postcss": "8.4.16", | ||
"supabase": "1.28.4", | ||
"typescript-plugin-css-modules": "4.1.1", | ||
"vite": "3.0.0", | ||
"vite-plugin-solid": "2.3.0" | ||
}, | ||
"dependencies": { | ||
"@solidjs/router": "0.4.2", | ||
"@supabase/supabase-js": "1.35.6", | ||
"apexcharts": "3.36.0", | ||
"chart.js": "3.9.1", | ||
"moment": "2.29.4", | ||
"solid-apexcharts": "0.1.6", | ||
"solid-icons": "1.0.4", | ||
"solid-js": "1.5.7", | ||
"solid-slider": "1.3.9", | ||
"solid-toast": "^0.4.0" | ||
}, | ||
"engines": { | ||
"npm": ">=6" | ||
}, | ||
"publishConfig": { | ||
"access": "public" | ||
}, | ||
"watch": {} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
module.exports = { | ||
plugins: { | ||
autoprefixer: {}, | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
.main { | ||
width: 100%; | ||
} | ||
.content { | ||
margin: 1rem 2rem; | ||
} | ||
|
||
@media (max-width: 1699px) { | ||
.content { | ||
margin: 1rem; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import { Component } from "solid-js"; | ||
import Pages from "./pages/Pages"; | ||
import Menu from "./components/UI/Menu/Menu"; | ||
// @ts-expect-error | ||
import styles from "./App.module.css"; | ||
|
||
const App: Component = () => { | ||
return ( | ||
<div class={styles.main}> | ||
<Menu /> | ||
<div class={styles.content}> | ||
<Pages /> | ||
</div> | ||
</div> | ||
); | ||
}; | ||
|
||
export default App; |
Binary file not shown.
19 changes: 19 additions & 0 deletions
19
packages/cacti-cmd-gui-app/src/components/AccountCard/AccountCard.module.css
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
.card { | ||
display: flex; | ||
justify-content: center; | ||
background-color: rgb(252, 249, 249); | ||
align-items: center; | ||
height: 5rem; | ||
padding: 0 2rem; | ||
margin-top: 5px; | ||
border-radius: 10px; | ||
border: .5px solid rgb(224, 228, 224); | ||
width: 35rem; | ||
font-size: 18px; | ||
} | ||
|
||
.card:hover { | ||
cursor: pointer; | ||
background-color: #ffffff; | ||
border:1px solid rgb(39, 153, 39); | ||
} |
19 changes: 19 additions & 0 deletions
19
packages/cacti-cmd-gui-app/src/components/AccountCard/AccountCard.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import { useParams, useNavigate } from "@solidjs/router"; | ||
import { Component } from "solid-js"; | ||
// @ts-expect-error | ||
import styles from "./AccountCard.module.css"; | ||
|
||
const AccountCard: Component<{ address: string }> = (props) => { | ||
const params = useParams(); | ||
const navigate = useNavigate(); | ||
const handleClick = () => { | ||
navigate(`/${params.standard}/${props.address}`); | ||
}; | ||
return ( | ||
<div class={styles["card"]} onClick={handleClick}> | ||
<span>{props.address}</span> | ||
</div> | ||
); | ||
}; | ||
|
||
export default AccountCard; |
33 changes: 33 additions & 0 deletions
33
packages/cacti-cmd-gui-app/src/components/BlockCard/BlockCard.module.css
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
.block-card { | ||
display: flex; | ||
gap: 1rem; | ||
background-color: rgb(252, 249, 249); | ||
height: 5rem; | ||
align-items: center; | ||
justify-content: space-around; | ||
width: 100%; | ||
padding: 1rem 0rem; | ||
margin-top: 5px; | ||
border-radius: 10px; | ||
border: .5px solid rgb(242, 245, 242); | ||
max-height: 100vh; | ||
font-size: 14px; | ||
} | ||
|
||
.block-card:hover { | ||
cursor: pointer; | ||
background-color: #ffffff; | ||
} | ||
|
||
.block-num { | ||
color: rgb(12, 105, 12); | ||
} | ||
|
||
.block-hash { | ||
display: block; | ||
overflow: hidden; | ||
text-overflow: ellipsis; | ||
white-space: nowrap; | ||
width: min-content; | ||
max-width: 50%; | ||
} |
28 changes: 28 additions & 0 deletions
28
packages/cacti-cmd-gui-app/src/components/BlockCard/BlockCard.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
import { useNavigate } from "@solidjs/router"; | ||
import { HiSolidHashtag } from "solid-icons/hi"; | ||
import { Component } from "solid-js"; | ||
// @ts-expect-error | ||
import styles from "./BlockCard.module.css"; | ||
|
||
const BlockCard: Component<{ | ||
number: string; | ||
created_at: Date; | ||
hash: string; | ||
}> = (props) => { | ||
const navigate = useNavigate(); | ||
const handleClick = () => { | ||
navigate(`/blockDetails/${props.number}`); | ||
}; | ||
|
||
return ( | ||
<div class={styles["block-card"]} onClick={handleClick}> | ||
<p> {props.created_at.toLocaleString()}</p> | ||
<p class={styles["block-num"]}>{props.number}</p> | ||
<p class={styles["block-hash"]}> | ||
<HiSolidHashtag /> {props.hash} | ||
</p> | ||
</div> | ||
); | ||
}; | ||
|
||
export default BlockCard; |
85 changes: 85 additions & 0 deletions
85
packages/cacti-cmd-gui-app/src/components/CardWrapper/CardWrapper.module.css
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
.wrapper { | ||
background-color: rgb(253, 253, 253); | ||
padding: 1rem; | ||
border-radius: 10px; | ||
border: 1px solid rgb(233, 236, 233); | ||
height: fit-content; | ||
} | ||
|
||
.wrapper-half-width { | ||
width: 50%; | ||
} | ||
|
||
.wrapper-full-width { | ||
width: 100%; | ||
} | ||
|
||
.wrapper-cards { | ||
width: 100%; | ||
display: flex; | ||
justify-content: center; | ||
padding: 1rem; | ||
} | ||
|
||
.wrapper-title { | ||
margin-top: .5rem; | ||
display: flex; | ||
gap:5px; | ||
align-items: center; | ||
font-weight: 700; | ||
font-size: 1.2rem; | ||
color: rgb(9, 75, 9); | ||
} | ||
|
||
.wrapper-btns { | ||
display: flex; | ||
justify-content: flex-end; | ||
padding-right: 1rem; | ||
} | ||
|
||
.wrapper-header { | ||
width: 100%; | ||
display: flex; | ||
justify-content: space-between; | ||
padding: 0 1rem; | ||
} | ||
|
||
.wrapper-columns { | ||
display: flex; | ||
justify-content: space-around; | ||
background-color: rgb(243, 239, 239); | ||
align-items: center; | ||
border-radius: 10px; | ||
border: 1px solid rgb(233, 236, 233); | ||
height: 50px; | ||
} | ||
|
||
.wrapper-columns span { | ||
display: flex; | ||
width: 150px; | ||
} | ||
|
||
.wrapper-search { | ||
display: flex; | ||
gap: 5px; | ||
} | ||
|
||
@media (max-width: 1699px) { | ||
.wrapper { | ||
width: 100%; | ||
} | ||
|
||
.wrapper-header { | ||
padding-left: 0; | ||
padding-right: 0; | ||
} | ||
|
||
.wrapper-cards { | ||
flex-direction: column; | ||
padding: 1rem 0; | ||
} | ||
|
||
.wrapper-title svg { | ||
margin-bottom: -3px; | ||
} | ||
} |
Oops, something went wrong.