Skip to content

Commit 74f3d88

Browse files
Merge pull request #6762 from BitGo/feat/COIN-4135-send-many
feat: enable send many for multiple EVM coins
2 parents 2e87871 + f4d9b76 commit 74f3d88

File tree

4 files changed

+44
-23
lines changed

4 files changed

+44
-23
lines changed

modules/statics/src/allCoinsAndTokens.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ import {
8484
ETH_FEATURES,
8585
ETH_FEATURES_WITH_STAKING_AND_MMI,
8686
EVM_FEATURES,
87+
FLR_FEATURES,
8788
GENERIC_TOKEN_FEATURES,
8889
HBAR_FEATURES,
8990
ICP_FEATURES,
@@ -97,6 +98,7 @@ import {
9798
POLYX_TOKEN_FEATURES,
9899
RBTC_FEATURES,
99100
SEI_FEATURES,
101+
SGB_FEATURES,
100102
SOL_FEATURES,
101103
SONEIUM_FEATURES,
102104
STX_FEATURES,
@@ -112,6 +114,8 @@ import {
112114
TSOL_FEATURES,
113115
VET_FEATURES,
114116
WCT_FEATURES,
117+
WEMIX_FEATURES,
118+
XDC_FEATURES,
115119
XLM_FEATURES,
116120
XLM_TOKEN_FEATURES_WITH_FRANKFURT,
117121
XRP_FEATURES,
@@ -1361,7 +1365,7 @@ export const allCoinsAndTokens = [
13611365
18,
13621366
UnderlyingAsset.XDC,
13631367
BaseUnit.ETH,
1364-
EVM_FEATURES.filter((feature) => feature !== CoinFeature.EIP1559)
1368+
XDC_FEATURES
13651369
),
13661370
account(
13671371
'e6ecb22e-0ae8-463a-b2fb-61502fd54240',
@@ -1371,7 +1375,7 @@ export const allCoinsAndTokens = [
13711375
18,
13721376
UnderlyingAsset.XDC,
13731377
BaseUnit.ETH,
1374-
EVM_FEATURES.filter((feature) => feature !== CoinFeature.EIP1559)
1378+
XDC_FEATURES
13751379
),
13761380
account(
13771381
'297edf01-b166-45fb-be6f-da6680635f72',
@@ -1381,7 +1385,7 @@ export const allCoinsAndTokens = [
13811385
18,
13821386
UnderlyingAsset.WEMIX,
13831387
BaseUnit.ETH,
1384-
EVM_FEATURES
1388+
WEMIX_FEATURES
13851389
),
13861390
account(
13871391
'b18517e3-2fba-44df-be39-7ba062d14895',
@@ -1391,7 +1395,7 @@ export const allCoinsAndTokens = [
13911395
18,
13921396
UnderlyingAsset.WEMIX,
13931397
BaseUnit.ETH,
1394-
EVM_FEATURES
1398+
WEMIX_FEATURES
13951399
),
13961400
account(
13971401
'c315bdbb-4e77-4eeb-a625-92f4defc3e42',
@@ -1753,7 +1757,7 @@ export const allCoinsAndTokens = [
17531757
18,
17541758
UnderlyingAsset.FLR,
17551759
BaseUnit.ETH,
1756-
EVM_FEATURES
1760+
FLR_FEATURES
17571761
),
17581762
account(
17591763
'338fc340-08be-4796-9c04-96e5a5078393',
@@ -1763,7 +1767,7 @@ export const allCoinsAndTokens = [
17631767
18,
17641768
UnderlyingAsset.FLR,
17651769
BaseUnit.ETH,
1766-
[...EVM_FEATURES, CoinFeature.SHARED_EVM_SIGNING]
1770+
[...FLR_FEATURES, CoinFeature.SHARED_EVM_SIGNING]
17671771
),
17681772
account(
17691773
'321a3168-4669-4ed0-a767-8f35111bb576',
@@ -1773,7 +1777,7 @@ export const allCoinsAndTokens = [
17731777
18,
17741778
UnderlyingAsset.SGB,
17751779
BaseUnit.ETH,
1776-
EVM_FEATURES
1780+
SGB_FEATURES
17771781
),
17781782
account(
17791783
'c6b8f90b-1f89-4d26-b296-4097927f6b30',
@@ -1783,7 +1787,7 @@ export const allCoinsAndTokens = [
17831787
18,
17841788
UnderlyingAsset.SGB,
17851789
BaseUnit.ETH,
1786-
[...EVM_FEATURES, CoinFeature.SHARED_EVM_SIGNING]
1790+
[...SGB_FEATURES, CoinFeature.SHARED_EVM_SIGNING]
17871791
),
17881792
gasTankAccount(
17891793
'75a71e9c-e3a0-4852-8e4b-9613ffed2a4c',

modules/statics/src/coinFeatures.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ export const BSC_FEATURES = [
263263
CoinFeature.CUSTODY_BITGO_FRANKFURT,
264264
CoinFeature.BULK_TRANSACTION,
265265
CoinFeature.SHARED_EVM_MESSAGE_SIGNING,
266+
CoinFeature.ERC20_BULK_TRANSACTION,
266267
];
267268
export const BSC_TOKEN_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION];
268269
export const BSC_TOKEN_FEATURES_EXCLUDE_SINGAPORE = [
@@ -612,3 +613,14 @@ export const VET_FEATURES = [
612613
CoinFeature.MPCV2,
613614
];
614615
export const VET_TOKEN_FEATURES = VET_FEATURES.filter((feature) => feature !== CoinFeature.SUPPORTS_TOKENS);
616+
617+
export const XDC_FEATURES = [
618+
...EVM_FEATURES.filter((feature) => feature !== CoinFeature.EIP1559),
619+
CoinFeature.ERC20_BULK_TRANSACTION,
620+
];
621+
622+
export const SGB_FEATURES = [...EVM_FEATURES, CoinFeature.ERC20_BULK_TRANSACTION];
623+
624+
export const FLR_FEATURES = [...EVM_FEATURES, CoinFeature.ERC20_BULK_TRANSACTION];
625+
626+
export const WEMIX_FEATURES = [...EVM_FEATURES, CoinFeature.ERC20_BULK_TRANSACTION];

modules/statics/src/networks.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,7 +1302,7 @@ class Coredao extends Mainnet implements EthereumNetwork {
13021302
accountExplorerUrl = 'https://scan.coredao.org/address/';
13031303
chainId = 1116;
13041304
nativeCoinOperationHashPrefix = '1116';
1305-
batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1305+
batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
13061306
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
13071307
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
13081308
}
@@ -1314,7 +1314,7 @@ class CoredaoTestnet extends Testnet implements EthereumNetwork {
13141314
accountExplorerUrl = 'https://scan.test2.btcs.network/address/';
13151315
chainId = 1114;
13161316
nativeCoinOperationHashPrefix = '1114';
1317-
batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1317+
batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
13181318
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
13191319
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
13201320
}
@@ -1544,7 +1544,7 @@ class Xdc extends Mainnet implements EthereumNetwork {
15441544
accountExplorerUrl = 'https://xdcscan.com/address/';
15451545
chainId = 50;
15461546
nativeCoinOperationHashPrefix = '50';
1547-
batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1547+
batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
15481548
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
15491549
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
15501550
}
@@ -1555,7 +1555,7 @@ class XdcTestnet extends Testnet implements EthereumNetwork {
15551555
accountExplorerUrl = 'https://testnet.xdcscan.com/address/';
15561556
chainId = 51;
15571557
nativeCoinOperationHashPrefix = '51';
1558-
batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1558+
batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
15591559
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
15601560
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
15611561
}
@@ -1566,7 +1566,7 @@ class Wemix extends Mainnet implements EthereumNetwork {
15661566
accountExplorerUrl = 'https://explorer.wemix.com/address/';
15671567
chainId = 1111;
15681568
nativeCoinOperationHashPrefix = '1111';
1569-
batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1569+
batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
15701570
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
15711571
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
15721572
}
@@ -1577,7 +1577,7 @@ class WemixTestnet extends Testnet implements EthereumNetwork {
15771577
accountExplorerUrl = 'https://explorer.test.wemix.com/address/';
15781578
chainId = 1112;
15791579
nativeCoinOperationHashPrefix = '1112';
1580-
batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1580+
batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
15811581
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
15821582
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
15831583
}
@@ -1769,7 +1769,7 @@ export class Flare extends Mainnet implements FlareNetwork, EthereumNetwork {
17691769
accountExplorerUrl = 'https://flare-explorer.flare.network/address/';
17701770
chainId = 14;
17711771
nativeCoinOperationHashPrefix = '14';
1772-
batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1772+
batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
17731773
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
17741774
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
17751775
}
@@ -1781,7 +1781,7 @@ export class FlareTestnet extends Testnet implements FlareNetwork, EthereumNetwo
17811781
accountExplorerUrl = 'https://coston2-explorer.flare.network/address/';
17821782
chainId = 114;
17831783
nativeCoinOperationHashPrefix = '114';
1784-
batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1784+
batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
17851785
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
17861786
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
17871787
}
@@ -1792,7 +1792,7 @@ class Songbird extends Mainnet implements EthereumNetwork {
17921792
accountExplorerUrl = 'https://songbird-explorer.flare.network/address/';
17931793
chainId = 19;
17941794
nativeCoinOperationHashPrefix = '19';
1795-
batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1795+
batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
17961796
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
17971797
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
17981798
}
@@ -1803,7 +1803,7 @@ class SongbirdTestnet extends Testnet implements EthereumNetwork {
18031803
accountExplorerUrl = 'https://coston-explorer.flare.network/address/';
18041804
chainId = 16;
18051805
nativeCoinOperationHashPrefix = '16';
1806-
batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1806+
batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
18071807
forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
18081808
forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
18091809
}

modules/statics/test/unit/coins.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,16 +1073,21 @@ describe('ERC20 Bulk Transaction Feature', () => {
10731073
'tpolygon',
10741074
'coredao',
10751075
'tcoredao',
1076+
'sgb',
1077+
'tsgb',
1078+
'wemix',
1079+
'twemix',
1080+
'flr',
1081+
'tflr',
1082+
'xdc',
1083+
'txdc',
1084+
'bsc',
1085+
'tbsc',
10761086
];
10771087
erc20BulkTransactionCoins.forEach((coinName) => {
10781088
const coin = coins.get(coinName);
10791089
coin.features.includes(CoinFeature.ERC20_BULK_TRANSACTION).should.eql(true);
10801090
});
1081-
1082-
it('should not have ERC20_BULK_TRANSACTION feature for BSC', () => {
1083-
const coin = coins.get('bsc');
1084-
coin.features.includes(CoinFeature.ERC20_BULK_TRANSACTION).should.eql(false);
1085-
});
10861091
});
10871092
});
10881093

0 commit comments

Comments
 (0)