Skip to content

Commit c4098a3

Browse files
Merge pull request #5508 from BitGo/WIN-4541-use-contractAddress-instead
chore(statics): use contractAddress to form issuerAddress and currenc…
2 parents f9bd6ae + a0469a4 commit c4098a3

File tree

5 files changed

+24
-2
lines changed

5 files changed

+24
-2
lines changed

modules/sdk-coin-xrp/src/xrpToken.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ export class XrpToken extends Xrp {
4444
return this.tokenConfig.currencyCode;
4545
}
4646

47+
get contractAddress(): string {
48+
return this.tokenConfig.contractAddress;
49+
}
50+
4751
get domain(): string {
4852
return this.tokenConfig.domain || '';
4953
}

modules/sdk-coin-xrp/test/unit/xrpToken.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,10 @@ describe('Xrp Tokens', function () {
2828
xrpTokenCoin.coin.should.equal('txrp');
2929
xrpTokenCoin.network.should.equal('Testnet');
3030
xrpTokenCoin.decimalPlaces.should.equal(15);
31+
xrpTokenCoin.contractAddress.should.equal(
32+
'rQhWct2fv4Vc4KRjRgMrxa8xPN9Zx9iLKV::524C555344000000000000000000000000000000'
33+
);
34+
xrpTokenCoin.issuerAddress.should.equal('rQhWct2fv4Vc4KRjRgMrxa8xPN9Zx9iLKV');
35+
xrpTokenCoin.currencyCode.should.equal('524C555344000000000000000000000000000000');
3136
});
3237
});

modules/statics/src/account.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -451,8 +451,8 @@ export class XrpCoin extends AccountCoinToken {
451451
}
452452

453453
this.domain = options.domain as string;
454-
this.currencyCode = options.currencyCode;
455-
this.issuerAddress = options.issuerAddress;
454+
this.issuerAddress = options.contractAddress.split('::')[0];
455+
this.currencyCode = options.contractAddress.split('::')[1];
456456
this.contractAddress = options.contractAddress;
457457
}
458458
}

modules/statics/src/tokenConfig.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ export type XrpTokenConfig = BaseNetworkConfig & {
7373
issuerAddress: string;
7474
currencyCode: string;
7575
domain?: string;
76+
contractAddress: string;
7677
};
7778

7879
export type SuiTokenConfig = BaseNetworkConfig & {
@@ -495,6 +496,7 @@ const formattedXrpTokens = coins.reduce((acc: XrpTokenConfig[], coin) => {
495496
issuerAddress: coin.issuerAddress,
496497
currencyCode: coin.currencyCode,
497498
domain: coin.domain,
499+
contractAddress: coin.contractAddress,
498500
});
499501
}
500502
return acc;

modules/statics/test/unit/coins.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -787,6 +787,17 @@ describe('Token contract address field defaults', () => {
787787
});
788788
});
789789
});
790+
it('have issuerAddress and currencyCode formed from contractAddress', () => {
791+
coins
792+
.filter((coin) => coin.family === CoinFamily.XRP && coin instanceof XrpCoin)
793+
.forEach((coin) => {
794+
const xrpToken = coin as XrpCoin;
795+
xrpToken.contractAddress.split('::')[0].should.not.be.empty();
796+
xrpToken.contractAddress.split('::')[1].should.not.be.empty();
797+
xrpToken.issuerAddress.should.eql(xrpToken.contractAddress.split('::')[0]);
798+
xrpToken.currencyCode.should.eql(xrpToken.contractAddress.split('::')[1]);
799+
});
800+
});
790801
});
791802

792803
describe('Cold Wallet Features', () => {

0 commit comments

Comments
 (0)