Search in sources :

Example 61 with Account

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);
}
Also used : Account(io.nuls.account.model.Account) AccountPo(io.nuls.account.storage.po.AccountPo) Result(io.nuls.kernel.model.Result)

Example 62 with Account

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);
}
Also used : Account(io.nuls.account.model.Account) NulsException(io.nuls.kernel.exception.NulsException) AccountPo(io.nuls.account.storage.po.AccountPo) Result(io.nuls.kernel.model.Result)

Example 63 with Account

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());
    }
}
Also used : Account(io.nuls.account.model.Account) NulsException(io.nuls.kernel.exception.NulsException) AccountPo(io.nuls.account.storage.po.AccountPo) Result(io.nuls.kernel.model.Result)

Example 64 with Account

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);
    }
}
Also used : Account(io.nuls.account.model.Account) MultiSigAccount(io.nuls.account.model.MultiSigAccount) AliasTransaction(io.nuls.account.tx.AliasTransaction) Alias(io.nuls.account.model.Alias) ArrayList(java.util.ArrayList) CoinDataResult(io.nuls.account.ledger.model.CoinDataResult) IOException(java.io.IOException) NulsException(io.nuls.kernel.exception.NulsException)

Example 65 with Account

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()));
        }
    }
}
Also used : ContractAddressInfoPo(io.nuls.contract.storage.po.ContractAddressInfoPo) Account(io.nuls.account.model.Account) Address(io.nuls.kernel.model.Address) LedgerUtil.asString(io.nuls.ledger.util.LedgerUtil.asString)

Aggregations

Account (io.nuls.account.model.Account)65 NulsException (io.nuls.kernel.exception.NulsException)38 MultiSigAccount (io.nuls.account.model.MultiSigAccount)30 CoinDataResult (io.nuls.account.ledger.model.CoinDataResult)28 IOException (java.io.IOException)28 NulsRuntimeException (io.nuls.kernel.exception.NulsRuntimeException)16 UnsupportedEncodingException (java.io.UnsupportedEncodingException)13 ECKey (io.nuls.core.tools.crypto.ECKey)12 ContractResult (io.nuls.contract.dto.ContractResult)11 Test (org.junit.Test)11 TransferTransaction (io.nuls.protocol.model.tx.TransferTransaction)9 TransactionDataResult (io.nuls.account.ledger.model.TransactionDataResult)7 ValidateResult (io.nuls.kernel.validate.ValidateResult)7 Agent (io.nuls.consensus.poc.protocol.entity.Agent)6 CancelDeposit (io.nuls.consensus.poc.protocol.entity.CancelDeposit)6 StopAgent (io.nuls.consensus.poc.protocol.entity.StopAgent)6 CancelDepositTransaction (io.nuls.consensus.poc.protocol.tx.CancelDepositTransaction)6 DepositTransaction (io.nuls.consensus.poc.protocol.tx.DepositTransaction)6 Result (io.nuls.kernel.model.Result)6 ArrayList (java.util.ArrayList)6