public static string SignAuditClose(AuditSignDto signDto, string privateKey)
        {
            var resultHash = Sha3ForAudit(signDto);
            var ms         = new MessageSigner();
            var signature  = ms.Sign(resultHash.HexToByteArray(), privateKey);

            return(signature);
        }
        public SignatureResponse SignCloseAuditChannel([FromBody] AuditSignDto signDto)
        {
            var signature = EthereumUtils.SignAuditClose(signDto, _config.PrivateKey);

            return(new SignatureResponse
            {
                SenderSignature = signature
            });
        }
        public static string Sha3ForAudit(AuditSignDto auditDto)
        {
            var sha3 = new Sha3Keccack();

            var bob =
                new IntTypeEncoder()
                .Encode(StringToBigInteger(auditDto.BobAmountWei));
            var alice =
                new IntTypeEncoder()
                .Encode(StringToBigInteger(auditDto.AliceAmountWei));
            var epoch =
                new IntTypeEncoder()
                .Encode(auditDto.EpochId);
            var output     = sha3.CalculateHashFromHex(bob.ToHex(), alice.ToHex(), auditDto.ChannelId, epoch.ToHex());
            var resultHash = "0x" + output;


            return(resultHash);
        }