From a4af27425b486119c47c62ce2e5a79ad6b2c7e93 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 10 Feb 2025 06:15:46 +0000 Subject: [PATCH] Add token 0x8Be11086BcB4984e53Fb775261A94c1611Cab1D5 Copy TRUMP (TRUMP) --- .github/workflows/cleanup-branches.yml | 34 ---- .github/workflows/update-token-list.yml | 178 ------------------ FXList.json | 12 ++ .../logo.png | Bin 0 -> 16403 bytes 4 files changed, 12 insertions(+), 212 deletions(-) delete mode 100644 .github/workflows/cleanup-branches.yml delete mode 100644 .github/workflows/update-token-list.yml create mode 100644 Tokens/0x8Be11086BcB4984e53Fb775261A94c1611Cab1D5/logo.png diff --git a/.github/workflows/cleanup-branches.yml b/.github/workflows/cleanup-branches.yml deleted file mode 100644 index fe10747..0000000 --- a/.github/workflows/cleanup-branches.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Cleanup Stale Branches - -on: - schedule: - # Runs at 00:00 every day - - cron: "0 0 * * *" - workflow_dispatch: - -jobs: - delete_old_branches: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Fetch all branches - run: git fetch --all - - - name: Delete stale branches - run: | - # Get the date 7 days ago in YYYY-MM-DD format - seven_days_ago=$(date -d '7 days ago' +%Y-%m-%d) - - # List branches that haven't been updated in the last 7 days - for branch in $(git for-each-ref --format='%(refname:short) %(committerdate:short)' refs/remotes/origin | awk -v date="$seven_days_ago" '$2 <= date {print $1}'); do - # Ensure the branch is not 'main', 'master', or any protected branches - if [[ "$branch" != "origin/main" && "$branch" != "origin/master" && "$branch" != *"HEAD"* ]]; then - git push origin --delete ${branch#origin/} - echo "Deleted branch $branch" - fi - done - - - name: Cleanup - run: git remote prune origin diff --git a/.github/workflows/update-token-list.yml b/.github/workflows/update-token-list.yml deleted file mode 100644 index eef9a27..0000000 --- a/.github/workflows/update-token-list.yml +++ /dev/null @@ -1,178 +0,0 @@ -name: Update Token List - -on: - workflow_dispatch: - inputs: - name: - description: "Token name" - required: true - chainId: - description: "Chain ID" - required: true - symbol: - description: "Token symbol" - required: true - address: - description: "Token address" - required: true - decimals: - description: "Token decimals" - required: true - image: - description: "Token logo (base64 encoded)" - required: true - twitter: - description: "Twitter handle" - required: false - website: - description: "Website URL" - required: false - -jobs: - update-token-list: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: "20" - - - name: Set up Git configuration - run: | - git config user.name "GitHub Actions" - git config user.email "actions@github.com" - git config core.autocrlf input - - - name: Determine logo file name - id: determine_logo - run: | - case "${{ github.event.inputs.chainId }}" in - 530) - logo_filename="logo.png" - ;; - 90001) - logo_filename="logo-testnet.png" - ;; - 7000) - logo_filename="logo-zeta.png" - ;; - 7001) - logo_filename="logo-athens.png" - ;; - *) - logo_filename="logo.png" - ;; - esac - echo "logo_filename=$logo_filename" >> $GITHUB_ENV - - - name: Debug inputs - run: | - echo "Twitter: '${{ github.event.inputs.twitter }}'" - echo "Website: '${{ github.event.inputs.website }}'" - - - name: Decode and save image - run: | - mkdir -p Tokens/${{ github.event.inputs.address }} - echo "${{ github.event.inputs.image }}" | base64 --decode > Tokens/${{ github.event.inputs.address }}/${{ env.logo_filename }} - - - name: List files in Tokens directory - run: ls -R Tokens/ - - - name: Prepare branch and token entry - id: prepare - run: | - name="${{ github.event.inputs.name }}" - symbol="${{ github.event.inputs.symbol }}" - address="${{ github.event.inputs.address }}" - sanitized_name=$(echo "$name" | tr ' ' '-' | tr -cd '[:alnum:]-') - sanitized_symbol=$(echo "$symbol" | tr ' ' '-' | tr -cd '[:alnum:]-') - sanitized_address=$(echo "$address" | tr ' ' '-' | tr -cd '[:alnum:]-') - branch_name="add-token-$sanitized_address-$sanitized_name-$sanitized_symbol" - - # Save branch name to be used in subsequent steps - echo "branch_name=$branch_name" >> $GITHUB_ENV - - - name: Pull latest changes from main - run: | - git checkout main - git pull origin main - - - name: Print branch name - run: | - echo "Branch name: ${{ env.branch_name }}" - - - name: Normalize line endings in FXList.json - run: | - awk '{ sub("\r$", ""); print }' FXList.json > tmp.FXList.json && mv tmp.FXList.json FXList.json - - - name: Format FXList.json before changes - run: | - jq --indent 4 . FXList.json > tmp.FXList.json && mv tmp.FXList.json FXList.json - - - name: Append new token to FXList.json - run: | - logoURI="https://raw.githubusercontent.com/FunctionX-SG/FXSwap-TokenList/main/Tokens/${{ github.event.inputs.address }}/${{ env.logo_filename }}" - # Create token entry - token_entry=$(jq -n \ - --arg name "${{ github.event.inputs.name }}" \ - --argjson chainId "${{ github.event.inputs.chainId }}" \ - --arg symbol "${{ github.event.inputs.symbol }}" \ - --argjson decimals "${{ github.event.inputs.decimals }}" \ - --arg address "${{ github.event.inputs.address }}" \ - --arg logoURI "$logoURI" \ - --arg twitter "${{ github.event.inputs.twitter }}" \ - --arg website "${{ github.event.inputs.website }}" \ - '{name: $name, chainId: $chainId, symbol: $symbol, decimals: $decimals, address: $address, logoURI: $logoURI, extensions: {twitter: $twitter, website: $website}} | with_entries(select(.value != "" and .value != null)) | .extensions |= with_entries(select(.value != "" and .value != null))') - # Append the new entry to the tokens array in FXList.json - jq --argjson token_entry "$token_entry" '.tokens += [$token_entry]' FXList.json > tmp.FXList.json && mv tmp.FXList.json FXList.json - - - name: Format FXList.json after changes - run: | - jq --indent 4 . FXList.json > tmp.FXList.json && mv tmp.FXList.json FXList.json - - - name: Check if branch exists locally and delete if it does - run: | - if git show-ref --quiet refs/heads/${{ env.branch_name }}; then - echo "Branch exists locally. Deleting local branch ${{ env.branch_name }}." - git branch -D ${{ env.branch_name }} - else - echo "Branch does not exist locally." - fi - - - name: Check if branch exists remotely and delete if it does - run: | - if git ls-remote --exit-code --heads origin ${{ env.branch_name }}; then - echo "Branch exists remotely. Deleting remote branch ${{ env.branch_name }}." - git push origin --delete ${{ env.branch_name }} - else - echo "Branch does not exist remotely." - fi - - - name: Commit changes - run: | - git checkout -b ${{ env.branch_name }} - git rm -r .github/workflows/cleanup-branches.yml .github/workflows/update-token-list.yml - git add FXList.json Tokens/${{ github.event.inputs.address }}/${{ env.logo_filename }} - git commit -m "Add token ${{ github.event.inputs.address }} ${{ github.event.inputs.name }} (${{ github.event.inputs.symbol }})" - git pull origin main --rebase - git push origin ${{ env.branch_name }} - - - name: Install GitHub CLI - run: | - sudo apt-get update - sudo apt-get install gh - - - name: Create Pull Request with GH CLI - env: - GH_TOKEN: ${{ secrets.TOKEN }} - run: | - gh pr create --repo FunctionX-SG/FXSwap-TokenList --base main --head marginx-spot-trade:${{ env.branch_name }} --title "Add ${{ github.event.inputs.name }} Token" --body "This PR adds a new token with address ${{ github.event.inputs.address }}, name '${{ github.event.inputs.name }}' and symbol '${{ github.event.inputs.symbol }}'." - - # gh pr create --title "Add ${{ github.event.inputs.name }} Token" \ - # --body "This PR adds a new token with name '${{ github.event.inputs.name }}' and symbol '${{ github.event.inputs.symbol }}'." \ - # --base main \ - # --head marginx-spot-trade:${{ env.branch_name }} diff --git a/FXList.json b/FXList.json index 5715374..4af180c 100644 --- a/FXList.json +++ b/FXList.json @@ -1086,6 +1086,18 @@ "address": "0x4F7A8B0C35Aa437a8aB1cB414A71FA0950cEeAE1", "logoURI": "https://raw.githubusercontent.com/FunctionX-SG/FXSwap-TokenList/main/Tokens/0x4F7A8B0C35Aa437a8aB1cB414A71FA0950cEeAE1/logo.png", "extensions": {} + }, + { + "name": "Copy TRUMP", + "chainId": 530, + "symbol": "TRUMP", + "decimals": 18, + "address": "0x8Be11086BcB4984e53Fb775261A94c1611Cab1D5", + "logoURI": "https://raw.githubusercontent.com/FunctionX-SG/FXSwap-TokenList/main/Tokens/0x8Be11086BcB4984e53Fb775261A94c1611Cab1D5/logo.png", + "extensions": { + "twitter": "https://x.com/GetTrumpMemes", + "website": "https://gettrumpmemes.com/" + } } ] } diff --git a/Tokens/0x8Be11086BcB4984e53Fb775261A94c1611Cab1D5/logo.png b/Tokens/0x8Be11086BcB4984e53Fb775261A94c1611Cab1D5/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a0586bd5ac0db248ddb186cdfe94b97c254e291e GIT binary patch literal 16403 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 literal 0 HcmV?d00001