Contract Overview
Balance:
8.468726283461957424 CRO
CRO Value:
$1.28 (@ $0.15/CRO)
My Name Tag:
Not Available, login to update
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0x27113eabc9de4f2ebe6faae616b345b0a468fc1ef713f44c5f854cf6acf43633 | Set Share | 1620896 | 763 days 12 hrs ago | 0x2323b9bfc3da78913ee0aafdfba435bdb55186bd | IN | 0x774ad2a08ee554e2fbecdd2e4729e87199b84876 | 0 CRO | 0.300245 |
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
DividendDistributor
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-02-23 */ // // SteakCRO - $SCRO // https://t.me/SteakCRO // //SPDX-License-Identifier: None pragma solidity ^0.8.12; interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IDividendDistributor { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; } contract DividendDistributor is IDividendDistributor { address public _token; address public _admin = 0x2323B9BfC3dA78913EE0aAfdFbA435BDb55186BD; address payable private _mrGreen = payable(0xe6497e1F2C5418978D5fC2cD32AA23315E7a41Fb); struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IDEXRouter router; address routerAddress = 0x145677FC4d9b8F19B5D56d1820c48e0443049a30; address[] shareholders; mapping (address => uint256) public shareholderIndexes; mapping (address => uint256) public shareholderClaims; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 private lastBalance; uint256 public minPeriod = 1; uint256 public minDistribution = 1 ether; uint256 currentIndex; modifier onlyToken() { require(msg.sender == _token || msg.sender == _admin || msg.sender == _mrGreen); _; } constructor () { router = IDEXRouter(routerAddress); _token = msg.sender; } receive() external payable { uint256 amount = address(this).balance - lastBalance; totalDividends = totalDividends + amount; dividendsPerShare = dividendsPerShare + (dividendsPerShareAccuracyFactor * amount / totalShares); lastBalance = address(this).balance; } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken { minPeriod = newMinPeriod; minDistribution = newMinDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares - shares[shareholder].amount + amount; shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override onlyToken { uint256 amount = address(this).balance - lastBalance; totalDividends = totalDividends + amount; dividendsPerShare = dividendsPerShare + dividendsPerShareAccuracyFactor * amount / totalShares; lastBalance = address(this).balance; } function process(uint256 gas) external override onlyToken { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 iterations = 0; uint256 gasUsed = 0; uint256 gasLeft = gasleft(); while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed += gasLeft - gasleft(); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ (bool success,) = payable(shareholder).call{value: amount, gas: 34000}(""); if(success){ totalDistributed = totalDistributed + amount; shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised + amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends - shareholderTotalExcluded; } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share * dividendsPerShare / dividendsPerShareAccuracyFactor; } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } function rescueCRO() external onlyToken { (bool tmpSuccess,) = payable(_mrGreen).call{value: address(this).balance, gas: 34000}(""); tmpSuccess = false; } function rescueCROWithTransfer() external onlyToken { payable(_mrGreen).transfer(address(this).balance); } } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface MrGreenCryptoStakingContract { function stakeFromTokenContract(address staker, uint256 amount) external; function stakeAllFromTokenContract(address staker) external; function unstakeAllFromTokenContract(address staker) external; function unstakeFromTokenContract(address staker, uint amount) external; function realiseFromTokenContract(address staker) external; function _collectCroRewards(address staker) external returns (bool); function _rescueCroRewards(address staker) external; function getLastContractBalance() external view returns (uint256); } contract SteakCRO is IBEP20, Auth { string constant _name = "SteakCRO"; string constant _symbol = "SCRO"; uint8 constant _decimals = 18; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address routerAddress = 0x145677FC4d9b8F19B5D56d1820c48e0443049a30; uint256 _totalSupply = 1 * 10**9 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply / 100; uint256 public _walletMax = _totalSupply / 50; bool public limitWallet = true; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isDividendExempt; mapping (address => bool) public limitLessAddress; uint256 public liquidityFee = 3; uint256 public stakingFee = 2; uint256 public marketingFee = 4; uint256 public rewardsFee = 5; uint256 public extraFeeOnSell = 6; uint256 private totalFee = 12; uint256 public totalFeeIfBuying = totalFee + stakingFee; uint256 public totalFeeIfSelling = 18; address public autoLiquidityReceiver = 0x2323B9BfC3dA78913EE0aAfdFbA435BDb55186BD; address public marketingWallet = 0x501caa83C2e29AceCB476FB47F679B8B67148d25; address public devWallet = 0xe6497e1F2C5418978D5fC2cD32AA23315E7a41Fb; address public MrGreenCryptoStaking; IDEXRouter public router; address public pair; uint256 public launchedAt; uint256 public blocksSinceStart; DividendDistributor public dividendDistributor; uint256 distributorGas = 300000; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public stakingRewardsActive = false; uint256 public stakingPrizePool = 0; uint256 public swapThreshold = 1 * (10 ** _decimals); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } event AutoLiquify(uint256 amountBNB, uint256 amountTokenLiquified); constructor () Auth(msg.sender) { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; dividendDistributor = new DividendDistributor(); isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isDividendExempt[pair] = true; isDividendExempt[msg.sender] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isDividendExempt[ZERO] = true; totalFee = liquidityFee + marketingFee + rewardsFee; totalFeeIfSelling = totalFee + extraFeeOnSell; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) {return _name;} function symbol() external pure override returns (string memory) {return _symbol;} function decimals() external pure override returns (uint8) {return _decimals;} function totalSupply() external view override returns (uint256) {return _totalSupply;} function getOwner() external view override returns (address) {return owner;} function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function allowance(address holder, address spender) external view override returns (uint256) {return _allowances[holder][spender];} function getCirculatingSupply() public view returns (uint256) { return _totalSupply - (balanceOf(DEAD)) - (balanceOf(ZERO)); } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) public returns (bool) { return approve(spender, type(uint256).max); } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } function changeTxLimit(uint256 newLimit) external authorized { _maxTxAmount = newLimit * _totalSupply / 1000; require(newLimit > 5, "Don't make it a honeypot! Bad dev!"); } function changeWalletLimit(uint256 newLimit) external authorized { _walletMax = newLimit * _totalSupply / 100; require(newLimit > 2, "Don't make it a reverse honeypot! Bad dev!"); } function changeIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function changeIsDividendExempt(address holder, bool exempt) external authorized { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ dividendDistributor.setShare(holder, 0); }else{ dividendDistributor.setShare(holder, _balances[holder]); } } function sendAirDropsAndIncludeAutomatically(address[] calldata accounts, uint256[] calldata amount) external onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _balances[msg.sender] -=amount[i] * 10 ** _decimals; _balances[accounts[i]] += amount[i] * 10 ** _decimals; emit Transfer(msg.sender, accounts[i], amount[i] * 10 ** _decimals); dividendDistributor.setShare(accounts[i], amount[i] * 10 ** _decimals); } } function changeFees(uint256 newLiqFee, uint256 newRewardFee, uint256 newMarketingFee, uint256 newExtraSellFee, uint256 newStakingFee) external authorized { liquidityFee = newLiqFee; rewardsFee = newRewardFee; marketingFee = newMarketingFee; extraFeeOnSell = newExtraSellFee; stakingFee = newStakingFee; totalFeeIfBuying = totalFee + stakingFee; totalFee = liquidityFee + marketingFee + rewardsFee; totalFeeIfSelling = totalFee + extraFeeOnSell; require(totalFeeIfSelling < 30, "Don't make a honeypot"); } function changeFeeReceivers(address newLiquidityReceiver, address newMarketingWallet) external authorized { autoLiquidityReceiver = newLiquidityReceiver; marketingWallet = newMarketingWallet; } function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external authorized { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit * (10 ** _decimals); } function changeDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external authorized { dividendDistributor.setDistributionCriteria(newMinPeriod, newMinDistribution); } function changeDistributorSettings(uint256 gas) external authorized { require(gas < 1750000); distributorGas = gas; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function setMrGreenCryptoStakingAddress(address addy) external authorized { MrGreenCryptoStaking = addy; limitLessAddress[MrGreenCryptoStaking] = true; } function setStakingRewardsActive(bool active) external authorized { stakingRewardsActive = active; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - (amount); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if( inSwapAndLiquify || sender == owner || limitLessAddress[recipient] || limitLessAddress[sender] ){ return _basicTransfer(sender, recipient, amount); } blocksSinceStart = block.number - launchedAt; require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); } if(!launched() && recipient == pair && sender == owner) { launch(); } if(!isTxLimitExempt[recipient] && limitWallet) { require(_balances[recipient] + amount <= _walletMax, "Exceeds max Wallet"); } _balances[sender] = _balances[sender] - (amount); uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient] + finalAmount; // Update staking pool, if active. // Update of the pool can be deactivated for launch and staking contract migration. if (stakingRewardsActive) { sendToStakingPool(); } // Dividend tracker // if(!isDividendExempt[sender]) { try dividendDistributor.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]) { try dividendDistributor.setShare(recipient, _balances[recipient]) {} catch {} } try dividendDistributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, finalAmount); return true; } function sendToStakingPool() internal { _balances[ZERO] -= stakingPrizePool; _balances[MrGreenCryptoStaking] += stakingPrizePool; uint256 rewardBalance = MrGreenCryptoStakingContract(MrGreenCryptoStaking).getLastContractBalance(); rewardBalance += stakingPrizePool; try dividendDistributor.setShare(MrGreenCryptoStaking, rewardBalance) {} catch {} emit Transfer(ZERO, MrGreenCryptoStaking, stakingPrizePool); stakingPrizePool = 0; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; if(limitLessAddress[sender]){ try dividendDistributor.setShare(sender, _balances[sender]) {} catch {} } if(!launched() && recipient == pair) { launch(); } emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount * feeApplicable / 100; _balances[address(this)] += feeAmount; emit Transfer(sender, address(this), feeAmount); // If staking tax is active, it is stored on ZERO address. // If staking payout itself is active, it is later moved from ZERO to the appropriate staking address. if (stakingFee > 0) { uint256 stakingFees = stakingFee * amount / 100; stakingFees = amount * stakingFee / 100; _balances[ZERO] += stakingFees; stakingPrizePool += stakingFees; emit Transfer(sender, ZERO, stakingFees); amount -= stakingFees; } return amount - feeAmount; } function swapBack() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify = tokensToLiquify * liquidityFee / totalFee / 2; uint256 amountToSwap = tokensToLiquify - amountToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance; uint256 totalBNBFee = totalFee - (liquidityFee / (2)); uint256 amountBNBLiquidity = amountBNB * liquidityFee / totalBNBFee / (2); uint256 amountBNBReflection = amountBNB * rewardsFee / totalBNBFee; uint256 amountBNBMarketing = amountBNB - amountBNBLiquidity - amountBNBReflection; try dividendDistributor.deposit{value: amountBNBReflection}() {} catch {} uint256 marketingShare = amountBNBMarketing * (marketingFee - 1) / marketingFee; uint256 devShare = amountBNBMarketing - marketingShare; (bool tmpSuccess,) = payable(marketingWallet).call{value: marketingShare, gas: 34000}(""); (bool tmpSuccess1,) = payable(devWallet).call{value: devShare, gas: 34000}(""); // only to supress warning msg tmpSuccess = false; tmpSuccess1 = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountBNBLiquidity, amountToLiquify); } } function _stakeAll() external { _allowances[msg.sender][MrGreenCryptoStaking] = type(uint256).max; emit Approval(msg.sender, MrGreenCryptoStaking, type(uint256).max); MrGreenCryptoStakingContract(MrGreenCryptoStaking).stakeAllFromTokenContract(msg.sender); } function _stakeSome(uint amount) external { _allowances[msg.sender][MrGreenCryptoStaking] = type(uint256).max; emit Approval(msg.sender, MrGreenCryptoStaking, type(uint256).max); MrGreenCryptoStakingContract(MrGreenCryptoStaking).stakeFromTokenContract(msg.sender, amount); } function _unstakeSome(uint amount) external { MrGreenCryptoStakingContract(MrGreenCryptoStaking).unstakeFromTokenContract(msg.sender, amount); } function _unstakeAll() external { MrGreenCryptoStakingContract(MrGreenCryptoStaking).unstakeAllFromTokenContract(msg.sender); } function _collectStakingRewardsWithoutUnstaking() external { MrGreenCryptoStakingContract(MrGreenCryptoStaking).realiseFromTokenContract(msg.sender); } function collectCroRewards() external { if(MrGreenCryptoStakingContract(MrGreenCryptoStaking)._collectCroRewards(msg.sender) == false) { MrGreenCryptoStakingContract(MrGreenCryptoStaking)._rescueCroRewards(msg.sender); } } function rescueCRO() external onlyOwner{ (bool tmpSuccess,) = payable(devWallet).call{value: address(this).balance, gas: 40000}(""); tmpSuccess = false; } function rescueCROWithTransfer() external onlyOwner{ payable(devWallet).transfer(address(this).balance); } }
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"_admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"dividendsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendsPerShareAccuracyFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"process","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueCRO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueCROWithTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shareholderClaims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shareholderIndexes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b0319908116732323b9bfc3da78913ee0aafdfba435bdb55186bd17825560028054821673e6497e1f2c5418978d5fc2cd32aa23315e7a41fb1790556004805490911673145677fc4d9b8f19b5d56d1820c48e0443049a301790556ec097ce7bc90715b34b9f1000000000600d55600f55670de0b6b3a764000060105534801561009757600080fd5b50600454600380546001600160a01b03199081166001600160a01b039093169290921790556000805490911633179055610d7c806100d66000396000f3fe6080604052600436106101185760003560e01c8063997664d7116100a0578063e64a9e6e11610064578063e64a9e6e14610360578063ecd0c0c314610375578063efca2eed14610395578063ffb2c479146103ab578063ffd49c84146103cb57600080fd5b8063997664d7146102a8578063ce7c2ac2146102be578063d0e30db014610315578063d4fda1f21461031d578063e2d2e2191461034a57600080fd5b80632d48e896116100e75780632d48e8961461021a5780633a98ef391461023a5780633d59551b146102505780634fab0ae81461026557806366817df51461027b57600080fd5b806301bc45c91461017757806311ce023d146101b457806314b6ca96146101d857806328fd3198146101fa57600080fd5b36610172576000600e544761012d9190610bec565b905080600a5461013d9190610c03565b600a55600954600d54610151908390610c1b565b61015b9190610c3a565b600c546101689190610c03565b600c555047600e55005b600080fd5b34801561018357600080fd5b50600154610197906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101c057600080fd5b506101ca600d5481565b6040519081526020016101ab565b3480156101e457600080fd5b506101f86101f3366004610c78565b6103e1565b005b34801561020657600080fd5b506101ca610215366004610ca2565b610583565b34801561022657600080fd5b506101f8610235366004610cc4565b61060c565b34801561024657600080fd5b506101ca60095481565b34801561025c57600080fd5b506101f8610658565b34801561027157600080fd5b506101ca60105481565b34801561028757600080fd5b506101ca610296366004610ca2565b60076020526000908152604090205481565b3480156102b457600080fd5b506101ca600a5481565b3480156102ca57600080fd5b506102fa6102d9366004610ca2565b60086020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101ab565b6101f86106f6565b34801561032957600080fd5b506101ca610338366004610ca2565b60066020526000908152604090205481565b34801561035657600080fd5b506101ca600c5481565b34801561036c57600080fd5b506101f861078c565b34801561038157600080fd5b50600054610197906001600160a01b031681565b3480156103a157600080fd5b506101ca600b5481565b3480156103b757600080fd5b506101f86103c6366004610ce6565b610809565b3480156103d757600080fd5b506101ca600f5481565b6000546001600160a01b031633148061040457506001546001600160a01b031633145b8061041957506002546001600160a01b031633145b61042257600080fd5b6001600160a01b038216600090815260086020526040902054156104495761044982610933565b60008111801561046f57506001600160a01b038216600090815260086020526040902054155b156104d557600580546001600160a01b0384166000818152600660205260408120839055600183018455929092527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055610508565b801580156104fa57506001600160a01b03821660009081526008602052604090205415155b156105085761050882610a59565b6001600160a01b038216600090815260086020526040902054600954829161052f91610bec565b6105399190610c03565b6009556001600160a01b038216600090815260086020526040902081905561056081610b6e565b6001600160a01b0390921660009081526008602052604090206001019190915550565b6001600160a01b0381166000908152600860205260408120546105a857506000919050565b6001600160a01b0382166000908152600860205260408120546105ca90610b6e565b6001600160a01b0384166000908152600860205260409020600101549091508082116105fa575060009392505050565b6106048183610bec565b949350505050565b6000546001600160a01b031633148061062f57506001546001600160a01b031633145b8061064457506002546001600160a01b031633145b61064d57600080fd5b600f91909155601055565b6000546001600160a01b031633148061067b57506001546001600160a01b031633145b8061069057506002546001600160a01b031633145b61069957600080fd5b6002546040516000916001600160a01b0316906184d090479084818181858888f193505050503d80600081146106eb576040519150601f19603f3d011682016040523d82523d6000602084013e6106f0565b606091505b50505050565b6000546001600160a01b031633148061071957506001546001600160a01b031633145b8061072e57506002546001600160a01b031633145b61073757600080fd5b6000600e54476107479190610bec565b905080600a546107579190610c03565b600a55600954600d5461076b908390610c1b565b6107759190610c3a565b600c546107829190610c03565b600c555047600e55565b6000546001600160a01b03163314806107af57506001546001600160a01b031633145b806107c457506002546001600160a01b031633145b6107cd57600080fd5b6002546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610806573d6000803e3d6000fd5b50565b6000546001600160a01b031633148061082c57506001546001600160a01b031633145b8061084157506002546001600160a01b031633145b61084a57600080fd5b60055480610856575050565b60008060005a90505b848210801561086d57508383105b1561092c5783601154106108815760006011555b6108b360056011548154811061089957610899610cff565b6000918252602090912001546001600160a01b0316610b91565b156108ea576108ea6005601154815481106108d0576108d0610cff565b6000918252602090912001546001600160a01b0316610933565b5a6108f59082610bec565b6108ff9083610c03565b91505a60118054919250600061091483610d15565b9190505550828061092490610d15565b93505061085f565b5050505050565b6001600160a01b0381166000908152600860205260409020546109535750565b600061095e82610583565b90508015610a55576000826001600160a01b0316826184d090604051600060405180830381858888f193505050503d80600081146109b8576040519150601f19603f3d011682016040523d82523d6000602084013e6109bd565b606091505b505090508015610a535781600b546109d59190610c03565b600b556001600160a01b03831660009081526007602090815260408083204290556008909152902060020154610a0c908390610c03565b6001600160a01b0384166000908152600860205260409020600281019190915554610a3690610b6e565b6001600160a01b0384166000908152600860205260409020600101555b505b5050565b60058054610a6990600190610bec565b81548110610a7957610a79610cff565b60009182526020808320909101546001600160a01b0384811684526006909252604090922054600580549290931692918110610ab757610ab7610cff565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260069182905260408120546005805491939291610b0390600190610bec565b81548110610b1357610b13610cff565b60009182526020808320909101546001600160a01b031683528201929092526040019020556005805480610b4957610b49610d30565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000600d54600c5483610b819190610c1b565b610b8b9190610c3a565b92915050565b600f546001600160a01b03821660009081526007602052604081205490914291610bbb9190610c03565b108015610b8b5750601054610bcf83610583565b1192915050565b634e487b7160e01b600052601160045260246000fd5b600082821015610bfe57610bfe610bd6565b500390565b60008219821115610c1657610c16610bd6565b500190565b6000816000190483118215151615610c3557610c35610bd6565b500290565b600082610c5757634e487b7160e01b600052601260045260246000fd5b500490565b80356001600160a01b0381168114610c7357600080fd5b919050565b60008060408385031215610c8b57600080fd5b610c9483610c5c565b946020939093013593505050565b600060208284031215610cb457600080fd5b610cbd82610c5c565b9392505050565b60008060408385031215610cd757600080fd5b50508035926020909101359150565b600060208284031215610cf857600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610d2957610d29610bd6565b5060010190565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a092af63981eaba036db741dabbbc7418ef61777166be0c4c21974842fb0a69464736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106101185760003560e01c8063997664d7116100a0578063e64a9e6e11610064578063e64a9e6e14610360578063ecd0c0c314610375578063efca2eed14610395578063ffb2c479146103ab578063ffd49c84146103cb57600080fd5b8063997664d7146102a8578063ce7c2ac2146102be578063d0e30db014610315578063d4fda1f21461031d578063e2d2e2191461034a57600080fd5b80632d48e896116100e75780632d48e8961461021a5780633a98ef391461023a5780633d59551b146102505780634fab0ae81461026557806366817df51461027b57600080fd5b806301bc45c91461017757806311ce023d146101b457806314b6ca96146101d857806328fd3198146101fa57600080fd5b36610172576000600e544761012d9190610bec565b905080600a5461013d9190610c03565b600a55600954600d54610151908390610c1b565b61015b9190610c3a565b600c546101689190610c03565b600c555047600e55005b600080fd5b34801561018357600080fd5b50600154610197906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101c057600080fd5b506101ca600d5481565b6040519081526020016101ab565b3480156101e457600080fd5b506101f86101f3366004610c78565b6103e1565b005b34801561020657600080fd5b506101ca610215366004610ca2565b610583565b34801561022657600080fd5b506101f8610235366004610cc4565b61060c565b34801561024657600080fd5b506101ca60095481565b34801561025c57600080fd5b506101f8610658565b34801561027157600080fd5b506101ca60105481565b34801561028757600080fd5b506101ca610296366004610ca2565b60076020526000908152604090205481565b3480156102b457600080fd5b506101ca600a5481565b3480156102ca57600080fd5b506102fa6102d9366004610ca2565b60086020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101ab565b6101f86106f6565b34801561032957600080fd5b506101ca610338366004610ca2565b60066020526000908152604090205481565b34801561035657600080fd5b506101ca600c5481565b34801561036c57600080fd5b506101f861078c565b34801561038157600080fd5b50600054610197906001600160a01b031681565b3480156103a157600080fd5b506101ca600b5481565b3480156103b757600080fd5b506101f86103c6366004610ce6565b610809565b3480156103d757600080fd5b506101ca600f5481565b6000546001600160a01b031633148061040457506001546001600160a01b031633145b8061041957506002546001600160a01b031633145b61042257600080fd5b6001600160a01b038216600090815260086020526040902054156104495761044982610933565b60008111801561046f57506001600160a01b038216600090815260086020526040902054155b156104d557600580546001600160a01b0384166000818152600660205260408120839055600183018455929092527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055610508565b801580156104fa57506001600160a01b03821660009081526008602052604090205415155b156105085761050882610a59565b6001600160a01b038216600090815260086020526040902054600954829161052f91610bec565b6105399190610c03565b6009556001600160a01b038216600090815260086020526040902081905561056081610b6e565b6001600160a01b0390921660009081526008602052604090206001019190915550565b6001600160a01b0381166000908152600860205260408120546105a857506000919050565b6001600160a01b0382166000908152600860205260408120546105ca90610b6e565b6001600160a01b0384166000908152600860205260409020600101549091508082116105fa575060009392505050565b6106048183610bec565b949350505050565b6000546001600160a01b031633148061062f57506001546001600160a01b031633145b8061064457506002546001600160a01b031633145b61064d57600080fd5b600f91909155601055565b6000546001600160a01b031633148061067b57506001546001600160a01b031633145b8061069057506002546001600160a01b031633145b61069957600080fd5b6002546040516000916001600160a01b0316906184d090479084818181858888f193505050503d80600081146106eb576040519150601f19603f3d011682016040523d82523d6000602084013e6106f0565b606091505b50505050565b6000546001600160a01b031633148061071957506001546001600160a01b031633145b8061072e57506002546001600160a01b031633145b61073757600080fd5b6000600e54476107479190610bec565b905080600a546107579190610c03565b600a55600954600d5461076b908390610c1b565b6107759190610c3a565b600c546107829190610c03565b600c555047600e55565b6000546001600160a01b03163314806107af57506001546001600160a01b031633145b806107c457506002546001600160a01b031633145b6107cd57600080fd5b6002546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610806573d6000803e3d6000fd5b50565b6000546001600160a01b031633148061082c57506001546001600160a01b031633145b8061084157506002546001600160a01b031633145b61084a57600080fd5b60055480610856575050565b60008060005a90505b848210801561086d57508383105b1561092c5783601154106108815760006011555b6108b360056011548154811061089957610899610cff565b6000918252602090912001546001600160a01b0316610b91565b156108ea576108ea6005601154815481106108d0576108d0610cff565b6000918252602090912001546001600160a01b0316610933565b5a6108f59082610bec565b6108ff9083610c03565b91505a60118054919250600061091483610d15565b9190505550828061092490610d15565b93505061085f565b5050505050565b6001600160a01b0381166000908152600860205260409020546109535750565b600061095e82610583565b90508015610a55576000826001600160a01b0316826184d090604051600060405180830381858888f193505050503d80600081146109b8576040519150601f19603f3d011682016040523d82523d6000602084013e6109bd565b606091505b505090508015610a535781600b546109d59190610c03565b600b556001600160a01b03831660009081526007602090815260408083204290556008909152902060020154610a0c908390610c03565b6001600160a01b0384166000908152600860205260409020600281019190915554610a3690610b6e565b6001600160a01b0384166000908152600860205260409020600101555b505b5050565b60058054610a6990600190610bec565b81548110610a7957610a79610cff565b60009182526020808320909101546001600160a01b0384811684526006909252604090922054600580549290931692918110610ab757610ab7610cff565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260069182905260408120546005805491939291610b0390600190610bec565b81548110610b1357610b13610cff565b60009182526020808320909101546001600160a01b031683528201929092526040019020556005805480610b4957610b49610d30565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000600d54600c5483610b819190610c1b565b610b8b9190610c3a565b92915050565b600f546001600160a01b03821660009081526007602052604081205490914291610bbb9190610c03565b108015610b8b5750601054610bcf83610583565b1192915050565b634e487b7160e01b600052601160045260246000fd5b600082821015610bfe57610bfe610bd6565b500390565b60008219821115610c1657610c16610bd6565b500190565b6000816000190483118215151615610c3557610c35610bd6565b500290565b600082610c5757634e487b7160e01b600052601260045260246000fd5b500490565b80356001600160a01b0381168114610c7357600080fd5b919050565b60008060408385031215610c8b57600080fd5b610c9483610c5c565b946020939093013593505050565b600060208284031215610cb457600080fd5b610cbd82610c5c565b9392505050565b60008060408385031215610cd757600080fd5b50508035926020909101359150565b600060208284031215610cf857600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610d2957610d29610bd6565b5060010190565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a092af63981eaba036db741dabbbc7418ef61777166be0c4c21974842fb0a69464736f6c634300080c0033
Deployed ByteCode Sourcemap
2797:5956:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4112:14;4153:11;;4129:21;:35;;;;:::i;:::-;4112:52;;4209:6;4192:14;;:23;;;;:::i;:::-;4175:14;:40;4310:11;;4267:31;;:40;;4301:6;;4267:40;:::i;:::-;:54;;;;:::i;:::-;4246:17;;:76;;;;:::i;:::-;4226:17;:96;-1:-1:-1;4347:21:0;4333:11;:35;2797:5956;;;;;2885:66;;;;;;;;;;-1:-1:-1;2885:66:0;;;;-1:-1:-1;;;;;2885:66:0;;;;;;-1:-1:-1;;;;;968:32:1;;;950:51;;938:2;923:18;2885:66:0;;;;;;;;3615:57;;;;;;;;;;;;;;;;;;;1158:25:1;;;1146:2;1131:18;3615:57:0;1012:177:1;4593:638:0;;;;;;;;;;-1:-1:-1;4593:638:0;;;;;:::i;:::-;;:::i;:::-;;7276:514;;;;;;;;;;-1:-1:-1;7276:514:0;;;;;:::i;:::-;;:::i;4384:201::-;;;;;;;;;;-1:-1:-1;4384:201:0;;;;;:::i;:::-;;:::i;3469:26::-;;;;;;;;;;;;;;;;8445:177;;;;;;;;;;;;;:::i;3751:40::-;;;;;;;;;;;;;;;;3360:53;;;;;;;;;;-1:-1:-1;3360:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;3502:29;;;;;;;;;;;;;;;;3420:40;;;;;;;;;;-1:-1:-1;3420:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:25:1;;;2333:2;2318:18;;2311:34;;;;2361:18;;;2354:34;2265:2;2250:18;3420:40:0;2075:319:1;5239:328:0;;;:::i;3299:54::-;;;;;;;;;;-1:-1:-1;3299:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;3576:32;;;;;;;;;;;;;;;;8630:120;;;;;;;;;;;;;:::i;2857:21::-;;;;;;;;;;-1:-1:-1;2857:21:0;;;;-1:-1:-1;;;;;2857:21:0;;;3538:31;;;;;;;;;;;;;;;;5575:762;;;;;;;;;;-1:-1:-1;5575:762:0;;;;;:::i;:::-;;:::i;3716:28::-;;;;;;;;;;;;;;;;4593:638;3883:6;;-1:-1:-1;;;;;3883:6:0;3869:10;:20;;:44;;-1:-1:-1;3907:6:0;;-1:-1:-1;;;;;3907:6:0;3893:10;:20;3869:44;:70;;;-1:-1:-1;3931:8:0;;-1:-1:-1;;;;;3931:8:0;3917:10;:22;3869:70;3861:79;;;;;;-1:-1:-1;;;;;4690:19:0;::::1;4719:1;4690:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;4687:92:::1;;4736:31;4755:11;4736:18;:31::i;:::-;4803:1;4794:6;:10;:45;;;;-1:-1:-1::0;;;;;;4808:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;:31;4794:45:::1;4791:214;;;8069:12:::0;:19;;-1:-1:-1;;;;;8035:31:0;;;;;;:18;:31;;;;;:53;;;8099:30;;;;;;;;;;;;;-1:-1:-1;;;;;;8099:30:0;;;;;;4791:214:::1;;;4902:11:::0;;:45;::::1;;;-1:-1:-1::0;;;;;;4917:19:0;::::1;4946:1;4917:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;;4902:45:::1;4899:106;;;4963:30;4981:11;4963:17;:30::i;:::-;-1:-1:-1::0;;;;;5045:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;5031:11:::1;::::0;5074:6;;5031:40:::1;::::0;::::1;:::i;:::-;:49;;;;:::i;:::-;5017:11;:63:::0;-1:-1:-1;;;;;5091:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:35;;;5173:50:::1;5120:6:::0;5173:22:::1;:50::i;:::-;-1:-1:-1::0;;;;;5137:19:0;;::::1;;::::0;;;:6:::1;:19;::::0;;;;:33:::1;;:86:::0;;;;-1:-1:-1;4593:638:0:o;7276:514::-;-1:-1:-1;;;;;7368:19:0;;7345:7;7368:19;;;:6;:19;;;;;:26;7365:70;;-1:-1:-1;7422:1:0;;7276:514;-1:-1:-1;7276:514:0:o;7365:70::-;-1:-1:-1;;;;;7504:19:0;;7445:33;7504:19;;;:6;:19;;;;;:26;7481:50;;:22;:50::i;:::-;-1:-1:-1;;;;;7577:19:0;;7542:32;7577:19;;;:6;:19;;;;;:33;;;7445:86;;-1:-1:-1;7624:53:0;;;7621:92;;-1:-1:-1;7700:1:0;;7276:514;-1:-1:-1;;;7276:514:0:o;7621:92::-;7730:52;7758:24;7730:25;:52;:::i;:::-;7723:59;7276:514;-1:-1:-1;;;;7276:514:0:o;4384:201::-;3883:6;;-1:-1:-1;;;;;3883:6:0;3869:10;:20;;:44;;-1:-1:-1;3907:6:0;;-1:-1:-1;;;;;3907:6:0;3893:10;:20;3869:44;:70;;;-1:-1:-1;3931:8:0;;-1:-1:-1;;;;;3931:8:0;3917:10;:22;3869:70;3861:79;;;;;;4506:9:::1;:24:::0;;;;4541:15:::1;:36:::0;4384:201::o;8445:177::-;3883:6;;-1:-1:-1;;;;;3883:6:0;3869:10;:20;;:44;;-1:-1:-1;3907:6:0;;-1:-1:-1;;;;;3907:6:0;3893:10;:20;3869:44;:70;;;-1:-1:-1;3931:8:0;;-1:-1:-1;;;;;3931:8:0;3917:10;:22;3869:70;3861:79;;;;;;8525:8:::1;::::0;8517:68:::1;::::0;8497:15:::1;::::0;-1:-1:-1;;;;;8525:8:0::1;::::0;8575:5:::1;::::0;8547:21:::1;::::0;8497:15;8517:68;8497:15;8517:68;8547:21;8525:8;8575:5;8517:68:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;8445:177:0:o;5239:328::-;3883:6;;-1:-1:-1;;;;;3883:6:0;3869:10;:20;;:44;;-1:-1:-1;3907:6:0;;-1:-1:-1;;;;;3907:6:0;3893:10;:20;3869:44;:70;;;-1:-1:-1;3931:8:0;;-1:-1:-1;;;;;3931:8:0;3917:10;:22;3869:70;3861:79;;;;;;5305:14:::1;5346:11;;5322:21;:35;;;;:::i;:::-;5305:52;;5402:6;5385:14;;:23;;;;:::i;:::-;5368:14;:40:::0;5502:11:::1;::::0;5459:31:::1;::::0;:40:::1;::::0;5493:6;;5459:40:::1;:::i;:::-;:54;;;;:::i;:::-;5439:17;;:74;;;;:::i;:::-;5419:17;:94:::0;-1:-1:-1;5538:21:0::1;5524:11;:35:::0;5239:328::o;8630:120::-;3883:6;;-1:-1:-1;;;;;3883:6:0;3869:10;:20;;:44;;-1:-1:-1;3907:6:0;;-1:-1:-1;;;;;3907:6:0;3893:10;:20;3869:44;:70;;;-1:-1:-1;3931:8:0;;-1:-1:-1;;;;;3931:8:0;3917:10;:22;3869:70;3861:79;;;;;;8701:8:::1;::::0;8693:49:::1;::::0;-1:-1:-1;;;;;8701:8:0;;::::1;::::0;8720:21:::1;8693:49:::0;::::1;;;::::0;8701:8:::1;8693:49:::0;8701:8;8693:49;8720:21;8701:8;8693:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8630:120::o:0;5575:762::-;3883:6;;-1:-1:-1;;;;;3883:6:0;3869:10;:20;;:44;;-1:-1:-1;3907:6:0;;-1:-1:-1;;;;;3907:6:0;3893:10;:20;3869:44;:70;;;-1:-1:-1;3931:8:0;;-1:-1:-1;;;;;3931:8:0;3917:10;:22;3869:70;3861:79;;;;;;5673:12:::1;:19:::0;5708:21;5705:59:::1;;5746:7;8693:49;8630:120::o:0;5705:59::-:1;5776:18;5809:15:::0;5839::::1;5857:9;5839:27;;5879:451;5895:3;5885:7;:13;:46;;;;;5915:16;5902:10;:29;5885:46;5879:451;;;5969:16;5953:12;;:32;5950:87;;6020:1;6005:12;:16:::0;5950:87:::1;6056:44;6073:12;6086;;6073:26;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;6073:26:0::1;6056:16;:44::i;:::-;6053:129;;;6120:46;6139:12;6152;;6139:26;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;6139:26:0::1;6120:18;:46::i;:::-;6219:9;6209:19;::::0;:7;:19:::1;:::i;:::-;6198:30;::::0;;::::1;:::i;:::-;;;6253:9;6277:12;:14:::0;;6243:19;;-1:-1:-1;6277:12:0::1;:14;::::0;::::1;:::i;:::-;;;;;;6306:12;;;;;:::i;:::-;;;;5879:451;;;5633:704;;;;5575:762:::0;:::o;6588:680::-;-1:-1:-1;;;;;6660:19:0;;;;;;:6;:19;;;;;:26;6657:46;;6588:680;:::o;6657:46::-;6715:14;6732:30;6750:11;6732:17;:30::i;:::-;6715:47;-1:-1:-1;6776:10:0;;6773:488;;6803:12;6828:11;-1:-1:-1;;;;;6820:25:0;6853:6;6866:5;6820:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6802:74;;;6894:7;6891:359;;;6959:6;6940:16;;:25;;;;:::i;:::-;6921:16;:44;-1:-1:-1;;;;;6984:30:0;;;;;;:17;:30;;;;;;;;7017:15;6984:48;;7087:6;:19;;;;;:33;;;:42;;7123:6;;7087:42;:::i;:::-;-1:-1:-1;;;;;7051:19:0;;;;;;:6;:19;;;;;:33;;;:78;;;;7207:26;7184:50;;:22;:50::i;:::-;-1:-1:-1;;;;;7148:19:0;;;;;;:6;:19;;;;;:33;;:86;6891:359;6787:474;6773:488;6646:622;6588:680;:::o;8145:288::-;8261:12;8274:19;;:21;;8294:1;;8274:21;:::i;:::-;8261:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8226:31:0;;;;;:18;:31;;;;;;;;8213:12;:45;;8261:35;;;;;8213:12;:45;;;;;;:::i;:::-;;;;;;;;;;;;;:83;;-1:-1:-1;;;;;;8213:83:0;-1:-1:-1;;;;;8213:83:0;;;;;;8365:31;;;;;:18;:31;;;;;;;;8326:12;8339:19;;8365:31;;:18;8213:45;8339:21;;-1:-1:-1;;8339:21:0;:::i;:::-;8326:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8326:35:0;8307:55;;;;;;;;;;;;:89;8407:12;:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;8407:18:0;;;;;-1:-1:-1;;;;;;8407:18:0;;;;;;-1:-1:-1;8145:288:0:o;7798:164::-;7868:7;7923:31;;7903:17;;7895:5;:25;;;;:::i;:::-;:59;;;;:::i;:::-;7888:66;7798:164;-1:-1:-1;;7798:164:0:o;6349:231::-;6476:9;;-1:-1:-1;;;;;6443:30:0;;6419:4;6443:30;;;:17;:30;;;;;;6419:4;;6488:15;;6443:42;;6476:9;6443:42;:::i;:::-;:60;:129;;;;;6557:15;;6524:30;6542:11;6524:17;:30::i;:::-;:48;6436:136;6349:231;-1:-1:-1;;6349:231:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;186:4;214:1;211;208:8;205:34;;;219:18;;:::i;:::-;-1:-1:-1;256:9:1;;146:125::o;276:128::-;316:3;347:1;343:6;340:1;337:13;334:39;;;353:18;;:::i;:::-;-1:-1:-1;389:9:1;;276:128::o;409:168::-;449:7;515:1;511;507:6;503:14;500:1;497:21;492:1;485:9;478:17;474:45;471:71;;;522:18;;:::i;:::-;-1:-1:-1;562:9:1;;409:168::o;582:217::-;622:1;648;638:132;;692:10;687:3;683:20;680:1;673:31;727:4;724:1;717:15;755:4;752:1;745:15;638:132;-1:-1:-1;784:9:1;;582:217::o;1194:173::-;1262:20;;-1:-1:-1;;;;;1311:31:1;;1301:42;;1291:70;;1357:1;1354;1347:12;1291:70;1194:173;;;:::o;1372:254::-;1440:6;1448;1501:2;1489:9;1480:7;1476:23;1472:32;1469:52;;;1517:1;1514;1507:12;1469:52;1540:29;1559:9;1540:29;:::i;:::-;1530:39;1616:2;1601:18;;;;1588:32;;-1:-1:-1;;;1372:254:1:o;1631:186::-;1690:6;1743:2;1731:9;1722:7;1718:23;1714:32;1711:52;;;1759:1;1756;1749:12;1711:52;1782:29;1801:9;1782:29;:::i;:::-;1772:39;1631:186;-1:-1:-1;;;1631:186:1:o;1822:248::-;1890:6;1898;1951:2;1939:9;1930:7;1926:23;1922:32;1919:52;;;1967:1;1964;1957:12;1919:52;-1:-1:-1;;1990:23:1;;;2060:2;2045:18;;;2032:32;;-1:-1:-1;1822:248:1:o;2399:180::-;2458:6;2511:2;2499:9;2490:7;2486:23;2482:32;2479:52;;;2527:1;2524;2517:12;2479:52;-1:-1:-1;2550:23:1;;2399:180;-1:-1:-1;2399:180:1:o;2794:127::-;2855:10;2850:3;2846:20;2843:1;2836:31;2886:4;2883:1;2876:15;2910:4;2907:1;2900:15;2926:135;2965:3;-1:-1:-1;;2986:17:1;;2983:43;;;3006:18;;:::i;:::-;-1:-1:-1;3053:1:1;3042:13;;2926:135::o;3066:127::-;3127:10;3122:3;3118:20;3115:1;3108:31;3158:4;3155:1;3148:15;3182:4;3179:1;3172:15
Swarm Source
ipfs://a092af63981eaba036db741dabbbc7418ef61777166be0c4c21974842fb0a694
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.