# Contract Validation Checklist **Date**: $(date) **Purpose**: Comprehensive checklist for validating all deployed smart contracts **Status**: ⏳ **Pending Validation** --- ## 📋 Contracts to Validate ### 1. Oracle Contracts #### Oracle Proxy (`0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6`) - [ ] **Verification Status** - [ ] Verified on Blockscout: `https://explorer.d-bis.org/address/0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6` - [ ] Source code visible and matches deployment - [ ] Compiler version matches deployment - [ ] **Functional Validation** - [ ] Contract has bytecode (not empty) - [ ] Contract responds to function calls - [ ] Can query latest price feed - [ ] Events emit correctly - [ ] **Integration Validation** - [ ] Oracle Publisher service can update prices - [ ] MetaMask can read price feed - [ ] Price updates reflect correctly #### Oracle Aggregator (`0x99b3511a2d315a497c8112c1fdd8d508d4b1e506`) - [ ] **Verification Status** - [ ] Verified on Blockscout - [ ] Source code visible - [ ] Compiler version matches - [ ] **Functional Validation** - [ ] Contract has bytecode - [ ] Can aggregate price data - [ ] Deviation detection works - [ ] Heartbeat mechanism works - [ ] **Integration Validation** - [ ] Oracle Publisher can update aggregator - [ ] Proxy reads from aggregator correctly --- ### 2. CCIP Infrastructure #### CCIP Router (`0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e`) - [ ] **Verification Status** - [ ] Verified on Blockscout (if custom contract) - [ ] Source code visible (if custom) - [ ] Note: May be Chainlink official contract - [ ] **Functional Validation** - [ ] Contract has bytecode - [ ] Can query router configuration - [ ] Can calculate fees - [ ] Events emit correctly (MessageSent, MessageExecuted) - [ ] **Integration Validation** - [ ] CCIP Monitor can read events - [ ] Bridge contracts can send messages - [ ] Fee calculation works correctly #### CCIP Sender (`0x105F8A15b819948a89153505762444Ee9f324684`) - [ ] **Verification Status** - [ ] Verified on Blockscout - [ ] Source code visible - [ ] Constructor parameters documented - [ ] **Functional Validation** - [ ] Contract has bytecode - [ ] Can send CCIP messages - [ ] Router address configured correctly - [ ] Events emit correctly - [ ] **Integration Validation** - [ ] Can send messages through router - [ ] Message tracking works - [ ] Fee payment works --- ### 3. Bridge Contracts #### CCIPWETH9Bridge (`0x89dd12025bfCD38A168455A44B400e913ED33BE2`) - [ ] **Verification Status** - [ ] Verified on Blockscout - [ ] Source code visible - [ ] Constructor arguments verified - [ ] **Functional Validation** - [ ] Contract has bytecode - [ ] WETH9 address configured correctly - [ ] Router address configured correctly - [ ] Can initiate cross-chain transfers - [ ] Fee calculation works - [ ] **Integration Validation** - [ ] Can wrap ETH to WETH9 - [ ] Can approve bridge to spend WETH9 - [ ] Can initiate transfer to destination chains - [ ] CCIP events trigger correctly - [ ] All 6 destination chains configured #### CCIPWETH10Bridge (`0xe0E93247376aa097dB308B92e6Ba36bA015535D0`) - [ ] **Verification Status** - [ ] Verified on Blockscout - [ ] Source code visible - [ ] Constructor arguments verified - [ ] **Functional Validation** - [ ] Contract has bytecode - [ ] WETH10 address configured correctly - [ ] Router address configured correctly - [ ] Can initiate cross-chain transfers - [ ] Fee calculation works - [ ] **Integration Validation** - [ ] Can wrap ETH to WETH10 - [ ] Can approve bridge to spend WETH10 - [ ] Can initiate transfer to destination chains - [ ] CCIP events trigger correctly - [ ] All 6 destination chains configured --- ### 4. Keeper Contract #### Price Feed Keeper (`0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04`) - [ ] **Verification Status** - [ ] Verified on Blockscout - [ ] Source code visible - [ ] Constructor arguments verified - [ ] **Functional Validation** - [ ] Contract has bytecode - [ ] Can check upkeep needed - [ ] Can perform upkeep - [ ] Oracle integration works - [ ] **Integration Validation** - [ ] Keeper service can execute upkeep - [ ] Triggers Oracle updates correctly - [ ] Automation works as expected --- ## 🔍 Validation Methods ### 1. On-chain Bytecode Check ```bash # Check contract has bytecode cast code
--rpc-url https://rpc-core.d-bis.org # Expected: Non-empty hex string (not "0x") ``` ### 2. Function Call Validation ```bash # Example: Check Oracle latest price cast call 0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6 \ "latestRoundData()(uint80,int256,uint256,uint256,uint80)" \ --rpc-url https://rpc-core.d-bis.org # Example: Check CCIP Router fee cast call 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e \ "getFee(uint64,bytes)" \