From 76dc6ebf48c9ca5808131fd07f405c7f98a5ab7a Mon Sep 17 00:00:00 2001 From: Rens Rooimans Date: Fri, 10 Nov 2023 13:05:19 +0100 Subject: [PATCH] mv ChainSpecificUtil to lib --- .../src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol | 5 +++++ contracts/src/v0.8/functions/dev/v1_X/FunctionsRouter.sol | 8 ++------ .../dev/v1_X/{ => libraries}/ChainSpecificUtil.sol | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) rename contracts/src/v0.8/functions/dev/v1_X/{ => libraries}/ChainSpecificUtil.sol (94%) diff --git a/contracts/src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol b/contracts/src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol index 16e9029ce3f..6d4718f7052 100644 --- a/contracts/src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol +++ b/contracts/src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol @@ -4,7 +4,12 @@ pragma solidity ^0.8.19; import {IFunctionsCoordinator} from "./interfaces/IFunctionsCoordinator.sol"; import {ITypeAndVersion} from "../../../shared/interfaces/ITypeAndVersion.sol"; +<<<<<<< HEAD import {FunctionsBilling} from "./FunctionsBilling.sol"; +======= +import {ChainSpecificUtil} from "./libraries/ChainSpecificUtil.sol"; +import {Routable} from "./Routable.sol"; +>>>>>>> 49d26b4eca (mv ChainSpecificUtil to lib) import {OCR2Base} from "./ocr/OCR2Base.sol"; import {FunctionsResponse} from "./libraries/FunctionsResponse.sol"; diff --git a/contracts/src/v0.8/functions/dev/v1_X/FunctionsRouter.sol b/contracts/src/v0.8/functions/dev/v1_X/FunctionsRouter.sol index 2e12a75679a..254951a435f 100644 --- a/contracts/src/v0.8/functions/dev/v1_X/FunctionsRouter.sol +++ b/contracts/src/v0.8/functions/dev/v1_X/FunctionsRouter.sol @@ -403,12 +403,8 @@ contract FunctionsRouter is IFunctionsRouter, FunctionsSubscriptions, Pausable, uint32 callbackGasLimit, address client ) private returns (CallbackResult memory) { - bool destinationNoLongerExists; - assembly { - // solidity calls check that a contract actually exists at the destination, so we do the same - destinationNoLongerExists := iszero(extcodesize(client)) - } - if (destinationNoLongerExists) { + // solidity calls check that a contract actually exists at the destination, so we do the same + if (client.code.length == 0) { // Return without attempting callback // The subscription will still be charged to reimburse transmitter's gas overhead return CallbackResult({success: false, gasUsed: 0, returnData: new bytes(0)}); diff --git a/contracts/src/v0.8/functions/dev/v1_X/ChainSpecificUtil.sol b/contracts/src/v0.8/functions/dev/v1_X/libraries/ChainSpecificUtil.sol similarity index 94% rename from contracts/src/v0.8/functions/dev/v1_X/ChainSpecificUtil.sol rename to contracts/src/v0.8/functions/dev/v1_X/libraries/ChainSpecificUtil.sol index f0eec19db24..d6569a256bf 100644 --- a/contracts/src/v0.8/functions/dev/v1_X/ChainSpecificUtil.sol +++ b/contracts/src/v0.8/functions/dev/v1_X/libraries/ChainSpecificUtil.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; -import {ArbGasInfo} from "../../../vendor/@arbitrum/nitro-contracts/src/precompiles/ArbGasInfo.sol"; -import {OVM_GasPriceOracle} from "../../../vendor/@eth-optimism/contracts/v0.8.9/contracts/L2/predeploys/OVM_GasPriceOracle.sol"; +import {ArbGasInfo} from "../../../../vendor/@arbitrum/nitro-contracts/src/precompiles/ArbGasInfo.sol"; +import {OVM_GasPriceOracle} from "../../../../vendor/@eth-optimism/contracts/v0.8.9/contracts/L2/predeploys/OVM_GasPriceOracle.sol"; /// @dev A library that abstracts out opcodes that behave differently across chains. /// @dev The methods below return values that are pertinent to the given chain.