|
@@ -7,7 +7,7 @@ pragma solidity ^0.5.0;
|
|
|
* See the https://github.com/OpenZeppelin/openzeppelin-gsn-helpers[OpenZeppelin GSN helpers] for more information on
|
|
|
* how to deploy an instance of `RelayHub` on your local test network.
|
|
|
*/
|
|
|
-contract IRelayHub {
|
|
|
+interface IRelayHub {
|
|
|
// Relay management
|
|
|
|
|
|
/**
|
|
@@ -36,7 +36,7 @@ contract IRelayHub {
|
|
|
*
|
|
|
* Emits a {RelayAdded} event.
|
|
|
*/
|
|
|
- function registerRelay(uint256 transactionFee, string memory url) public;
|
|
|
+ function registerRelay(uint256 transactionFee, string calldata url) external;
|
|
|
|
|
|
/**
|
|
|
* @dev Emitted when a relay is registered or re-registerd. Looking at these events (and filtering out
|
|
@@ -52,7 +52,7 @@ contract IRelayHub {
|
|
|
*
|
|
|
* Emits a {RelayRemoved} event.
|
|
|
*/
|
|
|
- function removeRelayByOwner(address relay) public;
|
|
|
+ function removeRelayByOwner(address relay) external;
|
|
|
|
|
|
/**
|
|
|
* @dev Emitted when a relay is removed (deregistered). `unstakeTime` is the time when unstake will be callable.
|
|
@@ -65,7 +65,7 @@ contract IRelayHub {
|
|
|
*
|
|
|
* Emits an {Unstaked} event.
|
|
|
*/
|
|
|
- function unstake(address relay) public;
|
|
|
+ function unstake(address relay) external;
|
|
|
|
|
|
/**
|
|
|
* @dev Emitted when a relay is unstaked for, including the returned stake.
|
|
@@ -95,7 +95,7 @@ contract IRelayHub {
|
|
|
*
|
|
|
* Emits a {Deposited} event.
|
|
|
*/
|
|
|
- function depositFor(address target) public payable;
|
|
|
+ function depositFor(address target) external payable;
|
|
|
|
|
|
/**
|
|
|
* @dev Emitted when {depositFor} is called, including the amount and account that was funded.
|
|
@@ -113,7 +113,7 @@ contract IRelayHub {
|
|
|
*
|
|
|
* Emits a {Withdrawn} event.
|
|
|
*/
|
|
|
- function withdraw(uint256 amount, address payable dest) public;
|
|
|
+ function withdraw(uint256 amount, address payable dest) external;
|
|
|
|
|
|
/**
|
|
|
* @dev Emitted when an account withdraws funds from `RelayHub`.
|
|
@@ -136,14 +136,14 @@ contract IRelayHub {
|
|
|
address relay,
|
|
|
address from,
|
|
|
address to,
|
|
|
- bytes memory encodedFunction,
|
|
|
+ bytes calldata encodedFunction,
|
|
|
uint256 transactionFee,
|
|
|
uint256 gasPrice,
|
|
|
uint256 gasLimit,
|
|
|
uint256 nonce,
|
|
|
- bytes memory signature,
|
|
|
- bytes memory approvalData
|
|
|
- ) public view returns (uint256 status, bytes memory recipientContext);
|
|
|
+ bytes calldata signature,
|
|
|
+ bytes calldata approvalData
|
|
|
+ ) external view returns (uint256 status, bytes memory recipientContext);
|
|
|
|
|
|
// Preconditions for relaying, checked by canRelay and returned as the corresponding numeric values.
|
|
|
enum PreconditionCheck {
|
|
@@ -186,14 +186,14 @@ contract IRelayHub {
|
|
|
function relayCall(
|
|
|
address from,
|
|
|
address to,
|
|
|
- bytes memory encodedFunction,
|
|
|
+ bytes calldata encodedFunction,
|
|
|
uint256 transactionFee,
|
|
|
uint256 gasPrice,
|
|
|
uint256 gasLimit,
|
|
|
uint256 nonce,
|
|
|
- bytes memory signature,
|
|
|
- bytes memory approvalData
|
|
|
- ) public;
|
|
|
+ bytes calldata signature,
|
|
|
+ bytes calldata approvalData
|
|
|
+ ) external;
|
|
|
|
|
|
/**
|
|
|
* @dev Emitted when an attempt to relay a call failed.
|
|
@@ -229,12 +229,12 @@ contract IRelayHub {
|
|
|
* @dev Returns how much gas should be forwarded to a call to {relayCall}, in order to relay a transaction that will
|
|
|
* spend up to `relayedCallStipend` gas.
|
|
|
*/
|
|
|
- function requiredGas(uint256 relayedCallStipend) public view returns (uint256);
|
|
|
+ function requiredGas(uint256 relayedCallStipend) external view returns (uint256);
|
|
|
|
|
|
/**
|
|
|
* @dev Returns the maximum recipient charge, given the amount of gas forwarded, gas price and relay fee.
|
|
|
*/
|
|
|
- function maxPossibleCharge(uint256 relayedCallStipend, uint256 gasPrice, uint256 transactionFee) public view returns (uint256);
|
|
|
+ function maxPossibleCharge(uint256 relayedCallStipend, uint256 gasPrice, uint256 transactionFee) external view returns (uint256);
|
|
|
|
|
|
// Relay penalization.
|
|
|
// Any account can penalize relays, removing them from the system immediately, and rewarding the
|
|
@@ -247,12 +247,12 @@ contract IRelayHub {
|
|
|
*
|
|
|
* The (unsigned) transaction data and signature for both transactions must be provided.
|
|
|
*/
|
|
|
- function penalizeRepeatedNonce(bytes memory unsignedTx1, bytes memory signature1, bytes memory unsignedTx2, bytes memory signature2) public;
|
|
|
+ function penalizeRepeatedNonce(bytes calldata unsignedTx1, bytes calldata signature1, bytes calldata unsignedTx2, bytes calldata signature2) external;
|
|
|
|
|
|
/**
|
|
|
* @dev Penalize a relay that sent a transaction that didn't target `RelayHub`'s {registerRelay} or {relayCall}.
|
|
|
*/
|
|
|
- function penalizeIllegalTransaction(bytes memory unsignedTx, bytes memory signature) public;
|
|
|
+ function penalizeIllegalTransaction(bytes calldata unsignedTx, bytes calldata signature) external;
|
|
|
|
|
|
/**
|
|
|
* @dev Emitted when a relay is penalized.
|