Contract con_ewt2


Contract Code


  
1 import currency
2 emergency = Hash()
3 metadata = Hash()
4
5 @construct
6 def seed():
7 emergency['addresses'] = {
8 'd701fe13fc525264161793a4fc2a16363e5c6ff0080dad25ae0f1041bb967c1b' : 0,
9 '00b82d83ac279bbd42b538afec4bc662d8b99f799474b6359888c6476752fd2a' : 0,
10 '7e01b7c9322fd246ccd1c589ca6d690e9e17a50d0f35c0dbcf6acd75cdcef0a5' : 0
11 }
12
13 metadata['operator'] = ctx.caller
14
15 @export
16 def enable_emergency_withdraw():
17 emergency_addresses = emergency['addresses']
18 call_address = ctx.caller
19 assert call_address in emergency_addresses.keys(), "You are not approved to do this."
20 emergency_addresses[call_address] = 1
21 emergency['addresses'] = emergency_addresses
22
23 @export
24 def disable_emergency_withdraw():
25 emergency_addresses = emergency['addresses']
26 call_address = ctx.caller
27 assert call_address in emergency_addresses.keys(), "You are not approved to do this."
28 emergency_addresses[call_address] = 0
29 emergency['addresses'] = emergency_addresses
30
31 @export
32 def safe_emergency_withdraw(amount:float): #can only be run if at least 2 of 3 multisig accounts approve of the emergency_withdraw
33 emergency_addresses = emergency['addresses']
34 call_address = ctx.caller
35 approval_check = sum(emergency_addresses.values())
36 assert approval_check >= 2, "An emergency withdrawal is not approved."
37 assert metadata['operator'] == call_address, "Only the operator can claim tau."
38 currency.transfer(amount=amount, to=call_address)
39
40 @export
41 def emergency_withdraw(amount:float): #temporary function used in testing. will be removed from final contract.
42 assert metadata['operator'] == ctx.caller, "Only the operator can claim tau."
43 currency.transfer(amount=amount, to=ctx.caller)

Byte Code

e300000000000000000000000004000000400000007378000000640064016c005a0065016402640364048d025a0265016402640564048d025a036406640784005a0465056402830164086409840083015a06650564028301640a640b840083015a076505640283016508640c9c01640d640e840483015a096505640283016508640c9c01640f6410840483015a0a640153002911e9000000004eda08636f6e5f65777432da09656d657267656e63792902da08636f6e7472616374da046e616d65da086d65746164617461630000000000000000000000000400000043000000731e00000064016401640164029c03740064033c0074016a02740364043c006400530029054e72010000002903da4064373031666531336663353235323634313631373933613466633261313633363365356336666630303830646164323561653066313034316262393637633162da4030306238326438336163323739626264343262353338616665633462633636326438623939663739393437346236333539383838633634373637353266643261da4037653031623763393332326664323436636364316335383963613664363930653965313761353064306633356330646263663661636437356364636566306135da09616464726573736573da086f70657261746f722904da0b5f5f656d657267656e6379da03637478da0663616c6c6572da0a5f5f6d65746164617461a90072100000007210000000da00da045f5f5f5f0600000073080000000003020202010c01721200000063000000000000000002000000030000004300000073360000007400640119007d0074016a027d017c017c006a0383006b067322740464028301820164037c007c013c007c00740064013c006400530029044e720a0000007a20596f7520617265206e6f7420617070726f76656420746f20646f20746869732ee9010000002905720c000000720d000000720e000000da046b657973da0e417373657274696f6e4572726f722902da13656d657267656e63795f616464726573736573da0c63616c6c5f61646472657373721000000072100000007211000000da19656e61626c655f656d657267656e63795f776974686472617710000000730c0000000002080106010e0106010801721800000063000000000000000002000000030000004300000073360000007400640119007d0074016a027d017c017c006a0383006b067322740464028301820164037c007c013c007c00740064013c006400530029044e720a0000007a20596f7520617265206e6f7420617070726f76656420746f20646f20746869732e72010000002905720c000000720d000000720e00000072140000007215000000290272160000007217000000721000000072100000007211000000da1a64697361626c655f656d657267656e63795f77697468647261771a000000730c0000000002080106010e010601080172190000002901da06616d6f756e7463010000000000000004000000040000004300000073500000007400640119007d0174016a027d0274037c016a04830083017d037c0364026b05732a74056403830182017406640419007c026b02733e740564058301820174076a087c007c0264068d0201006400530029074e720a000000e9020000007a28416e20656d657267656e6379207769746864726177616c206973206e6f7420617070726f7665642e720b0000007a204f6e6c7920746865206f70657261746f722063616e20636c61696d207461752e2902721a000000da02746f2909720c000000720d000000720e000000da0373756dda0676616c7565737215000000720f000000da0863757272656e6379da087472616e736665722904721a00000072160000007217000000da0e617070726f76616c5f636865636b721000000072100000007211000000da17736166655f656d657267656e63795f776974686472617724000000730e0000000002080106010c01100106010e017222000000630100000000000000010000000400000043000000732a00000074006401190074016a026b027316740364028301820174046a057c0074016a0264038d0201006400530029044e720b0000007a204f6e6c7920746865206f70657261746f722063616e20636c61696d207461752e2902721a000000721c0000002906720f000000720d000000720e0000007215000000721f00000072200000002901721a000000721000000072100000007211000000da12656d657267656e63795f77697468647261772f00000073060000000002060110017223000000290b721f000000da0448617368720c000000720f0000007212000000da085f5f6578706f727472180000007219000000da05666c6f6174722200000072230000007210000000721000000072100000007211000000da083c6d6f64756c653e01000000731200000008010c010c03080a100a100a0601100a0601