@aut-labs/sdk
Version:
The TS/JS SDK package aims to make it easy for frontends/backends to integrate with Aut Smart Contracts
47 lines • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TransactionStore = exports.DeferredTransaction = void 0;
class DeferredTransaction {
constructor() {
this.promise = new Promise((resolve, reject) => {
this.resolve = resolve;
this.reject = reject;
this._timeout = setTimeout(() => {
this.reject(new Error("Transcation took longer than expected!"));
clearTimeout(this._timeout);
}, 5 * 60 * 1000);
});
}
clearTimeout() {
if (this._timeout) {
clearTimeout(this._timeout);
}
}
}
exports.DeferredTransaction = DeferredTransaction;
class TransactionStore {
constructor() {
this.map = new Map();
}
add(transactionId, promise) {
this.map.set(transactionId, promise);
}
resolve(transactionId, result) {
if (this.map.has(transactionId)) {
const deferredPromise = this.map.get(transactionId);
deferredPromise.resolve(result);
deferredPromise.clearTimeout();
this.map.delete(transactionId);
}
}
reject(transactionId, error) {
if (this.map.has(transactionId)) {
const deferredPromise = this.map.get(transactionId);
deferredPromise.reject(error);
deferredPromise.clearTimeout();
this.map.delete(transactionId);
}
}
}
exports.TransactionStore = TransactionStore;
//# sourceMappingURL=transaction.store.js.map