forked from hyperchaincn/Contract-DigitalPoint
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDigitalpoint.sol
More file actions
143 lines (126 loc) · 4.4 KB
/
Digitalpoint.sol
File metadata and controls
143 lines (126 loc) · 4.4 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
contract Digitalpoint {
enum Actor{ Aviation, Bank, Market, Petroleum, Client }
struct Aviation{
bytes32 ID;
bytes32 Name;
uint pointbalance;
}
struct Bank{
bytes32 ID;
bytes32 Name;
uint pointbalance;
}
struct Market{
bytes32 ID;
bytes32 Name;
uint pointbalance;
}
struct Petroleum{
bytes32 ID;
bytes32 Name;
uint pointbalance;
}
struct Client{
bytes32 ID;
bytes32 Name;
uint[] pointbalances;
uint unionpaybalance;
}
struct Commodity{
bytes32 ID;
bytes32 Name;
uint value;
}
mapping(bytes32 => Aviation) aviationMap;
mapping(bytes32 => Bank) bankMap;
mapping(bytes32 => Market) marketMap;
mapping(bytes32 => Petroleum) petroleumMap;
mapping(bytes32 => Client) clientMap;
mapping(bytes32 => Commodity) commodityMap;
function newAviation(bytes32 ID, bytes32 Name, uint pointbalance) returns (bool, bytes32){
Aviation aviation = aviationMap[ID];
if(aviation.ID != 0x0){
return (false,"this ID has been occupied!");
}
aviation.ID = ID;
aviation.Name = Name;
aviation.pointbalance = pointbalance;
return (true,"success");
}
function newBank(bytes32 ID, bytes32 Name, uint pointbalance) returns (bool, bytes32){
Bank bank = bankMap[ID];
if(bank.ID != 0x0){
return (false,"this ID has been occupied!");
}
bank.ID = ID;
bank.Name = Name;
bank.pointbalance = pointbalance;
return (true,"success");
}
function newMarket(bytes32 ID, bytes32 Name, uint pointbalance) returns (bool, bytes32){
Market market = marketMap[ID];
if(market.ID != 0x0){
return (false,"this ID has been occupied!");
}
market.ID = ID;
market.Name = Name;
market.pointbalance = pointbalance;
return (true,"success");
}
function newPetroleum(bytes32 ID, bytes32 Name, uint pointbalance) returns (bool, bytes32){
Petroleum petroleum = petroleumMap[ID];
if(petroleum.ID != 0x0){
return (false,"this ID has been occupied!");
}
petroleum.ID = ID;
petroleum.Name = Name;
petroleum.pointbalance = pointbalance;
return (true,"success");
}
function newCommodity(bytes32 ID, bytes32 Name, uint value) returns (bool, bytes32){
Commodity commodity = commodityMap[ID];
if(commodity.ID != 0x0){
return (false,"this ID has been occupied!");
}
commodity.ID = ID;
commodity.Name = Name;
commodity.value = value;
return (true,"success");
}
function newClient(bytes32 ID, bytes32 Name, uint[] pointbalances, uint unionpaybalance) returns (bool, bytes32){
Client client = clientMap[ID];
if(client.ID != 0x0){
return (false,"this ID has been occupied!");
}
client.ID = ID;
client.Name = Name;
client.pointbalances = pointbalances;
client.unionpaybalance = unionpaybalance;
return (true,"success");
}
function Queryclientbalance(bytes32 ID) returns(bool,bytes32,bytes32,uint[],uint){
Client client = clientMap[ID];
return (true,"Success",client.Name,client.pointbalances,client.unionpaybalance);
}
function exchangeMoneyToPoints(bytes32 ID,uint amount,uint n) returns(bool,bytes32){
Client client = clientMap[ID];
client.unionpaybalance -= amount;
client.pointbalances[n-1] += amount;
return (true,"success");
}
function exchangepoints(bytes32 ID1, uint amount1, uint n, bytes32 ID2, uint amount2, uint m) returns(bool, bytes32){
Client client1 = clientMap[ID1];
Client client2 = clientMap[ID2];
client1.pointbalances[n-1] -= amount1;
client2.pointbalances[n-1] += amount1;
client1.pointbalances[m-1] += amount2;
client2.pointbalances[m-1] -= amount2;
return (true,"success");
}
function pointstransaction(bytes32 ID1, uint n, bytes32 ID2) returns(bool, bytes32){
Client client1 = clientMap[ID1];
Commodity commodity = commodityMap[ID2];
client1.pointbalances[n-1] -= commodity.value;
return (true,"Purchase succeeded");
}
}