@unicitylabs/sphere-sdk 0.14.11-dev.3 → 0.14.11-dev.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/connect/index.cjs +1 -1
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +1 -1
- package/dist/connect/index.js.map +1 -1
- package/dist/core/index.cjs +23 -8
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.js +23 -8
- package/dist/core/index.js.map +1 -1
- package/dist/impl/browser/connect/index.cjs +1 -1
- package/dist/impl/browser/connect/index.cjs.map +1 -1
- package/dist/impl/browser/connect/index.js +1 -1
- package/dist/impl/browser/connect/index.js.map +1 -1
- package/dist/index.cjs +23 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +23 -8
- package/dist/index.js.map +1 -1
- package/dist/modules/payments-v2/index.cjs +23 -8
- package/dist/modules/payments-v2/index.cjs.map +1 -1
- package/dist/modules/payments-v2/index.js +23 -8
- package/dist/modules/payments-v2/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -2844,6 +2844,12 @@ var InventoryView = class {
|
|
|
2844
2844
|
release(tokenId) {
|
|
2845
2845
|
if (this.inFlight.delete(tokenId)) this.deps.emit("inventory:updated");
|
|
2846
2846
|
}
|
|
2847
|
+
/** Release a whole set as ONE change (per-token emitted 54 events per send). */
|
|
2848
|
+
releaseMany(tokenIds) {
|
|
2849
|
+
let changed = false;
|
|
2850
|
+
for (const tokenId of tokenIds) if (this.inFlight.delete(tokenId)) changed = true;
|
|
2851
|
+
if (changed) this.deps.emit("inventory:updated");
|
|
2852
|
+
}
|
|
2847
2853
|
pinned(tokenId) {
|
|
2848
2854
|
return this.deps.isPinned?.(tokenId) ?? false;
|
|
2849
2855
|
}
|
|
@@ -3153,7 +3159,7 @@ var logger = {
|
|
|
3153
3159
|
|
|
3154
3160
|
// modules/payments-v2/receive/Receive.ts
|
|
3155
3161
|
var ACK_BATCH_SIZE = 200;
|
|
3156
|
-
var REFRESH_INTERVAL_MS =
|
|
3162
|
+
var REFRESH_INTERVAL_MS = 2500;
|
|
3157
3163
|
var POLL_INTERVAL_MS = 3e4;
|
|
3158
3164
|
var ATTENTION_CLAIM_CONFLICT = "claim:conflict";
|
|
3159
3165
|
function receivedDedupKey(tokenId, stateHash) {
|
|
@@ -4082,6 +4088,16 @@ function parseAmount(raw) {
|
|
|
4082
4088
|
function supportsDeterministicMint(engine) {
|
|
4083
4089
|
return engine.deterministicMint === true;
|
|
4084
4090
|
}
|
|
4091
|
+
function makeSingleFlightRefresh(refresh) {
|
|
4092
|
+
let inFlight = false;
|
|
4093
|
+
return () => {
|
|
4094
|
+
if (inFlight) return;
|
|
4095
|
+
inFlight = true;
|
|
4096
|
+
void refresh().catch(() => void 0).finally(() => {
|
|
4097
|
+
inFlight = false;
|
|
4098
|
+
});
|
|
4099
|
+
};
|
|
4100
|
+
}
|
|
4085
4101
|
function composeFacadeParts(deps, hooks) {
|
|
4086
4102
|
const ownPubkeyBytes = hexToBytes(deps.ownPubkey);
|
|
4087
4103
|
const ledger = new ReservationLedger();
|
|
@@ -4203,11 +4219,10 @@ function buildReceive(deps, hooks, historyStore, heldStates, view) {
|
|
|
4203
4219
|
registry: deps.registry,
|
|
4204
4220
|
recordReceived: (record) => recordReceived(historyStore, record),
|
|
4205
4221
|
emit: (event, transfer) => deps.emit(event, transfer),
|
|
4206
|
-
//
|
|
4207
|
-
//
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
},
|
|
4222
|
+
// Single-flight: view.delta() enqueues on a strict-FIFO SerialChain, so
|
|
4223
|
+
// firing per throttle tick regardless of the last one builds a queue that
|
|
4224
|
+
// drains in a burst at the END — a slower version of the bug being fixed.
|
|
4225
|
+
refreshView: makeSingleFlightRefresh(() => view.delta()),
|
|
4211
4226
|
attention: (transferId, code, detail) => {
|
|
4212
4227
|
deps.emit(
|
|
4213
4228
|
"transfer:attention",
|
|
@@ -4652,7 +4667,7 @@ var PaymentsFacade = class {
|
|
|
4652
4667
|
settleFailure(transferId, coinId, releaseIds) {
|
|
4653
4668
|
this.ledger.cancel(transferId);
|
|
4654
4669
|
this.queue.clearExpectedChange(transferId);
|
|
4655
|
-
|
|
4670
|
+
this.view.releaseMany(releaseIds);
|
|
4656
4671
|
this.queue.notifyChange(coinId);
|
|
4657
4672
|
}
|
|
4658
4673
|
/** Open intent: sources stay reserved + in-flight (§5.2) until resume adopts them. */
|
|
@@ -4677,7 +4692,7 @@ var PaymentsFacade = class {
|
|
|
4677
4692
|
async refreshThenRelease(coinId, spentIds) {
|
|
4678
4693
|
try {
|
|
4679
4694
|
await this.view.delta();
|
|
4680
|
-
|
|
4695
|
+
this.view.releaseMany(spentIds);
|
|
4681
4696
|
} finally {
|
|
4682
4697
|
this.queue.notifyChange(coinId);
|
|
4683
4698
|
}
|