public async Task SentTransaction_Token_Check_Test()
        {
            //user without token - NotExisted
            {
                var keyPair      = CryptoHelper.GenerateKeyPair();
                var tokenAddress =
                    await _smartContractAddressService.GetAddressByContractNameAsync(await _osTestHelper.GetChainContextAsync(),
                                                                                     TokenSmartContractAddressNameProvider.StringName);

                //approve transaction
                var transaction = await GenerateTransaction(keyPair, tokenAddress, "Approve", new ApproveInput
                {
                    Amount  = 100,
                    Spender = Address.FromPublicKey(CryptoHelper.GenerateKeyPair().PublicKey),
                    // TODO: valid symbol needed for a test case not related to token symbol
                    Symbol = "Check user without token whether can sent transaction"
                });

                var transactionId = await SendTransactionAsync(transaction);

                var transactionResult = await QueryTransactionResultAsync(transactionId);

                Enum.TryParse <TransactionResultStatus>(transactionResult.Status, true, out var status);
                status.ShouldBe(TransactionResultStatus.Failed);
            }

            //bp user with token - Mined
            {
                var transaction = await _osTestHelper.GenerateTransferTransaction();

                var transactionId = await SendTransactionAsync(transaction);

                var transactionResult = await QueryTransactionResultAsync(transactionId);

                Enum.TryParse <TransactionResultStatus>(transactionResult.Status, true, out var status);
                status.ShouldBe(TransactionResultStatus.Mined);
            }
        }