persist wallet creation date when created
This commit is contained in:
parent
036f40e861
commit
a6b8723ebe
@ -374,6 +374,11 @@ public class User implements PersistedDataHost {
|
|||||||
requestPersistence();
|
requestPersistence();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setWalletCreationDate(long walletCreationDate) {
|
||||||
|
userPayload.setWalletCreationDate(walletCreationDate);
|
||||||
|
requestPersistence();
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Getters
|
// Getters
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -521,4 +526,8 @@ public class User implements PersistedDataHost {
|
|||||||
public Cookie getCookie() {
|
public Cookie getCookie() {
|
||||||
return userPayload.getCookie();
|
return userPayload.getCookie();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getWalletCreationDate() {
|
||||||
|
return userPayload.getWalletCreationDate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,6 +82,7 @@ public class UserPayload implements PersistableEnvelope {
|
|||||||
// Generic map for persisting various UI states. We keep values un-typed as string to
|
// Generic map for persisting various UI states. We keep values un-typed as string to
|
||||||
// provide sufficient flexibility.
|
// provide sufficient flexibility.
|
||||||
private Cookie cookie = new Cookie();
|
private Cookie cookie = new Cookie();
|
||||||
|
private long walletCreationDate;
|
||||||
|
|
||||||
public UserPayload() {
|
public UserPayload() {
|
||||||
}
|
}
|
||||||
@ -122,6 +123,7 @@ public class UserPayload implements PersistableEnvelope {
|
|||||||
.ifPresent(e -> builder.addAllAcceptedRefundAgents(ProtoUtil.collectionToProto(acceptedRefundAgents,
|
.ifPresent(e -> builder.addAllAcceptedRefundAgents(ProtoUtil.collectionToProto(acceptedRefundAgents,
|
||||||
message -> ((protobuf.StoragePayload) message).getRefundAgent())));
|
message -> ((protobuf.StoragePayload) message).getRefundAgent())));
|
||||||
Optional.ofNullable(cookie).ifPresent(e -> builder.putAllCookie(cookie.toProtoMessage()));
|
Optional.ofNullable(cookie).ifPresent(e -> builder.putAllCookie(cookie.toProtoMessage()));
|
||||||
|
builder.setWalletCreationDate(walletCreationDate);
|
||||||
return protobuf.PersistableEnvelope.newBuilder().setUserPayload(builder).build();
|
return protobuf.PersistableEnvelope.newBuilder().setUserPayload(builder).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,7 +155,8 @@ public class UserPayload implements PersistableEnvelope {
|
|||||||
proto.getAcceptedRefundAgentsList().isEmpty() ? new ArrayList<>() : new ArrayList<>(proto.getAcceptedRefundAgentsList().stream()
|
proto.getAcceptedRefundAgentsList().isEmpty() ? new ArrayList<>() : new ArrayList<>(proto.getAcceptedRefundAgentsList().stream()
|
||||||
.map(RefundAgent::fromProto)
|
.map(RefundAgent::fromProto)
|
||||||
.collect(Collectors.toList())),
|
.collect(Collectors.toList())),
|
||||||
Cookie.fromProto(proto.getCookieMap())
|
Cookie.fromProto(proto.getCookieMap()),
|
||||||
|
proto.getWalletCreationDate()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import haveno.core.trade.MakerTrade;
|
|||||||
import haveno.core.trade.Trade;
|
import haveno.core.trade.Trade;
|
||||||
import haveno.core.trade.TradeManager;
|
import haveno.core.trade.TradeManager;
|
||||||
import haveno.core.user.Preferences;
|
import haveno.core.user.Preferences;
|
||||||
|
import haveno.core.user.User;
|
||||||
import haveno.core.xmr.listeners.XmrBalanceListener;
|
import haveno.core.xmr.listeners.XmrBalanceListener;
|
||||||
import haveno.core.xmr.model.XmrAddressEntry;
|
import haveno.core.xmr.model.XmrAddressEntry;
|
||||||
import haveno.core.xmr.model.XmrAddressEntryList;
|
import haveno.core.xmr.model.XmrAddressEntryList;
|
||||||
@ -60,6 +61,9 @@ import org.slf4j.LoggerFactory;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneOffset;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -109,6 +113,7 @@ public class XmrWalletService {
|
|||||||
private static final boolean PRINT_STACK_TRACE = false;
|
private static final boolean PRINT_STACK_TRACE = false;
|
||||||
private static final String THREAD_ID = XmrWalletService.class.getSimpleName();
|
private static final String THREAD_ID = XmrWalletService.class.getSimpleName();
|
||||||
|
|
||||||
|
private final User user;
|
||||||
private final Preferences preferences;
|
private final Preferences preferences;
|
||||||
private final CoreAccountService accountService;
|
private final CoreAccountService accountService;
|
||||||
private final XmrConnectionService xmrConnectionService;
|
private final XmrConnectionService xmrConnectionService;
|
||||||
@ -135,13 +140,15 @@ public class XmrWalletService {
|
|||||||
private TaskLooper syncLooper = null;
|
private TaskLooper syncLooper = null;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
XmrWalletService(Preferences preferences,
|
XmrWalletService(User user,
|
||||||
|
Preferences preferences,
|
||||||
CoreAccountService accountService,
|
CoreAccountService accountService,
|
||||||
XmrConnectionService xmrConnectionService,
|
XmrConnectionService xmrConnectionService,
|
||||||
WalletsSetup walletsSetup,
|
WalletsSetup walletsSetup,
|
||||||
XmrAddressEntryList xmrAddressEntryList,
|
XmrAddressEntryList xmrAddressEntryList,
|
||||||
@Named(Config.WALLET_DIR) File walletDir,
|
@Named(Config.WALLET_DIR) File walletDir,
|
||||||
@Named(Config.WALLET_RPC_BIND_PORT) int rpcBindPort) {
|
@Named(Config.WALLET_RPC_BIND_PORT) int rpcBindPort) {
|
||||||
|
this.user = user;
|
||||||
this.preferences = preferences;
|
this.preferences = preferences;
|
||||||
this.accountService = accountService;
|
this.accountService = accountService;
|
||||||
this.xmrConnectionService = xmrConnectionService;
|
this.xmrConnectionService = xmrConnectionService;
|
||||||
@ -203,6 +210,15 @@ public class XmrWalletService {
|
|||||||
return wallet;
|
return wallet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the wallet creation date in seconds since epoch.
|
||||||
|
*
|
||||||
|
* @return the wallet creation date in seconds since epoch
|
||||||
|
*/
|
||||||
|
public long getWalletCreationDate() {
|
||||||
|
return user.getWalletCreationDate();
|
||||||
|
}
|
||||||
|
|
||||||
public void saveMainWallet() {
|
public void saveMainWallet() {
|
||||||
saveMainWallet(true);
|
saveMainWallet(true);
|
||||||
}
|
}
|
||||||
@ -787,6 +803,11 @@ public class XmrWalletService {
|
|||||||
wallet = openWalletRpc(walletConfig, rpcBindPort, isProxyApplied(wasWalletSynced));
|
wallet = openWalletRpc(walletConfig, rpcBindPort, isProxyApplied(wasWalletSynced));
|
||||||
} else if (xmrConnectionService.getConnection() != null && Boolean.TRUE.equals(xmrConnectionService.getConnection().isConnected())) {
|
} else if (xmrConnectionService.getConnection() != null && Boolean.TRUE.equals(xmrConnectionService.getConnection().isConnected())) {
|
||||||
wallet = createWalletRpc(walletConfig, rpcBindPort);
|
wallet = createWalletRpc(walletConfig, rpcBindPort);
|
||||||
|
|
||||||
|
// set wallet creation date to yesterday to guarantee complete restore
|
||||||
|
LocalDateTime localDateTime = LocalDate.now().atStartOfDay().minusDays(1);
|
||||||
|
long date = localDateTime.toEpochSecond(ZoneOffset.UTC);
|
||||||
|
user.setWalletCreationDate(date);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1756,6 +1756,7 @@ message UserPayload {
|
|||||||
repeated RefundAgent accepted_refund_agents = 14;
|
repeated RefundAgent accepted_refund_agents = 14;
|
||||||
RefundAgent registered_refund_agent = 15;
|
RefundAgent registered_refund_agent = 15;
|
||||||
map<string, string> cookie = 16;
|
map<string, string> cookie = 16;
|
||||||
|
int64 wallet_creation_date = 17;
|
||||||
}
|
}
|
||||||
|
|
||||||
message BlockChainExplorer {
|
message BlockChainExplorer {
|
||||||
|
Loading…
Reference in New Issue
Block a user