public void ReprocessBurnRequest(string requestId, int blockHeight, ConversionRequestStatus requestStatus)
        {
            ConversionRequest request = this.KeyValueStore.LoadValue <ConversionRequest>(requestId);

            if (request == null)
            {
                throw new Exception($"{requestId} does not exist.");
            }

            if (request.RequestType == ConversionRequestType.Mint)
            {
                throw new Exception($"{requestId} is not a burn request.");
            }

            if (blockHeight == 0)
            {
                throw new Exception($"Block height cannot be 0.");
            }

            request.BlockHeight   = blockHeight;
            request.Processed     = false;
            request.RequestStatus = requestStatus;

            this.KeyValueStore.SaveValue(request.RequestId, request, true);
        }
Пример #2
0
        public List <ConversionRequest> GetAll(ConversionRequestType type, bool onlyUnprocessed)
        {
            var values = new List <ConversionRequest>();
            IEnumerator <KeyValuePair <byte[], byte[]> > enumerator = this.leveldb.GetEnumerator();

            while (enumerator.MoveNext())
            {
                (byte[] key, byte[] value) = enumerator.Current;

                if (value == null)
                {
                    continue;
                }

                ConversionRequest deserialized = this.dBreezeSerializer.Deserialize <ConversionRequest>(value);

                if (deserialized.RequestType != type)
                {
                    continue;
                }

                if (deserialized.Processed && onlyUnprocessed)
                {
                    continue;
                }

                values.Add(deserialized);
            }

            return(values);
        }
        public void SetConversionRequestState(string requestId, ConversionRequestStatus requestStatus)
        {
            ConversionRequest request = this.KeyValueStore.LoadValue <ConversionRequest>(requestId);

            if (request == null)
            {
                throw new Exception($"{requestId} does not exist.");
            }

            if (request.RequestStatus == ConversionRequestStatus.OriginatorSubmitting ||
                request.RequestStatus == ConversionRequestStatus.Processed)
            {
                throw new Exception($"Request with a status of '{request.RequestStatus}' can not be set to { requestStatus}.");
            }

            request.Processed     = false;
            request.RequestStatus = requestStatus;

            this.KeyValueStore.SaveValue(request.RequestId, request, true);
        }
        /// <inheritdoc />
        public void Save(ConversionRequest request)
        {
            this.logger.Debug($"Saving conversion request {request.RequestId} to store.");

            this.KeyValueStore.SaveValue(request.RequestId, request);
        }
 /// <inheritdoc />
 public void Save(ConversionRequest request)
 {
     this.KeyValueStore.SaveValue(request.RequestId, request);
 }