File tree Expand file tree Collapse file tree 2 files changed +30
-2
lines changed Expand file tree Collapse file tree 2 files changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -137,11 +137,23 @@ export class Multiaddr implements MultiaddrInterface {
137
137
}
138
138
139
139
tuples ( ) : Array < [ number , Uint8Array ?] > {
140
- return this . #tuples
140
+ return this . #tuples. map ( ( [ code , value ] ) => {
141
+ if ( value == null ) {
142
+ return [ code ]
143
+ }
144
+
145
+ return [ code , value ]
146
+ } )
141
147
}
142
148
143
149
stringTuples ( ) : Array < [ number , string ?] > {
144
- return this . #stringTuples
150
+ return this . #stringTuples. map ( ( [ code , value ] ) => {
151
+ if ( value == null ) {
152
+ return [ code ]
153
+ }
154
+
155
+ return [ code , value ]
156
+ } )
145
157
}
146
158
147
159
encapsulate ( addr : MultiaddrInput ) : Multiaddr {
Original file line number Diff line number Diff line change @@ -731,6 +731,14 @@ describe('helpers', () => {
731
731
[ 302 ]
732
732
] )
733
733
} )
734
+
735
+ it ( 'does not allow modifying parts' , ( ) => {
736
+ const ma = multiaddr ( '/ip4/0.0.0.0/tcp/1234' )
737
+ const tuples = ma . tuples ( )
738
+ tuples [ 0 ] [ 0 ] = 41
739
+
740
+ expect ( ma . toOptions ( ) ) . to . have . property ( 'family' , 4 )
741
+ } )
734
742
} )
735
743
736
744
describe ( '.stringTuples' , ( ) => {
@@ -741,6 +749,14 @@ describe('helpers', () => {
741
749
[ 302 ]
742
750
] )
743
751
} )
752
+
753
+ it ( 'does not allow modifying string parts' , ( ) => {
754
+ const ma = multiaddr ( '/ip4/0.0.0.0/tcp/1234' )
755
+ const tuples = ma . stringTuples ( )
756
+ tuples [ 0 ] [ 0 ] = 41
757
+
758
+ expect ( ma . toOptions ( ) ) . to . have . property ( 'family' , 4 )
759
+ } )
744
760
} )
745
761
746
762
describe ( '.decapsulate' , ( ) => {
You can’t perform that action at this time.
0 commit comments