webu
Version:
IrChain JavaScript API, middleware to talk to a irchain node over RPC
105 lines (97 loc) • 3.97 kB
HTML
<html>
<head>
<script type="text/javascript" src="../dist/webu.js"></script>
<script type="text/javascript">
var Webu = require('webu');
var webu = new Webu();
webu.setProvider(new webu.providers.HttpProvider('http://localhost:8545'));
var from = webu.irc.coinbase;
webu.irc.defaultAccount = from;
window.onload = function() {
var filter = webu.irc.namereg().Changed();
filter.watch(function(err, event) {
// live update all fields
onAddressKeyUp();
onNameKeyUp();
onRegisterOwnerKeyUp();
});
};
function registerOwner() {
var name = document.getElementById('registerOwner').value;
webu.irc.namereg().reserve(name);
document.getElementById('nameAvailability').innerText += ' Registering name in progress, please wait...';
}
function changeAddress() {
var name = document.getElementById('registerOwner').value;
var address = document.getElementById('newAddress').value;
webu.irc.namereg().setAddress(name, address, true);
document.getElementById('currentAddress').innerText += ' Changing address in progress. Please wait.';
}
function onRegisterOwnerKeyUp() {
var name = document.getElementById('registerOwner').value;
var owner = webu.irc.namereg().owner(name);
document.getElementById('currentAddress').innerText = webu.irc.namereg().addr(name);
if (owner !== '0x0000000000000000000000000000000000000000') {
if (owner === from) {
document.getElementById('nameAvailability').innerText = 'This name is already owned by you ' +
owner;
} else {
document.getElementById(
'nameAvailability').innerText = 'This name is not available. It\'s already registered by ' +
owner;
}
return;
}
document.getElementById('nameAvailability').innerText = 'This name is available. You can register it.';
}
function onAddressKeyUp() {
var address = document.getElementById('address').value;
document.getElementById('nameOf').innerText = webu.irc.namereg().name(address);
}
function onNameKeyUp() {
var name = document.getElementById('name').value;
document.getElementById('addressOf').innerText = webu.irc.namereg().addr(name);
}
</script>
</head>
<body>
<!-- TODO update contract.sol -->
<i>This example shows only part of namereg functionalities. Namereg contract is available <a
href="https://github.com/irchain/dapp-bin/blob/master/GlobalRegistrar/contract.sol">here</a>
</i>
<h1>Namereg</h1>
<h3>Search for name</h3>
<div>
<text>Address:</text>
<input type="text" id="address" onkeyup='onAddressKeyUp()'></input>
<text>Name:</text>
<text id="nameOf"></text>
</div>
<h3>Search for address</h3>
<div>
<text>Name:</text>
<input type="text" id="name" onkeyup='onNameKeyUp()'></input>
<text>Address:</text>
<text id="addressOf"></text>
</div>
<h3>Register name</h3>
<div>
<text>Check if name is available:</text>
<input type="text" id="registerOwner" onkeyup='onRegisterOwnerKeyUp()'></input>
<text id='nameAvailability'></text>
</div>
<div>
<button id="registerOwnerButton" type="button" onClick="registerOwner()">Register!</button>
</div>
<h3></h3>
<i>If you own the name, you can also change the address it points to</i>
<div>
<text>Address:</text>
<input type="text" id="newAddress"></input>
<button id="changeAddress" type="button" onClick="changeAddress()">Change address!</button>
<text>Current address :</text>
<text id="currentAddress"></text>
</div>
</body>
</html>