use of io.nuls.account.storage.po.AliasPo in project nuls by nuls-io.
the class AliasServiceTest method saveAlias.
@Test
public void saveAlias() {
List<Account> accounts = accountService.createAccount(1, "nuls123456").getData();
Account account = accounts.get(0);
Alias alias = new Alias(account.getAddress().getAddressBytes(), "lichao");
try {
assertTrue(aliasService.saveAlias(new AliasPo(alias)).isSuccess());
} catch (NulsException e) {
e.printStackTrace();
}
}
use of io.nuls.account.storage.po.AliasPo in project nuls by nuls-io.
the class AliasTxProcessor method conflictDetect.
/**
* 冲突检测
* 1.检测一个acount只能设置一个别名
* 2.检查是否多个交易设置了同样的别名
* conflictDetect
* 1.Detecting an acount can only set one alias.
* 2.Check if multiple aliasTransaction have the same alias.
*
* @param txList 需要检查的交易列表/A list of transactions to be checked.
*/
@Override
public ValidateResult conflictDetect(List<Transaction> txList) {
if (null == txList || txList.isEmpty()) {
return ValidateResult.getSuccessResult();
}
Set<String> aliasNames = new HashSet<>();
Set<String> accountAddress = new HashSet<>();
List<AliasPo> polist = this.aliasService.getAllAlias();
for (AliasPo po : polist) {
aliasNames.add(po.getAlias());
accountAddress.add(Hex.encode(po.getAddress()));
}
for (Transaction transaction : txList) {
if (transaction.getType() == AccountConstant.TX_TYPE_ACCOUNT_ALIAS) {
AliasTransaction aliasTransaction = (AliasTransaction) transaction;
Alias alias = aliasTransaction.getTxData();
if (!aliasNames.add(alias.getAlias())) {
return (ValidateResult) ValidateResult.getFailedResult(getClass().getName(), AccountErrorCode.ALIAS_CONFLICT).setData(aliasTransaction);
}
if (!accountAddress.add(Hex.encode(alias.getAddress()))) {
return (ValidateResult) ValidateResult.getFailedResult(getClass().getName(), AccountErrorCode.ACCOUNT_ALREADY_SET_ALIAS).setData(aliasTransaction);
}
}
}
return ValidateResult.getSuccessResult();
}
Aggregations