mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
update code version
This commit is contained in:
parent
48e6bb51fb
commit
6ec61e283c
@ -795,7 +795,7 @@ The full contract
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
pragma solidity ^0.4.20;
|
pragma solidity ^0.4.24;
|
||||||
|
|
||||||
contract ReceiverPays {
|
contract ReceiverPays {
|
||||||
address owner = msg.sender;
|
address owner = msg.sender;
|
||||||
@ -809,7 +809,7 @@ The full contract
|
|||||||
usedNonces[nonce] = true;
|
usedNonces[nonce] = true;
|
||||||
|
|
||||||
// this recreates the message that was signed on the client
|
// this recreates the message that was signed on the client
|
||||||
bytes32 message = prefixed(keccak256(msg.sender, amount, nonce, this));
|
bytes32 message = prefixed(keccak256(abi.encodePacked(msg.sender, amount, nonce, this)));
|
||||||
|
|
||||||
require(recoverSigner(message, signature) == owner);
|
require(recoverSigner(message, signature) == owner);
|
||||||
|
|
||||||
@ -862,12 +862,11 @@ The full contract
|
|||||||
|
|
||||||
/// builds a prefixed hash to mimic the behavior of eth_sign.
|
/// builds a prefixed hash to mimic the behavior of eth_sign.
|
||||||
function prefixed(bytes32 hash) internal pure returns (bytes32) {
|
function prefixed(bytes32 hash) internal pure returns (bytes32) {
|
||||||
return keccak256("\x19Ethereum Signed Message:\n32", hash);
|
return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Writing a Simple Payment Channel
|
Writing a Simple Payment Channel
|
||||||
================================
|
================================
|
||||||
|
|
||||||
@ -999,14 +998,14 @@ The full contract
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
pragma solidity ^0.4.20;
|
pragma solidity ^0.4.24;
|
||||||
|
|
||||||
contract SimplePaymentChannel {
|
contract SimplePaymentChannel {
|
||||||
address public sender; // The account sending payments.
|
address public sender; // The account sending payments.
|
||||||
address public recipient; // The account receiving the payments.
|
address public recipient; // The account receiving the payments.
|
||||||
uint256 public expiration; // Timeout in case the recipient never closes.
|
uint256 public expiration; // Timeout in case the recipient never closes.
|
||||||
|
|
||||||
function SimplePaymentChannel(address _recipient, uint256 duration)
|
constructor (address _recipient, uint256 duration)
|
||||||
public
|
public
|
||||||
payable
|
payable
|
||||||
{
|
{
|
||||||
@ -1020,7 +1019,7 @@ The full contract
|
|||||||
view
|
view
|
||||||
returns (bool)
|
returns (bool)
|
||||||
{
|
{
|
||||||
bytes32 message = prefixed(keccak256(this, amount));
|
bytes32 message = prefixed(keccak256(abi.encodePacked(this, amount)));
|
||||||
|
|
||||||
// check that the signature is from the payment sender
|
// check that the signature is from the payment sender
|
||||||
return recoverSigner(message, signature) == sender;
|
return recoverSigner(message, signature) == sender;
|
||||||
@ -1098,7 +1097,7 @@ The full contract
|
|||||||
|
|
||||||
/// builds a prefixed hash to mimic the behavior of eth_sign.
|
/// builds a prefixed hash to mimic the behavior of eth_sign.
|
||||||
function prefixed(bytes32 hash) internal pure returns (bytes32) {
|
function prefixed(bytes32 hash) internal pure returns (bytes32) {
|
||||||
return keccak256("\x19Ethereum Signed Message:\n32", hash);
|
return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user