Alias de una dirección con un espacio de nombres para que otros puedan hacer referencia a la cuenta de una manera más amigable al emitir transacciones.
Completar la sección de inicio.
Crear un nuevo account.
Cargue la cuenta con suficiente bitxor
para pagar las tarifas de transacción.
Registre un namespace con la cuenta.
Haga clic en “Espacios de nombres” en el menú del lado izquierdo.
Haga clic en el icono de edición del espacio de nombres que desea vincular a una cuenta. Seleccione “Vincular una dirección” como tipo de alias. Ingrese la dirección de la cuenta que desea vincular al espacio de nombres. Haz clic en “Enviar”.
Verifique la información en la página siguiente. Ingrese la contraseña de su billetera. Haga clic en “Confirmar”.
Si vinculó el espacio de nombres a su cuenta de billetera de escritorio, puede verificar yendo a la página “Cuenta” y revisando el “Alias”.
Abra un nuevo archivo y defina el identificador del espacio de nombres y la dirección a la que desea alias.
Note
La cuenta que firma la transacción debe ser propietaria del espacio de nombres.
// replace with namespace name
const namespaceId = new NamespaceId('foo');
// replace with address
const rawAddress = 'BXRBDE-NCLKEB-ILBPWP-3JPB2X-NY64OE-7PYHHE-32I';
const address = Address.createFromRawAddress(rawAddress);
// replace with namespace name
const namespaceId = new bitxor_sdk_1.NamespaceId('foo');
// replace with address
const rawAddress = 'BXRBDE-NCLKEB-ILBPWP-3JPB2X-NY64OE-7PYHHE-32I';
const address = bitxor_sdk_1.Address.createFromRawAddress(rawAddress);
Luego, anuncie la AliasTransaction que vincula el espacio de nombres y la dirección.
// replace with network type
const networkType = NetworkType.TEST_NET;
const addressAliasTransaction = AliasTransaction.createForAddress(
Deadline.create(epochAdjustment),
AliasAction.Link,
namespaceId,
address,
networkType,
UInt64.fromUint(2000000),
);
// replace with private key
const privateKey =
'1111111111111111111111111111111111111111111111111111111111111111';
const account = Account.createFromPrivateKey(privateKey, networkType);
// replace with meta.networkGenerationHash (nodeUrl + '/node/info')
const networkGenerationHash =
'1DFB2FAA9E7F054168B0C5FCB84F4DEB62CC2B4D317D861F3168D161F54EA78B';
const signedTransaction = account.sign(
addressAliasTransaction,
networkGenerationHash,
);
// replace with node endpoint
const nodeUrl = 'NODE_URL';
const repositoryFactory = new RepositoryFactoryHttp(nodeUrl);
const transactionHttp = repositoryFactory.createTransactionRepository();
transactionHttp.announce(signedTransaction).subscribe(
(x) => console.log(x),
(err) => console.error(err),
);
// replace with network type
const networkType = bitxor_sdk_1.NetworkType.TEST_NET;
const addressAliasTransaction = bitxor_sdk_1.AliasTransaction.createForAddress(
bitxor_sdk_1.Deadline.create(epochAdjustment),
bitxor_sdk_1.AliasAction.Link,
namespaceId,
address,
networkType,
bitxor_sdk_1.UInt64.fromUint(2000000),
);
// replace with private key
const privateKey =
'1111111111111111111111111111111111111111111111111111111111111111';
const account = bitxor_sdk_1.Account.createFromPrivateKey(
privateKey,
networkType,
);
// replace with meta.networkGenerationHash (nodeUrl + '/node/info')
const networkGenerationHash =
'1DFB2FAA9E7F054168B0C5FCB84F4DEB62CC2B4D317D861F3168D161F54EA78B';
const signedTransaction = account.sign(
addressAliasTransaction,
networkGenerationHash,
);
// replace with node endpoint
const nodeUrl = 'NODE_URL';
const repositoryFactory = new bitxor_sdk_1.RepositoryFactoryHttp(nodeUrl);
const transactionHttp = repositoryFactory.createTransactionRepository();
transactionHttp.announce(signedTransaction).subscribe(
(x) => console.log(x),
(err) => console.error(err),
);
Note
Si desea desvincular el alias, cambie el tipo de acción de alias a AliasActionType.Unlink
.
Ahora puede enviar transacciones al espacio de nombres vinculado a la cuenta en lugar de usar la dirección completa.
// Replace with network type
const networkType = NetworkType.TEST_NET;
// Replace with aliased address
const recipientAddress = new NamespaceId('foo');
TransferTransaction.create(
Deadline.create(epochAdjustment),
recipientAddress,
[],
EmptyMessage,
networkType,
UInt64.fromUint(2000000),
);
// Replace with network type
const networkType = bitxor_sdk_1.NetworkType.TEST_NET;
// Replace with aliased address
const recipientAddress = new bitxor_sdk_1.NamespaceId('foo');
bitxor_sdk_1.TransferTransaction.create(
bitxor_sdk_1.Deadline.create(epochAdjustment),
recipientAddress,
[],
bitxor_sdk_1.EmptyMessage,
networkType,
bitxor_sdk_1.UInt64.fromUint(2000000),
);
final NetworkType networkType = repositoryFactory.getNetworkType().toFuture().get();
// replace with aliased address
final String namespaceName = "foo";
final UnresolvedAddress recipientAddress = NamespaceId.createFromName(namespaceName);
TransferTransactionFactory
.create(
networkType,
recipientAddress,
Collections.emptyList(),
PlainMessage.Empty)
.maxFee(BigInteger.valueOf(2000000)).build();
Para vincular un espacio de nombres y una dirección, abra una ventana de terminal y ejecute el siguiente comando.
Reemplace BXRBDE-NCLKEB-ILBPWP-3JPB2X-NY64OE-7PYHHE-32I
con la dirección de la cuenta y foo
con el nombre del espacio de nombres que se vinculará.
Note
La cuenta que firma la transacción debe ser propietaria del espacio de nombres.
bitxor-cli transaction addressalias --action Link --address BXRBDE-NCLKEB-ILBPWP-3JPB2X-NY64OE-7PYHHE-32I --namespace-name foo