collectContractAddressIfNeeded method

  1. @visibleForTesting
String? collectContractAddressIfNeeded(
  1. String chainId,
  2. 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;
}