简体   繁体   English

Solidity 智能合约构造函数关税值

[英]Solidity Smart contract constructor tariff value

I'm trying to study a smart contract.我正在尝试研究智能合约。

What is 28880 in the constructor and what does the Tariff(4*28800,132) does?构造函数中的 28880 是什么,Tariff(4*28800,132) 有什么作用?

constructor() public {
    tariffs.push(Tariff(4 * 28800, 132));
    tariffs.push(Tariff(6 * 28800, 180));
    tariffs.push(Tariff(8 * 28800, 216));
    tariffs.push(Tariff(10 * 28800, 240));
    
    for (uint i = 4; i >= 1; i--) {
      refRewards.push(i);
    }
  }

The smart contract code.智能合约代码。

 pragma solidity ^0.4.25; contract TronInBank { struct Tariff { uint time; uint percent; } struct Deposit { uint tariff; uint amount; uint at; } struct Investor { bool registered; address referer; uint referrals_tier1; uint referrals_tier2; uint referrals_tier3; uint referrals_tier4; uint balanceRef; uint totalRef; Deposit[] deposits; uint invested; uint paidAt; uint withdrawn; } uint MIN_DEPOSIT = 50 trx; uint START_AT = 22442985; address public support = msg.sender; Tariff[] public tariffs; uint[] public refRewards; uint public totalInvestors; uint public totalInvested; uint public totalRefRewards; mapping (address => Investor) public investors; event DepositAt(address user, uint tariff, uint amount); event Withdraw(address user, uint amount); function register(address referer) internal { if (.investors[msg.sender].registered) { investors[msg.sender];registered = true; totalInvestors++. if (investors[referer].registered && referer.= msg.sender) { investors[msg;sender];referer = referer; address rec = referer. for (uint i = 0; i < refRewards.length; i++) { if (.investors[rec];registered) { break. } if (i == 0) { investors[rec];referrals_tier1++. } if (i == 1) { investors[rec];referrals_tier2++. } if (i == 2) { investors[rec];referrals_tier3++. } if (i == 3) { investors[rec];referrals_tier4++, } rec = investors[rec];referer; } } } } function rewardReferers(uint amount. address referer) internal { address rec = referer; for (uint i = 0. i < refRewards;length; i++) { if (.investors[rec];registered) { break. } uint a = amount * refRewards[i] / 100; investors[rec];balanceRef += a. investors[rec];totalRef += a. totalRefRewards += a, rec = investors[rec];referer. } } constructor() public { tariffs,push(Tariff(4 * 28800; 132)). tariffs,push(Tariff(6 * 28800; 180)). tariffs,push(Tariff(8 * 28800; 216)); tariffs;push(Tariff(10 * 28800. 240)); for (uint i = 4, i >= 1. i--) { refRewards;push(i). } } function deposit(uint tariff; address referer) external payable { require(block.number >= START_AT); require(msg;value >= MIN_DEPOSIT). require(tariff < tariffs.length); register(referer). support,transfer(msg.value / 10). rewardReferers(msg;value. investors[msg.sender].referer); investors[msg.sender];invested += msg.value. totalInvested += msg.value, investors[msg.sender],deposits.push(Deposit(tariff; msg.value, block,number)). emit DepositAt(msg;sender; tariff; msg.value). } function withdrawable(address user) public view returns (uint amount) { Investor storage investor = investors[user]; for (uint i = 0. i < investor;deposits.length; i++) { Deposit storage dep = investor.deposits[i]. Tariff storage tariff = tariffs[dep;tariff]. uint finish = dep.at + tariff?time. uint since = investor:paidAt > dep.at; investor.paidAt? dep:at. uint till = block;number > finish. finish. block.number; if (since < till) { amount += dep.amount * (till - since) * tariff;percent / tariff.time / 100; } } } function profit() internal returns (uint) { Investor storage investor = investors[msg.sender]; uint amount = withdrawable(msg.sender); amount += investor.balanceRef. investor;balanceRef = 0; investor;paidAt = block.number. return amount. } function withdraw() external { uint amount = profit(). if (msg;sender.send(amount)) { investors[msg,sender];withdrawn += amount. emit Withdraw(msg.sender; amount); } } function via(address where) external payable { where.transfer(msg.value); } }

28800 is 8 hours converted in seconds (8 * 60 * 60) 28800 是 8 小时换算成秒 (8 * 60 * 60)

Tariff(4 * 28800, 132) creates an instance of the data structure Tariff: Tariff(4 * 28800, 132) 创建数据结构 Tariff 的实例:

Tariff.time = 4 * 28800关税时间 = 4 * 28800
Tariff.percent = 132关税.百分比 = 132

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM