From 7b9dd68dc267c696328582c6d223174598ea5743 Mon Sep 17 00:00:00 2001 From: Sampras Saha Date: Thu, 28 May 2026 19:27:04 +0530 Subject: [PATCH] feat(statics): add ofcbaseeth:usdc and ofctbaseeth:usdc Onboard the OFC (off-chain) twin of the existing on-chain baseeth:usdc (USDC on Base mainnet) and its testnet counterpart ofctbaseeth:usdc. All underlying infrastructure was already in place (UnderlyingAsset enum entries, on-chain erc20Token registrations, and parent ofcbaseeth / ofctbaseeth OFC family symbols). Only the OFC token entries and a unit test were missing. Co-Authored-By: Sampras Saha Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/bitgo/test/v2/unit/coins/ofcToken.ts | 21 +++++++++++++++ modules/statics/src/coins/ofcErc20Coins.ts | 28 ++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/modules/bitgo/test/v2/unit/coins/ofcToken.ts b/modules/bitgo/test/v2/unit/coins/ofcToken.ts index 364f942b0d..3d63d69ec2 100644 --- a/modules/bitgo/test/v2/unit/coins/ofcToken.ts +++ b/modules/bitgo/test/v2/unit/coins/ofcToken.ts @@ -298,6 +298,27 @@ describe('OFC:', function () { }); }); + describe('check ofc tokens for Base USDC', function () { + const tokenMain = 'ofcbaseeth:usdc'; + const tokenTest = 'ofctbaseeth:usdc'; + describe('for main network', function () { + it(`should have the correct values for ${tokenMain}`, function () { + const ofcCoin = bitgo.coin(tokenMain); + ofcCoin.getChain().should.equal(tokenMain); + ofcCoin.getFullName().should.equal('Base USD Coin'); + ofcCoin.getBaseFactor().should.equal(PRECISION_6); + }); + }); + describe('for test network', function () { + it(`should have the correct values for ${tokenTest}`, function () { + const ofcCoin = bitgo.coin(tokenTest); + ofcCoin.getChain().should.equal(tokenTest); + ofcCoin.getFullName().should.equal('Test Base USD Coin'); + ofcCoin.getBaseFactor().should.equal(PRECISION_6); + }); + }); + }); + describe('check ofc tokens for Stellar USDC', function () { const tokenMain = 'ofcxlm:usdc'; const tokenTest = 'ofctxlm:tst'; diff --git a/modules/statics/src/coins/ofcErc20Coins.ts b/modules/statics/src/coins/ofcErc20Coins.ts index fff2fa720d..9fbd22fb64 100644 --- a/modules/statics/src/coins/ofcErc20Coins.ts +++ b/modules/statics/src/coins/ofcErc20Coins.ts @@ -7104,6 +7104,20 @@ export const tOfcErc20Coins = [ true, 'baseeth' ), + ofcerc20( + 'daab4576-031c-4bf2-b0bf-7ff4d23f0465', + 'ofcbaseeth:usdc', + 'Base USD Coin', + 6, + UnderlyingAsset['baseeth:usdc'], + undefined, + [CoinFeature.STABLECOIN], + '', + undefined, + undefined, + true, + 'baseeth' + ), tofcerc20( 'b5277412-46b8-4da3-8fd2-5bf4557fcbd8', 'ofctbaseeth:tusdl', @@ -7132,6 +7146,20 @@ export const tOfcErc20Coins = [ undefined, 'tbaseeth' ), + tofcerc20( + 'b9b5fc44-0e0a-45ec-8fde-6400ee036af6', + 'ofctbaseeth:usdc', + 'Test Base USD Coin', + 6, + UnderlyingAsset['tbaseeth:usdc'], + undefined, + [CoinFeature.STABLECOIN], + '', + undefined, + undefined, + true, + 'tbaseeth' + ), ]; function underlyingAssetForSymbol(underlyingAssetValue: string): UnderlyingAsset {