InnerWalletConnector
- Add this to your package’s pubspec.yaml file
dependencies:
 web3dart: ^2.6.1
  eth_sig_util: ^0.0.9
then run flutter packages get
- Create a class with above code, you need to modify the code to setup for your own PrivateKey
import 'dart:convert';
import 'dart:typed_data';
import 'package:eth_sig_util/eth_sig_util.dart';
import 'package:eth_sig_util/util/utils.dart';
import 'package:web3dart/web3dart.dart';
import 'package:web3mq/web3mq.dart' as web3mq;
class InnerWalletConnector implements web3mq.WalletConnector {
  // It's the testing account, the password of this account is 123123,
  // you can replace your own private key here for testing.
  // Warning: care for your private key!
  static const String _thePrivateKey =
      '';
  final _InnerWallet _wallet = _InnerWallet.fromPrivateKey(_thePrivateKey);
  
  Future<web3mq.Wallet> connectWallet() async {
    return _wallet;
  }
  
  Future<String> personalSign(String message, String address,
      {String? password}) async {
    final messageData = utf8.encode(message);
    final concat = Uint8List.fromList(messageData);
    String signature = EthSigUtil.signPersonalMessage(
        privateKey: _wallet.privateKey, message: concat);
    return Future.value(signature);
  }
}
class _InnerWallet extends web3mq.Wallet {
  String privateKey;
  String get address => _getAddressFromPrivateKey(privateKey);
  _InnerWallet.fromPrivateKey(this.privateKey)
      /// The _InnerWallet only support eip155:1 chain.
      : super(['eip155:1:${_getAddressFromPrivateKey(privateKey)}']);
  static String _getAddressFromPrivateKey(String privateKey) {
    return EthPrivateKey(Uint8List.fromList(hexToBytes(privateKey)))
        .address
        .hex;
  }
}