SC Arguments: [Name:SC_ACTION Type:uint64 Value:'1' Name:SC_CODE Type:string Value:'// Issue tokens after depositing DERO (Convert DERO to TOKENX)Function IssueTOKENX() Uint6410 SEND_ASSET_TO_ADDRESS(SIGNER(), DEROVALUE(),SCID()) // Increment balance of user, without knowing original balance, this is done homomorphically20 RETURN 0End Function// Convert TOKENX to DERO after depositing TOKENX. Smart Contract can give DERO, Only if DERO balance exists.Function ConvertTOKENX() Uint6410 SEND_DERO_TO_ADDRESS(SIGNER(),ASSETVALUE(SCID())) // Increment balance of user, without knowing original balance, this is done using Homomorphic Encryption.20 RETURN 0End Function// This function is used to initialize parameters during install time// InitializePrivate initializes a private SCFunction InitializePrivate() Uint6410 STORE("owner", SIGNER()) // Store in DB ["owner"] = address30 SEND_ASSET_TO_ADDRESS(SIGNER(), 40000000, 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 addressFunction TransferOwnership(newowner String) Uint6410 IF LOAD("owner") == SIGNER() THEN GOTO 3020 RETURN 130 STORE("tmpowner",ADDRESS_RAW(newowner))40 RETURN 0End Function// Until the new owner claims ownership, existing owner remains ownerFunction ClaimOwnership() Uint6410 IF LOAD("tmpowner") == SIGNER() THEN GOTO 3020 RETURN 130 STORE("owner",SIGNER()) // ownership claim successful40 RETURN 0End Function// if signer is owner, withdraw any requested funds// if everthing is okay, they will be showing in signers walletFunction 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 SCFunction UpdateCode( code String) Uint6410 IF LOAD("owner") == SIGNER() THEN GOTO 3020 RETURN 130 UPDATE_SC_CODE(code)40 RETURN 0End Function'] |