use of io.nuls.account.model.Account in project nuls by nuls-io.
the class AccountBaseService method setRemark.
public Result setRemark(String address, String remark) {
if (!AddressTool.validAddress(address)) {
return Result.getFailed(AccountErrorCode.ADDRESS_ERROR);
}
Account account = accountService.getAccount(address).getData();
if (null == account) {
return Result.getFailed(AccountErrorCode.ACCOUNT_NOT_EXIST);
}
if (StringUtils.isBlank(remark)) {
remark = null;
}
if (!StringUtils.validRemark(remark)) {
return Result.getFailed(AccountErrorCode.NICKNAME_TOO_LONG);
}
account.setRemark(remark);
Result result = accountStorageService.updateAccount(new AccountPo(account));
if (result.isFailed()) {
return Result.getFailed(AccountErrorCode.FAILED);
}
accountCacheService.localAccountMaps.put(account.getAddress().getBase58(), account);
return Result.getSuccess().setData(true);
}
use of io.nuls.account.model.Account in project nuls by nuls-io.
the class AccountBaseService method setPassword.
/**
* 设置密码
* Set password (Encryption account)
*
* @param address
* @param password
* @return
*/
public Result setPassword(String address, String password) {
if (!AddressTool.validAddress(address)) {
return Result.getFailed(AccountErrorCode.ADDRESS_ERROR);
}
if (StringUtils.isBlank(password)) {
return Result.getFailed(AccountErrorCode.NULL_PARAMETER);
}
if (!StringUtils.validPassword(password)) {
return Result.getFailed(AccountErrorCode.PASSWORD_FORMAT_WRONG);
}
Account account = accountService.getAccount(address).getData();
if (null == account) {
return Result.getFailed(AccountErrorCode.ACCOUNT_NOT_EXIST);
}
if (account.isEncrypted()) {
return Result.getFailed(AccountErrorCode.ACCOUNT_IS_ALREADY_ENCRYPTED);
}
try {
account.encrypt(password);
Result result = accountStorageService.updateAccount(new AccountPo(account));
if (result.isFailed()) {
return Result.getFailed(AccountErrorCode.FAILED);
}
accountCacheService.localAccountMaps.put(account.getAddress().getBase58(), account);
} catch (NulsException e) {
Log.error(e);
return Result.getFailed(AccountErrorCode.FAILED);
}
return Result.getSuccess().setData(true);
}
use of io.nuls.account.model.Account in project nuls by nuls-io.
the class AccountBaseService method changePassword.
/**
* 根据原密码修改账户密码
* Change the account password according to the current password
*
* @param oldPassword
* @param newPassword
* @return
*/
public Result changePassword(String address, String oldPassword, String newPassword) {
if (!AddressTool.validAddress(address)) {
return Result.getFailed(AccountErrorCode.ADDRESS_ERROR);
}
if (StringUtils.isBlank(oldPassword)) {
return Result.getFailed(AccountErrorCode.PARAMETER_ERROR);
}
if (StringUtils.isBlank(newPassword)) {
return Result.getFailed(AccountErrorCode.PARAMETER_ERROR);
}
if (!StringUtils.validPassword(oldPassword)) {
return Result.getFailed(AccountErrorCode.PASSWORD_FORMAT_WRONG);
}
if (!StringUtils.validPassword(newPassword)) {
return Result.getFailed(AccountErrorCode.PASSWORD_FORMAT_WRONG);
}
Account account = accountService.getAccount(address).getData();
if (null == account) {
return Result.getFailed(AccountErrorCode.ACCOUNT_NOT_EXIST);
}
try {
if (!account.isEncrypted()) {
return Result.getFailed(AccountErrorCode.ACCOUNT_UNENCRYPTED);
}
if (!account.validatePassword(oldPassword)) {
return Result.getFailed(AccountErrorCode.PASSWORD_IS_WRONG);
}
account.unlock(oldPassword);
account.encrypt(newPassword, true);
AccountPo po = new AccountPo(account);
Result result = accountStorageService.updateAccount(po);
if (result.isFailed()) {
return Result.getFailed(AccountErrorCode.FAILED);
}
accountCacheService.localAccountMaps.put(account.getAddress().getBase58(), account);
return result.setData(true);
} catch (NulsException e) {
Log.error(e);
return Result.getFailed(e.getErrorCode());
}
}
use of io.nuls.account.model.Account in project nuls by nuls-io.
the class AliasService method getAliasFee.
/**
* 获取设置别名交易手续费
* Gets to set the alias transaction fee
*
* @param address
* @param aliasName
* @return
*/
public Result<Na> getAliasFee(String address, String aliasName) {
if (!AddressTool.validAddress(address)) {
Result.getFailed(AccountErrorCode.ADDRESS_ERROR);
}
Account account = accountService.getAccount(address).getData();
if (null == account) {
return Result.getFailed(AccountErrorCode.ACCOUNT_NOT_EXIST);
}
if (!account.isOk()) {
return Result.getFailed(AccountErrorCode.IMPORTING_ACCOUNT);
}
byte[] addressBytes = account.getAddress().getAddressBytes();
try {
// 创建一笔设置别名的交易
AliasTransaction tx = new AliasTransaction();
tx.setTime(TimeService.currentTimeMillis());
Alias alias = new Alias(addressBytes, aliasName);
tx.setTxData(alias);
CoinDataResult coinDataResult = accountLedgerService.getCoinData(addressBytes, AccountConstant.ALIAS_NA, tx.size(), TransactionFeeCalculator.OTHER_PRICE_PRE_1024_BYTES);
if (!coinDataResult.isEnough()) {
return Result.getFailed(AccountErrorCode.INSUFFICIENT_BALANCE);
}
CoinData coinData = new CoinData();
coinData.setFrom(coinDataResult.getCoinList());
Coin change = coinDataResult.getChange();
if (null != change) {
// 创建toList
List<Coin> toList = new ArrayList<>();
toList.add(change);
coinData.setTo(toList);
}
Coin coin = new Coin(NulsConstant.BLACK_HOLE_ADDRESS, Na.parseNuls(1), 0);
coinData.addTo(coin);
tx.setCoinData(coinData);
Na fee = TransactionFeeCalculator.getMaxFee(tx.size());
return Result.getSuccess().setData(fee);
} catch (Exception e) {
Log.error(e);
return Result.getFailed(KernelErrorCode.SYS_UNKOWN_EXCEPTION);
}
}
use of io.nuls.account.model.Account in project nuls by nuls-io.
the class ContractBalanceManager method initAllTokensForAllAccounts.
public void initAllTokensForAllAccounts() {
Result<Collection<Account>> result = accountService.getAccountList();
if (result.isFailed()) {
return;
}
Result<List<ContractAddressInfoPo>> allContractInfoListResult = contractAddressStorageService.getAllNrc20ContractInfoList();
if (allContractInfoListResult.isFailed()) {
return;
}
List<ContractAddressInfoPo> contractAddressInfoPoList = allContractInfoListResult.getData();
Collection<Account> list = result.getData();
for (Account account : list) {
Address address = account.getAddress();
String addressStr = address.getBase58();
for (ContractAddressInfoPo po : contractAddressInfoPoList) {
initialContractToken(addressStr, AddressTool.getStringAddressByBytes(po.getContractAddress()));
}
}
}
Aggregations