Skip to content

Commit cda9bb1

Browse files
authored
Merge pull request #6576 from BitGo/COIN-4989-integration-cosmos-module
feat(sdk-coin-cosmos): integration of cosmos module
2 parents eeeb6e5 + 9d2e614 commit cda9bb1

File tree

9 files changed

+36
-6
lines changed

9 files changed

+36
-6
lines changed

modules/account-lib/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"@bitgo/sdk-coin-bld": "^3.1.9",
4242
"@bitgo/sdk-coin-bsc": "^22.3.9",
4343
"@bitgo/sdk-coin-celo": "^5.1.9",
44+
"@bitgo/sdk-coin-cosmos": "^1.2.0",
4445
"@bitgo/sdk-coin-coredao": "^2.3.9",
4546
"@bitgo/sdk-coin-coreum": "^21.1.9",
4647
"@bitgo/sdk-coin-cronos": "^1.3.4",

modules/account-lib/src/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,9 @@ export { Soneium };
203203
import * as Vet from '@bitgo/sdk-coin-vet';
204204
export { Vet };
205205

206+
import * as CosmosSharedCoin from '@bitgo/sdk-coin-cosmos';
207+
export { CosmosSharedCoin };
208+
206209
import { validateAgainstMessageTemplates, MIDNIGHT_TNC_HASH } from './utils';
207210
export { MIDNIGHT_TNC_HASH };
208211

@@ -337,6 +340,12 @@ coins
337340
coinBuilderMap[coin.name] = EvmCoin.TransactionBuilder;
338341
});
339342

343+
coins
344+
.filter((coin) => coin.features.includes(CoinFeature.SHARED_COSMOS_SDK))
345+
.forEach((coin) => {
346+
coinBuilderMap[coin.name] = CosmosSharedCoin.TransactionBuilder;
347+
});
348+
340349
/**
341350
* Get the list of coin tickers supported by this library.
342351
*/

modules/account-lib/test/unit/keyPair/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ describe('Key Pair Factory', () => {
1212
describe('coinToKey map initialization', function () {
1313
const supportedCoinsExceptTestnet = Object.keys(coinModules)
1414
// TODO(BG-40990): temporarily disable eth2 from the test for bls not initialized error
15-
.filter((k) => coinModules[k].KeyPair && !['eth2', 'evmcoin'].includes(k.trim().toLowerCase()));
15+
.filter(
16+
(k) => coinModules[k].KeyPair && !['eth2', 'evmcoin', 'cosmossharedcoin'].includes(k.trim().toLowerCase()),
17+
);
1618

1719
supportedCoinsExceptTestnet.forEach((coinName) => {
1820
it(`should initialize a ${coinName} keyPair map`, () => {

modules/account-lib/tsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@
4343
{
4444
"path": "../sdk-coin-coreum"
4545
},
46+
{
47+
"path": "../sdk-coin-cosmos"
48+
},
4649
{
4750
"path": "../sdk-coin-cspr"
4851
},

modules/bitgo/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"@bitgo/sdk-coin-celo": "^5.1.9",
7272
"@bitgo/sdk-coin-coredao": "^2.3.9",
7373
"@bitgo/sdk-coin-coreum": "^21.1.9",
74+
"@bitgo/sdk-coin-cosmos": "^1.2.0",
7475
"@bitgo/sdk-coin-cronos": "^1.3.4",
7576
"@bitgo/sdk-coin-cspr": "^2.2.9",
7677
"@bitgo/sdk-coin-dash": "^2.2.9",

modules/bitgo/src/v2/coinFactory.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import {
6363
Coredao,
6464
CoredaoToken,
6565
CosmosToken,
66+
CosmosSharedCoin,
6667
Coreum,
6768
Cronos,
6869
Cspr,
@@ -380,6 +381,12 @@ export function registerCoinConstructors(coinFactory: CoinFactory, coinMap: Coin
380381
coinFactory.register(coin.name, EvmCoin.createInstance);
381382
});
382383

384+
coins
385+
.filter((coin) => coin.features.includes(CoinFeature.SHARED_COSMOS_SDK))
386+
.forEach((coin) => {
387+
coinFactory.register(coin.name, CosmosSharedCoin.createInstance);
388+
});
389+
383390
const tokens = getFormattedTokens(coinMap);
384391

385392
Erc20Token.createTokenConstructors([...tokens.bitcoin.eth.tokens, ...tokens.testnet.eth.tokens]).forEach(
@@ -510,9 +517,13 @@ export function registerCoinConstructors(coinFactory: CoinFactory, coinMap: Coin
510517

511518
export function getCoinConstructor(coinName: string): CoinConstructor | undefined {
512519
const evmCoins = coins.filter((coin) => coin.features.includes(CoinFeature.SHARED_EVM_SDK));
520+
const cosmosSharedCoins = coins.filter((coin) => coin.features.includes(CoinFeature.SHARED_COSMOS_SDK));
513521
if (evmCoins.has(coinName)) {
514522
return EvmCoin.createInstance;
515523
}
524+
if (cosmosSharedCoins.has(coinName)) {
525+
return CosmosSharedCoin.createInstance;
526+
}
516527
switch (coinName) {
517528
case 'ada':
518529
return Ada.createInstance;

modules/bitgo/src/v2/coins/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { Celo, CeloToken, Tcelo } from '@bitgo/sdk-coin-celo';
2222
import { Coredao, Tcoredao, CoredaoToken } from '@bitgo/sdk-coin-coredao';
2323
import { Coreum, Tcoreum } from '@bitgo/sdk-coin-coreum';
2424
import { CosmosToken } from '@bitgo/abstract-cosmos';
25+
import { CosmosSharedCoin } from '@bitgo/sdk-coin-cosmos';
2526
import { Cronos, Tcronos } from '@bitgo/sdk-coin-cronos';
2627
import { Cspr, Tcspr } from '@bitgo/sdk-coin-cspr';
2728
import { Dash, Tdash } from '@bitgo/sdk-coin-dash';
@@ -95,6 +96,7 @@ export { Celo, CeloToken, Tcelo };
9596
export { Coredao, Tcoredao, CoredaoToken };
9697
export { Coreum, Tcoreum };
9798
export { CosmosToken };
99+
export { CosmosSharedCoin };
98100
export { Cronos, Tcronos };
99101
export { Cspr, Tcspr };
100102
export { Dash, Tdash };

modules/bitgo/tsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,9 @@
122122
{
123123
"path": "../sdk-coin-coreum"
124124
},
125+
{
126+
"path": "../sdk-coin-cosmos"
127+
},
125128
{
126129
"path": "../sdk-coin-cronos"
127130
},
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
export { CosmosSharedCoin } from './cosmosSharedCoin';
2-
export { register } from './register';
3-
export { KeyPair } from './lib/keyPair';
4-
export { Utils } from './lib/utils';
5-
export { TransactionBuilderFactory } from './lib/transactionBuilderFactory';
1+
export * from './lib';
2+
export * from './register';
3+
export * from './cosmosSharedCoin';

0 commit comments

Comments
 (0)