Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.4.25;
- import "./erc20.sol";
- contract AccessToken {
- address public owner; // Trader wallet
- address public manager;
- address public accessToken;
- modifier onlyManager() {
- require(msg.sender == manager, "Only visible for tokens owners");
- _;
- }
- constructor(address _owner) public {
- manager = msg.sender;
- owner = _owner;
- accessToken = new TradToken("TRC", "Access Token");
- ERC20Interface(accessToken).transfer(manager, 1);
- ERC20Interface(accessToken).transfer(owner, 1);
- }
- function enableAccountAccess(address _account) private onlyManager {
- require(ERC20Interface(accessToken).balanceOf(_account) == 0, "Duplicated account");
- ERC20Interface(accessToken).transfer(_account, 1);
- }
- function doIHaveAccess() view public {
- require(ERC20Interface(accessToken).balanceOf(msg.sender) == 1, "You don't have access");
- }
- function disableAccountAccess(address _account) private onlyManager {
- require(_account != owner, "Owner cannot disable the account");
- require(_account != manager, "Manager cannot disable the account");
- require(ERC20Interface(accessToken).balanceOf(_account) > 0, "Disabled account");
- ERC20Interface(accessToken).transferFrom(_account, this, ERC20Interface(accessToken).balanceOf(_account));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement