Guest User

Untitled

a guest
Feb 3rd, 2019
130
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. parameter
  2. (or :_entries
  3. (pair %_Liq_entry_createFile
  4. string
  5. key_hash)
  6. (unit %_Liq_entry_main))
  7. ;
  8. storage
  9. (pair :storage
  10. (big_map
  11. address
  12. (set
  13. address))
  14. (set
  15. string))
  16. ;
  17. code
  18. {
  19. DUP ;
  20. DIP
  21. {
  22. CDR @storage_slash_1 ;
  23. }
  24. ;
  25. CAR @parameter_slash_2 ;
  26. DUP @parameter ;
  27. IF_LEFT
  28. {
  29. RENAME @_fileHash_manager_slash_3
  30. ;
  31. DUUUP @storage ;
  32. DUUP ;
  33. CAR @fileHash ;
  34. SENDER @userAddress ;
  35. DUUUP @storage ;
  36. CDR %documents ;
  37. DUUUP @fileHash ;
  38. MEM ;
  39. IF
  40. {
  41. PUSH
  42. string
  43. "sorry file exist use him api" ;
  44. FAILWITH ;
  45. }
  46. {
  47. UNIT ;
  48. }
  49. ;
  50. DROP ;
  51. PUSH
  52. (set
  53. address)
  54. {} ;
  55. PUSH
  56. (set
  57. address)
  58. {} ;
  59. PAIR ;
  60. DUUP @userAddress ;
  61. PAIR ;
  62. DUUUP @fileHash ;
  63. PAIR ;
  64. PUSH
  65. mutez
  66. 0 ;
  67. PUSH
  68. bool
  69. True ;
  70. PUSH
  71. bool
  72. True ;
  73. PUSH
  74. (option
  75. key_hash)
  76. None ;
  77. DUUUUUUUUUP ;
  78. CDR @manager ;
  79. CREATE_CONTRACT
  80. {
  81. parameter
  82. (or :_entries
  83. (unit %_Liq_entry_main)
  84. (or
  85. (unit %_Liq_entry_sign)
  86. (or
  87. (address %_Liq_entry_addAccess)
  88. (address %_Liq_entry_removeAccess))))
  89. ;
  90. storage
  91. (pair
  92. string
  93. (pair
  94. address
  95. (pair
  96. (set
  97. address)
  98. (set
  99. address))))
  100. ;
  101. code
  102. {
  103. DUP ;
  104. DIP
  105. {
  106. CDR @storage_slash_1 ;
  107. }
  108. ;
  109. CAR @parameter_slash_2 ;
  110. DUP @parameter ;
  111. IF_LEFT
  112. {
  113. DROP ;
  114. DUUP ;
  115. NIL
  116. operation
  117. ;
  118. PAIR ;
  119. }
  120. {
  121. IF_LEFT
  122. {
  123. RENAME @__slash_5
  124. ;
  125. DUUUP @storage ;
  126. DUP ;
  127. CDDAR @signs ;
  128. DUUP ;
  129. CDDDR @access ;
  130. SENDER @userAddress ;
  131. DUUP @access ;
  132. DUUP @userAddress ;
  133. MEM ;
  134. NOT ;
  135. IF
  136. {
  137. PUSH
  138. string
  139. "Sign not alowed" ;
  140. FAILWITH ;
  141. }
  142. {
  143. UNIT ;
  144. }
  145. ;
  146. DROP ;
  147. DUUUP @signs ;
  148. DUUP @userAddress ;
  149. MEM ;
  150. IF
  151. {
  152. PUSH
  153. string
  154. "sign already exist" ;
  155. FAILWITH ;
  156. }
  157. {
  158. UNIT ;
  159. }
  160. ;
  161. DROP ;
  162. DUUP @access ;
  163. DUUUUP @signs ;
  164. DUUUP @userAddress ;
  165. DIP
  166. {
  167. PUSH
  168. bool
  169. True ;
  170. }
  171. ;
  172. DIIIIP
  173. {
  174. DROP ;
  175. DROP ;
  176. DROP ;
  177. }
  178. ;
  179. DIIIIIP
  180. {
  181. DROP ;
  182. }
  183. ;
  184. UPDATE @signs ;
  185. PAIR ;
  186. DUUP ;
  187. CDAR @owner ;
  188. PAIR ;
  189. SWAP ;
  190. CAR @hash ;
  191. PAIR ;
  192. NIL
  193. operation
  194. ;
  195. PAIR ;
  196. }
  197. {
  198. IF_LEFT
  199. {
  200. RENAME @user_slash_14
  201. ;
  202. DUUUP @storage ;
  203. DUP ;
  204. CDAR @owner ;
  205. SENDER @userAddress ;
  206. DUUP @owner ;
  207. COMPARE ;
  208. NEQ ;
  209. IF
  210. {
  211. PUSH
  212. string
  213. "you not owner" ;
  214. FAILWITH ;
  215. }
  216. {
  217. UNIT ;
  218. }
  219. ;
  220. DROP ;
  221. DUUP ;
  222. CDDDR @access ;
  223. DUUUUP @user ;
  224. DIP
  225. {
  226. PUSH
  227. bool
  228. True ;
  229. }
  230. ;
  231. DIIIIIP
  232. {
  233. DROP ;
  234. }
  235. ;
  236. UPDATE @access ;
  237. DUUUP ;
  238. CDDAR @signs ;
  239. PAIR ;
  240. SWAP ;
  241. PAIR ;
  242. SWAP ;
  243. CAR @hash ;
  244. PAIR ;
  245. NIL
  246. operation
  247. ;
  248. PAIR ;
  249. }
  250. {
  251. RENAME @user_slash_23
  252. ;
  253. DUUUP @storage ;
  254. DUP ;
  255. CDAR @owner ;
  256. SENDER @userAddress ;
  257. DUUP @owner ;
  258. COMPARE ;
  259. NEQ ;
  260. IF
  261. {
  262. PUSH
  263. string
  264. "you not owner" ;
  265. FAILWITH ;
  266. }
  267. {
  268. UNIT ;
  269. }
  270. ;
  271. DROP ;
  272. DUUP ;
  273. CDDDR @access ;
  274. DUUUUP @user ;
  275. DIP
  276. {
  277. PUSH
  278. bool
  279. False ;
  280. }
  281. ;
  282. DIIIIIP
  283. {
  284. DROP ;
  285. }
  286. ;
  287. UPDATE @access ;
  288. DUUUP ;
  289. CDDAR @signs ;
  290. PAIR ;
  291. SWAP ;
  292. PAIR ;
  293. SWAP ;
  294. CAR @hash ;
  295. PAIR ;
  296. NIL
  297. operation
  298. ;
  299. PAIR ;
  300. }
  301. ;
  302. }
  303. ;
  304. }
  305. ;
  306. DIP
  307. {
  308. DROP ;
  309. DROP ;
  310. }
  311. ;
  312. }
  313. ;
  314. }
  315. ;
  316. PAIR @_createContractOp_docAddress ;
  317. DUUUUP @storage ;
  318. CDR %documents ;
  319. DUUUUUP @storage ;
  320. CAR %usersDocuments ;
  321. DUUUUUUP @storage ;
  322. CAR %usersDocuments ;
  323. DUUUUUP @userAddress ;
  324. GET ;
  325. IF_NONE
  326. {
  327. PUSH
  328. (set
  329. address)
  330. {} ;
  331. }
  332. {}
  333. ;
  334. RENAME @userDocuments
  335. ;
  336. DUUUUP ;
  337. CDR @docAddress ;
  338. DIP
  339. {
  340. PUSH
  341. bool
  342. True ;
  343. }
  344. ;
  345. UPDATE @userDocuments ;
  346. DUUUUUP @userAddress ;
  347. DIP
  348. {
  349. SOME ;
  350. }
  351. ;
  352. UPDATE @usersDocuments ;
  353. PAIR @storage %usersDocuments %documents ;
  354. CAR %usersDocuments ;
  355. DUUUUUP @storage ;
  356. CDR %documents ;
  357. DUUUUUP @fileHash ;
  358. DIP
  359. {
  360. PUSH
  361. bool
  362. True ;
  363. }
  364. ;
  365. DIIIIIP
  366. {
  367. DROP ;
  368. DROP ;
  369. DROP ;
  370. DROP ;
  371. }
  372. ;
  373. UPDATE @documents ;
  374. SWAP ;
  375. PAIR @storage %usersDocuments %documents ;
  376. NIL
  377. operation
  378. ;
  379. DUUUP ;
  380. DIIIP
  381. {
  382. DROP ;
  383. }
  384. ;
  385. CAR @createContractOp ;
  386. CONS ;
  387. PAIR ;
  388. }
  389. {
  390. DROP ;
  391. DUUP ;
  392. NIL
  393. operation
  394. ;
  395. PAIR ;
  396. }
  397. ;
  398. DIP
  399. {
  400. DROP ;
  401. DROP ;
  402. }
  403. ;
  404. }
  405. ;
RAW Paste Data