Skip to content

Conversation

@doutv
Copy link
Collaborator

@doutv doutv commented Jan 7, 2026

No description provided.

doutv added 30 commits December 1, 2025 17:24
1. solidity version 0.6.12 -> 0.8.24
2. based on FiatTokenV2_1 -> xbtc
3. onlyOwner -> onlyRole(DEFAULT_ADMIN_ROLE)
…to reflect changes in initialization parameters and contract references.
1. solidity version 0.8.6 -> 0.8.24
2. OZ 4.x -> 5.x. Ownable now requires an initialOwner parameter in its constructor
Address library functionCall and functionStaticCall signatures changed - the error message is now optional
…ntracts

- Introduced ExchangeRateUpdaterTest with tests for initialization, exchange rate updates, and ownership management.
- Added ExchangeRateUpdaterE2ETest for end-to-end testing of the exchange rate update flow.
- Created RateLimitTest covering caller management, allowance replenishment, and edge cases.
- Implemented RateLimitHarness for testing internal functions of the RateLimit contract.
…umentation and implementation. default decimals = 18
…integration tests for StakedTokenV1 and ExchangeRateUpdater, including scenarios for daily rate updates, multiple callers, and emergency updates.
…al implementations and enhance code consistency
…h author and repository details, and remove package-lock.json to streamline dependency management.
…e token details, and enhance documentation on architecture, features, and project structure.
…ript, ensuring it is both ProxyAdmin owner and has DEFAULT_ADMIN_ROLE in Token contract.
doutv added 30 commits December 16, 2025 10:31
… reflect accurate branding as "OKX Wrapped Staked ETH" for xBETH and "OKX Wrapped Staked SOL" for xOKSOL.
…ute paths for StakedTokenV1 and xToken, enhancing code clarity and maintainability.
… xOKSOL, and xSOL to use absolute paths, improving code organization and clarity. Update max supply for xETH to 1 billion.
…onsistent addresses the default (via EIP‑2470 CREATE2), and for staked tokens (xBETH/xOKSOL) replaced the previous multi-transaction oracle setup with a single-transaction “atomic deployer” approach to eliminate configuration windows.
…ize TimelockController for managing roles and permissions. Update environment variable from ADMIN to TIMELOCK_CALLER for improved governance structure. Enhance deployment process with deterministic address generation using EIP-2470.
The test failure was caused by a timestamp persistence issue in Foundry tests. Here's what happened:
Root Cause
In Foundry, block.timestamp persists between tests within the same test contract. Previous tests in RateLimitHarnessTest had warped the time forward, and when test_ReplenishAllowance_CorrectBehaviorAfterMultipleIntervals() ran, it started with block.timestamp = 432001 instead of the expected initial value of 1.
The Problem
The test was capturing configuredTimestamp = block.timestamp which was 432001 (left over from previous tests), then warping forward by INTERVAL * 5 (432000 seconds), resulting in:
Expected: 432001 + 432000 = 864001
Actual: 432001 (the correct behavior after the replenish call)
The Fix
Added vm.warp(1) at the start of the test to reset the timestamp to a known state, and changed to capture configuredTimestamp from allowancesLastSet after calling configureCaller, ensuring the test has a clean, predictable starting point.
…rity bug fix. It's fixing a vulnerability in the deny list enforcement
…ace TimelockCaller with TimelockAddress in environment variables. Update deployment logic to streamline the process and enhance clarity in the contract structure.
…rify token categories, and restructure project documentation for improved clarity and organization.
…roxy deployment. Enhance logging in DeployUtils for better debugging of deterministic address prediction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants