public static string SignCooperativeClose(CooperativeSignDto cooperativeDto, string privateKey)
        {
            var resultHash = Sha3ForCooperative(cooperativeDto);
            var ms         = new MessageSigner();
            var signature  = ms.Sign(resultHash.HexToByteArray(), privateKey);

            return(signature);
        }
        public SignatureResponse SignCloseCooperativeChannel([FromBody] CooperativeSignDto signDto)
        {
            var signature = EthereumUtils.SignCooperativeClose(signDto, _config.PrivateKey);

            return(new SignatureResponse
            {
                SenderSignature = signature
            });
        }
        public static string Sha3ForCooperative(CooperativeSignDto cooperativeDto)
        {
            var sha3 = new Sha3Keccack();

            var bob =
                new IntTypeEncoder()
                .Encode(StringToBigInteger(cooperativeDto.BobAmountWei));
            var alice =
                new IntTypeEncoder()
                .Encode(StringToBigInteger(cooperativeDto.AliceAmountWei));

            var output     = sha3.CalculateHashFromHex(bob.ToHex(), alice.ToHex(), cooperativeDto.ChannelId);
            var resultHash = "0x" + output;


            return(resultHash);
        }