Skip to content

Commit dfea51b

Browse files
Merge pull request #6525 from BitGo/COIN-4915
feat: onboard YLDS token on testnet and mainnet
2 parents 7f0604a + 8d762a4 commit dfea51b

File tree

6 files changed

+92
-2
lines changed

6 files changed

+92
-2
lines changed

modules/abstract-cosmos/src/cosmosToken.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ export class CosmosToken extends CosmosCoin {
5353
}
5454

5555
getFullName(): string {
56-
// Eg - returns "Atom Token", "Osmo Token"
57-
return `${this.tokenConfig.coin.charAt(0).toUpperCase()}${this.tokenConfig.coin.slice(1)} Token`;
56+
const displayCoin = this.getFamily();
57+
return `${displayCoin.charAt(0).toUpperCase() + displayCoin.slice(1)} Token`;
5858
}
5959

6060
getBaseFactor(): number {
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import 'should';
2+
3+
import { TestBitGo, TestBitGoAPI } from '@bitgo/sdk-test';
4+
import { BitGoAPI } from '@bitgo/sdk-api';
5+
import { CosmosToken } from '../../src';
6+
7+
describe('Cosmos Tokens', function () {
8+
let bitgo: TestBitGoAPI;
9+
let mainnetCosmosToken;
10+
let testnetCosmosToken;
11+
const testnetTokenName = 'thash:ylds';
12+
const mainnetTokenName = 'hash:ylds';
13+
14+
before(function () {
15+
bitgo = TestBitGo.decorate(BitGoAPI, { env: 'test' });
16+
CosmosToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
17+
bitgo.safeRegister(name, coinConstructor);
18+
});
19+
bitgo.initializeTestVars();
20+
mainnetCosmosToken = bitgo.coin(mainnetTokenName);
21+
testnetCosmosToken = bitgo.coin(testnetTokenName);
22+
});
23+
24+
it('should return constants for Hash YLDS testnet token', function () {
25+
testnetCosmosToken.getChain().should.equal(testnetTokenName);
26+
testnetCosmosToken.getBaseChain().should.equal('thash');
27+
testnetCosmosToken.getFullName().should.equal('Hash Token');
28+
testnetCosmosToken.getBaseFactor().should.equal(1e6);
29+
testnetCosmosToken.type.should.equal(testnetTokenName);
30+
testnetCosmosToken.name.should.equal('Testnet YLDS Token');
31+
testnetCosmosToken.coin.should.equal('thash');
32+
testnetCosmosToken.network.should.equal('Testnet');
33+
testnetCosmosToken.denom.should.equal('uylds.fcc');
34+
testnetCosmosToken.decimalPlaces.should.equal(6);
35+
});
36+
37+
it('should return constants for Hash YLDS mainnet token', function () {
38+
mainnetCosmosToken.getChain().should.equal(mainnetTokenName);
39+
mainnetCosmosToken.getBaseChain().should.equal('hash');
40+
mainnetCosmosToken.getFullName().should.equal('Hash Token');
41+
mainnetCosmosToken.getBaseFactor().should.equal(1e6);
42+
mainnetCosmosToken.type.should.equal(mainnetTokenName);
43+
mainnetCosmosToken.name.should.equal('YLDS Token');
44+
mainnetCosmosToken.coin.should.equal('hash');
45+
mainnetCosmosToken.network.should.equal('Mainnet');
46+
mainnetCosmosToken.denom.should.equal('uylds.fcc');
47+
mainnetCosmosToken.decimalPlaces.should.equal(6);
48+
});
49+
});

modules/statics/src/base.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2879,6 +2879,12 @@ export enum UnderlyingAsset {
28792879
// VET testnet tokens
28802880
'tvet:vtho' = 'tvet:vtho',
28812881

2882+
// COSMOS tokens
2883+
'hash:ylds' = 'hash:ylds',
2884+
2885+
// COSMOS testnet tokens
2886+
'thash:ylds' = 'thash:ylds',
2887+
28822888
// fiats
28832889
AED = 'aed',
28842890
EUR = 'eur',

modules/statics/src/coinFeatures.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,8 @@ export const COSMOS_SIDECHAIN_FEATURES_WITH_STAKING = [
375375
CoinFeature.STAKING,
376376
CoinFeature.BULK_STAKING_TRANSACTION,
377377
];
378+
export const COSMOS_TOKEN_FEATURES = [...COSMOS_SIDECHAIN_FEATURES];
379+
export const COSMOS_TOKEN_FEATURES_WITH_STAKING = [...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING];
378380
export const ATOM_FEATURES = [...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, CoinFeature.CUSTODY_BITGO_FRANKFURT];
379381
export const INJECTIVE_FEATURES = [
380382
...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING,

modules/statics/src/coins.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import {
2929
stellarToken,
3030
suiToken,
3131
vetToken,
32+
cosmosToken,
3233
talgoToken,
3334
taptNFTCollection,
3435
taptToken,
@@ -70,6 +71,7 @@ import { ofcCoins } from './coins/ofcCoins';
7071
import { sip10Tokens } from './coins/sip10Tokens';
7172
import { nep141Tokens } from './coins/nep141Tokens';
7273
import { vetTokens } from './coins/vetTokens';
74+
import { cosmosTokens } from './coins/cosmosTokens';
7375
import {
7476
ADA_FEATURES_WITH_FRANKFURT,
7577
ALGO_FEATURES,
@@ -139,6 +141,7 @@ export const coins = CoinMap.fromCoins([
139141
...sip10Tokens,
140142
...nep141Tokens,
141143
...vetTokens,
144+
...cosmosTokens,
142145
avaxp(
143146
'5436386e-9e4d-4d82-92df-59d9720d1738',
144147
'avaxp',
@@ -4039,6 +4042,7 @@ export function createToken(token: AmsTokenConfig): Readonly<BaseCoin> | undefin
40394042
bera: beraErc20,
40404043
bsc: bscToken,
40414044
celo: celoToken,
4045+
cosmos: cosmosToken,
40424046
eth: erc20,
40434047
eos: eosToken,
40444048
hbar: hederaToken,
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { cosmosToken } from '../account';
2+
import { UnderlyingAsset, BaseUnit } from '../base';
3+
import { COSMOS_TOKEN_FEATURES_WITH_STAKING } from '../coinFeatures';
4+
import { Networks } from '../networks';
5+
6+
export const cosmosTokens = [
7+
cosmosToken(
8+
'4c215052-be4b-4d10-9c05-63eac29cd953',
9+
'hash:ylds',
10+
'YLDS Token',
11+
'uylds.fcc',
12+
6,
13+
Networks.main.hash,
14+
BaseUnit.HASH,
15+
UnderlyingAsset['hash:ylds'],
16+
COSMOS_TOKEN_FEATURES_WITH_STAKING
17+
),
18+
cosmosToken(
19+
'252dd264-a189-48e3-96e0-27802fc11b8d',
20+
'thash:ylds',
21+
'Testnet YLDS Token',
22+
'uylds.fcc',
23+
6,
24+
Networks.test.hash,
25+
BaseUnit.HASH,
26+
UnderlyingAsset['thash:ylds'],
27+
COSMOS_TOKEN_FEATURES_WITH_STAKING
28+
),
29+
];

0 commit comments

Comments
 (0)