Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions script/CreateAndFundVRFSubscription.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.7;

import "forge-std/Script.sol";
import "@chainlink-toolkit/vrf/VRF.s.sol";

contract CreateAndFundVRFSubscription is Script {
function run(
address vrfCoordinatorAddress,
uint96 amountInJuels
) external returns (uint64 subId){
VRFScript vrfScript = new VRFScript(vrfCoordinatorAddress);

vm.broadcast();
subId = vrfScript.createSubscription();

vm.broadcast();
vrfScript.fundSubscription(amountInJuels, subId);

return subId;
}
}
30 changes: 30 additions & 0 deletions script/CreateAutomationSubscription.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.7;

import "forge-std/Script.sol";
import "@chainlink-toolkit/automation/Automation.s.sol";

contract CreateAutomationSubscription is Script {
function run(
address keeperRegistryAddress,
uint96 amountInJuels,
string calldata upkeepName,
string calldata email,
address upkeepAddress,
uint32 gasLimit,
bytes calldata checkData
) external returns (bytes32 requestHash){

AutomationScript automationScript = new AutomationScript(keeperRegistryAddress);

vm.broadcast();
return automationScript.registerUpkeep(
amountInJuels,
upkeepName,
email,
upkeepAddress,
gasLimit,
checkData
);
}
}
25 changes: 25 additions & 0 deletions script/CreateFunctionsSubscription.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.7;

import "forge-std/Script.sol";
import "@chainlink-toolkit/functions/Functions.s.sol";

contract CreateFunctionsSubscriptionWithConsumer is Script {
function run(
address functionsRouterAddress,
address functionsConsumerAddress,
address linkTokenAddress,
uint256 amountInJuels
) external returns (uint64 subId){

FunctionsScript functionsScript = new FunctionsScript(functionsRouterAddress);

vm.broadcast();
subId = functionsScript.createSubscriptionWithConsumer(functionsConsumerAddress);

vm.broadcast();
functionsScript.fundSubscription(linkTokenAddress, amountInJuels, subId);

return subId;
}
}
22 changes: 22 additions & 0 deletions script/FundAutomationSubscription.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.7;

import "forge-std/Script.sol";
import "@chainlink-toolkit/automation/Automation.s.sol";

contract FundAutomationSubscription is Script {
function run(
address keeperRegistryAddress,
uint256 upkeepId,
uint96 amountInJuels
) external returns (bytes32 requestHash){

AutomationScript automationScript = new AutomationScript(keeperRegistryAddress);

vm.broadcast();
return automationScript.addFunds(
upkeepId,
amountInJuels
);
}
}