From 032f8fba615b1841b5bd2c3d41af58c2d33f6907 Mon Sep 17 00:00:00 2001 From: freef Date: Tue, 28 Jul 2026 09:35:21 -0700 Subject: [PATCH 1/2] Add CrossChainBridge smart contract --- src/contracts/CrossChainBridge.h | 86 ++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/contracts/CrossChainBridge.h diff --git a/src/contracts/CrossChainBridge.h b/src/contracts/CrossChainBridge.h new file mode 100644 index 000000000..5ffde369b --- /dev/null +++ b/src/contracts/CrossChainBridge.h @@ -0,0 +1,86 @@ +#ifndef CROSSCHAINBRIDGE_H +#define CROSSCHAINBRIDGE_H + +#include "qpi.h" + +#define CCB_CONTRACT_INDEX 5 +#define CCB_MAX_VALIDATORS 16 +#define CCB_REPLAY_BUFFER_SIZE 256 + +struct CROSSCHAINBRIDGE { + id contractOwner; + uint8 isPaused; + uint64 totalLockedQus; + uint64 totalBurnedFees; + uint64 fixedBridgeFee; + + id validators[CCB_MAX_VALIDATORS]; + uint32 validatorCount; + uint32 requiredSignatures; + + uint64 nonce; + + uint8_32 processedTxHashes[CCB_REPLAY_BUFFER_SIZE]; + uint32 replayBufferIndex; +}; + +struct CCB_LockQus_input { + uint8_32 destinationChainAddress; + uint32 destinationChainId; + uint64 amount; +}; + +struct CCB_LockQus_output { + uint64 lockTxNonce; + uint8 status; +}; + +struct CCB_UnlockQus_input { + uint8_32 txHash; + uint8_32 targetQubicAddress; + uint64 amount; + uint64 lockTxNonce; + uint8 signatures[CCB_MAX_VALIDATORS][64]; +}; + +struct CCB_UnlockQus_output { + uint8 status; +}; + +struct CCB_SetPause_input { + id caller; + uint8 pauseState; +}; + +struct CCB_SetPause_output { + uint8 status; +}; + +struct CCB_SetQuorum_input { + id caller; + uint32 newRequiredSignatures; +}; + +struct CCB_SetQuorum_output { + uint8 status; +}; + +struct CCB_SetFee_input { + id caller; + uint64 newFee; +}; + +struct CCB_SetFee_output { + uint8 status; +}; + +struct CCB_GetStateSummary_output { + uint64 totalLockedQus; + uint64 totalBurnedFees; + uint64 nonce; + uint32 validatorCount; + uint32 requiredSignatures; + uint8 isPaused; +}; + +#endif // CROSSCHAINBRIDGE_H From 5754b5b13d2c83f6d6d2ee9f4612dffeeb51f706 Mon Sep 17 00:00:00 2001 From: freef Date: Thu, 30 Jul 2026 10:06:08 -0700 Subject: [PATCH 2/2] Fix ContractBase inheritance in CrossChainBridge --- src/contracts/CrossChainBridge.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contracts/CrossChainBridge.h b/src/contracts/CrossChainBridge.h index 5ffde369b..bfa2e7b43 100644 --- a/src/contracts/CrossChainBridge.h +++ b/src/contracts/CrossChainBridge.h @@ -7,7 +7,7 @@ #define CCB_MAX_VALIDATORS 16 #define CCB_REPLAY_BUFFER_SIZE 256 -struct CROSSCHAINBRIDGE { +struct CROSSCHAINBRIDGE : public ContractBase { id contractOwner; uint8 isPaused; uint64 totalLockedQus;