Skip to content

Commit 50eddd4

Browse files
committed
feat(contracts): add new token paymaster base sepolia deployment
1 parent 5619528 commit 50eddd4

File tree

5 files changed

+292
-263
lines changed

5 files changed

+292
-263
lines changed

packages/contracts/broadcast/DeployTokenPaymaster.s.sol/84532/run-latest.json

Lines changed: 91 additions & 139 deletions
Large diffs are not rendered by default.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"transactions": [
3+
{
4+
"hash": null,
5+
"transactionType": "CALL",
6+
"contractName": null,
7+
"contractAddress": "0x4c99cdaab0cfe32b4ba77d30342b5c51e0444e5b",
8+
"function": "setOracleConfiguration((uint48,uint48,address,address,bool,bool,bool,uint256))",
9+
"arguments": [
10+
"(3600, 86400, 0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165, 0x4aDC67696bA383F43DD60A9e78F2C97Fbbfc7cb1, false, false, false, 2000000000000000000000000)"
11+
],
12+
"transaction": {
13+
"from": "0xfb00d9cda6dad99994849d7c66fa2631f280f64f",
14+
"to": "0x4c99cdaab0cfe32b4ba77d30342b5c51e0444e5b",
15+
"gas": "0x17488",
16+
"value": "0x0",
17+
"input": "0x50e537330000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000015180000000000000000000000000d30e2101a97dcbaebcbc04f14c3f624e67a351650000000000000000000000004adc67696ba383f43dd60a9e78f2c97fbbfc7cb100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a784379d99db42000000",
18+
"nonce": "0x4a",
19+
"chainId": "0x14a34"
20+
},
21+
"additionalContracts": [],
22+
"isFixedGasLimit": false
23+
}
24+
],
25+
"receipts": [],
26+
"libraries": [],
27+
"pending": [],
28+
"returns": {},
29+
"timestamp": 1763870901,
30+
"chain": 84532,
31+
"commit": "750c359c"
32+
}

packages/contracts/script/DeployTokenPaymaster.s.sol

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ contract DeployTokenPaymasterScript is Script, Helper {
1212
uint40 private constant BASE_FEE_DEFAULT = 5e4; // ¢5
1313

1414
function setUp() public {
15-
this.labels();
15+
labels();
1616
}
1717

1818
function run() public {
@@ -70,8 +70,7 @@ contract DeployTokenPaymasterScript is Script, Helper {
7070
console2.log("Deployed TokenPaymaster at address: ", address(paymaster));
7171
console2.log("Deployed TokenPaymaster owner: ", msg.sender);
7272

73-
IEntryPoint(entryPoint).depositTo{value: 0.025 ether}(address(paymaster));
74-
paymaster.addStake{value: 0.025 ether}(1);
73+
IEntryPoint(entryPoint).depositTo{value: 0.0005 ether}(address(paymaster));
7574
vm.stopBroadcast();
7675
}
7776
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// SPDX-License-Identifier: GPL-3.0
2+
pragma solidity ^0.8.20;
3+
4+
import {Script, console2} from "forge-std/Script.sol";
5+
import "../src/TokenPaymaster.sol";
6+
import "../src/utils/OracleHelper.sol";
7+
8+
/// @title Script to update TokenPaymaster oracle configuration
9+
/// @notice Allows updating individual oracle config fields via environment variables
10+
contract UpdateTokenPaymasterOracleScript is Script {
11+
function run() public {
12+
address paymasterAddr = vm.envAddress("PAYMASTER");
13+
require(paymasterAddr != address(0), "PAYMASTER env variable not set");
14+
15+
// Required env vars - no defaults
16+
address tokenOracle = vm.envAddress("TOKEN_ORACLE");
17+
address nativeOracle = vm.envAddress("NATIVE_ORACLE");
18+
19+
require(tokenOracle != address(0), "TOKEN_ORACLE env variable not set");
20+
require(nativeOracle != address(0), "NATIVE_ORACLE env variable not set");
21+
22+
console2.log("New Oracle Configuration:");
23+
console2.log(" tokenOracle:", tokenOracle);
24+
console2.log(" nativeOracle:", nativeOracle);
25+
console2.log(" cacheTimeToLive:", vm.envOr("CACHE_TIME_TO_LIVE", uint256(3600)));
26+
console2.log(" maxOracleRoundAge:", vm.envOr("MAX_ORACLE_ROUND_AGE", uint256(86400)));
27+
28+
// Build config struct directly from env vars
29+
OracleHelperConfig memory newConfig = OracleHelperConfig({
30+
cacheTimeToLive: uint48(vm.envOr("CACHE_TIME_TO_LIVE", uint256(3600))),
31+
maxOracleRoundAge: uint48(vm.envOr("MAX_ORACLE_ROUND_AGE", uint256(86400))),
32+
tokenOracle: IOracle(tokenOracle),
33+
nativeOracle: IOracle(nativeOracle),
34+
tokenToNativeOracle: vm.envOr("TOKEN_TO_NATIVE_ORACLE", false),
35+
tokenOracleReverse: vm.envOr("TOKEN_ORACLE_REVERSE", false),
36+
nativeOracleReverse: vm.envOr("NATIVE_ORACLE_REVERSE", false),
37+
priceUpdateThreshold: vm.envOr("PRICE_UPDATE_THRESHOLD", uint256(2e24))
38+
});
39+
40+
vm.startBroadcast();
41+
TokenPaymaster(payable(paymasterAddr)).setOracleConfiguration(newConfig);
42+
console2.log("");
43+
console2.log("Oracle configuration updated");
44+
vm.stopBroadcast();
45+
}
46+
}

0 commit comments

Comments
 (0)