Skip to content

Commit

Permalink
feat: return status in L2ToL1Message.waitUntilReadyToExecute (#381)
Browse files Browse the repository at this point in the history
  • Loading branch information
DZGoldman committed Dec 13, 2023
1 parent fe96e51 commit 376c83f
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
4 changes: 2 additions & 2 deletions src/lib/message/L2ToL1Message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -234,12 +234,12 @@ export class L2ToL1MessageReader extends L2ToL1Message {
* WARNING: Outbox entries are only created when the corresponding node is confirmed. Which
* can take 1 week+, so waiting here could be a very long operation.
* @param retryDelay
* @returns
* @returns outbox entry status (either executed or confirmed but not executed)
*/
public async waitUntilReadyToExecute(
l2Provider: Provider,
retryDelay = 500
): Promise<void> {
): Promise<L2ToL1MessageStatus.EXECUTED | L2ToL1MessageStatus.CONFIRMED> {
if (this.nitroReader)
return this.nitroReader.waitUntilReadyToExecute(l2Provider, retryDelay)
else
Expand Down
10 changes: 6 additions & 4 deletions src/lib/message/L2ToL1MessageClassic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -349,18 +349,20 @@ export class L2ToL1MessageReaderClassic extends L2ToL1MessageClassic {
* WARNING: Outbox entries are only created when the corresponding node is confirmed. Which
* can take 1 week+, so waiting here could be a very long operation.
* @param retryDelay
* @returns
* @returns outbox entry status (either executed or confirmed but not executed)
*/
public async waitUntilOutboxEntryCreated(
l2Provider: Provider,
retryDelay = 500
): Promise<void> {
): Promise<L2ToL1MessageStatus.EXECUTED | L2ToL1MessageStatus.CONFIRMED> {
const exists = await this.outboxEntryExists(l2Provider)
if (exists) {
return
return (await this.hasExecuted(l2Provider))
? L2ToL1MessageStatus.EXECUTED
: L2ToL1MessageStatus.CONFIRMED
} else {
await wait(retryDelay)
await this.waitUntilOutboxEntryCreated(l2Provider, retryDelay)
return await this.waitUntilOutboxEntryCreated(l2Provider, retryDelay)
}
}

Expand Down
8 changes: 4 additions & 4 deletions src/lib/message/L2ToL1MessageNitro.ts
Original file line number Diff line number Diff line change
Expand Up @@ -392,21 +392,21 @@ export class L2ToL1MessageReaderNitro extends L2ToL1MessageNitro {
* WARNING: Outbox entries are only created when the corresponding node is confirmed. Which
* can take 1 week+, so waiting here could be a very long operation.
* @param retryDelay
* @returns
* @returns outbox entry status (either executed or confirmed but not executed)
*/
public async waitUntilReadyToExecute(
l2Provider: Provider,
retryDelay = 500
): Promise<void> {
): Promise<L2ToL1MessageStatus.EXECUTED | L2ToL1MessageStatus.CONFIRMED> {
const status = await this.status(l2Provider)
if (
status === L2ToL1MessageStatus.CONFIRMED ||
status === L2ToL1MessageStatus.EXECUTED
) {
return
return status
} else {
await wait(retryDelay)
await this.waitUntilReadyToExecute(l2Provider, retryDelay)
return await this.waitUntilReadyToExecute(l2Provider, retryDelay)
}
}

Expand Down

0 comments on commit 376c83f

Please sign in to comment.