mirror of
https://github.com/transatoshi-mw/grin-web-wallet.git
synced 2025-10-06 15:52:47 +00:00
133 lines
3.0 KiB
JavaScript
Executable File
133 lines
3.0 KiB
JavaScript
Executable File
// Use strict
|
|
"use strict";
|
|
|
|
|
|
// Classes
|
|
|
|
// Initial heights obtained class
|
|
class InitialHeightsObtained {
|
|
|
|
// Public
|
|
|
|
// Constructor
|
|
constructor(node) {
|
|
|
|
// Create database
|
|
Database.createDatabase(function(database, currentVersion, databaseTransaction) {
|
|
|
|
// Create or get initial heights obtained object store
|
|
var initialHeightsObtainedObjectStore = (currentVersion === Database.NO_CURRENT_VERSION) ? database.createObjectStore(InitialHeightsObtained.OBJECT_STORE_NAME, {
|
|
|
|
// Key path
|
|
"keyPath": [
|
|
|
|
// Wallet type
|
|
Database.toKeyPath(InitialHeightsObtained.DATABASE_WALLET_TYPE_NAME),
|
|
|
|
// Network type
|
|
Database.toKeyPath(InitialHeightsObtained.DATABASE_NETWORK_TYPE_NAME)
|
|
]
|
|
|
|
}) : databaseTransaction.objectStore(InitialHeightsObtained.OBJECT_STORE_NAME);
|
|
});
|
|
}
|
|
|
|
// Get obtained
|
|
getObtained() {
|
|
|
|
// Return promise
|
|
return new Promise(function(resolve, reject) {
|
|
|
|
// Return getting the initial heights obtained with the wallet type and network type in the database
|
|
return Database.getResults(InitialHeightsObtained.OBJECT_STORE_NAME, 0, 1, Database.NO_INDEX, IDBKeyRange.only([
|
|
|
|
// Wallet type
|
|
Consensus.getWalletType(),
|
|
|
|
// Network type
|
|
Consensus.getNetworkType(),
|
|
|
|
])).then(function(results) {
|
|
|
|
// Check if initial heights were obtained
|
|
if(results["length"] !== 0) {
|
|
|
|
// Resolve true
|
|
resolve(true);
|
|
}
|
|
|
|
// Otherwise
|
|
else {
|
|
|
|
// Resolve false
|
|
resolve(false);
|
|
}
|
|
|
|
// Catch errors
|
|
}).catch(function(error) {
|
|
|
|
// Reject error
|
|
reject("The database failed.");
|
|
});
|
|
});
|
|
}
|
|
|
|
// Set obtained
|
|
setObtained() {
|
|
|
|
// Return promise
|
|
return new Promise(function(resolve, reject) {
|
|
|
|
// Save initial heights obtained for the wallet type and network type in the database
|
|
Database.saveResults(InitialHeightsObtained.OBJECT_STORE_NAME, [{
|
|
|
|
// Wallet type
|
|
[Database.toKeyPath(InitialHeightsObtained.DATABASE_WALLET_TYPE_NAME)]: Consensus.getWalletType(),
|
|
|
|
// Network type
|
|
[Database.toKeyPath(InitialHeightsObtained.DATABASE_NETWORK_TYPE_NAME)]: Consensus.getNetworkType()
|
|
|
|
}], [], Database.CREATE_NEW_TRANSACTION, Database.STRICT_DURABILITY).then(function() {
|
|
|
|
// Resolve
|
|
resolve();
|
|
|
|
// Catch errors
|
|
}).catch(function(error) {
|
|
|
|
// Reject error
|
|
reject("The database failed.");
|
|
});
|
|
});
|
|
}
|
|
|
|
// Private
|
|
|
|
// Object store name
|
|
static get OBJECT_STORE_NAME() {
|
|
|
|
// Return object store name
|
|
return "Initial Heights Obtained";
|
|
}
|
|
|
|
// Database wallet type name
|
|
static get DATABASE_WALLET_TYPE_NAME() {
|
|
|
|
// Return database wallet type name
|
|
return "Wallet Type";
|
|
}
|
|
|
|
// Database network type name
|
|
static get DATABASE_NETWORK_TYPE_NAME() {
|
|
|
|
// Return database network type name
|
|
return "Network Type";
|
|
}
|
|
}
|
|
|
|
|
|
// Main function
|
|
|
|
// Set global object's initial heights obtained
|
|
globalThis["InitialHeightsObtained"] = InitialHeightsObtained;
|