Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.20 KB | None | 0 0
  1. pragma solidity ^0.4.13;
  2.  
  3. /**
  4. * blocksoft.biz antifake demo
  5. */
  6.  
  7. contract HouseStructure {
  8.  
  9. address public owner; //address who can update random
  10.  
  11.  
  12. struct DataFirstStep {
  13. int water;
  14. string datetime;
  15. int8 latitude;
  16. int8 latitudeDrop;
  17. int8 longitude;
  18. int8 longitudeDrop;
  19. int z;
  20. }
  21.  
  22. struct DataSecondStep {
  23. string datetime;
  24. int8 latitude;
  25. int8 latitudeDrop;
  26. int8 longitude;
  27. int8 longitudeDrop;
  28. int z;
  29. }
  30.  
  31.  
  32.  
  33. function HouseStructure() {
  34. owner = msg.sender;
  35.  
  36. }
  37.  
  38. modifier onlyOwner {
  39. if (msg.sender != owner) {
  40. revert();
  41. }
  42. _;
  43. }
  44.  
  45. function compareDataFirstStep ( DataFirstStep first, DataFirstStep second) onlyOwner returns(bool) {
  46. return sha3(first.datetime) == sha3(second.datetime) &&
  47. first.latitude == second.latitude &&
  48. first.latitudeDrop == second.latitudeDrop &&
  49. first.longitude == second.longitude &&
  50. first.longitudeDrop == second.longitudeDrop &&
  51. first.z == second.z;
  52. }
  53.  
  54. function compareDataSecondStep (DataSecondStep first, DataSecondStep second) onlyOwner returns(bool) {
  55. return sha3(first.datetime) == sha3(second.datetime) &&
  56. first.latitude == second.latitude &&
  57. first.latitudeDrop == second.latitudeDrop &&
  58. first.longitude == second.longitude &&
  59. first.longitudeDrop == second.longitudeDrop &&
  60. first.z == second.z;
  61. }
  62.  
  63. function compareDataSecondStepFirstStep (DataSecondStep first, DataFirstStep second) onlyOwner returns(bool) {
  64. return sha3(first.datetime) == sha3(second.datetime) &&
  65. first.latitude == second.latitude &&
  66. first.latitudeDrop == second.latitudeDrop &&
  67. first.longitude == second.longitude &&
  68. first.longitudeDrop == second.longitudeDrop &&
  69. first.z == second.z;
  70. }
  71.  
  72. function compareDataFirstStepSecondStep (DataFirstStep first, DataSecondStep second) onlyOwner returns(bool) {
  73. return compareDataSecondStepFirstStep(second, first);
  74. }
  75. }
  76.  
  77. contract House is HouseStructure {
  78.  
  79. int8 constant STATUS_ADDED = 1;
  80. int8 constant STATUS_REGISTERED = 2;
  81. address public owner; //address who can update random
  82. address public admin; //address who can ask random
  83. string userAdress;
  84. string _owner;
  85. string _architector;
  86.  
  87. event ErrorEvent(
  88. address indexed _from,
  89. int current_step,
  90. int newstep
  91. );
  92.  
  93. function error(int current_step,int newstep) payable {
  94. // Any call to this function (even deeply nested) can
  95. // be detected from the JavaScript API by filtering
  96. // for `Deposit` to be called.
  97. ErrorEvent(msg.sender, current_step, newstep);
  98. }
  99.  
  100. function House() {
  101. owner = msg.sender;
  102. step = -2;
  103. }
  104.  
  105. function() {
  106. revert();
  107. }
  108.  
  109. modifier onlyOwner {
  110. if (msg.sender != owner) {
  111. revert();
  112. }
  113. _;
  114. }
  115.  
  116. //random suggest structure
  117.  
  118. string githuburl; //random is generated by the seed
  119.  
  120. //indexed suggests storage
  121. mapping ( int => DataSecondStep ) geometryFirstStep;
  122. mapping ( int => DataFirstStep ) firstDataStep;
  123. mapping ( int => DataSecondStep ) secondStep;
  124. mapping ( int => DataSecondStep ) thirdStep;
  125. mapping ( int => DataSecondStep ) fourStep;
  126. mapping ( int => DataSecondStep ) fiveStep;
  127. mapping ( int => DataSecondStep ) sixStep;
  128.  
  129. int public firstDataCount;
  130. int public geometryDataCount;
  131. int public secondStepCount;
  132. int public thirdStepCount;
  133. int public fourStepCount;
  134. int public fiveStepCount;
  135. int public sixStepCount;
  136. int public step;
  137.  
  138. function getGitCall() onlyOwner returns(string) {
  139. return githuburl;
  140. }
  141.  
  142. function check(int value) internal returns(bool) {
  143. if (step != value) {
  144. error(step, value);
  145. return false;
  146. }
  147. return true;
  148. step++;
  149. }
  150.  
  151. function zeroZeroStepCall (string owner, string architector) onlyOwner returns(bool) {
  152. if (check(-2)) {
  153. _owner = owner;
  154. _architector = architector;
  155. return true;
  156. }
  157. return false;
  158. }
  159.  
  160. function zeroStepCall(string gitHubUrl) onlyOwner returns(bool) {
  161. if (check(-1)) {
  162. githuburl = gitHubUrl;
  163. return true;
  164. }
  165. return false;
  166. }
  167.  
  168. function SetGeometryFirstStep(string datetime,
  169. int8 latitude,
  170. int8 latitudeDrop,
  171. int8 longitude,
  172. int8 longitudeDrop,
  173. int z) {
  174. geometryFirstStep[geometryDataCount] = DataSecondStep (
  175. datetime,
  176. latitude,
  177. latitudeDrop,
  178. longitude,
  179. longitudeDrop, z);
  180. }
  181.  
  182. function CheckGeometry() onlyOwner returns(bool)
  183. {
  184. if( firstDataCount == geometryDataCount)
  185. {
  186. for ( int i = 0;i < firstDataCount;i++) {
  187. if(!compareDataSecondStepFirstStep(geometryFirstStep[i], firstDataStep[i])) {
  188. return false;
  189. }
  190. }
  191. }
  192. return true;
  193. }
  194.  
  195.  
  196.  
  197. function firstStepCall(int water, string datetime,
  198. int8 latitude,
  199. int8 latitudeDrop,
  200. int8 longitude,
  201. int8 longitudeDrop,
  202. int z) onlyOwner returns(bool) {
  203. if (check(1)) {
  204. firstDataStep[firstDataCount] = DataFirstStep ( water,
  205. datetime,
  206. latitude,
  207. latitudeDrop,
  208. longitude,
  209. longitudeDrop, z);
  210. firstDataCount++;
  211. return true;
  212. }
  213. return false;
  214. }
  215.  
  216. function secondStepCall(string gitHubUrl) onlyOwner returns(bool) {
  217. if (check(2)) {
  218. githuburl = gitHubUrl;
  219. return true;
  220. }
  221. return false;
  222. }
  223.  
  224. function thirdStepCall(string gitHubUrl) onlyOwner returns(bool) {
  225. if (check(3)) {
  226. githuburl = gitHubUrl;
  227. return true;
  228. }
  229. return false;
  230. }
  231.  
  232. function fourStepCall(string gitHubUrl) onlyOwner returns(bool) {
  233. if (check(4)) {
  234. githuburl = gitHubUrl;
  235. return true;
  236. }
  237. return false;
  238. }
  239.  
  240. function fiveStepCall(string gitHubUrl) onlyOwner returns(bool) {
  241. if (check(5)) {
  242. githuburl = gitHubUrl;
  243. return true;
  244. }
  245. return false;
  246. }
  247.  
  248. function sixStepCall(string gitHubUrl) onlyOwner returns(bool) {
  249. if (check(6)) {
  250. githuburl = gitHubUrl;
  251. return true;
  252. }
  253. return false;
  254. }
  255.  
  256. //place suggest of random number
  257. function placeDataFirstStep(string datetime,
  258. int8 latitude,
  259. int8 latitudeDrop,
  260. int8 longitude,
  261. int8 longitudeDrop,
  262. int z) onlyOwner returns (int placed) {
  263.  
  264. }
  265.  
  266. //something to review our db of suggested randoms
  267. function placeDataFirstStep(int index) onlyOwner returns (bytes32 a, bool b, int c) {
  268.  
  269. }
  270.  
  271. //admin matched suggest with request in main contract (can call also here)
  272. function updateSuggestIndex(int index, int main_index) onlyOwner returns (bool) {
  273. // if (suggests[index].asked) {
  274. // revert();
  275. // }
  276. // suggests[index].index = main_index;
  277. // suggests[index].asked = true;
  278. }
  279. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement