Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0xfc952ECF2EE199fa8C63A86424e3978F2dEB86eF
Balance 0 ETH
Nonce 198
Code Size 8357 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

8357 bytes
0x608060405260043610620000aa5760003560e01c806381045ead116200006d57806381045ead14620001e85780638da5cb5b146200027e5780639501ace214620002c2578063cb9d15d214620002f0578063ddf3d3c414620003b1578063f2fde38b14620003e157620000aa565b8063082394c414620000af5780631658fe5114620001205780632d8e6cd8146200013a5780634e4c6c1e1462000179578063715018a614620001ce575b600080fd5b348015620000bc57600080fd5b50620000c762000436565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156200010c578082015181840152602081019050620000ef565b505050509050019250505060405180910390f35b3480156200012d57600080fd5b506200013862000503565b005b3480156200014757600080fd5b5062000177600480360360208110156200016057600080fd5b810190808035906020019092919050505062000724565b005b3480156200018657600080fd5b50620001cc600480360360208110156200019f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000842565b005b348015620001db57600080fd5b50620001e662000a06565b005b348015620001f557600080fd5b506200020062000b8f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156200024257808201518184015260208101905062000225565b50505050905090810190601f168015620002705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200028b57600080fd5b506200029662000ba3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620002cf57600080fd5b50620002da62000bcc565b6040518082815260200191505060405180910390f35b620003af600480360360208110156200030857600080fd5b81019080803590602001906401000000008111156200032657600080fd5b8201836020820111156200033957600080fd5b803590602001918460018302840111640100000000831117156200035c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505062000c9a565b005b348015620003be57600080fd5b50620003c962001362565b60405180821515815260200191505060405180910390f35b348015620003ee57600080fd5b5062000434600480360360208110156200040757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001450565b005b6060600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015620004f957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311620004ae575b5050505050905090565b6200050d62001660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620005ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6200061662000ba3565b6200062062000bcc565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156200067457600080fd5b505af115801562000689573d6000803e3d6000fd5b505050506040513d6020811015620006a057600080fd5b8101908080519060200190929190505050620006bb57600080fd5b7fa2bd9fcfcdba69f52bcd9a520846ad4bd685b187483f53efc42d035b2ddebff0620006e662000ba3565b620006f062000bcc565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b6200072e62001660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006001549050816001819055507f7b2b3851907b4cf107702e79f555d0962ddf7d780d72e9d264650a97ef99546f81600154604051808381526020018281526020019250505060405180910390a15050565b6200084c62001660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200090d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0aa1e5dfbc6903a56e1aa7d5afdbd4259a11dfef8caa6159c44f8ff6eb6a85f481600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b62000a1062001660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000ad1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606062000b9e60035462001668565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801562000c5857600080fd5b505afa15801562000c6d573d6000803e3d6000fd5b505050506040513d602081101562000c8457600080fd5b8101908080519060200190929190505050905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306001546040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801562000d4e57600080fd5b505af115801562000d63573d6000803e3d6000fd5b505050506040513d602081101562000d7a57600080fd5b810190808051906020019092919050505062000d9557600080fd5b7f1b25be522a2e391824707aeb0ed2dfcb201fa9fa87ab5b6784cb65927cd07dc033600154604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a18062000df762000b8f565b6040516020018083805190602001908083835b6020831062000e2f578051825260208201915060208101905060208303925062000e0a565b6001836020036101000a038019825116818451168082178552505050505050905001807f202d205365726965732000000000000000000000000000000000000000000000815250600a0182805190602001908083835b6020831062000eaa578051825260208201915060208101905060208303925062000e85565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905060008160405162000ef290620017b8565b8080602001828103825283818151815260200191508051906020019080838360005b8381101562000f3157808201518184015260208101905062000f14565b50505050905090810190601f16801562000f5f5780820380516001836020036101000a031916815260200191505b5092505050604051809103906000f08015801562000f81573d6000803e3d6000fd5b509050600360008154809291906001019190505550600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015620010a057600080fd5b505af1158015620010b5573d6000803e3d6000fd5b505050507f6b24598605265141922419533776ab91fd1eabd50c014e3f597134d690f5876c818273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200112257600080fd5b505afa15801562001137573d6000803e3d6000fd5b505050506040513d60208110156200114e57600080fd5b81019080805190602001909291905050508373ffffffffffffffffffffffffffffffffffffffff166317d7de7c6040518163ffffffff1660e01b815260040160006040518083038186803b158015620011a657600080fd5b505afa158015620011bb573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015620011e657600080fd5b81019080805160405193929190846401000000008211156200120757600080fd5b838201915060208201858111156200121e57600080fd5b82518660018202830111640100000000821117156200123c57600080fd5b8083526020830192505050908051906020019080838360005b838110156200127257808201518184015260208101905062001255565b50505050905090810190601f168015620012a05780820380516001836020036101000a031916815260200191505b50604052505050604051808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156200132157808201518184015260208101905062001304565b50505050905090810190601f1680156200134f5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156200140d57600080fd5b505afa15801562001422573d6000803e3d6000fd5b505050506040513d60208110156200143957600080fd5b810190808051906020019092919050505011905090565b6200145a62001660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200151b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620015a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806200204a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b60606000821415620016b2576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050620017b3565b600082905060005b60008214620016df578080600101915050600a8281620016d657fe5b049150620016ba565b60608167ffffffffffffffff81118015620016f957600080fd5b506040519080825280601f01601f1916602001820160405280156200172d5781602001600182028036833780820191505090505b50905060006001830390505b60008614620017ab57600a86816200174d57fe5b0660300160f81b828280600190039350815181106200176857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8681620017a257fe5b04955062001739565b819450505050505b919050565b61088380620017c78339019056fe608060405234801561001057600080fd5b506040516108833803806108838339818101604052602081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b8382019150602082018581111561006957600080fd5b825186600182028301116401000000008211171561008657600080fd5b8083526020830192505050908051906020019080838360005b838110156100ba57808201518184015260208101905061009f565b50505050905090810190601f1680156100e75780820380516001836020036101000a031916815260200191505b5060405250505060006100fe6101b960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600190805190602001906101b29291906101c1565b505061025e565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061020257805160ff1916838001178555610230565b82800160010185558215610230579182015b8281111561022f578251825591602001919060010190610214565b5b50905061023d9190610241565b5090565b5b8082111561025a576000816000905550600101610242565b5090565b6106168061026d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806317d7de7c14610051578063715018a6146100d45780638da5cb5b146100de578063f2fde38b14610112575b600080fd5b610059610156565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561009957808201518184015260208101905061007e565b50505050905090810190601f1680156100c65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100dc6101f8565b005b6100e661037e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101546004803603602081101561012857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103a7565b005b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156101ee5780601f106101c3576101008083540402835291602001916101ee565b820191906000526020600020905b8154815290600101906020018083116101d157829003601f168201915b5050505050905090565b6102006105b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103af6105b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461046f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156104f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806105bb6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60003390509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a264697066735822122016e4e606fdcb8945a375e5cc9d76fd6233b560e742ceb1639d48a1d57bd09f7464736f6c634300060c00334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a264697066735822122053ea2ab5f29d823a37d9fc3ff9d0148815d8cd814897ecbcd79dbce5fcd13eed64736f6c634300060c0033

Verified Source Code Partial Match

Compiler: v0.6.12+commit.27d51765 EVM: istanbul Optimization: No
OtoCorp.sol 239 lines
// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.6.12;

contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor () internal { }

    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Series is Ownable {
  string name;
  mapping(address=>address[]) plugins;

  constructor(string memory _name) public {
    name = _name;
  }

  function getName() public view returns (string memory) {
    return name;
  }
}

contract OtoCorp is Ownable {
    
    uint256 private tknSeriesFee;
    IERC20 private tkn;
    uint private seriesIndex = 1;
    mapping(address=>address[]) seriesOfMembers;
    
    event TokenAddrChanged(address _oldTknAddr, address _newTknAddr);
    event ReceiveTokenFrom(address src, uint256 val);
    event NewSeriesCreated(address _contract, address _owner, string _name);
    event SeriesFeeChanged(uint256 _oldFee, uint256 _newFee);
    event TokenWithdrawn(address _owner, uint256 _total);
    
    constructor(IERC20 _tkn) public {
        tkn = _tkn;
        tknSeriesFee = 0**18;
    }
    
    function withdrawTkn() external onlyOwner {
        require(tkn.transfer(owner(), balanceTkn()));
        emit TokenWithdrawn(owner(), balanceTkn());
    }
    
    function createSeries(string memory seriesName) public payable {
        require(tkn.transferFrom(msg.sender, address(this), tknSeriesFee));
        emit ReceiveTokenFrom(msg.sender, tknSeriesFee);
        seriesName = string(abi.encodePacked(seriesName, ' - Series ', getIndex()));
        Series newContract = new Series(seriesName);
        seriesIndex ++;
        seriesOfMembers[msg.sender].push(address(newContract));
        newContract.transferOwnership(msg.sender);
        emit NewSeriesCreated(address(newContract), newContract.owner(), newContract.getName());
    }
    
    function changeTknAddr(IERC20 newTkn) external onlyOwner {
        address oldTknAddr = address(tkn);
        tkn = newTkn;
        emit TokenAddrChanged(oldTknAddr, address(tkn));
    }
    
    function changeSeriesFee(uint256 _newFee) external onlyOwner {
        uint256 oldFee = tknSeriesFee;
        tknSeriesFee = _newFee;
        emit SeriesFeeChanged(oldFee, tknSeriesFee);
    }
    
    function balanceTkn() public view returns (uint256){
        return tkn.balanceOf(address(this));
    }
    
    function isUnlockTkn() public view returns (bool){
        return tkn.allowance(msg.sender, address(this)) > 0;
    }
    
    function mySeries() public view returns (address[] memory) {
        return seriesOfMembers[msg.sender];
    }
    
    function getIndex() public view returns (string memory) {
        return uint2str(seriesIndex);
    }
    
    function uint2str(uint _i) internal pure returns (string memory _uintAsString) {
        if (_i == 0) {
            return "0";
        }
        uint j = _i;
        uint len;
        while (j != 0) {
            len++;
            j /= 10;
        }
        bytes memory bstr = new bytes(len);
        uint k = len - 1;
        while (_i != 0) {
            bstr[k--] = byte(uint8(48 + _i % 10));
            _i /= 10;
        }
        return string(bstr);
    }
}

Read Contract

balanceTkn 0x9501ace2 → uint256
getIndex 0x81045ead → string
isUnlockTkn 0xddf3d3c4 → bool
mySeries 0x082394c4 → address[]
owner 0x8da5cb5b → address

Write Contract 6 functions

These functions modify contract state and require a wallet transaction to execute.

changeSeriesFee 0x2d8e6cd8
uint256 _newFee
changeTknAddr 0x4e4c6c1e
address newTkn
createSeries 0xcb9d15d2
string seriesName
renounceOwnership 0x715018a6
No parameters
transferOwnership 0xf2fde38b
address newOwner
withdrawTkn 0x1658fe51
No parameters

Recent Transactions

No transactions found for this address