-
-
Save veganstraightedge/3d6f52782dd4a86d9449c71ecc905052 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" | |
"http://www.w3.org/TR/html4/strict.dtd"> | |
<html> | |
<head> | |
<title></title> | |
<meta http-equiv="content-type" content="text/html; charset=utf-8"> | |
<style type="text/css"> | |
td.linenos { background-color: #f0f0f0; padding-right: 10px; } | |
span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; } | |
pre { line-height: 125%; } | |
body .hll { background-color: #ffffcc } | |
body { background: #f8f8f8; } | |
body .c { color: #408080; font-style: italic } /* Comment */ | |
body .err { border: 1px solid #FF0000 } /* Error */ | |
body .k { color: #008000; font-weight: bold } /* Keyword */ | |
body .o { color: #666666 } /* Operator */ | |
body .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ | |
body .cm { color: #408080; font-style: italic } /* Comment.Multiline */ | |
body .cp { color: #BC7A00 } /* Comment.Preproc */ | |
body .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ | |
body .c1 { color: #408080; font-style: italic } /* Comment.Single */ | |
body .cs { color: #408080; font-style: italic } /* Comment.Special */ | |
body .gd { color: #A00000 } /* Generic.Deleted */ | |
body .ge { font-style: italic } /* Generic.Emph */ | |
body .gr { color: #FF0000 } /* Generic.Error */ | |
body .gh { color: #000080; font-weight: bold } /* Generic.Heading */ | |
body .gi { color: #00A000 } /* Generic.Inserted */ | |
body .go { color: #888888 } /* Generic.Output */ | |
body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ | |
body .gs { font-weight: bold } /* Generic.Strong */ | |
body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ | |
body .gt { color: #0044DD } /* Generic.Traceback */ | |
body .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ | |
body .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ | |
body .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ | |
body .kp { color: #008000 } /* Keyword.Pseudo */ | |
body .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ | |
body .kt { color: #B00040 } /* Keyword.Type */ | |
body .m { color: #666666 } /* Literal.Number */ | |
body .s { color: #BA2121 } /* Literal.String */ | |
body .na { color: #7D9029 } /* Name.Attribute */ | |
body .nb { color: #008000 } /* Name.Builtin */ | |
body .nc { color: #0000FF; font-weight: bold } /* Name.Class */ | |
body .no { color: #880000 } /* Name.Constant */ | |
body .nd { color: #AA22FF } /* Name.Decorator */ | |
body .ni { color: #999999; font-weight: bold } /* Name.Entity */ | |
body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ | |
body .nf { color: #0000FF } /* Name.Function */ | |
body .nl { color: #A0A000 } /* Name.Label */ | |
body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ | |
body .nt { color: #008000; font-weight: bold } /* Name.Tag */ | |
body .nv { color: #19177C } /* Name.Variable */ | |
body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ | |
body .w { color: #bbbbbb } /* Text.Whitespace */ | |
body .mb { color: #666666 } /* Literal.Number.Bin */ | |
body .mf { color: #666666 } /* Literal.Number.Float */ | |
body .mh { color: #666666 } /* Literal.Number.Hex */ | |
body .mi { color: #666666 } /* Literal.Number.Integer */ | |
body .mo { color: #666666 } /* Literal.Number.Oct */ | |
body .sa { color: #BA2121 } /* Literal.String.Affix */ | |
body .sb { color: #BA2121 } /* Literal.String.Backtick */ | |
body .sc { color: #BA2121 } /* Literal.String.Char */ | |
body .dl { color: #BA2121 } /* Literal.String.Delimiter */ | |
body .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ | |
body .s2 { color: #BA2121 } /* Literal.String.Double */ | |
body .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ | |
body .sh { color: #BA2121 } /* Literal.String.Heredoc */ | |
body .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ | |
body .sx { color: #008000 } /* Literal.String.Other */ | |
body .sr { color: #BB6688 } /* Literal.String.Regex */ | |
body .s1 { color: #BA2121 } /* Literal.String.Single */ | |
body .ss { color: #19177C } /* Literal.String.Symbol */ | |
body .bp { color: #008000 } /* Name.Builtin.Pseudo */ | |
body .fm { color: #0000FF } /* Name.Function.Magic */ | |
body .vc { color: #19177C } /* Name.Variable.Class */ | |
body .vg { color: #19177C } /* Name.Variable.Global */ | |
body .vi { color: #19177C } /* Name.Variable.Instance */ | |
body .vm { color: #19177C } /* Name.Variable.Magic */ | |
body .il { color: #666666 } /* Literal.Number.Integer.Long */ | |
</style> | |
</head> | |
<body> | |
<h2></h2> | |
<div class="highlight"><pre><span></span><span class="kd">contract</span> <span class="nx">EndowmentRetriever</span> <span class="p">{</span> | |
<span class="kt">address</span> <span class="nx">creator</span><span class="p">;</span> | |
<span class="kt">uint</span> <span class="nx">contract_creation_value</span><span class="p">;</span> <span class="c1">// original endowment</span> | |
<span class="kd">function</span> <span class="nx">EndowmentRetriever</span><span class="p">()</span> <span class="k">public</span> | |
<span class="p">{</span> | |
<span class="nx">creator</span> <span class="o">=</span> <span class="nx">msg</span><span class="p">.</span><span class="nx">sender</span><span class="p">;</span> | |
<span class="nx">contract_creation_value</span> <span class="o">=</span> <span class="nx">msg</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span> <span class="c1">// the endowment of this contract in wei </span> | |
<span class="p">}</span> | |
<span class="kd">function</span> <span class="nx">getContractCreationValue</span><span class="p">()</span> <span class="k">constant</span> <span class="k">returns</span> <span class="p">(</span><span class="kt">uint</span><span class="p">)</span> <span class="c1">// returns the original endowment of the contract</span> | |
<span class="p">{</span> <span class="c1">// set at creation time with "value: <someweivalue>" </span> | |
<span class="k">return</span> <span class="nx">contract_creation_value</span><span class="p">;</span> <span class="c1">// this was the "balance" of the contract at creation time</span> | |
<span class="p">}</span> | |
<span class="kd">function</span> <span class="nx">sendOneEtherHome</span><span class="p">()</span> <span class="k">public</span> | |
<span class="p">{</span> | |
<span class="nx">creator</span><span class="p">.</span><span class="nx">send</span><span class="p">(</span><span class="mi">1000000000000000000</span><span class="p">);</span> <span class="c1">// send 1 ETH home</span> | |
<span class="p">}</span> | |
<span class="cs">/**********</span> | |
<span class="cs"> Standard kill() function to recover funds </span> | |
<span class="cs"> **********/</span> | |
<span class="kd">function</span> <span class="nx">kill</span><span class="p">()</span> | |
<span class="p">{</span> | |
<span class="k">if</span> <span class="p">(</span><span class="nx">msg</span><span class="p">.</span><span class="nx">sender</span> <span class="o">==</span> <span class="nx">creator</span><span class="p">)</span> | |
<span class="p">{</span> | |
<span class="nx">suicide</span><span class="p">(</span><span class="nx">creator</span><span class="p">);</span> <span class="c1">// kills this contract and sends remaining funds back to creator</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
</pre></div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment