@@ -73,7 +73,7 @@ contract ERC865Token is Initializable, ERC20, IERC865 {
73
73
require (_spender != address (0 ),"Invalid _spender address " );
74
74
75
75
bytes32 hashedParams = getApprovePreSignedHash (address (this ), _spender, _value, _fee, _nonce);
76
- address from = ECDSA.recover (hashedParams, _signature);
76
+ address from = ECDSA.recover (ECDSA. toEthSignedMessageHash ( hashedParams) , _signature);
77
77
require (from != address (0 ),"Invalid from address recovered " );
78
78
bytes32 hashedTx = keccak256 (abi.encodePacked (from, hashedParams));
79
79
require (hashedTxs[hashedTx] == false ,"Transaction hash was already used " );
@@ -107,7 +107,7 @@ contract ERC865Token is Initializable, ERC20, IERC865 {
107
107
require (_spender != address (0 ),"Invalid _spender address " );
108
108
109
109
bytes32 hashedParams = getIncreaseAllowancePreSignedHash (address (this ), _spender, _addedValue, _fee, _nonce);
110
- address from = ECDSA.recover (hashedParams, _signature);
110
+ address from = ECDSA.recover (ECDSA. toEthSignedMessageHash ( hashedParams) , _signature);
111
111
require (from != address (0 ),"Invalid from address recovered " );
112
112
bytes32 hashedTx = keccak256 (abi.encodePacked (from, hashedParams));
113
113
require (hashedTxs[hashedTx] == false ,"Transaction hash was already used " );
@@ -141,7 +141,7 @@ contract ERC865Token is Initializable, ERC20, IERC865 {
141
141
require (_spender != address (0 ),"Invalid _spender address " );
142
142
143
143
bytes32 hashedParams = getDecreaseAllowancePreSignedHash (address (this ), _spender, _subtractedValue, _fee, _nonce);
144
- address from = ECDSA.recover (hashedParams, _signature);
144
+ address from = ECDSA.recover (ECDSA. toEthSignedMessageHash ( hashedParams) , _signature);
145
145
require (from != address (0 ),"Invalid from address recovered " );
146
146
bytes32 hashedTx = keccak256 (abi.encodePacked (from, hashedParams));
147
147
require (hashedTxs[hashedTx] == false ,"Transaction hash was already used " );
@@ -179,7 +179,7 @@ contract ERC865Token is Initializable, ERC20, IERC865 {
179
179
180
180
bytes32 hashedParams = getTransferFromPreSignedHash (address (this ), _from, _to, _value, _fee, _nonce);
181
181
182
- address spender = ECDSA.recover (hashedParams, _signature);
182
+ address spender = ECDSA.recover (ECDSA. toEthSignedMessageHash ( hashedParams) , _signature);
183
183
require (spender != address (0 ),"Invalid spender address recovered " );
184
184
bytes32 hashedTx = keccak256 (abi.encodePacked (spender, hashedParams));
185
185
require (hashedTxs[hashedTx] == false ,"Transaction hash was already used " );
0 commit comments