Alias un token con un espacio de nombres para que otros puedan hacer referencia a él de una manera más amigable al emitir transacciones.
Completa la sección de inicio.
Crear una nueva cuenta.
Cargue la cuenta con suficiente bitxor
para pagar las tarifas de transacción.
Creaa un token con una cuenta.
Registrar un espacio de nombres con la cuenta
Haga clic en �?strong>Espacio de nombres�?en el menú del lado izquierdo.
Haga clic en el icono de edición del espacio de nombres que desea vincular a un token. Haga clic en �?strong>Enlace�?
Seleccione �?strong>Vincular un token�?como tipo de alias. Seleccione el ID del token que desea conectar al espacio de nombres. Haz clic en �?strong>Enviar�? Verifique la información en la página siguiente e ingrese la contraseña de su billetera. Haga clic en �?strong>Confirmar�?
Puede comprobar que el token se ha vinculado yendo a la página �?strong>Token�? El nombre que se muestra para el token debe ser el espacio de nombres vinculado.
Abra un nuevo archivo y defina el identificador de espacio de nombres y el identificador de token que desea alias.
Note
The account signing the transaction must own the namespace and token being aliased.
// replace with namespace name
const namespaceId = new NamespaceId('foo');
// replace with token id
const tokenId = new TokenId('7cdf3b117a3c40cc');
// replace with namespace name
const namespaceId = new bitxor_sdk_1.NamespaceId('foo');
// replace with token id
const tokenId = new bitxor_sdk_1.TokenId('7cdf3b117a3c40cc');
Luego, anuncie la AliasTransaction que vincula el espacio de nombres y el token.
// replace with networkType
const networkType = NetworkType.TEST_NET;
const tokenAliasTransaction = AliasTransaction.createForToken(
Deadline.create(epochAdjustment),
AliasAction.Link,
namespaceId,
tokenId,
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(
tokenAliasTransaction,
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 networkType
const networkType = bitxor_sdk_1.NetworkType.TEST_NET;
const tokenAliasTransaction = bitxor_sdk_1.AliasTransaction.createForToken(
bitxor_sdk_1.Deadline.create(epochAdjustment),
bitxor_sdk_1.AliasAction.Link,
namespaceId,
tokenId,
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(
tokenAliasTransaction,
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
If you want to unlink the alias, change alias action type to AliasActionType.Unlink
.
Ahora puede enviar transacciones utilizando el espacio de nombres vinculado al token en lugar de definir el TokenId completo.
// replace with network type
const networkType = NetworkType.TEST_NET;
// replace with aliased tokenId
const tokenId = new NamespaceId('foo');
TransferTransaction.create(
Deadline.create(epochAdjustment),
Account.generateNewAccount(networkType).address,
[new Token(tokenId, UInt64.fromUint(10000000))],
EmptyMessage,
networkType,
UInt64.fromUint(2000000),
);
// replace with network type
const networkType = bitxor_sdk_1.NetworkType.TEST_NET;
// replace with aliased tokenId
const tokenId = new bitxor_sdk_1.NamespaceId('foo');
bitxor_sdk_1.TransferTransaction.create(
bitxor_sdk_1.Deadline.create(epochAdjustment),
bitxor_sdk_1.Account.generateNewAccount(networkType).address,
[new bitxor_sdk_1.Token(tokenId, bitxor_sdk_1.UInt64.fromUint(10000000))],
bitxor_sdk_1.EmptyMessage,
networkType,
bitxor_sdk_1.UInt64.fromUint(2000000),
);
final NetworkType networkType = repositoryFactory.getNetworkType().toFuture().get();
// replace with aliased token
final String namespaceName = "foo";
final NamespaceId tokenId = NamespaceId.createFromName(namespaceName);
TransferTransactionFactory
.create(
networkType,
Account.generateNewAccount(networkType).getAddress(),
Collections.singletonList(
new Token(tokenId, BigInteger.valueOf(10000000))),
PlainMessage.Empty)
.maxFee(BigInteger.valueOf(2000000)).build();
Para vincular un espacio de nombres y un token, abra una ventana de terminal y ejecute el siguiente comando.
Reemplace 7cdf3b117a3c40cc
con el identificador del token y foo
con el nombre del espacio de nombres que se vinculará.
bitxor-cli transaction tokenalias --action Link --token-id 7cdf3b117a3c40cc --namespace-name foo