Contract con_uw_reset


Contract Code


  
1 import currency
2 import con_uwarriors_lst001
3
4 I = importlib
5 metadata = Hash(default_value=0)
6 balances = Hash(default_value=0)
7 wp = ForeignHash(foreign_contract='con_uwarriors_lst001', foreign_name='balances')
8
9 @construct
10 def seed():
11 metadata['operator'] = ctx.caller
12 metadata['cost_reset'] = 1000
13
14 @export
15 def change_metadata(key: str, value: int):
16 assert ctx.caller == metadata['operator'], 'Only operator can set metadata!'
17 metadata[key] = value
18
19 @export
20 def reset(uid: str):
21 caller = ctx.caller
22 amount = metadata['cost_reset']
23 assert wp[caller] >= amount, 'Not enough coins to send!'
24 thing_info = I.import_module('con_uw_nft_characters')
25 owner = thing_info.get_owner(uid)
26 assert owner == caller, uid + ' not owned by ' + sender
27 balances['reset_count', uid] += 1
28
29 con_uwarriors_lst001.transfer_from(metadata['cost_reset'] * balances['reset_count', uid], metadata
30 ['operator'], caller)
31 return uid
32

Byte Code

e30000000000000000000000000600000040000000737a000000640064016c005a00640064016c015a0165025a03650464006402640364048d035a05650464006402640564048d035a066507640664056402640764088d045a086409640a84005a09650a64028301650b650c640b9c02640c640d840483015a0d650a64028301650b640e9c01640f6410840483015a0e640153002911e9000000004eda0c636f6e5f75775f7265736574da086d657461646174612903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da0862616c616e636573da14636f6e5f7577617272696f72735f6c7374303031da0277702904da10666f726569676e5f636f6e7472616374da0c666f726569676e5f6e616d6572050000007206000000630000000000000000000000000300000043000000731600000074006a01740264013c006402740264033c006400530029044eda086f70657261746f7269e8030000da0a636f73745f72657365742903da03637478da0663616c6c6572da0a5f5f6d65746164617461a90072110000007211000000da00da045f5f5f5f0a000000730400000000010a0172130000002902da036b6579da0576616c7565630200000000000000020000000300000043000000732200000074006a017402640119006b02731674036402830182017c0174027c003c006400530029034e720c0000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212904720e000000720f0000007210000000da0e417373657274696f6e4572726f72290272140000007215000000721100000072110000007212000000da0f6368616e67655f6d657461646174610f000000730600000000021001060172170000002901da03756964630100000000000000050000000500000043000000738800000074006a017d017402640119007d0274037c0119007c026b057322740464028301820174056a06640383017d037c036a077c0083017d047c047c016b02734e74047c00640417007408170083018201740964057c006602050019006406370003003c00740a6a0b740264011900740964057c006602190014007402640719007c01830301007c00530029084e720d0000007a194e6f7420656e6f75676820636f696e7320746f2073656e6421da15636f6e5f75775f6e66745f636861726163746572737a0e206e6f74206f776e656420627920da0b72657365745f636f756e74e901000000720c000000290c720e000000720f0000007210000000da045f5f77707216000000da0149da0d696d706f72745f6d6f64756c65da096765745f6f776e6572da0673656e646572da0a5f5f62616c616e6365737208000000da0d7472616e736665725f66726f6d29057218000000720f000000da06616d6f756e74da0a7468696e675f696e666fda056f776e6572721100000072110000007212000000da05726573657416000000731400000000020601080114010a010a01180114010a0118017226000000290fda0863757272656e63797208000000da09696d706f72746c6962721d000000da044861736872100000007221000000da0b466f726569676e48617368721c0000007213000000da085f5f6578706f7274da03737472da03696e74721700000072260000007211000000721100000072110000007212000000da083c6d6f64756c653e0100000073160000000801080104010e010e0104010c030805060112060601