private string GetDigest(IndyTaa taa)
 {
     using (var shaAlgorithm = SHA256.Create())
         return(shaAlgorithm.ComputeHash(
                    $"{taa.Version}{taa.Text}"
                    .GetUTF8Bytes())
                .ToHexString());
 }
        /// <inheritdoc />
        public async Task AcceptTxnAuthorAgreementAsync(Wallet wallet, IndyTaa txnAuthorAgreement)
        {
            var provisioning = await GetProvisioningAsync(wallet);

            provisioning.TaaAcceptance = new IndyTaaAcceptance
            {
                Digest         = GetDigest(txnAuthorAgreement),
                Text           = txnAuthorAgreement.Text,
                Version        = txnAuthorAgreement.Version,
                AcceptanceDate = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
            };

            await RecordService.UpdateAsync(wallet, provisioning);
        }
        /// <inheritdoc />
        public async Task AcceptTxnAuthorAgreementAsync(IAgentContext agentContext, IndyTaa txnAuthorAgreement, string acceptanceMechanism = "service_agreement")
        {
            var provisioning = await GetProvisioningAsync(agentContext.Wallet);

            provisioning.TaaAcceptance = new IndyTaaAcceptance
            {
                Digest              = GetDigest(txnAuthorAgreement),
                Text                = txnAuthorAgreement.Text,
                Version             = txnAuthorAgreement.Version,
                AcceptanceDate      = DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
                AcceptanceMechanism = acceptanceMechanism
            };

            await RecordService.UpdateAsync(agentContext.Wallet, provisioning);
        }