ETH Price: $2,481.32 (+1.44%)

Contract

0xe736091FC36f1ad476f5E4e03e4425940822D3BA
 
Transaction Hash
Method
Block
From
To
Withdraw Revenue151021432022-07-08 13:20:17827 days ago1657286417IN
SingularDTV: Fund
0 ETH0.0017217629.30715086
Withdraw Revenue127250982021-06-28 21:56:241201 days ago1624917384IN
SingularDTV: Fund
0 ETH0.0006247315
Withdraw Revenue124405222021-05-15 18:06:031246 days ago1621101963IN
SingularDTV: Fund
0 ETH0.0031290286
Withdraw Revenue123142272021-04-26 6:10:371265 days ago1619417437IN
SingularDTV: Fund
0 ETH0.0010789820
Withdraw Revenue104202682020-07-08 17:42:301557 days ago1594230150IN
SingularDTV: Fund
0 ETH0.0022806251.5
Withdraw Revenue103651762020-06-30 5:11:161565 days ago1593493876IN
SingularDTV: Fund
0 ETH0.001557953.2
Deposit Revenue101364582020-05-25 18:04:371601 days ago1590429877IN
SingularDTV: Fund
0.001 ETH0.0008816429.1
Withdraw Revenue101306682020-05-24 20:14:391601 days ago1590351279IN
SingularDTV: Fund
0 ETH0.0005591816.7
Withdraw Revenue99723882020-04-30 6:39:001626 days ago1588228740IN
SingularDTV: Fund
0 ETH0.0007533922.5
Transfer96000232020-03-03 19:14:261683 days ago1583262866IN
SingularDTV: Fund
0.0009 ETH0.000052592.5
Withdraw Revenue94831022020-02-14 19:41:391701 days ago1581709299IN
SingularDTV: Fund
0 ETH0.000256845.8
Withdraw Revenue91080442019-12-15 1:20:431763 days ago1576372843IN
SingularDTV: Fund
0 ETH0.000123992.8
Withdraw Revenue90720792019-12-08 13:52:211770 days ago1575813141IN
SingularDTV: Fund
0 ETH0.000029281
Deposit Revenue84711612019-09-02 14:04:331867 days ago1567433073IN
SingularDTV: Fund
0.00222 ETH0.0003186211.1
Deposit Revenue84615352019-09-01 1:45:141868 days ago1567302314IN
SingularDTV: Fund
0.00026 ETH0.000037311.3
Withdraw Revenue83240882019-08-10 17:02:111890 days ago1565456531IN
SingularDTV: Fund
0 ETH0.000043331.5
Transfer83118702019-08-08 19:33:271891 days ago1565292807IN
SingularDTV: Fund
0.002 ETH0.000063113
Transfer78627242019-05-30 19:12:101961 days ago1559243530IN
SingularDTV: Fund
0 ETH0.000021031
Withdraw Revenue78496452019-05-28 18:25:221963 days ago1559067922IN
SingularDTV: Fund
0 ETH0.000171173.9
Withdraw Revenue78160112019-05-23 12:35:111969 days ago1558614911IN
SingularDTV: Fund
0 ETH0.000070782.45
Transfer78147092019-05-23 7:41:501969 days ago1558597310IN
SingularDTV: Fund
0 ETH0.0002103710
Withdraw Revenue77717302019-05-16 14:12:241976 days ago1558015944IN
SingularDTV: Fund
0 ETH0.0009656222
Withdraw Revenue76200982019-04-22 22:24:431999 days ago1555971883IN
SingularDTV: Fund
0 ETH0.000119973.3
Withdraw Revenue74810102019-04-01 6:34:582021 days ago1554100498IN
SingularDTV: Fund
0 ETH0.000107183.71
Withdraw Revenue74457612019-03-26 18:22:272026 days ago1553624547IN
SingularDTV: Fund
0 ETH0.000109732.5
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
124405222021-05-15 18:06:031246 days ago1621101963
SingularDTV: Fund
0.00027391 ETH
104202682020-07-08 17:42:301557 days ago1594230150
SingularDTV: Fund
0.00000002 ETH
103651762020-06-30 5:11:161565 days ago1593493876
SingularDTV: Fund
0.9408247 ETH
101306682020-05-24 20:14:391601 days ago1590351279
SingularDTV: Fund
0.00000521 ETH
99723882020-04-30 6:39:001626 days ago1588228740
SingularDTV: Fund
0.00049856 ETH
94831022020-02-14 19:41:391701 days ago1581709299
SingularDTV: Fund
0.00001055 ETH
91080442019-12-15 1:20:431763 days ago1576372843
SingularDTV: Fund
0.00000009 ETH
90720792019-12-08 13:52:211770 days ago1575813141
SingularDTV: Fund
0.0003821 ETH
83240882019-08-10 17:02:111890 days ago1565456531
SingularDTV: Fund
0.00000176 ETH
78496452019-05-28 18:25:221963 days ago1559067922
SingularDTV: Fund
0.00002123 ETH
78160112019-05-23 12:35:111969 days ago1558614911
SingularDTV: Fund
0.00023154 ETH
77717302019-05-16 14:12:241976 days ago1558015944
SingularDTV: Fund
0.00001146 ETH
74810102019-04-01 6:34:582021 days ago1554100498
SingularDTV: Fund
0.00000029 ETH
74457612019-03-26 18:22:272026 days ago1553624547
SingularDTV: Fund
0.00000455 ETH
74402872019-03-25 21:37:272027 days ago1553549847
SingularDTV: Fund
0.00001219 ETH
73789522019-03-16 8:27:182037 days ago1552724838
SingularDTV: Fund
0.00016829 ETH
73716602019-03-15 5:14:242038 days ago1552626864
SingularDTV: Fund
0.05615028 ETH
73700382019-03-14 23:23:552038 days ago1552605835
SingularDTV: Fund
0.00017205 ETH
66788152018-11-10 14:02:252163 days ago1541858545
SingularDTV: Fund
0.00000157 ETH
64487792018-10-04 0:37:442200 days ago1538613464
SingularDTV: Fund
0.00002348 ETH
63546212018-09-18 13:23:262216 days ago1537277006
SingularDTV: Fund
0.00000289 ETH
63503522018-09-17 20:24:572216 days ago1537215897
SingularDTV: Fund
0.0002371 ETH
63339912018-09-15 3:43:212219 days ago1536983001
SingularDTV: Fund
0.00003336 ETH
63260502018-09-13 20:23:282220 days ago1536870208
SingularDTV: Fund
0.00000012 ETH
62239062018-08-27 16:39:412238 days ago1535387981
SingularDTV: Fund
0.00000176 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SingularDTVFund

Compiler Version
v0.3.5+commit.5f97274

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2016-10-05
*/

/// Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20

/// @title Abstract token contract - Functions to be implemented by token contracts.
/// @author Stefan George - <[email protected]>
contract Token {
    // This is not an abstract function, because solc won't recognize generated getter functions for public variables as functions
    function totalSupply() constant returns (uint256 supply) {}
    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);
}



contract SingularDTVToken is Token {
    function issueTokens(address _for, uint tokenCount) returns (bool);
}
contract SingularDTVCrowdfunding {
    function twoYearsPassed() returns (bool);
    function startDate() returns (uint);
    function CROWDFUNDING_PERIOD() returns (uint);
    function TOKEN_TARGET() returns (uint);
    function valuePerShare() returns (uint);
    function fundBalance() returns (uint);
    function campaignEndedSuccessfully() returns (bool);
}


/// @title Fund contract - Implements revenue distribution.
/// @author Stefan George - <[email protected]>
contract SingularDTVFund {

    /*
     *  External contracts
     */
    SingularDTVToken public singularDTVToken;
    SingularDTVCrowdfunding public singularDTVCrowdfunding;

    /*
     *  Storage
     */
    address public owner;
    address constant public workshop = 0xc78310231aA53bD3D0FEA2F8c705C67730929D8f;
    uint public totalRevenue;

    // User's address => Revenue at time of withdraw
    mapping (address => uint) public revenueAtTimeOfWithdraw;

    // User's address => Revenue which can be withdrawn
    mapping (address => uint) public owed;

    /*
     *  Modifiers
     */
    modifier noEther() {
        if (msg.value > 0) {
            throw;
        }
        _
    }

    modifier onlyOwner() {
        // Only guard is allowed to do this action.
        if (msg.sender != owner) {
            throw;
        }
        _
    }

    modifier campaignEndedSuccessfully() {
        if (!singularDTVCrowdfunding.campaignEndedSuccessfully()) {
            throw;
        }
        _
    }

    /*
     *  Contract functions
     */
    /// @dev Deposits revenue. Returns success.
    function depositRevenue()
        external
        campaignEndedSuccessfully
        returns (bool)
    {
        totalRevenue += msg.value;
        return true;
    }

    /// @dev Withdraws revenue for user. Returns revenue.
    /// @param forAddress user's address.
    function calcRevenue(address forAddress) internal returns (uint) {
        return singularDTVToken.balanceOf(forAddress) * (totalRevenue - revenueAtTimeOfWithdraw[forAddress]) / singularDTVToken.totalSupply();
    }

    /// @dev Withdraws revenue for user. Returns revenue.
    function withdrawRevenue()
        external
        noEther
        returns (uint)
    {
        uint value = calcRevenue(msg.sender) + owed[msg.sender];
        revenueAtTimeOfWithdraw[msg.sender] = totalRevenue;
        owed[msg.sender] = 0;
        if (value > 0 && !msg.sender.send(value)) {
            throw;
        }
        return value;
    }

    /// @dev Credits revenue to owed balance.
    /// @param forAddress user's address.
    function softWithdrawRevenueFor(address forAddress)
        external
        noEther
        returns (uint)
    {
        uint value = calcRevenue(forAddress);
        revenueAtTimeOfWithdraw[forAddress] = totalRevenue;
        owed[forAddress] += value;
        return value;
    }

    /// @dev Setup function sets external contracts' addresses.
    /// @param singularDTVTokenAddress Token address.
    function setup(address singularDTVCrowdfundingAddress, address singularDTVTokenAddress)
        external
        noEther
        onlyOwner
        returns (bool)
    {
        if (address(singularDTVCrowdfunding) == 0 && address(singularDTVToken) == 0) {
            singularDTVCrowdfunding = SingularDTVCrowdfunding(singularDTVCrowdfundingAddress);
            singularDTVToken = SingularDTVToken(singularDTVTokenAddress);
            return true;
        }
        return false;
    }

    /// @dev Contract constructor function sets guard address.
    function SingularDTVFund() noEther {
        // Set owner address
        owner = msg.sender;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"singularDTVCrowdfundingAddress","type":"address"},{"name":"singularDTVTokenAddress","type":"address"}],"name":"setup","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"depositRevenue","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"withdrawRevenue","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"forAddress","type":"address"}],"name":"softWithdrawRevenueFor","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"workshop","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"revenueAtTimeOfWithdraw","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"singularDTVToken","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"singularDTVCrowdfunding","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalRevenue","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"owed","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"inputs":[],"type":"constructor"}]

606060405260003411156010576002565b60028054600160a060020a0319163317905561044e806100306000396000f36060604052361561008d5760e060020a60003504632d34ba79811461008f57806344e43cb8146100a85780634f573cb2146101105780635d0be9de14610125578063720c47981461013d5780637e77a2c01461015857806387efeeb6146101705780638da5cb5b14610182578063a9dc1d5414610194578063bf2d9e0b146101a6578063df18e047146101af575b005b6101c76004356024356000600034111561025857610002565b6101c76001547fdcf8113e000000000000000000000000000000000000000000000000000000006060908152600091600160a060020a03169063dcf8113e9060649060209060048187876161da5a03f115610002575050604051511515905061027357610002565b6101db60006000600034111561028157610002565b6101db60043560006000600034111561041357610002565b6101ed73c78310231aa53bd3d0fea2f8c705c67730929d8f81565b6101db60043560046020526000908152604090205481565b6101ed600054600160a060020a031681565b6101ed600254600160a060020a031681565b6101ed600154600160a060020a031681565b6101db60035481565b6101db60043560056020526000908152604090205481565b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b600160a060020a03166060908152602090f35b600154600160a060020a03168114801561022357508054600160a060020a031681145b15610252576001805473ffffffffffffffffffffffffffffffffffffffff199081168517825582541683179091555b92915050565b60025433600160a060020a0390811691161461020057610002565b506003805434019055600190565b33600160a060020a03811682526005602052604082205490610380905b83547f18160ddd0000000000000000000000000000000000000000000000000000000060609081528591600160a060020a0316906318160ddd9060649060209060048187876161da5a03f115610002575050604080518051600160a060020a0386811680875260046020818152868920546003548a547f70a0823100000000000000000000000000000000000000000000000000000000895293880194909452965194975095909103949116926370a082319260248281019392829003018189876161da5a03f115610002575050506040518051906020015002049050919050565b0190506003600050546004600050600033600160a060020a031681526020019081526020016000206000508190555060006005600050600033600160a060020a0316815260200190815260200160002060005081905550600081118015610404575060405133600160a060020a031690600090839082818181858883f19350505050155b1561040e57610002565b919050565b61041c8361029e565b600354600160a060020a039094168352600460209081526040808520959095556005905292909120805483019055509056

Deployed Bytecode

0x6060604052361561008d5760e060020a60003504632d34ba79811461008f57806344e43cb8146100a85780634f573cb2146101105780635d0be9de14610125578063720c47981461013d5780637e77a2c01461015857806387efeeb6146101705780638da5cb5b14610182578063a9dc1d5414610194578063bf2d9e0b146101a6578063df18e047146101af575b005b6101c76004356024356000600034111561025857610002565b6101c76001547fdcf8113e000000000000000000000000000000000000000000000000000000006060908152600091600160a060020a03169063dcf8113e9060649060209060048187876161da5a03f115610002575050604051511515905061027357610002565b6101db60006000600034111561028157610002565b6101db60043560006000600034111561041357610002565b6101ed73c78310231aa53bd3d0fea2f8c705c67730929d8f81565b6101db60043560046020526000908152604090205481565b6101ed600054600160a060020a031681565b6101ed600254600160a060020a031681565b6101ed600154600160a060020a031681565b6101db60035481565b6101db60043560056020526000908152604090205481565b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b600160a060020a03166060908152602090f35b600154600160a060020a03168114801561022357508054600160a060020a031681145b15610252576001805473ffffffffffffffffffffffffffffffffffffffff199081168517825582541683179091555b92915050565b60025433600160a060020a0390811691161461020057610002565b506003805434019055600190565b33600160a060020a03811682526005602052604082205490610380905b83547f18160ddd0000000000000000000000000000000000000000000000000000000060609081528591600160a060020a0316906318160ddd9060649060209060048187876161da5a03f115610002575050604080518051600160a060020a0386811680875260046020818152868920546003548a547f70a0823100000000000000000000000000000000000000000000000000000000895293880194909452965194975095909103949116926370a082319260248281019392829003018189876161da5a03f115610002575050506040518051906020015002049050919050565b0190506003600050546004600050600033600160a060020a031681526020019081526020016000206000508190555060006005600050600033600160a060020a0316815260200190815260200160002060005081905550600081118015610404575060405133600160a060020a031690600090839082818181858883f19350505050155b1561040e57610002565b919050565b61041c8361029e565b600354600160a060020a039094168352600460209081526040808520959095556005905292909120805483019055509056

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.