@payburner/keyburner-sidewinder-core
Version:
Core library for Keyburner Sidewinder
60 lines • 2.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MemoryGlobalAddressService = void 0;
class MemoryGlobalAddressService {
constructor() {
this.addresses = {};
}
sequenceKey(address, environment) {
return environment + '/' + address;
}
setEnvironmentAddressState(address, environment, sequence, txn_id) {
const self = this;
return new Promise((resolve, reject) => {
if (typeof self.addresses[this.sequenceKey(address, environment)] === 'undefined') {
if (sequence === 0) {
self.addresses[this.sequenceKey(address, environment)] = {
address: address,
environment: environment,
last_txn_id: 'NONE',
sequence: 0
};
resolve(true);
}
else {
console.log('FAIL HERE 1');
resolve(false);
}
}
else {
if (self.addresses[this.sequenceKey(address, environment)].sequence === sequence - 1) {
self.addresses[this.sequenceKey(address, environment)].sequence = sequence;
self.addresses[this.sequenceKey(address, environment)].last_txn_id = txn_id;
resolve(true);
}
else {
console.log('FAIL HERE 2:' + JSON.stringify(self.addresses, null, 2) + ' ' + address + ' ' + sequence);
resolve(false);
}
}
});
}
getEnvironmentAddressState(address, environment) {
const self = this;
return new Promise((resolve, reject) => {
if (typeof self.addresses[this.sequenceKey(address, environment)] === 'undefined') {
resolve({
address: address,
environment: environment,
last_txn_id: 'NONE',
sequence: 0
});
}
else {
resolve(self.addresses[this.sequenceKey(address, environment)]);
}
});
}
}
exports.MemoryGlobalAddressService = MemoryGlobalAddressService;
//# sourceMappingURL=MemoryGlobalAddressService.js.map