From faa4658e90ddd2f87ef211273f9b74ee63bc9e76 Mon Sep 17 00:00:00 2001 From: jin860315 Date: Mon, 27 Jul 2026 11:37:38 +0800 Subject: [PATCH 1/9] chore: add weekly Cardano token icon sync workflow Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/sync-cardano-icons.yml | 69 ++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/sync-cardano-icons.yml diff --git a/.github/workflows/sync-cardano-icons.yml b/.github/workflows/sync-cardano-icons.yml new file mode 100644 index 0000000000000..296966b46ddd9 --- /dev/null +++ b/.github/workflows/sync-cardano-icons.yml @@ -0,0 +1,69 @@ +name: Sync Cardano Token Icons + +on: + # schedule: + # - cron: '0 3 * * 1' # every Monday 03:00 UTC + # workflow_dispatch: + push: + branches: + - "chore/sync-ada-token-action" + + +permissions: + contents: write + pull-requests: write + +jobs: + sync: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Clone Cardano token registry + run: git clone --depth=1 https://github.com/cardano-foundation/cardano-token-registry.git /tmp/ctr + + - uses: actions/setup-node@v4 + with: + node-version: '20' + cache: npm + cache-dependency-path: scripts/cardano-icon-sync/package-lock.json + + - name: Install dependencies + working-directory: scripts/cardano-icon-sync + run: npm ci + + - name: Run sync + run: | + node scripts/cardano-icon-sync/sync-cardano-token-icons.js \ + --registry /tmp/ctr \ + --out . \ + | tee /tmp/sync-stats.txt + + - name: Check for changes + id: diff + run: | + count=$(git status --short -- blockchains/cardano/assets/ | wc -l | tr -d ' ') + echo "count=$count" >> $GITHUB_OUTPUT + + - name: Commit, push, open PR + if: steps.diff.outputs.count != '0' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + DATE=$(date -u +%Y-%m-%d) + BRANCH="chore/cardano-icon-sync-${DATE}" + + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git checkout -b "$BRANCH" + git add -- blockchains/cardano/assets/ + git commit -m "chore: weekly Cardano token icon sync ${DATE}" + git push origin "$BRANCH" + + STATS=$(cat /tmp/sync-stats.txt) + gh pr create \ + --title "chore: weekly Cardano token icon sync ${DATE}" \ + --base master \ + --head "$BRANCH" \ + --body "## Cardano icon sync — ${DATE} From 582c45bbe0c953e624f0ab31cec26440817aa80b Mon Sep 17 00:00:00 2001 From: jin860315 Date: Mon, 27 Jul 2026 11:43:39 +0800 Subject: [PATCH 2/9] chore: add workflow_dispatch inputs for testing (limit, overwrite) Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/sync-cardano-icons.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync-cardano-icons.yml b/.github/workflows/sync-cardano-icons.yml index 296966b46ddd9..861c5782ce2cf 100644 --- a/.github/workflows/sync-cardano-icons.yml +++ b/.github/workflows/sync-cardano-icons.yml @@ -3,10 +3,20 @@ name: Sync Cardano Token Icons on: # schedule: # - cron: '0 3 * * 1' # every Monday 03:00 UTC - # workflow_dispatch: - push: + push: branches: - "chore/sync-ada-token-action" + workflow_dispatch: + inputs: + limit: + description: 'Max icons to write (leave empty for unlimited)' + required: false + default: '' + overwrite: + description: 'Overwrite existing icons' + required: false + type: boolean + default: false permissions: @@ -35,9 +45,13 @@ jobs: - name: Run sync run: | + EXTRA_FLAGS="" + if [ -n "${{ inputs.limit }}" ]; then EXTRA_FLAGS="$EXTRA_FLAGS --limit ${{ inputs.limit }}"; fi + if [ "${{ inputs.overwrite }}" = "true" ]; then EXTRA_FLAGS="$EXTRA_FLAGS --overwrite"; fi node scripts/cardano-icon-sync/sync-cardano-token-icons.js \ --registry /tmp/ctr \ --out . \ + $EXTRA_FLAGS \ | tee /tmp/sync-stats.txt - name: Check for changes From c491acdade8f469f08cac81cbe9dbee5e53738f8 Mon Sep 17 00:00:00 2001 From: jin860315 Date: Mon, 27 Jul 2026 11:52:40 +0800 Subject: [PATCH 3/9] chore: simplify sync workflow trigger and checkout Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/sync-cardano-icons.yml | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/.github/workflows/sync-cardano-icons.yml b/.github/workflows/sync-cardano-icons.yml index 861c5782ce2cf..c50715fa44385 100644 --- a/.github/workflows/sync-cardano-icons.yml +++ b/.github/workflows/sync-cardano-icons.yml @@ -6,18 +6,6 @@ on: push: branches: - "chore/sync-ada-token-action" - workflow_dispatch: - inputs: - limit: - description: 'Max icons to write (leave empty for unlimited)' - required: false - default: '' - overwrite: - description: 'Overwrite existing icons' - required: false - type: boolean - default: false - permissions: contents: write @@ -29,6 +17,8 @@ jobs: steps: - uses: actions/checkout@v4 + with: + ref: chore/sync-ada-token-action - name: Clone Cardano token registry run: git clone --depth=1 https://github.com/cardano-foundation/cardano-token-registry.git /tmp/ctr @@ -45,13 +35,9 @@ jobs: - name: Run sync run: | - EXTRA_FLAGS="" - if [ -n "${{ inputs.limit }}" ]; then EXTRA_FLAGS="$EXTRA_FLAGS --limit ${{ inputs.limit }}"; fi - if [ "${{ inputs.overwrite }}" = "true" ]; then EXTRA_FLAGS="$EXTRA_FLAGS --overwrite"; fi node scripts/cardano-icon-sync/sync-cardano-token-icons.js \ --registry /tmp/ctr \ --out . \ - $EXTRA_FLAGS \ | tee /tmp/sync-stats.txt - name: Check for changes @@ -78,6 +64,6 @@ jobs: STATS=$(cat /tmp/sync-stats.txt) gh pr create \ --title "chore: weekly Cardano token icon sync ${DATE}" \ - --base master \ + --base chore/sync-ada-token-action \ --head "$BRANCH" \ --body "## Cardano icon sync — ${DATE} From e98bc970f39576a91a2eefb6740c3dab7b466f40 Mon Sep 17 00:00:00 2001 From: jin860315 Date: Mon, 27 Jul 2026 11:57:39 +0800 Subject: [PATCH 4/9] test: disable action --- .../{check.yml => check.yml.disabled} | 0 .../{codeql.yml => codeql.yml.disabled} | 0 .github/workflows/sync-cardano-icons.yml | 2 +- .../{upload-s3.yml => upload-s3.yml.disabled} | 0 .../info.json | 20 ------------------ .../logo.png | Bin 11864 -> 0 bytes 6 files changed, 1 insertion(+), 21 deletions(-) rename .github/workflows/{check.yml => check.yml.disabled} (100%) rename .github/workflows/{codeql.yml => codeql.yml.disabled} (100%) rename .github/workflows/{upload-s3.yml => upload-s3.yml.disabled} (100%) delete mode 100644 blockchains/cardano/assets/asset1wd3llgkhsw6etxf2yca6cgk9ssrpva3wf0pq9a/info.json delete mode 100644 blockchains/cardano/assets/asset1wd3llgkhsw6etxf2yca6cgk9ssrpva3wf0pq9a/logo.png diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml.disabled similarity index 100% rename from .github/workflows/check.yml rename to .github/workflows/check.yml.disabled diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml.disabled similarity index 100% rename from .github/workflows/codeql.yml rename to .github/workflows/codeql.yml.disabled diff --git a/.github/workflows/sync-cardano-icons.yml b/.github/workflows/sync-cardano-icons.yml index c50715fa44385..f13e27085b138 100644 --- a/.github/workflows/sync-cardano-icons.yml +++ b/.github/workflows/sync-cardano-icons.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: '20' + node-version: '24' cache: npm cache-dependency-path: scripts/cardano-icon-sync/package-lock.json diff --git a/.github/workflows/upload-s3.yml b/.github/workflows/upload-s3.yml.disabled similarity index 100% rename from .github/workflows/upload-s3.yml rename to .github/workflows/upload-s3.yml.disabled diff --git a/blockchains/cardano/assets/asset1wd3llgkhsw6etxf2yca6cgk9ssrpva3wf0pq9a/info.json b/blockchains/cardano/assets/asset1wd3llgkhsw6etxf2yca6cgk9ssrpva3wf0pq9a/info.json deleted file mode 100644 index 41e3899a68ada..0000000000000 --- a/blockchains/cardano/assets/asset1wd3llgkhsw6etxf2yca6cgk9ssrpva3wf0pq9a/info.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Midnight", - "website": "https://midnight.network", - "explorer": "https://cexplorer.io/asset/asset1wd3llgkhsw6etxf2yca6cgk9ssrpva3wf0pq9a", - "type": "CARDANO", - "symbol": "NIGHT", - "decimals": 6, - "status": "active", - "id": "asset1wd3llgkhsw6etxf2yca6cgk9ssrpva3wf0pq9a", - "links": [ - { - "name": "coinmarketcap", - "url": "https://coinmarketcap.com/currencies/midnight/" - }, - { - "name": "coingecko", - "url": "https://coingecko.com/en/coins/midnight/" - } - ] -} diff --git a/blockchains/cardano/assets/asset1wd3llgkhsw6etxf2yca6cgk9ssrpva3wf0pq9a/logo.png b/blockchains/cardano/assets/asset1wd3llgkhsw6etxf2yca6cgk9ssrpva3wf0pq9a/logo.png deleted file mode 100644 index ac69b45d9927064390bc2122ada9e65c5a601450..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11864 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 Date: Mon, 27 Jul 2026 11:59:50 +0800 Subject: [PATCH 5/9] chore: add --overwrite --limit 5 for workflow testing Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/sync-cardano-icons.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/sync-cardano-icons.yml b/.github/workflows/sync-cardano-icons.yml index f13e27085b138..8ffda1e2276f9 100644 --- a/.github/workflows/sync-cardano-icons.yml +++ b/.github/workflows/sync-cardano-icons.yml @@ -38,6 +38,7 @@ jobs: node scripts/cardano-icon-sync/sync-cardano-token-icons.js \ --registry /tmp/ctr \ --out . \ + --overwrite --limit 5 \ | tee /tmp/sync-stats.txt - name: Check for changes From 5178183c9e5426728e5eb91a5649ad5bbd17b0ca Mon Sep 17 00:00:00 2001 From: jin860315 Date: Mon, 27 Jul 2026 16:36:28 +0800 Subject: [PATCH 6/9] test: try run action --- .github/workflows/sync-cardano-icons.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/sync-cardano-icons.yml b/.github/workflows/sync-cardano-icons.yml index 8ffda1e2276f9..0667794e12097 100644 --- a/.github/workflows/sync-cardano-icons.yml +++ b/.github/workflows/sync-cardano-icons.yml @@ -37,9 +37,7 @@ jobs: run: | node scripts/cardano-icon-sync/sync-cardano-token-icons.js \ --registry /tmp/ctr \ - --out . \ - --overwrite --limit 5 \ - | tee /tmp/sync-stats.txt + --out . - name: Check for changes id: diff From d4a320e6cfaa9f3a0a3727e2c4edad7cc353a4e4 Mon Sep 17 00:00:00 2001 From: jin860315 Date: Mon, 27 Jul 2026 16:45:59 +0800 Subject: [PATCH 7/9] chore: switch runner to macos-latest for sips support Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/sync-cardano-icons.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync-cardano-icons.yml b/.github/workflows/sync-cardano-icons.yml index 0667794e12097..173f1e48d8cf5 100644 --- a/.github/workflows/sync-cardano-icons.yml +++ b/.github/workflows/sync-cardano-icons.yml @@ -13,7 +13,7 @@ permissions: jobs: sync: - runs-on: ubuntu-latest + runs-on: macos-latest steps: - uses: actions/checkout@v4 From 7e440238bd44cd2c17d31e66f54cdb1bf629bfb4 Mon Sep 17 00:00:00 2001 From: jin860315 Date: Mon, 27 Jul 2026 16:47:53 +0800 Subject: [PATCH 8/9] fix: restore tee to sync-stats.txt in sync step Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/sync-cardano-icons.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sync-cardano-icons.yml b/.github/workflows/sync-cardano-icons.yml index 173f1e48d8cf5..34e369e7c7294 100644 --- a/.github/workflows/sync-cardano-icons.yml +++ b/.github/workflows/sync-cardano-icons.yml @@ -37,7 +37,8 @@ jobs: run: | node scripts/cardano-icon-sync/sync-cardano-token-icons.js \ --registry /tmp/ctr \ - --out . + --out . \ + | tee /tmp/sync-stats.txt - name: Check for changes id: diff From f659174db6aeb87bd2a4a5dc8545a5601640cb8c Mon Sep 17 00:00:00 2001 From: jin860315 Date: Mon, 27 Jul 2026 16:53:02 +0800 Subject: [PATCH 9/9] fix: replace heredoc with echo group to avoid YAML indentation issue Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/sync-cardano-icons.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sync-cardano-icons.yml b/.github/workflows/sync-cardano-icons.yml index 34e369e7c7294..6eb3b506cde73 100644 --- a/.github/workflows/sync-cardano-icons.yml +++ b/.github/workflows/sync-cardano-icons.yml @@ -62,8 +62,17 @@ jobs: git push origin "$BRANCH" STATS=$(cat /tmp/sync-stats.txt) + { + echo "## Cardano icon sync — ${DATE}" + echo "" + echo "Automated weekly sync from https://github.com/cardano-foundation/cardano-token-registry" + echo "" + echo '```' + echo "${STATS}" + echo '```' + } > /tmp/pr-body.md gh pr create \ --title "chore: weekly Cardano token icon sync ${DATE}" \ --base chore/sync-ada-token-action \ --head "$BRANCH" \ - --body "## Cardano icon sync — ${DATE} + --body-file /tmp/pr-body.md