web3.js/example/contract.html

76 lines
1.9 KiB
HTML
Raw Normal View History

2014-11-14 13:11:47 +01:00
<!doctype>
<html>
<head>
2015-04-07 04:39:47 +02:00
<script type="text/javascript" src="../dist/web3"></script>
2014-11-14 13:11:47 +01:00
<script type="text/javascript">
2015-04-07 04:39:47 +02:00
var web3 = require('web3');
2015-03-10 13:27:16 +01:00
web3.setProvider(new web3.providers.HttpProvider());
2014-11-14 13:11:47 +01:00
// solidity source code
var source = "" +
"contract test {\n" +
" function multiply(uint a) returns(uint d) {\n" +
" return a * 7;\n" +
" }\n" +
"}\n";
// contract description, this will be autogenerated somehow
var desc = [{
2015-01-20 15:06:05 +01:00
"name": "multiply(uint256)",
2015-01-29 12:35:21 +01:00
"type": "function",
2014-11-14 13:11:47 +01:00
"inputs": [
{
"name": "a",
"type": "uint256"
}
],
"outputs": [
{
"name": "d",
"type": "uint256"
}
]
}];
2015-02-24 10:36:54 +01:00
var myContract;
2014-11-14 13:11:47 +01:00
function createExampleContract() {
// hide create button
document.getElementById('create').style.visibility = 'hidden';
document.getElementById('source').innerText = source;
// create contract
2015-02-24 10:36:54 +01:00
var address = web3.eth.sendTransaction({data: web3.eth.compile.solidity(source)}),
Contract = web3.eth.contract(desc);
myContract = new Contract(address);
document.getElementById('call').style.visibility = 'visible';
2014-11-14 13:11:47 +01:00
}
function callExampleContract() {
// this should be generated by ethereum
2015-01-08 15:31:46 +01:00
var param = parseInt(document.getElementById('value').value);
2014-11-14 13:11:47 +01:00
// call the contract
2015-02-24 10:36:54 +01:00
var res = myContract.call().multiply(param);
2015-01-27 11:53:34 +01:00
document.getElementById('result').innerText = res.toString(10);
2014-11-14 13:11:47 +01:00
}
</script>
</head>
<body>
<h1>contract</h1>
<div id="source"></div>
<div id='create'>
<button type="button" onClick="createExampleContract();">create example contract</button>
</div>
<div id='call' style='visibility: hidden;'>
<input type="number" id="value" onkeyup='callExampleContract()'></input>
</div>
<div id="result"></div>
</body>
</html>