Smart Contract Details

Open on Dero Explorer
Internal ID:
37609
Block:
Timestamp:
2023-06-13 02:37:58 UTC (2.2 years ago)
Creator:
…qgv26xst (1414481)
Raw Data:
[{"name":"SC_ACTION","datatype":"U","value":1},{"name":"SC_CODE","datatype":"S","value":"// Data\n\n    Function InitializePrivate() Uint64\n    10 STORE(\"owner\", SIGNER())\n    20 initGroupA ()\n    30 initGroupB ()\n    40 initGroupC ()\n    50 RETURN 0 \n    End Function\n\n    Function initGroupA() Uint64\n    10  STORE(\"ox\", \"NA\")\n    20  STORE(\"oy\", \"NA\")\n    30  STORE(\"oz\", \"NA\")\n    40  STORE(\"px\", \"NA\")\n    50  STORE(\"py\", \"NA\")\n    60  STORE(\"pz\", \"NA\")\n    70  STORE(\"qx\", \"NA\")\n    80  STORE(\"qy\", \"NA\") \n    90  STORE(\"qz\", \"NA\")  \n    100 STORE(\"rx\", \"NA\")\n    110 STORE(\"ry\", \"NA\")\n    120 STORE(\"rz\", \"NA\")\n    130 RETURN 0 \n    End Function\n\n    Function initGroupB() Uint64\n    10  STORE(\"sx\", \"NA\")\n    20  STORE(\"sy\", \"NA\")\n    30  STORE(\"sz\", \"NA\")\n    40  STORE(\"tx\", \"NA\")\n    50  STORE(\"ty\", \"NA\")\n    60  STORE(\"tz\", \"NA\")\n    70  STORE(\"ux\", \"NA\")\n    80  STORE(\"uy\", \"NA\") \n    90  STORE(\"uz\", \"NA\")  \n    100 STORE(\"vx\", \"NA\")\n    110 STORE(\"vy\", \"NA\")\n    120 STORE(\"vz\", \"NA\")\n    130 RETURN 0 \n    End Function\n\n    Function initGroupC() Uint64\n    10  STORE(\"wx\", \"NA\")\n    20  STORE(\"wy\", \"NA\")\n    30  STORE(\"wz\", \"NA\")\n    40  STORE(\"xx\", \"NA\")\n    50  STORE(\"xy\", \"NA\")\n    60  STORE(\"xz\", \"NA\")\n    70  STORE(\"yx\", \"NA\")\n    80  STORE(\"yy\", \"NA\") \n    90  STORE(\"yz\", \"NA\")  \n    100 STORE(\"zx\", \"NA\")\n    110 STORE(\"zy\", \"NA\")\n    120 STORE(\"zz\", \"NA\")\n    130 RETURN 0 \n    End Function\n\n    Function TuneGroupA(ox String, oy String, oz String, px String, py String, pz String, qx String, qy String, qz String, rx String, ry String, rz String) Uint64\n    10   IF LOAD(\"owner\") == SIGNER() THEN GOTO 30\n    20   RETURN 1\n    30   STORE(\"ox\", ox)\n    40   STORE(\"oy\", oy)\n    50   STORE(\"oz\", oz)\n    60   STORE(\"px\", px)\n    70   STORE(\"py\", py)\n    80   STORE(\"pz\", pz)\n    90   STORE(\"qx\", qx)\n    100  STORE(\"qy\", qy)\n    110  STORE(\"qz\", qz)\n    120  STORE(\"rx\", rx)\n    130  STORE(\"ry\", ry)\n    140  STORE(\"rz\", rz)\n    150  RETURN 0\n    End Function\n\n    Function TuneGroupB(sx String, sy String, sz String, tx String, ty String, tz String, ux String, uy String, uz String, vx String, vy String, vz String) Uint64\n    10   IF LOAD(\"owner\") == SIGNER() THEN GOTO 30\n    20   RETURN 1\n    30   STORE(\"sx\", sx)\n    40   STORE(\"sy\", sy)\n    50   STORE(\"sz\", sz)\n    60   STORE(\"tx\", tx)\n    70   STORE(\"ty\", ty)\n    80   STORE(\"tz\", tz)\n    90   STORE(\"ux\", ux)\n    100  STORE(\"uy\", uy)\n    110  STORE(\"uz\", uz)\n    120  STORE(\"vx\", vx)\n    130  STORE(\"vy\", vy)\n    140  STORE(\"vz\", vz)\n    150  RETURN 0\n    End Function\n\n    Function TuneGroupC(wx String, wy String, wz String, xx String, xy String, xz String, yx String, yy String, yz String, zx String, zy String, zz String) Uint64\n    10   IF LOAD(\"owner\") == SIGNER() THEN GOTO 30\n    20   RETURN 1\n    30   STORE(\"wx\", wx)\n    40   STORE(\"wy\", wy)\n    50   STORE(\"wz\", wz)\n    60   STORE(\"xx\", xx)\n    70   STORE(\"xy\", xy)\n    80   STORE(\"xz\", xz)\n    90   STORE(\"yx\", yx)\n    100  STORE(\"yy\", yy)\n    110  STORE(\"yz\", yz)\n    120  STORE(\"zx\", zx)\n    130  STORE(\"zy\", zy)\n    140  STORE(\"zz\", zz)\n    150  RETURN 0\n    End Function\n\n    Function Withdraw(amount Uint64) Uint64 \n    10  IF LOAD(\"owner\") == SIGNER() THEN GOTO 30 \n    20  RETURN 1\n    30  SEND_DERO_TO_ADDRESS(SIGNER(),amount)\n    40  RETURN 0\n    End Function\n\n    Function TransferOwnership(newowner String) Uint64 \n    10  IF LOAD(\"owner\") == SIGNER() THEN GOTO 30 \n    20  RETURN 1\n    30  STORE(\"tmpowner\",ADDRESS_RAW(newowner))\n    40  RETURN 0\n    End Function\n\n    Function ClaimOwnership() Uint64 \n    10  IF LOAD(\"tmpowner\") == SIGNER() THEN GOTO 30 \n    20  RETURN 1\n    30  STORE(\"owner\",SIGNER()) // ownership claim successful\n    40  RETURN 0\n    End Function\n\n    Function UpdateCode(code String) Uint64 \n    10  IF LOAD(\"owner\") == SIGNER() THEN GOTO 30 \n    20  RETURN 1\n    30  UPDATE_SC_CODE(code)\n    40  RETURN 0\n    End Function"}]
Code:
// Data

    Function InitializePrivate() Uint64
    10 STORE("owner", SIGNER())
    20 initGroupA ()
    30 initGroupB ()
    40 initGroupC ()
    50 RETURN 0 
    End Function

    Function initGroupA() Uint64
    10  STORE("ox", "NA")
    20  STORE("oy", "NA")
    30  STORE("oz", "NA")
    40  STORE("px", "NA")
    50  STORE("py", "NA")
    60  STORE("pz", "NA")
    70  STORE("qx", "NA")
    80  STORE("qy", "NA") 
    90  STORE("qz", "NA")  
    100 STORE("rx", "NA")
    110 STORE("ry", "NA")
    120 STORE("rz", "NA")
    130 RETURN 0 
    End Function

    Function initGroupB() Uint64
    10  STORE("sx", "NA")
    20  STORE("sy", "NA")
    30  STORE("sz", "NA")
    40  STORE("tx", "NA")
    50  STORE("ty", "NA")
    60  STORE("tz", "NA")
    70  STORE("ux", "NA")
    80  STORE("uy", "NA") 
    90  STORE("uz", "NA")  
    100 STORE("vx", "NA")
    110 STORE("vy", "NA")
    120 STORE("vz", "NA")
    130 RETURN 0 
    End Function

    Function initGroupC() Uint64
    10  STORE("wx", "NA")
    20  STORE("wy", "NA")
    30  STORE("wz", "NA")
    40  STORE("xx", "NA")
    50  STORE("xy", "NA")
    60  STORE("xz", "NA")
    70  STORE("yx", "NA")
    80  STORE("yy", "NA") 
    90  STORE("yz", "NA")  
    100 STORE("zx", "NA")
    110 STORE("zy", "NA")
    120 STORE("zz", "NA")
    130 RETURN 0 
    End Function

    Function TuneGroupA(ox String, oy String, oz String, px String, py String, pz String, qx String, qy String, qz String, rx String, ry String, rz String) Uint64
    10   IF LOAD("owner") == SIGNER() THEN GOTO 30
    20   RETURN 1
    30   STORE("ox", ox)
    40   STORE("oy", oy)
    50   STORE("oz", oz)
    60   STORE("px", px)
    70   STORE("py", py)
    80   STORE("pz", pz)
    90   STORE("qx", qx)
    100  STORE("qy", qy)
    110  STORE("qz", qz)
    120  STORE("rx", rx)
    130  STORE("ry", ry)
    140  STORE("rz", rz)
    150  RETURN 0
    End Function

    Function TuneGroupB(sx String, sy String, sz String, tx String, ty String, tz String, ux String, uy String, uz String, vx String, vy String, vz String) Uint64
    10   IF LOAD("owner") == SIGNER() THEN GOTO 30
    20   RETURN 1
    30   STORE("sx", sx)
    40   STORE("sy", sy)
    50   STORE("sz", sz)
    60   STORE("tx", tx)
    70   STORE("ty", ty)
    80   STORE("tz", tz)
    90   STORE("ux", ux)
    100  STORE("uy", uy)
    110  STORE("uz", uz)
    120  STORE("vx", vx)
    130  STORE("vy", vy)
    140  STORE("vz", vz)
    150  RETURN 0
    End Function

    Function TuneGroupC(wx String, wy String, wz String, xx String, xy String, xz String, yx String, yy String, yz String, zx String, zy String, zz String) Uint64
    10   IF LOAD("owner") == SIGNER() THEN GOTO 30
    20   RETURN 1
    30   STORE("wx", wx)
    40   STORE("wy", wy)
    50   STORE("wz", wz)
    60   STORE("xx", xx)
    70   STORE("xy", xy)
    80   STORE("xz", xz)
    90   STORE("yx", yx)
    100  STORE("yy", yy)
    110  STORE("yz", yz)
    120  STORE("zx", zx)
    130  STORE("zy", zy)
    140  STORE("zz", zz)
    150  RETURN 0
    End Function

    Function Withdraw(amount Uint64) Uint64 
    10  IF LOAD("owner") == SIGNER() THEN GOTO 30 
    20  RETURN 1
    30  SEND_DERO_TO_ADDRESS(SIGNER(),amount)
    40  RETURN 0
    End Function

    Function TransferOwnership(newowner String) Uint64 
    10  IF LOAD("owner") == SIGNER() THEN GOTO 30 
    20  RETURN 1
    30  STORE("tmpowner",ADDRESS_RAW(newowner))
    40  RETURN 0
    End Function

    Function ClaimOwnership() Uint64 
    10  IF LOAD("tmpowner") == SIGNER() THEN GOTO 30 
    20  RETURN 1
    30  STORE("owner",SIGNER()) // ownership claim successful
    40  RETURN 0
    End Function

    Function UpdateCode(code String) Uint64 
    10  IF LOAD("owner") == SIGNER() THEN GOTO 30 
    20  RETURN 1
    30  UPDATE_SC_CODE(code)
    40  RETURN 0
    End Function