Skip to content

Commit 618a714

Browse files
committed
feat: add INR
Ticket: FIAT-1195
1 parent 9c021b1 commit 618a714

7 files changed

Lines changed: 136 additions & 0 deletions

File tree

modules/bitgo/src/v2/coinFactory.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ import {
173173
TfiatAED,
174174
TfiatEur,
175175
TfiatGBP,
176+
TfiatINR,
176177
TfiatSGD,
177178
TfiatUsd,
178179
Thash,
@@ -275,6 +276,7 @@ export function registerCoinConstructors(coinFactory: CoinFactory, coinMap: Coin
275276
coinFactory.register('fiataed', FiatAED.createInstance);
276277
coinFactory.register('fiateur', FiatEur.createInstance);
277278
coinFactory.register('fiatgbp', FiatGBP.createInstance);
279+
coinFactory.register('fiatinr', FiatINR.createInstance);
278280
coinFactory.register('fiatsgd', FiatSGD.createInstance);
279281
coinFactory.register('fiatusd', FiatUsd.createInstance);
280282
coinFactory.register('flr', Flr.createInstance);
@@ -346,6 +348,7 @@ export function registerCoinConstructors(coinFactory: CoinFactory, coinMap: Coin
346348
coinFactory.register('tfiataed', TfiatAED.createInstance);
347349
coinFactory.register('tfiateur', TfiatEur.createInstance);
348350
coinFactory.register('tfiatgbp', TfiatGBP.createInstance);
351+
coinFactory.register('tfiatinr', TfiatINR.createInstance);
349352
coinFactory.register('tfiatsgd', TfiatSGD.createInstance);
350353
coinFactory.register('tfiatusd', TfiatUsd.createInstance);
351354
coinFactory.register('tflr', Tflr.createInstance);
@@ -695,6 +698,8 @@ export function getCoinConstructor(coinName: string): CoinConstructor | undefine
695698
return FiatEur.createInstance;
696699
case 'fiatgbp':
697700
return FiatGBP.createInstance;
701+
case 'fiatinr':
702+
return FiatINR.createInstance;
698703
case 'fiatsgd':
699704
return FiatSGD.createInstance;
700705
case 'fiatusd':
@@ -837,6 +842,8 @@ export function getCoinConstructor(coinName: string): CoinConstructor | undefine
837842
return TfiatEur.createInstance;
838843
case 'tfiatgbp':
839844
return TfiatGBP.createInstance;
845+
case 'tfiatinr':
846+
return TfiatINR.createInstance;
840847
case 'tfiatsgd':
841848
return TfiatSGD.createInstance;
842849
case 'tfiatusd':

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,12 +162,14 @@ const {
162162
FiatUsd,
163163
FiatEur,
164164
FiatGBP,
165+
FiatINR,
165166
FiatAED,
166167
FiatSGD,
167168
Tsusd,
168169
TfiatUsd,
169170
TfiatEur,
170171
TfiatGBP,
172+
TfiatINR,
171173
TfiatAED,
172174
TfiatSGD,
173175
} = coins;
@@ -183,6 +185,7 @@ export {
183185
TfiatAED,
184186
TfiatEur,
185187
TfiatGBP,
188+
TfiatINR,
186189
TfiatSGD,
187190
TfiatUsd,
188191
Tsusd,

modules/bitgo/test/v2/unit/coins/ofcToken.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ describe('OFC:', function () {
4040
tgbp.getBaseFactor().should.equal(PRECISION_2);
4141
});
4242

43+
it('test fiat constants for OFCTINR', function () {
44+
const tgbp = bitgo.coin('ofctinr');
45+
tgbp.getChain().should.equal('ofctinr');
46+
tgbp.getFullName().should.equal('Test Indian Rupee');
47+
tgbp.getBaseFactor().should.equal(PRECISION_2);
48+
});
49+
4350
it('test crypto coins for ofctbtc', function () {
4451
const tbtc = bitgo.coin('ofctbtc');
4552
tbtc.getChain().should.equal('ofctbtc');
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/**
2+
* @prettier
3+
*/
4+
import {
5+
AuditDecryptedKeyParams,
6+
BaseCoin,
7+
BitGoBase,
8+
KeyPair,
9+
MethodNotImplementedError,
10+
ParsedTransaction,
11+
ParseTransactionOptions,
12+
SignedTransaction,
13+
SignTransactionOptions,
14+
VerifyAddressOptions,
15+
VerifyTransactionOptions,
16+
} from '../';
17+
18+
export class FiatINR extends BaseCoin {
19+
static createInstance(bitgo: BitGoBase): BaseCoin {
20+
return new FiatINR(bitgo);
21+
}
22+
23+
/**
24+
* Returns the factor between the base unit and its smallest subdivison
25+
* @return {number}
26+
*/
27+
getBaseFactor() {
28+
return 1e2;
29+
}
30+
31+
getChain() {
32+
return 'fiatinr';
33+
}
34+
35+
getFamily() {
36+
return 'fiat';
37+
}
38+
39+
getFullName() {
40+
return 'Indian Rupee';
41+
}
42+
43+
/**
44+
* Return whether the given m of n wallet signers/ key amounts are valid for the coin
45+
*/
46+
isValidMofNSetup({ m, n }: { m: number; n: number }) {
47+
return m === 0 && n === 0;
48+
}
49+
50+
isValidAddress(address: string): boolean {
51+
throw new MethodNotImplementedError();
52+
}
53+
54+
generateKeyPair(seed?: Buffer): KeyPair {
55+
throw new MethodNotImplementedError();
56+
}
57+
58+
isValidPub(pub: string): boolean {
59+
throw new MethodNotImplementedError();
60+
}
61+
62+
async parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction> {
63+
return {};
64+
}
65+
66+
async isWalletAddress(params: VerifyAddressOptions): Promise<boolean> {
67+
throw new MethodNotImplementedError();
68+
}
69+
70+
async verifyTransaction(params: VerifyTransactionOptions): Promise<boolean> {
71+
return true;
72+
}
73+
74+
async signTransaction(params: SignTransactionOptions = {}): Promise<SignedTransaction> {
75+
throw new MethodNotImplementedError();
76+
}
77+
78+
/** @inheritDoc */
79+
auditDecryptedKey(params: AuditDecryptedKeyParams): void {
80+
throw new MethodNotImplementedError();
81+
}
82+
}

modules/sdk-core/src/coins/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export * from './fiateur';
66
export * from './tfiateur';
77
export * from './fiatgbp';
88
export * from './tfiatgbp';
9+
export * from './fiatinr';
10+
export * from './tfiatinr';
911
export * from './fiatusd';
1012
export * from './tfiatusd';
1113
export * from './ofc';
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* @prettier
3+
*/
4+
import { BaseCoin, BitGoBase } from '../';
5+
import { FiatINR } from './fiatinr';
6+
7+
export class TfiatINR extends FiatINR {
8+
static createInstance(bitgo: BitGoBase): BaseCoin {
9+
return new TfiatINR(bitgo);
10+
}
11+
12+
getChain() {
13+
return 'tfiatinr';
14+
}
15+
16+
getFullName() {
17+
return 'Testnet Indian Rupee';
18+
}
19+
}

modules/statics/src/allCoinsAndTokens.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6159,6 +6159,22 @@ export const allCoinsAndTokens = [
61596159
2,
61606160
UnderlyingAsset.GBP
61616161
),
6162+
fiat(
6163+
'',
6164+
'fiatinr',
6165+
'Indian Rupee',
6166+
Networks.main.fiat,
6167+
2,
6168+
UnderlyingAsset.INR
6169+
),
6170+
fiat(
6171+
'',
6172+
'tfiatinr',
6173+
'Testnet Indian Rupee',
6174+
Networks.test.fiat,
6175+
2,
6176+
UnderlyingAsset.INR
6177+
),
61626178
fiat(
61636179
'414d69c3-8da1-460a-add3-ef26453fc76c',
61646180
'fiataed',

0 commit comments

Comments
 (0)