<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=SingularDTV_Token</id>
	<title>SingularDTV Token - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=SingularDTV_Token"/>
	<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=SingularDTV_Token&amp;action=history"/>
	<updated>2026-05-15T22:09:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>http://en.zaoniao.it/index.php?title=SingularDTV_Token&amp;diff=209&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=SingularDTV_Token&amp;diff=209&amp;oldid=prev"/>
		<updated>2019-02-22T06:08:44Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 06:08, 22 February 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://en.zaoniao.it/index.php?title=SingularDTV_Token&amp;diff=208&amp;oldid=prev</id>
		<title>foo&gt;Artillar at 09:05, 6 November 2018</title>
		<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=SingularDTV_Token&amp;diff=208&amp;oldid=prev"/>
		<updated>2018-11-06T09:05:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;''This page has been protected as it contains important information required to interact with the smart contract, and mistakes can lead to economic losses. Please independently verify that the contract address and the Application Binary Interface are correct before executing any transactions of value.''&lt;br /&gt;
&lt;br /&gt;
''See also [[SingularDTV]]''&lt;br /&gt;
&lt;br /&gt;
==Token Information==&lt;br /&gt;
{|&lt;br /&gt;
|Website:&lt;br /&gt;
|https://singulardtv.com/&lt;br /&gt;
|-&lt;br /&gt;
|Forum:&lt;br /&gt;
|https://singulardtv.slack.com&lt;br /&gt;
|-&lt;br /&gt;
|Explorer:&lt;br /&gt;
|https://etherscan.io/token/SNGLS&lt;br /&gt;
|-&lt;br /&gt;
|Exchanges:&lt;br /&gt;
|https://coinmarketcap.com/assets/singulardtv/#markets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Token Contract Information==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|Symbol:&lt;br /&gt;
|SNGLS&lt;br /&gt;
|-&lt;br /&gt;
|Name:&lt;br /&gt;
|SingularDTV&lt;br /&gt;
|-&lt;br /&gt;
|Address:&lt;br /&gt;
|[https://etherscan.io/address/0xaec2e87e0a235266d9c5adc9deb4b2e29b54d009 0xaec2e87e0a235266d9c5adc9deb4b2e29b54d009]&lt;br /&gt;
|-&lt;br /&gt;
|Decimal places:&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|Available supply:&lt;br /&gt;
|600,000,000&lt;br /&gt;
|-&lt;br /&gt;
|Total supply:&lt;br /&gt;
|1,000,000,000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How To Watch The Token Contract In Ethereum Wallet / Mist==&lt;br /&gt;
In Ethereum Wallet / Mist, select the '''CONTRACTS''' tab and click '''WATCH CONTRACT''' to open the Watch contract window. Then:&lt;br /&gt;
&lt;br /&gt;
* Under '''CONTRACT NAME''', enter '''SNGLS'''&lt;br /&gt;
* Under '''CONTRACT ADDRESS''', enter '''0xaec2e87e0a235266d9c5adc9deb4b2e29b54d009'''&lt;br /&gt;
* Copy the Application Binary Interface below and paste it into the '''JSON INTERFACE''' text box&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
[{&amp;quot;constant&amp;quot;:true,&amp;quot;inputs&amp;quot;:[],&amp;quot;name&amp;quot;:&amp;quot;name&amp;quot;,&amp;quot;outputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;}],&amp;quot;type&amp;quot;:&amp;quot;function&amp;quot;},{&amp;quot;constant&amp;quot;:false,&amp;quot;inputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;_spender&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;_value&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;uint256&amp;quot;}],&amp;quot;name&amp;quot;:&amp;quot;approve&amp;quot;,&amp;quot;outputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;success&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;bool&amp;quot;}],&amp;quot;type&amp;quot;:&amp;quot;function&amp;quot;},{&amp;quot;constant&amp;quot;:true,&amp;quot;inputs&amp;quot;:[],&amp;quot;name&amp;quot;:&amp;quot;totalSupply&amp;quot;,&amp;quot;outputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;uint256&amp;quot;}],&amp;quot;type&amp;quot;:&amp;quot;function&amp;quot;},{&amp;quot;constant&amp;quot;:false,&amp;quot;inputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;from&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;to&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;value&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;uint256&amp;quot;}],&amp;quot;name&amp;quot;:&amp;quot;transferFrom&amp;quot;,&amp;quot;outputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;bool&amp;quot;}],&amp;quot;type&amp;quot;:&amp;quot;function&amp;quot;},{&amp;quot;constant&amp;quot;:true,&amp;quot;inputs&amp;quot;:[],&amp;quot;name&amp;quot;:&amp;quot;decimals&amp;quot;,&amp;quot;outputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;uint8&amp;quot;}],&amp;quot;type&amp;quot;:&amp;quot;function&amp;quot;},{&amp;quot;constant&amp;quot;:false,&amp;quot;inputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;_for&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;tokenCount&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;uint256&amp;quot;}],&amp;quot;name&amp;quot;:&amp;quot;issueTokens&amp;quot;,&amp;quot;outputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;bool&amp;quot;}],&amp;quot;type&amp;quot;:&amp;quot;function&amp;quot;},{&amp;quot;constant&amp;quot;:true,&amp;quot;inputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;_owner&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;}],&amp;quot;name&amp;quot;:&amp;quot;balanceOf&amp;quot;,&amp;quot;outputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;balance&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;uint256&amp;quot;}],&amp;quot;type&amp;quot;:&amp;quot;function&amp;quot;},{&amp;quot;constant&amp;quot;:true,&amp;quot;inputs&amp;quot;:[],&amp;quot;name&amp;quot;:&amp;quot;symbol&amp;quot;,&amp;quot;outputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;}],&amp;quot;type&amp;quot;:&amp;quot;function&amp;quot;},{&amp;quot;constant&amp;quot;:false,&amp;quot;inputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;to&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;value&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;uint256&amp;quot;}],&amp;quot;name&amp;quot;:&amp;quot;transfer&amp;quot;,&amp;quot;outputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;bool&amp;quot;}],&amp;quot;type&amp;quot;:&amp;quot;function&amp;quot;},{&amp;quot;constant&amp;quot;:true,&amp;quot;inputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;_owner&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;_spender&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;}],&amp;quot;name&amp;quot;:&amp;quot;allowance&amp;quot;,&amp;quot;outputs&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;remaining&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;uint256&amp;quot;}],&amp;quot;type&amp;quot;:&amp;quot;function&amp;quot;},{&amp;quot;inputs&amp;quot;:[],&amp;quot;type&amp;quot;:&amp;quot;constructor&amp;quot;},{&amp;quot;anonymous&amp;quot;:false,&amp;quot;inputs&amp;quot;:[{&amp;quot;indexed&amp;quot;:true,&amp;quot;name&amp;quot;:&amp;quot;from&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;},{&amp;quot;indexed&amp;quot;:true,&amp;quot;name&amp;quot;:&amp;quot;to&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;},{&amp;quot;indexed&amp;quot;:false,&amp;quot;name&amp;quot;:&amp;quot;value&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;uint256&amp;quot;}],&amp;quot;name&amp;quot;:&amp;quot;Transfer&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;event&amp;quot;},{&amp;quot;anonymous&amp;quot;:false,&amp;quot;inputs&amp;quot;:[{&amp;quot;indexed&amp;quot;:true,&amp;quot;name&amp;quot;:&amp;quot;owner&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;},{&amp;quot;indexed&amp;quot;:true,&amp;quot;name&amp;quot;:&amp;quot;spender&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;address&amp;quot;},{&amp;quot;indexed&amp;quot;:false,&amp;quot;name&amp;quot;:&amp;quot;value&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;uint256&amp;quot;}],&amp;quot;name&amp;quot;:&amp;quot;Approval&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;event&amp;quot;}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Click '''OK'''&lt;br /&gt;
&lt;br /&gt;
==How To Watch The Token In Ethereum Wallet / Mist==&lt;br /&gt;
In Ethereum Wallet / Mist, select the '''CONTRACTS''' tab and click '''WATCH TOKEN''' to open the Add token window. Then:&lt;br /&gt;
&lt;br /&gt;
* Under '''TOKEN CONTRACT ADDRESS''', enter '''0xaec2e87e0a235266d9c5adc9deb4b2e29b54d009'''. The additional fields should automatically be filled in.&lt;br /&gt;
&lt;br /&gt;
* Click '''OK'''&lt;br /&gt;
&lt;br /&gt;
==Check Your Token Balance In EtherScan.io==&lt;br /&gt;
&lt;br /&gt;
Navigate to https://etherscan.io/. Then:&lt;br /&gt;
* Select the menu '''TOKEN''' -&amp;gt; '''View Tokens'''&lt;br /&gt;
* Select '''SNGLS - SingularDTV'''&lt;br /&gt;
* Select the '''Read Contract''' tab&lt;br /&gt;
* In the '''balanceOf''' field, enter the address you want to check the token balance of&lt;br /&gt;
* Click '''Query'''&lt;br /&gt;
&lt;br /&gt;
A simpler way to check your token balance is to navigate to https://etherscan.io/. Then:&lt;br /&gt;
* Enter your address into the search box on the top right of the screen&lt;br /&gt;
* Press '''ENTER'''&lt;br /&gt;
* Click on the '''View Token Balances''' dropdown&lt;br /&gt;
&lt;br /&gt;
==How To Interact With The Token Smart Contract In Ethereum Wallet / Mist==&lt;br /&gt;
&lt;br /&gt;
===How To Check Your Token Balance In Ethereum Wallet / Mist===&lt;br /&gt;
&lt;br /&gt;
[[#How To Watch The Smart Contract In Ethereum Wallet / Mist|Watch the Contract]] and [[#How To Watch The Token In Ethereum Wallet / Mist|Watch the Token]] as described above. Then:&lt;br /&gt;
* View the '''SNGLS''' contract&lt;br /&gt;
* Click on '''SHOW CONTRACT INFO'''&lt;br /&gt;
* In the '''READ FROM CONTRACT''' section and under '''Balance of''':&lt;br /&gt;
** Enter the address you want to check the token balance of&lt;br /&gt;
** The token balance will be displayed in the [[Natural Units]] with 0 decimal places. e.g., 12345 = 12345 token units&lt;br /&gt;
&lt;br /&gt;
===How To Transfer Your Tokens In Ethereum Wallet / Mist===&lt;br /&gt;
&lt;br /&gt;
[[#How To Watch The Smart Contract In Ethereum Wallet / Mist|Watch the Contract]] and [[#How To Watch The Token In Ethereum Wallet / Mist|Watch the Token]] as described above. Then:&lt;br /&gt;
* View the '''SNGLS''' contract&lt;br /&gt;
* Click on '''SHOW CONTRACT INFO'''&lt;br /&gt;
* In the '''WRITE TO CONTRACT''' section and under '''Select function''':&lt;br /&gt;
** Select the '''Transfer''' function&lt;br /&gt;
** Under ''to'', enter the address you want to transfer your tokens to&lt;br /&gt;
** Under ''value''', enter the amount of tokens you want to transfer. This amount needs to be specified in the [[Natural Units]] with 0 decimal places. e.g., 12345 is 12345 SNGLSs&lt;br /&gt;
** Under '''Execute from''', select the account you want to transfer your tokens from&lt;br /&gt;
** Click on '''Execute''', then confirm your transaction&lt;br /&gt;
&lt;br /&gt;
==The Token Contract Source Code==&lt;br /&gt;
&lt;br /&gt;
Following is the source code from [https://etherscan.io/address/0xaec2e87e0a235266d9c5adc9deb4b2e29b54d009#code 0xaec2e87e0a235266d9c5adc9deb4b2e29b54d009]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line='line'&amp;gt;&lt;br /&gt;
/// Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20&lt;br /&gt;
&lt;br /&gt;
/// @title Abstract token contract - Functions to be implemented by token contracts.&lt;br /&gt;
/// @author Stefan George - &amp;lt;stefan.george@consensys.net&amp;gt;&lt;br /&gt;
contract Token {&lt;br /&gt;
    // This is not an abstract function, because solc won't recognize generated getter functions for public variables as functions&lt;br /&gt;
    function totalSupply() constant returns (uint256 supply) {}&lt;br /&gt;
    function balanceOf(address owner) constant returns (uint256 balance);&lt;br /&gt;
    function transfer(address to, uint256 value) returns (bool success);&lt;br /&gt;
    function transferFrom(address from, address to, uint256 value) returns (bool success);&lt;br /&gt;
    function approve(address spender, uint256 value) returns (bool success);&lt;br /&gt;
    function allowance(address owner, address spender) constant returns (uint256 remaining);&lt;br /&gt;
&lt;br /&gt;
    event Transfer(address indexed from, address indexed to, uint256 value);&lt;br /&gt;
    event Approval(address indexed owner, address indexed spender, uint256 value);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
contract StandardToken is Token {&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     *  Data structures&lt;br /&gt;
     */&lt;br /&gt;
    mapping (address =&amp;gt; uint256) balances;&lt;br /&gt;
    mapping (address =&amp;gt; mapping (address =&amp;gt; uint256)) allowed;&lt;br /&gt;
    uint256 public totalSupply;&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     *  Read and write storage functions&lt;br /&gt;
     */&lt;br /&gt;
    /// @dev Transfers sender's tokens to a given address. Returns success.&lt;br /&gt;
    /// @param _to Address of token receiver.&lt;br /&gt;
    /// @param _value Number of tokens to transfer.&lt;br /&gt;
    function transfer(address _to, uint256 _value) returns (bool success) {&lt;br /&gt;
        if (balances[msg.sender] &amp;gt;= _value &amp;amp;&amp;amp; _value &amp;gt; 0) {&lt;br /&gt;
            balances[msg.sender] -= _value;&lt;br /&gt;
            balances[_to] += _value;&lt;br /&gt;
            Transfer(msg.sender, _to, _value);&lt;br /&gt;
            return true;&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success.&lt;br /&gt;
    /// @param _from Address from where tokens are withdrawn.&lt;br /&gt;
    /// @param _to Address to where tokens are sent.&lt;br /&gt;
    /// @param _value Number of tokens to transfer.&lt;br /&gt;
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {&lt;br /&gt;
        if (balances[_from] &amp;gt;= _value &amp;amp;&amp;amp; allowed[_from][msg.sender] &amp;gt;= _value &amp;amp;&amp;amp; _value &amp;gt; 0) {&lt;br /&gt;
            balances[_to] += _value;&lt;br /&gt;
            balances[_from] -= _value;&lt;br /&gt;
            allowed[_from][msg.sender] -= _value;&lt;br /&gt;
            Transfer(_from, _to, _value);&lt;br /&gt;
            return true;&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /// @dev Returns number of tokens owned by given address.&lt;br /&gt;
    /// @param _owner Address of token owner.&lt;br /&gt;
    function balanceOf(address _owner) constant returns (uint256 balance) {&lt;br /&gt;
        return balances[_owner];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /// @dev Sets approved amount of tokens for spender. Returns success.&lt;br /&gt;
    /// @param _spender Address of allowed account.&lt;br /&gt;
    /// @param _value Number of approved tokens.&lt;br /&gt;
    function approve(address _spender, uint256 _value) returns (bool success) {&lt;br /&gt;
        allowed[msg.sender][_spender] = _value;&lt;br /&gt;
        Approval(msg.sender, _spender, _value);&lt;br /&gt;
        return true;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * Read storage functions&lt;br /&gt;
     */&lt;br /&gt;
    /// @dev Returns number of allowed tokens for given address.&lt;br /&gt;
    /// @param _owner Address of token owner.&lt;br /&gt;
    /// @param _spender Address of token spender.&lt;br /&gt;
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {&lt;br /&gt;
      return allowed[_owner][_spender];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
contract SingularDTVFund {&lt;br /&gt;
    function workshop() returns (address);&lt;br /&gt;
    function softWithdrawRevenueFor(address forAddress) returns (uint);&lt;br /&gt;
}&lt;br /&gt;
contract SingularDTVCrowdfunding {&lt;br /&gt;
    function twoYearsPassed() returns (bool);&lt;br /&gt;
    function startDate() returns (uint);&lt;br /&gt;
    function CROWDFUNDING_PERIOD() returns (uint);&lt;br /&gt;
    function TOKEN_TARGET() returns (uint);&lt;br /&gt;
    function valuePerShare() returns (uint);&lt;br /&gt;
    function fundBalance() returns (uint);&lt;br /&gt;
    function campaignEndedSuccessfully() returns (bool);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/// @title Token contract - Implements token issuance.&lt;br /&gt;
/// @author Stefan George - &amp;lt;stefan.george@consensys.net&amp;gt;&lt;br /&gt;
contract SingularDTVToken is StandardToken {&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     *  External contracts&lt;br /&gt;
     */&lt;br /&gt;
    SingularDTVFund constant singularDTVFund = SingularDTVFund(0xe736091fc36f1ad476f5e4e03e4425940822d3ba);&lt;br /&gt;
    SingularDTVCrowdfunding constant singularDTVCrowdfunding = SingularDTVCrowdfunding(0xbdf5c4f1c1a9d7335a6a68d9aa011d5f40cf5520);&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     *  Token meta data&lt;br /&gt;
     */&lt;br /&gt;
    string constant public name = &amp;quot;SingularDTV&amp;quot;;&lt;br /&gt;
    string constant public symbol = &amp;quot;SNGLS&amp;quot;;&lt;br /&gt;
    uint8 constant public decimals = 0;&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     *  Modifiers&lt;br /&gt;
     */&lt;br /&gt;
    modifier noEther() {&lt;br /&gt;
        if (msg.value &amp;gt; 0) {&lt;br /&gt;
            throw;&lt;br /&gt;
        }&lt;br /&gt;
        _&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    modifier workshopWaitedTwoYears() {&lt;br /&gt;
        // Workshop can only transfer tokens after a two years period.&lt;br /&gt;
        if (msg.sender == singularDTVFund.workshop() &amp;amp;&amp;amp; !singularDTVCrowdfunding.twoYearsPassed()) {&lt;br /&gt;
            throw;&lt;br /&gt;
        }&lt;br /&gt;
        _&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    modifier isCrowdfundingContract () {&lt;br /&gt;
        // Only crowdfunding contract is allowed to proceed.&lt;br /&gt;
        if (msg.sender != address(singularDTVCrowdfunding)) {&lt;br /&gt;
            throw;&lt;br /&gt;
        }&lt;br /&gt;
        _&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     *  Contract functions&lt;br /&gt;
     */&lt;br /&gt;
    /// @dev Crowdfunding contract issues new tokens for address. Returns success.&lt;br /&gt;
    /// @param _for Address of receiver.&lt;br /&gt;
    /// @param tokenCount Number of tokens to issue.&lt;br /&gt;
    function issueTokens(address _for, uint tokenCount)&lt;br /&gt;
        external&lt;br /&gt;
        isCrowdfundingContract&lt;br /&gt;
        returns (bool)&lt;br /&gt;
    {&lt;br /&gt;
        if (tokenCount == 0) {&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
        balances[_for] += tokenCount;&lt;br /&gt;
        totalSupply += tokenCount;&lt;br /&gt;
        return true;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /// @dev Transfers sender's tokens to a given address. Returns success.&lt;br /&gt;
    /// @param to Address of token receiver.&lt;br /&gt;
    /// @param value Number of tokens to transfer.&lt;br /&gt;
    function transfer(address to, uint256 value)&lt;br /&gt;
        noEther&lt;br /&gt;
        workshopWaitedTwoYears&lt;br /&gt;
        returns (bool)&lt;br /&gt;
    {&lt;br /&gt;
        // Both parties withdraw their revenue first&lt;br /&gt;
        singularDTVFund.softWithdrawRevenueFor(msg.sender);&lt;br /&gt;
        singularDTVFund.softWithdrawRevenueFor(to);&lt;br /&gt;
        return super.transfer(to, value);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success.&lt;br /&gt;
    /// @param from Address from where tokens are withdrawn.&lt;br /&gt;
    /// @param to Address to where tokens are sent.&lt;br /&gt;
    /// @param value Number of tokens to transfer.&lt;br /&gt;
    function transferFrom(address from, address to, uint256 value)&lt;br /&gt;
        noEther&lt;br /&gt;
        workshopWaitedTwoYears&lt;br /&gt;
        returns (bool)&lt;br /&gt;
    {&lt;br /&gt;
        // Both parties withdraw their revenue first&lt;br /&gt;
        singularDTVFund.softWithdrawRevenueFor(from);&lt;br /&gt;
        singularDTVFund.softWithdrawRevenueFor(to);&lt;br /&gt;
        return super.transferFrom(from, to, value);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /// @dev Contract constructor function sets initial token balances.&lt;br /&gt;
    function SingularDTVToken() noEther {&lt;br /&gt;
        // Set token creation for workshop&lt;br /&gt;
        balances[singularDTVFund.workshop()] = 400000000; // ~400M&lt;br /&gt;
        // Set token creation for core&lt;br /&gt;
        balances[0x0196b712a0459cbee711e7c1d34d2c85a9910379] = 5000000;&lt;br /&gt;
        balances[0x0f94dc84ce0f5fa2a8cc8d27a6969e25b5a39273] = 200000;&lt;br /&gt;
        balances[0x122b7eb5f629d806c8adb0baa0560266abb3ec80] = 450000;&lt;br /&gt;
        balances[0x13870d30fcdb7d7ae875668f2a1219225295d57c] = 50000;&lt;br /&gt;
        balances[0x26640e826547bc700b8c7a9cc2c1c39a4ab3cbb3] = 900000;&lt;br /&gt;
        balances[0x26bbfc6b23bc36e84447f061c6804f3a8b1a3698] = 250000;&lt;br /&gt;
        balances[0x2d37383a45b5122a27efade69f7180eee4d965da] = 1270000;&lt;br /&gt;
        balances[0x2e79b81121193d55c4934c0f32ad3d0474ca7b9c] = 4200000;&lt;br /&gt;
        balances[0x3114844fc0e3de03963bbd1d983ba17ca89ad010] = 5000000;&lt;br /&gt;
        balances[0x378e6582e4e3723f7076c7769eef6febf51258e1] = 680000;&lt;br /&gt;
        balances[0x3e18530a4ee49a0357ffc8e74c08bfdee3915482] = 2490000;&lt;br /&gt;
        balances[0x43fed1208d25ca0ef5681a5c17180af50c19f826] = 100000;&lt;br /&gt;
        balances[0x4f183b18302c0ac5804b8c455018efc51af15a56] = 10000;&lt;br /&gt;
        balances[0x55a886834658ccb6f26c39d5fdf6d833df3a276a] = 100000;&lt;br /&gt;
        balances[0x5faa1624422db662c654ab35ce57bf3242888937] = 5000000;&lt;br /&gt;
        balances[0x6407b662b306e2353b627488da952337a5a0bbaa] = 5000000;&lt;br /&gt;
        balances[0x66c334fff8c8b8224b480d8da658ca3b032fe625] = 10000000;&lt;br /&gt;
        balances[0x6c24991c6a40cd5ad6fab78388651fb324b35458] = 250000;&lt;br /&gt;
        balances[0x781ba492f786b2be48c2884b733874639f50022c] = 500000;&lt;br /&gt;
        balances[0x79b48f6f1ac373648c509b74a2c04a3281066457] = 2000000;&lt;br /&gt;
        balances[0x835898804ed30e20aa29f2fe35c9f225175b049f] = 100000;&lt;br /&gt;
        balances[0x93c56ea8848150389e0917de868b0a23c87cf7b1] = 2790000;&lt;br /&gt;
        balances[0x93f959df3df3c6ee01ee9748327b881b2137bf2a] = 450000;&lt;br /&gt;
        balances[0x9adc0215372e4ffd8c89621a6bd9cfddf230349f] = 550000;&lt;br /&gt;
        balances[0xae4dbd3dae66722315541d66fe9457b342ac76d9] = 500000;&lt;br /&gt;
        balances[0xbae02fe006f115e45b372f2ddc053eedca2d6fff] = 1800000;&lt;br /&gt;
        balances[0xcc835821f643e090d8157de05451b416cd1202c4] = 300000;&lt;br /&gt;
        balances[0xce75342b92a7d0b1a2c6e9835b6b85787e12e585] = 670000;&lt;br /&gt;
        balances[0xd2b388467d9d0c30bab0a68070c6f49c473583a0] = 990000;&lt;br /&gt;
        balances[0xdca0724ddde95bbace1b557cab4375d9a813da49] = 3500000;&lt;br /&gt;
        balances[0xe3ef62165b60cac0fcbe9c2dc6a03aab4c5c8462] = 150000;&lt;br /&gt;
        balances[0xe4f7d5083baeea7810b6d816581bb0ee7cd4b6f4] = 10560000;&lt;br /&gt;
        balances[0xef08eb55d3482973c178b02bd4d5f2cea420325f] = 80000;&lt;br /&gt;
        balances[0xfdecc9f2ee374cedc94f72ab4da2de896ce58c19] = 5000000;&lt;br /&gt;
        balances[0xe5ff71dc1dea8cd2552eec59e9a5e8813da9bb01] = 29110000;&lt;br /&gt;
        totalSupply = 500000000; // 500M&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Blockchain services]]&lt;br /&gt;
[[Category:Cryptocurrency]]&lt;br /&gt;
[[Category:Token]]&lt;/div&gt;</summary>
		<author><name>foo&gt;Artillar</name></author>
		
	</entry>
</feed>