/** * <summary>Retrieve list of keys in current namespace</summary> * <param name="gasInfo">Gas specified for transaction execution</param> * <returns>List of strings with keys available</returns> */ public async Task <List <string> > TxKeys(GasInfo gasInfo = null) { return((await SendTransaction("post", "keys", gasInfo)) ["keys"] ?.ToObject <List <string> >()); }
/** * <summary>Delete all keys in current namespace</summary> * <param name="gasInfo">Gas specified for transaction execution</param> */ public async Task DeleteAll(GasInfo gasInfo = null) { await SendTransaction("post", "deleteall", gasInfo); }
/** * <summary>Update Key's value to <paramref name="value" /> in current namespace</summary> * <param name="key">String key to update</param> * <param name="value">String value of key</param> * <param name="leaseInfo">Lease time which to set after updating</param> * <param name="gasInfo">Gas specified for transaction execution</param> */ public async Task Update(string key, string value, LeaseInfo leaseInfo = null, GasInfo gasInfo = null) { await SendTransaction(new JObject { ["Key"] = key, ["Value"] = value, ["Lease"] = leaseInfo == null ? "0" : leaseInfo.Value }, "post", "update", gasInfo); }
/** * <summary>Create <paramref name="key" /> with <paramref name="value" /> in current namespace</summary> * <param name="key">String key to create</param> * <param name="value">String value of key</param> * <param name="leaseInfo">Lease time for new key</param> * <param name="gasInfo">Gas specified for transaction execution</param> * <exception cref="Exceptions.KeyAlreadyExistsException"></exception> */ public async Task Create(string key, string value, LeaseInfo leaseInfo = null, GasInfo gasInfo = null) { try { await SendTransaction(new JObject { ["Key"] = key, ["Value"] = value, ["Lease"] = leaseInfo == null ? "0" : leaseInfo.Value }, "post", "create", gasInfo); } catch (Exceptions.TransactionExecutionException ex) { if (ex.Message.Contains("already exists")) { throw new Exceptions.KeyAlreadyExistsException(); } throw; } }
private static async Task Process(string[] args) { try { var config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build() .GetSection("Bluzelle"); var bz = new BluzelleApi(config["Namespace"], config["Mnemonic"], config["Address"]); var gas = new GasInfo { GasPrice = 10 }; if (args.Length == 0) { PrintHelp(); } switch (args[0]) { case "create": await bz.Create(args[1], args[2], new LeaseInfo(int.Parse(args[3])), gas); break; case "txRead": Console.WriteLine(await bz.TxRead(args[1], gas)); break; case "update": await bz.Update(args[1], args[2], new LeaseInfo(int.Parse(args[3])), gas); break; case "delete": await bz.Delete(args[1], gas); break; case "txHas": Console.WriteLine(await bz.TxHas(args[1], gas)); break; case "txKeys": foreach (var key in await bz.TxKeys(gas)) { Console.WriteLine(key); } break; case "read": Console.WriteLine(await bz.Read(args[1], args.Length > 2)); break; case "has": Console.WriteLine(await bz.HasKey(args[1])); break; case "keys": foreach (var key in await bz.Keys()) { Console.WriteLine(key); } break; case "rename": await bz.Rename(args[1], args[2], gas); break; case "count": Console.WriteLine(await bz.Count()); break; case "txCount": Console.WriteLine(await bz.TxCount(gas)); break; case "deleteAll": await bz.DeleteAll(gas); break; case "keyValues": foreach (var(key, value) in await bz.GetKeyValues()) { Console.WriteLine($"{key}: {value}"); } break; case "txKeyValues": foreach (var(key, value) in await bz.TxGetKeyValues(gas)) { Console.WriteLine($"{key}: {value}"); } break; case "multiUpdate": var data = new Dictionary <string, string>(); for (var i = 1; i < args.Length; i += 2) { data.Add(args[i], args[i + 1]); } await bz.UpdateMany(data, gas); break; case "getLease": Console.WriteLine(await bz.GetLease(args[1])); break; case "txGetLease": Console.WriteLine(await bz.TxGetLease(args[1], gas)); break; case "renewLease": await bz.Renew(args[1], new LeaseInfo(int.Parse(args[2])), gas); break; case "renewLeaseAll": await bz.RenewAll(new LeaseInfo(int.Parse(args[1])), gas); break; case "getNShortestLease": foreach (var(key, value) in await bz.GetNShortestLease(int.Parse(args[1]))) { Console.WriteLine($"{key} - {value}"); } break; case "txGetNShortestLease": foreach (var(key, value) in await bz.TxGetNShortestLease(int.Parse(args[1]), gas)) { Console.WriteLine($"{key} - {value}"); } break; case "account": var res = bz.GetAccount().Result; Console.WriteLine($"{res.Address} - {res.Coins[0].Amount} {res.Coins[0].Denom}"); break; case "version": Console.WriteLine(bz.GetVersion().Result); break; default: PrintHelp(); return; } } catch (Exception exception) { Console.WriteLine(exception.Message); PrintHelp(); } }
public MainController(IBlzApi blzApi) { _bz = blzApi.Api; _gas = blzApi.Gas; }