@radixdlt/account
Version:
A JavaScript client library for interacting with the Radix Distributed Ledger.
38 lines (32 loc) • 1 kB
text/typescript
import { UInt256 } from '@radixdlt/uint256'
import { Mnemonic, PrivateKey } from '@radixdlt/crypto'
import { SigningKeychain, SigningKeychainT } from '../src'
export const makeSigningKeyChainWithFunds = (): SigningKeychainT => {
const signingKeychain = SigningKeychain.create({
startWithInitialSigningKey: false,
mnemonic: Mnemonic.generateNew(), // not used,
})
const addPK = (privateKeyScalar: number): void => {
const privateKey = PrivateKey.fromScalar(
UInt256.valueOf(privateKeyScalar),
)._unsafeUnwrap()
signingKeychain.addSigningKeyFromPrivateKey({
privateKey,
alsoSwitchTo: true,
name: `SigningKey with funds, privateKey: ${privateKeyScalar}`,
})
}
addPK(1)
addPK(2)
addPK(3)
addPK(4)
addPK(5)
signingKeychain.switchSigningKey('first')
if (
signingKeychain.__unsafeGetSigningKey().publicKey.toString(true) !==
'0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'
) {
throw new Error('incorrect imple')
}
return signingKeychain
}