Contract con_emergency_withdraw_test
Creator | 9ab69d2caa0c14886d462ef4756d7b61b3b81cfb5968f738e6b8c321959e248a |
Creation Hash | 5418950338a9e6efe8bf64e50fe578adf8e5a75b6729e687ce8f1acf3a3cd865 |
Created On | 642 days ago - 6/25/2022, 4:42:46 PM UTC+0 |
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 == True, "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 == True, "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
e30000000000000000000000000400000040000000736c000000640064016c005a0065016402640364048d025a026405640684005a0365046402830164076408840083015a056504640283016409640a840083015a066504640283016507640b9c01640c640d840483015a086504640283016507640b9c01640e640f840483015a09640153002910e9000000004eda1b636f6e5f656d657267656e63795f77697468647261775f74657374da09656d657267656e63792902da08636f6e7472616374da046e616d65630000000000000000000000000400000043000000731400000064016401640164029c03740064033c006400530029044e72010000002903da4064373031666531336663353235323634313631373933613466633261313633363365356336666630303830646164323561653066313034316262393637633162da4030306238326438336163323739626264343262353338616665633462633636326438623939663739393437346236333539383838633634373637353266643261da4037653031623763393332326664323436636364316335383963613664363930653965313761353064306633356330646263663661636437356364636566306135da096164647265737365732901da0b5f5f656d657267656e6379a900720b000000720b000000da00da045f5f5f5f050000007306000000000302020201720d00000063000000000000000002000000030000004300000073420000007400640119007d0074016a027d017c017c00040003006b066f2064026b026e0402000100732e740364038301820164047c007c013c007c00740064013c006400530029054e7209000000547a20596f7520617265206e6f7420617070726f76656420746f20646f20746869732ee9010000002904720a000000da03637478da0663616c6c6572da0e417373657274696f6e4572726f722902da13656d657267656e63795f616464726573736573da0c63616c6c5f61646472657373720b000000720b000000720c000000da19656e61626c655f656d657267656e63795f77697468647261770e000000730a00000000020801060120010801721400000063000000000000000002000000030000004300000073420000007400640119007d0074016a027d017c017c00040003006b066f2064026b026e0402000100732e740364038301820164047c007c013c007c00740064013c006400530029054e7209000000547a20596f7520617265206e6f7420617070726f76656420746f20646f20746869732e72010000002904720a000000720f00000072100000007211000000290272120000007213000000720b000000720b000000720c000000da1a64697361626c655f656d657267656e63795f776974686472617717000000730a0000000002080106012001080172150000002901da06616d6f756e7463010000000000000004000000040000004300000073500000007400640119007d0174016a027d0274037c016a04830083017d037c0364026b05732a74056403830182017406640419007c026b02733e740564058301820174076a087c007c0264068d0201006400530029074e7209000000e9020000007a28416e20656d657267656e6379207769746864726177616c206973206e6f7420617070726f7665642eda086f70657261746f727a204f6e6c7920746865206f70657261746f722063616e20636c61696d207461752e29027216000000da02746f2909720a000000720f0000007210000000da0373756dda0676616c7565737211000000da086d65746164617461da0863757272656e6379da087472616e736665722904721600000072120000007213000000da0e617070726f76616c5f636865636b720b000000720b000000720c000000da17736166655f656d657267656e63795f776974686472617720000000730e0000000002080106010c01100106010e017220000000630100000000000000010000000400000043000000732a00000074006401190074016a026b027316740364028301820174046a057c0074016a0264038d0201006400530029044e72180000007a204f6e6c7920746865206f70657261746f722063616e20636c61696d207461752e2902721600000072190000002906721c000000720f00000072100000007211000000721d000000721e00000029017216000000720b000000720b000000720c000000da12656d657267656e63795f77697468647261772b00000073060000000002060110017221000000290a721d000000da0448617368720a000000720d000000da085f5f6578706f727472140000007215000000da05666c6f617472200000007221000000720b000000720b000000720b000000720c000000da083c6d6f64756c653e01000000731000000008010c030809100910090601100a0601