@@ -112,11 +112,6 @@ export interface SolCoinConstructorOptions extends AccountConstructorOptions {
112112 programId : string ;
113113}
114114
115- export interface AdaCoinConstructorOptions extends AccountConstructorOptions {
116- policyId : string ;
117- assetName : string ;
118- }
119-
120115export interface XrpCoinConstructorOptions extends AccountConstructorOptions {
121116 issuerAddress : string ;
122117 currencyCode : string ;
@@ -166,6 +161,11 @@ export interface CosmosTokenConstructorOptions extends AccountConstructorOptions
166161 denom : string ;
167162}
168163
164+ export interface AdaTokenConstructorOptions extends AccountConstructorOptions {
165+ uniqueAssetId : string ;
166+ policyId : string ;
167+ assetName : string ;
168+ }
169169export interface ContractAddress extends String {
170170 __contractaddress_phantom__ : never ;
171171}
@@ -413,24 +413,6 @@ export class SolCoin extends AccountCoinToken {
413413 }
414414}
415415
416- /**
417- * The Ada network supports tokens
418- * Ada tokens are identified by their policy ID and asset name
419- *
420- */
421- export class AdaCoin extends AccountCoinToken {
422- public policyId : string ;
423- public assetName : string ;
424- constructor ( options : AdaCoinConstructorOptions ) {
425- super ( {
426- ...options ,
427- } ) ;
428-
429- this . policyId = options . policyId ;
430- this . assetName = options . assetName ;
431- }
432- }
433-
434416export class EthLikeERC20Token extends ContractAddressDefinedToken {
435417 constructor ( options : Erc20ConstructorOptions ) {
436418 super ( options ) ;
@@ -713,6 +695,21 @@ export class PolyxCoin extends AccountCoinToken {
713695 }
714696}
715697
698+ export class AdaToken extends AccountCoinToken {
699+ public uniqueAssetId : string ;
700+ public policyId : string ;
701+ public assetName : string ;
702+ constructor ( options : AdaTokenConstructorOptions ) {
703+ super ( {
704+ ...options ,
705+ } ) ;
706+
707+ this . uniqueAssetId = options . uniqueAssetId ;
708+ this . policyId = options . policyId ;
709+ this . assetName = options . assetName ;
710+ }
711+ }
712+
716713/**
717714 * Factory function for account coin instances.
718715 *
@@ -1886,15 +1883,17 @@ export function adaToken(
18861883 decimalPlaces : number ,
18871884 policyId : string ,
18881885 assetName : string ,
1886+ encodedAssetName : string ,
18891887 asset : UnderlyingAsset ,
18901888 features : CoinFeature [ ] = [ ...AccountCoin . DEFAULT_FEATURES , CoinFeature . REQUIRES_RESERVE ] ,
18911889 prefix = '' ,
18921890 suffix : string = name . toUpperCase ( ) ,
18931891 network : AccountNetwork = Networks . main . ada ,
18941892 primaryKeyCurve : KeyCurve = KeyCurve . Ed25519
18951893) {
1894+ const uniqueAssetId = `${ policyId } ${ encodedAssetName } ` ;
18961895 return Object . freeze (
1897- new AdaCoin ( {
1896+ new AdaToken ( {
18981897 id,
18991898 name,
19001899 fullName,
@@ -1909,6 +1908,7 @@ export function adaToken(
19091908 isToken : true ,
19101909 primaryKeyCurve,
19111910 baseUnit : BaseUnit . ADA ,
1911+ uniqueAssetId,
19121912 } )
19131913 ) ;
19141914}
@@ -1935,13 +1935,27 @@ export function tadaToken(
19351935 decimalPlaces : number ,
19361936 policyId : string ,
19371937 assetName : string ,
1938+ encodedAssetName : string ,
19381939 asset : UnderlyingAsset ,
19391940 features : CoinFeature [ ] = [ ...AccountCoin . DEFAULT_FEATURES , CoinFeature . REQUIRES_RESERVE ] ,
19401941 network : AccountNetwork = Networks . test . ada ,
19411942 prefix = '' ,
19421943 suffix : string = name . toUpperCase ( )
19431944) {
1944- return adaToken ( id , name , fullName , decimalPlaces , policyId , assetName , asset , features , prefix , suffix , network ) ;
1945+ return adaToken (
1946+ id ,
1947+ name ,
1948+ fullName ,
1949+ decimalPlaces ,
1950+ policyId ,
1951+ assetName ,
1952+ encodedAssetName ,
1953+ asset ,
1954+ features ,
1955+ prefix ,
1956+ suffix ,
1957+ network
1958+ ) ;
19451959}
19461960
19471961/**
0 commit comments