UNPKG

webu

Version:

IrChain JavaScript API, middleware to talk to a irchain node over RPC

105 lines (97 loc) 3.97 kB
<!doctype> <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>