SC CODE: Function Initialize() Uint64
10 STORE("O",SIGNER())
20 STORE("T_DERO",0)
30 STORE("COCO","ed54586b1f8f0aaffd1ab7c4bde21ffa1388720ae39d53ae92658671284f6de9")
40 STORE("T_COCO",500000000)
99 RETURN 0
End Function
Function AOMT(Am Uint64, I Uint64, L Uint64, Ad String, H String, i Uint64, W Uint64, M String, j Uint64) Uint64
10 IF IVU(H, M, j)==0 THEN GOTO 20 ELSE GOTO 100
20 STORE(H+i+"_W",W)
40 STORE(H+i+"_Am", Am)
50 STORE(H+i+"_I", I)
70 STORE(H+i+"_Ad", Ad)
80 STORE(H+i+"_Av", L)
99 RETURN 0
100 RETURN 1
End Function
Function TU(S String, T String) Uint64
10 IF EXISTS(S+"_"+T+"_E") == 0 THEN GOTO 100
20 STORE(S+"_"+T+"_E",LOAD(S+"_"+T+"_E")+LOAD(T+"_I")*DEROVALUE()/LOAD(T+"_Am"))
30 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(T+"_Ad")),DEROVALUE()*91/100)
40 SC()
50 STORE("T_DERO",LOAD("T_DERO")+DEROVALUE()*9/100)
99 RETURN 0
100 RETURN 1
End Function
Function WL(L String, H String, T Uint64, f Uint64, F Uint64) Uint64
10 IF EXISTS(H+"_O") && LOAD(H+"_O") == ADDRESS_STRING(SIGNER()) THEN GOTO 20 ELSE GOTO 100
20 dim i as Uint64
30 LET i = 0
40 STORE(H+T+"_W_"+(f+i),SUBSTR(L,i*66,66))
50 LET i=i+1
60 IF i > F - f THEN GOTO 99 ELSE GOTO 40
99 RETURN 0
100 RETURN 1
End Function
Function AS(T String, S String) Uint64
10 IF EXISTS(S+"_"+T+"_E") THEN GOTO 100
11 IF DEROVALUE() < LOAD(T+"_Am") THEN GOTO 100
12 IF EXISTS(T+"_W") THEN GOTO 14 ELSE GOTO 15
14 IF LOAD(T+"_W") == 1 THEN GOTO 110
15 IF LOAD(T+"_Av") == 0 THEN GOTO 100
20 IF LOAD(T+"_Am") == 0 THEN GOTO 50
30 STORE (S+"_"+T+"_E",BLOCK_TIMESTAMP()+LOAD(T+"_I")*DEROVALUE()/LOAD(T+"_Am"))
35 STORE("T_DERO",LOAD("T_DERO")+DEROVALUE()*9/100)
40 GOTO 70
50 STORE (S+"_"+T+"_E", BLOCK_TIMESTAMP()+LOAD(T+"_I"))
70 STORE (T+"_Av",LOAD(T+"_Av")-1)
75 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(T+"_Ad")),DEROVALUE()*9/10)
80 SC()
99 RETURN 0
100 RETURN 1
110 dim i as Uint64
120 LET i = 0
130 IF EXISTS(T+"_W_"+i) THEN GOTO 140 ELSE GOTO 100
140 IF LOAD(T+"_W_"+i) == S THEN GOTO 15 ELSE GOTO 150
150 LET i = i +1
155 GOTO 130
End Function
Function NF(G Uint64, D Uint64, A String, H String, i Uint64, M String, m String, j Uint64, t String) Uint64
10 IF EXISTS(H+i+"_G") THEN GOTO 100
20 IF IVU(H, M, j)==0 THEN GOTO 40 ELSE GOTO 100
40 STORE(H+i+"_G", G)
50 STORE(H+i+"_D", D)
60 STORE(H+i+"_F", A)
70 STORE(H+i+"_R",0)
80 STORE(H+i+"_C",0)
85 STORE(H+i+"_sm",m)
86 IF STRLEN(T)<=1 THEN GOTO 99
87 STORE(H+i+"_T",ASSETVALUE(HEXDECODE(t)))
88 STORE(H+i+"_t",t) // need to identify with island to prevent overwriting treasuries
99 RETURN 0
100 RETURN 1
End Function
Function SG(H String, R Uint64) Uint64
10 IF EXISTS(H+"_D") == 0 THEN GOTO 100
20 IF LOAD(H+"_D") < BLOCK_TIMESTAMP() THEN GOTO 100
25 SC()
30 STORE(H+"_R", LOAD(H+"_R") + DEROVALUE())
40 IF EXISTS(H+"_"+SIGNER()) == 1 THEN GOTO 70
45 IF R == 0 THEN GOTO 55
50 STORE(H+"_"+SIGNER(),DEROVALUE()*9/10)
52 RETURN 0
55 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(H+"_F")),DEROVALUE()*9/10)
57 STORE(H+"_C",LOAD(H+"_C")+DEROVALUE())
60 RETURN 0
70 IF R == 0 THEN GOTO 77
75 STORE(H+"_"+SIGNER(),LOAD(H+"_"+SIGNER())+DEROVALUE()*9/10)
76 RETURN 0
77 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(H+"_F")),DEROVALUE()*9/10)
78 STORE(H+"_C",LOAD(H+"_C")+DEROVALUE())
80 RETURN 0
100 RETURN 1
End Function
Function WFF(H String, i Uint64) Uint64
10 IF EXISTS(H+i+"_D") == 0 THEN GOTO 100
20 IF LOAD(H+i+"_D") > BLOCK_TIMESTAMP() THEN GOTO 65
30 IF LOAD(H+i+"_R") >= LOAD(H+i+"_G") THEN GOTO 70
40 IF EXISTS(H+i+"_"+SIGNER()) == 0 THEN GOTO 100
50 SEND_DERO_TO_ADDRESS(SIGNER(),LOAD(H+i+"_"+SIGNER()))
56 DELETE(H+i+"_"+SIGNER())
60 RETURN 0
65 IF LOAD(H+i+"_R") < LOAD(H+i+"_G") THEN GOTO 100 ELSE GOTO 70
70 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(H+i+"_F")), (LOAD(H+i+"_R")-LOAD(H+i+"_C"))*9/10)
75 STORE(H+i+"_C",LOAD(H+i+"_R"))
80 IF EXISTS(H+i+"_"+SIGNER())==0 THEN GOTO 99
85 IF EXISTS(H+i+"_T")==0 THEN GOTO 99
90 SC(H+i,LOAD(H+i+"_"+SIGNER()))
99 RETURN 0
100 RETURN 1
End Function
Function AN(H String, JX String, l String) Uint64
10 IF LOAD(JX+"_O") != ADDRESS_STRING(SIGNER()) THEN GOTO 100
20 IF BLOCK_TIMESTAMP() > LOAD(H+"_"+l+"E") THEN GOTO 70
30 IF LOAD(H+"_"+l+LOAD(H+"_"+l+"N")) != JX THEN GOTO 100
40 STORE(H+"_"+l,JX)
50 STORE(H+"_"+l+"E",BLOCK_TIMESTAMP()+1209600)
60 RETURN 0
70 dim k as Uint64
71 LET k = 1+(BLOCK_TIMESTAMP() - LOAD(H+"_"+l+"E"))/1209600
75 IF LOAD(H+"_"+l+((LOAD(H+"_"+l+"N")+k)%LOAD(H+"_"+l+"T"))) != JX THEN GOTO 100
80 STORE(H+"_"+l,JX)
90 STORE(H+"_"+l+"E",BLOCK_TIMESTAMP()+1209600)
95 STORE(H+"_"+l+"N",(LOAD(H+"_"+l+"N")+k)%LOAD(H+"_"+l+"T"))
99 RETURN 0
100 RETURN 1
End Function
Function N(H String, i Uint64, JX String, l String) Uint64
10 IF ADDRESS_STRING(SIGNER())!=LOAD(H+"_O") THEN GOTO 100
20 STORE(H+i+"_"+l+LOAD(H+i+"_"+l+"T"),JX)
30 STORE(H+i+"_"+l+"T",LOAD(H+i+"_"+l+"T")+1)
40 IF LOAD(H+i+"_"+l+"T") != 2 THEN GOTO 99
50 IF BLOCK_TIMESTAMP()<LOAD(H+i+"_"+l+"E") THEN GOTO 99
60 STORE(H+i+"_"+l+"E",BLOCK_TIMESTAMP()+604800)
99 RETURN 0
100 RETURN 1
End Function
Function TI(H String, I String, T Uint64) Uint64
10 IF ADDRESS_STRING(SIGNER()) != LOAD(H+"_O") THEN GOTO 100
15 IF H == I THEN GOTO 100
20 STORE(I+"_T_"+H,T)
30 RETURN 0
100 RETURN 1
End Function
Function BT(H String, i Uint64, J String, X String, E Uint64, M String, m String, j Uint64) Uint64
10 IF EXISTS(H + i + "_T") THEN GOTO 35 ELSE GOTO 20
20 IF IVU(H, M, j)==1 THEN GOTO 100
21 STORE(H+i+"_X0",X)
22 STORE(H+i+"_XN",0)
23 STORE(H+i+"_XT",1)
24 STORE(H+i+"_XE",BLOCK_TIMESTAMP()+1209600)
25 STORE(H+i+"_T",DEROVALUE() - MAPGET("fee"))
26 STORE(H+i+"_J0",J)
27 STORE(H+i+"_E",E)
28 STORE(H+i+"_bm",m)
29 STORE(SIGNER()+"_"+H+i+"_S",DEROVALUE()-MAPGET("fee"))
30 STORE(H+i+"_JN",0)
31 STORE(H+i+"_JE",BLOCK_TIMESTAMP()+1209600)
32 STORE(H+i+"_JT",1)
33 SC()
34 RETURN 0
35 SC()
40 STORE(H+i+"_T",(DEROVALUE()*95/100)+LOAD(H+i+"_T"))
41 STORE("T_DERO",LOAD("T_DERO")+DEROVALUE()*5/100)
42 IF EXISTS(SIGNER()+"_"+H+i+"_S") THEN GOTO 45
43 STORE(SIGNER()+"_"+H+i+"_S",DEROVALUE()*95/100)
44 RETURN 0
45 STORE(SIGNER()+"_"+H+i+"_S",(DEROVALUE()*95/100)+LOAD(SIGNER()+"_"+H+i+"_S"))
99 RETURN 0
100 RETURN 1
End Function
Function ATR(H String, R String, I Uint64, W Uint64, F Uint64) Uint64
10 IF SIGNER()!= ADDRESS_RAW(LOAD(LOAD(H+"_J")+"_O")) THEN GOTO 100
15 IF EXISTS(H+"_JF") THEN GOTO 100
20 IF EXISTS(H+"_RN") THEN GOTO 30
25 STORE(H+"_RN",0)
30 IF EXISTS(H+"_R_"+I) THEN GOTO 40
35 STORE(H+"_RN",LOAD(H+"_RN")+1)
40 STORE(H+"_R_"+I,R)
50 STORE(H+"_W_"+I,W)
60 IF F == 0 THEN GOTO 99
70 STORE(H+"_JF",1)
99 RETURN 0
100 RETURN 1
End Function
Function V(H String) Uint64
10 IF SIGNER()!= ADDRESS_RAW(LOAD(LOAD(H+"_X")+"_O")) THEN GOTO 100
20 DELETE(H+"_JF")
99 RETURN 0
100 RETURN 1
End Function
Function RT(H String) Uint64
10 IF LOAD(H+"_E") <BLOCK_TIMESTAMP() THEN GOTO 95
15 IF EXISTS(H+"_JF")==0 THEN GOTO 100
20 IF SIGNER()!= ADDRESS_RAW(LOAD(LOAD(H+"_X")+"_O")) THEN GOTO 100
21 IF LOAD(H+"_JF") == 2 THEN GOTO 100
22 STORE(H+"_JF",2)
23 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(LOAD(H+"_J")+"_O")),LOAD(H+"_T")*10/100)
30 dim i,rn,total as Uint64
35 LET total = 0
40 LET i = LOAD(H+"_RN")
45 LET rn = LOAD(H+"_RN")
50 LET i = i-1
60 LET total = total + LOAD(H+"_W_"+i)
65 IF i == 0 THEN GOTO 70 ELSE GOTO 50
70 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(H+"_R_"+i)),LOAD(H+"_T")*LOAD(H+"_W_"+i)*90/(total*100))
80 LET i = i+1
90 IF i == rn THEN GOTO 99 ELSE GOTO 70
95 IF EXISTS(SIGNER()+"_"+H+"_S")==0 THEN GOTO 100
96 SEND_DERO_TO_ADDRESS(SIGNER(),LOAD(SIGNER()+"_"+H+"_S"))
97 DELETE(SIGNER()+"_"+H+"_S")
99 RETURN 0
100 RETURN 1
End Function
Function TP(H String, O String) Uint64
10 IF ADDRESS_STRING(SIGNER()) != LOAD(H+"_O") THEN GOTO 100
20 STORE(H+"_O", O)
30 IVU(H,"m",0)
99 RETURN 0
100 RETURN 1
End Function
Function IVU(H String, M String, j Uint64) Uint64
9 STORE("T_COCO",LOAD("T_COCO")+ASSETVALUE(HEXDECODE(LOAD("COCO"))))
10 MAPSTORE("fee",0)
11 IF EXISTS(H+"_O") == 0 THEN GOTO 16
12 IF ASSETVALUE(LOAD("COCO")) == 100 THEN GOTO 15
13 MAPSTORE("fee",10000)
14 IF DEROVALUE() < 10000 THEN GOTO 100
15 IF LOAD(H+"_O") != ADDRESS_STRING(SIGNER()) THEN GOTO 100 ELSE GOTO 20
16 IF ASSETVALUE(LOAD("COCO")) == 1000 THEN GOTO 19
17 MAPSTORE("fee",100000)
18 IF DEROVALUE()<100000 THEN GOTO 100
19 STORE(H+"_O",ADDRESS_STRING(SIGNER()))
20 STORE(H+"_j",j)
21 IF EXISTS(H+"_Version") THEN GOTO 30 ELSE GOTO 50
30 STORE(H+"_Version",LOAD(H+"_Version")+1)
35 IF STRLEN(M) == 1 THEN GOTO 40
36 STORE(H+"_M",M)
37 STORE("T_DERO",LOAD("T_DERO")+MAPGET("fee"))
40 RETURN 0
50 STORE(H+"_Version",0)
55 IF STRLEN(M) == 1 THEN GOTO 60
56 STORE(H+"_M",M)
57 STORE("T_DERO",LOAD("T_DERO")+MAPGET("fee"))
60 RETURN 0
100 RETURN 1
End Function
Function D() Uint64
10 IF ASSETVALUE(HEXDECODE(LOAD("COCO"))) % 10000 != 0 THEN GOTO 100
13 STORE("T_DERO",LOAD("T_DERO")+DEROVALUE())
15 IF EXISTS(ADDRESS_STRING(SIGNER())+"_SHARES") THEN GOTO 30
20 STORE(ADDRESS_STRING(SIGNER())+"_SHARES",ASSETVALUE(HEXDECODE(LOAD("COCO")))/10000)
21 STORE(ADDRESS_STRING(SIGNER())+"_EPOCH",(BLOCK_TIMESTAMP() - LOAD("EPOCH-INIT"))/259200)
25 RETURN 0
30 STORE(ADDRESS_STRING(SIGNER())+"_SHARES",LOAD(ADDRESS_STRING(SIGNER())+"_SHARES")+ASSETVALUE(HEXDECODE(LOAD("COCO")))/10000)
31 STORE(ADDRESS_STRING(SIGNER())+"_EPOCH",(BLOCK_TIMESTAMP() - LOAD("EPOCH-INIT"))/259200)
35 RETURN 0
100 RETURN 1
End Function
Function W() Uint64
10 LET EPOCH = (BLOCK_TIMESTAMP()-LOAD("EPOCH-INIT"))/259200
14 IF EXISTS(ADDRESS_STRING(SIGNER())+"_SHARES") ==0 THEN GOTO 100
15 IF LOAD(ADDRESS_STRING(SIGNER())+"_EPOCH") >= EPOCH THEN GOTO 100
16 DIM SHARE as Uint64
17 LET SHARE = LOAD(ADDRESS_STRING(SIGNER())+"_SHARES")*LOAD("T_DERO")/100000
18 SEND_DERO_TO_ADDRESS(SIGNER(),SHARE)
19 STORE(ADDRESS_STRING(SIGNER())+"_EPOCH",EPOCH)
20 STORE("T_DERO",LOAD("T_DERO")-SHARE)
25 RETURN 0
100 RETURN 1
End Function
Function SS(shares Uint64) Uint64
10 IF EXISTS(ADDRESS_STRING(SIGNER())+"_SHARES") == 0 THEN GOTO 100
20 IF LOAD(ADDRESS_STRING(SIGNER())+"_SHARES") < shares THEN GOTO 100
30 STORE(ADDRESS_STRING(SIGNER())+"_SHARES",LOAD(ADDRESS_STRING(SIGNER())+"_SHARES")-shares)
40 SEND_ASSET_TO_ADDRESS(SIGNER(),shares*10000,HEXDECODE(LOAD("COCO")))
99 RETURN 0
100 RETURN 1
End Function
Function SC(H String, A Uint64) Uint64
10 IF STRLEN(H)==0 THEN GOTO 30
11 dim a as Uint64
12 LET a = A*LOAD(H+"_f")/LOAD(H+"_d")
15 IF LOAD(H+"_T")<a THEN GOTO 25
16 STORE(H+"_T",LOAD(H+"_T") - a)
20 SEND_ASSET_TO_ADDRESS(SIGNER(),a,HEXDECODE(LOAD(H+"_t")))
25 RETURN 0
30 IF LOAD("T_COCO")<DEROVALUE()/50 THEN GOTO 99
35 STORE("T_COCO",LOAD("T_COCO")-DEROVALUE()/50)
40 SEND_ASSET_TO_ADDRESS(SIGNER(),DEROVALUE()/50,HEXDECODE(LOAD("COCO")))
99 RETURN 0
100 RETURN 1
End Function
Function U(c String) Uint64
10 IF SIGNER() != LOAD("O") THEN GOTO 100
20 UPDATE_SC_CODE(c)
99 RETURN 0
100 RETURN 1
End Function
Function G(k String, v String) Uint64
10 IF SIGNER() != LOAD("O") THEN GOTO 100
20 STORE(k,v)
99 RETURN 0
100 RETURN 1
End Function |
SC Arguments: [Name:SC_ACTION Type:uint64 Value:'1' Name:SC_CODE Type:string Value:'Function Initialize() Uint64
10 STORE("O",SIGNER())
20 STORE("T_DERO",0)
30 STORE("COCO","ed54586b1f8f0aaffd1ab7c4bde21ffa1388720ae39d53ae92658671284f6de9")
40 STORE("T_COCO",500000000)
99 RETURN 0
End Function
Function AOMT(Am Uint64, I Uint64, L Uint64, Ad String, H String, i Uint64, W Uint64, M String, j Uint64) Uint64
10 IF IVU(H, M, j)==0 THEN GOTO 20 ELSE GOTO 100
20 STORE(H+i+"_W",W)
40 STORE(H+i+"_Am", Am)
50 STORE(H+i+"_I", I)
70 STORE(H+i+"_Ad", Ad)
80 STORE(H+i+"_Av", L)
99 RETURN 0
100 RETURN 1
End Function
Function TU(S String, T String) Uint64
10 IF EXISTS(S+"_"+T+"_E") == 0 THEN GOTO 100
20 STORE(S+"_"+T+"_E",LOAD(S+"_"+T+"_E")+LOAD(T+"_I")*DEROVALUE()/LOAD(T+"_Am"))
30 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(T+"_Ad")),DEROVALUE()*91/100)
40 SC()
50 STORE("T_DERO",LOAD("T_DERO")+DEROVALUE()*9/100)
99 RETURN 0
100 RETURN 1
End Function
Function WL(L String, H String, T Uint64, f Uint64, F Uint64) Uint64
10 IF EXISTS(H+"_O") && LOAD(H+"_O") == ADDRESS_STRING(SIGNER()) THEN GOTO 20 ELSE GOTO 100
20 dim i as Uint64
30 LET i = 0
40 STORE(H+T+"_W_"+(f+i),SUBSTR(L,i*66,66))
50 LET i=i+1
60 IF i > F - f THEN GOTO 99 ELSE GOTO 40
99 RETURN 0
100 RETURN 1
End Function
Function AS(T String, S String) Uint64
10 IF EXISTS(S+"_"+T+"_E") THEN GOTO 100
11 IF DEROVALUE() < LOAD(T+"_Am") THEN GOTO 100
12 IF EXISTS(T+"_W") THEN GOTO 14 ELSE GOTO 15
14 IF LOAD(T+"_W") == 1 THEN GOTO 110
15 IF LOAD(T+"_Av") == 0 THEN GOTO 100
20 IF LOAD(T+"_Am") == 0 THEN GOTO 50
30 STORE (S+"_"+T+"_E",BLOCK_TIMESTAMP()+LOAD(T+"_I")*DEROVALUE()/LOAD(T+"_Am"))
35 STORE("T_DERO",LOAD("T_DERO")+DEROVALUE()*9/100)
40 GOTO 70
50 STORE (S+"_"+T+"_E", BLOCK_TIMESTAMP()+LOAD(T+"_I"))
70 STORE (T+"_Av",LOAD(T+"_Av")-1)
75 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(T+"_Ad")),DEROVALUE()*9/10)
80 SC()
99 RETURN 0
100 RETURN 1
110 dim i as Uint64
120 LET i = 0
130 IF EXISTS(T+"_W_"+i) THEN GOTO 140 ELSE GOTO 100
140 IF LOAD(T+"_W_"+i) == S THEN GOTO 15 ELSE GOTO 150
150 LET i = i +1
155 GOTO 130
End Function
Function NF(G Uint64, D Uint64, A String, H String, i Uint64, M String, m String, j Uint64, t String) Uint64
10 IF EXISTS(H+i+"_G") THEN GOTO 100
20 IF IVU(H, M, j)==0 THEN GOTO 40 ELSE GOTO 100
40 STORE(H+i+"_G", G)
50 STORE(H+i+"_D", D)
60 STORE(H+i+"_F", A)
70 STORE(H+i+"_R",0)
80 STORE(H+i+"_C",0)
85 STORE(H+i+"_sm",m)
86 IF STRLEN(T)<=1 THEN GOTO 99
87 STORE(H+i+"_T",ASSETVALUE(HEXDECODE(t)))
88 STORE(H+i+"_t",t) // need to identify with island to prevent overwriting treasuries
99 RETURN 0
100 RETURN 1
End Function
Function SG(H String, R Uint64) Uint64
10 IF EXISTS(H+"_D") == 0 THEN GOTO 100
20 IF LOAD(H+"_D") < BLOCK_TIMESTAMP() THEN GOTO 100
25 SC()
30 STORE(H+"_R", LOAD(H+"_R") + DEROVALUE())
40 IF EXISTS(H+"_"+SIGNER()) == 1 THEN GOTO 70
45 IF R == 0 THEN GOTO 55
50 STORE(H+"_"+SIGNER(),DEROVALUE()*9/10)
52 RETURN 0
55 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(H+"_F")),DEROVALUE()*9/10)
57 STORE(H+"_C",LOAD(H+"_C")+DEROVALUE())
60 RETURN 0
70 IF R == 0 THEN GOTO 77
75 STORE(H+"_"+SIGNER(),LOAD(H+"_"+SIGNER())+DEROVALUE()*9/10)
76 RETURN 0
77 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(H+"_F")),DEROVALUE()*9/10)
78 STORE(H+"_C",LOAD(H+"_C")+DEROVALUE())
80 RETURN 0
100 RETURN 1
End Function
Function WFF(H String, i Uint64) Uint64
10 IF EXISTS(H+i+"_D") == 0 THEN GOTO 100
20 IF LOAD(H+i+"_D") > BLOCK_TIMESTAMP() THEN GOTO 65
30 IF LOAD(H+i+"_R") >= LOAD(H+i+"_G") THEN GOTO 70
40 IF EXISTS(H+i+"_"+SIGNER()) == 0 THEN GOTO 100
50 SEND_DERO_TO_ADDRESS(SIGNER(),LOAD(H+i+"_"+SIGNER()))
56 DELETE(H+i+"_"+SIGNER())
60 RETURN 0
65 IF LOAD(H+i+"_R") < LOAD(H+i+"_G") THEN GOTO 100 ELSE GOTO 70
70 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(H+i+"_F")), (LOAD(H+i+"_R")-LOAD(H+i+"_C"))*9/10)
75 STORE(H+i+"_C",LOAD(H+i+"_R"))
80 IF EXISTS(H+i+"_"+SIGNER())==0 THEN GOTO 99
85 IF EXISTS(H+i+"_T")==0 THEN GOTO 99
90 SC(H+i,LOAD(H+i+"_"+SIGNER()))
99 RETURN 0
100 RETURN 1
End Function
Function AN(H String, JX String, l String) Uint64
10 IF LOAD(JX+"_O") != ADDRESS_STRING(SIGNER()) THEN GOTO 100
20 IF BLOCK_TIMESTAMP() > LOAD(H+"_"+l+"E") THEN GOTO 70
30 IF LOAD(H+"_"+l+LOAD(H+"_"+l+"N")) != JX THEN GOTO 100
40 STORE(H+"_"+l,JX)
50 STORE(H+"_"+l+"E",BLOCK_TIMESTAMP()+1209600)
60 RETURN 0
70 dim k as Uint64
71 LET k = 1+(BLOCK_TIMESTAMP() - LOAD(H+"_"+l+"E"))/1209600
75 IF LOAD(H+"_"+l+((LOAD(H+"_"+l+"N")+k)%LOAD(H+"_"+l+"T"))) != JX THEN GOTO 100
80 STORE(H+"_"+l,JX)
90 STORE(H+"_"+l+"E",BLOCK_TIMESTAMP()+1209600)
95 STORE(H+"_"+l+"N",(LOAD(H+"_"+l+"N")+k)%LOAD(H+"_"+l+"T"))
99 RETURN 0
100 RETURN 1
End Function
Function N(H String, i Uint64, JX String, l String) Uint64
10 IF ADDRESS_STRING(SIGNER())!=LOAD(H+"_O") THEN GOTO 100
20 STORE(H+i+"_"+l+LOAD(H+i+"_"+l+"T"),JX)
30 STORE(H+i+"_"+l+"T",LOAD(H+i+"_"+l+"T")+1)
40 IF LOAD(H+i+"_"+l+"T") != 2 THEN GOTO 99
50 IF BLOCK_TIMESTAMP()<LOAD(H+i+"_"+l+"E") THEN GOTO 99
60 STORE(H+i+"_"+l+"E",BLOCK_TIMESTAMP()+604800)
99 RETURN 0
100 RETURN 1
End Function
Function TI(H String, I String, T Uint64) Uint64
10 IF ADDRESS_STRING(SIGNER()) != LOAD(H+"_O") THEN GOTO 100
15 IF H == I THEN GOTO 100
20 STORE(I+"_T_"+H,T)
30 RETURN 0
100 RETURN 1
End Function
Function BT(H String, i Uint64, J String, X String, E Uint64, M String, m String, j Uint64) Uint64
10 IF EXISTS(H + i + "_T") THEN GOTO 35 ELSE GOTO 20
20 IF IVU(H, M, j)==1 THEN GOTO 100
21 STORE(H+i+"_X0",X)
22 STORE(H+i+"_XN",0)
23 STORE(H+i+"_XT",1)
24 STORE(H+i+"_XE",BLOCK_TIMESTAMP()+1209600)
25 STORE(H+i+"_T",DEROVALUE() - MAPGET("fee"))
26 STORE(H+i+"_J0",J)
27 STORE(H+i+"_E",E)
28 STORE(H+i+"_bm",m)
29 STORE(SIGNER()+"_"+H+i+"_S",DEROVALUE()-MAPGET("fee"))
30 STORE(H+i+"_JN",0)
31 STORE(H+i+"_JE",BLOCK_TIMESTAMP()+1209600)
32 STORE(H+i+"_JT",1)
33 SC()
34 RETURN 0
35 SC()
40 STORE(H+i+"_T",(DEROVALUE()*95/100)+LOAD(H+i+"_T"))
41 STORE("T_DERO",LOAD("T_DERO")+DEROVALUE()*5/100)
42 IF EXISTS(SIGNER()+"_"+H+i+"_S") THEN GOTO 45
43 STORE(SIGNER()+"_"+H+i+"_S",DEROVALUE()*95/100)
44 RETURN 0
45 STORE(SIGNER()+"_"+H+i+"_S",(DEROVALUE()*95/100)+LOAD(SIGNER()+"_"+H+i+"_S"))
99 RETURN 0
100 RETURN 1
End Function
Function ATR(H String, R String, I Uint64, W Uint64, F Uint64) Uint64
10 IF SIGNER()!= ADDRESS_RAW(LOAD(LOAD(H+"_J")+"_O")) THEN GOTO 100
15 IF EXISTS(H+"_JF") THEN GOTO 100
20 IF EXISTS(H+"_RN") THEN GOTO 30
25 STORE(H+"_RN",0)
30 IF EXISTS(H+"_R_"+I) THEN GOTO 40
35 STORE(H+"_RN",LOAD(H+"_RN")+1)
40 STORE(H+"_R_"+I,R)
50 STORE(H+"_W_"+I,W)
60 IF F == 0 THEN GOTO 99
70 STORE(H+"_JF",1)
99 RETURN 0
100 RETURN 1
End Function
Function V(H String) Uint64
10 IF SIGNER()!= ADDRESS_RAW(LOAD(LOAD(H+"_X")+"_O")) THEN GOTO 100
20 DELETE(H+"_JF")
99 RETURN 0
100 RETURN 1
End Function
Function RT(H String) Uint64
10 IF LOAD(H+"_E") <BLOCK_TIMESTAMP() THEN GOTO 95
15 IF EXISTS(H+"_JF")==0 THEN GOTO 100
20 IF SIGNER()!= ADDRESS_RAW(LOAD(LOAD(H+"_X")+"_O")) THEN GOTO 100
21 IF LOAD(H+"_JF") == 2 THEN GOTO 100
22 STORE(H+"_JF",2)
23 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(LOAD(H+"_J")+"_O")),LOAD(H+"_T")*10/100)
30 dim i,rn,total as Uint64
35 LET total = 0
40 LET i = LOAD(H+"_RN")
45 LET rn = LOAD(H+"_RN")
50 LET i = i-1
60 LET total = total + LOAD(H+"_W_"+i)
65 IF i == 0 THEN GOTO 70 ELSE GOTO 50
70 SEND_DERO_TO_ADDRESS(ADDRESS_RAW(LOAD(H+"_R_"+i)),LOAD(H+"_T")*LOAD(H+"_W_"+i)*90/(total*100))
80 LET i = i+1
90 IF i == rn THEN GOTO 99 ELSE GOTO 70
95 IF EXISTS(SIGNER()+"_"+H+"_S")==0 THEN GOTO 100
96 SEND_DERO_TO_ADDRESS(SIGNER(),LOAD(SIGNER()+"_"+H+"_S"))
97 DELETE(SIGNER()+"_"+H+"_S")
99 RETURN 0
100 RETURN 1
End Function
Function TP(H String, O String) Uint64
10 IF ADDRESS_STRING(SIGNER()) != LOAD(H+"_O") THEN GOTO 100
20 STORE(H+"_O", O)
30 IVU(H,"m",0)
99 RETURN 0
100 RETURN 1
End Function
Function IVU(H String, M String, j Uint64) Uint64
9 STORE("T_COCO",LOAD("T_COCO")+ASSETVALUE(HEXDECODE(LOAD("COCO"))))
10 MAPSTORE("fee",0)
11 IF EXISTS(H+"_O") == 0 THEN GOTO 16
12 IF ASSETVALUE(LOAD("COCO")) == 100 THEN GOTO 15
13 MAPSTORE("fee",10000)
14 IF DEROVALUE() < 10000 THEN GOTO 100
15 IF LOAD(H+"_O") != ADDRESS_STRING(SIGNER()) THEN GOTO 100 ELSE GOTO 20
16 IF ASSETVALUE(LOAD("COCO")) == 1000 THEN GOTO 19
17 MAPSTORE("fee",100000)
18 IF DEROVALUE()<100000 THEN GOTO 100
19 STORE(H+"_O",ADDRESS_STRING(SIGNER()))
20 STORE(H+"_j",j)
21 IF EXISTS(H+"_Version") THEN GOTO 30 ELSE GOTO 50
30 STORE(H+"_Version",LOAD(H+"_Version")+1)
35 IF STRLEN(M) == 1 THEN GOTO 40
36 STORE(H+"_M",M)
37 STORE("T_DERO",LOAD("T_DERO")+MAPGET("fee"))
40 RETURN 0
50 STORE(H+"_Version",0)
55 IF STRLEN(M) == 1 THEN GOTO 60
56 STORE(H+"_M",M)
57 STORE("T_DERO",LOAD("T_DERO")+MAPGET("fee"))
60 RETURN 0
100 RETURN 1
End Function
Function D() Uint64
10 IF ASSETVALUE(HEXDECODE(LOAD("COCO"))) % 10000 != 0 THEN GOTO 100
13 STORE("T_DERO",LOAD("T_DERO")+DEROVALUE())
15 IF EXISTS(ADDRESS_STRING(SIGNER())+"_SHARES") THEN GOTO 30
20 STORE(ADDRESS_STRING(SIGNER())+"_SHARES",ASSETVALUE(HEXDECODE(LOAD("COCO")))/10000)
21 STORE(ADDRESS_STRING(SIGNER())+"_EPOCH",(BLOCK_TIMESTAMP() - LOAD("EPOCH-INIT"))/259200)
25 RETURN 0
30 STORE(ADDRESS_STRING(SIGNER())+"_SHARES",LOAD(ADDRESS_STRING(SIGNER())+"_SHARES")+ASSETVALUE(HEXDECODE(LOAD("COCO")))/10000)
31 STORE(ADDRESS_STRING(SIGNER())+"_EPOCH",(BLOCK_TIMESTAMP() - LOAD("EPOCH-INIT"))/259200)
35 RETURN 0
100 RETURN 1
End Function
Function W() Uint64
10 LET EPOCH = (BLOCK_TIMESTAMP()-LOAD("EPOCH-INIT"))/259200
14 IF EXISTS(ADDRESS_STRING(SIGNER())+"_SHARES") ==0 THEN GOTO 100
15 IF LOAD(ADDRESS_STRING(SIGNER())+"_EPOCH") >= EPOCH THEN GOTO 100
16 DIM SHARE as Uint64
17 LET SHARE = LOAD(ADDRESS_STRING(SIGNER())+"_SHARES")*LOAD("T_DERO")/100000
18 SEND_DERO_TO_ADDRESS(SIGNER(),SHARE)
19 STORE(ADDRESS_STRING(SIGNER())+"_EPOCH",EPOCH)
20 STORE("T_DERO",LOAD("T_DERO")-SHARE)
25 RETURN 0
100 RETURN 1
End Function
Function SS(shares Uint64) Uint64
10 IF EXISTS(ADDRESS_STRING(SIGNER())+"_SHARES") == 0 THEN GOTO 100
20 IF LOAD(ADDRESS_STRING(SIGNER())+"_SHARES") < shares THEN GOTO 100
30 STORE(ADDRESS_STRING(SIGNER())+"_SHARES",LOAD(ADDRESS_STRING(SIGNER())+"_SHARES")-shares)
40 SEND_ASSET_TO_ADDRESS(SIGNER(),shares*10000,HEXDECODE(LOAD("COCO")))
99 RETURN 0
100 RETURN 1
End Function
Function SC(H String, A Uint64) Uint64
10 IF STRLEN(H)==0 THEN GOTO 30
11 dim a as Uint64
12 LET a = A*LOAD(H+"_f")/LOAD(H+"_d")
15 IF LOAD(H+"_T")<a THEN GOTO 25
16 STORE(H+"_T",LOAD(H+"_T") - a)
20 SEND_ASSET_TO_ADDRESS(SIGNER(),a,HEXDECODE(LOAD(H+"_t")))
25 RETURN 0
30 IF LOAD("T_COCO")<DEROVALUE()/50 THEN GOTO 99
35 STORE("T_COCO",LOAD("T_COCO")-DEROVALUE()/50)
40 SEND_ASSET_TO_ADDRESS(SIGNER(),DEROVALUE()/50,HEXDECODE(LOAD("COCO")))
99 RETURN 0
100 RETURN 1
End Function
Function U(c String) Uint64
10 IF SIGNER() != LOAD("O") THEN GOTO 100
20 UPDATE_SC_CODE(c)
99 RETURN 0
100 RETURN 1
End Function
Function G(k String, v String) Uint64
10 IF SIGNER() != LOAD("O") THEN GOTO 100
20 STORE(k,v)
99 RETURN 0
100 RETURN 1
End Function'] |