@@ -21,6 +21,9 @@ interface ILegacyTokenTransferOptions {
2121export type TokenType = "NFT" | "SFT" | "META" | "FNG" ;
2222
2323export class Token {
24+ /**
25+ * E.g. "FOO-abcdef", "EGLD-000000".
26+ */
2427 readonly identifier : string ;
2528 readonly nonce : bigint ;
2629
@@ -88,6 +91,10 @@ export class TokenTransfer {
8891 }
8992 }
9093
94+ /** *
95+ * @param amount
96+ * @returns @TokenTransfer from native token
97+ */
9198 static newFromNativeAmount ( amount : bigint ) : TokenTransfer {
9299 const token = new Token ( { identifier : EGLD_IDENTIFIER_FOR_MULTI_ESDTNFT_TRANSFER } ) ;
93100 return new TokenTransfer ( { token, amount } ) ;
@@ -98,15 +105,15 @@ export class TokenTransfer {
98105 }
99106
100107 /**
101- * @deprecated Use the constructor instead: new TokenTransfer({ token, amount });
108+ * @deprecated Use { @link newFromNativeAmount} instead.
102109 */
103110 static egldFromAmount ( amount : BigNumber . Value ) {
104111 const amountAsBigInteger = new BigNumber ( amount ) . shiftedBy ( EGLDNumDecimals ) . decimalPlaces ( 0 ) ;
105112 return this . egldFromBigInteger ( amountAsBigInteger ) ;
106113 }
107114
108115 /**
109- * @deprecated Use the constructor instead: new TokenTransfer({ token, amount });
116+ * @deprecated Use { @link newFromNativeAmount} instead.
110117 */
111118 static egldFromBigInteger ( amountAsBigInteger : BigNumber . Value ) {
112119 return new TokenTransfer ( {
@@ -232,10 +239,16 @@ export class TokenComputer {
232239 TOKEN_RANDOM_SEQUENCE_LENGTH = 6 ;
233240 constructor ( ) { }
234241
242+ /**
243+ * Returns token.nonce == 0
244+ */
235245 isFungible ( token : Token ) : boolean {
236246 return token . nonce === 0n ;
237247 }
238248
249+ /**
250+ * Given "FOO-abcdef-0a" returns 10.
251+ */
239252 extractNonceFromExtendedIdentifier ( identifier : string ) : number {
240253 const parts = identifier . split ( "-" ) ;
241254
@@ -252,6 +265,9 @@ export class TokenComputer {
252265 return decodeUnsignedNumber ( Buffer . from ( hexNonce , "hex" ) ) ;
253266 }
254267
268+ /**
269+ * Given "FOO-abcdef-0a" returns FOO-abcdef.
270+ */
255271 extractIdentifierFromExtendedIdentifier ( identifier : string ) : string {
256272 const parts = identifier . split ( "-" ) ;
257273 const { prefix, ticker, randomSequence } = this . splitIdentifierIntoComponents ( parts ) ;
@@ -264,6 +280,22 @@ export class TokenComputer {
264280 return ticker + "-" + randomSequence ;
265281 }
266282
283+ /**
284+ * Given "FOO-abcdef-0a" returns FOO.
285+ * Given "FOO-abcdef" returns FOO.
286+ */
287+ extractTickerFromExtendedIdentifier ( identifier : string ) : string {
288+ const parts = identifier . split ( "-" ) ;
289+ const { prefix, ticker, randomSequence } = this . splitIdentifierIntoComponents ( parts ) ;
290+
291+ this . validateExtendedIdentifier ( prefix , ticker , randomSequence , parts ) ;
292+ if ( prefix ) {
293+ this . checkLengthOfPrefix ( prefix ) ;
294+ return prefix + "-" + ticker + "-" + randomSequence ;
295+ }
296+ return ticker ;
297+ }
298+
267299 computeExtendedIdentifier ( token : Token ) : string {
268300 const parts = token . identifier . split ( "-" ) ;
269301 const { prefix, ticker, randomSequence } = this . splitIdentifierIntoComponents ( parts ) ;
@@ -315,10 +347,6 @@ export class TokenComputer {
315347 }
316348 }
317349
318- private isLowercaseAlphanumeric ( str : string ) : boolean {
319- return / ^ [ a - z 0 - 9 ] + $ / . test ( str ) ;
320- }
321-
322350 private checkLengthOfRandomSequence ( randomSequence : string ) : void {
323351 if ( randomSequence . length !== this . TOKEN_RANDOM_SEQUENCE_LENGTH ) {
324352 throw new ErrInvalidTokenIdentifier (
0 commit comments