Skip to content

AST - #6

Merged
jacxas merged 7 commits into
devin/1777362210-unify-a-suitefrom
master
Jul 31, 2026
Merged

AST#6
jacxas merged 7 commits into
devin/1777362210-unify-a-suitefrom
master

Conversation

@jacxas

@jacxas jacxas commented Jul 26, 2026

Copy link
Copy Markdown
Owner

AST UNO

Summary by Sourcery

Introduce CI, deployment, and hosting configuration for contracts and frontend while switching token assets to optimized formats.

Enhancements:

  • Update frontend token image references to use WebP assets for on-chain tokens.

Build:

  • Add Netlify configuration for building and serving the frontend with SPA routing and long-term caching for static assets.

CI:

  • Add contracts CI workflow to compile, test, run coverage, and perform Slither static analysis on smart contracts.
  • Add frontend CI workflow to build the Vite app and optionally run ESLint on pushes and pull requests.

Deployment:

  • Add a GitHub Actions workflow to deploy smart contracts to Sepolia on manual dispatch or tagged releases.

Documentation:

  • Document required GitHub Actions secrets and environments in a new SECRETS guide.

Chores:

  • Add WebP token image files to the frontend public assets.

devin-ai-integration Bot and others added 6 commits July 8, 2026 19:50
…assets de los 10 tokens (#1)

* feat: unify A-Suite ecosystem — integrate exchange, token specs, gallery and assets

- Add 10 token images to frontend/public/tokens/ (from deaboard repo)
- Create shared token data file (frontend/src/data/tokens.js) with specs for all 10 tokens
- Add Exchange page: live market dashboard with simulated data for all tokens
- Add TokenSpecs page: technical documentation (architecture, risks, mitigations) with CSV export
- Add Gallery page: visual asset gallery with lightbox viewer
- Update Layout navigation and rename brand to A-Suite Crypto
- Update README with unified project documentation

Consolidates content from deaboard, desboard-token, and Supabase-google-blockchain-web3-project repos.

Co-Authored-By: JAVIER CASTRO <jacxas@gmail.com>

* fix: address review comments — bounded change24h, CSV escaping, shared constants

- Fix change24h accumulating unboundedly by computing relative to basePrice
- Add proper CSV escaping for fields containing commas/quotes/newlines
- Extract SERIES_COLORS, SERIES_BADGE_CLASSES, TYPE_ICONS to shared constants.js
- Use shared constants in TokenSpecs and Gallery pages

Co-Authored-By: JAVIER CASTRO <jacxas@gmail.com>

* fix: make initial change24h consistent with actual price deviation

Co-Authored-By: JAVIER CASTRO <jacxas@gmail.com>

* Fix volume24h to fluctuate instead of growing monotonically

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: JAVIER CASTRO <jacxas@gmail.com>
Updated build command and output directory for Vercel.
@netlify

netlify Bot commented Jul 26, 2026

Copy link
Copy Markdown

Deploy Preview for cryptoysuite failed.

Name Link
🔨 Latest commit 1bc09af
🔍 Latest deploy log https://app.netlify.com/projects/cryptoysuite/deploys/6a658d7a9564650008ec02d9

@vercel

vercel Bot commented Jul 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
crypto-suite Error Error Jul 26, 2026 4:30am
crypto-suite-w9qw Error Error Jul 26, 2026 4:30am

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b6f2e01b82

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/contracts-ci.yml
Comment thread vercel.json
Comment thread frontend/public/tokens/agov.webp
Comment thread .github/workflows/deploy-sepolia.yml
@jacxas
jacxas marked this pull request as ready for review July 26, 2026 04:32
@sourcery-ai

sourcery-ai Bot commented Jul 26, 2026

Copy link
Copy Markdown

🧙 Sourcery is reviewing your pull request!


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Add CI/CD workflows, hosting config, and WebP token assets

✨ Enhancement ⚙️ Configuration changes 📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Add GitHub Actions CI for contracts and frontend builds/linting.
• Introduce manual/tag-based Sepolia deploy workflow with required secrets.
• Add WebP token assets and update token metadata to use them.
Diagram

graph TD
  D["Developer"] --> GA["GitHub Actions"] --> CCI["Contracts CI"] --> ART["Artifacts (ABIs/Coverage)"]
  GA --> DEP["Deploy Sepolia"] --> EXT["Sepolia RPC & Etherscan"]
  GA --> FCI["Frontend CI"] --> HOST["Hosting (Netlify/Vercel)"] --> AS["Token assets + tokens.js"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Reusable GitHub Actions workflow + composite actions
  • ➕ Reduces duplication (Node setup/install steps repeated across jobs)
  • ➕ Easier to standardize caching and Node version changes
  • ➖ Adds indirection; harder to debug initially
  • ➖ Overkill if workflows remain small and stable
2. Single deploy pipeline gated by release + environment protections
  • ➕ Clearer promotion path (e.g., staging → sepolia) using environments
  • ➕ Less chance of accidental deploys vs. tag patterns + manual triggers
  • ➖ Requires more repo governance (release process discipline)
  • ➖ May slow iteration early in the project

Recommendation: The PR’s approach (separate targeted workflows with path filters + an environment-gated Sepolia deploy) is a sensible baseline for early CI/CD. If these pipelines grow (more networks/contracts/frontends), consider extracting common Node/install/caching steps into reusable workflows or composite actions to keep maintenance cost low.

Files changed (17) +377 / -7

Enhancement (11) +18 / -5
a1gov.webpAdd token image asset (A1GOV, WebP) +1/-0

Add token image asset (A1GOV, WebP)

• Adds a new WebP token image under the public tokens directory for frontend consumption.

frontend/public/tokens/a1gov.webp

a1pay.webpAdd token image asset (A1PAY, WebP) +1/-0

Add token image asset (A1PAY, WebP)

• Adds a new WebP token image under the public tokens directory for frontend consumption.

frontend/public/tokens/a1pay.webp

a1uti.webpAdd token image asset (A1UTI, WebP) +1/-0

Add token image asset (A1UTI, WebP)

• Adds a new WebP token image under the public tokens directory for frontend consumption.

frontend/public/tokens/a1uti.webp

agov.webpAdd token image asset (AGOV, WebP) +1/-0

Add token image asset (AGOV, WebP)

• Adds a new WebP token image under the public tokens directory for frontend consumption.

frontend/public/tokens/agov.webp

apay.webpAdd token image asset (APAY, WebP) +1/-0

Add token image asset (APAY, WebP)

• Adds a new WebP token image under the public tokens directory for frontend consumption.

frontend/public/tokens/apay.webp

ares.webpAdd token image asset (ARES, WebP) +1/-0

Add token image asset (ARES, WebP)

• Adds a new WebP token image under the public tokens directory for frontend consumption.

frontend/public/tokens/ares.webp

auti.webpAdd token image asset (AUTI, WebP) +1/-0

Add token image asset (AUTI, WebP)

• Adds a new WebP token image under the public tokens directory for frontend consumption.

frontend/public/tokens/auti.webp

axgov.webpAdd token image asset (AXGOV, WebP) +1/-0

Add token image asset (AXGOV, WebP)

• Adds a new WebP token image under the public tokens directory for frontend consumption.

frontend/public/tokens/axgov.webp

axpay.webpAdd token image asset (AXPAY, WebP) +1/-0

Add token image asset (AXPAY, WebP)

• Adds a new WebP token image under the public tokens directory for frontend consumption.

frontend/public/tokens/axpay.webp

axres.webpAdd token image asset (AXRES, WebP) +1/-0

Add token image asset (AXRES, WebP)

• Adds a new WebP token image under the public tokens directory for frontend consumption.

frontend/public/tokens/axres.webp

tokens.jsSwitch token metadata images to WebP paths +8/-5

Switch token metadata images to WebP paths

• Updates token definitions to point at newly added .webp assets. Ensures the token catalog references the correct static paths served by the frontend.

frontend/src/data/tokens.js

Documentation (1) +35 / -0
SECRETS.mdDocument required GitHub Actions secrets for Sepolia + frontend +35/-0

Document required GitHub Actions secrets for Sepolia + frontend

• Adds a repo guide listing required/optional secrets for workflows, where they are used, and how to obtain them. Documents using the GitHub Actions environment named "sepolia" and warns against committing private keys.

.github/SECRETS.md

Other (5) +324 / -2
contracts-ci.ymlAdd contracts CI pipeline (test, coverage, Slither SARIF) +127/-0

Add contracts CI pipeline (test, coverage, Slither SARIF)

• Introduces a contracts-focused GitHub Actions workflow triggered by pushes/PRs affecting Hardhat sources. Runs compile/tests, generates coverage, runs Slither with SARIF upload, and publishes artifacts.

.github/workflows/contracts-ci.yml

deploy-sepolia.ymlAdd manual/tag-based Sepolia deploy workflow with dry-run option +86/-0

Add manual/tag-based Sepolia deploy workflow with dry-run option

• Adds a deploy workflow that can be triggered manually (contract selector + dry-run) or via version tags. Compiles and tests before deploy, uses the "sepolia" environment, and wires required secrets for RPC/private key/Etherscan.

.github/workflows/deploy-sepolia.yml

frontend-ci.ymlAdd frontend CI (Vite build + optional ESLint) +81/-0

Add frontend CI (Vite build + optional ESLint)

• Adds a workflow running on frontend path changes to build the Vite app and upload dist artifacts. Includes a lint job that warns instead of failing when ESLint is not configured.

.github/workflows/frontend-ci.yml

netlify.tomlAdd Netlify build + caching headers for SPA and token assets +27/-0

Add Netlify build + caching headers for SPA and token assets

• Defines Netlify build base/command/publish settings for the frontend, adds SPA redirect to index.html, and configures long-lived cache headers for tokens and JS/CSS bundles.

netlify.toml

vercel.jsonAlign Vercel config to Vite schema and dist output +3/-2

Align Vercel config to Vite schema and dist output

• Adds the Vercel JSON schema reference and updates build/output settings to use the dist directory. Keeps SPA rewrites so routes resolve correctly.

vercel.json

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Add GitHub Actions CI/deploy workflows and switch token assets to WEBP

✨ Enhancement ⚙️ Configuration changes 📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Add GitHub Actions workflows for contracts CI, frontend CI, and Sepolia deployments.
• Document required GitHub Actions secrets and Sepolia environment setup.
• Add token WEBP assets and update frontend token metadata to reference them.
Diagram

graph TD
  Dev(("Push / PR")) --> ContractsCI["contracts-ci.yml"] --> Hardhat["Hardhat: compile/test/coverage"] --> Artifacts[("Artifacts / Reports")]
  Dev --> FrontendCI["frontend-ci.yml"] --> Vite["Vite: build/lint"] --> Artifacts
  Release(("Tag / Manual")) --> Deploy["deploy-sepolia.yml"] --> Sepolia[("Sepolia RPC + Etherscan")]
  Hosting["netlify.toml / vercel.json"] --> Vite

  subgraph Legend
    direction LR
    _trig(("Trigger")) ~~~ _proc["Workflow/Process"] ~~~ _ext[("External/Output")]
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Extract shared CI steps into a reusable workflow
  • ➕ Reduces duplication across workflows (Node setup, install, caching).
  • ➕ Makes future changes (Node version, install strategy) less error-prone.
  • ➖ Adds indirection; reviewers must jump between files to understand behavior.
  • ➖ Small repos may not benefit enough to justify the extra structure.
2. Use npm ci consistently (frontend uses npm install today)
  • ➕ More deterministic builds; aligns with contracts workflow behavior.
  • ➕ Typically faster and better suited for CI.
  • ➖ Requires a committed lockfile and may break if lockfile is stale.
  • ➖ May require updates to contributor workflow if lockfile changes often.

Recommendation: The overall approach (separate workflows per domain + a gated Sepolia deploy) is appropriate. Consider factoring out shared steps into a reusable workflow only if CI evolves further, and align the frontend workflow to use npm ci for reproducibility if the repo maintains a stable lockfile.

Files changed (17) +377 / -7

Enhancement (11) +18 / -5
a1gov.webpAdd token image asset: A1GOV (WEBP) +1/-0

Add token image asset: A1GOV (WEBP)

• Adds a WEBP token image under the public token assets directory for use by the frontend.

frontend/public/tokens/a1gov.webp

a1pay.webpAdd token image asset: A1PAY (WEBP) +1/-0

Add token image asset: A1PAY (WEBP)

• Adds a WEBP token image under the public token assets directory for use by the frontend.

frontend/public/tokens/a1pay.webp

a1uti.webpAdd token image asset: A1UTI (WEBP) +1/-0

Add token image asset: A1UTI (WEBP)

• Adds a WEBP token image under the public token assets directory for use by the frontend.

frontend/public/tokens/a1uti.webp

agov.webpAdd token image asset: AGOV (WEBP) +1/-0

Add token image asset: AGOV (WEBP)

• Adds a WEBP token image under the public token assets directory for use by the frontend.

frontend/public/tokens/agov.webp

apay.webpAdd token image asset: APAY (WEBP) +1/-0

Add token image asset: APAY (WEBP)

• Adds a WEBP token image under the public token assets directory for use by the frontend.

frontend/public/tokens/apay.webp

ares.webpAdd token image asset: ARES (WEBP) +1/-0

Add token image asset: ARES (WEBP)

• Adds a WEBP token image under the public token assets directory for use by the frontend.

frontend/public/tokens/ares.webp

auti.webpAdd token image asset: AUTI (WEBP) +1/-0

Add token image asset: AUTI (WEBP)

• Adds a WEBP token image under the public token assets directory for use by the frontend.

frontend/public/tokens/auti.webp

axgov.webpAdd token image asset: AXGOV (WEBP) +1/-0

Add token image asset: AXGOV (WEBP)

• Adds a WEBP token image under the public token assets directory for use by the frontend.

frontend/public/tokens/axgov.webp

axpay.webpAdd token image asset: AXPAY (WEBP) +1/-0

Add token image asset: AXPAY (WEBP)

• Adds a WEBP token image under the public token assets directory for use by the frontend.

frontend/public/tokens/axpay.webp

axres.webpAdd token image asset: AXRES (WEBP) +1/-0

Add token image asset: AXRES (WEBP)

• Adds a WEBP token image under the public token assets directory for use by the frontend.

frontend/public/tokens/axres.webp

tokens.jsPoint token metadata at WEBP images +8/-5

Point token metadata at WEBP images

• Updates token entries to reference WEBP assets instead of JPG. Note: some entries appear to keep both 'img' keys (WEBP and JPG), and in JavaScript the latter will override the former.

frontend/src/data/tokens.js

Documentation (1) +35 / -0
SECRETS.mdDocument required GitHub Actions secrets for CI/deploy +35/-0

Document required GitHub Actions secrets for CI/deploy

• Adds a reference guide for required/optional repository secrets and how to obtain them. Documents the required GitHub environment setup for the Sepolia deploy workflow and warns against committing private keys.

.github/SECRETS.md

Other (5) +324 / -2
contracts-ci.ymlAdd contracts CI: test, coverage, and Slither analysis +127/-0

Add contracts CI: test, coverage, and Slither analysis

• Introduces a workflow that compiles and tests contracts, generates a coverage report, and runs Slither static analysis (non-blocking while findings are tuned). Uploads artifacts (ABIs, coverage, SARIF) for inspection and GitHub Security integration.

.github/workflows/contracts-ci.yml

deploy-sepolia.ymlAdd gated Sepolia deployment workflow with dry-run mode +86/-0

Add gated Sepolia deployment workflow with dry-run mode

• Creates a manual/tag-triggered deploy workflow targeting the sepolia environment. Runs compile/tests before deploy, supports a dry-run option, and uploads deployment artifacts; verification is scaffolded for later enablement.

.github/workflows/deploy-sepolia.yml

frontend-ci.ymlAdd frontend CI for Vite build and optional ESLint +81/-0

Add frontend CI for Vite build and optional ESLint

• Adds a workflow to build the frontend from the frontend/ directory with minimal env vars for Vite. Runs an ESLint step in parallel but allows it to continue-on-error until configuration is added.

.github/workflows/frontend-ci.yml

netlify.tomlAdd Netlify build/publish config and cache headers +27/-0

Add Netlify build/publish config and cache headers

• Defines Netlify build settings to build the Vite frontend and publish dist/. Adds SPA redirect handling and long-lived cache headers for token images and static JS/CSS assets.

netlify.toml

vercel.jsonAlign Vercel config with Vite schema and output directory +3/-2

Align Vercel config with Vite schema and output directory

• Adds the Vercel JSON schema reference and updates build/output settings to run 'npm run build' and emit 'dist/' at the project root, consistent with the configured Vite framework.

vercel.json

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1bc09af378

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread frontend/src/data/tokens.js
@jacxas
jacxas merged commit cec205b into devin/1777362210-unify-a-suite Jul 31, 2026
1 of 9 checks passed
jacxas added a commit that referenced this pull request Jul 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant