- 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.
47 lines
1.4 KiB
Solidity
47 lines
1.4 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.19;
|
|
|
|
import "../libraries/RailTypes.sol";
|
|
|
|
interface IRailTriggerRegistry {
|
|
struct Trigger {
|
|
uint256 id;
|
|
RailTypes.Rail rail;
|
|
bytes32 msgType; // e.g., "pacs.008", "pain.001"
|
|
bytes32 accountRefId; // hashed account reference
|
|
bytes32 walletRefId; // hashed wallet reference (optional)
|
|
address token; // eMoney token
|
|
uint256 amount;
|
|
bytes32 currencyCode; // e.g., "USD", "EUR"
|
|
bytes32 instructionId; // end-to-end trace id
|
|
RailTypes.State state;
|
|
uint64 createdAt;
|
|
uint64 updatedAt;
|
|
}
|
|
|
|
function createTrigger(Trigger calldata t) external returns (uint256 id);
|
|
|
|
function updateState(uint256 id, RailTypes.State newState, bytes32 reason) external;
|
|
|
|
function getTrigger(uint256 id) external view returns (Trigger memory);
|
|
|
|
function getTriggerByInstructionId(bytes32 instructionId) external view returns (Trigger memory);
|
|
|
|
function triggerExists(uint256 id) external view returns (bool);
|
|
|
|
function instructionIdExists(bytes32 instructionId) external view returns (bool);
|
|
|
|
event TriggerCreated(
|
|
uint256 indexed id,
|
|
uint8 rail,
|
|
bytes32 msgType,
|
|
bytes32 instructionId,
|
|
bytes32 accountRefId,
|
|
address token,
|
|
uint256 amount
|
|
);
|
|
|
|
event TriggerStateUpdated(uint256 indexed id, uint8 oldState, uint8 newState, bytes32 reason);
|
|
}
|
|
|