WIP: HYBX OMNL and deployment documentation updates

This commit is contained in:
defiQUG
2026-06-02 06:09:56 -07:00
parent f04a7cb7c8
commit d31aad7d66
33 changed files with 78 additions and 2878 deletions

View File

@@ -0,0 +1,296 @@
# CCIP API Reference for ChainID 138
**Date**: 2025-01-27
**Network**: ChainID 138 (DeFi Oracle Meta Mainnet)
---
## Overview
This document provides API reference for CCIP contracts on ChainID 138.
---
## CCIP Router API
### Functions
#### `ccipSend(uint64 destinationChainSelector, EVM2AnyMessage memory message)`
Send a message to a destination chain.
**Parameters**:
- `destinationChainSelector`: Chain selector of destination chain
- `message`: CCIP message structure
**Returns**:
- `bytes32 messageId`: Unique message identifier
- `uint256 fees`: Fees paid for the message
**Example**:
```solidity
IRouterClient.EVM2AnyMessage memory message = IRouterClient.EVM2AnyMessage({
receiver: abi.encode(receiverAddress),
data: messageData,
tokenAmounts: new IRouterClient.TokenAmount[](0),
feeToken: address(0), // Native ETH
extraArgs: ""
});
(bytes32 messageId, uint256 fees) = router.ccipSend{value: fee}(
destinationSelector,
message
);
```
#### `getFee(uint64 destinationChainSelector, EVM2AnyMessage memory message)`
Calculate fee for sending a message.
**Parameters**:
- `destinationChainSelector`: Chain selector of destination chain
- `message`: CCIP message structure
**Returns**:
- `uint256 fee`: Required fee amount
**Example**:
```solidity
uint256 fee = router.getFee(destinationSelector, message);
```
#### `getSupportedTokens(uint64 destinationChainSelector)`
Get list of supported tokens for a destination chain.
**Parameters**:
- `destinationChainSelector`: Chain selector
**Returns**:
- `address[] tokens`: Array of supported token addresses
#### `addSupportedChain(uint64 chainSelector)` (Admin Only)
Add a supported destination chain.
**Parameters**:
- `chainSelector`: Chain selector to add
#### `removeSupportedChain(uint64 chainSelector)` (Admin Only)
Remove a supported destination chain.
#### `addSupportedToken(uint64 chainSelector, address token)` (Admin Only)
Add a supported token for a chain.
**Parameters**:
- `chainSelector`: Chain selector
- `token`: Token address
#### `updateFees(uint256 baseFee, uint256 dataFeePerByte)` (Admin Only)
Update fee configuration.
**Parameters**:
- `baseFee`: New base fee
- `dataFeePerByte`: New data fee per byte
---
## CCIPWETH9Bridge API
### Functions
#### `sendCrossChain(uint64 destinationChainSelector, address recipient, uint256 amount)`
Send WETH9 tokens to another chain.
**Parameters**:
- `destinationChainSelector`: Destination chain selector
- `recipient`: Recipient address on destination chain
- `amount`: Amount of WETH9 to send
**Returns**:
- `bytes32 messageId`: Message ID for tracking
**Example**:
```solidity
// Approve first
weth9.approve(address(bridge), amount);
// Send
bytes32 messageId = bridge.sendCrossChain(
5009297550715157269, // Ethereum Mainnet
recipientAddress,
amount
);
```
#### `ccipReceive(Any2EVMMessage calldata message)` (Router Only)
Receive WETH9 tokens from another chain. Called by router.
#### `calculateFee(uint64 destinationChainSelector, uint256 amount)`
Calculate fee for cross-chain transfer.
**Parameters**:
- `destinationChainSelector`: Destination chain selector
- `amount`: Transfer amount
**Returns**:
- `uint256 fee`: Required fee
#### `addDestination(uint64 chainSelector, address receiverBridge)` (Admin Only)
Add destination chain configuration.
#### `removeDestination(uint64 chainSelector)` (Admin Only)
Remove destination chain.
#### `updateDestination(uint64 chainSelector, address receiverBridge)` (Admin Only)
Update destination receiver bridge address.
#### `getDestinationChains()`
Get list of configured destination chains.
**Returns**:
- `uint64[]`: Array of chain selectors
#### `getUserNonce(address user)`
Get user's current nonce.
**Returns**:
- `uint256`: User nonce
---
## CCIPWETH10Bridge API
Same as CCIPWETH9Bridge, but for WETH10 tokens.
---
## Events
### Router Events
```solidity
event MessageSent(
bytes32 indexed messageId,
uint64 indexed destinationChainSelector,
address indexed sender,
bytes receiver,
bytes data,
TokenAmount[] tokenAmounts,
address feeToken,
bytes extraArgs
);
event MessageReceived(
bytes32 indexed messageId,
uint64 indexed sourceChainSelector,
address indexed sender,
bytes data,
TokenAmount[] tokenAmounts
);
```
### Bridge Events
```solidity
event CrossChainTransferInitiated(
bytes32 indexed messageId,
address indexed sender,
uint64 indexed destinationChainSelector,
address recipient,
uint256 amount,
uint256 nonce
);
event CrossChainTransferCompleted(
bytes32 indexed messageId,
uint64 indexed sourceChainSelector,
address indexed recipient,
uint256 amount
);
event DestinationAdded(uint64 chainSelector, address receiverBridge);
event DestinationRemoved(uint64 chainSelector);
event DestinationUpdated(uint64 chainSelector, address receiverBridge);
```
---
## Data Structures
### EVM2AnyMessage
```solidity
struct EVM2AnyMessage {
bytes receiver; // Encoded receiver address
bytes data; // Message data
TokenAmount[] tokenAmounts; // Token amounts to transfer
address feeToken; // Fee token address (0 for native)
bytes extraArgs; // Extra arguments
}
```
### Any2EVMMessage
```solidity
struct Any2EVMMessage {
bytes32 messageId; // Unique message ID
uint64 sourceChainSelector; // Source chain selector
bytes sender; // Encoded sender address
bytes data; // Message data
TokenAmount[] tokenAmounts; // Token amounts received
}
```
### TokenAmount
```solidity
struct TokenAmount {
address token; // Token address
uint256 amount; // Amount
TokenAmountType amountType; // Fiat or Native
}
```
---
## Error Codes
### Router Errors
- `CCIPRouter: chain not supported`
- `CCIPRouter: insufficient native token fee`
- `CCIPRouter: duplicate message`
- `CCIPRouter: empty receiver`
### Bridge Errors
- `CCIPWETH9Bridge: destination not enabled`
- `CCIPWETH9Bridge: transfer failed`
- `CCIPWETH9Bridge: transfer already processed`
- `CCIPWETH9Bridge: invalid amount`
- `CCIPWETH9Bridge: zero recipient`
---
## Related Documentation
- [Developer Integration Guide](../developer-guides/CCIP_INTEGRATION_GUIDE.md)
- [User Guide](../user-guides/CCIP_BRIDGE_USER_GUIDE.md)
- [Deployment Guide](DEPLOYMENT_GUIDE_CHAIN138.md)
---
**Last Updated**: 2025-01-27