Skip to content

Commit d2c9e24

Browse files
committed
fix: do not call methods on fee manager if it is not a valid contract address
1 parent e5f0b2b commit d2c9e24

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

server/services/clientEvm.ts

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,19 @@ async function getContractAddresses() {
169169
functionName: 's_feeManager',
170170
});
171171

172+
if (!isAddressValid(feeManagerAddress)) {
173+
logger.warn(
174+
'⚠️ Invalid fee manager address or fee manager is not installed on current network',
175+
{ chainId, feeManagerAddress }
176+
);
177+
return {
178+
verifierProxyAddress,
179+
feeManagerAddress: zeroAddress,
180+
rewardManagerAddress: zeroAddress,
181+
feeTokenAddress: zeroAddress,
182+
};
183+
}
184+
172185
const [rewardManagerAddress, feeTokenAddress] = await Promise.all([
173186
readContract(publicClient, {
174187
address: feeManagerAddress,
@@ -232,7 +245,7 @@ export async function verifyReport(report: StreamReport) {
232245
if (
233246
!contractAddresses ||
234247
Object.values(contractAddresses)
235-
.map((address) => isAddressValid(address))
248+
.map((address) => isAddress(address))
236249
.includes(false)
237250
) {
238251
logger.warn('⚠️ Invalid contract addresses', { contractAddresses });
@@ -246,6 +259,13 @@ export async function verifyReport(report: StreamReport) {
246259
verifierProxyAddress,
247260
} = contractAddresses;
248261

262+
if (verifierProxyAddress === zeroAddress) {
263+
logger.warn('⚠️ Invalid verifier proxy addresses', {
264+
verifierProxyAddress,
265+
});
266+
return;
267+
}
268+
249269
// Generate parameter payload for verifyAndUpdateReport calls
250270
const feeTokenAddressEncoded = encodeAbiParameters(
251271
[{ type: 'address', name: 'parameterPayload' }],
@@ -254,7 +274,7 @@ export async function verifyReport(report: StreamReport) {
254274

255275
const gasCap = await getGasCap();
256276

257-
if (feeManagerAddress && feeManagerAddress !== zeroAddress) {
277+
if (feeManagerAddress !== zeroAddress && feeTokenAddress !== zeroAddress) {
258278
logger.info('⌛ Estimating fee for verification');
259279
const [fee] = await readContract(publicClient, {
260280
address: feeManagerAddress,

0 commit comments

Comments
 (0)