SC Arguments: [Name:SC_ACTION Type:uint64 Value:'0' Name:SC_ID Type:hash Value:'a4943b10767d3b4b28a0c39fe75303b593b2a8609b07394c803fca1a877716cc' Name:code Type:string Value:'Function AOMT(Am Uint64, I Uint64, L Uint64, Ad String, H String, i Uint64, W Uint64, m String) Uint64
10 IF ASSETVALUE(HEXDECODE(H)) !=1 THEN GOTO 100
20 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(H))
30 STORE(H+i+"_m",m)
40 STORE(H+i+"_W",W)
50 STORE(H+i+"_Am", Am)
60 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 ASSETVALUE(HEXDECODE(H)) != 1 THEN GOTO 100
20 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(H))
30 dim i as Uint64
40 LET i = 0
50 STORE(H+T+"_W_"+(f+i),SUBSTR(L,i*66,66))
60 LET i=i+1
70 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)
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 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 Propose(hash String, k String, u Uint64, s String, t Uint64, seat Uint64) Uint64
10 IF ASSETVALUE(HEXDECODE(LOAD("CEO"))) != 1 THEN GOTO 13
11 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("CEO")))
12 GOTO 15
13 IF ASSETVALUE(HEXDECODE(LOAD("SEAT_"+seat))) !=1 THEN GOTO 100
14 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("SEAT_"+seat)))
15 STORE("APPROVE", 0)
20 IF hash =="" THEN GOTO 40
25 STORE("HASH",hash)
30 STORE("k","")
35 RETURN 0
40 STORE("k",k)
45 STORE("HASH","")
49 STORE("t",t)
50 IF t == 1 THEN GOTO 80
60 STORE("s", s)
70 RETURN 0
80 STORE("u",u)
90 RETURN 0
100 RETURN 1
End Function
Function Approve(seat Uint64) Uint64
10 IF ASSETVALUE(HEXDECODE(LOAD("SEAT_"+seat)))!=1 THEN GOTO 100
20 STORE("APPROVE",LOAD("APPROVE")+1)
30 STORE("SEAT_"+seat+"_OWNER",SIGNER())
99 RETURN 0
100 RETURN 1
End Function
Function ClaimSeat(seat Uint64) Uint64
10 IF SIGNER()!= LOAD("SEAT_"+seat+"_OWNER") THEN GOTO 100
20 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("SEAT_"+seat)))
30 IF LOAD("APPROVE") == 0 THEN GOTO 99
40 STORE("APPROVE",LOAD("APPROVE")-1)
99 RETURN 0
100 RETURN 1
End Function
Function Update(code String) Uint64
10 IF ASSETVALUE(HEXDECODE(LOAD("CEO")))!=1 THEN GOTO 100
15 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("CEO")))
20 IF SHA256(code) != HEXDECODE(LOAD("HASH")) THEN GOTO 100
30 IF LOAD("APPROVE") < LOAD("QUORUM") THEN GOTO 100
40 UPDATE_SC_CODE(code)
99 RETURN 0
100 RETURN 1
End Function
Function Store(k String, u Uint64, s String) Uint64
20 IF k != LOAD("k") THEN GOTO 999
40 IF LOAD("APPROVE") < LOAD("QUORUM") THEN GOTO 999
50 dim t as Uint64
60 let t = LOAD("t")
110 IF t == 0 THEN GOTO 150
120 IF t == 1 THEN GOTO 170
130 IF s!=LOAD("s") THEN GOTO 999
135 STORE(k, HEX(s))
140 RETURN 0
150 IF s!=LOAD("s") THEN GOTO 999
155 STORE(k, s)
160 RETURN 0
170 IF u!=LOAD("u") THEN GOTO 999
175 STORE(k,u)
180 RETURN 0
999 RETURN 1
End Function' Name:entrypoint Type:string Value:'Update'] |