File tree 2 files changed +18
-4
lines changed
2 files changed +18
-4
lines changed Original file line number Diff line number Diff line change @@ -97,16 +97,23 @@ export const toMessage = async (message: PubSubRPCMessage): Promise<Message> =>
97
97
}
98
98
}
99
99
100
- return {
100
+ const from = peerIdFromBytes ( message . from )
101
+
102
+ const msg : Message = {
101
103
type : 'signed' ,
102
104
from : peerIdFromBytes ( message . from ) ,
103
105
topic : message . topic ?? '' ,
104
106
sequenceNumber : bigIntFromBytes ( message . sequenceNumber ?? new Uint8Array ( 0 ) ) ,
105
107
data : message . data ?? new Uint8Array ( 0 ) ,
106
108
signature : message . signature ?? new Uint8Array ( 0 ) ,
107
- // @ts -expect-error key need not be defined
108
- key : message . key
109
+ key : message . key ?? from . publicKey ?? new Uint8Array ( 0 )
109
110
}
111
+
112
+ if ( msg . key . length === 0 ) {
113
+ throw new CodeError ( 'Signed RPC message was missing key' , codes . ERR_MISSING_KEY )
114
+ }
115
+
116
+ return msg
110
117
}
111
118
112
119
export const toRpcMessage = ( message : Message ) : PubSubRPCMessage => {
Original file line number Diff line number Diff line change @@ -121,10 +121,17 @@ describe('utils', () => {
121
121
sequenceNumber : utils . bigIntToBytes ( 1n ) ,
122
122
signature : new Uint8Array ( 0 ) ,
123
123
key : dummyPeerID . publicKey
124
+ } ,
125
+ {
126
+ from : ( await PeerIdFactory . createEd25519PeerId ( ) ) . toBytes ( ) ,
127
+ topic : 'test' ,
128
+ data : new Uint8Array ( 0 ) ,
129
+ sequenceNumber : utils . bigIntToBytes ( 1n ) ,
130
+ signature : new Uint8Array ( 0 )
124
131
}
125
132
]
126
- const expected = [ 'signed' , 'unsigned' , 'signed' ]
127
133
134
+ const expected = [ 'signed' , 'unsigned' , 'signed' , 'signed' ]
128
135
const actual = ( await Promise . all ( cases . map ( utils . toMessage ) ) ) . map ( m => m . type )
129
136
130
137
expect ( actual ) . to . deep . equal ( expected )
You can’t perform that action at this time.
0 commit comments