Contract con_uw_nft


Contract Code


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

Byte Code

e300000000000000000000000006000000400000007316010000650064006401640264038d035a01650264018301650365036504650364049c0464056406840483015a05650264018301650364079c0164086409840483015a0665026401830165036504640a9c02640b640c840483015a0765026401830165036508640d9c02640e640f840483015a0965026401830165036503650a64109c0364116412840483015a0b650264018301650364139c0164146415840483015a0c650264018301650364139c0164166417840483015a0d6502640183016503650e64189c026419641a840483015a0f650264018301650364139c01641b641c840483015a10650264018301650364139c01641d641e840483015a1165026401830165036503641f9c0264206421840483015a12642253002923da00da0a636f6e5f75775f6e6674da01532903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d652904da0c7468696e675f737472696e677206000000da046d657461da0763726561746f72630400000000000000050000000d0000004300000073a001000074006a017c0083017d0474027c0419000c00732074037c0064011700830182016402640364046405640664076408670774027c043c007c0074027c04640266023c00640974027c04640366023c007c0174027c04640466023c007c0374027c04640566023c007c0374027c04640666023c00640a74027c04640b640c66033c00640d74027c04640e66023c00640f6410641164126413641464156416641764186419641a641b670d74027c04640866023c007c02640f190074027c04641c640f66033c007c026410190074027c04641c641066033c007c026411190074027c04641c641166033c007c026412190074027c04641c641266033c007c026413190074027c04641c641366033c007c026414190074027c04641c641466033c007c026415190074027c04641c641566033c007c026416190074027c04641c641666033c007c026417190074027c04641c641766033c007c026418190074027c04641c641866033c007c026419190074027c04641c641966033c007c02641a190074027c04641c641a66033c007c02641b190074027c04641c641b66033c007c045300291d4e7a0f20616c726561647920657869737473da057468696e67da04747970657206000000da056f776e657272090000007a0c70726963653a616d6f756e74da0a6d6574615f6974656d737a0a746578742f706c61696ee900000000da057072696365da06616d6f756e7446da0761756374696f6eda06736561736f6eda026964da09636861726163746572da07656c656d656e74da06726172697479da0474696572da056c6576656cda03657870da026870da0664616d616765da07646566656e7365da08637269746963616cda0765766173696f6e72080000002904da07686173686c6962da06736861323536da035f5f53da0e417373657274696f6e4572726f7229057207000000720600000072080000007209000000da03756964a90072240000007201000000da096164645f7468696e6704000000733800000000020a0116010c010a010c010c010c010c010c010e010c0108010e0110011201120112011201120112011201120112011201120112011201722500000029017207000000630100000000000000020000000200000043000000731200000074006a017c0083017d0174027c011900530029014e2903721f00000072200000007221000000290272070000007223000000722400000072240000007201000000da0c7468696e675f65786973747324000000730400000000020a01722600000029027223000000720800000063020000000000000002000000050000004300000073aa0000007c016401190074007c006402640166033c007c016403190074007c006402640366033c007c016404190074007c006402640466033c007c016405190074007c006402640566033c007c016406190074007c006402640666033c007c016407190074007c006402640766033c007c016408190074007c006402640866033c007c016409190074007c006402640966033c007c01640a190074007c006402640a66033c0074007c0019005300290b4e72160000007208000000721700000072180000007219000000721a000000721b000000721c000000721d000000721e00000029017221000000290272230000007208000000722400000072240000007201000000da0b6368616e67655f6d6574612a00000073140000000002120112011201120112011201120112011201722700000029027223000000721100000063020000000000000002000000040000004300000073140000007c0174007c00640166023c0074007c001900530029024e721100000029017221000000290272230000007211000000722400000072240000007201000000da0e6368616e67655f61756374696f6e38000000730400000000020c017228000000290372230000007208000000da0576616c756563030000000000000003000000050000004300000073160000007c0274007c0064017c0166033c0074007c001900530029024e7208000000290172210000002903722300000072080000007229000000722400000072240000007201000000da086164645f6d6574613e000000730400000000020e01722a00000029017223000000630100000000000000010000000300000043000000730c00000074007c00640166021900530029024e720c0000002901722100000029017223000000722400000072240000007201000000da096765745f6f776e65724400000073020000000002722b000000630100000000000000010000000300000043000000730c00000074007c00640166021900530029024e72090000002901722100000029017223000000722400000072240000007201000000da0b6765745f63726561746f724900000073020000000002722c00000029027223000000721000000063020000000000000002000000050000004300000073220000007c0164016b05731074006402830182017c0174017c006403640466033c006400530029054e720e0000007a1b43616e6e6f74207365742061206e65676174697665207072696365720f0000007210000000290272220000007221000000290272230000007210000000722400000072240000007201000000da097365745f70726963654e000000730400000000021001722d000000630100000000000000010000000400000043000000730e00000074007c006401640266031900530029034e720f00000072100000002901722100000029017223000000722400000072240000007201000000da106765745f70726963655f616d6f756e745400000073020000000002722e000000630100000000000000010000000300000043000000730c00000074007c00640166021900530029024e72110000002901722100000029017223000000722400000072240000007201000000da0b6765745f61756374696f6e5900000073020000000002722f00000029027223000000720c00000063020000000000000002000000040000004300000073100000007c0174007c00640166023c006400530029024e720c0000002901722100000029027223000000720c000000722400000072240000007201000000da097365745f6f776e65725e0000007302000000000272300000004e2913da04486173687221000000da085f5f6578706f7274da03737472da0464696374722500000072260000007227000000da04626f6f6c7228000000da03416e79722a000000722b000000722c000000da05666c6f6174722d000000722e000000722f00000072300000007224000000722400000072240000007201000000da083c6d6f64756c653e01000000732c0000000e030601161f060110050601120d060112050601140506011004060110040601120506011004060110040601