Contract con_ewt


Contract Code


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

Byte Code

e30000000000000000000000000400000040000000736c000000640064016c005a0065016402640364048d025a026405640684005a0365046402830164076408840083015a056504640283016409640a840083015a066504640283016507640b9c01640c640d840483015a086504640283016507640b9c01640e640f840483015a09640153002910e9000000004eda07636f6e5f657774da09656d657267656e63792902da08636f6e7472616374da046e616d65630000000000000000000000000400000043000000731400000064016401640164029c03740064033c006400530029044e72010000002903da4064373031666531336663353235323634313631373933613466633261313633363365356336666630303830646164323561653066313034316262393637633162da4030306238326438336163323739626264343262353338616665633462633636326438623939663739393437346236333539383838633634373637353266643261da4037653031623763393332326664323436636364316335383963613664363930653965313761353064306633356330646263663661636437356364636566306135da096164647265737365732901da0b5f5f656d657267656e6379a900720b000000720b000000da00da045f5f5f5f050000007306000000000302020201720d00000063000000000000000002000000030000004300000073340000007400640119007d0074016a027d017c017c006a036b067320740464028301820164037c007c013c007c00740064013c006400530029044e72090000007a20596f7520617265206e6f7420617070726f76656420746f20646f20746869732ee9010000002905720a000000da03637478da0663616c6c6572da046b657973da0e417373657274696f6e4572726f722902da13656d657267656e63795f616464726573736573da0c63616c6c5f61646472657373720b000000720b000000720c000000da19656e61626c655f656d657267656e63795f77697468647261770e000000730a00000000020801060112010801721500000063000000000000000002000000030000004300000073340000007400640119007d0074016a027d017c017c006a036b067320740464028301820164037c007c013c007c00740064013c006400530029044e72090000007a20596f7520617265206e6f7420617070726f76656420746f20646f20746869732e72010000002905720a000000720f000000721000000072110000007212000000290272130000007214000000720b000000720b000000720c000000da1a64697361626c655f656d657267656e63795f776974686472617717000000730a0000000002080106011201080172160000002901da06616d6f756e7463010000000000000004000000040000004300000073500000007400640119007d0174016a027d0274037c016a04830083017d037c0364026b05732a74056403830182017406640419007c026b02733e740564058301820174076a087c007c0264068d0201006400530029074e7209000000e9020000007a28416e20656d657267656e6379207769746864726177616c206973206e6f7420617070726f7665642eda086f70657261746f727a204f6e6c7920746865206f70657261746f722063616e20636c61696d207461752e29027217000000da02746f2909720a000000720f0000007210000000da0373756dda0676616c7565737212000000da086d65746164617461da0863757272656e6379da087472616e736665722904721700000072130000007214000000da0e617070726f76616c5f636865636b720b000000720b000000720c000000da17736166655f656d657267656e63795f776974686472617720000000730e0000000002080106010c01100106010e017221000000630100000000000000010000000400000043000000732a00000074006401190074016a026b027316740364028301820174046a057c0074016a0264038d0201006400530029044e72190000007a204f6e6c7920746865206f70657261746f722063616e20636c61696d207461752e29027217000000721a0000002906721d000000720f00000072100000007212000000721e000000721f00000029017217000000720b000000720b000000720c000000da12656d657267656e63795f77697468647261772b00000073060000000002060110017222000000290a721e000000da0448617368720a000000720d000000da085f5f6578706f727472150000007216000000da05666c6f617472210000007222000000720b000000720b000000720b000000720c000000da083c6d6f64756c653e01000000731000000008010c030809100910090601100a0601