calcular-hash.js•1.43 kB
/**
* Tool 4: Calculate Transaction Hash
* Computes the unique hash of a transaction
*/
import { txHash } from '@mistcash/crypto';
import { CalcularHashTransaccionSchema } from '../utils/validation.js';
import { isValidStarknetAddress } from '../utils/provider.js';
export async function calcularHashTransaccion(params) {
// Validate parameters
const validated = CalcularHashTransaccionSchema.parse(params);
// Additional validation for addresses
if (!isValidStarknetAddress(validated.recipient_address)) {
throw new Error(`Invalid recipient address format: ${validated.recipient_address}`);
}
if (!isValidStarknetAddress(validated.token_address)) {
throw new Error(`Invalid token address format: ${validated.token_address}`);
}
try {
// Compute transaction hash using MIST.cash crypto
const hash = txHash(validated.transaction_key, validated.recipient_address, validated.token_address, validated.amount);
return {
success: true,
hash,
transaction_details: {
transaction_key: validated.transaction_key,
recipient_address: validated.recipient_address,
token_address: validated.token_address,
amount: validated.amount
}
};
}
catch (error) {
throw new Error(`Failed to calculate transaction hash: ${error.message}`);
}
}