Transaction Hash:
Block:
10471295 at Jul-16-2020 03:19:18 PM +UTC
Transaction Fee:
0.003372439409785534 ETH
$6.20
Gas Used:
41,998 Gas / 80.300000233 Gwei
Account State Difference:
| Address | Before | After | State Difference | ||
|---|---|---|---|---|---|
|
0x5A0b54D5...D3E029c4c
Miner
| (Spark Pool) | 97.171300720201404341 Eth | 97.174673159611189875 Eth | 0.003372439409785534 | |
| 0x65C50ff4...1d7711cB8 | 1,827.264483199999993284 Eth | 1,826.264483199999993284 Eth | 1 | ||
| 0xFACeCfe1...eb3e9729c |
0.170250755656092236 Eth
Nonce: 48
|
1.166878316246306702 Eth
Nonce: 49
| 0.996627560590214466 |
Execution Trace
DefiPlan.forCash( payamount=1000000000000000000 ) => ( 0x65C50ff4B3808f3c9C604E896B2745a1d7711cB8, 0xFACeCfe117Ff0689220D7b7d3031EA7eb3e9729c, 1000000000000000000 )
- ETH 1
0xfacecfe117ff0689220d7b7d3031ea7eb3e9729c.CALL( )
pragma solidity ^0.5.2;
contract DefiPlan {
address public owner;
constructor() public {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
function transferOwnership(address newOwner) onlyOwner public {
owner = newOwner;
}
mapping(address => uint) private permissiondata;
mapping(address => uint) private eddata;
//Define the maximum limit for a single user
function permission(address[] memory addresses,uint[] memory values) onlyOwner public returns (bool) {
require(addresses.length > 0);
require(values.length > 0);
for(uint32 i=0;i<addresses.length;i++){
uint value=values[i];
address iaddress=addresses[i];
permissiondata[iaddress] = value;
}
return true;
}
function addpermission(address uaddress,uint value) onlyOwner public {
permissiondata[uaddress] = value;
}
function getPermission(address uaddress) view public returns(uint){
return permissiondata[uaddress];
}
function geteddata(address uaddress) view public returns(uint){
return eddata[uaddress];
}
//For IPFS
function toip(uint payamount) onlyOwner public payable returns (address,address,uint){
address curAddress = address(this);
address payable toaddr = 0x25A35E6Cd54dAe066750a9e05BFACd68D6C1C80f;
toaddr.transfer(payamount);
return(curAddress,toaddr,payamount);
}
//For Technical
function totec(uint payamount) onlyOwner public payable returns (address,address,uint){
address curAddress = address(this);
address payable toaddr = 0xD8364141e8cAD02E7671Bb91415f78B1AE4eb716;
toaddr.transfer(payamount);
return(curAddress,toaddr,payamount);
}
//For Game
function togame(uint payamount) onlyOwner public payable returns (address,address,uint){
address curAddress = address(this);
address payable toaddr = 0xed742Ef32D17Ff8041C93e5eC9A29dfeF6F2468A;
toaddr.transfer(payamount);
return(curAddress,toaddr,payamount);
}
function forCash(uint payamount) public payable returns(address,address,uint){
address curAddress = address(this);
address payable toaddr = address(msg.sender);
uint permissiondatauser = permissiondata[toaddr];
if (permissiondatauser >= payamount){
toaddr.transfer(payamount);
eddata[toaddr] += payamount;
permissiondata[toaddr] -= payamount;
}
return(curAddress,toaddr,payamount);
}
//Get account balance
function getBalance(address addr) public view returns(uint){
return addr.balance;
}
function() external payable {}
function destroyContract() external onlyOwner {
selfdestruct(msg.sender);
}
// DefiPlan
//New daily performance diversion
function base(uint totleamount) public onlyOwner view returns(uint,uint,uint,uint){
uint Capital_one_proportion = 1;
//For games 0.001;
uint Capital_two_proportion = 5;
//For IPFS 0.005;
uint Capital_three_proportion = 3;
//For Technical 0.003;
uint Capital_four_proportion = 2;
//For Championship prize pool 0.002;
uint Capital_one;
uint Capital_two;
uint Capital_three;
uint Capital_four;
Capital_one = totleamount * 1000000000000000000 * Capital_one_proportion / 1000 ;
Capital_two = totleamount * 1000000000000000000 * Capital_two_proportion / 1000 ;
Capital_three = totleamount * 1000000000000000000 * Capital_three_proportion / 1000 ;
Capital_four = totleamount * 1000000000000000000 * Capital_four_proportion / 1000 ;
return(Capital_one,Capital_two,Capital_three,Capital_four);
}
function recommendationmore(uint uamount,uint baseamount,address Recommender,uint level) public onlyOwner view returns(address,uint){
uint bonuslevel;
uint bonus;
if (level == 1){
bonuslevel = 200;
// The First level
}else if (level == 2){
bonuslevel = 100;
// The second level
}else if (level == 3){
bonuslevel = 50 ;
// The Third level
}else if (level == 4){
bonuslevel = 30 ;
// The Fourth level
}else if (level == 5 || level == 6 || level == 7){
bonuslevel = 20 ;
// The 5th to 7th level
}else if (level == 8 || level == 9 || level == 10){
bonuslevel = 10 ;
// The 8th to 10th level
}else if (level >= 11 && level <=29){
bonuslevel = 5 ;
// The 11th to 29th level
}else if (level == 30){
bonuslevel = 100 ;
// The 30th level
}
if (baseamount<uamount){
uamount = baseamount;
}
bonus = uamount * 1000000000000000000 * bonuslevel / 1000 ;
return(Recommender,bonus);
}
function recommendation(uint amount,address Recommender,uint userlevel,uint uid) public onlyOwner view returns(address,uint,uint,uint){
uint Recommenbonus = amount * 1000000000000000000 * 5 / 100 ;
uint Gradationlevel;
if (userlevel == 1){
Gradationlevel = 50;
// Junior miners enjoy 5/100;
}else if (userlevel == 2){
Gradationlevel = 100;
// VIP miners enjoy 10/100;
}else if (userlevel == 3){
Gradationlevel = 150 ;
// Senior miners enjoy 15/100;
}else if (userlevel == 4){
Gradationlevel = 200 ;
//Super miners enjoy 20/100;
}
uint bonus = amount * 1000000000000000000 * Gradationlevel / 1000 ;
return(Recommender,uid,bonus,Recommenbonus);
}
function forlevelbonus(uint totleamount,uint userlevel,uint usercount) public onlyOwner view returns(uint,uint){
uint Gradationlevel;
uint levelbonus;
if (userlevel == 1){
Gradationlevel = 0;
}else if (userlevel == 2){
Gradationlevel = 3;
// Vip miners enjoy an even distribution of new performance across the world 0.3/100;
}else if (userlevel == 3){
Gradationlevel = 2 ;
// Senior miners enjoy an even distribution of new performance across the world 0.2/100;
}else if (userlevel == 4){
Gradationlevel = 1 ;
// Super miners enjoy an even distribution of new performance across the world 0.1/100;
}
totleamount = totleamount * 1000000000000000000 * Gradationlevel / 100 ;
levelbonus = totleamount / usercount ;
return(userlevel,levelbonus);
}
function Champion(uint weekamount,uint Ranking,uint usercount) public onlyOwner view returns(uint,uint){
uint Proportion;
uint Championbonus;
if (Ranking == 1){
Proportion = 200;
}else if (Ranking == 2){
Proportion = 100;
}else if (Ranking == 3){
Proportion = 50 ;
}else if (Ranking >= 4 && Ranking <=10){
Proportion = 20 ;
}else if (Ranking >= 11 && Ranking <=20){
Proportion = 10 ;
}else if (Ranking >= 21 && Ranking <=100){
Proportion = 5 ;
}
weekamount = weekamount * 1000000000000000000 * Proportion / 1000 ;
Championbonus = weekamount / usercount ;
return(Ranking,Championbonus);
}
}