Improve names
This commit is contained in:
parent
69a2067111
commit
d12ef9b3a0
|
@ -0,0 +1,4 @@
|
||||||
|
export type Options = {
|
||||||
|
period: number;
|
||||||
|
limit: number;
|
||||||
|
};
|
|
@ -1,3 +1,7 @@
|
||||||
|
import { Circuit, Ratelimit, Retry, RetryMode } from "mollitia";
|
||||||
|
import { EvmBlockRepository } from "../../../domain/repositories";
|
||||||
|
import { Options } from "../common/rateLimitedOptions";
|
||||||
|
import winston from "../../log";
|
||||||
import {
|
import {
|
||||||
EvmBlock,
|
EvmBlock,
|
||||||
EvmLogFilter,
|
EvmLogFilter,
|
||||||
|
@ -5,10 +9,6 @@ import {
|
||||||
EvmTag,
|
EvmTag,
|
||||||
ReceiptTransaction,
|
ReceiptTransaction,
|
||||||
} from "../../../domain/entities";
|
} from "../../../domain/entities";
|
||||||
import { EvmBlockRepository } from "../../../domain/repositories";
|
|
||||||
import winston from "../../log";
|
|
||||||
import { Circuit, Ratelimit, Retry, RetryMode } from "mollitia";
|
|
||||||
import { Options } from "../solana/RateLimitedSolanaSlotRepository";
|
|
||||||
|
|
||||||
export class RateLimitedEvmJsonRPCBlockRepository implements EvmBlockRepository {
|
export class RateLimitedEvmJsonRPCBlockRepository implements EvmBlockRepository {
|
||||||
private delegate: EvmBlockRepository;
|
private delegate: EvmBlockRepository;
|
||||||
|
@ -31,7 +31,7 @@ export class RateLimitedEvmJsonRPCBlockRepository implements EvmBlockRepository
|
||||||
factor: 1,
|
factor: 1,
|
||||||
onRejection: (err: Error | any) => {
|
onRejection: (err: Error | any) => {
|
||||||
if (err.message?.startsWith("429 Too Many Requests")) {
|
if (err.message?.startsWith("429 Too Many Requests")) {
|
||||||
this.logger.warn("Got 429 from solana RPC node. Retrying in 10 secs...");
|
this.logger.warn("Got 429 from evm RPC node. Retrying in 10 secs...");
|
||||||
return 10_000; // Wait 10 secs if we get a 429
|
return 10_000; // Wait 10 secs if we get a 429
|
||||||
} else {
|
} else {
|
||||||
return true; // Retry according to config
|
return true; // Retry according to config
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { solana } from "../../../domain/entities";
|
||||||
import { SolanaSlotRepository } from "../../../domain/repositories";
|
import { SolanaSlotRepository } from "../../../domain/repositories";
|
||||||
import { Fallible, SolanaFailure, ErrorType } from "../../../domain/errors";
|
import { Fallible, SolanaFailure, ErrorType } from "../../../domain/errors";
|
||||||
import winston from "../../../infrastructure/log";
|
import winston from "../../../infrastructure/log";
|
||||||
|
import { Options } from "../common/rateLimitedOptions";
|
||||||
|
|
||||||
export class RateLimitedSolanaSlotRepository implements SolanaSlotRepository {
|
export class RateLimitedSolanaSlotRepository implements SolanaSlotRepository {
|
||||||
private delegate: SolanaSlotRepository;
|
private delegate: SolanaSlotRepository;
|
||||||
|
@ -85,8 +86,3 @@ export class RateLimitedSolanaSlotRepository implements SolanaSlotRepository {
|
||||||
return this.breaker.fn(() => this.delegate.getTransactions(sigs, finality)).execute();
|
return this.breaker.fn(() => this.delegate.getTransactions(sigs, finality)).execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Options = {
|
|
||||||
period: number;
|
|
||||||
limit: number;
|
|
||||||
};
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
|
import { Checkpoint, SuiEventFilter, TransactionFilter } from "@mysten/sui.js/client";
|
||||||
import { Circuit, Ratelimit, Retry, RetryMode } from "mollitia";
|
import { Circuit, Ratelimit, Retry, RetryMode } from "mollitia";
|
||||||
import { SuiTransactionBlockReceipt } from "../../../domain/entities/sui";
|
import { SuiTransactionBlockReceipt } from "../../../domain/entities/sui";
|
||||||
import { SuiRepository } from "../../../domain/repositories";
|
import { SuiRepository } from "../../../domain/repositories";
|
||||||
import { Options } from "../solana/RateLimitedSolanaSlotRepository";
|
import { Options } from "../common/rateLimitedOptions";
|
||||||
import { Range } from "../../../domain/entities";
|
import { Range } from "../../../domain/entities";
|
||||||
import winston from "winston";
|
import winston from "winston";
|
||||||
import { Checkpoint, SuiEventFilter, TransactionFilter } from "@mysten/sui.js/client";
|
|
||||||
|
|
||||||
export class RateLimitedSuiJsonRPCBlockRepository implements SuiRepository {
|
export class RateLimitedSuiJsonRPCBlockRepository implements SuiRepository {
|
||||||
private delegate: SuiRepository;
|
private delegate: SuiRepository;
|
||||||
|
@ -27,7 +27,7 @@ export class RateLimitedSuiJsonRPCBlockRepository implements SuiRepository {
|
||||||
factor: 1,
|
factor: 1,
|
||||||
onRejection: (err: Error | any) => {
|
onRejection: (err: Error | any) => {
|
||||||
if (err.message?.startsWith("429 Too Many Requests")) {
|
if (err.message?.startsWith("429 Too Many Requests")) {
|
||||||
this.logger.warn("Got 429 from solana RPC node. Retrying in 10 secs...");
|
this.logger.warn("Got 429 from sui RPC node. Retrying in 10 secs...");
|
||||||
return 10_000; // Wait 10 secs if we get a 429
|
return 10_000; // Wait 10 secs if we get a 429
|
||||||
} else {
|
} else {
|
||||||
return true; // Retry according to config
|
return true; // Retry according to config
|
||||||
|
|
|
@ -18,7 +18,7 @@ export class InstrumentedHttpProvider {
|
||||||
private url: string;
|
private url: string;
|
||||||
health: ProviderHealthInstrumentation;
|
health: ProviderHealthInstrumentation;
|
||||||
|
|
||||||
private logger: winston.Logger = winston.child({ module: "RateLimitedSolanaSlotRepository" });
|
private logger: winston.Logger = winston.child({ module: "InstrumentedHttpProvider" });
|
||||||
|
|
||||||
constructor(options: InstrumentedHttpProviderOptions) {
|
constructor(options: InstrumentedHttpProviderOptions) {
|
||||||
options?.initialDelay && (this.initialDelay = options.initialDelay);
|
options?.initialDelay && (this.initialDelay = options.initialDelay);
|
||||||
|
|
Loading…
Reference in New Issue