SDK de Go - Crear y Gestionar Cuentas
Hay varias formas de generar credenciales de cuenta usando el SDK de Go. Puedes usar:
aptos.NewEd25519Account()
aptos.NewSecp256k1Account()
aptos.NewEd25519SingleSenderAccount()
aptos.NewAccountFromSigner()
Account.NewEd25519Account()
es el método más comúnmente usado para crear claves
para una nueva cuenta. Por defecto usa tipos de clave ED25519
, pero también puedes especificar
qué esquema de firma prefieres así:
// Para derivar una cuenta ed25519account1 := aptos.NewEd25519Account()
// Para derivar una cuenta secp256k1account2 := aptos.NewSecp256k1Account()
Una vez que hayas generado credenciales, debes financiarla para que la red sepa que existe.
En entornos de devnet esto se puede hacer con un faucet ejecutando el siguiente comando:
client, err = aptos.NewClient(aptos.DevnetConfig)if err != nil { panic("Failed to create client:" + err.Error())}
// Financiar una cuenta con 1 APT de Devnetclient.Fund(account1.Address, 100_000_000)
En testnet puedes acuñar en la página de acuñación.
Otras Formas de Representar Cuentas
Sección titulada «Otras Formas de Representar Cuentas»Si tienes una clave privada, o representación equivalente, puedes usar eso para
crear una estructura Account
para gestionar esas credenciales mientras usas el SDK de Go.
Aquí hay varios ejemplos que muestran cómo hacerlo con esquemas de codificación específicos.
Derivar una cuenta desde clave privada
Sección titulada «Derivar una cuenta desde clave privada»El SDK soporta derivar una cuenta desde una clave privada con el método NewAccountFromSigner()
.
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 Ed25519privateKey := &aptos.Ed25519PrivateKey{}err := privateKey.FromHex(privateKeyHex)if err != nil { panic("Failed to parse private key:" + err.Error())}account := aptos.NewAccountFromSigner(privateKey)
// para derivar una cuenta con un esquema de clave Single Sender Ed25519privateKey := &aptos.Ed25519PrivateKey{}err := privateKey.FromHex(privateKeyHex)if err != nil { panic("Failed to parse private key:" + err.Error())}singleSigner := &crypto.SingleSigner{Signer: privateKey}account := aptos.NewAccountFromSigner(singleSigner)
// para derivar una cuenta con un esquema de clave Single Sender Secp256k1privateKey := &aptos.Secp256k1PrivateKey{}err := privateKey.FromHex(privateKeyHex)if err != nil { panic("Failed to parse private key:" + err.Error())}singleSigner := &crypto.SingleSigner{Signer: privateKey}account := aptos.NewAccountFromSigner(singleSigner)
// para derivar una cuenta con una clave privada y dirección de cuentaaddress := &aptos.AccountAddress{}err := address.ParseStringRelaxed(addressHex)if err != nil { panic("Failed to parse address:" + err.Error())}privateKey := &aptos.Ed25519PrivateKey{}err := privateKey.FromHex(privateKeyHex)if err != nil { panic("Failed to parse private key:" + err.Error())}account := aptos.NewAccountFromSigner(privateKey, address.AuthKey())