SC Arguments: [Name:SC_ACTION Type:uint64 Value:'0' Name:SC_CODE Type:string Value:'// FEED v0.2 // 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.2") 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 05 IF EXISTS(eid) THEN GOTO 10 ELSE GOTO 99 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(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(eid + "_preserve") THEN GOTO 43 ELSE GOTO 80 43 IF consume_count >= (LOAD("population") / 4) THEN GOTO 49 ELSE GOTO 80 49 STORE(eid + "_consume_" + ADDRESS_STRING(SIGNER()), BLOCK_HEIGHT()) 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' Name:SC_ID Type:hash Value:'e12689bf2e670ab627c90a24cf6d1a3ad0f6eea80a0cc55c32a0af4bc77ce5d0' Name:entrypoint Type:string Value:'UpdateCode'] |