github.com/jonasnick/go-ethereum@v0.7.12-0.20150216215225-22176f05d387/cmd/mist/assets/ext/ethereum.js/example/contract_with_array.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.HttpSyncProvider());
    11  
    12      // solidity source code
    13      var source = "" + 
    14      "contract test {\n" +
    15      "   function multiply(uint[] a) returns(uint d) {\n" +
    16      "       return a[0] + a[1];\n" +
    17      "   }\n" +
    18      "}\n";
    19  
    20      // contract description, this will be autogenerated somehow
    21      var desc =  [{
    22          "name": "multiply(uint256[])",
    23          "type": "function",
    24          "inputs": [
    25          {
    26              "name": "a",
    27              "type": "uint256[]"
    28          }
    29          ],
    30          "outputs": [
    31          {
    32              "name": "d",
    33              "type": "uint256"
    34          }
    35          ]
    36      }];
    37  
    38      var contract;
    39  
    40      function createExampleContract() {
    41          // hide create button
    42          document.getElementById('create').style.visibility = 'hidden'; 
    43          document.getElementById('source').innerText = source;
    44  
    45          // create contract
    46          var address = web3.eth.transact({code: web3.eth.solidity(source)});
    47          contract = web3.eth.contract(address, desc);
    48          document.getElementById('call').style.visibility = 'visible';
    49      }
    50  
    51      function callExampleContract() {
    52          // this should be generated by ethereum
    53          var param = parseInt(document.getElementById('value').value);
    54          var param2 = parseInt(document.getElementById('value2').value);
    55  
    56          // call the contract
    57          var res = contract.call().multiply([param, param2]);
    58          document.getElementById('result').innerText = res.toString(10);
    59      }
    60  
    61  </script>
    62  </head>
    63  <body>
    64      <h1>contract</h1>
    65      <div id="source"></div> 
    66      <div id='create'>
    67          <button type="button" onClick="createExampleContract();">create example contract</button>
    68      </div>
    69      <div id='call' style='visibility: hidden;'>
    70          <input type="number" id="value" onkeyup='callExampleContract()'></input>
    71          <input type="number" id="value2" onkeyup='callExampleContract()'></input>
    72      </div>
    73      <div id="result"></div>
    74  </body>
    75  </html>
    76