Page MenuHomePhabricator

[cashtab, marlin, charts, e.cash, explorer, marlinwallet.com] Rebrand Firma as Firma Alpha
ClosedPublic

Authored by bytesofman on Jun 12 2026, 18:01.

Details

Summary

firma.cash and its exchange will support a different USD token called "Firma."

The existing Firma USD token will be rebranded as "Firma Alpha", to emphasize that it is the one with daily yield. We cannot overwrite the data in chronik (yet; ALP could have a spec to update info based on its auth pub key). But we can manually do this in ABC products.

This diff implements this front-end rebrand of the existing "Firma" stablecoin as "Firma Alpha."

Test Plan

npm test

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Tail of the build log:

export TEAMCITY_VERSION="2025.03.1 (build 186125)"
export BASE_CACHE="/root/abc-depends/cache"
export SDK_ARCHIVE_DIR="/root/abc-depends/osx-sdk"
export SOURCES_PATH="/root/abc-depends/sources"
export SDK_DL_REMOTE="http://ci.fabien.cash"

if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

mkdir -p "/root/abc-depends/cache" "/root/abc-depends/osx-sdk" "/root/abc-depends/sources"
./contrib/teamcity/build-configurations.py --ramdisk "preview-explorer"
EOF
) > run-command.sh
chmod +x run-command.sh

~/infra/docker/docker-run.sh \
  -a "--shm-size=16g -v /home/teamcity/.ccache:/root/.ccache -v /home/teamcity/.abc-depends:/root/abc-depends -v "${RESULTS_DIR}":/results" \
  -c run-command.sh /work/run-command.sh \
  -r "${REGISTRY}" \
  abc-base-image-"${HASH}" ./run-command.sh

[18:04:47] :	 [Step 1/1] Starting: /home/teamcity/buildAgent/temp/agentTmp/custom_script2546189047649126978 
[18:04:47] :	 [Step 1/1] in directory: /home/teamcity/buildAgent/work/jailed-build
[18:04:47]W:	 [Step 1/1] + '[' -z preview-explorer ']'
[18:04:47]W:	 [Step 1/1] + case preview-explorer in
[18:04:47]W:	 [Step 1/1] + pushd bitcoin-abc
[18:04:47]W:	 [Step 1/1] + echo NEXT_PUBLIC_SITE_URL=https://e.cash
[18:04:47]W:	 [Step 1/1] + echo NEXT_PUBLIC_STRAPI_URL=https://strapi.e.cash
[18:04:47]W:	 [Step 1/1] + echo NEXT_PUBLIC_STRAPI_SCORECARD_URL=https://api.scorecard.cash
[18:04:47]W:	 [Step 1/1] + ./contrib/teamcity/build-configurations.py preview-explorer
[18:04:47] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[18:04:47]W:	 [Step 1/1] Traceback (most recent call last):
[18:04:47]W:	 [Step 1/1]   File "/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc/./contrib/teamcity/build-configurations.py", line 18, in <module>
[18:04:47]W:	 [Step 1/1]     from deepmerge import always_merger
[18:04:47]W:	 [Step 1/1] ModuleNotFoundError: No module named 'deepmerge'
[18:04:47] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[18:04:47]W:	 [Step 1/1] + RESULT=1
[18:04:47]W:	 [Step 1/1] + popd
[18:04:47]W:	 [Step 1/1] + exit 1
[18:04:47]W:	 [Step 1/1] Process exited with code 1
[18:04:48]E:	 [Step 1/1] Process exited with code 1 (Step: Command Line)
[18:04:48]E:	 [Step 1/1] Step Command Line failed
[18:04:48]E: Ant JUnit report watcher
[18:04:48]E:	 [Ant JUnit report watcher] No reports found for paths:
[18:04:48]E:	 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[18:04:48]E:	 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[18:04:48]E:	 [Ant JUnit report watcher] +:results/**/*junit.xml
[18:04:48] : Publishing internal artifacts
[18:04:48] :	 [Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[18:04:48] :	 [Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisherImpl]
[18:04:49]i:	 [Publishing internal artifacts] Will publish 1 artifact(s) to TeamCity node with id MAIN_SERVER
[18:04:50] : Publishing internal artifacts
[18:04:50]W: Publishing artifacts
[18:04:50] :	 [Publishing artifacts] Collecting files to publish: [+:results/**/junit_results*.xml, +:bitcoin-abc/abc-ci-builds/preview-explorer/gitian-results => preview-explorer.tar.gz, +:bitcoin-abc/abc-ci-builds/preview-explorer/*.log => artifacts.tar.gz, +:bitcoin-abc/abc-ci-builds/preview-explorer/guix-results => preview-explorer.tar.gz]
[18:04:50]W:	 [Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[18:04:50]W:	 [Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/preview-explorer/gitian-results' not found
[18:04:50]W:	 [Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/preview-explorer/guix-results' not found
[18:04:50]W:	 [Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/preview-explorer/*.log' not found
[18:04:51] : Build finished

@bot preview-marlin-wallet

Tail of the build log:

export TEAMCITY_VERSION="2025.03.1 (build 186125)"
export BASE_CACHE="/root/abc-depends/cache"
export SDK_ARCHIVE_DIR="/root/abc-depends/osx-sdk"
export SOURCES_PATH="/root/abc-depends/sources"
export SDK_DL_REMOTE="http://ci.fabien.cash"

if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

mkdir -p "/root/abc-depends/cache" "/root/abc-depends/osx-sdk" "/root/abc-depends/sources"
./contrib/teamcity/build-configurations.py --ramdisk "preview-marlin-wallet"
EOF
) > run-command.sh
chmod +x run-command.sh

~/infra/docker/docker-run.sh \
  -a "--shm-size=16g -v /home/teamcity/.ccache:/root/.ccache -v /home/teamcity/.abc-depends:/root/abc-depends -v "${RESULTS_DIR}":/results" \
  -c run-command.sh /work/run-command.sh \
  -r "${REGISTRY}" \
  abc-base-image-"${HASH}" ./run-command.sh

[07:59:46] :	 [Step 1/1] Starting: /home/teamcity/buildAgent/temp/agentTmp/custom_script11725811289137728162 
[07:59:46] :	 [Step 1/1] in directory: /home/teamcity/buildAgent/work/jailed-build
[07:59:46]W:	 [Step 1/1] + '[' -z preview-marlin-wallet ']'
[07:59:46]W:	 [Step 1/1] + case preview-marlin-wallet in
[07:59:46]W:	 [Step 1/1] + pushd bitcoin-abc
[07:59:46]W:	 [Step 1/1] + echo NEXT_PUBLIC_SITE_URL=https://e.cash
[07:59:46]W:	 [Step 1/1] + echo NEXT_PUBLIC_STRAPI_URL=https://strapi.e.cash
[07:59:46]W:	 [Step 1/1] + echo NEXT_PUBLIC_STRAPI_SCORECARD_URL=https://api.scorecard.cash
[07:59:46]W:	 [Step 1/1] + ./contrib/teamcity/build-configurations.py preview-marlin-wallet
[07:59:46] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[07:59:46]W:	 [Step 1/1] Traceback (most recent call last):
[07:59:46]W:	 [Step 1/1]   File "/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc/./contrib/teamcity/build-configurations.py", line 18, in <module>
[07:59:46]W:	 [Step 1/1]     from deepmerge import always_merger
[07:59:46]W:	 [Step 1/1] ModuleNotFoundError: No module named 'deepmerge'
[07:59:46]W:	 [Step 1/1] + RESULT=1
[07:59:46]W:	 [Step 1/1] + popd
[07:59:46]W:	 [Step 1/1] + exit 1
[07:59:46] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[07:59:46]W:	 [Step 1/1] Process exited with code 1
[07:59:46]E:	 [Step 1/1] Process exited with code 1 (Step: Command Line)
[07:59:46]E:	 [Step 1/1] Step Command Line failed
[07:59:47]E: Ant JUnit report watcher
[07:59:47]E:	 [Ant JUnit report watcher] No reports found for paths:
[07:59:47]E:	 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[07:59:47]E:	 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[07:59:47]E:	 [Ant JUnit report watcher] +:results/**/*junit.xml
[07:59:47] : Publishing internal artifacts
[07:59:47] :	 [Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[07:59:47] :	 [Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisherImpl]
[07:59:47]i:	 [Publishing internal artifacts] Will publish 1 artifact(s) to TeamCity node with id MAIN_SERVER
[07:59:48] : Publishing internal artifacts
[07:59:48]W: Publishing artifacts
[07:59:48] :	 [Publishing artifacts] Collecting files to publish: [+:results/**/junit_results*.xml, +:bitcoin-abc/abc-ci-builds/preview-marlin-wallet/gitian-results => preview-marlin-wallet.tar.gz, +:bitcoin-abc/abc-ci-builds/preview-marlin-wallet/*.log => artifacts.tar.gz, +:bitcoin-abc/abc-ci-builds/preview-marlin-wallet/guix-results => preview-marlin-wallet.tar.gz]
[07:59:48]W:	 [Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[07:59:48]W:	 [Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/preview-marlin-wallet/gitian-results' not found
[07:59:48]W:	 [Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/preview-marlin-wallet/guix-results' not found
[07:59:48]W:	 [Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/preview-marlin-wallet/*.log' not found
[07:59:49] : Build finished

Tail of the build log:

export TEAMCITY_VERSION="2025.03.1 (build 186125)"
export BASE_CACHE="/root/abc-depends/cache"
export SDK_ARCHIVE_DIR="/root/abc-depends/osx-sdk"
export SOURCES_PATH="/root/abc-depends/sources"
export SDK_DL_REMOTE="http://ci.fabien.cash"

if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

mkdir -p "/root/abc-depends/cache" "/root/abc-depends/osx-sdk" "/root/abc-depends/sources"
./contrib/teamcity/build-configurations.py --ramdisk "preview-marlin-wallet"
EOF
) > run-command.sh
chmod +x run-command.sh

~/infra/docker/docker-run.sh \
  -a "--shm-size=16g -v /home/teamcity/.ccache:/root/.ccache -v /home/teamcity/.abc-depends:/root/abc-depends -v "${RESULTS_DIR}":/results" \
  -c run-command.sh /work/run-command.sh \
  -r "${REGISTRY}" \
  abc-base-image-"${HASH}" ./run-command.sh

[08:05:07] :	 [Step 1/1] Starting: /home/teamcity/buildAgent/temp/agentTmp/custom_script16220409081621060738 
[08:05:07] :	 [Step 1/1] in directory: /home/teamcity/buildAgent/work/jailed-build
[08:05:07]W:	 [Step 1/1] + '[' -z preview-marlin-wallet ']'
[08:05:07]W:	 [Step 1/1] + case preview-marlin-wallet in
[08:05:07]W:	 [Step 1/1] + pushd bitcoin-abc
[08:05:07]W:	 [Step 1/1] + echo NEXT_PUBLIC_SITE_URL=https://e.cash
[08:05:07]W:	 [Step 1/1] + echo NEXT_PUBLIC_STRAPI_URL=https://strapi.e.cash
[08:05:07]W:	 [Step 1/1] + echo NEXT_PUBLIC_STRAPI_SCORECARD_URL=https://api.scorecard.cash
[08:05:07]W:	 [Step 1/1] + ./contrib/teamcity/build-configurations.py preview-marlin-wallet
[08:05:07] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[08:05:07]W:	 [Step 1/1] Traceback (most recent call last):
[08:05:07]W:	 [Step 1/1]   File "/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc/./contrib/teamcity/build-configurations.py", line 18, in <module>
[08:05:07]W:	 [Step 1/1]     from deepmerge import always_merger
[08:05:07]W:	 [Step 1/1] ModuleNotFoundError: No module named 'deepmerge'
[08:05:07] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[08:05:07]W:	 [Step 1/1] + RESULT=1
[08:05:07]W:	 [Step 1/1] + popd
[08:05:07]W:	 [Step 1/1] + exit 1
[08:05:07]W:	 [Step 1/1] Process exited with code 1
[08:05:07]E:	 [Step 1/1] Process exited with code 1 (Step: Command Line)
[08:05:07]E:	 [Step 1/1] Step Command Line failed
[08:05:08]E: Ant JUnit report watcher
[08:05:08]E:	 [Ant JUnit report watcher] No reports found for paths:
[08:05:08]E:	 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[08:05:08]E:	 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[08:05:08]E:	 [Ant JUnit report watcher] +:results/**/*junit.xml
[08:05:08] : Publishing internal artifacts
[08:05:08] :	 [Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[08:05:08] :	 [Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisherImpl]
[08:05:08]i:	 [Publishing internal artifacts] Will publish 1 artifact(s) to TeamCity node with id MAIN_SERVER
[08:05:09] : Publishing internal artifacts
[08:05:09]W: Publishing artifacts
[08:05:09] :	 [Publishing artifacts] Collecting files to publish: [+:results/**/junit_results*.xml, +:bitcoin-abc/abc-ci-builds/preview-marlin-wallet/gitian-results => preview-marlin-wallet.tar.gz, +:bitcoin-abc/abc-ci-builds/preview-marlin-wallet/*.log => artifacts.tar.gz, +:bitcoin-abc/abc-ci-builds/preview-marlin-wallet/guix-results => preview-marlin-wallet.tar.gz]
[08:05:09]W:	 [Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[08:05:09]W:	 [Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/preview-marlin-wallet/gitian-results' not found
[08:05:09]W:	 [Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/preview-marlin-wallet/guix-results' not found
[08:05:09]W:	 [Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/preview-marlin-wallet/*.log' not found
[08:05:10] : Build finished

The new length causes the display to wrap on Marlin, any chance you can use a shorter form? Maybe Firma α ?

use shorter name/ticker in marlin

Tail of the build log:

  └────────────────────────────────────────────────────────────────────────────────────────────────┘


================================================================================

  (Run Finished)


       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  bip21-payment-request.cy.ts              00:09        6        6        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✖  history.cy.ts                            03:17       10        7        3        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✖  main.cy.ts                               02:10        7        5        2        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  mnemonic.cy.ts                           00:17        7        7        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✖  send.cy.ts                               01:51       24       23        1        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  shared-image-qr.cy.ts                    00:06        5        5        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  transitional-balance.cy.ts               00:16        9        9        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✖  3 of 7 failed (43%)                      08:09       68       62        6        -        -  

--------------------------------------------------------------------------------

  Debug faster with full visibility.

  Record to Cypress Cloud and get instant access to full test details and replays.
  Inspect the DOM, network events, and console logs exactly as they ran in CI.

  >> https://on.cypress.io/cloud-get-started

--------------------------------------------------------------------------------
 ELIFECYCLE  Command failed with exit code 6.
Error: Command failed with exit code 6: pnpm run cypress:run
    at makeError (/work/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/error.js:60:11)
    at handlePromise (/work/node_modules/.pnpm/execa@5.1.1/node_modules/execa/index.js:118:26)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5) {
  shortMessage: 'Command failed with exit code 6: pnpm run cypress:run',
  command: 'pnpm run cypress:run',
  escapedCommand: '"pnpm run cypress:run"',
  exitCode: 6,
  signal: undefined,
  signalDescription: undefined,
  stdout: undefined,
  stderr: undefined,
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
<i> [webpack-dev-server] Gracefully shutting down. To force exit, press ^C again. Please wait...
/work/apps/marlin-wallet/web:
 ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL  marlin-wallet-web@2.2.1 test:e2e: `start-server-and-test 'pnpm run dev' http://localhost:3000 'pnpm run cypress:run'`
Exit status 1
 ELIFECYCLE  Command failed.
Build marlin-wallet-e2e-tests failed with exit code 1

handle lower case alpha persistence

Fabien added inline comments.
cashtab/src/components/Etokens/__tests__/TokenActions.test.js
2665 ↗(On Diff #59788)

should be Firma Alpha ?

cashtab/src/components/Header/__tests__/Header.test.tsx
208 ↗(On Diff #59788)

Firma α would fit as well, your call

This revision is now accepted and ready to land.Jun 16 2026, 07:35
bytesofman added inline comments.
cashtab/src/components/Header/__tests__/Header.test.tsx
208 ↗(On Diff #59788)

will keep it "USD" for now as Cashtab could end up supporting Firma and Firma Alpha

bytesofman marked an inline comment as done.

redeem button patch, rebase