Transaction Details
SMART CONTRACT
Transaction Hash
a456674df045816a020f11f8dd405117f63d6117660876ba4f928ac9bdb4698a
Block Status
Transaction Information
Root Hash
Built Height
27647
Block
Timestamp
1646437803001
Timestamp (UTC)
2022-03-04 23:50:03
Block Age
1678d 2h ago
Fee
0.05403
TX Size
5.104 kB
Version
1
Confirmations
7699348
Signature Type
DERO_HOMOMORPHIC
DERO Asset
2
Ring Size
0.05403
Fees
0.00000
Deposited
Sender
dero1qyvqpdftj8r6005xs20rnflakmwa5pdxg9vcjzdcuywq2t8skqhvwqglt6x0g
Ring Members (2)
Smart Contract Details
SC Balance
0.00000 DERO
Smart Contract Arguments
| Name | Type | Value |
|---|---|---|
| SC_ACTION | uint64 | 1 |
| SC_CODE | string | "/* Private Token Smart Contract Example in DVM-BASIC. DERO Smart Contracts Tokens privacy can be understood just like banks handle cash. Once cash is out from the bank, bank is not aware about it (who owns what value), until it is deposited back. Smart contract only maintains supply and other necessary items to keep it working. DERO Tokens can be tranfered to other wallets just like native DERO with Homomorphic Encryption and without involvement of issuing Smart Contracts. Token issuing Smart Contract cannot hold/freeze/control their tokens once they are issued and sent to any wallet. This token is Private. Use Function InitializePrivate() Uint64 to make any Smart Contract private. */ // Issue tokens after depositing DERO (Convert DERO to TOKENX) Function Issue$CLAP() Uint64 // 10 SEND_ASSET_TO_ADDRESS(SIGNER(), DEROVALUE(),SCID()) // Increment balance of user, without knowing original balance, this is done homomorphically /* I have changed the TOKENX to be CLAP. I habve commented out the SEND_ASSET_TO_ADDRESS portion of this contract because I want to preserve the original contract's "Function to IssueTOKENX() Uint64" I also wanted to eliminate the ability to create more of this token by inserting more DERO into the contract. */ 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 // 20 RETURN 0 // End Function /* Again, I have commented out the portion of the contract that allows for a user to redeem the TOKENX for DERO. In this instance, dont redeem CLAP, sers. */ // This function is used to initialize parameters during install time // InitializePrivate initializes a private SC /* I presume that as a result of "Function IssueCLAP() Uint64" that there is going to be a token made called CLAP. The following "Function InitializePrivate() Uint64" sends it somewhere in a private way */ Function InitializePrivate() Uint64 10 STORE("owner", SIGNER()) // Store in DB ["owner"] = address 30 SEND_ASSET_TO_ADDRESS(SIGNER(), 1400000000000, SCID()) // Gives initial encrypted balance of 1400000000000. // I have changed this token contract to have 14,000,000 tokens from the previous 16. 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 " |
Prove Transaction
Prove that you sent DERO in this transaction. Obtain proof using the dero-wallet-cli command or from your wallet statement.
Note: The proof is sent to the server for verification calculations.
Payload proofs are user-provided display proofs; for the strongest verification, confirm with the receiving wallet.