Skip to content

Commit

Permalink
use safe lib for approve (#12923)
Browse files Browse the repository at this point in the history
  • Loading branch information
shileiwill authored and FelixFan1992 committed Apr 25, 2024
1 parent ae47e7b commit f1efbd6
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 11 deletions.
5 changes: 5 additions & 0 deletions .changeset/dull-dingos-remember.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

use safe lib for approve #bugfix
5 changes: 5 additions & 0 deletions contracts/.changeset/shiny-dragons-sparkle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@chainlink/contracts": patch
---

use safe lib for approve #bugfix
19 changes: 10 additions & 9 deletions contracts/src/v0.8/automation/dev/v2_3/AutomationRegistrar2_3.sol
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,8 @@ contract AutomationRegistrar2_3 is TypeAndVersionInterface, ConfirmedOwner, IERC

/**
* @dev register upkeep on AutomationRegistry contract and emit RegistrationApproved event
* @dev safeApprove is deprecated and removed from the latest (v5) OZ release, Use safeIncreaseAllowance when we upgrade OZ (we are on v4.8)
* @dev we stick to the safeApprove because of the older version (v4.8) of safeIncreaseAllowance can't handle USDT correctly, but newer version can
*/
function _approve(RegistrationParams memory params, bytes32 hash) private returns (uint256) {
IAutomationRegistryMaster2_3 registry = s_registry;
Expand All @@ -406,18 +408,17 @@ contract AutomationRegistrar2_3 is TypeAndVersionInterface, ConfirmedOwner, IERC
params.triggerConfig,
params.offchainConfig
);
bool success;

if (address(params.billingToken) == address(i_LINK)) {
success = i_LINK.transferAndCall(address(registry), params.amount, abi.encode(upkeepId));
} else {
success = params.billingToken.approve(address(registry), params.amount);
if (success) {
registry.addFunds(upkeepId, params.amount);
bool success = i_LINK.transferAndCall(address(registry), params.amount, abi.encode(upkeepId));
if (!success) {
revert TransferFailed(address(registry));
}
} else {
params.billingToken.safeApprove(address(registry), params.amount);
registry.addFunds(upkeepId, params.amount);
}
if (!success) {
revert TransferFailed(address(registry));
}

emit RegistrationApproved(hash, params.name, upkeepId);
return upkeepId;
}
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ automation_compatible_utils: ../../contracts/solc/v0.8.19/AutomationCompatibleUt
automation_consumer_benchmark: ../../contracts/solc/v0.8.16/AutomationConsumerBenchmark/AutomationConsumerBenchmark.abi ../../contracts/solc/v0.8.16/AutomationConsumerBenchmark/AutomationConsumerBenchmark.bin f52c76f1aaed4be541d82d97189d70f5aa027fc9838037dd7a7d21910c8c488e
automation_forwarder_logic: ../../contracts/solc/v0.8.16/AutomationForwarderLogic/AutomationForwarderLogic.abi ../../contracts/solc/v0.8.16/AutomationForwarderLogic/AutomationForwarderLogic.bin 15ae0c367297955fdab4b552dbb10e1f2be80a8fde0efec4a4d398693e9d72b5
automation_registrar_wrapper2_1: ../../contracts/solc/v0.8.16/AutomationRegistrar2_1/AutomationRegistrar2_1.abi ../../contracts/solc/v0.8.16/AutomationRegistrar2_1/AutomationRegistrar2_1.bin eb06d853aab39d3196c593b03e555851cbe8386e0fe54a74c2479f62d14b3c42
automation_registrar_wrapper2_3: ../../contracts/solc/v0.8.19/AutomationRegistrar2_3/AutomationRegistrar2_3.abi ../../contracts/solc/v0.8.19/AutomationRegistrar2_3/AutomationRegistrar2_3.bin b42de91c15c7453d8262124e20594819d64a3f23bef8e6db66fa5180d18a8454
automation_registrar_wrapper2_3: ../../contracts/solc/v0.8.19/AutomationRegistrar2_3/AutomationRegistrar2_3.abi ../../contracts/solc/v0.8.19/AutomationRegistrar2_3/AutomationRegistrar2_3.bin 4d8c1fae4c8bf59ad996a1ac00f2131158ac1d96c3039c2e7deaa502f0317719
automation_registry_logic_a_wrapper_2_2: ../../contracts/solc/v0.8.19/AutomationRegistryLogicA2_2/AutomationRegistryLogicA2_2.abi ../../contracts/solc/v0.8.19/AutomationRegistryLogicA2_2/AutomationRegistryLogicA2_2.bin 2f267fb8467a15c587ce4586ac56069f7229344ad3936430d7c7624c0528a171
automation_registry_logic_a_wrapper_2_3: ../../contracts/solc/v0.8.19/AutomationRegistryLogicA2_3/AutomationRegistryLogicA2_3.abi ../../contracts/solc/v0.8.19/AutomationRegistryLogicA2_3/AutomationRegistryLogicA2_3.bin 1163ecd34c575cb17ffbc2f88fa175816f36982e91992d940ed435d306b3418c
automation_registry_logic_b_wrapper_2_2: ../../contracts/solc/v0.8.19/AutomationRegistryLogicB2_2/AutomationRegistryLogicB2_2.abi ../../contracts/solc/v0.8.19/AutomationRegistryLogicB2_2/AutomationRegistryLogicB2_2.bin a6d33dfbbfb0ff253eb59a51f4f6d6d4c22ea5ec95aae52d25d49a312b37a22f
Expand Down

0 comments on commit f1efbd6

Please sign in to comment.