chore: record interface instead of class, transport and stream muxer factory interface and minor pubsub fixes

This commit is contained in:
Vasco Santos
2020-12-03 11:21:56 +01:00
parent ef86c87b40
commit 7597875c32
8 changed files with 66 additions and 66 deletions

View File

@ -36,23 +36,25 @@ async function signMessage (peerId, message) {
* @returns {Promise<boolean>}
*/
async function verifySignature (message) {
// Get message sans the signature
const baseMessage = { ...message }
delete baseMessage.signature
delete baseMessage.key
if (!message.signature) {
throw new Error('Message must contain a signature to be verified')
}
// Get message sans the signature
const bytes = uint8ArrayConcat([
SignPrefix,
Message.encode(Object.assign(baseMessage, {
from: baseMessage.from && PeerId.createFromCID(baseMessage.from).toBytes()
}))
Message.encode({
...message,
from: message.from && PeerId.createFromCID(message.from).toBytes(),
signature: undefined,
key: undefined
})
])
// Get the public key
const pubKey = await messagePublicKey(message)
// verify the base message
// @ts-ignore - may not have signature
return pubKey.verify(bytes, message.signature)
}