Files
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00
..

Tatum SDK Integration for ChainID 138

This directory contains the Tatum SDK integration for DeFi Oracle Meta Mainnet (ChainID 138).

Overview

The Tatum SDK allows you to interact with ChainID 138 using a familiar SDK interface while all JSON-RPC traffic goes to your own RPC endpoints.

Important Notes:

  • With custom RPC, only RPC calls are redirected to your node
  • Tatum's cloud services (Notifications, Blockchain Data, etc.) won't work on unsupported/private chains
  • Only raw JSON-RPC calls will work
  • Transactions must be signed with chainId: 138 (EIP-155)

Installation

cd sdk
npm install

Configuration

  1. Copy .env.example to .env:
cp .env.example .env
  1. Update .env with your RPC endpoint:
RPC_URL=http://your-rpc-endpoint:8545
WS_URL=ws://your-rpc-endpoint:8546

Usage

Basic Connection Test

npm run test

Run Examples

# Basic usage example
npm run example:basic

# Send transaction example
npm run example:transaction

# Deploy contract example
npm run example:contract

# Comprehensive smoke test
npm run smoke-test

Programmatic Usage

import { initTatumSDK, verifyConnection } from './tatum-client';

// Initialize Tatum SDK
const tatum = await initTatumSDK({
  rpcUrl: 'http://localhost:8545',
  verbose: true,
});

// Verify connection
const connectionInfo = await verifyConnection(tatum);
console.log('Chain ID:', connectionInfo.chainId);
console.log('Current Block:', connectionInfo.blockNumber);

// Make RPC calls
const blockNumber = await tatum.rpc.request('eth_blockNumber', []);
const gasPrice = await tatum.rpc.request('eth_gasPrice', []);

Sending Transactions

import { ethers } from 'ethers';
import { CHAIN_ID, DEFAULT_RPC_URL } from './config';

// Initialize provider with ChainID 138
const provider = new ethers.JsonRpcProvider(DEFAULT_RPC_URL, {
  chainId: CHAIN_ID,
  name: 'defi-oracle-mainnet',
});

// Create wallet
const wallet = new ethers.Wallet(PRIVATE_KEY, provider);

// Send transaction (must include chainId: 138)
const tx = await wallet.sendTransaction({
  to: '0xRecipientAddress...',
  value: ethers.parseEther('0.01'),
  chainId: CHAIN_ID, // Important: Must be 138
});

await tx.wait();

Examples

Example 1: Basic Connection

See src/examples/basic-usage.ts for a complete example of connecting to ChainID 138 and querying chain data.

Example 2: Send Transaction

See src/examples/send-transaction.ts for an example of sending a transaction with proper chainId.

Example 3: Deploy Contract

See src/examples/deploy-contract.ts for an example of deploying and interacting with a smart contract.

Verification Checklist

  • RPC node is up and accessible at the configured URL
  • ChainID is 138 (0x8a in hex)
  • Tatum SDK initialized with custom rpcUrl
  • Transactions signed with chainId: 138
  • RPC calls are working correctly

Troubleshooting

Connection Issues

  1. RPC endpoint not responding

    • Verify RPC node is running
    • Check firewall/network settings
    • Verify RPC_URL in .env
  2. Chain ID mismatch

    • Verify genesis file has chainId: 138
    • Check node configuration
    • Ensure transactions use chainId: 138
  3. Transaction failures

    • Verify chainId is set to 138
    • Check account has sufficient balance
    • Verify gas price and limits

Common Errors

  • "Chain ID mismatch": Ensure all transactions use chainId: 138
  • "RPC endpoint not reachable": Check network connectivity and firewall
  • "Insufficient balance": Fund the account with ETH

Limitations

As mentioned in the Tatum documentation:

  • Only RPC calls work with custom RPC endpoints
  • Tatum's cloud services (Notifications, Blockchain Data) won't work
  • No indexer support for private chains
  • Only raw JSON-RPC is available

References

Support

For issues or questions, please open an issue on the project repository.