Пример #1
0
        public static bool OnAssetIssueByAccount(JToken id, string method, JArray parameters, out JToken result)
        {
            result = new JObject();

            if (parameters == null || parameters.Count != 1)
            {
                result = RpcMessage.CreateErrorResult(id, RpcMessage.INVALID_PARAMS, "Invalid parameters");
                return(false);
            }

            try
            {
                byte[]         address          = Wallet.Base58ToAddress(parameters[0].ToString());
                AssetIssueList asset_issue_list = RpcApiService.GetAssetIssueListByAddress(address);

                result = JToken.FromObject(asset_issue_list);
            }
            catch (ArgumentException e)
            {
                result = RpcMessage.CreateErrorResult(id, RpcMessage.INVALID_PARAMS, e.Message);
                return(false);
            }
            catch (System.Exception e)
            {
                result = RpcMessage.CreateErrorResult(id, RpcMessage.UNKNOWN_ERROR, e.Message);
                return(false);
            }

            return(true);
        }
Пример #2
0
        public static bool OnAssetIssueListByName(JToken id, string method, JArray parameters, out JToken result)
        {
            result = new JObject();

            if (parameters == null || parameters.Count != 1)
            {
                result = RpcMessage.CreateErrorResult(id, RpcMessage.INVALID_PARAMS, "Invalid parameters");
                return(false);
            }

            try
            {
                byte[]         name             = Encoding.UTF8.GetBytes(parameters[0].ToString());
                AssetIssueList asset_issue_list = RpcApiService.GetAssetIssueListByName(name);

                result = JToken.FromObject(asset_issue_list.ToByteArray());
            }
            catch (NonUniqueObjectException e)
            {
                result = RpcMessage.CreateErrorResult(id, RpcMessage.INTERNAL_ERROR, e.Message);
                return(false);
            }
            catch (ArgumentException e)
            {
                result = RpcMessage.CreateErrorResult(id, RpcMessage.INVALID_PARAMS, e.Message);
                return(false);
            }
            catch (System.Exception e)
            {
                result = RpcMessage.CreateErrorResult(id, RpcMessage.UNKNOWN_ERROR, e.Message);
                return(false);
            }

            return(true);
        }
Пример #3
0
        public static AssetIssueContract GetAssetIssueByName(byte[] name)
        {
            if (name == null || name.Length == 0)
            {
                throw new ArgumentException("Invalid name");
            }

            AssetIssueContract contract = null;

            if (Manager.Instance.DBManager.DynamicProperties.GetAllowSameTokenName() == 0)
            {
                AssetIssueCapsule asset_issue = Manager.Instance.DBManager.AssetIssue.Get(name);
                contract = asset_issue != null ? asset_issue.Instance : null;
            }
            else
            {
                ByteString     asset_name       = ByteString.CopyFrom(name);
                AssetIssueList asset_issue_list = new AssetIssueList();
                foreach (var asset_issue in Manager.Instance.DBManager.AssetIssueV2.AllAssetIssues)
                {
                    if (asset_issue.Name.Equals(asset_name))
                    {
                        asset_issue_list.AssetIssue.Add(asset_issue.Instance);
                    }
                }

                if (asset_issue_list.AssetIssue.Count > 1)
                {
                    throw new NonUniqueObjectException("get more than one asset, please use " + RpcCommand.AssetIssue.AssetIssueById);
                }
                else
                {
                    AssetIssueCapsule asset_issue = Manager.Instance.DBManager.AssetIssueV2.Get(asset_name.ToByteArray());
                    if (asset_name != null)
                    {
                        if (asset_issue_list.AssetIssue.Count > 0 &&
                            asset_issue_list.AssetIssue[0].Id.Equals(asset_issue.Instance.Id))
                        {
                            contract = asset_issue.Instance;
                        }
                        else
                        {
                            asset_issue_list.AssetIssue.Add(asset_issue.Instance);
                            if (asset_issue_list.AssetIssue.Count > 1)
                            {
                                throw new NonUniqueObjectException("get more than one asset, please use " + RpcCommand.AssetIssue.AssetIssueById);
                            }
                            contract = asset_issue_list.AssetIssue[0];
                        }
                    }
                }
            }

            return(contract);
        }
Пример #4
0
        public static AssetIssueList GetAssetIssueList()
        {
            AssetIssueList result = new AssetIssueList();

            foreach (var asset_issue in Manager.Instance.DBManager.GetAssetIssueStoreFinal().AllAssetIssues)
            {
                result.AssetIssue.Add(asset_issue.Instance);
            }

            return(result);
        }
Пример #5
0
        public static RpcApiResult ListAssetIssue(out AssetIssueList asset_issues)
        {
            asset_issues = null;

            JObject receive = SendCommand(RpcCommand.AssetIssue.ListAssetIssue, new JArray()
            {
            });

            if (receive.TryGetValue("error", out JToken value))
            {
                return(new RpcApiResult(false, value["code"].ToObject <int>(), value["message"].ToObject <string>()));
            }

            asset_issues = AssetIssueList.Parser.ParseFrom(receive["result"].ToObject <byte[]>());

            return(RpcApiResult.Success);
        }
Пример #6
0
        public static AssetIssueList GetAssetIssueListByName(byte[] name)
        {
            if (name == null || name.Length == 0)
            {
                throw new ArgumentException("Invalid name");
            }

            AssetIssueList result = new AssetIssueList();

            foreach (var asset_issue in Manager.Instance.DBManager.GetAssetIssueStoreFinal().AllAssetIssues)
            {
                if (asset_issue.Name.Equals(ByteString.CopyFrom(name)))
                {
                    result.AssetIssue.Add(asset_issue.Instance);
                }
            }

            return(result);
        }
Пример #7
0
        public static AssetIssueList GetAssetIssueListByAddress(byte[] address)
        {
            if (!Wallet.IsValidAddress(address))
            {
                throw new ArgumentException("Invalid address");
            }

            AssetIssueList result = new AssetIssueList();

            foreach (var asset_issue in Manager.Instance.DBManager.GetAssetIssueStoreFinal().AllAssetIssues)
            {
                if (asset_issue.OwnerAddress.Equals(ByteString.CopyFrom(address)))
                {
                    result.AssetIssue.Add(asset_issue.Instance);
                }
            }

            return(result);
        }
Пример #8
0
        public static bool OnListAssetIssue(JToken id, string method, JArray parameters, out JToken result)
        {
            result = new JObject();

            if (parameters == null || parameters.Count != 0)
            {
                result = RpcMessage.CreateErrorResult(id, RpcMessage.INVALID_PARAMS, "Invalid parameters");
                return(false);
            }

            try
            {
                AssetIssueList asset_issue_list = RpcApiService.GetAssetIssueList();

                result = JToken.FromObject(asset_issue_list.ToByteArray());
            }
            catch (System.Exception e)
            {
                result = RpcMessage.CreateErrorResult(id, RpcMessage.UNKNOWN_ERROR, e.Message);
                return(false);
            }

            return(true);
        }