initialize method
Future<void>
initialize({
- required NetworkConfig defaultNetwork,
- required String privateKey,
- required EIP6963ProviderInfo providerInfo,
- List<
NetworkConfig> additionalNetworks = const [], - WalletDialogTheme? theme,
Implementation
Future<void> initialize({
required NetworkConfig defaultNetwork,
required String privateKey,
required EIP6963ProviderInfo providerInfo,
List<NetworkConfig> additionalNetworks = const [],
WalletDialogTheme? theme,
}) async {
// Configure dialog service theme
_dialogService.configureTheme(theme ?? WalletDialogTheme());
// Configure provider info
_eip6963ProviderInfo = providerInfo;
_updateNetwork(defaultNetwork);
// Initialize Web3 client
_web3client = Web3Client(
defaultNetwork.rpcUrls.first,
Client(),
);
// Initialize credentials
_credentials = EthPrivateKey.fromHex(privateKey);
// Initialize handlers
_txHandler = TransactionHandler(
_web3client!,
_credentials!,
int.parse(defaultNetwork.chainId.substring(2), radix: 16),
);
_signingHandler = SigningHandler(_credentials!);
// Setup initial state
_state = WalletState(
chainId: defaultNetwork.chainId,
address: getAddressFromPrivateKey(privateKey),
isConnected: getAddressFromPrivateKey(privateKey) !=
null, // Tự động connect khi private key hợp lệ
);
// Add networks
_addNetwork(defaultNetwork);
for (var network in additionalNetworks) {
_addNetwork(network);
}
}