Esempio n. 1
0
 /**
  * <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> >());
 }
Esempio n. 2
0
 /**
  * <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);
 }
Esempio n. 3
0
 /**
  * <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);
 }
Esempio n. 4
0
 /**
  * <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;
     }
 }
Esempio n. 5
0
        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();
            }
        }
Esempio n. 6
0
 public MainController(IBlzApi blzApi)
 {
     _bz  = blzApi.Api;
     _gas = blzApi.Gas;
 }