Contract con_nameservice_info_v2


Contract Code


  
1 I = importlib
2
3 nameservice_contract = Variable()
4 owner = Variable()
5 name_info = Hash(default_value=None)
6 allowed_keys = Variable()
7 change_price = Variable()
8 trt_contract = Variable()
9
10 @construct
11 def seed():
12 nameservice_contract.set("con_nameservice_v3")
13 owner.set(ctx.caller)
14 allowed_keys.set(["twitter"])
15 change_price.set(1.0)
16 trt_contract.set("con_trt")
17
18 @export
19 def set_data(name:str, key:str, value: str):
20 names_balances = ForeignHash(foreign_contract=nameservice_contract.get(), foreign_name='collection_balances')
21 assert names_balances[ctx.caller, name] != 0, "You do not own this name"
22 assert key in allowed_keys.get(), "This data is not allowed"
23 token = I.import_module(trt_contract.get())
24 token.transfer_from(amount=change_price.get(), to=owner.get(), main_account=ctx.caller)
25 name_info[name, key] = value
26
27 @export
28 def clear_data(name:str):
29 names_balances = ForeignHash(foreign_contract=nameservice_contract.get(), foreign_name='collection_balances')
30 assert names_balances[ctx.caller, name] != 0, "You do not own this name"
31 for key in allowed_keys.get():
32 name_info[name, key] = None
33
34 @export
35 def set_change_price(new_change_price:float):
36 assert ctx.caller == owner.get(), "You are not the owner"
37 change_price.set(new_change_price)
38
39 @export
40 def set_trt_contract(new_trt_contract:str):
41 assert ctx.caller == owner.get(), "You are not the owner"
42 trt_contract.set(new_trt_contract)
43
44 @export
45 def set_owner(new_owner:str):
46 assert ctx.caller == owner.get(), "You are not the owner"
47 owner.set(new_owner)
48
49 @export
50 def set_nameservice_contract(new_contract:str):
51 assert ctx.caller == owner.get(), "You are not the owner"
52 nameservice_contract.set(new_contract)
53
54 @export
55 def set_allowed_keys(new_allowed_keys:list):
56 assert ctx.caller == owner.get(), "You are not the owner"
57 allowed_keys.set(new_allowed_keys)

Byte Code

e3000000000000000000000000050000004000000073f800000065005a0165026400640164028d025a0365026400640364028d025a04650564046400640564068d035a0665026400640764028d025a0765026400640864028d025a0865026400640964028d025a09640a640b84005a0a650b64008301650c650c650c640c9c03640d640e840483015a0d650b64008301650c640f9c0164106411840483015a0e650b64008301650f64129c0164136414840483015a10650b64008301650c64159c0164166417840483015a11650b64008301650c64189c016419641a840483015a12650b64008301650c641b9c01641c641d840483015a13650b640083016514641e9c01641f6420840483015a15640453002921da17636f6e5f6e616d65736572766963655f696e666f5f7632da146e616d65736572766963655f636f6e74726163742902da08636f6e7472616374da046e616d65da056f776e65724eda096e616d655f696e666f2903da0d64656661756c745f76616c756572030000007204000000da0c616c6c6f7765645f6b657973da0c6368616e67655f7072696365da0c7472745f636f6e7472616374630000000000000000000000000300000043000000733e00000074006a0164018301010074026a0174036a048301010074056a01640267018301010074066a017407640383018301010074086a016404830101006400530029054eda12636f6e5f6e616d65736572766963655f7633da07747769747465727a03312e30da07636f6e5f7472742909da165f5f6e616d65736572766963655f636f6e7472616374da03736574da075f5f6f776e6572da03637478da0663616c6c6572da0e5f5f616c6c6f7765645f6b657973da0e5f5f6368616e67655f7072696365da07646563696d616cda0e5f5f7472745f636f6e7472616374a90072170000007217000000da00da045f5f5f5f0f000000730a00000000010a010c010c010e01721900000029037204000000da036b6579da0576616c7565630300000000000000050000000600000043000000737a000000740074016a02830064016402640364048d047d037c0374036a047c006602190064056b03732e74056406830182017c0174066a0283006b067342740564078301820174076a0874096a02830083017d047c046a0a740b6a028300740c6a02830074036a0464088d0301007c02740d7c007c0166023c006400530029094eda13636f6c6c656374696f6e5f62616c616e6365737201000000da0e6e616d65735f62616c616e6365732904da10666f726569676e5f636f6e7472616374da0c666f726569676e5f6e616d6572030000007204000000e9000000007a18596f7520646f206e6f74206f776e2074686973206e616d657a18546869732064617461206973206e6f7420616c6c6f7765642903da06616d6f756e74da02746fda0c6d61696e5f6163636f756e74290eda0b466f726569676e48617368720e000000da0367657472110000007212000000da0e417373657274696f6e4572726f727213000000da0149da0d696d706f72745f6d6f64756c657216000000da0d7472616e736665725f66726f6d72140000007210000000da0b5f5f6e616d655f696e666f29057204000000721a000000721b000000da105f5f6e616d65735f62616c616e636573da05746f6b656e721700000072170000007218000000da087365745f646174611700000073120000000002080102010a011a0114010e0110010a01722d000000290172040000006301000000000000000300000006000000430000007350000000740074016a02830064016402640364048d047d017c0174036a047c006602190064056b03732e7405640683018201781c74066a02830044005d107d02640074077c007c0266023c00713857006400530029074e721c0000007201000000721d0000002904721e000000721f0000007203000000720400000072200000007a18596f7520646f206e6f74206f776e2074686973206e616d6529087224000000720e00000072250000007211000000721200000072260000007213000000722a00000029037204000000722b000000721a000000721700000072170000007218000000da0a636c6561725f6461746124000000730c0000000002080102010a011a010e01722e0000002901da106e65775f6368616e67655f7072696365630100000000000000010000000200000043000000732400000074006a0174026a0383006b027316740464018301820174056a067c00830101006400530029024e7a15596f7520617265206e6f7420746865206f776e65722907721100000072120000007210000000722500000072260000007214000000720f0000002901722f000000721700000072170000007218000000da107365745f6368616e67655f70726963652e00000073040000000002160172300000002901da106e65775f7472745f636f6e7472616374630100000000000000010000000200000043000000732400000074006a0174026a0383006b027316740464018301820174056a067c00830101006400530029024e7a15596f7520617265206e6f7420746865206f776e65722907721100000072120000007210000000722500000072260000007216000000720f00000029017231000000721700000072170000007218000000da107365745f7472745f636f6e74726163743400000073040000000002160172320000002901da096e65775f6f776e6572630100000000000000010000000200000043000000732400000074006a0174026a0383006b027316740464018301820174026a057c00830101006400530029024e7a15596f7520617265206e6f7420746865206f776e6572290672110000007212000000721000000072250000007226000000720f00000029017233000000721700000072170000007218000000da097365745f6f776e65723a00000073040000000002160172340000002901da0c6e65775f636f6e7472616374630100000000000000010000000200000043000000732400000074006a0174026a0383006b027316740464018301820174056a067c00830101006400530029024e7a15596f7520617265206e6f7420746865206f776e6572290772110000007212000000721000000072250000007226000000720e000000720f00000029017235000000721700000072170000007218000000da187365745f6e616d65736572766963655f636f6e74726163744000000073040000000002160172360000002901da106e65775f616c6c6f7765645f6b657973630100000000000000010000000200000043000000732400000074006a0174026a0383006b027316740464018301820174056a067c00830101006400530029024e7a15596f7520617265206e6f7420746865206f776e65722907721100000072120000007210000000722500000072260000007213000000720f00000029017237000000721700000072170000007218000000da107365745f616c6c6f7765645f6b6579734600000073040000000002160172380000002916da09696d706f72746c69627227000000da085661726961626c65720e0000007210000000da0448617368722a0000007213000000721400000072160000007219000000da085f5f6578706f7274da03737472722d000000722e000000da05666c6f61747230000000723200000072340000007236000000da046c69737472380000007217000000721700000072170000007218000000da083c6d6f64756c653e0100000073340000000401040108010c010601080104010801040108010401080308080601140c06011009060110050601100506011005060110050601