├── .github ├── 180protocol-logo-dark.png ├── 180protocol-logo.svg └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── use-case.md ├── .gitignore ├── 180Dashboard ├── Dockerfile ├── LICENSE ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt └── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── assets │ ├── fonts │ │ └── muli │ │ │ ├── Muli-Black.woff │ │ │ ├── Muli-BlackItalic.woff │ │ │ ├── Muli-Bold.woff │ │ │ ├── Muli-BoldItalic.woff │ │ │ ├── Muli-ExtraBold.woff │ │ │ ├── Muli-ExtraBoldItalic.woff │ │ │ ├── Muli-ExtraLight.woff │ │ │ ├── Muli-ExtraLightItalic.woff │ │ │ ├── Muli-Italic.woff │ │ │ ├── Muli-Light.woff │ │ │ ├── Muli-LightItalic.woff │ │ │ ├── Muli-Regular.woff │ │ │ ├── Muli-SemiBold.woff │ │ │ ├── Muli-SemiBoldItalic.woff │ │ │ └── stylesheet.css │ └── images │ │ ├── dashboard.svg │ │ ├── download.svg │ │ ├── export.svg │ │ ├── login_bg.png │ │ ├── login_icn.svg │ │ ├── logo.png │ │ ├── logout_active.svg │ │ ├── notification.svg │ │ ├── refresh.svg │ │ ├── right_angle_arrow.svg │ │ ├── select-down-arrow.svg │ │ ├── upload.svg │ │ └── user.svg │ ├── components │ ├── AlertBox.js │ ├── AppRoute.js │ ├── Chart.js │ └── Grid.js │ ├── containers │ ├── FormikFields.js │ └── navs │ │ ├── Footer │ │ ├── Footer.jsx │ │ ├── Footer.module.scss │ │ └── index.js │ │ ├── Header │ │ ├── Header.jsx │ │ ├── Header.module.scss │ │ └── index.js │ │ └── Menu │ │ ├── Menu.jsx │ │ ├── Menu.module.scss │ │ └── index.js │ ├── index.css │ ├── index.js │ ├── layout │ ├── AppLayout.js │ └── UserLayout.js │ ├── reportWebVitals.js │ ├── setupTests.js │ ├── store │ ├── actions.js │ ├── auth │ │ ├── actions.js │ │ └── reducer.js │ ├── consumer │ │ ├── actions.js │ │ └── reducer.js │ ├── context.js │ ├── provider │ │ ├── actions.js │ │ └── reducer.js │ ├── reducers.js │ └── store.js │ ├── userInfo.yml │ ├── utils │ ├── helpers.js │ └── history.js │ └── views │ ├── app │ ├── consumer │ │ ├── Dashboard │ │ │ ├── Dashboard.jsx │ │ │ ├── Dashboard.module.scss │ │ │ └── index.js │ │ └── index.js │ ├── index.js │ └── provider │ │ ├── Data │ │ ├── Data.jsx │ │ ├── Data.module.scss │ │ └── index.js │ │ ├── Rewards │ │ ├── Rewards.jsx │ │ ├── Rewards.module.scss │ │ └── index.js │ │ └── index.js │ ├── error.js │ ├── index.js │ └── user │ ├── Login │ ├── Login.jsx │ ├── Login.module.scss │ └── index.js │ └── index.js ├── README.md ├── compose-codaptor.yml ├── compose-corda-network.yml ├── examples ├── automotive-example │ ├── LICENCE │ ├── README.md │ ├── TRADEMARK │ ├── build.gradle │ ├── compose-codaptor.yml │ ├── compose-corda-network.yml │ ├── config │ │ ├── dev │ │ │ └── log4j2.xml │ │ └── test │ │ │ └── log4j2.xml │ ├── constants.properties │ ├── enclave │ │ ├── build.gradle │ │ ├── sample_private_key.pem │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── protocol180 │ │ │ │ │ └── samples │ │ │ │ │ └── example │ │ │ │ │ └── aggregator │ │ │ │ │ └── clientEnclave │ │ │ │ │ └── ExampleAggregationEnclave.java │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── native-image │ │ │ │ │ ├── filter.json │ │ │ │ │ ├── jni-config.json │ │ │ │ │ ├── native-image.properties │ │ │ │ │ ├── proxy-config.json │ │ │ │ │ ├── reflect-config.json │ │ │ │ │ ├── resource-config.json │ │ │ │ │ └── serialization-config.json │ │ │ │ └── trustedroot.cer │ │ │ └── test │ │ │ ├── java │ │ │ └── com │ │ │ │ └── protocol180 │ │ │ │ └── samples │ │ │ │ └── example │ │ │ │ └── aggregator │ │ │ │ └── clientEnclave │ │ │ │ └── ExampleAggregationEnclaveTest.java │ │ │ └── resources │ │ │ ├── AutomotiveMarketResearchSampleData.csv │ │ │ └── automotive.avsc │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── repositories.gradle │ ├── settings.gradle │ └── workflows │ │ ├── build.gradle │ │ └── src │ │ └── test │ │ ├── kotlin │ │ └── com │ │ │ └── protocol180 │ │ │ └── samples │ │ │ └── example │ │ │ ├── ExampleAggregationFlowTest.kt │ │ │ └── ExampleEstuaryStorageAggregationFlowTest.kt │ │ └── resources │ │ ├── Provider1InputData.csv │ │ ├── Provider1InputData.zip │ │ ├── Provider2InputData.csv │ │ ├── Provider2InputData.zip │ │ ├── testSchema1.avsc │ │ └── testSchema2.avsc └── hotel-bookings │ ├── LICENCE │ ├── README.md │ ├── TRADEMARK │ ├── build.gradle │ ├── compose-codaptor.yml │ ├── compose-corda-network.yml │ ├── config │ ├── dev │ │ └── log4j2.xml │ └── test │ │ └── log4j2.xml │ ├── constants.properties │ ├── enclave │ ├── build.gradle │ ├── sample_private_key.pem │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── protocol180 │ │ │ │ └── aggregator │ │ │ │ └── sample │ │ │ │ └── ExampleAggregationEnclave.java │ │ └── resources │ │ │ ├── META-INF │ │ │ └── native-image │ │ │ │ ├── filter.json │ │ │ │ ├── jni-config.json │ │ │ │ ├── native-image.properties │ │ │ │ ├── proxy-config.json │ │ │ │ ├── reflect-config.json │ │ │ │ ├── resource-config.json │ │ │ │ └── serialization-config.json │ │ │ └── trustedroot.cer │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── protocol180 │ │ │ └── aggregator │ │ │ └── sample │ │ │ └── ExampleAggregationEnclaveTest.java │ │ └── resources │ │ ├── HotelBookingsSampleData.csv │ │ └── hotelBookings.avsc │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── repositories.gradle │ ├── settings.gradle │ └── workflows │ ├── build.gradle │ └── src │ └── test │ ├── kotlin │ └── com │ │ └── protocol180 │ │ └── aggregator │ │ └── sample │ │ └── ExampleAggregationFlowTest.kt │ └── resources │ ├── Provider1InputData.csv │ ├── Provider1InputData.zip │ ├── Provider2InputData.csv │ ├── Provider2InputData.zip │ ├── testSchema1.avsc │ └── testSchema2.avsc └── protocolAggregator ├── .gitignore ├── LICENCE ├── README.md ├── build.gradle ├── certificates ├── dump-cordarootca.sh └── truststore.jks ├── config ├── dev │ └── log4j2.xml └── test │ └── log4j2.xml ├── constants.properties ├── contracts ├── build.gradle └── src │ └── main │ └── kotlin │ └── com │ └── protocol180 │ └── aggregator │ ├── contracts │ ├── CoalitionConfigurationContract.kt │ ├── DataOutputContract.kt │ └── RewardsContract.kt │ ├── schema │ ├── ConsumerAggregationDataOutputSchema.kt │ ├── DecentralizedStorageEncryptionKeySchema.kt │ ├── ProviderAggregationInputSchema.kt │ ├── ProviderInputSchema.kt │ └── ProviderRewardSchema.kt │ └── states │ ├── CoalitionConfigurationState.kt │ ├── DataOutputState.kt │ └── RewardsState.kt ├── enclave ├── build.gradle ├── sample_private_key.pem └── src │ └── main │ ├── java │ └── com │ │ └── protocol180 │ │ └── aggregator │ │ ├── commons │ │ └── MailType.java │ │ └── enclave │ │ └── AggregationEnclave.java │ └── resources │ ├── META-INF │ └── native-image │ │ ├── filter.json │ │ ├── jni-config.json │ │ ├── native-image.properties │ │ ├── proxy-config.json │ │ ├── reflect-config.json │ │ ├── resource-config.json │ │ └── serialization-config.json │ └── trustedroot.cer ├── estuaryStorage ├── build.gradle ├── shadowJar │ └── build.gradle └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── protocol180 │ │ │ └── aggregator │ │ │ └── storage │ │ │ ├── estuary │ │ │ └── EstuaryStorageService.java │ │ │ ├── keyVault │ │ │ └── AzureKeyVaultService.java │ │ │ └── utils │ │ │ └── AESUtil.java │ └── kotlin │ │ └── com │ │ └── protocol180 │ │ └── aggregator │ │ └── storage │ │ └── flow │ │ ├── DecentralizedStorageEncryptionKeyRetrievalFlow.kt │ │ ├── DecentralizedStorageEncryptionKeyService.kt │ │ ├── DecentralizedStorageEncryptionKeyUpdateFlow.kt │ │ ├── EstauryStorageProviderAggregationInputFlow.kt │ │ ├── EstuaryStorageConsumerAggregationFlow.kt │ │ ├── EstuaryStorageConsumerDataOutputRetrievalFlow.kt │ │ └── EstuaryStorageProviderAggregationResponseFlow.kt │ └── test │ ├── java │ └── com │ │ └── protocol180 │ │ └── aggregator │ │ └── storage │ │ └── keyVault │ │ └── AzureKeyVaultServiceTest.java │ ├── kotlin │ └── com │ │ └── protocol180 │ │ └── aggregator │ │ └── storage │ │ └── flow │ │ ├── DecentralizedStorageEncryptionKeyTest.kt │ │ ├── EstuaryStorageConsumerAggregationFlowTest.kt │ │ ├── EstuaryStorageFlow.kt │ │ └── EstuaryStorageFlowTest.kt │ └── resources │ ├── Provider1InputData.csv │ ├── Provider1InputData.zip │ ├── Provider2InputData.csv │ ├── Provider2InputData.zip │ └── testSchema1.avsc ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── repositories.gradle ├── sampleEnclave ├── build.gradle ├── sample_private_key.pem └── src │ └── main │ ├── java │ └── com │ │ └── protocol180 │ │ └── aggregator │ │ └── sample │ │ └── ExampleAggregationEnclave.java │ └── resources │ ├── META-INF │ └── native-image │ │ ├── filter.json │ │ ├── jni-config.json │ │ ├── native-image.properties │ │ ├── proxy-config.json │ │ ├── reflect-config.json │ │ ├── resource-config.json │ │ └── serialization-config.json │ └── trustedroot.cer ├── settings.gradle └── workflows ├── build.gradle └── src ├── main ├── java │ └── com │ │ └── protocol180 │ │ └── aggregator │ │ └── flow │ │ └── EnclaveHostService.java ├── kotlin │ └── com │ │ └── protocol180 │ │ └── aggregator │ │ └── flow │ │ ├── CoalitionConfigurationStateService.kt │ │ ├── CoalitionConfigurationUpdateFlow.kt │ │ ├── ConsumerAggregationFlow.kt │ │ ├── ConsumerDBStoreService.kt │ │ ├── ConsumerDataOutputRetrievalFlow.kt │ │ ├── EnclaveClientService.kt │ │ ├── NetworkParticipantService.kt │ │ ├── ProviderAggregationInputFlow.kt │ │ ├── ProviderAggregationResponseFlow.kt │ │ ├── ProviderDBStoreService.kt │ │ └── ProviderRewardOutputRetrievalFlow.kt └── resources │ ├── envelope.avsc │ ├── testSchema1.avsc │ └── testSchema2.avsc └── test ├── kotlin └── com │ └── protocol180 │ └── aggregator │ └── flow │ ├── CoalitionConfigurationTest.kt │ └── ConsumerAggregationFlowTest.kt └── resources ├── Provider1InputData.csv ├── Provider1InputData.zip ├── Provider2InputData.csv ├── Provider2InputData.zip ├── logging.xml └── testSchema1.avsc /.github/180protocol-logo-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/.github/180protocol-logo-dark.png -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/use-case.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Use case 3 | about: Potential use case for 180Protocol 4 | title: '' 5 | labels: use case 6 | assignees: '' 7 | 8 | --- 9 | 10 | # 180P Use Case Proposal: `Title` 11 | 12 | **Proposer:** `replace with your GitHub username` 13 | 14 | ## Business case 15 | 16 | 17 | 18 | 19 | 20 | 21 | ## Implementation details 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore Gradle project-specific cache directory 2 | **/.gradle 3 | 4 | # Ignore Gradle build output directory 5 | **/build 6 | 7 | .idea 8 | **/logs 9 | 180Dashboard/node_modules/** 10 | *.iml 11 | 12 | #Ignore docs 13 | protocolAggregator/github-docs/** 14 | 15 | etc 16 | 17 | #bin folders 18 | **/bin 19 | **/protocol180_0x1BDCF7ED_SECRET.pgp -------------------------------------------------------------------------------- /180Dashboard/Dockerfile: -------------------------------------------------------------------------------- 1 | # The Node version that we'll be running for our version of React. 2 | # You may have to search the Node directory for a version that fits 3 | # the version of React you're using. 4 | FROM node:16-alpine 5 | # Create a work directory and copy over our dependency manifest files. 6 | RUN mkdir /app 7 | # Giving access to 'node' user for work directory 8 | RUN chown node:node /app 9 | USER node 10 | WORKDIR /app 11 | COPY --chown=node:node 180Dashboard/src /app/src 12 | COPY --chown=node:node ["180Dashboard/package.json", "180Dashboard/package-lock.json*", "./"] 13 | RUN CI=true 14 | RUN npm install --silent 15 | # Expose PORT 3000 on our virtual machine so we can run our server 16 | EXPOSE 3000 -------------------------------------------------------------------------------- /180Dashboard/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "180-dashboard", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@devexpress/dx-react-core": "^2.7.6", 7 | "@devexpress/dx-react-grid": "^2.7.6", 8 | "@devexpress/dx-react-grid-bootstrap4": "^2.7.6", 9 | "@emotion/core": "^11.0.0", 10 | "@nivo/core": "^0.74.0", 11 | "@nivo/pie": "^0.74.0", 12 | "@testing-library/jest-dom": "^5.14.1", 13 | "@testing-library/react": "^11.2.7", 14 | "@testing-library/user-event": "^12.8.3", 15 | "bootstrap": "^5.1.3", 16 | "formik": "^2.2.9", 17 | "moment": "^2.29.1", 18 | "node-sass": "^6.0.1", 19 | "react": "^17.0.2", 20 | "react-dom": "^17.0.2", 21 | "react-dropzone": "^11.4.2", 22 | "react-popup-alert": "^2.0.0", 23 | "react-router-dom": "^5.3.0", 24 | "react-scripts": "4.0.3", 25 | "react-select": "^5.1.0", 26 | "react-spinners": "^0.13.3", 27 | "react-step-progress-bar": "^1.0.3", 28 | "web-vitals": "^1.1.2", 29 | "yamljs": "^0.3.0" 30 | }, 31 | "scripts": { 32 | "start": "react-scripts start", 33 | "build": "react-scripts build", 34 | "test": "react-scripts test", 35 | "eject": "react-scripts eject" 36 | }, 37 | "eslintConfig": { 38 | "extends": [ 39 | "react-app", 40 | "react-app/jest" 41 | ] 42 | }, 43 | "browserslist": { 44 | "production": [ 45 | ">0.2%", 46 | "not dead", 47 | "not op_mini all" 48 | ], 49 | "development": [ 50 | "last 1 chrome version", 51 | "last 1 firefox version", 52 | "last 1 safari version" 53 | ] 54 | }, 55 | "devDependencies": { 56 | "miragejs": "^0.1.42" 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /180Dashboard/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/public/favicon.ico -------------------------------------------------------------------------------- /180Dashboard/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | 180 Dashboard 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /180Dashboard/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/public/logo192.png -------------------------------------------------------------------------------- /180Dashboard/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/public/logo512.png -------------------------------------------------------------------------------- /180Dashboard/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /180Dashboard/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /180Dashboard/src/App.js: -------------------------------------------------------------------------------- 1 | import React, {useEffect} from "react"; 2 | import {BrowserRouter as Router, Switch, Route, Redirect} from "react-router-dom"; 3 | 4 | import "bootstrap/dist/css/bootstrap.min.css"; 5 | import "./App.css"; 6 | 7 | import {history} from "./utils/history"; 8 | import {AuthProvider} from "./store/context"; 9 | import AppRoutes from "./components/AppRoute"; 10 | import user from "./views/user"; 11 | import app from "./views/app"; 12 | import error from "./views/error"; 13 | import main from "./views" 14 | 15 | const App = () => { 16 | return ( 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | ); 29 | }; 30 | 31 | export default App; 32 | -------------------------------------------------------------------------------- /180Dashboard/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-Black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-Black.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-BlackItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-BlackItalic.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-Bold.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-BoldItalic.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-ExtraBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-ExtraBold.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-ExtraBoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-ExtraBoldItalic.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-ExtraLight.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-ExtraLight.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-ExtraLightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-ExtraLightItalic.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-Italic.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-Light.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-LightItalic.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-Regular.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-SemiBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-SemiBold.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/Muli-SemiBoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/fonts/muli/Muli-SemiBoldItalic.woff -------------------------------------------------------------------------------- /180Dashboard/src/assets/fonts/muli/stylesheet.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Muli'; 3 | font-style: normal; 4 | font-weight: normal; 5 | src: local('Muli Regular'), url('./Muli-Regular.woff') format('woff'); 6 | } 7 | 8 | 9 | @font-face { 10 | font-family: 'Muli Light'; 11 | font-style: normal; 12 | font-weight: normal; 13 | src: local('Muli Light'), url('./Muli-Light.woff') format('woff'); 14 | } 15 | 16 | @font-face { 17 | font-family: 'Muli SemiBold'; 18 | font-style: normal; 19 | font-weight: normal; 20 | src: local('Muli SemiBold'), url('./Muli-SemiBold.woff') format('woff'); 21 | } 22 | 23 | @font-face { 24 | font-family: 'Muli Bold'; 25 | font-style: normal; 26 | font-weight: normal; 27 | src: local('Muli Bold'), url('./Muli-Bold.woff') format('woff'); 28 | } 29 | 30 | @font-face { 31 | font-family: 'Muli ExtraBold'; 32 | font-style: normal; 33 | font-weight: normal; 34 | src: local('Muli ExtraBold'), url('./Muli-ExtraBold.woff') format('woff'); 35 | } 36 | 37 | @font-face { 38 | font-family: 'Muli Black'; 39 | font-style: normal; 40 | font-weight: normal; 41 | src: local('Muli Black'), url('./Muli-Black.woff') format('woff'); 42 | } -------------------------------------------------------------------------------- /180Dashboard/src/assets/images/dashboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /180Dashboard/src/assets/images/login_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/images/login_bg.png -------------------------------------------------------------------------------- /180Dashboard/src/assets/images/login_icn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /180Dashboard/src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/180Protocol/180protocol/e187119f6f2c2fb9037ea12b8d3b5bec5a5ae6a2/180Dashboard/src/assets/images/logo.png -------------------------------------------------------------------------------- /180Dashboard/src/assets/images/logout_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /180Dashboard/src/assets/images/notification.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /180Dashboard/src/assets/images/refresh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /180Dashboard/src/assets/images/right_angle_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /180Dashboard/src/assets/images/select-down-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /180Dashboard/src/assets/images/user.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /180Dashboard/src/components/AlertBox.js: -------------------------------------------------------------------------------- 1 | import Alert from 'react-popup-alert' 2 | import 'react-popup-alert/dist/index.css' 3 | import {forwardRef, useImperativeHandle, useState} from "react"; 4 | 5 | const AlertBox = forwardRef((props, ref) => { 6 | const [alert, setAlert] = useState({ 7 | type: '', 8 | text: '', 9 | show: false 10 | }) 11 | 12 | useImperativeHandle( 13 | ref, 14 | () => ({ 15 | showAlert(type, text) { 16 | setAlert({ 17 | type: type, 18 | text: text, 19 | show: true 20 | }) 21 | } 22 | }), 23 | ) 24 | 25 | const onCloseAlert = () => { 26 | setAlert({ 27 | type: '', 28 | text: '', 29 | show: false 30 | }) 31 | } 32 | 33 | return ( 34 | 61 | ) 62 | }) 63 | 64 | export default AlertBox; -------------------------------------------------------------------------------- /180Dashboard/src/components/AppRoute.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {Redirect, Route} from 'react-router-dom'; 3 | import {useAuthState} from '../store/context'; 4 | 5 | const AppRoutes = ({component: Component, path, ...rest}) => { 6 | const userDetails = useAuthState(); 7 | return ( 8 | 11 | !Boolean(userDetails.user) ? ( 12 | 15 | ) : ( 16 | 17 | ) 18 | } 19 | /> 20 | ); 21 | }; 22 | 23 | export default AppRoutes; 24 | -------------------------------------------------------------------------------- /180Dashboard/src/components/Chart.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {ResponsivePie} from '@nivo/pie' 3 | 4 | const MyResponsivePie = ({data}) => ( 5 | ( 18 | id ? 19 | 20 | {id}: {value} 21 | : null 22 | )} 23 | /> 24 | ) 25 | 26 | export default MyResponsivePie; -------------------------------------------------------------------------------- /180Dashboard/src/containers/FormikFields.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Select from "react-select"; 3 | 4 | export class FormikReactSelect extends React.Component { 5 | handleChange = value => { 6 | this.props.onChange(this.props.name, value); 7 | }; 8 | handleBlur = () => { 9 | this.props.onBlur(this.props.name, true); 10 | }; 11 | 12 | render() { 13 | return ( 14 |