Saltearse al contenido

Crear y Gestionar Cuentas

Hay varias formas de generar credenciales de cuenta usando el SDK de TypeScript. Puedes usar:

  • Account.generate()
  • Account.fromPrivateKey()
  • Account.fromDerivationPath()

Account.generate() es el método más comúnmente usado para crear claves para una nueva cuenta. Por defecto usa codificaciones de clave ED25519, pero también puedes especificar manualmente qué esquema de firma prefieres así:

const account = Account.generate(); // por defecto Legacy Ed25519
const account = Account.generate({ scheme: SigningSchemeInput.Secp256k1Ecdsa }); // Single Sender Secp256k1
const account = Account.generate({
scheme: SigningSchemeInput.Ed25519,
legacy: false,
}); // Single Sender Ed25519

Una vez que hayas generado credenciales, debes financiarla para que la red sepa que existe.

En localnet / devnet esto se puede hacer con un faucet ejecutando el siguiente comando:

const transaction = await aptos.fundAccount({
accountAddress: account.accountAddress,
amount: 100,
});

Para testnet puedes usar la página de acuñación aquí.

Si tienes una clave privada, o representación equivalente, puedes usar eso para crear un objeto Account para gestionar esas credenciales mientras usas el SDK de TypeScript.

Aquí hay varios ejemplos que muestran cómo hacerlo con esquemas de codificación específicos.

El SDK soporta derivar una cuenta desde una clave privada con el método estático fromPrivateKey(). Además, este método soporta derivar una cuenta desde una clave privada y dirección de cuenta. Este método usa un cálculo local y por lo tanto se usa para derivar una Account que no ha tenido su clave de autenticación rotada.

// para derivar una cuenta con un esquema de clave legacy Ed25519
const privateKey = new Ed25519PrivateKey(privateKeyBytes);
const account = Account.fromPrivateKey({ privateKey });
// para derivar una cuenta con un esquema de clave Single Sender Ed25519
const privateKey = new Ed25519PrivateKey(privateKeyBytes);
const account = Account.fromPrivateKey({ privateKey, legacy: false });
// para derivar una cuenta con un esquema de clave Single Sender Secp256k1
const privateKey = new Secp256k1PrivateKey(privateKeyBytes);
const account = Account.fromPrivateKey({ privateKey });
// para derivar una cuenta con una clave privada y dirección de cuenta
const privateKey = new Ed25519PrivateKey(privateKeyBytes);
const address = AccountAddress.from(address);
const account = Account.fromPrivateKey({ privateKey, address });

Derivar una cuenta desde path de derivación

Sección titulada «Derivar una cuenta desde path de derivación»

El SDK soporta derivar una cuenta desde path de derivación con el método estático fromDerivationPath().

// para derivar una cuenta con un esquema de clave legacy Ed25519
const { mnemonic, address, path } = wallet;
const account = Account.fromDerivationPath({
path,
mnemonic,
scheme: SigningSchemeInput.Ed25519,
});
// para derivar una cuenta con un esquema de clave Single Sender Ed25519
const { mnemonic, address, path } = wallet;
const account = Account.fromDerivationPath({
path,
mnemonic,
scheme: SigningSchemeInput.Ed25519,
legacy: false,
});
// para derivar una cuenta con un esquema de clave Single Sender Secp256k1
const { mnemonic, address, path } = wallet;
const account = Account.fromDerivationPath({
path,
mnemonic,
scheme: SigningSchemeInput.Secp256k1Ecdsa,
});