pragma solidity ^0.5.0; import "@openzeppelin/contracts-ethereum-package/contracts/GSN/GSNRecipient.sol"; import "@openzeppelin/upgrades/contracts/Initializable.sol"; contract GSN is Initializable, GSNRecipient { function initialize(address relayHub) public initializer { GSNRecipient.initialize(); _upgradeRelayHub(relayHub); } function acceptRelayedCall( address, address, bytes calldata, uint256, uint256, uint256, uint256, bytes calldata, uint256 ) external view returns (uint256, bytes memory) { return _approveRelayedCall(); } function getRecipientBalance() public view returns (uint) { return IRelayHub(getHubAddr()).balanceOf(address(this)); } function version() public pure returns (uint256) { return 1; } }