@@ -6,7 +6,6 @@ import { bytesToHex, hexToBytes } from '../../util/misc';
6
6
/** A list of plutus data. */
7
7
export class PlutusList {
8
8
readonly #array = new Array < PlutusData > ( ) ;
9
- #useIndefiniteEncoding = false ;
10
9
11
10
/**
12
11
* Serializes this PlutusList instance into its CBOR representation as a Uint8Array.
@@ -15,8 +14,9 @@ export class PlutusList {
15
14
*/
16
15
toCbor ( ) : HexBlob {
17
16
const writer = new CborWriter ( ) ;
17
+ const shouldUseIndefinite = this . #array. length > 0 ;
18
18
19
- if ( this . #useIndefiniteEncoding ) {
19
+ if ( shouldUseIndefinite ) {
20
20
writer . writeStartArray ( ) ;
21
21
} else {
22
22
writer . writeStartArray ( this . #array. length ) ;
@@ -26,7 +26,7 @@ export class PlutusList {
26
26
writer . writeEncodedValue ( hexToBytes ( elem . toCbor ( ) ) ) ;
27
27
}
28
28
29
- if ( this . #useIndefiniteEncoding ) writer . writeEndArray ( ) ;
29
+ if ( shouldUseIndefinite ) writer . writeEndArray ( ) ;
30
30
31
31
return HexBlob . fromBytes ( writer . encode ( ) ) ;
32
32
}
@@ -41,9 +41,7 @@ export class PlutusList {
41
41
const list = new PlutusList ( ) ;
42
42
const reader = new CborReader ( cbor ) ;
43
43
44
- const length = reader . readStartArray ( ) ;
45
-
46
- if ( length === null ) list . #useIndefiniteEncoding = true ;
44
+ reader . readStartArray ( ) ;
47
45
48
46
while ( reader . peekState ( ) !== CborReaderState . EndArray ) {
49
47
list . add ( PlutusData . fromCbor ( bytesToHex ( reader . readEncodedValue ( ) ) ) ) ;
@@ -88,7 +86,6 @@ export class PlutusList {
88
86
* @returns true if objects are equals; otherwise false.
89
87
*/
90
88
equals ( other : PlutusList ) : boolean {
91
- if ( this . #useIndefiniteEncoding !== other . #useIndefiniteEncoding) return false ;
92
89
if ( this . #array. length !== other . #array. length ) return false ;
93
90
94
91
for ( let i = 0 ; i < this . #array. length ; ++ i ) {
0 commit comments