feat: Add Base deployment guide and examples#9
Conversation
feat: Add Base chain deployment guide and examples - New section in README.md for deploying TruflationTester on Base (Coinbase L2) - Includes network config examples for Hardhat/Remix - Highlights Chainlink CCIP integration for cross-chain data access - Adds tips for funding with LINK on Base and using faucets - Makes it easier for Base ecosystem developers and onchain farmers to get started quickly with Truflation's real-time economic data oracles This aligns with Truflation's deep Base integration (Base Ecosystem Fund recipient) and helps grow adoption in the growing Base/DeFi/RWA community.
WalkthroughAdded a "Deploying on Base (Coinbase's Layer 2)" section to README.md describing Base compatibility, Chainlink CCIP cross-chain options, recommendation to prefer Chainlink Data Streams or marketplace streams over legacy Any API, quick deployment steps (oracle/job ID, LINK funding), and a sample Hardhat/Remix network snippet. No code changes. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: defaults Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md(1 hunks)
🔇 Additional comments (1)
README.md (1)
126-130: The Hardhat config snippet is incomplete and will not execute.The configuration block is missing a closing brace and appears truncated. Additionally, the
chainIdproperty is typically required for network configurations.🔎 Proposed fix for complete Hardhat config
base: { url: "https://mainnet.base.org", accounts: [process.env.PRIVATE_KEY] + chainId: 8453, + }(Note: Adjust
chainIdif targeting Base Sepolia testnet, which uses84532)Likely an incorrect or invalid review comment.
…acle resourcesFixed incomplete Hardhat snippet (added closing brace and chainId) Clarified oracle config status and added helpful links Keeps the guide accurate and useful for Base users fix: Address CodeRabbit feedback - complete Hardhat config and add oracle resourcesFixed incomplete Hardhat snippet (added closing brace and chainId) Clarified oracle config status and added helpful links Keeps the guide accurate and useful for Base users
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md(1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
README.md
123-123: Bare URL used
(MD034, no-bare-urls)
124-124: Bare URL used
(MD034, no-bare-urls)
125-125: Bare URL used
(MD034, no-bare-urls)
Fully address CodeRabbit feedback - clearer oracle guidance + syntax fixesMade step 2 concrete: Direct instructions to copy oracle/job ID from Marketplace and paste into TruflationTester.sol Wrapped URLs in markdown links for better formatting Removed extra closing brace in Hardhat code block Emphasized shift to Data Streams for modern Base integrations
ukml
left a comment
There was a problem hiding this comment.
Fully address CodeRabbit feedback - clearer oracle guidance + syntax fixesMade step 2 concrete: Direct instructions to copy oracle/job ID from Marketplace and paste into TruflationTester.sol
Wrapped URLs in markdown links for better formatting
Removed extra closing brace in Hardhat code block
Emphasized shift to Data Streams for modern Base integrations
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
README.md (1)
128-134: Step 2 guidance is improved but could be more explicit.The updated step 2 (lines 130–133) is significantly clearer than the previous "update with the latest parameters" guidance. However, it could be strengthened:
- Clarify where in the contract code to paste the oracle address and job ID. For example: "In
TruflationTester.sol, update theORACLE_ADDRESSandJOB_IDvariables at the top of the contract, or pass them to the constructor."- Step 3 mentions "use faucets for testnet like Base Sepolia, or bridges for mainnet" but doesn't provide links. Consider adding: "For Base Sepolia testnet, use Base faucets or Chainlink faucet. For mainnet, bridge LINK via Stargate or another cross-chain bridge."
This would remove ambiguity for developers less familiar with the Chainlink ecosystem.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md(1 hunks)
🔇 Additional comments (2)
README.md (2)
136-140: Hardhat config is correct.The configuration snippet is syntactically correct and the notes about Base mainnet (8453) and testnet (84532) chain IDs are accurate and helpful. The use of
process.env.PRIVATE_KEYfor account management follows security best practices.
117-127: The Base section uses an intentionally different, modern approach from Arbitrum—comparison is not applicable.The document explicitly directs users to the Marketplace for current oracle configurations on Base, which is the stated recommendation for Base mainnet as of December 2025. Unlike Arbitrum's static legacy parameters, Base uses dynamic sourcing via Chainlink Data Streams and the Marketplace to avoid stale configurations. Step 2 clearly instructs users to retrieve the oracle address and job ID from the Marketplace, and Step 3 covers LINK funding. This approach is appropriate and aligns with Chainlink's modern data delivery model. No additional static parameters needed.
refactor: Polish Base guide per nitpick feedbackMade Step 2 more explicit: Clarify pasting oracle/job ID into constructor or request function Added direct links for Chainlink testnet faucet and mainnet bridging options Minor wording improvements for clarity.
ukml
left a comment
There was a problem hiding this comment.
refactor: Polish Base guide per nitpick feedbackMade Step 2 more explicit: Clarify pasting oracle/job ID into constructor or request function
Added direct links for Chainlink testnet faucet and mainnet bridging options
Minor wording improvements for clarity.
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md(1 hunks)
🔇 Additional comments (1)
README.md (1)
117-126: Good resource linking and documentation structure.Lines 117-126 properly format the markdown links and clearly explain the Base integration with helpful context about the transition from legacy Any API to modern Data Streams.
fix: Address major review - add concrete constructor guidance, LINK addresses, and funding linksSpecified exact constructor parameters and code locations in TruflationTester.sol Added official Chainlink LINK token addresses for Base mainnet/testnet Recommended fee range and direct faucet/bridge links Maintained accuracy about legacy vs. modern Data Streams for Base.
ukml
left a comment
There was a problem hiding this comment.
fix: Address major review - add concrete constructor guidance, LINK addresses, and funding linksSpecified exact constructor parameters and code locations in TruflationTester.sol
Added official Chainlink LINK token addresses for Base mainnet/testnet
Recommended fee range and direct faucet/bridge links
Maintained accuracy about legacy vs. modern Data Streams for Base
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
README.md (1)
133-133: Minor typographical suggestion: use en dash in numeric range.The range "0.1 - 0.5 LINK" uses a hyphen; consider an en dash for better typography: "0.1 – 0.5 LINK". This is a stylistic note and not blocking.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md(1 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md
[typographical] ~133-~133: Consider using an en dash here instead of a hyphen.
Context: ...ct index + Base chain). - Use fee: 0.1 - 0.5 LINK (in wei, e.g., 10000000000000000...
(QB_NEW_EN_DASH_RULE_EN)
🔇 Additional comments (1)
README.md (1)
117-147: Well-structured Base deployment guide with verified accuracy.The RPC endpoint, chain IDs, and faucet references are correct, and the Base Sepolia LINK token address is verified. The documentation successfully addresses past reviewer feedback by:
- Providing specific LINK token addresses for testnet and mainnet
- Including concrete fee ranges (0.1–0.5 LINK in wei)
- Referencing the correct Chainlink faucet for Base Sepolia
- Distinguishing clearly between legacy Any API (testnets) and modern Data Streams (mainnet)
Once the mainnet LINK address is corrected, this section will be a strong addition for Base developers.
| - Get oracle address and job ID from the Truflation Marketplace (select index + Base chain). | ||
| - Use fee: 0.1 - 0.5 LINK (in wei, e.g., 100000000000000000 for 0.1 LINK – common for requests). | ||
| - LINK token address: | ||
| - Mainnet: 0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196 |
There was a problem hiding this comment.
Incorrect Base mainnet LINK token address.
The correct LINK token contract address for Base mainnet is 0xcbc8a9e1073cfac0f5d0e52ff96fe47b2adaf480, not the address currently listed. Using the incorrect address will cause token transfer failures when users attempt to fund their contracts.
🔎 Proposed fix
- - Mainnet: 0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196
+ - Mainnet: 0xcbc8a9e1073cfac0f5d0e52ff96fe47b2adaf480📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - Mainnet: 0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196 | |
| - Mainnet: 0xcbc8a9e1073cfac0f5d0e52ff96fe47b2adaf480 |
🤖 Prompt for AI Agents
In README.md around line 135, the listed Base mainnet LINK token address is
incorrect (0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196); replace it with the
correct address 0xcbc8a9e1073cfac0f5d0e52ff96fe47b2adaf480 so users funding
contracts use the right token contract and avoid transfer failures. Ensure the
address is updated exactly in the Mainnet entry and verify there are no other
occurrences of the old address elsewhere in the README.
fix: Address critical review - confirm official LINK addresses and add constructor detailsKept official Base mainnet LINK address from Chainlink docs (bot suggestion was incorrect) Updated testnet LINK address to official Added explicit constructor parameter explanation and exact function call note Improved funding links
ukml
left a comment
There was a problem hiding this comment.
fix: Address critical review - confirm official LINK addresses and add constructor detailsKept official Base mainnet LINK address from Chainlink docs (bot suggestion was incorrect)
Updated testnet LINK address to official
Added explicit constructor parameter explanation and exact function call note
Improved funding links
Minor style improvement: Replace hyphen with en dash in fee range (0.1–0.5 LINK) as suggested by CodeRabbit.
This PR adds a dedicated section for deploying and using Truflation oracles on Base – Coinbase's Layer 2 where Truflation is natively supported and funded via the Base Ecosystem Fund.
Changes:
Benefits:
Happy to adjust or add more examples! 🚀 @truflation
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.