diff --git a/mix/qml/html/WebContainer.html b/mix/qml/html/WebContainer.html index 8cd65a55a..fb716507f 100644 --- a/mix/qml/html/WebContainer.html +++ b/mix/qml/html/WebContainer.html @@ -20,7 +20,8 @@ updateContracts = function(contracts) { window.web3.reset(); window.contracts = {}; for (var c in contracts) { - var contract = window.web3.eth.contract(contracts[c].address, contracts[c].interface); + var contractProto = window.web3.eth.contract(contracts[c].interface); + var contract = new contractProto(contracts[c].address); window.contracts[c] = { address: c.address, interface: c.interface, diff --git a/mix/stdc/std.sol b/mix/stdc/std.sol index 97a74ac56..b482db67e 100644 --- a/mix/stdc/std.sol +++ b/mix/stdc/std.sol @@ -13,14 +13,14 @@ contract Config is mortal { if (tx.origin != owner) return; services[id] = service; - log1(0, id); + log1(0, bytes32(id)); } function unregister(uint id) { if (msg.sender != owner && services[id] != msg.sender) return; services[id] = address(0); - log1(0, id); + log1(0, bytes32(id)); } function lookup(uint service) constant returns(address a) { @@ -56,8 +56,8 @@ web3.eth.contract(addrConfig, abiConfig).lookup(1).call().then(function(r){ addr // Gav Wood contract NameRegister { - function getAddress(string32 _name) constant returns (address o_owner) {} - function getName(address _owner) constant returns (string32 o_name) {} + function getAddress(bytes32 _name) constant returns (address o_owner) {} + function getName(address _owner) constant returns (bytes32 o_name) {} } contract NameReg is owned, NameRegister { @@ -68,11 +68,11 @@ contract NameReg is owned, NameRegister { toName[this] = "NameReg"; toAddress["NameReg"] = this; Config(addrConfig).register(1, this); - log1(0, hash256(addrConfig)); - log1(0, hash256(this)); + //log1(0, bytes32(addrConfig)); + //log1(0, bytes32(this)); } - function register(string32 name) { + function register(bytes32 name) { // Don't allow the same name to be overwritten. if (toAddress[name] != address(0)) return; @@ -82,41 +82,41 @@ contract NameReg is owned, NameRegister { toName[msg.sender] = name; toAddress[name] = msg.sender; - log1(0, hash256(msg.sender)); + //log1(0, bytes32(msg.sender)); } function unregister() { - string32 n = toName[msg.sender]; + bytes32 n = toName[msg.sender]; if (n == "") return; - log1(0, hash256(toAddress[n])); + //log1(0, bytes32(toAddress[n])); toName[msg.sender] = ""; toAddress[n] = address(0); } - function addressOf(string32 name) constant returns (address addr) { + function addressOf(bytes32 name) constant returns (address addr) { return toAddress[name]; } - function nameOf(address addr) constant returns (string32 name) { + function nameOf(address addr) constant returns (bytes32 name) { return toName[addr]; } - mapping (address => string32) toName; - mapping (string32 => address) toAddress; + mapping (address => bytes32) toName; + mapping (bytes32 => address) toAddress; } /* // Solidity Interface: -contract NameReg{function kill(){}function register(string32 name){}function addressOf(string32 name)constant returns(address addr){}function unregister(){}function nameOf(address addr)constant returns(string32 name){}} +contract NameReg{function kill(){}function register(bytes32 name){}function addressOf(bytes32 name)constant returns(address addr){}function unregister(){}function nameOf(address addr)constant returns(bytes32 name){}} // Example Solidity use: NameReg(addrNameReg).register("Some Contract"); // JS Interface: -var abiNameReg = [{"constant":true,"inputs":[{"name":"name","type":"string32"}],"name":"addressOf","outputs":[{"name":"addr","type":"address"}]},{"constant":false,"inputs":[],"name":"kill","outputs":[]},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"nameOf","outputs":[{"name":"name","type":"string32"}]},{"constant":false,"inputs":[{"name":"name","type":"string32"}],"name":"register","outputs":[]},{"constant":false,"inputs":[],"name":"unregister","outputs":[]}]; +var abiNameReg = [{"constant":true,"inputs":[{"name":"name","type":"bytes32"}],"name":"addressOf","outputs":[{"name":"addr","type":"address"}]},{"constant":false,"inputs":[],"name":"kill","outputs":[]},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"nameOf","outputs":[{"name":"name","type":"bytes32"}]},{"constant":false,"inputs":[{"name":"name","type":"bytes32"}],"name":"register","outputs":[]},{"constant":false,"inputs":[],"name":"unregister","outputs":[]}]; // Example JS use: web3.eth.contract(addrNameReg, abiNameReg).register("My Name").transact();