github.com/jonasnick/go-ethereum@v0.7.12-0.20150216215225-22176f05d387/cmd/mist/assets/ext/ethereum.js/example/natspec_contract.html (about)

     1  <!doctype>
     2  <html>
     3  
     4  <head>
     5  <script type="text/javascript" src="js/bignumber.js/bignumber.min.js"></script>
     6  <script type="text/javascript" src="../dist/ethereum.js"></script>
     7  <script type="text/javascript">
     8  
     9      var web3 = require('web3');
    10      web3.setProvider(new web3.providers.QtSyncProvider());
    11  
    12      // solidity source code
    13      var source = "" + 
    14      "contract test {\n" +
    15      "   /// @notice Will multiply `a` by 7. \n" +
    16      "   function multiply(uint a) returns(uint d) {\n" +
    17      "       return a * 7;\n" +
    18      "   }\n" +
    19      "}\n";
    20  
    21      // contract description, this will be autogenerated somehow
    22      var desc =  [{
    23          "name": "multiply(uint256)",
    24          "type": "function",
    25          "inputs": [
    26          {
    27              "name": "a",
    28              "type": "uint256"
    29          }
    30          ],
    31          "outputs": [
    32          {
    33              "name": "d",
    34              "type": "uint256"
    35          }
    36          ]
    37      }];
    38  
    39      var contract;
    40  
    41      function createExampleContract() {
    42          // hide create button
    43          document.getElementById('create').style.visibility = 'hidden'; 
    44          document.getElementById('source').innerText = source;
    45  
    46          // create contract
    47          var address = web3.eth.transact({code: web3.eth.solidity(source)});
    48          contract = web3.eth.contract(address, desc);
    49          document.getElementById('call').style.visibility = 'visible';
    50      }
    51  
    52      function callExampleContract() {
    53          // this should be generated by ethereum
    54          var param = parseInt(document.getElementById('value').value);
    55  
    56          // transaction does not return any result, cause it's not synchronous and we don't know,
    57          // when it will be processed
    58          contract.transact().multiply(param);
    59          document.getElementById('result').innerText = 'transaction made';
    60      }
    61  
    62  </script>
    63  </head>
    64  <body>
    65      <h1>contract</h1>
    66      <div id="source"></div> 
    67      <div id='create'>
    68          <button type="button" onClick="createExampleContract();">create example contract</button>
    69      </div>
    70      <div id='call' style='visibility: hidden;'>
    71          <input type="number" id="value"></input>
    72  		<button type="button" onClick="callExampleContract()">Call Contract</button>
    73      </div>
    74      <div id="result"></div>
    75  </body>
    76  </html>
    77