decodeParameters method
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',
};
}
}