Contract con_timed_tau_payout
Creator | ae7d14d6d9b8443f881ba6244727b69b681010e782d4fe482dbfb0b6aca02d5d |
Creation Hash | da50dc0cfaabb946395833213478159e7dea10c6f6c75c2b0149305734cf6701 |
Created On | 127 days ago - 11/21/2022, 7:35:02 PM UTC+0 |
Contract Code
1
import currency as tau
2
3
multisig = Hash(default_value=False)
4
5
withdrawn_amount = Variable()
6
total_amount = Variable()
7
start_date = Variable()
8
end_date = Variable()
9
10
ENDO = 'ae7d14d6d9b8443f881ba6244727b69b681010e782d4fe482dbfb0b6aca02d5d'
11
LAMDEN = 'af872ff0f3b00f4161418e9429e738cf8a228c686680233929782de94f46bd70'
12
BENJI = '889f923fb54a79deb11ee2850010488992222c92351d3024ea3a737b78fab0eb'
13
CS = '8377f976c6ba25a219c1535c56793cf966c360c73db0ce23233c29bcd484d4df'
14
15
@construct
16
def init():
17
start_date.set(now)
18
end_date.set(start_date.get() + datetime.timedelta(days=180))
19
withdrawn_amount.set(0)
20
total_amount.set(0)
21
22
@export
23
def withdraw_tau():
24
assert ctx.caller == ENDO, 'Nope'
25
26
if total_amount.get() == 0:
27
total_amount.set(tau.balance_of(ctx.this))
28
29
passed_time = (now - start_date.get()).days
30
six_months = (end_date.get() - start_date.get()).days
31
32
if passed_time >= six_months:
33
tau.transfer(to=ENDO, amount=tau.balance_of(ctx.this))
34
else:
35
can_claim = total_amount.get() * (passed_time / six_months)
36
claim_now = can_claim - withdrawn_amount.get()
37
tau.transfer(to=ENDO, amount=claim_now)
38
withdrawn_amount.set(withdrawn_amount.get() + claim_now)
39
40
@export
41
def agree_to_return_tau_to_lamden(agree: bool):
42
multisig[ctx.caller] = agree
43
44
@export
45
def emergency_withdraw_tau():
46
assert ctx.caller == LAMDEN, 'Nope'
47
48
counter = 0
49
50
if multisig[BENJI]:
51
counter += 1
52
if multisig[CS]:
53
counter += 1
54
55
assert counter > 0, 'Nope'
56
tau.transfer(to=LAMDEN, amount=tau.balance_of(ctx.this))
Byte Code
e300000000000000000000000005000000400000007398000000640064016c005a01650264026403640464058d035a0365046403640664078d025a0565046403640864078d025a0665046403640964078d025a0765046403640a64078d025a08640b5a09640c5a0a640d5a0b640e5a0c640f641084005a0d650e6403830164116412840083015a0f650e64038301651064139c0164146415840483015a11650e6403830164166417840083015a12640153002918e9000000004e46da14636f6e5f74696d65645f7461755f7061796f7574da086d756c74697369672903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da1077697468647261776e5f616d6f756e74290272050000007206000000da0c746f74616c5f616d6f756e74da0a73746172745f64617465da08656e645f64617465da4061653764313464366439623834343366383831626136323434373237623639623638313031306537383264346665343832646266623062366163613032643564da4061663837326666306633623030663431363134313865393432396537333863663861323238633638363638303233333932393738326465393466343662643730da4038383966393233666235346137396465623131656532383530303130343838393932323232633932333531643330323465613361373337623738666162306562da4038333737663937366336626132356132313963313533356335363739336366393636633336306337336462306365323332333363323962636434383464346466630000000000000000000000000500000043000000733c00000074006a0174028301010074036a0174006a04830074056a06640164028d0117008301010074076a0164038301010074086a016403830101006400530029044ee9b40000002901da046461797372010000002909da0c5f5f73746172745f64617465da03736574da036e6f77da0a5f5f656e645f64617465da03676574da086461746574696d65da0974696d6564656c7461da125f5f77697468647261776e5f616d6f756e74da0e5f5f746f74616c5f616d6f756e74a900721a000000721a000000da00da045f5f5f5f0f000000730800000000010a011a010a01721c00000063000000000000000004000000040000004300000073b000000074006a0174026b027312740364018301820174046a05830064026b02723074046a0674076a0874006a09830183010100740a740b6a05830018006a0c7d00740d6a058300740b6a05830018006a0c7d017c007c016b05727074076a0e740274076a0874006a09830164038d0201006e3c74046a0583007c007c011b0014007d027c02740f6a05830018007d0374076a0e74027c0364038d020100740f6a06740f6a0583007c031700830101006400530029044eda044e6f706572010000002902da02746fda06616d6f756e742910da03637478da0663616c6c6572da04454e444fda0e417373657274696f6e4572726f72721900000072150000007212000000da03746175da0a62616c616e63655f6f66da04746869737213000000721100000072100000007214000000da087472616e7366657272180000002904da0b7061737365645f74696d65da0a7369785f6d6f6e746873da0963616e5f636c61696dda09636c61696d5f6e6f77721a000000721a000000721b000000da0c77697468647261775f746175160000007316000000000212010c0112010e0112010801180210010c010e01722c0000002901da056167726565630100000000000000010000000300000043000000730e0000007c00740074016a023c006400530029014e2903da0a5f5f6d756c7469736967722000000072210000002901722d000000721a000000721a000000721b000000da1d61677265655f746f5f72657475726e5f7461755f746f5f6c616d64656e2600000073020000000002722f000000630000000000000000010000000400000043000000736000000074006a0174026b027312740364018301820164027d0074047405190072267c00640337007d0074047406190072367c00640337007d007c0064026b047346740364018301820174076a08740274076a0974006a0a830164048d0201006400530029054e721d0000007201000000e9010000002902721e000000721f000000290b72200000007221000000da064c414d44454e7223000000722e000000da0542454e4a49da02435372240000007227000000722500000072260000002901da07636f756e746572721a000000721a000000721b000000da16656d657267656e63795f77697468647261775f7461752b00000073100000000002120104010801080108010801100172350000002913da0863757272656e63797224000000da0448617368722e000000da085661726961626c6572180000007219000000721100000072140000007222000000723100000072320000007233000000721c000000da085f5f6578706f7274722c000000da04626f6f6c722f0000007235000000721a000000721a000000721a000000721b000000da083c6d6f64756c653e010000007320000000080106010801040108010c010c010c0104010401040104030807101006011004