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);
        }
        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);
        }