Contract con_ipseity_2


Contract Code


  
1 import currency
2 __name_to_key = Hash(default_value=False, contract='con_ipseity_2', name=
3 'name_to_key')
4 __key_to_name = Hash(default_value=False, contract='con_ipseity_2', name=
5 'key_to_name')
6 __auth_codes = Hash(default_value=False, contract='con_ipseity_2', name=
7 'auth_codes')
8 __Owner = Variable(contract='con_ipseity_2', name='Owner')
9
10
11 def ____():
12 __Owner.set(ctx.signer)
13
14
15 @__export('con_ipseity_2')
16 def setName(name: str):
17 currency.transfer_from(amount=5, to=ctx.this, main_account=ctx.signer)
18 assert len(name) > 0 and len(name
19 ) < 20, 'Chosen name length must be more than 1 and less than 20 characters long.'
20 key = ctx.signer
21 previous_name = __key_to_name[key]
22 name_taken = __name_to_key[name]
23 assert name_taken is False, 'This name has been taken.'
24 if previous_name is not False:
25 __name_to_key[previous_name] = ''
26 __key_to_name[key] = name
27 __name_to_key[name] = key
28
29
30 @__export('con_ipseity_2')
31 def auth(secret: str):
32 __auth_codes[secret] = True
33
34
35 @__export('con_ipseity_2')
36 def withdraw(amount: float):
37 assert ctx.signer == __Owner.get(
38 ), 'You must be the owner of this contract to withdraw funds.'
39 currency.transfer(amount=amount, to=to)
40

Byte Code

e30000000000000000000000000500000040000000738c000000640064016c005a00650164026403640464058d035a02650164026403640664058d035a03650164026403640764058d035a0465056403640864098d025a06640a640b84005a076508640383016509640c9c01640d640e840483015a0a6508640383016509640f9c0164106411840483015a0b650864038301650c64129c0164136414840483015a0d640153002915e9000000004e46da0d636f6e5f697073656974795f32da0b6e616d655f746f5f6b65792903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da0b6b65795f746f5f6e616d65da0a617574685f636f646573da054f776e6572290272050000007206000000630000000000000000000000000200000043000000731000000074006a0174026a03830101006400530029014e2904da075f5f4f776e6572da03736574da03637478da067369676e6572a900720e000000720e000000da00da045f5f5f5f0b00000073020000000001721000000029017206000000630100000000000000040000000500000043000000737e00000074006a01640174026a0374026a0464028d03010074057c00830164036b04722c74057c00830164046b007334740664058301820174026a047d0174077c0119007d0274087c0019007d037c0364066b08735a74066407830182017c0264066b09726a640874087c023c007c0074077c013c007c0174087c003c006400530029094ee9050000002903da06616d6f756e74da02746fda0c6d61696e5f6163636f756e747201000000e9140000007a4843686f73656e206e616d65206c656e677468206d757374206265206d6f7265207468616e203120616e64206c657373207468616e2032302063686172616374657273206c6f6e672e467a1954686973206e616d6520686173206265656e2074616b656e2e720f0000002909da0863757272656e6379da0d7472616e736665725f66726f6d720c000000da0474686973720d000000da036c656eda0e417373657274696f6e4572726f72da0d5f5f6b65795f746f5f6e616d65da0d5f5f6e616d655f746f5f6b657929047206000000da036b6579da0d70726576696f75735f6e616d65da0a6e616d655f74616b656e720e000000720e000000720f000000da077365744e616d650f00000073160000000002140112010e01060108010801100108010801080172200000002901da06736563726574630100000000000000010000000300000043000000730c000000640174007c003c006400530029024e542901da0c5f5f617574685f636f64657329017221000000720e000000720e000000720f000000da04617574681e00000073020000000002722300000029017212000000630100000000000000010000000400000043000000732800000074006a0174026a0383006b027316740464018301820174056a067c00740764028d0201006400530029034e7a39596f75206d75737420626520746865206f776e6572206f66207468697320636f6e747261637420746f2077697468647261772066756e64732e2902721200000072130000002908720c000000720d000000720a000000da03676574721a0000007216000000da087472616e73666572721300000029017212000000720e000000720e000000720f000000da0877697468647261772300000073060000000002100106017226000000290e7216000000da0448617368721c000000721b0000007222000000da085661726961626c65720a0000007210000000da085f5f6578706f7274da0373747272200000007223000000da05666c6f61747226000000720e000000720e000000720e000000720f000000da083c6d6f64756c653e01000000731c00000008010601080106010801060108010c0308040601100e060110040601