decodeParameters method

Map<String, dynamic>? decodeParameters(
  1. String hexData
)

Decode function parameters from transaction data

Implementation

Map<String, dynamic>? decodeParameters(String hexData) {
  final selector = hexData.substring(0, 10).toLowerCase();
  final inputs = _functionInputs[selector];
  final functionName = _functions[selector];

  if (inputs == null || functionName == null) {
    return null;
  }

  // Remove function selector to get parameter data
  final paramData = hexData.substring(10);

  try {
    final decodedParams = _decodeParameters(inputs, paramData);
    return {
      'function': functionName,
      'signature': _signatures[selector],
      'parameters': decodedParams,
    };
  } catch (e, stackTrace) {
    return {
      'function': functionName,
      'signature': _signatures[selector],
      'error': 'Failed to decode parameters: $e',
      'stackTrace': stackTrace.toString(),
      'rawData': '0x$paramData',
    };
  }
}