我正尝试使用nodejs和@emurgo/cardano-serialization-lib-nodejs库(CardanoWasm)生成地址和创建交易。 根据文档,我正在尝试以下操作:
const rootkey = CardanoWasm.Bip32PrivateKey.from_bip39_entropy(
Buffer.from(someEntropy, 'hex'), // entropy is generated from mnemonic
Buffer.from('')
);
const account = rootkey
.derive(harden(1852)) // harden is a function returning 0x80000000+arg
.derive(harden(1815))
.derive(harden(0));
const utxokey = account
.derive(0)
.derive(0)
.to_public();
const stake1 = account
.derive(2)
.derive(0)
.to_public();
const address = CardanoWasm.BaseAddress.new(
CardanoWasm.NetworkInfo.mainnet().network_id(),
CardanoWasm.StakeCredential.from_keyhash(utxokey.to_raw_key().hash()),
CardanoWasm.StakeCredential.from_keyhash(stakekey.to_raw_key().hash())
);
const addressBech32 = address.to_address().to_bech32();
所以,我的例子中addressBech32是一个真实的钱包公共地址。当我通过助记词将钱包导入到Guarda(例如)时,它可以正常工作。 但实际上什么是rootkey和account?在我的示例中,私钥和签名密钥是什么?我应该使用哪个密钥来签署交易并如何使用Cardano Wasm获取该密钥?如果我不想使用助记词,我应该使用哪个私钥来导入钱包?