public static OperationMetaEntity Map(string partitionKey, string rowKey, IOperationMeta source)
 {
     return(new OperationMetaEntity
     {
         PartitionKey = partitionKey,
         RowKey = rowKey,
         ToAddress = source.ToAddress,
         FromAddress = source.FromAddress,
         AssetId = source.AssetId,
         OperationId = source.OperationId,
         IncludeFee = source.IncludeFee,
         AmountSatoshi = source.AmountSatoshi,
         Inserted = source.Inserted,
         FeeSatoshi = source.FeeSatoshi
     });
 }
 public static OperationMetaEntity Map(string partitionKey, string rowKey, IOperationMeta source)
 {
     return(new OperationMetaEntity
     {
         PartitionKey = partitionKey,
         RowKey = rowKey,
         Hash = source.Hash,
         Inputs = source.Inputs,
         Outputs = source.Outputs,
         AssetId = source.AssetId,
         OperationId = source.OperationId,
         IncludeFee = source.IncludeFee,
         Inserted = source.Inserted,
         FeeSatoshi = source.FeeSatoshi
     });
 }
Пример #3
0
 public static ObervableOperation Create(IOperationMeta operation, BroadcastStatus status, string txHash, DateTime?updated = null)
 {
     return(new ObervableOperation
     {
         OperationId = operation.OperationId,
         AmountSatoshi = operation.AmountSatoshi,
         AssetId = operation.AssetId,
         FromAddress = operation.FromAddress,
         IncludeFee = operation.IncludeFee,
         ToAddress = operation.ToAddress,
         Status = status,
         TxHash = txHash,
         Updated = updated ?? DateTime.UtcNow,
         FeeSatoshi = operation.FeeSatoshi
     });
 }
Пример #4
0
 public static ObervableOperation Create(IOperationMeta operation, BroadcastStatus status, string txHash,
                                         int updatedAtBlockHeight, DateTime?updated = null)
 {
     return(new ObervableOperation
     {
         OperationId = operation.OperationId,
         Inputs = operation.Inputs.ToArray(),
         AssetId = operation.AssetId,
         Outputs = operation.Outputs.ToArray(),
         IncludeFee = operation.IncludeFee,
         Status = status,
         TxHash = txHash,
         Updated = updated ?? DateTime.UtcNow,
         FeeSatoshi = operation.FeeSatoshi,
         UpdatedAtBlockHeight = updatedAtBlockHeight,
     });
 }
        public static bool Compare(IOperationMeta operationMeta, IList <OperationInput> inputs,
                                   IList <OperationOutput> outputs,
                                   string assetId,
                                   bool includeFee)
        {
            if (operationMeta.Inputs.Length != inputs.Count || operationMeta.Outputs.Length != outputs.Count)
            {
                return(false);
            }

            var orderedInputs      = operationMeta.Inputs.OrderBy(o => o.Address).ThenBy(o => o.Amount).ToList();
            var orderedOtherInputs = inputs.OrderBy(o => o.Address).ThenBy(o => o.Amount).ToList();

            for (var i = 0; i < inputs.Count; i++)
            {
                if (orderedInputs[i].Address != orderedOtherInputs[i].Address ||
                    orderedInputs[i].Amount != orderedOtherInputs[i].Amount)
                {
                    return(false);
                }
            }

            var orderedOutputs      = operationMeta.Outputs.OrderBy(o => o.Address).ThenBy(o => o.Amount).ToList();
            var orderedOtherOutputs = outputs.OrderBy(o => o.Address).ThenBy(o => o.Amount).ToList();

            for (var i = 0; i < outputs.Count; i++)
            {
                if (orderedOutputs[i].Address != orderedOtherOutputs[i].Address ||
                    orderedOutputs[i].Amount != orderedOtherOutputs[i].Amount)
                {
                    return(false);
                }
            }

            return(operationMeta.AssetId == assetId && operationMeta.IncludeFee == includeFee);
        }
 public Task Insert(IOperationMeta meta)
 {
     return(_storage.InsertAsync(OperationMetaEntity.ByOperationId.Create(meta)));
 }
 public static OperationMetaEntity Create(IOperationMeta source)
 {
     return(Map(GeneratePartitionKey(source.OperationId), GenerateRowKey(source.OperationId), source));
 }