diff --git a/tools/obscuroscan_v2/backend/Dockerfile b/tools/obscuroscan_v2/backend/Dockerfile deleted file mode 100644 index 4d5424bc08..0000000000 --- a/tools/obscuroscan_v2/backend/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# Build stage for downloading dependencies based on the core defined system -FROM golang:1.20-buster as get-dependencies - -# setup container data structure -RUN mkdir -p /home/obscuro/go-obscuro - -# Ensures container layer caching when dependencies are not changed -WORKDIR /home/obscuro/go-obscuro -COPY go.mod . -COPY go.sum . -RUN go mod download - -FROM get-dependencies as build - -COPY . /home/obscuro/go-obscuro - -# build exec -WORKDIR /home/obscuro/go-obscuro/tools/obscuroscan_v2/backend/cmd -RUN --mount=type=cache,target=/root/.cache/go-build \ - go build -o backend - -WORKDIR /home/obscuro/go-obscuro/tools/obscuroscan_v2/backend -EXPOSE 80 \ No newline at end of file diff --git a/tools/obscuroscan_v2/backend/cmd/cli.go b/tools/obscuroscan_v2/backend/cmd/cli.go index cf1c3a8ac9..863876ff31 100644 --- a/tools/obscuroscan_v2/backend/cmd/cli.go +++ b/tools/obscuroscan_v2/backend/cmd/cli.go @@ -8,8 +8,8 @@ import ( func parseCLIArgs() *config.Config { defaultConfig := &config.Config{ - NodeHostAddress: "http://127.0.0.1:37801", - ServerAddress: "0.0.0.0:43910", + NodeHostAddress: "http://erpc.dev-testnet.obscu.ro:80", + ServerAddress: "0.0.0.0:80", LogPath: "obscuroscan_logs.txt", } diff --git a/tools/obscuroscan_v2/backend/cmd/main.go b/tools/obscuroscan_v2/backend/cmd/main.go deleted file mode 100644 index bdcda2eb8c..0000000000 --- a/tools/obscuroscan_v2/backend/cmd/main.go +++ /dev/null @@ -1,54 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - "os" - "os/signal" - "time" - - "github.com/obscuronet/go-obscuro/tools/obscuroscan_v2/backend/container" -) - -func main() { - cliConfig := parseCLIArgs() - obsScanContainer, err := container.NewObscuroScanContainer(cliConfig) - if err != nil { - panic(err) - } - - err = obsScanContainer.Start() - if err != nil { - panic(err) - } - - sigCh := make(chan os.Signal, 1) - signal.Notify(sigCh, os.Interrupt) - - ctx, cancel := context.WithCancel(context.Background()) - - go func() { - oscall := <-sigCh - log.Printf("OS interrupt:%+v\n", oscall) - cancel() - }() - - <-ctx.Done() - - fmt.Println("Stopping server...") - go func() { - time.Sleep(5 * time.Second) - fmt.Println("Failed to stop after 5 seconds. Exiting.") - os.Exit(1) - }() - - err = obsScanContainer.Stop() - if err != nil { - fmt.Printf("failed to stop gracefully - %s\n", err) - os.Exit(1) - } - - // Graceful shutdown complete - os.Exit(0) -} diff --git a/tools/obscuroscan_v2/backend/config/config.go b/tools/obscuroscan_v2/backend/config/config.go deleted file mode 100644 index d169b15c89..0000000000 --- a/tools/obscuroscan_v2/backend/config/config.go +++ /dev/null @@ -1,7 +0,0 @@ -package config - -type Config struct { - NodeHostAddress string - ServerAddress string - LogPath string -} diff --git a/tools/obscuroscan_v2/backend/container/container.go b/tools/obscuroscan_v2/backend/container/container.go deleted file mode 100644 index 46bad11516..0000000000 --- a/tools/obscuroscan_v2/backend/container/container.go +++ /dev/null @@ -1,46 +0,0 @@ -package container - -import ( - "fmt" - - "github.com/obscuronet/go-obscuro/go/common/log" - "github.com/obscuronet/go-obscuro/go/obsclient" - "github.com/obscuronet/go-obscuro/go/rpc" - "github.com/obscuronet/go-obscuro/tools/obscuroscan_v2/backend" - "github.com/obscuronet/go-obscuro/tools/obscuroscan_v2/backend/config" - "github.com/obscuronet/go-obscuro/tools/obscuroscan_v2/backend/webserver" - - gethlog "github.com/ethereum/go-ethereum/log" -) - -type ObscuroScanContainer struct { - backend *backend.Backend - webServer *webserver.WebServer -} - -func NewObscuroScanContainer(config *config.Config) (*ObscuroScanContainer, error) { - client, err := rpc.NewNetworkClient(config.NodeHostAddress) - if err != nil { - return nil, fmt.Errorf("unable to connect to the obscuro node - %w", err) - } - - obsClient := obsclient.NewObsClient(client) - - scanBackend := backend.NewBackend(obsClient) - logger := log.New(log.ObscuroscanCmp, int(gethlog.LvlInfo), config.LogPath) - webServer := webserver.New(scanBackend, config.ServerAddress, logger) - - logger.Info("Created Obscuro Scan with the following: ", "args", config) - return &ObscuroScanContainer{ - backend: backend.NewBackend(obsClient), - webServer: webServer, - }, nil -} - -func (c *ObscuroScanContainer) Start() error { - return c.webServer.Start() -} - -func (c *ObscuroScanContainer) Stop() error { - return c.webServer.Stop() -} diff --git a/tools/obscuroscan_v2/backend/obscuroscan_backend.go b/tools/obscuroscan_v2/backend/obscuroscan_backend.go deleted file mode 100644 index d2df5cb46d..0000000000 --- a/tools/obscuroscan_v2/backend/obscuroscan_backend.go +++ /dev/null @@ -1,128 +0,0 @@ -package backend - -import ( - "crypto/aes" - "crypto/cipher" - "encoding/base64" - "fmt" - - "github.com/ethereum/go-ethereum/rlp" - "github.com/obscuronet/go-obscuro/go/common/compression" - "github.com/obscuronet/go-obscuro/go/enclave/crypto" - - "github.com/obscuronet/go-obscuro/go/common" - "github.com/obscuronet/go-obscuro/go/obsclient" - - gethcommon "github.com/ethereum/go-ethereum/common" -) - -type Backend struct { - obsClient *obsclient.ObsClient -} - -func NewBackend(obsClient *obsclient.ObsClient) *Backend { - return &Backend{ - obsClient: obsClient, - } -} - -func (b *Backend) GetLatestBatch() (*common.BatchHeader, error) { - return b.obsClient.BatchHeaderByNumber(nil) -} - -func (b *Backend) GetLatestRollup() (*common.RollupHeader, error) { - return &common.RollupHeader{}, nil -} - -func (b *Backend) GetNodeCount() (int, error) { - // return b.obsClient.ActiveNodeCount() - return 0, nil -} - -func (b *Backend) GetTotalContractCount() (int, error) { - return b.obsClient.GetTotalContractCount() -} - -func (b *Backend) GetTotalTransactionCount() (int, error) { - return b.obsClient.GetTotalTransactionCount() -} - -func (b *Backend) GetLatestRollupHeader() (*common.RollupHeader, error) { - return b.obsClient.GetLatestRollupHeader() -} - -func (b *Backend) GetBatchByHash(hash gethcommon.Hash) (*common.ExtBatch, error) { - return b.obsClient.BatchByHash(hash) -} - -func (b *Backend) GetBatchHeader(hash gethcommon.Hash) (*common.BatchHeader, error) { - return b.obsClient.BatchHeaderByHash(hash) -} - -func (b *Backend) GetTransaction(_ gethcommon.Hash) (*common.L2Tx, error) { - return nil, fmt.Errorf("unable to get encrypted Tx") -} - -func (b *Backend) GetPublicTransactions(offset uint64, size uint64) (*common.TransactionListingResponse, error) { - return b.obsClient.GetPublicTxListing(&common.QueryPagination{ - Offset: offset, - Size: uint(size), - }) -} - -func (b *Backend) GetBatchesListing(offset uint64, size uint64) (*common.BatchListingResponse, error) { - return b.obsClient.GetBatchesListing(&common.QueryPagination{ - Offset: offset, - Size: uint(size), - }) -} - -func (b *Backend) GetBlockListing(offset uint64, size uint64) (*common.BlockListingResponse, error) { - return b.obsClient.GetBlockListing(&common.QueryPagination{ - Offset: offset, - Size: uint(size), - }) -} - -func (b *Backend) DecryptTxBlob(payload string) ([]*common.L2Tx, error) { - encryptedTxBytes, err := base64.StdEncoding.DecodeString(payload) - if err != nil { - return nil, fmt.Errorf("could not decode encrypted transaction blob from Base64. Cause: %w", err) - } - - key := gethcommon.Hex2Bytes(crypto.RollupEncryptionKeyHex) - block, err := aes.NewCipher(key) - if err != nil { - return nil, fmt.Errorf("could not initialise AES cipher for enclave rollup key. Cause: %w", err) - } - transactionCipher, err := cipher.NewGCM(block) - if err != nil { - return nil, fmt.Errorf("could not initialise wrapper for AES cipher for enclave rollup key. Cause: %w", err) - } - - // The nonce is prepended to the ciphertext. - nonce := encryptedTxBytes[0:crypto.NonceLength] - ciphertext := encryptedTxBytes[crypto.NonceLength:] - compressedTxs, err := transactionCipher.Open(nil, nonce, ciphertext, nil) - if err != nil { - return nil, fmt.Errorf("could not decrypt encrypted L2 transactions. Cause: %w", err) - } - - compressionService := compression.NewBrotliDataCompressionService() - - encodedTxs, err := compressionService.Decompress(compressedTxs) - if err != nil { - return nil, fmt.Errorf("could not decompress L2 transactions. Cause: %w", err) - } - - var cleartextTxs []*common.L2Tx - if err = rlp.DecodeBytes(encodedTxs, &cleartextTxs); err != nil { - return nil, fmt.Errorf("could not decode encoded L2 transactions. Cause: %w", err) - } - - return cleartextTxs, nil -} - -func (b *Backend) GetConfig() (*common.ObscuroNetworkInfo, error) { - return b.obsClient.GetConfig() -} diff --git a/tools/obscuroscan_v2/backend/webserver/webserver.go b/tools/obscuroscan_v2/backend/webserver/webserver.go deleted file mode 100644 index b4e437e734..0000000000 --- a/tools/obscuroscan_v2/backend/webserver/webserver.go +++ /dev/null @@ -1,123 +0,0 @@ -package webserver - -import ( - "context" - "encoding/json" - "fmt" - "net/http" - "time" - - "github.com/ethereum/go-ethereum/log" - "github.com/gin-contrib/cors" - "github.com/gin-gonic/gin" - "github.com/obscuronet/go-obscuro/tools/obscuroscan_v2/backend" -) - -type WebServer struct { - engine *gin.Engine - backend *backend.Backend - bindAddress string - logger log.Logger - server *http.Server -} - -func New(backend *backend.Backend, bindAddress string, logger log.Logger) *WebServer { - r := gin.New() - r.RedirectTrailingSlash = false - gin.SetMode(gin.ReleaseMode) - - // todo this should be reviewed as anyone can access the api right now - config := cors.DefaultConfig() - config.AllowOrigins = []string{"*"} - config.AllowMethods = []string{"GET", "POST", "PUT", "DELETE"} - config.AllowHeaders = []string{"Origin", "Authorization", "Content-Type"} - r.Use(cors.New(config)) - - server := &WebServer{ - engine: r, - backend: backend, - bindAddress: bindAddress, - logger: logger, - } - - // routes - routeItems(r, server) - routeCounts(r, server) - - // todo group/format these into items, counts, actions - r.GET("/health/", server.health) - r.GET("/batchHeader/:hash", server.getBatchHeader) - r.GET("/tx/:hash", server.getTransaction) - r.POST("/actions/decryptTxBlob/", server.decryptTxBlob) - - return server -} - -func (w *WebServer) Start() error { - w.server = &http.Server{ - Addr: w.bindAddress, - Handler: w.engine, - ReadHeaderTimeout: 5 * time.Second, - } - - // Initializing the server in a goroutine so that - // it won't block the graceful shutdown handling - go func() { - w.logger.Info("Starting server on " + w.bindAddress) - println("Starting server on " + w.bindAddress) - if err := w.server.ListenAndServe(); err != nil && err != http.ErrServerClosed { - // todo don't panic - panic(err) - } - }() - - return nil -} - -func (w *WebServer) Stop() error { - // The context is used to inform the server it has 5 seconds to finish - // the request it is currently handling - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - - return w.server.Shutdown(ctx) -} - -func (w *WebServer) health(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{"healthy": true}) -} - -func (w *WebServer) decryptTxBlob(c *gin.Context) { - // Read the payload as a string - payloadBytes, err := c.GetRawData() - if err != nil { - c.JSON(400, gin.H{"error": "Failed to read payload"}) - return - } - - payload := PostData{} - err = json.Unmarshal(payloadBytes, &payload) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - result, err := w.backend.DecryptTxBlob(payload.StrData) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"result": result}) -} - -type PostData struct { - StrData string `json:"strData"` -} - -func errorHandler(c *gin.Context, err error, logger log.Logger) { - c.AbortWithStatusJSON(http.StatusInternalServerError, map[string]string{ - "error": err.Error(), - }) - logger.Error(err.Error()) -} diff --git a/tools/obscuroscan_v2/backend/webserver/webserver_routes_counts.go b/tools/obscuroscan_v2/backend/webserver/webserver_routes_counts.go deleted file mode 100644 index 21429fe950..0000000000 --- a/tools/obscuroscan_v2/backend/webserver/webserver_routes_counts.go +++ /dev/null @@ -1,33 +0,0 @@ -package webserver - -import ( - "fmt" - "net/http" - - "github.com/gin-gonic/gin" -) - -func routeCounts(r *gin.Engine, server *WebServer) { - r.GET("/count/contracts/", server.getTotalContractCount) - r.GET("/count/transactions/", server.getTotalTransactionCount) -} - -func (w *WebServer) getTotalContractCount(c *gin.Context) { - count, err := w.backend.GetTotalContractCount() - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"count": count}) -} - -func (w *WebServer) getTotalTransactionCount(c *gin.Context) { - count, err := w.backend.GetTotalTransactionCount() - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"count": count}) -} diff --git a/tools/obscuroscan_v2/backend/webserver/webserver_routes_items.go b/tools/obscuroscan_v2/backend/webserver/webserver_routes_items.go deleted file mode 100644 index 352d435a67..0000000000 --- a/tools/obscuroscan_v2/backend/webserver/webserver_routes_items.go +++ /dev/null @@ -1,161 +0,0 @@ -package webserver - -import ( - "fmt" - "net/http" - "strconv" - - gethcommon "github.com/ethereum/go-ethereum/common" - "github.com/gin-gonic/gin" -) - -func routeItems(r *gin.Engine, server *WebServer) { - r.GET("/items/batch/latest/", server.getLatestBatch) - r.GET("/items/rollup/latest/", server.getLatestRollupHeader) - r.GET("/items/batch/:hash", server.getBatch) - r.GET("/items/transactions/", server.getPublicTransactions) - r.GET("/items/batches/", server.getBatchListing) - r.GET("/items/blocks/", server.getBlockListing) - r.GET("/info/obscuro/", server.getConfig) -} - -func (w *WebServer) getLatestBatch(c *gin.Context) { - batch, err := w.backend.GetLatestBatch() - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"item": batch}) -} - -func (w *WebServer) getLatestRollupHeader(c *gin.Context) { - block, err := w.backend.GetLatestRollupHeader() - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"item": block}) -} - -func (w *WebServer) getBatch(c *gin.Context) { - hash := c.Param("hash") - parsedHash := gethcommon.HexToHash(hash) - batch, err := w.backend.GetBatchByHash(parsedHash) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"item": batch}) -} - -func (w *WebServer) getBatchHeader(c *gin.Context) { - hash := c.Param("hash") - parsedHash := gethcommon.HexToHash(hash) - batch, err := w.backend.GetBatchHeader(parsedHash) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"item": batch}) -} - -func (w *WebServer) getTransaction(c *gin.Context) { - hash := c.Param("hash") - parsedHash := gethcommon.HexToHash(hash) - batch, err := w.backend.GetTransaction(parsedHash) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"item": batch}) -} - -func (w *WebServer) getPublicTransactions(c *gin.Context) { - offsetStr := c.DefaultQuery("offset", "0") - sizeStr := c.DefaultQuery("size", "10") - - offset, err := strconv.ParseUint(offsetStr, 10, 32) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - parseUint, err := strconv.ParseUint(sizeStr, 10, 64) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - publicTxs, err := w.backend.GetPublicTransactions(offset, parseUint) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"result": publicTxs}) -} - -func (w *WebServer) getBatchListing(c *gin.Context) { - offsetStr := c.DefaultQuery("offset", "0") - sizeStr := c.DefaultQuery("size", "10") - - offset, err := strconv.ParseUint(offsetStr, 10, 32) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - parseUint, err := strconv.ParseUint(sizeStr, 10, 64) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - batchesListing, err := w.backend.GetBatchesListing(offset, parseUint) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"result": batchesListing}) -} - -func (w *WebServer) getBlockListing(c *gin.Context) { - offsetStr := c.DefaultQuery("offset", "0") - sizeStr := c.DefaultQuery("size", "10") - - offset, err := strconv.ParseUint(offsetStr, 10, 32) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - parseUint, err := strconv.ParseUint(sizeStr, 10, 64) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - batchesListing, err := w.backend.GetBlockListing(offset, parseUint) - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"result": batchesListing}) -} - -func (w *WebServer) getConfig(c *gin.Context) { - config, err := w.backend.GetConfig() - if err != nil { - errorHandler(c, fmt.Errorf("unable to execute request %w", err), w.logger) - return - } - - c.JSON(http.StatusOK, gin.H{"item": config}) -} diff --git a/tools/obscuroscan_v2/frontend/.eslintrc.cjs b/tools/obscuroscan_v2/frontend/.eslintrc.cjs deleted file mode 100644 index b64731a0fe..0000000000 --- a/tools/obscuroscan_v2/frontend/.eslintrc.cjs +++ /dev/null @@ -1,14 +0,0 @@ -/* eslint-env node */ -require('@rushstack/eslint-patch/modern-module-resolution') - -module.exports = { - root: true, - 'extends': [ - 'plugin:vue/vue3-essential', - 'eslint:recommended', - '@vue/eslint-config-prettier/skip-formatting' - ], - parserOptions: { - ecmaVersion: 'latest' - } -} diff --git a/tools/obscuroscan_v2/frontend/.gitignore b/tools/obscuroscan_v2/frontend/.gitignore deleted file mode 100644 index 38adffa64e..0000000000 --- a/tools/obscuroscan_v2/frontend/.gitignore +++ /dev/null @@ -1,28 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -.DS_Store -dist -dist-ssr -coverage -*.local - -/cypress/videos/ -/cypress/screenshots/ - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/tools/obscuroscan_v2/frontend/.prettierrc.json b/tools/obscuroscan_v2/frontend/.prettierrc.json deleted file mode 100644 index 66e23359c3..0000000000 --- a/tools/obscuroscan_v2/frontend/.prettierrc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/prettierrc", - "semi": false, - "tabWidth": 2, - "singleQuote": true, - "printWidth": 100, - "trailingComma": "none" -} \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/Dockerfile b/tools/obscuroscan_v2/frontend/Dockerfile deleted file mode 100644 index e37630ff7c..0000000000 --- a/tools/obscuroscan_v2/frontend/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM node:18-buster as runner -# setup container data structure -RUN mkdir -p /home/obscuro/go-obscuro/tools/obscuroscan_v2/ -COPY ./tools/obscuroscan_v2/frontend /home/obscuro/go-obscuro/tools/obscuroscan_v2/frontend - -WORKDIR /home/obscuro/go-obscuro/tools/obscuroscan_v2/frontend -RUN npm install && npm install http-server -g - -EXPOSE 80 \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/README.md b/tools/obscuroscan_v2/frontend/README.md deleted file mode 100644 index 31d6e8e9c2..0000000000 --- a/tools/obscuroscan_v2/frontend/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# frontend - -This template should help get you started developing with Vue 3 in Vite. - -## Customize configuration - -See [Vite Configuration Reference](https://vitejs.dev/config/). - -## Project Setup - -```sh -npm install -``` - -### Compile and Hot-Reload for Development - -```sh -npm run dev -``` - -### Compile and Minify for Production - -```sh -npm run build -``` - -### Lint with [ESLint](https://eslint.org/) - -```sh -npm run lint -``` diff --git a/tools/obscuroscan_v2/frontend/index.html b/tools/obscuroscan_v2/frontend/index.html deleted file mode 100644 index da8420a917..0000000000 --- a/tools/obscuroscan_v2/frontend/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - ObscuroScan - - - - - - - -
- - - diff --git a/tools/obscuroscan_v2/frontend/package-lock.json b/tools/obscuroscan_v2/frontend/package-lock.json index 9666556207..b5178d45c3 100644 --- a/tools/obscuroscan_v2/frontend/package-lock.json +++ b/tools/obscuroscan_v2/frontend/package-lock.json @@ -15,8 +15,7 @@ "pinia": "^2.1.4", "vue": "^3.3.4", "vue-json-pretty": "^2.2.4", - "vue-router": "^4.2.2", - "vue-timeago3": "^2.3.2" + "vue-router": "^4.2.2" }, "devDependencies": { "@rushstack/eslint-patch": "^1.2.0", @@ -43,9 +42,9 @@ "integrity": "sha512-0h+FrQDqe2Wn+IIGFkTCd4aAwTJ+7834Ek1COohCyV26AXhwQ7WQaz+4F/nLOeVl/3BtWHOHLPsq46V8YB46Eg==" }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", "bin": { "parser": "bin/babel-parser.js" }, @@ -53,17 +52,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@ctrl/tinycolor": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz", @@ -657,49 +645,49 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.7.tgz", - "integrity": "sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", "dependencies": { - "@babel/parser": "^7.23.0", - "@vue/shared": "3.3.7", + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.7.tgz", - "integrity": "sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", "dependencies": { - "@vue/compiler-core": "3.3.7", - "@vue/shared": "3.3.7" + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.7.tgz", - "integrity": "sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", "dependencies": { - "@babel/parser": "^7.23.0", - "@vue/compiler-core": "3.3.7", - "@vue/compiler-dom": "3.3.7", - "@vue/compiler-ssr": "3.3.7", - "@vue/reactivity-transform": "3.3.7", - "@vue/shared": "3.3.7", + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", - "magic-string": "^0.30.5", - "postcss": "^8.4.31", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.7.tgz", - "integrity": "sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", "dependencies": { - "@vue/compiler-dom": "3.3.7", - "@vue/shared": "3.3.7" + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/devtools-api": { @@ -722,60 +710,60 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.7.tgz", - "integrity": "sha512-cZNVjWiw00708WqT0zRpyAgduG79dScKEPYJXq2xj/aMtk3SKvL3FBt2QKUlh6EHBJ1m8RhBY+ikBUzwc7/khg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", "dependencies": { - "@vue/shared": "3.3.7" + "@vue/shared": "3.3.4" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.7.tgz", - "integrity": "sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", "dependencies": { - "@babel/parser": "^7.23.0", - "@vue/compiler-core": "3.3.7", - "@vue/shared": "3.3.7", + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", - "magic-string": "^0.30.5" + "magic-string": "^0.30.0" } }, "node_modules/@vue/runtime-core": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.7.tgz", - "integrity": "sha512-LHq9du3ubLZFdK/BP0Ysy3zhHqRfBn80Uc+T5Hz3maFJBGhci1MafccnL3rpd5/3wVfRHAe6c+PnlO2PAavPTQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", "dependencies": { - "@vue/reactivity": "3.3.7", - "@vue/shared": "3.3.7" + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/runtime-dom": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.7.tgz", - "integrity": "sha512-PFQU1oeJxikdDmrfoNQay5nD4tcPNYixUBruZzVX/l0eyZvFKElZUjW4KctCcs52nnpMGO6UDK+jF5oV4GT5Lw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", "dependencies": { - "@vue/runtime-core": "3.3.7", - "@vue/shared": "3.3.7", - "csstype": "^3.1.2" + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" } }, "node_modules/@vue/server-renderer": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.7.tgz", - "integrity": "sha512-UlpKDInd1hIZiNuVVVvLgxpfnSouxKQOSE2bOfQpBuGwxRV/JqqTCyyjXUWiwtVMyeRaZhOYYqntxElk8FhBhw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", "dependencies": { - "@vue/compiler-ssr": "3.3.7", - "@vue/shared": "3.3.7" + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" }, "peerDependencies": { - "vue": "3.3.7" + "vue": "3.3.4" } }, "node_modules/@vue/shared": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.7.tgz", - "integrity": "sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, "node_modules/@vueuse/core": { "version": "9.13.0", @@ -1065,21 +1053,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, "node_modules/dayjs": { "version": "1.11.9", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", @@ -1805,9 +1778,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -2048,9 +2021,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz", + "integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==", "funding": [ { "type": "opencollective", @@ -2157,11 +2130,6 @@ } ] }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -2421,23 +2389,15 @@ } }, "node_modules/vue": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.7.tgz", - "integrity": "sha512-YEMDia1ZTv1TeBbnu6VybatmSteGOS3A3YgfINOfraCbf85wdKHzscD6HSS/vB4GAtI7sa1XPX7HcQaJ1l24zA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", "dependencies": { - "@vue/compiler-dom": "3.3.7", - "@vue/compiler-sfc": "3.3.7", - "@vue/runtime-dom": "3.3.7", - "@vue/server-renderer": "3.3.7", - "@vue/shared": "3.3.7" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/vue-eslint-parser": { @@ -2490,17 +2450,6 @@ "vue": "^3.2.0" } }, - "node_modules/vue-timeago3": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/vue-timeago3/-/vue-timeago3-2.3.2.tgz", - "integrity": "sha512-yxb++H9ekLS8bSt3in7fMwIfW1ex9ceMYVCcfLiOppBYpp8hatlOTLqQyCmLXeDYB098uwgfnCewEPKVh/gi6A==", - "dependencies": { - "date-fns": "^2.28.0" - }, - "peerDependencies": { - "vue": "^3.3.6" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -2583,17 +2532,9 @@ "integrity": "sha512-0h+FrQDqe2Wn+IIGFkTCd4aAwTJ+7834Ek1COohCyV26AXhwQ7WQaz+4F/nLOeVl/3BtWHOHLPsq46V8YB46Eg==" }, "@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" - }, - "@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "requires": { - "regenerator-runtime": "^0.14.0" - } + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==" }, "@ctrl/tinycolor": { "version": "3.6.0", @@ -2922,49 +2863,49 @@ "requires": {} }, "@vue/compiler-core": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.7.tgz", - "integrity": "sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", "requires": { - "@babel/parser": "^7.23.0", - "@vue/shared": "3.3.7", + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "@vue/compiler-dom": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.7.tgz", - "integrity": "sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", "requires": { - "@vue/compiler-core": "3.3.7", - "@vue/shared": "3.3.7" + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" } }, "@vue/compiler-sfc": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.7.tgz", - "integrity": "sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", "requires": { - "@babel/parser": "^7.23.0", - "@vue/compiler-core": "3.3.7", - "@vue/compiler-dom": "3.3.7", - "@vue/compiler-ssr": "3.3.7", - "@vue/reactivity-transform": "3.3.7", - "@vue/shared": "3.3.7", + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", - "magic-string": "^0.30.5", - "postcss": "^8.4.31", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", "source-map-js": "^1.0.2" } }, "@vue/compiler-ssr": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.7.tgz", - "integrity": "sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", "requires": { - "@vue/compiler-dom": "3.3.7", - "@vue/shared": "3.3.7" + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" } }, "@vue/devtools-api": { @@ -2983,57 +2924,57 @@ } }, "@vue/reactivity": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.7.tgz", - "integrity": "sha512-cZNVjWiw00708WqT0zRpyAgduG79dScKEPYJXq2xj/aMtk3SKvL3FBt2QKUlh6EHBJ1m8RhBY+ikBUzwc7/khg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", "requires": { - "@vue/shared": "3.3.7" + "@vue/shared": "3.3.4" } }, "@vue/reactivity-transform": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.7.tgz", - "integrity": "sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", "requires": { - "@babel/parser": "^7.23.0", - "@vue/compiler-core": "3.3.7", - "@vue/shared": "3.3.7", + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", - "magic-string": "^0.30.5" + "magic-string": "^0.30.0" } }, "@vue/runtime-core": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.7.tgz", - "integrity": "sha512-LHq9du3ubLZFdK/BP0Ysy3zhHqRfBn80Uc+T5Hz3maFJBGhci1MafccnL3rpd5/3wVfRHAe6c+PnlO2PAavPTQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", "requires": { - "@vue/reactivity": "3.3.7", - "@vue/shared": "3.3.7" + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" } }, "@vue/runtime-dom": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.7.tgz", - "integrity": "sha512-PFQU1oeJxikdDmrfoNQay5nD4tcPNYixUBruZzVX/l0eyZvFKElZUjW4KctCcs52nnpMGO6UDK+jF5oV4GT5Lw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", "requires": { - "@vue/runtime-core": "3.3.7", - "@vue/shared": "3.3.7", - "csstype": "^3.1.2" + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" } }, "@vue/server-renderer": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.7.tgz", - "integrity": "sha512-UlpKDInd1hIZiNuVVVvLgxpfnSouxKQOSE2bOfQpBuGwxRV/JqqTCyyjXUWiwtVMyeRaZhOYYqntxElk8FhBhw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", "requires": { - "@vue/compiler-ssr": "3.3.7", - "@vue/shared": "3.3.7" + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" } }, "@vue/shared": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.7.tgz", - "integrity": "sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, "@vueuse/core": { "version": "9.13.0", @@ -3235,14 +3176,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, - "date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "requires": { - "@babel/runtime": "^7.21.0" - } - }, "dayjs": { "version": "1.11.9", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", @@ -3769,9 +3702,9 @@ } }, "magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", "requires": { "@jridgewell/sourcemap-codec": "^1.4.15" } @@ -3925,9 +3858,9 @@ } }, "postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz", + "integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==", "requires": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -3982,11 +3915,6 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -4133,15 +4061,15 @@ } }, "vue": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.7.tgz", - "integrity": "sha512-YEMDia1ZTv1TeBbnu6VybatmSteGOS3A3YgfINOfraCbf85wdKHzscD6HSS/vB4GAtI7sa1XPX7HcQaJ1l24zA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", "requires": { - "@vue/compiler-dom": "3.3.7", - "@vue/compiler-sfc": "3.3.7", - "@vue/runtime-dom": "3.3.7", - "@vue/server-renderer": "3.3.7", - "@vue/shared": "3.3.7" + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" } }, "vue-eslint-parser": { @@ -4173,14 +4101,6 @@ "@vue/devtools-api": "^6.5.0" } }, - "vue-timeago3": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/vue-timeago3/-/vue-timeago3-2.3.2.tgz", - "integrity": "sha512-yxb++H9ekLS8bSt3in7fMwIfW1ex9ceMYVCcfLiOppBYpp8hatlOTLqQyCmLXeDYB098uwgfnCewEPKVh/gi6A==", - "requires": { - "date-fns": "^2.28.0" - } - }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/tools/obscuroscan_v2/frontend/package.json b/tools/obscuroscan_v2/frontend/package.json index 3b9b41c0c2..0e99f9267b 100644 --- a/tools/obscuroscan_v2/frontend/package.json +++ b/tools/obscuroscan_v2/frontend/package.json @@ -19,8 +19,7 @@ "pinia": "^2.1.4", "vue": "^3.3.4", "vue-json-pretty": "^2.2.4", - "vue-router": "^4.2.2", - "vue-timeago3": "^2.3.2" + "vue-router": "^4.2.2" }, "devDependencies": { "@rushstack/eslint-patch": "^1.2.0", diff --git a/tools/obscuroscan_v2/frontend/public/favicon-32x32.png b/tools/obscuroscan_v2/frontend/public/favicon-32x32.png deleted file mode 100644 index ec512be020..0000000000 Binary files a/tools/obscuroscan_v2/frontend/public/favicon-32x32.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/App.vue b/tools/obscuroscan_v2/frontend/src/App.vue index 6cf70e1449..2466145094 100644 --- a/tools/obscuroscan_v2/frontend/src/App.vue +++ b/tools/obscuroscan_v2/frontend/src/App.vue @@ -40,16 +40,4 @@ export default { .bot-bar { background:black; } - -.nav-bar-header { - margin: 0; - padding: 0; - filter:drop-shadow(0px 1vh 1vh #E1E1E1); -} - -.main-content { - display: flex; - flex-direction: column; - gap: 12px; -} diff --git a/tools/obscuroscan_v2/frontend/src/assets/base.css b/tools/obscuroscan_v2/frontend/src/assets/base.css new file mode 100644 index 0000000000..d3de42ec96 --- /dev/null +++ b/tools/obscuroscan_v2/frontend/src/assets/base.css @@ -0,0 +1,73 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: color 0.5s, background-color 0.5s; + line-height: 1.6; + font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, + Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/github-mark-white.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/github-mark-white.png deleted file mode 100644 index 50b8175227..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/github-mark-white.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/github_logo.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/github_logo.png deleted file mode 100644 index 3a4c6bd02b..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/github_logo.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_contracts.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_contracts.png deleted file mode 100644 index d22f56f573..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_contracts.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_ethereum.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_ethereum.png deleted file mode 100644 index c94b2857e9..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_ethereum.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_l1_rollup.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_l1_rollup.png deleted file mode 100644 index 780575ecdb..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_l1_rollup.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_l2_batch.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_l2_batch.png deleted file mode 100644 index 780575ecdb..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_l2_batch.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_metamask.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_metamask.png deleted file mode 100644 index 9696ef127e..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_metamask.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_nodes.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_nodes.png deleted file mode 100644 index c41d108cfc..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_nodes.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_transactions.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_transactions.png deleted file mode 100644 index d22f56f573..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/icon_transactions.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/obscuro.svg b/tools/obscuroscan_v2/frontend/src/assets/imgs/obscuro.svg new file mode 100644 index 0000000000..52e7a3e01e --- /dev/null +++ b/tools/obscuroscan_v2/frontend/src/assets/imgs/obscuro.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/obscuro_black.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/obscuro_black.png deleted file mode 100644 index b9a7143b30..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/obscuro_black.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/obscuro_black_transparent.svg b/tools/obscuroscan_v2/frontend/src/assets/imgs/obscuro_black_transparent.svg deleted file mode 100644 index 1a254c4f84..0000000000 --- a/tools/obscuroscan_v2/frontend/src/assets/imgs/obscuro_black_transparent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/src/assets/imgs/twitter_logo.png b/tools/obscuroscan_v2/frontend/src/assets/imgs/twitter_logo.png deleted file mode 100644 index 26b539417b..0000000000 Binary files a/tools/obscuroscan_v2/frontend/src/assets/imgs/twitter_logo.png and /dev/null differ diff --git a/tools/obscuroscan_v2/frontend/src/assets/main.css b/tools/obscuroscan_v2/frontend/src/assets/main.css index 194ab74543..a2ff76f1c9 100644 --- a/tools/obscuroscan_v2/frontend/src/assets/main.css +++ b/tools/obscuroscan_v2/frontend/src/assets/main.css @@ -1,47 +1,7 @@ -:root { - /* Neutral gray colors */ - --obs-bg-color: #f5f5f5; - --obs-text-color: #333333; - - /* Colors from the Obscuro palette */ - --obs-primary: #96DECD; - --obs-secondary: #969DDE; - --obs-color-3: #C896DE; - --obs-color-4: #96C8DE; - --obs-tertiary: #5973B8; - --el-menu-hover-text-color: #5973B8 !important; - --el-menu-hover-bg-color: #f5f5f5 !important; -} - -body { - margin: 0; - padding: 0; - font-size: 16px; - line-height: 1.5; - font-family: Inter,BlinkMacSystemFont,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif; - font-weight: 400; - color: #333333; /* a dark grey that complements obscuro color pallette */ - background-color: var(--obs-bg-color); -} +@import './base.css'; #app { font-weight: normal; - background-color: var(--obs-bg-color); - color: var(--obs-text-color); - font-family: Inter,BlinkMacSystemFont,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif; } -.obs-link-button { - color: var(--obs-text-color); - background-color: transparent; -} - -.obs-link-button:hover { - color: var(--obs-tertiary) !important; - background-color: transparent !important; - border-color: var(--obs-tertiary) !important; -} -.obs-container-card { - border-radius: 12px; -} \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/src/components/BatchDataGrid.vue b/tools/obscuroscan_v2/frontend/src/components/BatchDataGrid.vue index 17727871ec..608db99a57 100644 --- a/tools/obscuroscan_v2/frontend/src/components/BatchDataGrid.vue +++ b/tools/obscuroscan_v2/frontend/src/components/BatchDataGrid.vue @@ -1,52 +1,50 @@ diff --git a/tools/obscuroscan_v2/frontend/src/components/BlocksDataGrid.vue b/tools/obscuroscan_v2/frontend/src/components/BlocksDataGrid.vue index 5f88a6bcc1..591c28675b 100644 --- a/tools/obscuroscan_v2/frontend/src/components/BlocksDataGrid.vue +++ b/tools/obscuroscan_v2/frontend/src/components/BlocksDataGrid.vue @@ -1,40 +1,42 @@ - - \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/src/components/MetaMaskConnectButton.vue b/tools/obscuroscan_v2/frontend/src/components/MetaMaskConnectButton.vue index 028b88b1a1..4a1bf18ef9 100644 --- a/tools/obscuroscan_v2/frontend/src/components/MetaMaskConnectButton.vue +++ b/tools/obscuroscan_v2/frontend/src/components/MetaMaskConnectButton.vue @@ -1,5 +1,5 @@ diff --git a/tools/obscuroscan_v2/frontend/src/components/RecentRollupsTable.vue b/tools/obscuroscan_v2/frontend/src/components/RecentRollupsTable.vue deleted file mode 100644 index aba0680bab..0000000000 --- a/tools/obscuroscan_v2/frontend/src/components/RecentRollupsTable.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - - \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/src/components/RotatingBatchesItem.vue b/tools/obscuroscan_v2/frontend/src/components/RotatingBatchesItem.vue index a6d2a2bd5e..294cd3355a 100644 --- a/tools/obscuroscan_v2/frontend/src/components/RotatingBatchesItem.vue +++ b/tools/obscuroscan_v2/frontend/src/components/RotatingBatchesItem.vue @@ -1,20 +1,16 @@ \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/src/components/RotatingRollupsItem.vue b/tools/obscuroscan_v2/frontend/src/components/RotatingRollupsItem.vue deleted file mode 100644 index 3ade490d46..0000000000 --- a/tools/obscuroscan_v2/frontend/src/components/RotatingRollupsItem.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - - - \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/src/components/SearchBarItem.vue b/tools/obscuroscan_v2/frontend/src/components/SearchBarItem.vue deleted file mode 100644 index 16159ba87f..0000000000 --- a/tools/obscuroscan_v2/frontend/src/components/SearchBarItem.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - - \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/src/components/SummaryItem.vue b/tools/obscuroscan_v2/frontend/src/components/SummaryItem.vue index e19e1a76c5..3ef5d95734 100644 --- a/tools/obscuroscan_v2/frontend/src/components/SummaryItem.vue +++ b/tools/obscuroscan_v2/frontend/src/components/SummaryItem.vue @@ -1,49 +1,140 @@ diff --git a/tools/obscuroscan_v2/frontend/src/components/SummaryRollupsListItem.vue b/tools/obscuroscan_v2/frontend/src/components/SummaryRollupsListItem.vue new file mode 100644 index 0000000000..9f6f4c007b --- /dev/null +++ b/tools/obscuroscan_v2/frontend/src/components/SummaryRollupsListItem.vue @@ -0,0 +1,53 @@ + + + + + \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/src/components/SummaryRow.vue b/tools/obscuroscan_v2/frontend/src/components/SummaryRow.vue deleted file mode 100644 index 6b107c5cf1..0000000000 --- a/tools/obscuroscan_v2/frontend/src/components/SummaryRow.vue +++ /dev/null @@ -1,97 +0,0 @@ - - - - - diff --git a/tools/obscuroscan_v2/frontend/src/components/VerifiedContractsDataGrid.vue b/tools/obscuroscan_v2/frontend/src/components/VerifiedContractsDataGrid.vue deleted file mode 100644 index e9f03cbafa..0000000000 --- a/tools/obscuroscan_v2/frontend/src/components/VerifiedContractsDataGrid.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - - - \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/src/components/helper/BatchInfoWindow.vue b/tools/obscuroscan_v2/frontend/src/components/helper/BatchInfoWindow.vue deleted file mode 100644 index 2589c984f0..0000000000 --- a/tools/obscuroscan_v2/frontend/src/components/helper/BatchInfoWindow.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - \ No newline at end of file diff --git a/tools/obscuroscan_v2/frontend/src/components/helper/CopyButton.vue b/tools/obscuroscan_v2/frontend/src/components/helper/CopyButton.vue deleted file mode 100644 index f2a0dd6bb2..0000000000 --- a/tools/obscuroscan_v2/frontend/src/components/helper/CopyButton.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - - - diff --git a/tools/obscuroscan_v2/frontend/src/components/helper/ShortenedHash.vue b/tools/obscuroscan_v2/frontend/src/components/helper/ShortenedHash.vue index a2eb89805d..87d5092bac 100644 --- a/tools/obscuroscan_v2/frontend/src/components/helper/ShortenedHash.vue +++ b/tools/obscuroscan_v2/frontend/src/components/helper/ShortenedHash.vue @@ -1,5 +1,5 @@