Contract con_optic_nft_gallery


Contract Code


  
1
2 metadata = Hash(default_value=0)
3
4
5 @construct
6 def seed():
7 metadata['operator'] = ctx.caller
8 metadata['master_contract'] = 'con_optic_marketplace'
9 metadata['optic_contract'] = 'con_optic_marketplace'
10
11 @export
12 def change_metadata(key: str, value: Any):
13 assert ctx.caller == metadata['optic_contract'
14 ], 'Only operator can set metadata!'
15 metadata[key] = value
16
17
18 @export
19 def mint(thing: str, name: str, meta: dict, creator: str):
20 assert ctx.caller == metadata['operator'
21 ], 'Only operator can set metadata!'
22 uid = hashlib.sha256(thing)
23 assert not S[uid], thing + ' already exists'
24 S[uid] = ['thing', 'type', 'name', 'owner', 'creator', 'price:amount',
25 'meta_items']
26 S[uid, 'thing'] = thing
27 S[uid, 'type'] = 'text/plain'
28 S[uid, 'name'] = name
29 S[uid, 'owner'] = creator
30 S[uid, 'creator'] = creator
31 S[uid, 'price', 'amount'] = 0
32 S[uid, 'meta_items'] = ['boost']
33 S[uid, 'meta', 'boost'] = meta['boost']
34 return uid
35
36
37 @export
38 def exists(thing: str):
39 uid = hashlib.sha256(thing)
40 return S[uid]
41
42 @export
43 def get_owner(uid: str):
44 return S[uid, 'owner']
45
46 @export
47 def get_boost(uid: str):
48 return S[uid, 'meta', 'boost']
49
50 @export
51 def get_price(uid: str):
52 return S[uid, 'price', 'amount']
53
54 @export
55 def set_price(uid: str, amount: float):
56 assert ctx.caller == metadata['master_contract'
57 ], 'Only operator can set metadata!'
58 assert amount >= 0, 'Cannot set a negative price'
59 S[uid, 'price', 'amount'] = amount
60
61
62 @export
63 def set_owner(uid: str, owner: str):
64 assert ctx.caller == metadata['master_contract'
65 ], 'Only operator can set metadata!'
66
67 S[uid, 'owner'] = owner
68
69

Byte Code

e3000000000000000000000000060000004000000073d6000000650064006401640264038d035a016404640584005a026503640183016504650564069c0264076408840483015a06650364018301650465046507650464099c04640a640b840483015a086503640183016504640c9c01640d640e840483015a096503640183016504640f9c0164106411840483015a0a6503640183016504640f9c0164126413840483015a0b6503640183016504640f9c0164146415840483015a0c6503640183016504650d64169c0264176418840483015a0e6503640183016504650464199c02641a641b840483015a0f641c5300291de900000000da15636f6e5f6f707469635f6e66745f67616c6c657279da086d657461646174612903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65630000000000000000000000000300000043000000731e00000074006a01740264013c006402740264033c006402740264043c006400530029054eda086f70657261746f72da15636f6e5f6f707469635f6d61726b6574706c616365da0f6d61737465725f636f6e7472616374da0e6f707469635f636f6e74726163742903da03637478da0663616c6c6572da0a5f5f6d65746164617461a900720e000000720e000000da00da045f5f5f5f05000000730600000000010a01080172100000002902da036b6579da0576616c7565630200000000000000020000000300000043000000732200000074006a017402640119006b02731674036402830182017c0174027c003c006400530029034e720a0000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212904720b000000720c000000720d000000da0e417373657274696f6e4572726f72290272110000007212000000720e000000720e000000720f000000da0f6368616e67655f6d657461646174610b000000730600000000021001060172140000002904da057468696e677206000000da046d657461da0763726561746f7263040000000000000005000000070000004300000073ba00000074006a017402640119006b027316740364028301820174046a057c0083017d0474067c0419000c00733674037c006403170083018201640464056406640764086409640a670774067c043c007c0074067c04640466023c00640b74067c04640566023c007c0174067c04640666023c007c0374067c04640766023c007c0374067c04640866023c00640c74067c04640d640e66033c00640f670174067c04640a66023c007c02640f190074067c046410640f66033c007c04530029114e72070000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461217a0f20616c7265616479206578697374737215000000da04747970657206000000da056f776e657272170000007a0c70726963653a616d6f756e74da0a6d6574615f6974656d737a0a746578742f706c61696e7201000000da057072696365da06616d6f756e74da05626f6f737472160000002907720b000000720c000000720d0000007213000000da07686173686c6962da06736861323536da015329057215000000720600000072160000007217000000da03756964720e000000720e000000720f000000da046d696e7412000000731e0000000002100106010a0116010c010a010c010c010c010c010c010e010e011201722200000029017215000000630100000000000000020000000200000043000000731200000074006a017c0083017d0174027c011900530029014e2903721e000000721f0000007220000000290272150000007221000000720e000000720e000000720f000000da0665786973747325000000730400000000020a01722300000029017221000000630100000000000000010000000300000043000000730c00000074007c00640166021900530029024e72190000002901722000000029017221000000720e000000720e000000720f000000da096765745f6f776e65722b000000730200000000027224000000630100000000000000010000000400000043000000730e00000074007c006401640266031900530029034e7216000000721d0000002901722000000029017221000000720e000000720e000000720f000000da096765745f626f6f737430000000730200000000027225000000630100000000000000010000000400000043000000730e00000074007c006401640266031900530029034e721b000000721c0000002901722000000029017221000000720e000000720e000000720f000000da096765745f70726963653500000073020000000002722600000029027221000000721c000000630200000000000000020000000500000043000000733800000074006a017402640119006b02731674036402830182017c0164036b05732674036404830182017c0174047c006405640666033c006400530029074e72090000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172010000007a1b43616e6e6f74207365742061206e65676174697665207072696365721b000000721c0000002905720b000000720c000000720d0000007213000000722000000029027221000000721c000000720e000000720e000000720f000000da097365745f70726963653a000000730800000000021001060110017227000000290272210000007219000000630200000000000000020000000400000043000000732600000074006a017402640119006b02731674036402830182017c0174047c00640366023c006400530029044e72090000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172190000002905720b000000720c000000720d00000072130000007220000000290272210000007219000000720e000000720e000000720f000000da097365745f6f776e657242000000730600000000021001060172280000004e2910da0448617368720d0000007210000000da085f5f6578706f7274da03737472da03416e797214000000da046469637472220000007223000000722400000072250000007226000000da05666c6f617472270000007228000000720e000000720e000000720e000000720f000000da083c6d6f64756c653e010000007324000000060108030806060112060601161206011005060110040601100406011004060112070601