Transaction Hash:
Block:
9938645 at Apr-25-2020 01:17:07 AM +UTC
Transaction Fee:
0.000313956 ETH
$0.68
Gas Used:
52,326 Gas / 6 Gwei
Emitted Events:
| 107 |
RCNToken.Transfer( _from=[Sender] 0x0a2311594059b468c9897338b027c8782398b481, _to=0x9a4B6407bB270994918391d2Ed33b6324150faA8, _value=4305835272020000000000 )
|
Account State Difference:
| Address | Before | After | State Difference | ||
|---|---|---|---|---|---|
| 0x0a231159...82398b481 |
0.778013552347635734 Eth
Nonce: 89963
|
0.777699596347635734 Eth
Nonce: 89964
| 0.000313956 | ||
|
0x5A0b54D5...D3E029c4c
Miner
| (Spark Pool) | 43.622639721384634518 Eth | 43.622953677384634518 Eth | 0.000313956 | |
| 0xF970b8E3...8D83375A6 |
Execution Trace
RCNToken.transfer( _to=0x9a4B6407bB270994918391d2Ed33b6324150faA8, _value=4305835272020000000000 ) => ( success=True )
transfer[Token (ln:37)]
pragma solidity ^0.4.11;
contract Crowdsale {
function buyTokens(address _recipient) payable;
}
contract CapWhitelist {
address public owner;
mapping (address => uint256) public whitelist;
event Set(address _address, uint256 _amount);
function CapWhitelist() {
owner = msg.sender;
// Set in prod
}
function destruct() {
require(msg.sender == owner);
selfdestruct(owner);
}
function setWhitelisted(address _address, uint256 _amount) {
require(msg.sender == owner);
setWhitelistInternal(_address, _amount);
}
function setWhitelistInternal(address _address, uint256 _amount) private {
whitelist[_address] = _amount;
Set(_address, _amount);
}
}
contract Token {
uint256 public totalSupply;
function balanceOf(address _owner) constant returns (uint256 balance);
function transfer(address _to, uint256 _value) returns (bool success);
function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
function approve(address _spender, uint256 _value) returns (bool success);
function allowance(address _owner, address _spender) constant returns (uint256 remaining);
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
/* ERC 20 token */
contract StandardToken is Token {
using SafeMath for uint256;
function transfer(address _to, uint256 _value) returns (bool success) {
if (balances[msg.sender] >= _value) {
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
} else {
return false;
}
}
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value) {
balances[_to] = balances[_to].add(_value);
balances[_from] = balances[_from].sub(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
Transfer(_from, _to, _value);
return true;
} else {
return false;
}
}
function balanceOf(address _owner) constant returns (uint256 balance) {
return balances[_owner];
}
function approve(address _spender, uint256 _value) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
return allowed[_owner][_spender];
}
function increaseApproval (address _spender, uint _addedValue) public returns (bool success) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
mapping (address => uint256) balances;
mapping (address => mapping (address => uint256)) allowed;
}
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function Ownable() {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) onlyOwner public {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
library SafeMath {
function mul(uint256 a, uint256 b) internal constant returns (uint256) {
uint256 c = a * b;
assert(a == 0 || c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal constant returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function sub(uint256 a, uint256 b) internal constant returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal constant returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
contract MintableToken is StandardToken, Ownable {
using SafeMath for uint256;
event Mint(address indexed to, uint256 amount);
event MintFinished();
bool public mintingFinished = false;
modifier canMint() {
require(!mintingFinished);
_;
}
/**
* @dev Function to mint tokens
* @param _to The address that will receive the minted tokens.
* @param _amount The amount of tokens to mint.
*/
function mint(address _to, uint256 _amount) onlyOwner canMint public {
totalSupply = totalSupply.add(_amount);
balances[_to] = balances[_to].add(_amount);
Mint(_to, _amount);
Transfer(0x0, _to, _amount);
}
/**
* @dev Function to stop minting new tokens.
*/
function finishMinting() onlyOwner public {
mintingFinished = true;
MintFinished();
}
}
contract RCNToken is MintableToken {
string public constant name = "Ripio Credit Network Token";
string public constant symbol = "RCN";
uint8 public constant decimals = 18;
string public version = "1.0";
}