Transaction Details
Open on Dero ExplorerInternal ID:
3608565
Transaction Hash:
a8206ea33bf92bff028e973f5f7298a42a2f56b455c98f82dfe9635a13445eed
Block:
Timestamp:
2023-12-05 21:37:02 UTC (1.6 years ago)
Type:
sc
Ring Size:
2
Payloads:
1
Caller:
…qg2ctjn4
(1762689)
SC Data:
[{"name":"SC_ACTION","datatype":"U","value":"1"},{"name":"SC_CODE","datatype":"S","value":"///dReam Tables dPrediction v0.3\nFunction InitializePrivate() Uint64\n 10 IF EXISTS(\"owner\") == 0 THEN GOTO 30\n 20 RETURN 1\n\n 30 STORE(\"owner\", SIGNER())\n 33 STORE(\"co_signers\", 1)\n 40 STORE(\"p_init\", 0)\n 50 STORE(\"p_#\", 0)\n 60 STORE(\"p_amount\", 0)\n 70 STORE(\"p_total\", 0)\n 80 STORE(\"p_up\", 0)\n 100 STORE(\"p_down\", 0)\n 120 STORE(\"p_played\", 0)\n 130 STORE(\"time_a\", 1800)\n 140 STORE(\"time_b\", 3600)\n 150 STORE(\"time_c\", 86400)\n 160 STORE(\"limit\", 30)\n 170 STORE(\"v\", 3)\n 180 STORE(\"dev\", ADDRESS_RAW(\"dero1qyr8yjnu6cl2c5yqkls0hmxe6rry77kn24nmc5fje6hm9jltyvdd5qq4hn5pn\"))\n 200 RETURN 0\nEnd Function\n\nFunction checkOwners() Uint64\n 10 IF SIGNER() == LOAD(\"owner\") THEN GOTO 200\n 20 IF LOAD(\"co_signers\") \u003c 2 THEN GOTO 100\n 30 DIM i as Uint64\n 40 LET i = 2\n 45 IF EXISTS(\"co_signer\"+ITOA(i)) == 0 THEN GOTO 60\n 50 IF SIGNER() == LOAD(\"co_signer\"+ITOA(i)) THEN GOTO 200\n 60 LET i = i+1\n 70 IF i \u003c= 9 THEN GOTO 45\n 100 RETURN 0\n 200 RETURN 1\nEnd Function\n\nFunction AddSigner(new String) Uint64 \n 10 IF SIGNER() == LOAD(\"owner\") \u0026\u0026 LOAD(\"co_signers\") \u003c 9 THEN GOTO 30\n 20 RETURN 1\n 30 DIM i as Uint64\n 40 LET i = 1\n 50 LET i = i+1\n 60 IF i == 10 THEN GOTO 20\n 70 IF EXISTS(\"co_signer\"+ITOA(i)) THEN GOTO 50\n 80 STORE(\"co_signers\", LOAD(\"co_signers\")+1)\n 90 STORE(\"co_signer\"+ITOA(i), ADDRESS_RAW(new))\n 100 RETURN 0\nEnd Function\n\nFunction RemoveSigner(remove Uint64) Uint64 \n 10 IF SIGNER() == LOAD(\"owner\") THEN GOTO 30\n 20 RETURN 1\n 30 IF EXISTS(\"co_signer\"+ITOA(remove)) == 0 THEN GOTO 60\n 40 STORE(\"co_signers\", LOAD(\"co_signers\")-1)\n 50 DELETE(\"co_signer\"+ITOA(remove))\n 60 RETURN 0\nEnd Function\n\nFunction P_start(end Uint64, amt Uint64, predict String, feed String, mark Uint64) Uint64\n 10 IF checkOwners() THEN GOTO 11 ELSE GOTO 30\n 11 IF (9650*amt)%10000 != 0 THEN GOTO 30\n 20 IF LOAD(\"p_init\") == 0 THEN GOTO 40\n 30 RETURN 1\n\n 40 STORE(\"buffer\", BLOCK_TIMESTAMP()+300)\n 41 STORE(\"p_end_at\", end)\n 50 STORE(\"p_amount\", amt)\n 60 STORE(\"predicting\", predict)\n 70 STORE(\"p_url\", feed)\n 80 STORE(\"p_init\", 1)\n 85 STORE(\"p_#\", 0)\n 86 IF mark == 0 THEN GOTO 90\n 87 STORE(\"mark\", mark)\n 88 GOTO 100\n 90 DELETE(\"mark\")\n 100 DELETE(\"p_final\")\n 110 DELETE(\"p_final_txid\")\n 115 STORE(\"signer\", SIGNER())\n 120 IF DEROVALUE() \u003e 0 THEN GOTO 300\n 200 RETURN 0\n\n 300 STORE(\"p_total\", LOAD(\"p_total\")+DEROVALUE())\n 400 RETURN 0\nEnd Function\n\nFunction Cancel() Uint64 \n 10 IF checkOwners() \u0026\u0026 BLOCK_TIMESTAMP() \u003c LOAD(\"buffer\") THEN GOTO 30 \n 20 RETURN 1\n 30 SEND_DERO_TO_ADDRESS(LOAD(\"signer\"), LOAD(\"p_total\")) \n 40 p_clear()\n 50 RETURN 0\nEnd Function\n\nFunction Predict(pre Uint64, addr String) Uint64\n 4 IF LOAD(\"p_init\") != 1 THEN GOTO 40\n 5 IF BLOCK_TIMESTAMP() \u003c LOAD(\"buffer\") THEN GOTO 40\n 10 IF LOAD(\"p_#\") \u003e= LOAD(\"limit\") THEN GOTO 40\n 20 IF DEROVALUE() == LOAD(\"p_amount\") THEN GOTO 30 ELSE GOTO 40\n 30 IF BLOCK_TIMESTAMP() \u003c LOAD(\"p_end_at\") THEN GOTO 60\n 40 RETURN 1\n\n 60 IF pre == 0 THEN GOTO 100\n 70 IF pre != 1 THEN GOTO 40 \n 80 STORE(\"p_up\", LOAD(\"p_up\")+1)\n 90 GOTO 110\n 100 STORE(\"p_down\", LOAD(\"p_down\")+1)\n 110 IF IS_ADDRESS_VALID(ADDRESS_RAW(addr)) \u0026\u0026 checkOwners() THEN GOTO 130\n 115 STORE(\"p-\"+ITOA(LOAD(\"p_#\")+1)+\"-\"+ITOA(pre), SIGNER())\n\n 120 GOTO 140\n 130 STORE(\"p-\"+ITOA(LOAD(\"p_#\")+1)+\"-\"+ITOA(pre), ADDRESS_RAW(addr))\n \n 140 STORE(\"p_total\", LOAD(\"p_total\")+DEROVALUE())\n 150 STORE(\"p_#\", LOAD(\"p_#\")+1)\n 160 SEND_DERO_TO_ADDRESS(LOAD(\"dev\"), (200*DEROVALUE()/10000)) \n 170 SEND_DERO_TO_ADDRESS(LOAD(\"owner\"), (100*DEROVALUE()/10000)) \n 180 SEND_DERO_TO_ADDRESS(LOAD(\"signer\"), (50*DEROVALUE()/10000)) \n 190 STORE(\"p_total\", LOAD(\"p_total\")-(350*DEROVALUE()/10000))\n 200 RETURN 0\nEnd Function\n\nFunction Post(price Uint64) Uint64\n 10 IF EXISTS(\"mark\") == 0 THEN GOTO 20 ELSE GOTO 30\n 20 IF checkOwners() THEN GOTO 40\n 30 RETURN 1\n\n 40 IF BLOCK_TIMESTAMP() \u003e= LOAD(\"p_end_at\") \u0026\u0026 BLOCK_TIMESTAMP() \u003c= LOAD(\"p_end_at\")+LOAD(\"time_a\") THEN GOTO 60\n 50 RETURN 1\n 60 STORE(\"mark\", price)\n 100 RETURN 0\nEnd Function\n\nFunction p_clear() Uint64\n 10 DIM i as Uint64\n 20 LET i = 1\n 30 DELETE(\"p-\"+ITOA(i)+\"-\"+ITOA(1))\n 40 DELETE(\"p-\"+ITOA(i)+\"-\"+ITOA(0))\n 50 LET i = i +1\n 60 IF i \u003c= LOAD(\"p_#\") THEN GOTO 30\n 70 STORE(\"p_init\", 0)\n 80 STORE(\"p_#\", 0)\n 90 STORE(\"p_total\", 0)\n 100 STORE(\"p_up\", 0)\n 110 STORE(\"p_down\", 0)\n 120 STORE(\"p_amount\", 0)\n 130 DELETE(\"p_end_at\")\n 140 DELETE(\"p_url\")\n 150 DELETE(\"buffer\")\n 160 DELETE(\"signer\")\n 200 RETURN 0\nEnd Function\n\nFunction p_determine(i Uint64, p Uint64, div Uint64) Uint64\n 30 IF EXISTS(\"p-\"+ITOA(i)+\"-\"+ITOA(p)) THEN GOTO 50\n 40 RETURN 0\n 50 SEND_DERO_TO_ADDRESS(LOAD(\"p-\"+ITOA(i)+\"-\"+ITOA(p)), LOAD(\"p_total\")/div)\n 100 RETURN 0\nEnd Function\n\nFunction P_end(price Uint64) Uint64\n 10 IF checkOwners() THEN GOTO 15 ELSE GOTO 30\n 15 IF BLOCK_TIMESTAMP() \u003e= LOAD(\"p_end_at\")+LOAD(\"time_c\") THEN GOTO 20 ELSE GOTO 30\n 20 IF BLOCK_TIMESTAMP() \u003c= LOAD(\"p_end_at\")+LOAD(\"time_c\")+LOAD(\"time_b\") THEN GOTO 40 ELSE GOTO 600\n 30 RETURN 1\n 40 IF EXISTS(\"mark\") == 0 THEN GOTO 30\n 45 DIM i, p as Uint64\n 50 IF price \u003c LOAD(\"mark\") THEN GOTO 100\n 60 IF price == LOAD(\"mark\") THEN GOTO 600\n 70 LET p = 1\n 80 MAPSTORE(\"winners\", LOAD(\"p_up\"))\n 90 IF MAPGET(\"winners\") == 0 THEN GOTO 800 ELSE GOTO 120\n\n 100 LET p = 0\n 110 MAPSTORE(\"winners\", LOAD(\"p_down\"))\n 115 IF MAPGET(\"winners\") == 0 THEN GOTO 800\n 120 SEND_DERO_TO_ADDRESS(LOAD(\"signer\"), LOAD(\"p_total\")%MAPGET(\"winners\")) \n\n 130 LET i = 1\n 140 p_determine(i, p, MAPGET(\"winners\"))\n 160 LET i = i +1\n 170 IF i \u003c= LOAD(\"p_#\") THEN GOTO 140\n 180 endStore(price)\n 190 p_clear()\n 500 RETURN 0\n \n 600 IF LOAD(\"p_#\") == 0 THEN GOTO 800\n 610 DIM y as Uint64\n 620 LET y = 1\n 625 SEND_DERO_TO_ADDRESS(LOAD(\"signer\"), LOAD(\"p_total\")%LOAD(\"p_#\"))\n 630 p_determine(y, "0", LOAD(\"p_#\"))\n 640 p_determine(y, "1", LOAD(\"p_#\"))\n 650 LET y = y +1\n 660 IF y \u003c= LOAD(\"p_#\") THEN GOTO 630\n 690 p_clear()\n 700 endStore(price)\n 750 RETURN 0\n 800 SEND_DERO_TO_ADDRESS(LOAD(\"signer\"), LOAD(\"p_total\")) \n 810 endStore(price)\n 820 p_clear()\n 1000 RETURN 0\nEnd Function\n\nFunction Refund(tic String) Uint64\n 10 IF LOAD(\"p_#\") == 0 THEN GOTO 50\n 20 IF BLOCK_TIMESTAMP() \u003c= LOAD(\"p_end_at\")+LOAD(\"time_c\")+LOAD(\"time_b\") THEN GOTO 50\n 30 IF EXISTS(tic) == 0 THEN GOTO 50\n 40 IF LOAD(tic) == SIGNER() THEN GOTO 60\n 50 RETURN 1\n 60 DIM y as Uint64\n 70 LET y = 1\n 80 SEND_DERO_TO_ADDRESS(LOAD(\"signer\"), LOAD(\"p_total\")%LOAD(\"p_#\"))\n 90 p_determine(y, "0", LOAD(\"p_#\"))\n 100 p_determine(y, "1", LOAD(\"p_#\"))\n 110 LET y = y +1\n 120 IF y \u003c= LOAD(\"p_#\") THEN GOTO 90\n 130 p_clear()\n 140 endStore(0)\n 150 RETURN 0\nEnd Function\n\nFunction Clean(amt Uint64) Uint64\n 10 IF LOAD(\"owner\") == SIGNER() THEN GOTO 30\n 20 RETURN 1\n\n 30 IF LOAD(\"p_init\") == 1 THEN GOTO 20 \n 40 SEND_DERO_TO_ADDRESS(LOAD(\"owner\"), amt)\n 100 RETURN 0\nEnd Function\n\nFunction endStore(price Uint64) Uint64 \n 10 STORE(\"p_played\", LOAD(\"p_played\")+1)\n 20 STORE(\"p_final\", LOAD(\"predicting\")+\"_\"+ITOA(price))\n 30 STORE(\"p_final_txid\", TXID())\n 40 DELETE(\"predicting\")\n 100 RETURN 0\nEnd Function\n\nFunction UpdateCode(code String) Uint64 \n 10 IF LOAD(\"owner\") == SIGNER() THEN GOTO 30\n 20 RETURN 1\n\n 30 IF code == \"\" THEN GOTO 100 \n 40 IF LOAD(\"p_init\") == 1 THEN GOTO 100\n 50 UPDATE_SC_CODE(code)\n 60 STORE(\"v\", LOAD(\"v\")+1)\n 100 RETURN 0\nEnd Function\n\nFunction VarUpdate(ta Uint64, tb Uint64, tc Uint64, l Uint64) Uint64 \n 10 IF LOAD(\"owner\") == SIGNER() THEN GOTO 30\n 20 RETURN 1\n\n 30 IF LOAD(\"p_init\") == 1 THEN GOTO 100\n 40 STORE(\"time_a\", ta)\n 50 STORE(\"time_b\", tb)\n 60 STORE(\"time_c\", tc)\n 70 STORE(\"limit\", l)\n 80 IF EXISTS(\"co_signers\") THEN GOTO 100\n 90 STORE(\"co_signers\", 1)\n 100 RETURN 0\nEnd Function"}]
Payload
Token (SCID):
DERO
Deposited:
none
Fees:
0.125 DERO