
io.nuls.base.api.provider.account.AccountServiceForRpc Maven / Gradle / Ivy
package io.nuls.base.api.provider.account;
import io.nuls.base.RPCUtil;
import io.nuls.base.api.provider.BaseReq;
import io.nuls.base.api.provider.BaseRpcService;
import io.nuls.base.api.provider.Provider;
import io.nuls.base.api.provider.Result;
import io.nuls.base.api.provider.account.facade.*;
import io.nuls.base.api.provider.transaction.facade.MultiSignTransferRes;
import io.nuls.base.basic.NulsByteBuffer;
import io.nuls.base.data.MultiSigAccount;
import io.nuls.core.constant.CommonCodeConstanst;
import io.nuls.core.constant.ErrorCode;
import io.nuls.core.log.Log;
import io.nuls.core.parse.MapUtils;
import io.nuls.core.rpc.model.ModuleE;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
/**
* @Author: zhoulijun
* @Time: 2019-03-06 14:41
* @Description: 功能描述
*/
@Provider(Provider.ProviderType.RPC)
public class AccountServiceForRpc extends BaseRpcService implements AccountService {
@Override
public Result createAccount(CreateAccountReq req) {
return _call("ac_createAccount", req, res -> {
List list = (List) res.get("list");
return success(list);
});
}
@Override
public Result backupAccount(BackupAccountReq req) {
return callReturnString("ac_exportAccountKeyStore", req, "path");
}
@Override
public Result getAccountKeyStore(KeyStoreReq req) {
return callReturnString("ac_exportKeyStoreJson", req, "keystore");
}
@Override
public Result importAccountByPrivateKey(ImportAccountByPrivateKeyReq req) {
return callReturnString("ac_importAccountByPriKey", req, "address");
}
@Override
public Result importAccountByKeyStore(ImportAccountByKeyStoreReq req) {
return callReturnString("ac_importAccountByKeystore", req, "address");
}
@Override
public Result importKeyStoreFiles(ImportKeyStoreFilesReq req) {
return _call("ac_importsKeyStoreFiles", req, res -> {
Boolean data = (Boolean) res.get("value");
return success(data);
});
}
@Override
public Result updatePassword(UpdatePasswordReq req) {
return _call("ac_updatePassword", req, res -> {
Boolean data = (Boolean) res.get("value");
return success(data);
});
}
@Override
public Result getAccountByAddress(GetAccountByAddressReq req) {
return _call("ac_getAccountByAddress", req, res -> {
if (res == null) {
return fail(RPC_ERROR_CODE, "account not found");
}
AccountInfo accountInfo = MapUtils.mapToBean(res, new AccountInfo());
return success(accountInfo);
});
}
@Override
public Result getMultiSignAccount(GetMultiSignAccountByAddressReq req) {
return _call("ac_getMultiSignAccount", req, res -> {
try {
String data = (String) res.get("value");
if(data == null){
return fail(CommonCodeConstanst.DATA_ERROR,"not found account");
}
byte[] bytes = RPCUtil.decode(data);
MultiSigAccount account = new MultiSigAccount();
account.parse(new NulsByteBuffer(bytes));
return success(account);
} catch (Exception e) {
Log.error("getMultiSignAccount fail", e);
return fail(CommonCodeConstanst.FAILED);
}
});
}
@Override
public Result getAccountList() {
return _call("ac_getAccountList", new BaseReq(), res -> {
try {
List list = MapUtils.mapsToObjects((List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy