@@ -36,7 +36,8 @@ import {
36
36
import { Network } from "./network.js" ;
37
37
import { copyRequest , Block , FeeData , Log , TransactionReceipt , TransactionResponse } from "./provider.js" ;
38
38
import {
39
- PollingBlockSubscriber , PollingEventSubscriber , PollingOrphanSubscriber , PollingTransactionSubscriber
39
+ PollingBlockSubscriber , PollingBlockTagSubscriber , PollingEventSubscriber ,
40
+ PollingOrphanSubscriber , PollingTransactionSubscriber
40
41
} from "./subscriber-polling.js" ;
41
42
42
43
import type { Addressable , AddressLike } from "../address/index.js" ;
@@ -127,7 +128,7 @@ export type DebugEventAbstractProvider = {
127
128
* if they are modifying a low-level feature of how subscriptions operate.
128
129
*/
129
130
export type Subscription = {
130
- type : "block" | "close" | "debug" | "error" | "network" | "pending" ,
131
+ type : "block" | "close" | "debug" | "error" | "finalized" | " network" | "pending" | "safe ",
131
132
tag : string
132
133
} | {
133
134
type : "transaction" ,
@@ -235,7 +236,13 @@ async function getSubscription(_event: ProviderEvent, provider: AbstractProvider
235
236
236
237
if ( typeof ( _event ) === "string" ) {
237
238
switch ( _event ) {
238
- case "block" : case "pending" : case "debug" : case "error" : case "network" : {
239
+ case "block" :
240
+ case "debug" :
241
+ case "error" :
242
+ case "finalized" :
243
+ case "network" :
244
+ case "pending" :
245
+ case "safe" : {
239
246
return { type : _event , tag : _event } ;
240
247
}
241
248
}
@@ -708,7 +715,10 @@ export class AbstractProvider implements Provider {
708
715
switch ( blockTag ) {
709
716
case "earliest" :
710
717
return "0x0" ;
711
- case "latest" : case "pending" : case "safe" : case "finalized" :
718
+ case "finalized" :
719
+ case "latest" :
720
+ case "pending" :
721
+ case "safe" :
712
722
return blockTag ;
713
723
}
714
724
@@ -1319,6 +1329,8 @@ export class AbstractProvider implements Provider {
1319
1329
subscriber . pollingInterval = this . pollingInterval ;
1320
1330
return subscriber ;
1321
1331
}
1332
+ case "safe" : case "finalized" :
1333
+ return new PollingBlockTagSubscriber ( this , sub . type ) ;
1322
1334
case "event" :
1323
1335
return new PollingEventSubscriber ( this , sub . filter ) ;
1324
1336
case "transaction" :
0 commit comments