generar-secreto.js•1.08 kB
/**
* Tool 1: Generate Transaction Secret
* Generates the secret for a private transaction
*/
import { txSecret } from '@mistcash/crypto';
import { GenerarSecretoTransaccionSchema } from '../utils/validation.js';
import { isValidStarknetAddress } from '../utils/provider.js';
export async function generarSecretoTransaccion(params) {
// Validate parameters
const validated = GenerarSecretoTransaccionSchema.parse(params);
// Additional validation
if (!isValidStarknetAddress(validated.recipient_address)) {
throw new Error(`Invalid recipient address format: ${validated.recipient_address}`);
}
try {
// Generate transaction secret using MIST.cash crypto
const secret = txSecret(validated.claiming_key, validated.recipient_address);
return {
success: true,
secret,
claiming_key: validated.claiming_key,
recipient_address: validated.recipient_address
};
}
catch (error) {
throw new Error(`Failed to generate transaction secret: ${error.message}`);
}
}