File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4242 "dependencies" : {
4343 "@bitgo/argon2" : " ^1.0.0" ,
4444 "@bitgo/sdk-core" : " ^36.40.0" ,
45+ "@bitgo/statics" : " ^58.35.0" ,
4546 "io-ts" : " npm:@bitgo-forks/io-ts@2.1.4" ,
4647 "@bitgo/sdk-hmac" : " ^1.9.0" ,
4748 "@bitgo/sjcl" : " ^1.1.0" ,
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ import {
2222 makeRandomKey ,
2323 sanitizeLegacyPath ,
2424} from '@bitgo/sdk-core' ;
25+ import { BaseCoin as StaticsBaseCoin } from '@bitgo/statics' ;
2526import * as sdkHmac from '@bitgo/sdk-hmac' ;
2627import { DefaultHmacAuthStrategy , type IHmacAuthStrategy } from '@bitgo/sdk-hmac' ;
2728import * as utxolib from '@bitgo/utxo-lib' ;
@@ -1582,6 +1583,11 @@ export class BitGoAPI implements BitGoBase {
15821583 GlobalCoinFactory . register ( name , coin ) ;
15831584 }
15841585
1586+ public registerWithBaseCoin ( name : string , coin : CoinConstructor , baseCoin : Readonly < StaticsBaseCoin > ) : void {
1587+ GlobalCoinFactory . register ( name , coin ) ;
1588+ GlobalCoinFactory . registerToken ( baseCoin , coin ) ;
1589+ }
1590+
15851591 /**
15861592 * Get bitcoin market data
15871593 *
Original file line number Diff line number Diff line change @@ -21,7 +21,16 @@ export const register = (sdk: BitGoBase): void => {
2121} ;
2222
2323export const registerWithCoinMap = ( sdk : BitGoBase , coinMap : CoinMap ) : void => {
24- Erc20Token . createTokenConstructors ( getFormattedErc20Tokens ( coinMap ) ) . forEach ( ( { name, coinConstructor } ) => {
24+ sdk . register ( 'eth' , Eth . createInstance ) ;
25+ sdk . register ( 'gteth' , Gteth . createInstance ) ;
26+ sdk . register ( 'teth' , Teth . createInstance ) ;
27+ sdk . register ( 'hteth' , Hteth . createInstance ) ;
28+ Erc721Token . createTokenConstructors ( ) . forEach ( ( { name, coinConstructor } ) => {
2529 sdk . register ( name , coinConstructor ) ;
2630 } ) ;
31+
32+ // Registration for dynamic ERC20 tokens that are not hardcoded in the SDK, but are present in the coin map generated using AMS.
33+ Erc20Token . createTokenConstructors ( getFormattedErc20Tokens ( coinMap ) ) . forEach ( ( { name, coinConstructor } ) => {
34+ sdk . registerWithBaseCoin ( name , coinConstructor , coinMap . get ( name ) ) ;
35+ } ) ;
2736} ;
Original file line number Diff line number Diff line change 66 GetSharingKeyOptions ,
77 IRequestTracer ,
88} from '../api' ;
9+ import { BaseCoin as StaticsBaseCoin } from '@bitgo/statics' ;
910import { IBaseCoin } from './baseCoin' ;
1011import { CoinConstructor } from './coinFactory' ;
1112import { EnvironmentName } from './environments' ;
@@ -35,4 +36,5 @@ export interface BitGoBase {
3536 setRequestTracer ( reqTracer : IRequestTracer ) : void ;
3637 url ( path : string , version ?: number ) : string ;
3738 register ( name : string , coin : CoinConstructor ) : void ;
39+ registerWithBaseCoin ( name : string , coin : CoinConstructor , baseCoin : Readonly < StaticsBaseCoin > ) : void ;
3840}
You can’t perform that action at this time.
0 commit comments