diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index ddd42f4b3..5ebe0a8e5 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -1,10 +1,8 @@ name: GitHub Pages development deployment - on: push: branches: - - main - + - css jobs: deploy-dev: runs-on: ubuntu-latest @@ -24,24 +22,14 @@ jobs: with: path: node_modules key: node-modules_deploy-dev-${{ hashFiles('package-lock.json') }} - - - name: Setup SSH to install dependencies - if: steps.cache-node-modules.outputs.cache-hit != 'true' - uses: webfactory/ssh-agent@v0.5.0 - with: - ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - - - name: Install dependencies - if: steps.cache-node-modules.outputs.cache-hit != 'true' - run: npm ci - + - name: Create production build env: - REACT_APP_ENVIRONMENT: development - REACT_APP_INFURA_PROJECT_ID_DEV: ${{ secrets.REACT_APP_INFURA_PROJECT_ID_DEV }} - REACT_APP_DAO_REGISTRY_CONTRACT_ADDRESS: "0xF5C3EC4Af6212e11cA4D1A4e189A989A753C8fBd" - REACT_APP_MULTICALL_CONTRACT_ADDRESS: "0xc2FBEb9dEE044Fc16EE5e5498c79988bAcf6E6fF" - REACT_APP_SNAPSHOT_HUB_API_URL: https://snapshot-hub-erc712.dev.thelao.io + REACT_APP_ENVIRONMENT: local + REACT_APP_INFURA_PROJECT_ID_LOCAL: ${{ secrets.REACT_APP_INFURA_PROJECT_ID_LOCAL }} + REACT_APP_DAO_REGISTRY_CONTRACT_ADDRESS: "0x77a8c28200483f6fD378bc0202aEb2322Bc1fF13" + REACT_APP_MULTICALL_CONTRACT_ADDRESS: "0x2bc5aF39a2ae50b54dCb9689247659deEfCAA583" + REACT_APP_SNAPSHOT_HUB_API_URL: http://cloud.juglas.name:9090 REACT_APP_COUPON_API_URL: https://coupon.dev.openlaw.io REACT_APP_SNAPSHOT_SPACE: tribute REACT_APP_GRAPH_CORE_URL: https://api.thegraph.com/subgraphs/name/openlawteam/tribute-core-dev @@ -57,4 +45,4 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./build commit_message: ${{ github.event.head_commit.message }} - cname: demo.tributedao.com + cname: cinecapsule.github.io/tribute-ui/ diff --git a/Dockerfile b/Dockerfile index ed20d767a..1633b44e1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ # Node version matching the version declared in the package.json -FROM node:14.18.2-alpine as build +FROM node:16.14.0-alpine as build RUN apk add git openssh-client RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts -RUN npm install -g npm@7.24.2 +RUN npm install -g npm@8.3.1 # Created the app work dir WORKDIR /app @@ -17,8 +17,8 @@ COPY . ./ # Install app dependencies RUN npm ci -# Build app -RUN npm run build +# Compile app +RUN npm run compile # Start the aplication CMD ["npm", "start"] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 040a8dd0b..f4d526b83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,10 +16,11 @@ "@openlaw/snapshot-js-erc712": "^1.3.0", "@walletconnect/web3-provider": "^1.7.0", "aos": "^2.3.4", + "bootstrap": "^5.1.3", "debounce": "^1.2.1", "ethers": "^5.5.4", "markdown-to-jsx": "^7.1.2", - "react": "^17.0.1", + "react": "^17.0.2", "react-dom": "^17.0.2", "react-helmet": "^6.1.0", "react-hook-form": "^6.15.4", @@ -34,6 +35,7 @@ "react-transition-group": "^4.4.1", "react-use": "^17.2.4", "react-use-clipboard": "^1.0.7", + "reactstrap": "^9.1.1", "redux": "^4.1.0", "redux-thunk": "^2.4.1", "tribute-contracts": "^2.3.5", @@ -63,6 +65,7 @@ "@types/react-transition-group": "^4.4.4", "@types/uuid": "^8.3.3", "dotenv": "^10.0.0", + "github-pages": "^3.0.2", "hardhat": "^2.7.0", "hardhat-abi-exporter": "^2.4.0", "http-proxy-middleware": "^2.0.0", @@ -77,8 +80,8 @@ "typescript": "4.5.5" }, "engines": { - "node": "^14.0.0", - "npm": "^7.0.0" + "node": "^16.14.0", + "npm": "^8.3.1" } }, "node_modules/@apollo/client": { @@ -3868,6 +3871,15 @@ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" }, + "node_modules/@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@rollup/plugin-node-resolve": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", @@ -6810,6 +6822,15 @@ "node": ">=6" } }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -7681,6 +7702,18 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, + "node_modules/bootstrap": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + }, + "peerDependencies": { + "@popperjs/core": "^2.10.2" + } + }, "node_modules/boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -8657,6 +8690,11 @@ "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", "integrity": "sha1-k1vC39lFiodrJ5YXUUY4vKqWSi4=" }, + "node_modules/classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, "node_modules/clean-css": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", @@ -10171,6 +10209,18 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -16042,6 +16092,15 @@ "node": ">=8.0.0" } }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -16085,6 +16144,234 @@ "assert-plus": "^1.0.0" } }, + "node_modules/github": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/github/-/github-0.2.4.tgz", + "integrity": "sha512-dKaFVLM/jg6vZV6vGw8scyFF+1pl9QGqk4k72au1jQvFg9zhyIdi0XbP2NOsdYQth44Nez74m3pPb5yIzuAD0w==", + "deprecated": "'github' has been renamed to '@octokit/rest' (https://git.io/vNB11)", + "dev": true, + "dependencies": { + "mime": "^1.2.11" + } + }, + "node_modules/github-pages": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/github-pages/-/github-pages-3.0.2.tgz", + "integrity": "sha512-TaPJeZ2WhQqeEya5D+ljTQHJCeAumEQ4j1FOU15S00I2wwCenCGVxQVnuebSMTRKA5BhHzxLrrQXuGQw8ctTpw==", + "dev": true, + "dependencies": { + "github": "^0.2.4", + "ls-all": "^1.1.0", + "meow": "^3.7.0", + "pkg-conf": "^1.1.1" + }, + "bin": { + "github-pages": "build/bin/github-pages.js" + } + }, + "node_modules/github-pages/node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/github-pages/node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/github-pages/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/github-pages/node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/github-pages/node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/github-url-from-git": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", @@ -18026,6 +18313,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-fn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", @@ -21367,6 +21666,19 @@ "loose-envify": "cli.js" } }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dev": true, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -21410,6 +21722,223 @@ "yallist": "^3.0.2" } }, + "node_modules/ls-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ls-all/-/ls-all-1.1.0.tgz", + "integrity": "sha512-/i+k8JDbiJyNgzl09sdK7N2KOgJop1zG5ATdvv81YzeyVRX8CfArpL5eSAPj9vRuaCnIGrhRuTzZ/YnzMW4pdg==", + "dev": true, + "dependencies": { + "colors": "^1.1.2", + "meow": "^3.7.0", + "tree-flatten": "^1.0.0" + }, + "bin": { + "ls-all": "build/bin/ls-all.js" + } + }, + "node_modules/ls-all/node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/ls-all/node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/ls-all/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ls-all/node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ls-all/node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", @@ -24473,6 +25002,46 @@ "node": ">= 6" } }, + "node_modules/pkg-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz", + "integrity": "sha512-9hHgE5+Xai/ChrnahNP8Ke0VNF/s41IZIB/d24eMHEaRamdPg+wwlRm2lTb5wMvE8eTIKrYZsrxfuOwt3dpsIQ==", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "load-json-file": "^1.1.0", + "object-assign": "^4.0.1", + "symbol": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pkg-dir": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", @@ -26718,6 +27287,20 @@ "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17" } }, + "node_modules/react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", + "dependencies": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + }, + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" + } + }, "node_modules/react-query": { "version": "3.34.7", "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.34.7.tgz", @@ -27182,6 +27765,23 @@ "react-dom": "^16.8.0 || ^17" } }, + "node_modules/reactstrap": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-9.1.1.tgz", + "integrity": "sha512-XlQI5qKHQ4QMpye4GxLgoj8rv+qsypvzMcs2KA11DeYjT82LcS48ttfNqOodDYyeCYv8t89gd9THXkjGhoYp5A==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@popperjs/core": "^2.6.0", + "classnames": "^2.2.3", + "prop-types": "^15.5.8", + "react-popper": "^2.2.4", + "react-transition-group": "^4.4.2" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -27609,6 +28209,18 @@ "node": ">=0.10" } }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -30672,6 +31284,12 @@ "node": ">=0.10.0" } }, + "node_modules/symbol": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz", + "integrity": "sha512-IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA==", + "dev": true + }, "node_modules/symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", @@ -31392,6 +32010,12 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, + "node_modules/tree-flatten": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tree-flatten/-/tree-flatten-1.0.0.tgz", + "integrity": "sha512-ijHLEyEQIh+MmZdLquBaj3heAyFoY3x+/fbXXdujTtOfcSZC1tOGtFLosRMASf32cuoC1SxIoT73wQwbJZw2bQ==", + "dev": true + }, "node_modules/tribute-contracts": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/tribute-contracts/-/tribute-contracts-2.3.5.tgz", @@ -38653,6 +39277,11 @@ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" }, + "@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + }, "@rollup/plugin-node-resolve": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", @@ -41124,6 +41753,12 @@ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -41825,6 +42460,12 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, + "bootstrap": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", + "requires": {} + }, "boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -42626,6 +43267,11 @@ "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", "integrity": "sha1-k1vC39lFiodrJ5YXUUY4vKqWSi4=" }, + "classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, "clean-css": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", @@ -43840,6 +44486,15 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -48550,6 +49205,12 @@ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true + }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -48578,6 +49239,184 @@ "assert-plus": "^1.0.0" } }, + "github": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/github/-/github-0.2.4.tgz", + "integrity": "sha512-dKaFVLM/jg6vZV6vGw8scyFF+1pl9QGqk4k72au1jQvFg9zhyIdi0XbP2NOsdYQth44Nez74m3pPb5yIzuAD0w==", + "dev": true, + "requires": { + "mime": "^1.2.11" + } + }, + "github-pages": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/github-pages/-/github-pages-3.0.2.tgz", + "integrity": "sha512-TaPJeZ2WhQqeEya5D+ljTQHJCeAumEQ4j1FOU15S00I2wwCenCGVxQVnuebSMTRKA5BhHzxLrrQXuGQw8ctTpw==", + "dev": true, + "requires": { + "github": "^0.2.4", + "ls-all": "^1.1.0", + "meow": "^3.7.0", + "pkg-conf": "^1.1.1" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true + } + } + }, "github-url-from-git": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", @@ -50080,6 +50919,12 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, "is-fn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", @@ -52664,6 +53509,16 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, "lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -52706,6 +53561,174 @@ "yallist": "^3.0.2" } }, + "ls-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ls-all/-/ls-all-1.1.0.tgz", + "integrity": "sha512-/i+k8JDbiJyNgzl09sdK7N2KOgJop1zG5ATdvv81YzeyVRX8CfArpL5eSAPj9vRuaCnIGrhRuTzZ/YnzMW4pdg==", + "dev": true, + "requires": { + "colors": "^1.1.2", + "meow": "^3.7.0", + "tree-flatten": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true + } + } + }, "ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", @@ -55124,6 +56147,39 @@ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==" }, + "pkg-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz", + "integrity": "sha512-9hHgE5+Xai/ChrnahNP8Ke0VNF/s41IZIB/d24eMHEaRamdPg+wwlRm2lTb5wMvE8eTIKrYZsrxfuOwt3dpsIQ==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "load-json-file": "^1.1.0", + "object-assign": "^4.0.1", + "symbol": "^0.2.1" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, "pkg-dir": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", @@ -56888,6 +57944,15 @@ "warning": "^4.0.3" } }, + "react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", + "requires": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + } + }, "react-query": { "version": "3.34.7", "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.34.7.tgz", @@ -57206,6 +58271,19 @@ "copy-to-clipboard": "^3.3.1" } }, + "reactstrap": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-9.1.1.tgz", + "integrity": "sha512-XlQI5qKHQ4QMpye4GxLgoj8rv+qsypvzMcs2KA11DeYjT82LcS48ttfNqOodDYyeCYv8t89gd9THXkjGhoYp5A==", + "requires": { + "@babel/runtime": "^7.12.5", + "@popperjs/core": "^2.6.0", + "classnames": "^2.2.3", + "prop-types": "^15.5.8", + "react-popper": "^2.2.4", + "react-transition-group": "^4.4.2" + } + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -57534,6 +58612,15 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -60030,6 +61117,12 @@ } } }, + "symbol": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz", + "integrity": "sha512-IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA==", + "dev": true + }, "symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", @@ -60582,6 +61675,12 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, + "tree-flatten": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tree-flatten/-/tree-flatten-1.0.0.tgz", + "integrity": "sha512-ijHLEyEQIh+MmZdLquBaj3heAyFoY3x+/fbXXdujTtOfcSZC1tOGtFLosRMASf32cuoC1SxIoT73wQwbJZw2bQ==", + "dev": true + }, "tribute-contracts": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/tribute-contracts/-/tribute-contracts-2.3.5.tgz", diff --git a/package.json b/package.json index 8ca593f34..f41c5d586 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,13 @@ "type": "git", "url": "https://github.com/openlawteam/tribute-ui.git" }, - "homepage": "https://demo.tributedao.com", + "homepage": "https://Margotte83.github.io/tribute-ui/", "author": "OpenLaw Team", "license": "Apache-2.0", "description": "A modular DAO framework developed and coordinated by its members", "engines": { - "node": "^14.0.0", - "npm": "^7.0.0" + "node": "^16.14.0", + "npm": "^8.3.1" }, "dependencies": { "@apollo/client": "3.4.17", @@ -20,10 +20,11 @@ "@openlaw/snapshot-js-erc712": "^1.3.0", "@walletconnect/web3-provider": "^1.7.0", "aos": "^2.3.4", + "bootstrap": "^5.1.3", "debounce": "^1.2.1", "ethers": "^5.5.4", "markdown-to-jsx": "^7.1.2", - "react": "^17.0.1", + "react": "^17.0.2", "react-dom": "^17.0.2", "react-helmet": "^6.1.0", "react-hook-form": "^6.15.4", @@ -38,6 +39,7 @@ "react-transition-group": "^4.4.1", "react-use": "^17.2.4", "react-use-clipboard": "^1.0.7", + "reactstrap": "^9.1.1", "redux": "^4.1.0", "redux-thunk": "^2.4.1", "tribute-contracts": "^2.3.5", @@ -67,6 +69,7 @@ "@types/react-transition-group": "^4.4.4", "@types/uuid": "^8.3.3", "dotenv": "^10.0.0", + "github-pages": "^3.0.2", "hardhat": "^2.7.0", "hardhat-abi-exporter": "^2.4.0", "http-proxy-middleware": "^2.0.0", @@ -81,6 +84,8 @@ "typescript": "4.5.5" }, "scripts": { + "predeploy": "npm run build", + "deploy": "gh-pages -d build", "build": "npm run compile && react-scripts build", "compile": "rimraf build && mkdir -p build/contracts && cp -r node_modules/tribute-contracts/contracts/** build/contracts && hardhat clean && hardhat compile", "eject": "react-scripts eject", diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png index c1f65333e..0588a7553 100644 Binary files a/public/android-chrome-192x192.png and b/public/android-chrome-192x192.png differ diff --git a/public/android-chrome-384x384.png b/public/android-chrome-384x384.png deleted file mode 100644 index 1395848cf..000000000 Binary files a/public/android-chrome-384x384.png and /dev/null differ diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 000000000..68a9e432d Binary files /dev/null and b/public/android-chrome-512x512.png differ diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png index acf7d9695..aee95be8d 100644 Binary files a/public/apple-touch-icon.png and b/public/apple-touch-icon.png differ diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png index 1080d9906..1dbd58245 100644 Binary files a/public/favicon-16x16.png and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png index 162b569db..d91358667 100644 Binary files a/public/favicon-32x32.png and b/public/favicon-32x32.png differ diff --git a/public/favicon.ico b/public/favicon.ico index cf5579dc9..b6f91df55 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/index.html b/public/index.html index b5f8dff67..7fef5ca7d 100644 --- a/public/index.html +++ b/public/index.html @@ -2,7 +2,6 @@ - - Tribute + CineCapsule } />, + } />, + // } + // />, + } + />, + // @note Disabling DAO Manager for now because we paused on maintaining // it. // button { + font-size: 1rem; + } + .button_submit_proposal { + font-size: small; + padding: 1rem; + } + .footer_left__6CGtF { + display: flex; + flex-direction: column; + } +} diff --git a/src/assets/scss/_logo.scss b/src/assets/scss/_logo.scss index 47486bc5f..857dd799f 100644 --- a/src/assets/scss/_logo.scss +++ b/src/assets/scss/_logo.scss @@ -30,6 +30,8 @@ font-size: 6em; font-weight: bold; letter-spacing: 6px; + text-align: center; + margin-left: 20px; &--small { @include fluid-type( @@ -56,5 +58,35 @@ 43px, 76px ); /* min font-size 2.6875rem, max 4.75rem */ + animation: logo_laoFlicker__2DM99 1.8s infinite alternate; + animation-duration: 1.8s; + animation-timing-function: ease; + animation-delay: 0s; + animation-iteration-count: infinite; + animation-direction: alternate; + animation-fill-mode: none; + animation-play-state: running; + animation-name: logo_laoFlicker__2DM99; + } +} +@keyframes logo_laoFlicker__2DM99 { + 0%, + 19%, + 21%, + 23%, + 25%, + 54%, + 56%, + 100% { + text-shadow: -0.2rem -0.2rem 1rem #fff, 0.2rem 0.2rem 1rem #fff, + 0 0 2rem $color-royal, 0 0 4rem $color-royal, 0 0 6rem $color-royal, + 0 0 8rem $color-royal, 0 0 10rem $color-royal; + } + + 20%, + 24%, + 55% { + text-shadow: none; + box-shadow: none; } } diff --git a/src/assets/scss/_membercard.scss b/src/assets/scss/_membercard.scss index 7f6c6b5e5..787ea9371 100644 --- a/src/assets/scss/_membercard.scss +++ b/src/assets/scss/_membercard.scss @@ -2,9 +2,9 @@ @use "./mixins" as *; /* load without namespace for convenience */ .membercard { - background-color: $color-background-primary; + background-color: $color-darkblue; border-radius: 15px; - box-shadow: 0 2px 2px 0 $color-shadow-primary; + box-shadow: 0 2px 2px 0 $color-babyblue; padding: 2rem; &:hover { @@ -12,7 +12,7 @@ } &--connected-account { - box-shadow: 0 2px 2px 0 $color-primary-hover; + box-shadow: 0 2px 2px 0 $color-babyblue; } } @@ -38,6 +38,7 @@ line-height: 1.6; margin: 0; text-align: center; + color: $color-primary; &:last-child { margin: 0; diff --git a/src/assets/scss/_memberprofile.scss b/src/assets/scss/_memberprofile.scss index 8f6dc1686..a82c18563 100644 --- a/src/assets/scss/_memberprofile.scss +++ b/src/assets/scss/_memberprofile.scss @@ -14,7 +14,7 @@ } .memberprofile { - background-color: $color-background-primary; + background-color: $color-darkblue; padding: 1rem; display: flex; flex: 1 100%; diff --git a/src/assets/scss/_mixins.scss b/src/assets/scss/_mixins.scss index ff40088a5..1bcbc1a05 100644 --- a/src/assets/scss/_mixins.scss +++ b/src/assets/scss/_mixins.scss @@ -44,6 +44,12 @@ -moz-box-shadow: $params; box-shadow: $params; } +// .logo--large { +// font-size: 76px; +// color: #FFFFFF; +// text-shadow: -5px 5px 0px #6FD671, -10px 10px 0px #01cccc, -15px 15px 0px #00bdbd; +// color: #FFFFFF; +// } // Aspect Ratio @mixin aspect-ratio($width, $height) { diff --git a/src/assets/scss/_modal.scss b/src/assets/scss/_modal.scss index 1dca243b5..d4bdd8142 100644 --- a/src/assets/scss/_modal.scss +++ b/src/assets/scss/_modal.scss @@ -11,7 +11,6 @@ } .modal-overlay { - background: rgba(248, 250, 253, 0.8); border: none; left: 0; margin: 0; @@ -31,9 +30,9 @@ max-height: calc( 100vh - 10rem ); /* dynamic height, minus any surrounding margin + padding */ - background-color: $color-background-primary; + background-color: $color-deepsmoke; border-radius: 15px; - border: 2px solid $color-border-primary; + border: 5px solid $color-babyblue; padding: 2rem 1rem; overflow-y: scroll; @@ -55,6 +54,10 @@ ); /* min font-size 1.125rem, max 1.5rem */ letter-spacing: 1px; font-weight: 500; + color: #697FD4; +} +p.card { +color:black; } .modal__subtitle { @@ -66,6 +69,7 @@ 18px ); /* min font-size 1rem, max 1.125rem */ margin-bottom: 1.5rem; +color: $color-offwhite, } .modal__close-button { diff --git a/src/assets/scss/_nav.scss b/src/assets/scss/_nav.scss index 55681cfd5..ec0450434 100644 --- a/src/assets/scss/_nav.scss +++ b/src/assets/scss/_nav.scss @@ -38,7 +38,7 @@ &.active, &:hover { - color: $color-primary-hover; + color: $color-babyblue; } } @@ -74,7 +74,7 @@ &:hover { cursor: pointer; - color: $color-primary-hover; + color: $color-babyblue; } } @@ -121,7 +121,7 @@ &.active, &:hover { - color: $color-primary-hover; + color: $color-babyblue; } } diff --git a/src/assets/scss/_proposalcard.scss b/src/assets/scss/_proposalcard.scss index 383690ef1..6fb3408e8 100644 --- a/src/assets/scss/_proposalcard.scss +++ b/src/assets/scss/_proposalcard.scss @@ -3,15 +3,83 @@ @use "./button"; .proposalcard { - background-color: $color-background-primary; + background-color: $color-darkblue; border-radius: 15px; padding: 2rem; position: relative; - box-shadow: 0 2px 2px 0 $color-shadow-primary; + box-shadow: 0 2px 2px 0 $color-babyblue; &:hover { cursor: pointer; } + + + .proposalcard__header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; + } + + .proposalcard__title { + font-size: 1.5rem; + font-weight: 600; + color: $color-offwhite; + } + + .proposalcard__subtitle { + font-size: 1.25rem; + font-weight: 400; + color: $color-offwhite; + } + + .proposalcard__body { + margin-bottom: 1rem; + } + + .proposalcard__body-text { + font-size: 1.25rem; + font-weight: 400; + color: $color-offwhite; + } + + .proposalcard__footer { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 1rem; + } + + .proposalcard__footer-buttons { + display: flex; + justify-content: space-between; + align-items: center; + } + + .proposalcard__footer-button { + margin-right: 1rem; + } + + .proposalcard__footer-button--yes { + background-color: $color-hotpink; + border-radius: 15px; + padding: 0.5rem 1rem; + color: $color-offwhite; + font-size: 1rem; + font-weight: 600; + text-transform: uppercase; + transition: 0.4s linear; + + &:hover { + background-color: $color-hotpink; + } + } + + .proposalcard__footer-button--no { + background-color: $color-keylargo; + border-radius: 15px; + padding: 0.5rem 1rem; + color: $color-offwhite; } .proposalcard__title { @@ -56,3 +124,4 @@ .proposalcard__link { text-decoration: none; } +} diff --git a/src/assets/scss/_proposaldetails.scss b/src/assets/scss/_proposaldetails.scss index 7312a1a9f..46cdb4171 100644 --- a/src/assets/scss/_proposaldetails.scss +++ b/src/assets/scss/_proposaldetails.scss @@ -14,14 +14,14 @@ } .proposaldetails { - background-color: $color-background-primary; + background-color: $color-darkblue; padding: 1rem; display: flex; flex: 1 100%; margin: 1rem 0; - border: 1px solid $color-border-secondary; + border: 1px solid $color-babyblue; border-radius: 15px; - box-shadow: 0 2px 2px 0 $color-shadow-primary; + box-shadow: 0 2px 2px 0 $color-babyblue; @include size-medium-down { flex-direction: column; @@ -113,5 +113,6 @@ display: inline-block; font-size: 0.9rem; font-weight: 500; + color: $color-deepsmoke; } } diff --git a/src/assets/scss/_socialmedia.scss b/src/assets/scss/_socialmedia.scss index b5de717b7..183884613 100644 --- a/src/assets/scss/_socialmedia.scss +++ b/src/assets/scss/_socialmedia.scss @@ -18,7 +18,7 @@ } &:hover { - color: $color-primary-hover; + color: $color-babyblue; } } diff --git a/src/assets/scss/_variables.scss b/src/assets/scss/_variables.scss index 4c82a390d..3a7431e82 100644 --- a/src/assets/scss/_variables.scss +++ b/src/assets/scss/_variables.scss @@ -13,15 +13,16 @@ $width-wide: 1200px; $width-max-content: 1125px; // colors -$color-babyblue: #6ef4fa; +$color-darkblue: #191920; +$color-babyblue: #6FD671; $color-babypink: #e083f6; $color-brightlime: #75f86a; -$color-brightsalmon: #ff6f6f; +$color-hotpink: #697FD4; $color-cirrus: #c5ddef; $color-darksmoke: #333333; $color-deepsmoke: #212121; $color-fadedsky: #5da8d2; -$color-hotpink: #e83adc; +$color-hotpink: #697FD4; $color-keylargo: #31cde7; $color-lightgreen: #83e5a4; $color-lilac: #4952a5; @@ -32,9 +33,9 @@ $color-royal: #076ad2; $color-sunny: #f5f650; $color-wiltedlilac: #828092; -$color-primary: #3c6b7e; -$color-primary-hover: #2498bd; -$color-background-page: #f8fafd; +$color-primary: #ffffff; +$color-primary-hover: #697FD4; +$color-background-page: #191920; $color-background-primary: #ffffff; $color-background-secondary: #f4f4f4; $color-border-primary: #c3d6dc; @@ -45,7 +46,7 @@ $colors: ( "babyblue": $color-babyblue, "babypink": $color-babypink, "brightlime": $color-brightlime, - "brightsalmon": $color-brightsalmon, + "brightsalmon": $color-hotpink, "cirrus": $color-cirrus, "darksmoke": $color-darksmoke, "deepsmoke": $color-deepsmoke, diff --git a/src/assets/scss/_voting.scss b/src/assets/scss/_voting.scss index 5af1a315f..5cbdf4326 100644 --- a/src/assets/scss/_voting.scss +++ b/src/assets/scss/_voting.scss @@ -71,7 +71,7 @@ $bar-height: 14px; @extend %vote-segment; left: 0; - background-color: #96c0d6; + background-color:$color-hotpink } &__segment--no { diff --git a/src/assets/scss/_walletconnect.scss b/src/assets/scss/_walletconnect.scss index 8f784df86..7d303a863 100644 --- a/src/assets/scss/_walletconnect.scss +++ b/src/assets/scss/_walletconnect.scss @@ -11,7 +11,7 @@ } .walletconnect__options-button { - color: $color-primary; + color: $color-darkblue; background-color: $color-background-primary; border: 1px solid $color-border-primary; border-radius: 12px; @@ -67,8 +67,8 @@ .walletconnect__connected-address-text { display: inline-block; - background-color: rgba(214, 216, 218, 0.2); - color: $color-primary; + background-color: $color-cirrus; + color: $color-deepsmoke; font-size: 1rem; margin: 1rem 0; font-family: $font-accent; @@ -100,7 +100,7 @@ justify-content: center; &--error { - color: $color-brightsalmon; + color: $color-hotpink; font-size: 0.85rem; > span:first-of-type { diff --git a/src/assets/scss/style.scss b/src/assets/scss/style.scss index 4d2605576..d3c9938df 100644 --- a/src/assets/scss/style.scss +++ b/src/assets/scss/style.scss @@ -93,9 +93,29 @@ p { } a { - color: $color-primary; + color: $color-babyblue; +} +a.landing__link{ + + color: #6FD671; + margin-right: 60rem; +} +ul { + list-style: none; + list-style-type: circle; + text-align: left; + padding: 0; + margin: 0; + + + +} +li{ + margin-bottom: 1rem; + } + /* react mount point */ #root { @@ -115,8 +135,12 @@ main { .section-wrapper { flex: 1 1; - margin: 0 auto 4rem; + //margin: 0 auto 4rem; + margin-left: 10rem; max-width: 75rem; // 1200px + margin-left: auto; + margin-right: auto; + @media only screen and (max-width: calc(75rem + 4rem)) { margin: 0 2rem 4rem; @@ -180,7 +204,7 @@ main { /* errors */ .error-message { - color: $color-brightsalmon; + color: $color-hotpink; // the text needs to wrap as the JSON errors can be long word-break: break-word; } @@ -190,6 +214,10 @@ main { .pulse { animation: pulse 0.9s infinite ease-in-out alternate; } +hr{ + max-width: 100px; + height: 3px; border: 1px dashed #000; +} @keyframes pulse { from { transform: scale(0.8); @@ -198,3 +226,57 @@ main { transform: scale(1.2); } } +//IMAGE HOME +img.submit-space{ + width: 30rem; + border-radius: 1.5em; + +} +//RESPONSIVE +@media only screen and (max-width: 915px) { + .logo--large { + font-size:2.5rem; + } +img.submit-space { + width:15rem; +} +} +.card-group{ + justify-content: center; + grid-template-columns: repeat(auto-fill,minmax(300px,1fr)); + grid-column-gap: 2em; + -webkit-column-gap: 2em; + column-gap: 2em; + grid-row-gap: 2em; + row-gap: 2em; + margin-bottom: 2.75rem; +} +.card-body { + flex: 1 1 auto; + padding: 1rem 1rem; + text-align: center; +} + +@keyframes laoFlicker { + 0%, + 19%, + 21%, + 23%, + 25%, + 54%, + 56%, + 100% { + text-shadow: -0.2rem -0.2rem 1rem #fff, 0.2rem 0.2rem 1rem #fff, + 0 0 2rem $color-hotpink, 0 0 4rem $color-hotpink, 0 0 6rem $color-hotpink, + 0 0 8rem $color-hotpink, 0 0 10rem $color-hotpink; + } + + 20%, + 24%, + 55% { + text-shadow: none; + box-shadow: none; + } +} + + diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 7b807a34a..158f96ae7 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -2,7 +2,53 @@ import SocialMedia from './common/SocialMedia'; export default function Footer() { return ( -
+
+
+
+ + + 2022 @CineCapsule DAO + + + + DOCS + + + CineCapsule + + + Privacy + + + {/* + Our Team + */} + + Contact Us + +
+
+
); diff --git a/src/components/Nav.tsx b/src/components/Nav.tsx index e79472794..f49fd9831 100644 --- a/src/components/Nav.tsx +++ b/src/components/Nav.tsx @@ -198,54 +198,76 @@ export function NavHamburger() { onClick={() => { handleMenuModalClose(false); }}> - - Onboarding - - -
  • { - handleMenuModalClose(false); - }}> - - Tribute - -
  • -
  • { - handleMenuModalClose(false); - }}> - - Transfer + + 🎥 Become a member
  • { handleMenuModalClose(false); }}> - - Governance + + 🎥 Members
  • -
  • { + handleMenuModalClose(false); + }}> + + 🎥 Collection + +
  • */} + {/*
  • { handleMenuModalClose(false); }}> - - Members + + 🎥 Onbording -
  • - {/* The Profile link for the member account is available to both the connected member address and its delegate address. */} + */} + {isCurrentMemberOrDelegateConnected && ( +
  • { + handleMenuModalClose(false); + }}> + + 🎥 Governance + +
  • + )} {isCurrentMemberOrDelegateConnected && (
  • { handleMenuModalClose(false); }}> - - Profile + + 🎥 Tribute
  • )} + {isCurrentMemberOrDelegateConnected && ( +
  • { + handleMenuModalClose(false); + }}> + + 🎥 Transfer + +
  • + )} + {/* The Profile link for the member account is available to both the connected member address and its delegate address. + {isCurrentMemberOrDelegateConnected && ( + //
  • { + // handleMenuModalClose(false); + // }}> + // + // 🎥 Profile + // + //
  • + )} */} {/* @note Disabling DAO Manager for now because we paused on maintaining it. */} {/* {isActiveMemberConnected && (
  • - Nulla aliquet porttitor venenatis. Donec a dui et dui fringilla - consectetur id nec massa. Aliquam erat volutpat. Sed ut dui ut lacus - dictum fermentum vel tincidunt neque. Sed sed lacinia... + Select the adapters you want to add to the DAO. You can add multiple + adapters at once.

    diff --git a/src/components/common/SocialMedia.tsx b/src/components/common/SocialMedia.tsx index 5c395e062..c25b1c8a5 100644 --- a/src/components/common/SocialMedia.tsx +++ b/src/components/common/SocialMedia.tsx @@ -1,10 +1,13 @@ -import DiscordSVG from '../../assets/svg/DiscordSVG'; +// import DiscordSVG from '../../assets/svg/DiscordSVG'; import GitHubSVG from '../../assets/svg/GitHubSVG'; +import TwitterSVG from '../../assets/svg/TwitterSVG'; // import MediumSVG from '../../assets/svg/MediumSVG'; +import DiscordSVG from '../../assets/svg/DiscordSVG'; // @todo Add missing URLs when available enum SocialMediaLinks { - DISCORD = 'https://discord.gg/tEfP68xnTd', + TWITTER = 'https://twitter.com/cine_capsule', + //DISCORD = '', /* * query params search sepcifically for: * openlawteam/tribute-ui @@ -12,8 +15,9 @@ enum SocialMediaLinks { * openlawteam/tribute-contracts-cli * openlawteam/tribute-subgraph */ - GITHUB = 'https://github.com/search?q=org%3Aopenlawteam+tribute-ui+OR+tribute-contracts+OR+tribute-subgraph+in%3Aname&type=repositories', - // MEDIUM = '#', + GITHUB = 'https://github.com/CineCapsule', + // MEDIUM = 'https://medium.com/', + DISCORD= 'https://discord.com/' } export default function SocialMedia() { @@ -25,11 +29,17 @@ export default function SocialMedia() { rel="noopener noreferrer"> */} - + */} + + + + +
    ); } diff --git a/src/components/logo/Logo.tsx b/src/components/logo/Logo.tsx index 6ea86d1e9..2728c65e7 100644 --- a/src/components/logo/Logo.tsx +++ b/src/components/logo/Logo.tsx @@ -5,7 +5,9 @@ interface LogoProps { export default function Logo(props: LogoProps) { return (
    - TRIBUTE + + CineCapsule 3.0 +
    ); } diff --git a/src/components/logo/index.tsx b/src/components/logo/index.tsx index 4905d4ccf..ec2dcb5b2 100644 --- a/src/components/logo/index.tsx +++ b/src/components/logo/index.tsx @@ -21,7 +21,7 @@ export function ModalLogo() { export function LeftLogo() { return (
    - +
    ); } diff --git a/src/components/proposals/ProposalCard.tsx b/src/components/proposals/ProposalCard.tsx index dbd2dbcd8..505bdb921 100644 --- a/src/components/proposals/ProposalCard.tsx +++ b/src/components/proposals/ProposalCard.tsx @@ -28,7 +28,7 @@ type ProposalCardProps = { renderStatus?: () => React.ReactNode; }; -const DEFAULT_BUTTON_TEXT: string = 'View Proposal'; +const DEFAULT_BUTTON_TEXT: string = 'Review'; const ResponsiveEllipsis = responsiveHOC()(LinesEllipsis); diff --git a/src/components/web3/ConnectWalletModal.tsx b/src/components/web3/ConnectWalletModal.tsx index fc69302f1..01b7b1f42 100644 --- a/src/components/web3/ConnectWalletModal.tsx +++ b/src/components/web3/ConnectWalletModal.tsx @@ -187,7 +187,7 @@ export default function ConnectWalletModal( {/* SUBTITLE */} {(!connected || !isWrongNetwork) && ( -
    Choose your wallet
    +
    Choose your wallet 😎
    )} {/* POSSIBLE CONTRACT WALLET WARNING TEXT */} diff --git a/src/config.ts b/src/config.ts index 555582345..4a73e0893 100644 --- a/src/config.ts +++ b/src/config.ts @@ -91,6 +91,8 @@ export const CHAINS = { POLYGON: 137, AVALANCHE_TEST: 43113, AVALANCHE_MAIN: 43114, + FUSE_TEST: 123, + FUSE: 122, } as const; // Network names @@ -107,6 +109,8 @@ export const CHAIN_NAME = { [CHAINS.POLYGON_TEST]: 'polygon-testnet', [CHAINS.AVALANCHE_TEST]: 'avalanche-fuji', [CHAINS.AVALANCHE_MAIN]: 'avalanche-mainnet', + [CHAINS.FUSE_TEST]: 'fuse-testnet', + [CHAINS.FUSE]: 'fuse-mainnet', } as const; // Network names verbose @@ -123,18 +127,21 @@ export const CHAIN_NAME_FULL = { [CHAINS.POLYGON]: 'Polygon Main Network', [CHAINS.AVALANCHE_TEST]: 'Avalanche Fuji Test Network', [CHAINS.AVALANCHE_MAIN]: 'Avalanche Main Network', + [CHAINS.FUSE_TEST]: 'Fuse Test Network', + [CHAINS.FUSE]: 'Fuse Main Network', }; export const DEFAULT_CHAIN: typeof CHAINS[keyof typeof CHAINS] = - REACT_APP_ENVIRONMENT === 'production' - ? CHAINS.MAINNET - : REACT_APP_ENVIRONMENT === 'development' - ? CHAINS.RINKEBY - : REACT_APP_DEFAULT_CHAIN_NAME_LOCAL // Set this to change local development chain - ? CHAINS[REACT_APP_DEFAULT_CHAIN_NAME_LOCAL] - : CHAINS.GANACHE; // Defaults to a Ganache private network (1337) + REACT_APP_ENVIRONMENT === 'production' //production default chain name for all environments except localhost + ? CHAINS.MAINNET //mainnet for production environment only (not localhost) + : REACT_APP_ENVIRONMENT === 'development' //development default chain name for localhost + ? CHAINS.RINKEBY //si on est en localhost, on utilise le rinkeby pour les tests (pas de mainnet pour les tests) + : REACT_APP_DEFAULT_CHAIN_NAME_LOCAL // sinon on utilise le chain name local (pour les tests) (pas de mainnet pour les tests) + ? CHAINS[REACT_APP_DEFAULT_CHAIN_NAME_LOCAL] // si l'utilisateur a choisi une chaine locale (ex: rinkeby) on l'utilise + : CHAINS.GANACHE; // Defaults to a Ganache private network (1337) // ganache est le chain par défaut export const ETHERSCAN_URLS: {[chainId: number]: string} = { + // c'est leur url pour chaque chain id [CHAINS.MAINNET]: `https://etherscan.io`, [CHAINS.ROPSTEN]: `https://ropsten.etherscan.io`, [CHAINS.RINKEBY]: `https://rinkeby.etherscan.io`, @@ -146,6 +153,8 @@ export const ETHERSCAN_URLS: {[chainId: number]: string} = { [CHAINS.POLYGON]: `https://polygonscan.com`, [CHAINS.AVALANCHE_TEST]: `https://testnet.snowtrace.io`, [CHAINS.AVALANCHE_MAIN]: `https://snowtrace.io`, + [CHAINS.FUSE_TEST]: `https://explorer.fusespark.io/`, + [CHAINS.FUSE]: `https://explorer.fuse.io/`, }; export const INFURA_WS_URLS: {[chainId: number]: string} = { @@ -156,21 +165,24 @@ export const INFURA_WS_URLS: {[chainId: number]: string} = { [CHAINS.KOVAN]: `wss://kovan.infura.io/ws/v3`, [CHAINS.HARMONY_TEST]: `wss://ws.s0.pops.one`, [CHAINS.HARMONY_MAIN]: `wss://ws.s0.t.hmny.io`, - [CHAINS.POLYGON_TEST]: `wss://ws-matic-mumbai.chainstacklabs.com`, + [CHAINS.POLYGON_TEST]: `wss://polygon-mumbai.g.alchemy.com/v2`, [CHAINS.POLYGON]: `wss://ws-matic-mainnet.chainstacklabs.com`, [CHAINS.AVALANCHE_TEST]: `wss://api.avax-test.network:9650/ext/bc/C/ws`, [CHAINS.AVALANCHE_MAIN]: `wss://api.avax.network:9650/ext/bc/C/ws`, + [CHAINS.FUSE_TEST]: `wss://cinecapsule.cc:8546`, + [CHAINS.FUSE]: `wss://fuserpc_38546.app.runonflux.io:38546`, }; // Infura Project Id export const INFURA_PROJECT_ID = - REACT_APP_ENVIRONMENT === 'production' - ? REACT_APP_INFURA_PROJECT_ID_PROD - : REACT_APP_ENVIRONMENT === 'development' + REACT_APP_ENVIRONMENT === 'production' // si on est en prod, on utilise le mainnet + ? REACT_APP_INFURA_PROJECT_ID_PROD // si on est en prod, on utilise le mainnet + : REACT_APP_ENVIRONMENT === 'development' // si on est en dev ? REACT_APP_INFURA_PROJECT_ID_DEV : REACT_APP_INFURA_PROJECT_ID_LOCAL; // Ethereum Provider URL +// export const ETHEREUM_PROVIDER_URL: string = REACT_APP_ETH_NODE_URL ? export const ETHEREUM_PROVIDER_URL: string = INFURA_WS_URLS[DEFAULT_CHAIN] ? INFURA_PROJECT_ID ? `${INFURA_WS_URLS[DEFAULT_CHAIN]}/${INFURA_PROJECT_ID}` @@ -243,10 +255,12 @@ export const DAO_FACTORY_CONTRACT_ADDRESS = { [CHAINS.GANACHE]: '0x6d92a8E4aB80adcBbFDA44ef69fe847f82def641', [CHAINS.HARMONY_TEST]: '', [CHAINS.HARMONY_MAIN]: '', - [CHAINS.POLYGON_TEST]: '', + [CHAINS.POLYGON_TEST]: '0x083e3b23E4168c6864f9e6A3AdbA838950dCA576', [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const BANK_FACTORY_CONTRACT_ADDRESS = { @@ -262,6 +276,8 @@ export const BANK_FACTORY_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; // @todo @@ -278,6 +294,8 @@ export const NFT_COLLECTION_FACTORY_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; // @todo @@ -294,6 +312,8 @@ export const ERC20_TOKEN_FACTORY_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; /** @@ -330,6 +350,8 @@ export const VOTING_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const CONFIGURATION_CONTRACT_ADDRESS = { @@ -345,6 +367,8 @@ export const CONFIGURATION_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const RAGEQUIT_CONTRACT_ADDRESS = { @@ -360,6 +384,8 @@ export const RAGEQUIT_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const MANAGING_CONTRACT_ADDRESS = { @@ -375,6 +401,8 @@ export const MANAGING_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const FINANCING_CONTRACT_ADDRESS = { @@ -390,6 +418,8 @@ export const FINANCING_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const ONBOARDING_CONTRACT_ADDRESS = { @@ -405,6 +435,8 @@ export const ONBOARDING_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const GUILDKICK_CONTRACT_ADDRESS = { @@ -420,6 +452,8 @@ export const GUILDKICK_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const DAO_REGISTRY_ADAPTER_CONTRACT_ADDRESS = { @@ -435,6 +469,7 @@ export const DAO_REGISTRY_ADAPTER_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', }; export const BANK_ADAPTER_CONTRACT_ADDRESS = { @@ -450,6 +485,8 @@ export const BANK_ADAPTER_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const COUPONONBOARDING_CONTRACT_ADDRESS = { @@ -465,6 +502,8 @@ export const COUPONONBOARDING_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const TRIBUTE_CONTRACT_ADDRESS = { @@ -480,6 +519,8 @@ export const TRIBUTE_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const DISTRIBUTE_CONTRACT_ADDRESS = { @@ -495,6 +536,8 @@ export const DISTRIBUTE_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const TRIBUTE_NFT_CONTRACT_ADDRESS = { @@ -510,6 +553,8 @@ export const TRIBUTE_NFT_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const OFFCHAINVOTING_CONTRACT_ADDRESS = { @@ -525,6 +570,8 @@ export const OFFCHAINVOTING_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; export const KYC_ONBOARDING_CONTRACT_ADDRESS = { @@ -540,6 +587,8 @@ export const KYC_ONBOARDING_CONTRACT_ADDRESS = { [CHAINS.POLYGON]: '', [CHAINS.AVALANCHE_TEST]: '', [CHAINS.AVALANCHE_MAIN]: '', + [CHAINS.FUSE_TEST]: '', + [CHAINS.FUSE]: '', }; // If developing locally, include your Multicall contract address in your `.env` diff --git a/src/pages/collection/Collection.tsx b/src/pages/collection/Collection.tsx new file mode 100644 index 000000000..b3c64fe23 --- /dev/null +++ b/src/pages/collection/Collection.tsx @@ -0,0 +1,163 @@ +import 'bootstrap/dist/css/bootstrap.min.css'; +import {Button} from 'reactstrap'; +import { + CardGroup, + Col, + Row, + Card, + CardBody, + CardTitle, + CardSubtitle, + CardImg, + CardText, +} from 'reactstrap'; + +export default function Collection() { + return ( +
    +
    +

    Collection

    +

    + Below are works selected by members for CineCapsule's permanent + collection. +

    +
    + + + + + Card title + + Cameras Cinecapsule #1 + + Art Blocks + + + + + + + Card title + + Cameras Cinecapsule #2 + + Art Blocks + + + + + + + Card title + + Cameras Cinecapsule #3 + + Art Blocks + + + + + + + + + Card title + + Cameras Cinecapsule #4 + + Art Blocks + + + + + + + Card title + + Cameras Cinecapsule #5 + + Art Blocks + + + + + + + Card title + + Cameras Cinecapsule #6 + + Art Blocks + + + + +
    + ); +} diff --git a/src/pages/governance/CreateGovernanceProposal.tsx b/src/pages/governance/CreateGovernanceProposal.tsx index cc6ce63f0..8fecb1ec6 100644 --- a/src/pages/governance/CreateGovernanceProposal.tsx +++ b/src/pages/governance/CreateGovernanceProposal.tsx @@ -97,7 +97,12 @@ export default function CreateGovernanceProposal() { function getUnauthorizedMessage() { // user is not connected if (!isConnected) { - return 'Connect your wallet to submit a governance proposal.'; + return ( + <> +

    Connect your wallet to submit a governance proposal

    + + ) + } // user is on wrong network @@ -282,9 +287,10 @@ function RenderWrapper(props: React.PropsWithChildren): JSX.Element {

    - Nulla aliquet porttitor venenatis. Donec a dui et dui fringilla - consectetur id nec massa. Aliquam erat volutpat. Sed ut dui ut - lacus dictum fermentum vel tincidunt neque. Sed sed lacinia... + As a member, you can make proposals related to the governance of + CineCapsule. Describe the proposal in full so that others can make an + informed decision. Include links to any additional supporting + materials in the description to better explain your proposal.

    diff --git a/src/pages/governance/GovernanceProposalDetails.tsx b/src/pages/governance/GovernanceProposalDetails.tsx index 03addf31f..c5760e499 100644 --- a/src/pages/governance/GovernanceProposalDetails.tsx +++ b/src/pages/governance/GovernanceProposalDetails.tsx @@ -117,7 +117,7 @@ function RenderWrapper(props: React.PropsWithChildren): JSX.Element {

    Governance

    - + diff --git a/src/pages/governance/GovernanceProposals.tsx b/src/pages/governance/GovernanceProposals.tsx index 1fd6e0c4b..32bc8d8e2 100644 --- a/src/pages/governance/GovernanceProposals.tsx +++ b/src/pages/governance/GovernanceProposals.tsx @@ -54,6 +54,12 @@ function RenderWrapper(props: React.PropsWithChildren): JSX.Element {

    Governance

    +

    + CineCapsule is run entirely by its members.

    + Below are all the governance votes and proposals. +

    +

    Otherwise, you can submit a new proposal

    + diff --git a/src/pages/onboarding/CreateOnboardingProposal.tsx b/src/pages/onboarding/CreateOnboardingProposal.tsx index 3628fa0bc..24e12236a 100644 --- a/src/pages/onboarding/CreateOnboardingProposal.tsx +++ b/src/pages/onboarding/CreateOnboardingProposal.tsx @@ -88,7 +88,23 @@ function renderUnauthorizedMessage({ }) { // user is not connected if (!isConnected) { - return 'Connect your wallet to submit an onboarding proposal.'; + return ( +
    +
    +

    + CineCapsule DAO aims to bring together members who wish to support + the work of Independent Film Festivals. CineCapsule DAO will have up + to a certain number of initial members, who will pool their capital + to make investments. Each member can buy with DAO tokens. Please + enter your preferred wallet address below and the amount of ETH you + wish to contribute to CineCapsule DAO. Once you complete this form, + you will be fully onboarded and will receive information about the + weekly CineCapsule DAO call and its Discord community. +

    +

    Connect your wallet to get started.

    +
    +
    + ); } // user is on wrong network @@ -635,142 +651,148 @@ export default function CreateOnboardingProposal() { return ( -
    -

    - Submit a proposal to join Tribute DAO. Each member can purchase{' '} - {minUnitsText} units for {minAmountText} {amountUnit} (up to{' '} - {maxUnitsText} units for {maxAmountText} {amountUnit}). Please put - your preferred ETH address below and the amount of {amountUnit}{' '} - you'd like to contribute. -

    -

    - Following your submission, existing members will consider your - proposal. If approved by vote, your proposal will be processed and you - will finalize the transfer of your allocated {amountUnit} in exchange - for membership units. -

    -
    - -
    e.preventDefault()}> - {/* ETH ADDRESS */} -
    - -
    - {/* @note We don't need the default value as it's handled in the useEffect above. */} - { - return !ethAddress - ? FormFieldErrors.REQUIRED - : !isEthAddressValid(ethAddress) - ? FormFieldErrors.INVALID_ETHEREUM_ADDRESS - : true; - }, - })} - type="text" - disabled={isInProcessOrDone} - /> - - +
    +
    +
    +

    + To become a member of CineCapsule, each member can purchase{' '} + {minUnitsText} units for {minAmountText} {amountUnit} (up to{' '} + {maxUnitsText} units for {maxAmountText} {amountUnit}). Please put + your preferred ETH address below and the amount of {amountUnit}{' '} + you'd like to contribute. +

    +

    + Following your submission, existing members will consider your + proposal. If approved by vote, your proposal will be processed and + you will finalize the transfer of your allocated {amountUnit} in + exchange for membership units. +

    -
    - {/* AMOUNT SLIDER */} -
    - -
    - ( - e.preventDefault()}> + {/* ETH ADDRESS */} +
    + +
    + {/* @note We don't need the default value as it's handled in the useEffect above. */} + { + return !ethAddress + ? FormFieldErrors.REQUIRED + : !isEthAddressValid(ethAddress) + ? FormFieldErrors.INVALID_ETHEREUM_ADDRESS + : true; + }, + })} + type="text" disabled={isInProcessOrDone} /> - )} - defaultValue={sliderMin || 0} - control={control} - name={Fields.amount} - rules={{ - validate: (value: string): string | boolean => { - const amount = Number(value); - - return amount > Number(userAccountBalance) - ? `Insufficient funds. ${renderUserAccountBalance( - userAccountBalance - )} ${amountUnit} available.` - : true; - }, - }} - /> - - -
    -
    - {formatNumber(amountValue)} {amountUnit} -
    -
    - {/* SUBMIT */} - - - {/* SUBMIT STATUS */} - {isInProcessOrDone && ( -
    - {renderSubmitStatus(proposalSignAndSendStatus)} -
    - )} - - {/* SUBMIT ERROR */} - {createOnboardError && ( -
    - -
    - )} - + +
    +
    + + {/* AMOUNT SLIDER */} +
    + +
    + ( + + )} + defaultValue={sliderMin || 0} + control={control} + name={Fields.amount} + rules={{ + validate: (value: string): string | boolean => { + const amount = Number(value); + + return amount > Number(userAccountBalance) + ? `Insufficient funds. ${renderUserAccountBalance( + userAccountBalance + )} ${amountUnit} available.` + : true; + }, + }} + /> + + +
    +
    + {formatNumber(amountValue)} {amountUnit} +
    +
    + + {/* SUBMIT */} + + + {/* SUBMIT STATUS */} + {isInProcessOrDone && ( +
    + {renderSubmitStatus(proposalSignAndSendStatus)} +
    + )} + + {/* SUBMIT ERROR */} + {createOnboardError && ( +
    + +
    + )} + +
    +
    ); } @@ -784,8 +806,9 @@ function RenderWrapper(props: React.PropsWithChildren): JSX.Element {
    -

    Onboard

    +

    BECOME A MEMBER

    +

    {/* RENDER CHILDREN */} diff --git a/src/pages/onboarding/Onboarding.tsx b/src/pages/onboarding/Onboarding.tsx index 4f96f9b47..ae5c5479e 100644 --- a/src/pages/onboarding/Onboarding.tsx +++ b/src/pages/onboarding/Onboarding.tsx @@ -5,6 +5,7 @@ import {DaoAdapterConstants} from '../../components/adapters-extensions/enums'; import FadeIn from '../../components/common/FadeIn'; import Proposals from '../../components/proposals/Proposals'; import Wrap from '../../components/common/Wrap'; +import { Onboarded } from '../../abis/types/KycOnboardingContract'; export default function Onboarding() { /** @@ -56,7 +57,7 @@ function RenderWrapper(props: React.PropsWithChildren): JSX.Element {

    Onboarding

    diff --git a/src/pages/onboarding/OnboardingDetails.tsx b/src/pages/onboarding/OnboardingDetails.tsx index 841b75a48..7d2d9a1a4 100644 --- a/src/pages/onboarding/OnboardingDetails.tsx +++ b/src/pages/onboarding/OnboardingDetails.tsx @@ -213,7 +213,7 @@ function RenderWrapper(props: React.PropsWithChildren): JSX.Element {
    -

    Onboarding

    +

    Onbording

    diff --git a/src/pages/privacy/Privacy.tsx b/src/pages/privacy/Privacy.tsx new file mode 100644 index 000000000..51c6fb867 --- /dev/null +++ b/src/pages/privacy/Privacy.tsx @@ -0,0 +1,142 @@ +export default function Privacy() { + return ( +
    +
    + + 🎥 + +

    +
    +

    Privacy Policy

    +
    +
    +
      +
    • Preambule :
    • +

      + The purpose of this privacy policy is to describe what personal + data is collected, the methods and purposes of processing, as well + as the rights and security measures taken to protect them. These + terms will apply, regardless of how and trough which device you + accessed our website. +

      +
    • What data we collect :
    • +

      + CINECAPSULE collects personal data, which refers to any + information relating to you and that identifies you, directly or + indirectly.This may be your identity data (such as contact data, + your name, surname, language and country from which you interact + with us), your areas of interest, your size or style preferences, + events you participate in, the pages you visit, cv data, technical + data (as connection, geolocation and browsing data) and commercial + information. +

      +
    • Why we use your data and what for :
    • +

      + we will use your data, among other purposes, to manage + personalized content for you or to send you commercial + communications, to analyze the ergonomy of our website through + cookies or other technologies, improve our services for you. +

      +
    • Who we share your data with :
    • +

      + We will treat all your personal information as confidential. We + will never share or sell your data outside CINECAPSULE for + marketing purposes. Data that we forward to third party companies + are only for limited reasons below. We share your data on a + limited basis with trusted suppliers that provide us with services + we offer to you. These are suppliers who provide us with + technological services as the internet platform, financial + institutions, advertising and marketing partners, providers of + customer service or government bodies and law enforcement agencies + or the ones that help us to prevent fraud. We exclusively disclose + data to them that is strictly necessary for them to support us and + please them to use your data only for the listed purposes. ​ +

      +
    • How we store your data :
    • +

      + CINECAPSULE keeps your data for the time necessary to achieve the + purpose we collected it for. This may be to satisfy your needs or + to meet legal obligations. +

      +
    • Where we store your data :
    • +

      + Your data is stored in the eea european economic area and may be + transferred and processed outside of the eea, considering the + respectif laws. +

      +
    • Your rights :
    • +

      + We want to make sure you are fully aware of all of your data + protection rights under the european directive gdpr (general data + protection regulation). +

      +
    • You are entitled to the following :
    • +

      + The right to access – you have the right to request information + about your personal data. Contact us and we will provide you with + it via email. The right to rectify – you have the right to request + rectification of your data if you believe it is inaccurate or + incomplete. The right to delete – you have the right to erase your + personal data, under certain conditions. If the data is no longer + needed for the purpose for which it was collected (for example a + placed order that has not been completely shipped, an ongoing + customer service matter, an unsettled debt with CINECAPSULE, + misuse of our service, bookkeeping rules following your purchase, + etc.). The right to data portability – you have the right to + request that CINECAPSULE transfers the data that we have collected + to another organization, or directly to you, under certain + conditions. The right to restrict processing – you have the right + to request that CINECAPSULE restrict the processing of your + personal data, under certain conditions. The right to object to + processing – you have the right to object to CINECAPSULE + processing of your personal data, under certain conditions. +

      +
    • Cookies :
    • +

      + Cookies are text files placed on your computer or mobile device to + collect visitor behavior information. When you visit our website, + we may collect information from you automatically through cookies + or similar technologies to facilitate browsing, to make it more + user-friendly and to save your preferences. +

      +
    • They do not damage your device :
    • +

      + We assume that you agree to the use of cookies when you use our + services. You can easily erase cookies from your computer or + mobile device using your browser. Keep in mind that if you disable + cookies, you will not be able to use all our features. +

      +
    • Google analytics :
    • +

      + We use google analytics advertising features. If you want to read + more about it or to opt out: +

      + + https://tools.google.com/dlpage/gaoptout/ + +

      +

      + Changes to our privacy policy** Our business is constantly + evolving and so may need to update our privacy policies. You will + always find the latest version of the privacy notice on our + website. +

      +
    • How to contact us :
    • +

      + The Data Protection Officer may be contacted at the following + address:{' '} +

      + + hello@cinecapsule.com{' '} + +
    +
    +
    +
    + ); +} diff --git a/src/pages/start/GetStarted.tsx b/src/pages/start/GetStarted.tsx index 6addd177a..2545ed0b4 100644 --- a/src/pages/start/GetStarted.tsx +++ b/src/pages/start/GetStarted.tsx @@ -6,20 +6,24 @@ import '../../../node_modules/aos/dist/aos.css'; import {CenterLogo} from '../../components/logo'; import {NavHamburger} from '../../components/Nav'; import FadeIn from '../../components/common/FadeIn'; -import SocialMedia from '../../components/common/SocialMedia'; +// import SocialMedia from '../../components/common/SocialMedia'; import Wrap from '../../components/common/Wrap'; import {ENABLE_KYC_ONBOARDING} from '../../config'; +import Footer from '../../components/Footer'; -const TributeCube = memo(() => { +const TributeSpace = memo(() => { return ( -
    -
    -
    -
    +
    +
    + astronaut +

    +
    ); }); @@ -27,7 +31,7 @@ const TributeCube = memo(() => { function GetStartedHeader() { return (
    - + {/**/}
    ); @@ -61,31 +65,63 @@ export default function GetStarted() { return ( <> - - - -
    -
    - A next generation DAO framework +
    + + + +
    +
    + A DAO SUPPORTING INDEPENDENT CINEMA +
    +
    + +
    +
    + +
    +

    +
    - -
    - -
    - -
    +

    +
    + + 🎥 + +

    +
    + Looking for funding? +
    +
    + CineCapsule is a group of enthusiasts and experts + supporting the work of independent Film Festivals. +

    If you are a film producer or director, join the DAO and make a proposal +
    -
    -
    -
    + + +
    +