Smart Contract Details

Open on Dero Explorer
Internal ID:
10
Block:
Timestamp:
2022-02-28 19:11:59 UTC (3.4 years ago)
Creator:
Raw Data:
[{"name":"SC_ACTION","datatype":"U","value":1},{"name":"SC_CODE","datatype":"S","value":"// The $CLAP will serve the world to make $CLAPCLAP memes love\r\n\r\n// Issue tokens after depositing DERO (Convert DERO to TOKENX)\r\n Function IssueTOKENX() Uint64\r\n     10  SEND_ASSET_TO_ADDRESS(SIGNER(), DEROVALUE(),SCID())   // Increment balance of user, without knowing original balance, this is done homomorphically\r\n     20  RETURN 0\r\n     End Function\r\n\r\n // Convert TOKENX to DERO after depositing TOKENX. Smart Contract can give DERO, Only if DERO balance exists.\r\n Function ConvertTOKENX() Uint64\r\n     10  SEND_DERO_TO_ADDRESS(SIGNER(),ASSETVALUE(SCID()))   // Increment balance of user, without knowing original balance, this is done using Homomorphic Encryption.\r\n     20  RETURN 0\r\n     End Function\r\n\r\n // This function is used to initialize parameters during install time\r\n // InitializePrivate initializes a private SC\r\n     Function InitializePrivate() Uint64\r\n     10  STORE(\"owner\", SIGNER())   // Store in DB  [\"owner\"] = address\r\n30  SEND_ASSET_TO_ADDRESS(SIGNER(), 100000000000000, SCID())   // Gives initial encrypted balance of 1600000.\r\n     40  RETURN 0\r\n     End Function\r\n\r\n\r\n     // This function is used to change owner\r\n     // owner is an string form of address\r\n     Function TransferOwnership(newowner String) Uint64\r\n     10  IF LOAD(\"owner\") == SIGNER() THEN GOTO 30\r\n     20  RETURN 1\r\n     30  STORE(\"tmpowner\",ADDRESS_RAW(newowner))\r\n     40  RETURN 0\r\n     End Function\r\n\r\n     // Until the new owner claims ownership, existing owner remains owner\r\n     Function ClaimOwnership() Uint64\r\n     10  IF LOAD(\"tmpowner\") == SIGNER() THEN GOTO 30\r\n     20  RETURN 1\r\n     30  STORE(\"owner\",SIGNER()) // ownership claim successful\r\n     40  RETURN 0\r\n     End Function\r\n\r\n     // if signer is owner, withdraw any requested funds\r\n     // if everthing is okay, they will be showing in signers wallet\r\nFunction Withdraw( amount Uint64) Uint64\r\n     10  IF LOAD(\"owner\") == SIGNER() THEN GOTO 30\r\n     20  RETURN 1\r\n     30  SEND_DERO_TO_ADDRESS(SIGNER(),amount)\r\n     40  RETURN 0\r\n     End Function\r\n\r\n     // if signer is owner, provide him rights to update code anytime\r\n     // make sure update is always available to SC\r\n     Function UpdateCode( code String) Uint64\r\n     10  IF LOAD(\"owner\") == SIGNER() THEN GOTO 30\r\n     20  RETURN 1\r\n     30  UPDATE_SC_CODE(code)\r\n     40  RETURN 0\r\n     End Function"}]
Code:
// The $CLAP will serve the world to make $CLAPCLAP memes love

// Issue tokens after depositing DERO (Convert DERO to TOKENX)
 Function IssueTOKENX() Uint64
     10  SEND_ASSET_TO_ADDRESS(SIGNER(), DEROVALUE(),SCID())   // Increment balance of user, without knowing original balance, this is done homomorphically
     20  RETURN 0
     End Function

 // Convert TOKENX to DERO after depositing TOKENX. Smart Contract can give DERO, Only if DERO balance exists.
 Function ConvertTOKENX() Uint64
     10  SEND_DERO_TO_ADDRESS(SIGNER(),ASSETVALUE(SCID()))   // Increment balance of user, without knowing original balance, this is done using Homomorphic Encryption.
     20  RETURN 0
     End Function

 // This function is used to initialize parameters during install time
 // InitializePrivate initializes a private SC
     Function InitializePrivate() Uint64
     10  STORE("owner", SIGNER())   // Store in DB  ["owner"] = address
30  SEND_ASSET_TO_ADDRESS(SIGNER(), 100000000000000, SCID())   // Gives initial encrypted balance of 1600000.
     40  RETURN 0
     End Function


     // This function is used to change owner
     // owner is an string form of address
     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

     // Until the new owner claims ownership, existing owner remains owner
     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

     // if signer is owner, withdraw any requested funds
     // if everthing is okay, they will be showing in signers wallet
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

     // if signer is owner, provide him rights to update code anytime
     // make sure update is always available to SC
     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