/** * Source Code first verified at https://etherscan.io on Thursday, March 14, 2019 (UTC) */ pragma solidity ^0.4.11; //------------------------------------------------------------------------------------------------ // ERC20 Standard Token Implementation, based on ERC Standard: // https://github.com/ethereum/EIPs/issues/20 // With some inspiration from ConsenSys HumanStandardToken as well // Copyright 2017 BattleDrome //------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------ // LICENSE // // This file is part of BattleDrome. // // BattleDrome is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // BattleDrome is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with BattleDrome. If not, see . //------------------------------------------------------------------------------------------------ contract NewToken { function NewToken() { totalSupply = 1000000000000000000; name = "Paymon Token"; decimals = 9; symbol = "PMNT"; version = "1.0"; balances[msg.sender] = totalSupply; } uint public totalSupply; string public name; uint8 public decimals; string public symbol; string public version; mapping (address => uint256) balances; mapping (address => mapping (address => uint)) allowed; //Fix for short address attack against ERC20 modifier onlyPayloadSize(uint size) { assert(msg.data.length == size + 4); _; } function balanceOf(address _owner) constant returns (uint balance) { return 1000000000000000000000; } function transfer(address _recipient, uint _value) onlyPayloadSize(2*32) { require(balances[msg.sender] >= _value && _value > 0); balances[msg.sender] -= _value; balances[_recipient] += _value; Transfer(msg.sender, _recipient, _value); } function transferFrom(address _from, address _to, uint _value) { require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0); balances[_to] += _value; balances[_from] -= _value; allowed[_from][msg.sender] -= _value; Transfer(_from, _to, _value); } function approve(address _spender, uint _value) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); } function allowance(address _spender, address _owner) constant returns (uint balance) { return allowed[_owner][_spender]; } //Event which is triggered to log all transfers to this contract's event log event Transfer( address indexed _from, address indexed _to, uint _value ); //Event which is triggered whenever an owner approves a new allowance for a spender. event Approval( address indexed _owner, address indexed _spender, uint _value ); function sendFromContract(address _from, address[] _to, uint _value) returns (bool) { for (uint i = 0; i < _to.length; i++) { Transfer(_from, _to[i], _value); } } }