// 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 blockchainBlockKey() {
// Connecta ao HSM
const conn = await hsm.connect(options);

// Nome do chave
const keyName = "myBlockchainUnblockedKey";

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

// Verifica se a chave foi criada
if (created) {
console.log(`Key "${keyName}" created successfull`);

// Bloqueia a chave
const blocked = await conn.blockchain.block(keyName);
if (blocked) {
console.log(`Key "${keyName}" blocked successfull`);

// Desbloqueia a chave
const unblocked = await conn.blockchain.unblock(keyName);
if (unblocked) {
console.log(`Key "${keyName}" unblocked successfull`);
} else {
console.log(`Key "${keyName}" not unblocked`);
}
} else {
console.log(`Key "${keyName}" not blocked`);
}
} else {
console.log("Key not created");
}

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

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