Skip to content

Commit 11517aa

Browse files
committed
fix unsafe forced unwrap in transaction signers
1 parent 4774e99 commit 11517aa

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

Sources/web3swift/Transaction/TransactionSigner.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public struct Web3Signer {
5151
guard let unmarshalledSignature = SECP256K1.unmarshalSignature(signatureData: serializedSignature) else {
5252
return false
5353
}
54-
let originalPublicKey = SECP256K1.privateToPublic(privateKey: privateKey)
54+
guard let originalPublicKey = SECP256K1.privateToPublic(privateKey: privateKey) else { return false }
5555
var d = BigUInt(0)
5656
if unmarshalledSignature.v >= 0 && unmarshalledSignature.v <= 3 {
5757
d = BigUInt(35)
@@ -64,7 +64,7 @@ public struct Web3Signer {
6464
transaction.r = BigUInt(Data(unmarshalledSignature.r))
6565
transaction.s = BigUInt(Data(unmarshalledSignature.s))
6666
let recoveredPublicKey = transaction.recoverPublicKey()
67-
if (!(originalPublicKey!.constantTimeComparisonTo(recoveredPublicKey))) {
67+
if !(originalPublicKey.constantTimeComparisonTo(recoveredPublicKey)) {
6868
return false
6969
}
7070
return true
@@ -89,7 +89,7 @@ public struct Web3Signer {
8989
guard let unmarshalledSignature = SECP256K1.unmarshalSignature(signatureData: serializedSignature) else {
9090
return false
9191
}
92-
let originalPublicKey = SECP256K1.privateToPublic(privateKey: privateKey)
92+
guard let originalPublicKey = SECP256K1.privateToPublic(privateKey: privateKey) else { return false }
9393
transaction.chainID = nil
9494
var d = BigUInt(0)
9595
var a = BigUInt(0)
@@ -104,7 +104,7 @@ public struct Web3Signer {
104104
transaction.r = BigUInt(Data(unmarshalledSignature.r))
105105
transaction.s = BigUInt(Data(unmarshalledSignature.s))
106106
let recoveredPublicKey = transaction.recoverPublicKey()
107-
if (!(originalPublicKey!.constantTimeComparisonTo(recoveredPublicKey))) {
107+
if !(originalPublicKey.constantTimeComparisonTo(recoveredPublicKey)) {
108108
return false
109109
}
110110
return true

0 commit comments

Comments
 (0)