/
YellowPage.sol
44 lines (37 loc) · 1001 Bytes
/
YellowPage.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
pragma solidity ^0.4.1;
contract YellowPage {
struct Page {
address c_addr;
address owner;
bytes32 url;
bool set;
}
mapping(bytes32 => Page) public pages;
bytes32[] public names;
address public owner;
function YellowPage(){
owner = msg.sender;
}
function TransferTo(address newOwner){
require(msg.sender == owner);
owner = newOwner;
}
function SetPage(bytes32 name, address c_addr, bytes32 url) {
if(pages[name].set){
require(msg.sender == owner || msg.sender == pages[name].owner);
} else {
names.push(name);
}
pages[name].set = true;
pages[name].c_addr = c_addr;
pages[name].owner = msg.sender;
pages[name].url = url;
}
function NamesCount() public constant returns(uint count) {
return names.length;
}
function End() {
require(msg.sender == owner);
suicide(owner);
}
}