@openzeppelin/relayer-plugin-channels 0.12.0 → 0.13.0
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.
|
@@ -29,13 +29,13 @@ export declare const POOL: {
|
|
|
29
29
|
readonly MUTEX_RETRY_MAX_MS: 30;
|
|
30
30
|
};
|
|
31
31
|
export declare const TIME: {
|
|
32
|
-
readonly MAX_TIME_BOUND_OFFSET_SECONDS:
|
|
32
|
+
readonly MAX_TIME_BOUND_OFFSET_SECONDS: 60;
|
|
33
33
|
};
|
|
34
34
|
export declare const SIMULATION: {
|
|
35
35
|
readonly DEFAULT_FEE: "100";
|
|
36
36
|
readonly MIN_TIME_BOUND: 0;
|
|
37
|
-
readonly MAX_TIME_BOUND_OFFSET_SECONDS:
|
|
38
|
-
readonly MAX_FUTURE_TIME_BOUND_SECONDS:
|
|
37
|
+
readonly MAX_TIME_BOUND_OFFSET_SECONDS: 60;
|
|
38
|
+
readonly MAX_FUTURE_TIME_BOUND_SECONDS: 60;
|
|
39
39
|
readonly SIMULATION_AUTH_MODE: "enforce";
|
|
40
40
|
/** Minimum ledger margin required between latestLedger and auth signatureExpirationLedger. Must be > 1 since simulation already validates 1 ledger of validity. ~10s at ~5s/ledger. */
|
|
41
41
|
readonly MIN_SIGNATURE_EXPIRATION_LEDGER_BUFFER: 2;
|
package/dist/plugin/constants.js
CHANGED
|
@@ -38,14 +38,14 @@ exports.POOL = {
|
|
|
38
38
|
};
|
|
39
39
|
// Time Constants
|
|
40
40
|
exports.TIME = {
|
|
41
|
-
MAX_TIME_BOUND_OFFSET_SECONDS:
|
|
41
|
+
MAX_TIME_BOUND_OFFSET_SECONDS: 60,
|
|
42
42
|
};
|
|
43
43
|
// Simulation-related defaults
|
|
44
44
|
exports.SIMULATION = {
|
|
45
45
|
DEFAULT_FEE: '100',
|
|
46
46
|
MIN_TIME_BOUND: 0,
|
|
47
|
-
MAX_TIME_BOUND_OFFSET_SECONDS:
|
|
48
|
-
MAX_FUTURE_TIME_BOUND_SECONDS:
|
|
47
|
+
MAX_TIME_BOUND_OFFSET_SECONDS: 60,
|
|
48
|
+
MAX_FUTURE_TIME_BOUND_SECONDS: 60,
|
|
49
49
|
SIMULATION_AUTH_MODE: 'enforce',
|
|
50
50
|
/** Minimum ledger margin required between latestLedger and auth signatureExpirationLedger. Must be > 1 since simulation already validates 1 ledger of validity. ~10s at ~5s/ledger. */
|
|
51
51
|
MIN_SIGNATURE_EXPIRATION_LEDGER_BUFFER: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/plugin/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAe,MAAM,2BAA2B,CAAC;AASvE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AA0BxD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,WAAW,GACd;IAAE,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC,yBAAyB,EAAE,CAAA;CAAE,GAAG,IAAI,CAkB1E;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/plugin/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAe,MAAM,2BAA2B,CAAC;AASvE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AA0BxD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,WAAW,GACd;IAAE,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC,yBAAyB,EAAE,CAAA;CAAE,GAAG,IAAI,CAkB1E;AA2PD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAElE"}
|
package/dist/plugin/handler.js
CHANGED
|
@@ -132,6 +132,11 @@ async function handleFuncAuthSubmit(func, auth, ctx) {
|
|
|
132
132
|
}
|
|
133
133
|
catch (error) {
|
|
134
134
|
await (0, sequence_1.clearSequence)(ctx.kv, ctx.network, channelInfo.address);
|
|
135
|
+
if (error.code === 'WAIT_TIMEOUT' && poolLock) {
|
|
136
|
+
console.log(`[channels] Extending lock for WAIT_TIMEOUT error`);
|
|
137
|
+
await ctx.pool.extendLock(poolLock);
|
|
138
|
+
poolLock = undefined; // skip release in finally
|
|
139
|
+
}
|
|
135
140
|
throw error;
|
|
136
141
|
}
|
|
137
142
|
}
|
package/dist/plugin/pool.d.ts
CHANGED
|
@@ -27,6 +27,8 @@ export declare class ChannelPool {
|
|
|
27
27
|
acquire(options: AcquireOptions): Promise<PoolLock>;
|
|
28
28
|
private withGlobalMutex;
|
|
29
29
|
private tryLockAnyRelayer;
|
|
30
|
+
/** Extend the lock TTL if we still own it (e.g. after WAIT_TIMEOUT) */
|
|
31
|
+
extendLock(lock: PoolLock, ttlSec?: number): Promise<void>;
|
|
30
32
|
/** Release the lock if we own it */
|
|
31
33
|
release(lock: PoolLock): Promise<void>;
|
|
32
34
|
private membershipKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/plugin/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAe,MAAM,2BAA2B,CAAC;AAIvE,MAAM,MAAM,QAAQ,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAUF,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAgB;gBAEvB,OAAO,EAAE,SAAS,GAAG,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM;IAQrF,4CAA4C;IACtC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;YAyB3C,eAAe;YAKf,iBAAiB;IA2B/B,oCAAoC;IAC9B,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5C,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,OAAO;YAID,mBAAmB;YAYnB,sBAAsB;CAUrC"}
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/plugin/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAe,MAAM,2BAA2B,CAAC;AAIvE,MAAM,MAAM,QAAQ,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAUF,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAgB;gBAEvB,OAAO,EAAE,SAAS,GAAG,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM;IAQrF,4CAA4C;IACtC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;YAyB3C,eAAe;YAKf,iBAAiB;IA2B/B,uEAAuE;IACjE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBhE,oCAAoC;IAC9B,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5C,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,OAAO;YAID,mBAAmB;YAYnB,sBAAsB;CAUrC"}
|
package/dist/plugin/pool.js
CHANGED
|
@@ -73,6 +73,19 @@ class ChannelPool {
|
|
|
73
73
|
}
|
|
74
74
|
return null;
|
|
75
75
|
}
|
|
76
|
+
/** Extend the lock TTL if we still own it (e.g. after WAIT_TIMEOUT) */
|
|
77
|
+
async extendLock(lock, ttlSec) {
|
|
78
|
+
try {
|
|
79
|
+
const key = this.lockKey(lock.relayerId);
|
|
80
|
+
const current = await this.kv.get(key);
|
|
81
|
+
if (current?.token === lock.token) {
|
|
82
|
+
await this.kv.set(key, { ...current, lockedAt: new Date().toISOString() }, { ttlSec: ttlSec ?? this.channelLockTtlSec });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// ignore extend errors — lock will expire via TTL
|
|
87
|
+
}
|
|
88
|
+
}
|
|
76
89
|
/** Release the lock if we own it */
|
|
77
90
|
async release(lock) {
|
|
78
91
|
try {
|