예제 #1
0
 internal SigningPayload(string address, AccountIdentifier accountIdentifier, string hexBytes, SignatureType?signatureType)
 {
     Address           = address;
     AccountIdentifier = accountIdentifier;
     HexBytes          = hexBytes;
     SignatureType     = signatureType;
 }
예제 #2
0
        internal static ConstructionPreprocessResponse DeserializeConstructionPreprocessResponse(JsonElement element)
        {
            Optional <object> options = default;
            Optional <IReadOnlyList <AccountIdentifier> > requiredPublicKeys = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("options"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    options = property.Value.GetObject();
                    continue;
                }
                if (property.NameEquals("required_public_keys"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <AccountIdentifier> array = new List <AccountIdentifier>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(AccountIdentifier.DeserializeAccountIdentifier(item));
                    }
                    requiredPublicKeys = array;
                    continue;
                }
            }
            return(new ConstructionPreprocessResponse(options.Value, Optional.ToList(requiredPublicKeys)));
        }
예제 #3
0
 internal Operation(OperationIdentifier operationIdentifier, IList <OperationIdentifier> relatedOperations, string type, string status, AccountIdentifier account, Amount amount, CoinChange coinChange, object metadata)
 {
     OperationIdentifier = operationIdentifier;
     RelatedOperations   = relatedOperations;
     Type       = type;
     Status     = status;
     Account    = account;
     Amount     = amount;
     CoinChange = coinChange;
     Metadata   = metadata;
 }
예제 #4
0
        public AccountBalanceRequest(NetworkIdentifier networkIdentifier, AccountIdentifier accountIdentifier)
        {
            if (networkIdentifier == null)
            {
                throw new ArgumentNullException(nameof(networkIdentifier));
            }
            if (accountIdentifier == null)
            {
                throw new ArgumentNullException(nameof(accountIdentifier));
            }

            NetworkIdentifier = networkIdentifier;
            AccountIdentifier = accountIdentifier;
            Currencies        = new ChangeTrackingList <Currency>();
        }
        public AccountCoinsRequest(NetworkIdentifier networkIdentifier, AccountIdentifier accountIdentifier, bool includeMempool)
        {
            if (networkIdentifier == null)
            {
                throw new ArgumentNullException(nameof(networkIdentifier));
            }
            if (accountIdentifier == null)
            {
                throw new ArgumentNullException(nameof(accountIdentifier));
            }

            NetworkIdentifier = networkIdentifier;
            AccountIdentifier = accountIdentifier;
            IncludeMempool    = includeMempool;
            Currencies        = new ChangeTrackingList <Currency>();
        }
예제 #6
0
        internal static SigningPayload DeserializeSigningPayload(JsonElement element)
        {
            Optional <string>            address           = default;
            Optional <AccountIdentifier> accountIdentifier = default;
            string hexBytes = default;
            Optional <SignatureType> signatureType = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("address"))
                {
                    address = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("account_identifier"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    accountIdentifier = AccountIdentifier.DeserializeAccountIdentifier(property.Value);
                    continue;
                }
                if (property.NameEquals("hex_bytes"))
                {
                    hexBytes = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("signature_type"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    signatureType = new SignatureType(property.Value.GetString());
                    continue;
                }
            }
            return(new SigningPayload(address.Value, accountIdentifier.Value, hexBytes, Optional.ToNullable(signatureType)));
        }
예제 #7
0
        internal static ConstructionDeriveResponse DeserializeConstructionDeriveResponse(JsonElement element)
        {
            Optional <string>            address           = default;
            Optional <AccountIdentifier> accountIdentifier = default;
            Optional <object>            metadata          = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("address"))
                {
                    address = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("account_identifier"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    accountIdentifier = AccountIdentifier.DeserializeAccountIdentifier(property.Value);
                    continue;
                }
                if (property.NameEquals("metadata"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    metadata = property.Value.GetObject();
                    continue;
                }
            }
            return(new ConstructionDeriveResponse(address.Value, accountIdentifier.Value, metadata.Value));
        }
        internal static ConstructionParseResponse DeserializeConstructionParseResponse(JsonElement element)
        {
            IReadOnlyList <Operation>                     operations = default;
            Optional <IReadOnlyList <string> >            signers    = default;
            Optional <IReadOnlyList <AccountIdentifier> > accountIdentifierSigners = default;
            Optional <object> metadata = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("operations"))
                {
                    List <Operation> array = new List <Operation>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(Operation.DeserializeOperation(item));
                    }
                    operations = array;
                    continue;
                }
                if (property.NameEquals("signers"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <string> array = new List <string>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString());
                    }
                    signers = array;
                    continue;
                }
                if (property.NameEquals("account_identifier_signers"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <AccountIdentifier> array = new List <AccountIdentifier>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(AccountIdentifier.DeserializeAccountIdentifier(item));
                    }
                    accountIdentifierSigners = array;
                    continue;
                }
                if (property.NameEquals("metadata"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    metadata = property.Value.GetObject();
                    continue;
                }
            }
            return(new ConstructionParseResponse(operations, Optional.ToList(signers), Optional.ToList(accountIdentifierSigners), metadata.Value));
        }
예제 #9
0
        internal static Operation DeserializeOperation(JsonElement element)
        {
            OperationIdentifier operationIdentifier = default;
            Optional <IList <OperationIdentifier> > relatedOperations = default;
            string                       type       = default;
            Optional <string>            status     = default;
            Optional <AccountIdentifier> account    = default;
            Optional <Amount>            amount     = default;
            Optional <CoinChange>        coinChange = default;
            Optional <object>            metadata   = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("operation_identifier"))
                {
                    operationIdentifier = OperationIdentifier.DeserializeOperationIdentifier(property.Value);
                    continue;
                }
                if (property.NameEquals("related_operations"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <OperationIdentifier> array = new List <OperationIdentifier>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(OperationIdentifier.DeserializeOperationIdentifier(item));
                    }
                    relatedOperations = array;
                    continue;
                }
                if (property.NameEquals("type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("status"))
                {
                    status = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("account"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    account = AccountIdentifier.DeserializeAccountIdentifier(property.Value);
                    continue;
                }
                if (property.NameEquals("amount"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    amount = Amount.DeserializeAmount(property.Value);
                    continue;
                }
                if (property.NameEquals("coin_change"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    coinChange = CoinChange.DeserializeCoinChange(property.Value);
                    continue;
                }
                if (property.NameEquals("metadata"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    metadata = property.Value.GetObject();
                    continue;
                }
            }
            return(new Operation(operationIdentifier, Optional.ToList(relatedOperations), type, status.Value, account.Value, amount.Value, coinChange.Value, metadata.Value));
        }