Contract con_uw_toolkit_6


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 wp_bank = ForeignHash(foreign_contract='con_uw_bank', foreign_name='balances')
9
10 @construct
11 def seed():
12 metadata['operator'] = ctx.caller
13
14 metadata['cost_join'] = 10
15 metadata['bank_cost'] = 20000
16
17
18 @export
19 def change_metadata(key: str, value: int):
20 assert ctx.caller == metadata['operator'], 'Only operator can set metadata!'
21 metadata[key] = value
22
23 @export
24 def join_faction(name: str):
25 caller = ctx.caller
26 amount = metadata['cost_join']
27
28 if wp_bank[caller,'amount'] is not None:
29 if wp_bank[caller,'amount'] >= metadata['bank_cost']:
30 amount = amount / 2
31
32 assert wp[caller] >= amount, 'Not enough coins to send!'
33 con_uwarriors_lst001.transfer_from(metadata['cost_join'], metadata['operator'], caller)
34
35 balances['faction', name] += 1
36 return name
37

Byte Code

e30000000000000000000000000600000040000000738a000000640064016c005a00640064016c015a0165025a03650464006402640364048d035a05650464006402640564048d035a066507640664056402640764088d045a086507640964056402640a64088d045a09640b640c84005a0a650b64028301650c650d640d9c02640e640f840483015a0e650b64028301650c64109c0164116412840483015a0f640153002913e9000000004eda10636f6e5f75775f746f6f6c6b69745f36da086d657461646174612903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da0862616c616e636573da14636f6e5f7577617272696f72735f6c7374303031da0277702904da10666f726569676e5f636f6e7472616374da0c666f726569676e5f6e616d6572050000007206000000da0b636f6e5f75775f62616e6bda0777705f62616e6b630000000000000000000000000300000043000000731e00000074006a01740264013c006402740264033c006404740264053c006400530029064eda086f70657261746f72e90a000000da09636f73745f6a6f696e69204e0000da0962616e6b5f636f73742903da03637478da0663616c6c6572da0a5f5f6d65746164617461a90072150000007215000000da00da045f5f5f5f0e000000730600000000010a01080172170000002902da036b6579da0576616c7565630200000000000000020000000300000043000000732200000074006a017402640119006b02731674036402830182017c0174027c003c006400530029034e720e0000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212904721200000072130000007214000000da0e417373657274696f6e4572726f72290272180000007219000000721500000072150000007216000000da0f6368616e67655f6d65746164617461140000007306000000000210010601721b00000029017206000000630100000000000000030000000400000043000000737c00000074006a017d017402640119007d0274037c0164026602190064006b09723a74037c016402660219007402640319006b05723a7c0264041b007d0274047c0119007c026b05734e740564058301820174066a077402640119007402640619007c0183030100740864077c006602050019006408370003003c007c00530029094e7210000000da06616d6f756e747211000000e9020000007a194e6f7420656e6f75676820636f696e7320746f2073656e6421720e000000da0766616374696f6ee9010000002909721200000072130000007214000000da095f5f77705f62616e6bda045f5f7770721a0000007208000000da0d7472616e736665725f66726f6dda0a5f5f62616c616e636573290372060000007213000000721c000000721500000072150000007216000000da0c6a6f696e5f66616374696f6e1b000000731400000000020601080110011401080114010c010a01140172240000002910da0863757272656e63797208000000da09696d706f72746c6962da0149da044861736872140000007223000000da0b466f726569676e48617368722100000072200000007217000000da085f5f6578706f7274da03737472da03696e74721b00000072240000007215000000721500000072150000007216000000da083c6d6f64756c653e01000000731a0000000801080104010e020e0204010c0104010c030806060112060601