Contract con_uw_nft_characters


Contract Code


  
1 S = Hash(default_value='')
2 metadata = Hash(default_value=0)
3
4 @construct
5 def seed():
6 metadata['operator'] = ctx.caller
7 metadata['master_contract'] = 'con_uw_master_2'
8
9 @export
10 def change_metadata(key: str, value: Any):
11 assert ctx.caller == metadata['operator'], 'Only operator can set metadata!'
12 metadata[key] = value
13
14
15 @export
16 def add_thing(thing_string: str, name: str, meta: dict, creator: str):
17 assert ctx.caller == metadata['master_contract'], 'Only operator can set metadata!'
18 uid = hashlib.sha256(thing_string)
19 assert not S[uid], thing_string + ' already exists'
20
21 S[uid] = ['thing', 'type', 'name', 'owner', 'creator', 'price:amount', 'meta_items']
22 S[uid, 'thing'] = thing_string
23 S[uid, 'type'] = 'text/plain'
24 S[uid, 'name'] = name
25 S[uid, 'owner'] = creator
26 S[uid, 'creator'] = creator
27 S[uid, 'price', 'amount'] = 0
28 S[uid, 'auction'] = False
29
30 S[uid, 'meta_items'] = ['season', 'id', 'character', 'element', 'rarity', 'tier', 'level', 'exp', 'hp', 'damage', 'defense', 'critical', 'evasion']
31 S[uid, 'meta', 'season'] = meta['season']
32 S[uid, 'meta', 'id'] = meta['id']
33 S[uid, 'meta', 'character'] = meta['character']
34 S[uid, 'meta', 'element'] = meta['element']
35 S[uid, 'meta', 'rarity'] = meta['rarity']
36 S[uid, 'meta', 'tier'] = meta['tier']
37 S[uid, 'meta', 'level'] = meta['level']
38 S[uid, 'meta', 'exp'] = meta['exp']
39 S[uid, 'meta', 'hp'] = meta['hp']
40 S[uid, 'meta', 'damage'] = meta['damage']
41 S[uid, 'meta', 'defense'] = meta['defense']
42 S[uid, 'meta', 'critical'] = meta['critical']
43 S[uid, 'meta', 'evasion'] = meta['evasion']
44
45 return uid
46
47
48 @export
49 def thing_exists(thing_string: str):
50 uid = hashlib.sha256(thing_string)
51 return S[uid]
52
53
54 @export
55 def change_meta(uid: str, meta: dict):
56 assert ctx.caller == metadata['master_contract'], 'Only operator can set metadata!'
57 S[uid, 'meta', 'rarity'] = meta['rarity']
58 S[uid, 'meta', 'tier'] = meta['tier']
59 S[uid, 'meta', 'level'] = meta['level']
60 S[uid, 'meta', 'exp'] = meta['exp']
61 S[uid, 'meta', 'hp'] = meta['hp']
62 S[uid, 'meta', 'damage'] = meta['damage']
63 S[uid, 'meta', 'defense'] = meta['defense']
64 S[uid, 'meta', 'critical'] = meta['critical']
65 S[uid, 'meta', 'evasion'] = meta['evasion']
66 return S[uid]
67
68 @export
69 def change_auction(uid: str, auction: bool):
70 assert ctx.caller == metadata['master_contract'], 'Only operator can set metadata!'
71 S[uid, 'auction'] = auction
72 return S[uid]
73 @export
74
75 def add_meta(uid: str, meta: str, value: Any):
76 assert ctx.caller == metadata['master_contract'], 'Only operator can set metadata!'
77 S[uid, 'meta', meta] = value
78 return S[uid]
79
80
81 @export
82 def get_owner(uid: str):
83 return S[uid, 'owner']
84
85 @export
86 def get_creator(uid: str):
87 return S[uid, 'creator']
88
89 @export
90 def set_price(uid: str, amount: float):
91 assert ctx.caller == metadata['master_contract'], 'Only operator can set metadata!'
92 assert amount >= 0, 'Cannot set a negative price'
93 S[uid, 'price', 'amount'] = amount
94
95 @export
96 def get_price_amount(uid: str):
97 return S[uid, 'price', 'amount']
98
99 @export
100 def get_auction(uid: str):
101 return S[uid, 'auction']
102
103
104 @export
105 def set_owner(uid: str, owner: str):
106 assert ctx.caller == metadata['master_contract'], 'Only operator can set metadata!'
107 S[uid, 'owner'] = owner

Byte Code

e300000000000000000000000006000000400000007344010000650064006401640264038d035a01650064046401640564038d035a026406640784005a036504640183016505650664089c026409640a840483015a076504640183016505650565086505640b9c04640c640d840483015a096504640183016505640e9c01640f6410840483015a0a6504640183016505650864119c0264126413840483015a0b6504640183016505650c64149c0264156416840483015a0d65046401830165056505650664179c0364186419840483015a0e6504640183016505641a9c01641b641c840483015a0f6504640183016505641a9c01641d641e840483015a1065046401830165056511641f9c0264206421840483015a126504640183016505641a9c0164226423840483015a136504640183016505641a9c0164246425840483015a146504640183016505650564269c0264276428840483015a1564295300292ada00da15636f6e5f75775f6e66745f63686172616374657273da01532903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65e900000000da086d65746164617461630000000000000000000000000300000043000000731600000074006a01740264013c006402740264033c006400530029044eda086f70657261746f72da0f636f6e5f75775f6d61737465725f32da0f6d61737465725f636f6e74726163742903da03637478da0663616c6c6572da0a5f5f6d65746164617461a900720f000000720f0000007201000000da045f5f5f5f06000000730400000000010a0172100000002902da036b6579da0576616c7565630200000000000000020000000300000043000000732200000074006a017402640119006b02731674036402830182017c0174027c003c006400530029034e72090000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212904720c000000720d000000720e000000da0e417373657274696f6e4572726f72290272110000007212000000720f000000720f0000007201000000da0f6368616e67655f6d657461646174610b000000730600000000021001060172140000002904da0c7468696e675f737472696e677206000000da046d657461da0763726561746f72630400000000000000050000000d0000004300000073b601000074006a017402640119006b027316740364028301820174046a057c0083017d0474067c0419000c00733674037c006403170083018201640464056406640764086409640a670774067c043c007c0074067c04640466023c00640b74067c04640566023c007c0174067c04640666023c007c0374067c04640766023c007c0374067c04640866023c00640c74067c04640d640e66033c00640f74067c04641066023c00641164126413641464156416641764186419641a641b641c641d670d74067c04640a66023c007c026411190074067c04641e641166033c007c026412190074067c04641e641266033c007c026413190074067c04641e641366033c007c026414190074067c04641e641466033c007c026415190074067c04641e641566033c007c026416190074067c04641e641666033c007c026417190074067c04641e641766033c007c026418190074067c04641e641866033c007c026419190074067c04641e641966033c007c02641a190074067c04641e641a66033c007c02641b190074067c04641e641b66033c007c02641c190074067c04641e641c66033c007c02641d190074067c04641e641d66033c007c045300291f4e720b0000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461217a0f20616c726561647920657869737473da057468696e67da04747970657206000000da056f776e657272170000007a0c70726963653a616d6f756e74da0a6d6574615f6974656d737a0a746578742f706c61696e7207000000da057072696365da06616d6f756e7446da0761756374696f6eda06736561736f6eda026964da09636861726163746572da07656c656d656e74da06726172697479da0474696572da056c6576656cda03657870da026870da0664616d616765da07646566656e7365da08637269746963616cda0765766173696f6e72160000002907720c000000720d000000720e0000007213000000da07686173686c6962da06736861323536da035f5f5329057215000000720600000072160000007217000000da03756964720f000000720f0000007201000000da096164645f7468696e6712000000733c0000000002100106010a0116010c010a010c010c010c010c010c010e010c0108010e0110011201120112011201120112011201120112011201120112011201723000000029017215000000630100000000000000020000000200000043000000731200000074006a017c0083017d0174027c011900530029014e2903722c000000722d000000722e00000029027215000000722f000000720f000000720f0000007201000000da0c7468696e675f65786973747334000000730400000000020a0172310000002902722f000000721600000063020000000000000002000000050000004300000073c000000074006a017402640119006b02731674036402830182017c016403190074047c006404640366033c007c016405190074047c006404640566033c007c016406190074047c006404640666033c007c016407190074047c006404640766033c007c016408190074047c006404640866033c007c016409190074047c006404640966033c007c01640a190074047c006404640a66033c007c01640b190074047c006404640b66033c007c01640c190074047c006404640c66033c0074047c0019005300290d4e720b0000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172230000007216000000722400000072250000007226000000722700000072280000007229000000722a000000722b0000002905720c000000720d000000720e0000007213000000722e0000002902722f0000007216000000720f000000720f0000007201000000da0b6368616e67655f6d6574613a000000731800000000021001060112011201120112011201120112011201120172320000002902722f000000721e000000630200000000000000020000000400000043000000732a00000074006a017402640119006b02731674036402830182017c0174047c00640366023c0074047c001900530029044e720b0000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121721e0000002905720c000000720d000000720e0000007213000000722e0000002902722f000000721e000000720f000000720f0000007201000000da0e6368616e67655f61756374696f6e4a00000073080000000002100106010c0172330000002903722f00000072160000007212000000630300000000000000030000000500000043000000732c00000074006a017402640119006b02731674036402830182017c0274047c0064037c0166033c0074047c001900530029044e720b0000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172160000002905720c000000720d000000720e0000007213000000722e0000002903722f00000072160000007212000000720f000000720f0000007201000000da086164645f6d6574615200000073080000000002100106010e0172340000002901722f000000630100000000000000010000000300000043000000730c00000074007c00640166021900530029024e721a0000002901722e0000002901722f000000720f000000720f0000007201000000da096765745f6f776e65725a000000730200000000027235000000630100000000000000010000000300000043000000730c00000074007c00640166021900530029024e72170000002901722e0000002901722f000000720f000000720f0000007201000000da0b6765745f63726561746f725f0000007302000000000272360000002902722f000000721d000000630200000000000000020000000500000043000000733800000074006a017402640119006b02731674036402830182017c0164036b05732674036404830182017c0174047c006405640666033c006400530029074e720b0000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172070000007a1b43616e6e6f74207365742061206e65676174697665207072696365721c000000721d0000002905720c000000720d000000720e0000007213000000722e0000002902722f000000721d000000720f000000720f0000007201000000da097365745f707269636564000000730800000000021001060110017237000000630100000000000000010000000400000043000000730e00000074007c006401640266031900530029034e721c000000721d0000002901722e0000002901722f000000720f000000720f0000007201000000da106765745f70726963655f616d6f756e746c000000730200000000027238000000630100000000000000010000000300000043000000730c00000074007c00640166021900530029024e721e0000002901722e0000002901722f000000720f000000720f0000007201000000da0b6765745f61756374696f6e710000007302000000000272390000002902722f000000721a000000630200000000000000020000000400000043000000732600000074006a017402640119006b02731674036402830182017c0174047c00640366023c006400530029044e720b0000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121721a0000002905720c000000720d000000720e0000007213000000722e0000002902722f000000721a000000720f000000720f0000007201000000da097365745f6f776e6572760000007306000000000210010601723a0000004e2916da0448617368722e000000720e0000007210000000da085f5f6578706f7274da03737472da03416e797214000000da0464696374723000000072310000007232000000da04626f6f6c7233000000723400000072350000007236000000da05666c6f6174723700000072380000007239000000723a000000720f000000720f000000720f0000007201000000da083c6d6f64756c653e0100000073360000000e010601080308050601120606011621060110050601120f060112070601140706011004060110040601120706011004060110040601