From 50085c190b14e2ef4b6ce494e60c25793b193f7a Mon Sep 17 00:00:00 2001 From: spsjvc Date: Thu, 26 Sep 2024 20:04:47 +0200 Subject: [PATCH] done --- src/createRollupGetCallValue.ts | 16 ++++++++++++++-- src/createRollupGetRetryablesFees.ts | 10 +++++----- src/createRollupPrepareTransactionRequest.ts | 2 +- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/createRollupGetCallValue.ts b/src/createRollupGetCallValue.ts index 8d496e03..6000c6af 100644 --- a/src/createRollupGetCallValue.ts +++ b/src/createRollupGetCallValue.ts @@ -1,8 +1,14 @@ +import { Chain, PublicClient, Transport } from 'viem'; + import { CreateRollupParams } from './types/createRollupTypes'; import { isCustomFeeTokenAddress } from './utils/isCustomFeeTokenAddress'; import { createRollupDefaultRetryablesFees } from './constants'; +import { createRollupGetRetryablesFees } from './createRollupGetRetryablesFees'; -export function createRollupGetCallValue(params: CreateRollupParams) { +export async function createRollupGetCallValue( + publicClient: PublicClient, + params: CreateRollupParams, +): Promise { // when not deploying deterministic factories to L2, no callvalue is necessary, as no retryable tickets will be created if (!params.deployFactoriesToL2) { return BigInt(0); @@ -13,5 +19,11 @@ export function createRollupGetCallValue(params: CreateRollupParams) { return BigInt(0); } - return createRollupDefaultRetryablesFees; + try { + return await createRollupGetRetryablesFees(publicClient, params); + } catch (error) { + // todo: update message + console.error('failed to fetch retryables fees, falling back to defaults'); + return createRollupDefaultRetryablesFees; + } } diff --git a/src/createRollupGetRetryablesFees.ts b/src/createRollupGetRetryablesFees.ts index b6bfa9e2..d70ecd1d 100644 --- a/src/createRollupGetRetryablesFees.ts +++ b/src/createRollupGetRetryablesFees.ts @@ -1,4 +1,4 @@ -import { PublicClient, Address } from 'viem'; +import { Chain, PublicClient, Transport, Address } from 'viem'; import { rollupCreatorABI } from './contracts/RollupCreator'; import { getRollupCreatorAddress } from './utils/getRollupCreatorAddress'; @@ -47,14 +47,14 @@ const bridgeCreatorABI = [ }, ] as const; -type Params = { +export type CreateRollupGetRetryablesFeesParams = { nativeToken?: Address; maxFeePerGasForRetryables?: bigint; }; -export async function createRollupGetRetryablesFees( - publicClient: PublicClient, - { nativeToken, maxFeePerGasForRetryables }: Params, +export async function createRollupGetRetryablesFees( + publicClient: PublicClient, + { nativeToken, maxFeePerGasForRetryables }: CreateRollupGetRetryablesFeesParams, ): Promise { const [deployHelperAddress, bridgeCreatorAddress] = await Promise.all([ publicClient.readContract({ diff --git a/src/createRollupPrepareTransactionRequest.ts b/src/createRollupPrepareTransactionRequest.ts index fa790d05..98cfb111 100644 --- a/src/createRollupPrepareTransactionRequest.ts +++ b/src/createRollupPrepareTransactionRequest.ts @@ -81,7 +81,7 @@ export async function createRollupPrepareTransactionRequest