我正在尝试使用 nodejs 和 @emurgo/cardano-serialization-lib-nodejs lib (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 获取该密钥?我应该使用什么私钥来导入钱包(如果我出于某种原因不想使用助记符)?