calcular-hash.ts•1.56 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: unknown) {
// 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 as Error).message}`);
}
}