public async Task <ActionResult <SubmitTransactionResponseViewModel> > SubmitTxAsync(SubmitTransactionViewModel data)
        {
            if (!IdentityProviderStore.GetUserAndIssuer(User, Request.Headers, out var identity))
            {
                return(Unauthorized("Incorrectly formatted token"));
            }

            var domainModel = data.ToDomainModel(null, null, null, false, null, false);

            var result =
                new SubmitTransactionResponseViewModel(
                    await mapi.SubmitTransactionAsync(domainModel, identity));

            return(await SignIfRequiredAsync(result, result.MinerId));
        }
        public async Task <ActionResult <SubmitTransactionResponseViewModel> > SubmitTxRawAsync(
            [FromQuery]
            string callbackUrl,
            [FromQuery]
            string callbackToken,
            [FromQuery]
            string callbackEncryption,
            [FromQuery]
            bool merkleProof,
            [FromQuery]
            string merkleFormat,
            [FromQuery]
            bool dsCheck)
        {
            if (!IdentityProviderStore.GetUserAndIssuer(User, Request.Headers, out var identity))
            {
                return(Unauthorized("Incorrectly formatted token"));
            }

            byte[] data;
            using (var ms = new MemoryStream())
            {
                await Request.Body.CopyToAsync(ms);

                data = ms.ToArray();
            }

            var request = new SubmitTransaction
            {
                RawTx              = data,
                CallbackUrl        = callbackUrl,
                CallbackToken      = callbackToken,
                CallbackEncryption = callbackEncryption,
                MerkleProof        = merkleProof,
                MerkleFormat       = merkleFormat,
                DsCheck            = dsCheck
            };

            var result = new SubmitTransactionResponseViewModel(await mapi.SubmitTransactionAsync(request, identity));

            return(await SignIfRequiredAsync(result, result.MinerId));
        }