Skip to content

Commit 77f0bd2

Browse files
Merge pull request #5370 from BitGo/WIN-4174-WIN-4175-flr-sgb-statics
feat(statics): add flr,sgb config
2 parents 49ae008 + b881454 commit 77f0bd2

File tree

5 files changed

+97
-2
lines changed

5 files changed

+97
-2
lines changed

modules/bitgo/test/v2/unit/keychains.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ describe('V2 Keychains', function () {
7777
n.asset !== UnderlyingAsset.ZKETH && // TODO(WIN-1427): remove this once coin-specific module for zketh is added
7878
n.asset !== UnderlyingAsset.OAS && // TODO(WIN-3696): remove this once coin-specific module for oas is added
7979
n.asset !== UnderlyingAsset.COREDAO && // TODO(WIN-3696): remove this once coin-specific module for coredao is added
80+
n.asset !== UnderlyingAsset.FLR && // TODO(WIN-4215): remove this once coin-specific module for FLR is added
81+
n.asset !== UnderlyingAsset.SGB && // TODO(WIN-4216): remove this once coin-specific module for SGB is added
8082
n.asset !== UnderlyingAsset.RUNE &&
8183
n.asset !== UnderlyingAsset.BABY &&
8284
coinFamilyValues.includes(n.name)

modules/statics/src/base.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export enum CoinFamily {
5050
ETC = 'etc',
5151
EOS = 'eos',
5252
FIAT = 'fiat',
53+
FLR = 'flr',
5354
HASH = 'hash', // Provenance
5455
HBAR = 'hbar',
5556
ICP = 'icp',
@@ -65,6 +66,7 @@ export enum CoinFamily {
6566
OPETH = 'opeth',
6667
OSMO = 'osmo',
6768
RBTC = 'rbtc',
69+
SGB = 'sgb',
6870
SEI = 'sei',
6971
SOL = 'sol',
7072
SUI = 'sui',
@@ -359,6 +361,7 @@ export enum UnderlyingAsset {
359361
EURCV = 'eurcv',
360362
EUROC = 'euroc',
361363
EURR = 'eurr',
364+
FLR = 'flr',
362365
GBP = 'gbp',
363366
GTC = 'gtc',
364367
HASH = 'hash', // Provenance
@@ -376,6 +379,7 @@ export enum UnderlyingAsset {
376379
POLYGON = 'polygon',
377380
RBTC = 'rbtc', // RSK main coin
378381
SEI = 'sei',
382+
SGB = 'sgb',
379383
SOL = 'sol',
380384
SUI = 'sui',
381385
STX = 'stx',

modules/statics/src/coins.ts

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,17 @@ const ETC_FEATURES = [
8989
CoinFeature.CUSTODY_BITGO_NEW_YORK,
9090
CoinFeature.MULTISIG_COLD,
9191
];
92-
92+
const EVM_FEATURES = [
93+
...ETH_FEATURES,
94+
CoinFeature.TSS,
95+
CoinFeature.TSS_COLD,
96+
CoinFeature.EVM_WALLET,
97+
CoinFeature.MPCV2,
98+
CoinFeature.EVM_WALLET,
99+
CoinFeature.BULK_TRANSACTION,
100+
CoinFeature.STUCK_TRANSACTION_MANAGEMENT_TSS,
101+
CoinFeature.EIP1559,
102+
];
93103
const AVAXC_FEATURES = [
94104
...ETH_FEATURES_WITH_MMI,
95105
CoinFeature.CUSTODY_BITGO_GERMANY,
@@ -1427,6 +1437,46 @@ export const coins = CoinMap.fromCoins([
14271437
BaseUnit.ETH,
14281438
COREDAO_FEATURES
14291439
),
1440+
account(
1441+
'202caf8f-4d43-4208-b206-8231f555c518',
1442+
'flr',
1443+
'flare',
1444+
Networks.main.flr,
1445+
18,
1446+
UnderlyingAsset.FLR,
1447+
BaseUnit.ETH,
1448+
EVM_FEATURES
1449+
),
1450+
account(
1451+
'338fc340-08be-4796-9c04-96e5a5078393',
1452+
'tflr',
1453+
'Testnet flare chain',
1454+
Networks.test.flr,
1455+
18,
1456+
UnderlyingAsset.FLR,
1457+
BaseUnit.ETH,
1458+
EVM_FEATURES
1459+
),
1460+
account(
1461+
'321a3168-4669-4ed0-a767-8f35111bb576',
1462+
'sgb',
1463+
'Songbird',
1464+
Networks.main.sgb,
1465+
18,
1466+
UnderlyingAsset.SGB,
1467+
BaseUnit.ETH,
1468+
EVM_FEATURES
1469+
),
1470+
account(
1471+
'c6b8f90b-1f89-4d26-b296-4097927f6b30',
1472+
'tsgb',
1473+
'Testnet songbird chain',
1474+
Networks.test.sgb,
1475+
18,
1476+
UnderlyingAsset.SGB,
1477+
BaseUnit.ETH,
1478+
EVM_FEATURES
1479+
),
14301480
account(
14311481
'75a71e9c-e3a0-4852-8e4b-9613ffed2a4c',
14321482
'apt',

modules/statics/src/networks.ts

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1149,7 +1149,38 @@ class CoredaoTestnet extends Testnet implements EthereumNetwork {
11491149
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
11501150
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
11511151
}
1152-
1152+
class Flare extends Mainnet implements EthereumNetwork {
1153+
name = 'Flarechain';
1154+
family = CoinFamily.FLR;
1155+
explorerUrl = 'https://flare-explorer.flare.network/tx';
1156+
accountExplorerUrl = 'https://flare-explorer.flare.network/address';
1157+
chainId = 14;
1158+
nativeCoinOperationHashPrefix = '14';
1159+
}
1160+
class FlareTestnet extends Testnet implements EthereumNetwork {
1161+
name = 'FlarechainTestnet';
1162+
family = CoinFamily.FLR;
1163+
explorerUrl = 'https://coston2-explorer.flare.network/tx';
1164+
accountExplorerUrl = 'https://coston2-explorer.flare.network/address';
1165+
chainId = 114;
1166+
nativeCoinOperationHashPrefix = '114';
1167+
}
1168+
class Songbird extends Mainnet implements EthereumNetwork {
1169+
name = 'Songbirdchain';
1170+
family = CoinFamily.SGB;
1171+
explorerUrl = 'https://songbird-explorer.flare.network/tx';
1172+
accountExplorerUrl = 'https://songbird-explorer.flare.network/address';
1173+
chainId = 19;
1174+
nativeCoinOperationHashPrefix = '19';
1175+
}
1176+
class SongbirdTestnet extends Testnet implements EthereumNetwork {
1177+
name = 'SongbirdchainTestnet';
1178+
family = CoinFamily.SGB;
1179+
explorerUrl = 'https://coston-explorer.flare.network/tx';
1180+
accountExplorerUrl = 'https://coston-explorer.flare.network/address';
1181+
chainId = 16;
1182+
nativeCoinOperationHashPrefix = '16';
1183+
}
11531184
class BaseChainTestnet extends Testnet implements EthereumNetwork {
11541185
name = 'BaseChainTestnet';
11551186
family = CoinFamily.BASEETH;
@@ -1210,6 +1241,7 @@ export const Networks = {
12101241
ethereumClassic: Object.freeze(new EthereumClassic()),
12111242
ethereumW: Object.freeze(new EthereumW()),
12121243
fiat: Object.freeze(new Fiat()),
1244+
flr: Object.freeze(new Flare()),
12131245
hash: Object.freeze(new Hash()),
12141246
hedera: Object.freeze(new Hedera()),
12151247
icp: Object.freeze(new Icp()),
@@ -1227,6 +1259,7 @@ export const Networks = {
12271259
rune: Object.freeze(new Rune()),
12281260
stellar: Object.freeze(new Stellar()),
12291261
sei: Object.freeze(new Sei()),
1262+
sgb: Object.freeze(new Songbird()),
12301263
sol: Object.freeze(new Sol()),
12311264
sui: Object.freeze(new Sui()),
12321265
near: Object.freeze(new Near()),
@@ -1271,6 +1304,7 @@ export const Networks = {
12711304
eCash: Object.freeze(new ECashTestnet()),
12721305
eos: Object.freeze(new EosTestnet()),
12731306
fiat: Object.freeze(new FiatTestnet()),
1307+
flr: Object.freeze(new FlareTestnet()),
12741308
pyrmont: Object.freeze(new Pyrmont()),
12751309
ethereumClassicTestnet: Object.freeze(new EthereumClassicTestnet()),
12761310
hash: Object.freeze(new HashTestnet()),
@@ -1291,6 +1325,7 @@ export const Networks = {
12911325
osmo: Object.freeze(new OsmoTestnet()),
12921326
rbtc: Object.freeze(new RbtcTestnet()),
12931327
rune: Object.freeze(new RuneTestNet()),
1328+
sgb: Object.freeze(new SongbirdTestnet()),
12941329
stellar: Object.freeze(new StellarTestnet()),
12951330
sei: Object.freeze(new SeiTestnet()),
12961331
sol: Object.freeze(new SolTestnet()),

modules/statics/test/unit/fixtures/expectedColdFeatures.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export const expectedColdFeatures = {
6767
'coredao',
6868
'coreum',
6969
'dot',
70+
'flr',
7071
'hash',
7172
'icp',
7273
'islm',
@@ -75,6 +76,7 @@ export const expectedColdFeatures = {
7576
'near',
7677
'oas',
7778
'osmo',
79+
'sgb',
7880
'sei',
7981
'sol',
8082
'sui',
@@ -90,6 +92,7 @@ export const expectedColdFeatures = {
9092
'tcoredao',
9193
'tcoreum',
9294
'tdot',
95+
'tflr',
9396
'thash',
9497
'thorchain:rune',
9598
'tia',
@@ -100,6 +103,7 @@ export const expectedColdFeatures = {
100103
'tnear',
101104
'tosmo',
102105
'tsei',
106+
'tsgb',
103107
'tsol',
104108
'tsui',
105109
'ttao',

0 commit comments

Comments
 (0)