Skip to content
This repository was archived by the owner on May 23, 2023. It is now read-only.

Commit 3d3a469

Browse files
committed
Hotfix s < secpk1n requirement
1 parent 435d3ce commit 3d3a469

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

ethereum/transactions.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
from ethereum.slogging import get_logger
1515
log = get_logger('eth.chain.tx')
1616

17+
# in the yellow paper it is specified that s should be smaller than secpk1n (eq.205)
18+
secpk1n = 115792089237316195423570985008687907852837564279074904382605163141518161494337
19+
20+
1721
class Transaction(rlp.Serializable):
1822

1923
"""
@@ -67,10 +71,12 @@ def __init__(self, nonce, gasprice, startgas, to, value, data, v=0, r=0, s=0):
6771

6872
@property
6973
def sender(self):
74+
7075
if not self._sender:
7176
# Determine sender
7277
if self.v:
73-
if self.r >= N or self.s >= P or self.v < 27 or self.v > 28 or self.r == 0 or self.s == 0:
78+
if self.r >= N or self.s >= P or self.v < 27 or self.v > 28 \
79+
or self.r == 0 or self.s == 0 or self.s >= secpk1n:
7480
raise InvalidTransaction("Invalid signature values!")
7581
log.debug('recovering sender')
7682
rlpdata = rlp.encode(self, UnsignedTransaction)

0 commit comments

Comments
 (0)