SC CODE: /*
FEED v0.1
The Mind of the Decentralized Web
*/
Function Initialize() Uint64
10 IF EXISTS("owner") THEN GOTO 99
20 STORE("owner", ADDRESS_STRING(SIGNER()))
21 STORE("population", 0)
22 STORE("entries", 0)
30 STORE("var_header_name", "FEED v0.1")
31 STORE("var_header_icon", " ")
32 STORE("var_header_description", "The Mind of the Decentralized Web")
98 RETURN 0
99 RETURN 1
End Function
Function Register() Uint64
10 IF EXISTS(ADDRESS_STRING(SIGNER())) THEN GOTO 99
20 STORE(ADDRESS_STRING(SIGNER()), "User_" + LOAD("population") + 1)
30 STORE("population", LOAD("population") + 1)
98 RETURN 0
99 RETURN 1
End Function
Function UpdateCode(SC_CODE String) Uint64
10 IF LOAD("owner") == ADDRESS_STRING(SIGNER()) THEN GOTO 30
20 RETURN 1
30 UPDATE_SC_CODE(SC_CODE)
40 RETURN 0
End Function
Function NewEntry(title String, desc String, url String, hashtags String) Uint64
10 IF EXISTS(ADDRESS_STRING(SIGNER())) THEN GOTO 15
11 RETURN 1
15 DIM entries_value as Uint64
20 LET entries_value = LOAD("entries")
30 DIM eid as Uint64
31 LET eid = entries_value + 1
32 STORE("eid_" + eid, "")
33 STORE("entries", eid)
34 STORE("eid_" + eid + "_title", title)
35 STORE("eid_" + eid + "_desc", desc)
36 STORE("eid_" + eid + "_url", url)
37 STORE("eid_" + eid + "_hashtags", hashtags)
40 STORE("eid_" + eid + "_author", ADDRESS_STRING(SIGNER()))
41 STORE("eid_" + eid + "_preserve", 0)
42 STORE("eid_" + eid + "_consume", 0)
43 STORE("eid_" + eid + "_timestamp", BLOCK_TIMESTAMP())
44 STORE("eid_" + eid + "_comments", 0)
98 RETURN 0
99 RETURN 1
End Function
Function Preserve(eid String) Uint64
10 IF EXISTS(eid + "_preserve_" + ADDRESS_STRING(SIGNER())) THEN GOTO 99
15 IF EXISTS(eid + "_consume_" + ADDRESS_STRING(SIGNER())) THEN GOTO 99
20 IF EXISTS(eid) THEN GOTO 40
25 IF EXISTS(ADDRESS_STRING(SIGNER())) THEN GOTO 40
30 RETURN 1
40 DIM preserve_count as Uint64
41 LET preserve_count = LOAD(eid + "_preserve") + 1
42 STORE(eid + "_preserve", preserve_count)
43 STORE(eid + "_preserve_" + ADDRESS_STRING(SIGNER()), BLOCK_HEIGHT())
98 RETURN 0
99 RETURN 1
End Function
Function Consume(eid String) Uint64
10 IF EXISTS(eid + "_preserve_" + ADDRESS_STRING(SIGNER())) THEN GOTO 99
15 IF EXISTS(eid + "_consume_" + ADDRESS_STRING(SIGNER())) THEN GOTO 99
20 IF EXISTS(eid) THEN GOTO 40
25 IF EXISTS(ADDRESS_STRING(SIGNER())) THEN GOTO 40
30 RETURN 1
40 DIM consume_count as Uint64
41 LET consume_count = LOAD(eid + "_consume") + 1
42 IF consume_count >= LOAD("population") / 2 THEN GOTO 50 ELSE GOTO 80
50 DELETE(eid)
51 DELETE(eid + "_title")
52 DELETE(eid + "_desc")
53 DELETE(eid + "_url")
54 DELETE(eid + "_hashtags")
55 DELETE(eid + "_author")
56 DELETE(eid + "_preserve")
57 DELETE(eid + "_consume")
58 DELETE(eid + "_timestamp")
59 DELETE(eid + "_comments")
60 DIM i as Uint64
61 LET i = 1
62 IF EXISTS(eid + "_comment_" + i) THEN GOTO 63 ELSE GOTO 70
63 DELETE(eid + "_comment_" + i)
64 LET i = i + 1
65 GOTO 62
70 RETURN 0
80 STORE(eid + "_consume", consume_count)
81 STORE(eid + "_consume_" + ADDRESS_STRING(SIGNER()), BLOCK_HEIGHT())
98 RETURN 0
99 RETURN 1
End Function
Function AddComment(eid String, comment String) Uint64
10 IF EXISTS(eid) & EXISTS(ADDRESS_STRING(SIGNER())) THEN GOTO 20
15 RETURN 1
20 IF EXISTS(eid + "_preserve_" + ADDRESS_STRING(SIGNER())) THEN GOTO 50
30 IF EXISTS(eid + "_consume_" + ADDRESS_STRING(SIGNER())) THEN GOTO 50
40 RETURN 1
50 DIM comment_count as Uint64
51 LET comment_count = LOAD(eid + "_comments") + 1
52 STORE(eid + "_comment_" + comment_count, ITOA(BLOCK_TIMESTAMP()) + "_" + ADDRESS_STRING(SIGNER()) + "_" + comment)
53 STORE(eid + "_comments", comment_count)
98 RETURN 0
99 RETURN 1
End Function |
SC Arguments: [Name:SC_ACTION Type:uint64 Value:'1' Name:SC_CODE Type:string Value:'/*
FEED v0.1
The Mind of the Decentralized Web
*/
Function Initialize() Uint64
10 IF EXISTS("owner") THEN GOTO 99
20 STORE("owner", ADDRESS_STRING(SIGNER()))
21 STORE("population", 0)
22 STORE("entries", 0)
30 STORE("var_header_name", "FEED v0.1")
31 STORE("var_header_icon", " ")
32 STORE("var_header_description", "The Mind of the Decentralized Web")
98 RETURN 0
99 RETURN 1
End Function
Function Register() Uint64
10 IF EXISTS(ADDRESS_STRING(SIGNER())) THEN GOTO 99
20 STORE(ADDRESS_STRING(SIGNER()), "User_" + LOAD("population") + 1)
30 STORE("population", LOAD("population") + 1)
98 RETURN 0
99 RETURN 1
End Function
Function UpdateCode(SC_CODE String) Uint64
10 IF LOAD("owner") == ADDRESS_STRING(SIGNER()) THEN GOTO 30
20 RETURN 1
30 UPDATE_SC_CODE(SC_CODE)
40 RETURN 0
End Function
Function NewEntry(title String, desc String, url String, hashtags String) Uint64
10 IF EXISTS(ADDRESS_STRING(SIGNER())) THEN GOTO 15
11 RETURN 1
15 DIM entries_value as Uint64
20 LET entries_value = LOAD("entries")
30 DIM eid as Uint64
31 LET eid = entries_value + 1
32 STORE("eid_" + eid, "")
33 STORE("entries", eid)
34 STORE("eid_" + eid + "_title", title)
35 STORE("eid_" + eid + "_desc", desc)
36 STORE("eid_" + eid + "_url", url)
37 STORE("eid_" + eid + "_hashtags", hashtags)
40 STORE("eid_" + eid + "_author", ADDRESS_STRING(SIGNER()))
41 STORE("eid_" + eid + "_preserve", 0)
42 STORE("eid_" + eid + "_consume", 0)
43 STORE("eid_" + eid + "_timestamp", BLOCK_TIMESTAMP())
44 STORE("eid_" + eid + "_comments", 0)
98 RETURN 0
99 RETURN 1
End Function
Function Preserve(eid String) Uint64
10 IF EXISTS(eid + "_preserve_" + ADDRESS_STRING(SIGNER())) THEN GOTO 99
15 IF EXISTS(eid + "_consume_" + ADDRESS_STRING(SIGNER())) THEN GOTO 99
20 IF EXISTS(eid) THEN GOTO 40
25 IF EXISTS(ADDRESS_STRING(SIGNER())) THEN GOTO 40
30 RETURN 1
40 DIM preserve_count as Uint64
41 LET preserve_count = LOAD(eid + "_preserve") + 1
42 STORE(eid + "_preserve", preserve_count)
43 STORE(eid + "_preserve_" + ADDRESS_STRING(SIGNER()), BLOCK_HEIGHT())
98 RETURN 0
99 RETURN 1
End Function
Function Consume(eid String) Uint64
10 IF EXISTS(eid + "_preserve_" + ADDRESS_STRING(SIGNER())) THEN GOTO 99
15 IF EXISTS(eid + "_consume_" + ADDRESS_STRING(SIGNER())) THEN GOTO 99
20 IF EXISTS(eid) THEN GOTO 40
25 IF EXISTS(ADDRESS_STRING(SIGNER())) THEN GOTO 40
30 RETURN 1
40 DIM consume_count as Uint64
41 LET consume_count = LOAD(eid + "_consume") + 1
42 IF consume_count >= LOAD("population") / 2 THEN GOTO 50 ELSE GOTO 80
50 DELETE(eid)
51 DELETE(eid + "_title")
52 DELETE(eid + "_desc")
53 DELETE(eid + "_url")
54 DELETE(eid + "_hashtags")
55 DELETE(eid + "_author")
56 DELETE(eid + "_preserve")
57 DELETE(eid + "_consume")
58 DELETE(eid + "_timestamp")
59 DELETE(eid + "_comments")
60 DIM i as Uint64
61 LET i = 1
62 IF EXISTS(eid + "_comment_" + i) THEN GOTO 63 ELSE GOTO 70
63 DELETE(eid + "_comment_" + i)
64 LET i = i + 1
65 GOTO 62
70 RETURN 0
80 STORE(eid + "_consume", consume_count)
81 STORE(eid + "_consume_" + ADDRESS_STRING(SIGNER()), BLOCK_HEIGHT())
98 RETURN 0
99 RETURN 1
End Function
Function AddComment(eid String, comment String) Uint64
10 IF EXISTS(eid) & EXISTS(ADDRESS_STRING(SIGNER())) THEN GOTO 20
15 RETURN 1
20 IF EXISTS(eid + "_preserve_" + ADDRESS_STRING(SIGNER())) THEN GOTO 50
30 IF EXISTS(eid + "_consume_" + ADDRESS_STRING(SIGNER())) THEN GOTO 50
40 RETURN 1
50 DIM comment_count as Uint64
51 LET comment_count = LOAD(eid + "_comments") + 1
52 STORE(eid + "_comment_" + comment_count, ITOA(BLOCK_TIMESTAMP()) + "_" + ADDRESS_STRING(SIGNER()) + "_" + comment)
53 STORE(eid + "_comments", comment_count)
98 RETURN 0
99 RETURN 1
End Function'] |