collectContractAddressIfNeeded method
String?
collectContractAddressIfNeeded(
- String chainId,
- dynamic params
)
Implementation
@visibleForTesting
String? collectContractAddressIfNeeded(String chainId, dynamic params) {
// only EVM request could have `data` parameter for contract call
final namespace = NamespaceUtils.getNamespaceFromChain(chainId);
if (namespace == 'eip155') {
try {
final paramsMap = (params as List).first as Map<String, dynamic>;
final inputData = (paramsMap['input'] ?? paramsMap['data'])!;
if (EvmChainUtils.isValidContractData(inputData)) {
final contractAddress = paramsMap['to'] as String?;
return contractAddress;
}
} catch (e) {
core.logger.d(
'[$runtimeType] invalid contract data, skipping contractAddress collection',
);
}
}
return null;
}