Blockwell

Q DAO Governance token v1.0

ERC20

This contract is an ERC20 token.

Name Q DAO Governance token v1.0
Symbol QDAO
Decimals 18
Total Supply 999,999 QDAO

About link description

The Q DAO Platform allows users to generate various stablecoins. The stablecoins (USDQ, KRWQ, and others) can reportedly be generated by any person who has Bitcoins at his/her disposal. The team envisages the biggest use cases to be cross-border value transfers, payments for goods and services, as well as long-term savings. Additionally, the stablecoin generation system is intended to set the foundation for a margin trading platform.

Stats

Public Functions 23
Event Types 15
Code Size 18,112 bytes

Approval Event

Parameters help
owner
address help
spender
address help
value
uint256 help

Burn Event

Parameters help
burner
address help
value
uint256 help

GovernanceContractAdded Event

Parameters help
addr
address help

GovernanceContractRemoved Event

Parameters help
addr
address help

Mint Event

Parameters help
to
address help
amount
uint256 help

OperationCancelled Event

Parameters help
operation
bytes32 help
lastCanceller
address help

OperationCreated Event

Parameters help
operation
bytes32 help
howMany
uint help
ownersCount
uint help
proposer
address help

OperationDownvoted Event

Parameters help
operation
bytes32 help
votes
uint help
ownersCount
uint help
downvoter
address help

OperationPerformed Event

Parameters help
operation
bytes32 help
howMany
uint help
ownersCount
uint help
performer
address help

OperationUpvoted Event

Parameters help
operation
bytes32 help
votes
uint help
howMany
uint help
ownersCount
uint help
upvoter
address help

OwnershipRenounced Event

Parameters help
previousOwner
address help

OwnershipTransferred Event

Parameters help
previousOwner
address help
newOwner
address help

Pause Event

Parameters help

Transfer Event

Parameters help
from
address help
to
address help
value
uint256 help

Unpause Event

Parameters help

Functions Expand All Collapse All

isOwner keyboard_arrow_up

Parameters help

Name Type
wallet
address help

Properties

Visibility help public
Mutability help constant
Source Code
    function isOwner(address wallet) public constant returns(bool) {
        return ownersIndices[wallet] > 0;
    }

ownersCount keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
    function ownersCount() public view returns(uint) {
        return owners.length;
    }

allOperationsCount keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
    function allOperationsCount() public  view returns(uint) {
        return allOperations.length;
    }

cancelPending keyboard_arrow_up

Parameters help

Name Type
operation
bytes32 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyAnyOwner checks for the following:

Requirements help

UNKNOWN VALUE must not be equal to 0
Source Code
    function cancelPending(bytes32 operation) public onlyAnyOwner {
        uint ownerIndex = ownersIndices[msg.sender] - 1;
        require((votesMaskByOperation[operation] & (2 ** ownerIndex)) != 0, "cancelPending: operation not found for this user");
        votesMaskByOperation[operation] &= ~(2 ** ownerIndex);
        uint operationVotesCount = votesCountByOperation[operation] - 1;
        votesCountByOperation[operation] = operationVotesCount;
        emit OperationDownvoted(operation, operationVotesCount, owners.length, msg.sender);
        if (operationVotesCount == 0) {
            deleteOperation(operation);
            emit OperationCancelled(operation, msg.sender);
        }
    }

transferOwnership keyboard_arrow_up

Parameters help

Name Type
_newOwner
address help
_oldOwner
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyManyOwners checks for the following:

Requirements help

Source Code
    function transferOwnership(address _newOwner, address _oldOwner) public onlyManyOwners {
        _transferOwnership(_newOwner, _oldOwner);
    }

pause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyManyOwners checks for the following:
Source Code
    function pause() public onlyManyOwners whenNotPaused {

        paused = true;
        emit Pause();
    }

unpause keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
    function unpause() public onlyManyOwners whenPaused {
        paused = false;
        emit Unpause();
    }

addAddressToGovernanceContract keyboard_arrow_up

Parameters help

Name Type
addr
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyManyOwners checks for the following:
Source Code
    function addAddressToGovernanceContract(address addr) onlyManyOwners public returns(bool success) {
        if (!governanceContracts[addr]) {
            governanceContracts[addr] = true;
            emit GovernanceContractAdded(addr);
            success = true;
        }
    }

removeAddressFromGovernanceContract keyboard_arrow_up

Parameters help

Name Type
addr
address help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyManyOwners checks for the following:
Source Code
    function removeAddressFromGovernanceContract(address addr) onlyManyOwners public returns(bool success) {
        if (governanceContracts[addr]) {
            governanceContracts[addr] = false;
            emit GovernanceContractRemoved(addr);
            success = true;
        }
    }

totalSupply keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help view
Source Code
    function totalSupply() public view returns (uint256) {
        return totalSupply_;
    }

balanceOf keyboard_arrow_up

Parameters help

Name Type
_owner
address help

Properties

Visibility help public
Mutability help view
Source Code
    function balanceOf(address _owner) public view returns (uint256) {
        return balances[_owner];
    }

transfer keyboard_arrow_up

Parameters help

Name Type
_to
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
    function transfer(
        address _to,
        uint256 _value
    )
    public
    whenNotPaused
    returns (bool)
    {
        return super.transfer(_to, _value);
    }

allowance keyboard_arrow_up

Parameters help

Name Type
_owner
address help
_spender
address help

Properties

Visibility help public
Mutability help view
Source Code
    function allowance(
        address _owner,
        address _spender
    )
    public
    view
    returns (uint256)
    {
        return allowed[_owner][_spender];
    }

transferFrom keyboard_arrow_up

Parameters help

Name Type
_from
address help
_to
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Requirements help

Source Code
    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    )
    public
    whenNotPaused
    returns (bool)
    {
        return super.transferFrom(_from, _to, _value);
    }

approve keyboard_arrow_up

Parameters help

Name Type
_spender
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
    function approve(
        address _spender,
        uint256 _value
    )
    public
    whenNotPaused
    returns (bool)
    {
        return super.approve(_spender, _value);
    }

increaseApproval keyboard_arrow_up

Parameters help

Name Type
_spender
address help
_addedValue
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
    function increaseApproval(
        address _spender,
        uint256 _addedValue
    )
    public
    returns (bool)
    {
        allowed[msg.sender][_spender] = (
        allowed[msg.sender][_spender].add(_addedValue));
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

decreaseApproval keyboard_arrow_up

Parameters help

Name Type
_spender
address help
_subtractedValue
uint256 help

Properties

Visibility help public
Mutability help transaction
Source Code
    function decreaseApproval(
        address _spender,
        uint256 _subtractedValue
    )
    public
    returns (bool)
    {
        uint256 oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue >= oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

increaseApproval keyboard_arrow_up

Parameters help

Name Type
_spender
address help
_addedValue
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
    function increaseApproval(
        address _spender,
        uint _addedValue
    )
    public
    whenNotPaused
    returns (bool success)
    {
        return super.increaseApproval(_spender, _addedValue);
    }

decreaseApproval keyboard_arrow_up

Parameters help

Name Type
_spender
address help
_subtractedValue
uint help

Properties

Visibility help public
Mutability help transaction

Modifiers help

Source Code
    function decreaseApproval(
        address _spender,
        uint _subtractedValue
    )
    public
    whenNotPaused
    returns (bool success)
    {
        return super.decreaseApproval(_spender, _subtractedValue);
    }

mint keyboard_arrow_up

Parameters help

Name Type
_to
address help
_amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyGovernanceContracts checks for the following:
Source Code
    function mint(address _to, uint256 _amount) external onlyGovernanceContracts() returns (bool){
        totalSupply_ = totalSupply_.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Mint(_to, _amount);
        emit Transfer(address(0), _to, _amount);
        return true;
    }

approveForOtherContracts keyboard_arrow_up

Parameters help

Name Type
_sender
address help
_spender
address help
_value
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyGovernanceContracts checks for the following:
Source Code
    function approveForOtherContracts(address _sender, address _spender, uint256 _value) external onlyGovernanceContracts() {
        allowed[_sender][_spender] = _value;
        emit Approval(_sender, _spender, _value);
    }

burnFrom keyboard_arrow_up

Parameters help

Name Type
_to
address help
_amount
uint256 help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyGovernanceContracts checks for the following:

Requirements help

Source Code
    function burnFrom(address _to, uint256 _amount) external onlyGovernanceContracts() returns (bool) {
        allowed[_to][msg.sender] = _amount;
        transferFrom(_to, msg.sender, _amount);
        _burn(msg.sender, _amount);
        return true;
    }

transferMany keyboard_arrow_up

Parameters help

Name Type
_recipients
address[] help
_values
uint[] help

Properties

Visibility help public
Mutability help transaction

Modifiers help

onlyGovernanceContracts checks for the following:
Source Code
    function transferMany(address[] _recipients, uint[] _values) public onlyGovernanceContracts() {
        require(_recipients.length == _values.length);
        require(_recipients.length > 0);

        for(uint i = 0; i < _recipients.length; i++) {
            address recipient = _recipients[i];
            uint value = _values[i];

            require(recipient != address(0) && value != 0);

            balances[msg.sender] = balances[msg.sender].sub(value);
            balances[recipient] = balances[recipient].add(value);
            emit Transfer(msg.sender, recipient, value);
        }
    }