You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
3.5 KiB
84 lines
3.5 KiB
// SPDX-License-Identifier: MIT |
|
pragma solidity 0.8.1; |
|
|
|
contract SponsorWhitelistControl { |
|
/*** Query Functions ***/ |
|
/** |
|
* @dev get gas sponsor address of specific contract |
|
* @param contractAddr The address of the sponsored contract |
|
*/ |
|
function getSponsorForGas(address contractAddr) public view returns (address) {} |
|
|
|
/** |
|
* @dev get current Sponsored Balance for gas |
|
* @param contractAddr The address of the sponsored contract |
|
*/ |
|
function getSponsoredBalanceForGas(address contractAddr) public view returns (uint) {} |
|
|
|
/** |
|
* @dev get current Sponsored Gas fee upper bound |
|
* @param contractAddr The address of the sponsored contract |
|
*/ |
|
function getSponsoredGasFeeUpperBound(address contractAddr) public view returns (uint) {} |
|
|
|
/** |
|
* @dev get collateral sponsor address |
|
* @param contractAddr The address of the sponsored contract |
|
*/ |
|
function getSponsorForCollateral(address contractAddr) public view returns (address) {} |
|
|
|
/** |
|
* @dev get current Sponsored Balance for collateral |
|
* @param contractAddr The address of the sponsored contract |
|
*/ |
|
function getSponsoredBalanceForCollateral(address contractAddr) public view returns (uint) {} |
|
|
|
/** |
|
* @dev check if a user is in a contract's whitelist |
|
* @param contractAddr The address of the sponsored contract |
|
* @param user The address of contract user |
|
*/ |
|
function isWhitelisted(address contractAddr, address user) public view returns (bool) {} |
|
|
|
/** |
|
* @dev check if all users are in a contract's whitelist |
|
* @param contractAddr The address of the sponsored contract |
|
*/ |
|
function isAllWhitelisted(address contractAddr) public view returns (bool) {} |
|
|
|
/*** for contract admin only **/ |
|
/** |
|
* @dev contract admin add user to whitelist |
|
* @param contractAddr The address of the sponsored contract |
|
* @param addresses The user address array |
|
*/ |
|
function addPrivilegeByAdmin(address contractAddr, address[] memory addresses) public {} |
|
|
|
/** |
|
* @dev contract admin remove user from whitelist |
|
* @param contractAddr The address of the sponsored contract |
|
* @param addresses The user address array |
|
*/ |
|
function removePrivilegeByAdmin(address contractAddr, address[] memory addresses) public {} |
|
|
|
// ------------------------------------------------------------------------ |
|
// Someone will sponsor the gas cost for contract `contractAddr` with an |
|
// `upper_bound` for a single transaction. |
|
// ------------------------------------------------------------------------ |
|
function setSponsorForGas(address contractAddr, uint upperBound) public payable {} |
|
|
|
// ------------------------------------------------------------------------ |
|
// Someone will sponsor the storage collateral for contract `contractAddr`. |
|
// ------------------------------------------------------------------------ |
|
function setSponsorForCollateral(address contractAddr) public payable {} |
|
|
|
// ------------------------------------------------------------------------ |
|
// Add commission privilege for address `user` to some contract. |
|
// ------------------------------------------------------------------------ |
|
function addPrivilege(address[] memory) public {} |
|
|
|
// ------------------------------------------------------------------------ |
|
// Remove commission privilege for address `user` from some contract. |
|
// ------------------------------------------------------------------------ |
|
function removePrivilege(address[] memory) public {} |
|
} |