public static async Task AssertGetMethodAsync(
            this ITonClient client,
            string addr,
            Abi abi,
            string func,
            object @params,
            object returns)
        {
            var accountBoc = await client.DownloadAccountAsync(addr);

            Assert.NotEmpty(accountBoc);

            var message = await client.Abi.EncodeMessageAsync(new ParamsOfEncodeMessage
            {
                Abi     = abi,
                Signer  = new Signer.None(),
                Address = addr,
                CallSet = new CallSet
                {
                    FunctionName = func,
                    Input        = @params.ToJson()
                }
            });

            var result = await client.Tvm.RunTvmAsync(new ParamsOfRunTvm
            {
                Account = accountBoc,
                Message = message.Message,
                Abi     = abi,
                ReturnUpdatedAccount = true
            });

            var output = result.Decoded.Output;

            Assert.NotNull(output);
            Assert.Equal(
                returns.ToJson().ToString(Formatting.None),
                output.ToString(Formatting.None));
        }