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
Events (15) keyboard_arrow_up
Functions
isOwner keyboard_arrow_up
ownersCount keyboard_arrow_up
allOperationsCount keyboard_arrow_up
cancelPending keyboard_arrow_up
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
pause keyboard_arrow_up
unpause keyboard_arrow_up
addAddressToGovernanceContract keyboard_arrow_up
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
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
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
Source Code
function transfer(
address _to,
uint256 _value
)
public
whenNotPaused
returns (bool)
{
return super.transfer(_to, _value);
}
allowance keyboard_arrow_up
transferFrom keyboard_arrow_up
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
Source Code
function approve(
address _spender,
uint256 _value
)
public
whenNotPaused
returns (bool)
{
return super.approve(_spender, _value);
}
increaseApproval keyboard_arrow_up
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
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
Source Code
function increaseApproval(
address _spender,
uint _addedValue
)
public
whenNotPaused
returns (bool success)
{
return super.increaseApproval(_spender, _addedValue);
}
decreaseApproval keyboard_arrow_up
Source Code
function decreaseApproval(
address _spender,
uint _subtractedValue
)
public
whenNotPaused
returns (bool success)
{
return super.decreaseApproval(_spender, _subtractedValue);
}
mint keyboard_arrow_up
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
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
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
Modifiers help
onlyGovernanceContracts checks for the following:
Requirements help
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);
}
}