De blockchain_eddsa_sign.js

// Importa o cliente Dinamo HSM
const {hsm} = require("@dinamonetworks/hsm-dinamo");

// Define os parâmetros de conexão com o HSM
const options = {
host: "127.0.0.1",
authUsernamePassword: {
username: "master",
password: "12345678"
}
};

async function edDsaSign() {
// Connecta ao HSM
const conn = await hsm.connect(options);

// Nome da chave
const keyName = "myEddsaKey";

// Cria uma chave
const key = await conn.blockchain.create(
keyName, // Nome da chave
hsm.enums.BLOCKCHAIN_KEYS.BIP32_ED25519_XPRV, // Tipo da chave
true, // Se a chave é exportável
true, // Se é temporária
hsm.enums.VERSION_OPTIONS.BIP32_MAIN_NET // Versão
);

// Dados para serem aplicados a hash
const dataToHash = Buffer.from("Data to hash");
// Geração de hash com base nos dados
const hashedData = await conn.blockchain.hashData(hsm.enums.BLOCKCHAIN_HASH_MODE.SHA256, dataToHash);

// Assina o hash
const signedHash = await conn.blockchain.edDsaSign(hsm.enums.BLOCKCHAIN_EdDSA_TYPE.SIG_XRP, keyName, hashedData);

// Hash assinado
console.log(signedHash);

// Desconecta do HSM
await conn.disconnect();
}

// Execute a função edDsaSign
edDsaSign();