Transaction Details

Open on Dero Explorer
Internal 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