/*Deposit Addresses*/ /// <summary> /// Add new deposit address to a certain registered address & active user /// </summary> /// <param name="zyAddress"></param> /// <param name="registeredAddr"></param> /// <param name="symbol"></param> /// <returns></returns> internal static Boolean addDepositAddr(byte[] zyAddress, byte[] registeredAddr, string symbol) { //even admin or user can addDeposit address //only affect on active Account bool valid = preModifyDeposit(zyAddress); if (!valid) { return(false); } //validate crypto supported //string formattedSymbol = symbol.ToUpper(); bool isSupported = SupportedTokens.isSupported(symbol); if (!isSupported) { Error("unsupported_token"); return(false); } StorageMap depositAddr = Storage.CurrentContext.CreateMap(registeredAddr.AsString()); byte[] store = depositAddr.Get(symbol); if (store != null) { Error("registered"); return(false); } depositAddr.Put(symbol, zyAddress); Added(zyAddress, registeredAddr, symbol); return(true); }
public static Object Main(string operation, params object[] args) { if (Runtime.Trigger == TriggerType.Verification) { return(false); } if (Runtime.Trigger == TriggerType.Application) { FunctionCall(operation); //in case of migration if (operation == "migrate") { if (args.Length < 9) { Error("error_missing_migrate_params"); return(false); } byte[] script = (byte[])args[0]; byte[] plist = (byte[])args[1]; byte rtype = (byte)args[2]; ContractPropertyState cps = (ContractPropertyState)args[3]; string name = (string)args[4]; string version = (string)args[5]; string author = (string)args[6]; string email = (string)args[7]; string description = (string)args[8]; return(Migrate(script, plist, rtype, cps, name, version, author, email, description)); } if (operation == "getKYCLevel") { return(Whitelist.getKYCLevel((byte[])args[0])); } if (operation == "isActiveUser") { return(Whitelist.isActive((byte[])args[0])); } if (operation == "getRegisteredAddress") { return(RegisterAddresses.getRegisteredAddr((byte[])args[0], (string)args[1])); } if (operation == "isSupported") { return(SupportedTokens.isSupported((string)args[0])); } //function called only by admin if (operation == "addSupportToken") { return(SupportedTokens.addToken((string)args[0])); } if (operation == "deactive") { return(Whitelist.deactiveUser((byte[])args[0])); } if (operation == "setKYCLevel") { return(Whitelist.setKYCLevel((byte[])args[0], (uint)args[1])); } if (operation == "register") { return(Whitelist.registerUser((byte[])args[0], (byte[])args[1], (string)args[2])); } //function called by admin/user if (operation == "addDeposit") { return(RegisterAddresses.addDepositAddr((byte[])args[0], (byte[])args[1], (string)args[2])); } if (operation == "removeDeposit") { return(RegisterAddresses.removeDepositAddr((byte[])args[0], (string)args[1])); } //function not found Error("error_unsupported_token"); return(false); } //If there is no opteration matched Error("error_unsupported_trigger"); return(false); }