df8039f494
new file: Interchain-message/.eslintrc.js new file: Interchain-message/.gitignore new file: Interchain-message/.prettierrc new file: Interchain-message/.solhint.json new file: Interchain-message/.solhintignore new file: Interchain-message/contracts/interfaces/IBridge.sol new file: Interchain-message/contracts/interfaces/IMessageBus.sol new file: Interchain-message/contracts/interfaces/IMessageReceiverApp.sol new file: Interchain-message/contracts/interfaces/IUniswapRouterV3.sol new file: Interchain-message/contracts/interfaces/IWETH.sol new file: Interchain-message/contracts/message/apps/BridgeSwap.sol new file: Interchain-message/contracts/message/apps/RubicRouterV2.sol new file: Interchain-message/contracts/message/apps/RubicRouterV2ETH.sol new file: Interchain-message/contracts/message/apps/SwapBase.sol new file: Interchain-message/contracts/message/apps/TransferSwapInch.sol new file: Interchain-message/contracts/message/apps/TransferSwapV2.sol new file: Interchain-message/contracts/message/apps/TransferSwapV3.sol new file: Interchain-message/contracts/message/framework/MessageReceiverApp.sol new file: Interchain-message/contracts/message/framework/MessageSenderApp.sol new file: Interchain-message/contracts/message/libraries/MessageSenderLib.sol new file: Interchain-message/contracts/message/libraries/MsgDataTypes.sol new file: Interchain-message/contracts/test/MessageBusSender.sol new file: Interchain-message/contracts/test/TestERC20.sol new file: Interchain-message/contracts/test/TestMessages.sol new file: Interchain-message/contracts/test/WETH9.sol new file: Interchain-message/deployments/Readme.md new file: Interchain-message/executor/config/cbridge.toml new file: Interchain-message/executor/config/executor.toml new file: Interchain-message/executor/eth-ks/signer.json new file: Interchain-message/hardhat.config.ts new file: Interchain-message/package-lock.json new file: Interchain-message/package.json new file: Interchain-message/reports/contract_sizes.txt new file: Interchain-message/reports/gas_usage/summary.txt new file: Interchain-message/scripts/deploy/deploy.js new file: Interchain-message/scripts/deploy/deployAVAX.ts new file: Interchain-message/scripts/deploy/deployArbitrum.ts new file: Interchain-message/scripts/deploy/deployAurora.ts new file: Interchain-message/scripts/deploy/deployBSC.ts new file: Interchain-message/scripts/deploy/deployEth.ts new file: Interchain-message/scripts/deploy/deployFantom.ts new file: Interchain-message/scripts/deploy/deployPoly.ts new file: Interchain-message/scripts/privateKey.js new file: Interchain-message/scripts/sendTx/avaxToFantomBridge.js new file: Interchain-message/scripts/sendTx/avaxToFantomNativeV2.js new file: Interchain-message/test/RubicCrossChainBridge.spec.ts new file: Interchain-message/test/RubicCrossChainV2.spec.ts new file: Interchain-message/test/RubicCrossChainV3.spec.ts new file: Interchain-message/test/RubicFallback.spec.ts new file: Interchain-message/test/RubicSettings.spec.ts new file: Interchain-message/test/shared/consts.ts new file: Interchain-message/test/shared/fixtures.ts new file: Interchain-message/test/shared/utils.ts new file: Interchain-message/tsconfig.json deleted: Rubic-Inter-chain-Message-develop.zip deleted: proxy-instant-trades-master.zip deleted: rubic-app-master.zip deleted: rubic-sdk-master.zip
75 lines
1.7 KiB
Solidity
75 lines
1.7 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
|
|
pragma solidity >=0.8.9;
|
|
|
|
library MsgDataTypes {
|
|
// bridge operation type at the sender side (src chain)
|
|
enum BridgeSendType {
|
|
Null,
|
|
Liquidity,
|
|
PegDeposit,
|
|
PegBurn,
|
|
PegV2Deposit,
|
|
PegV2Burn,
|
|
PegV2BurnFrom
|
|
}
|
|
|
|
// bridge operation type at the receiver side (dst chain)
|
|
enum TransferType {
|
|
Null,
|
|
LqRelay, // relay through liquidity bridge
|
|
LqWithdraw, // withdraw from liquidity bridge
|
|
PegMint, // mint through pegged token bridge
|
|
PegWithdraw, // withdraw from original token vault
|
|
PegV2Mint, // mint through pegged token bridge v2
|
|
PegV2Withdraw // withdraw from original token vault v2
|
|
}
|
|
|
|
enum MsgType {
|
|
MessageWithTransfer,
|
|
MessageOnly
|
|
}
|
|
|
|
enum TxStatus {
|
|
Null,
|
|
Success,
|
|
Fail,
|
|
Fallback,
|
|
Pending // transient state within a transaction
|
|
}
|
|
|
|
struct TransferInfo {
|
|
TransferType t;
|
|
address sender;
|
|
address receiver;
|
|
address token;
|
|
uint256 amount;
|
|
uint64 wdseq; // only needed for LqWithdraw (refund)
|
|
uint64 srcChainId;
|
|
bytes32 refId;
|
|
bytes32 srcTxHash; // src chain msg tx hash
|
|
}
|
|
|
|
struct RouteInfo {
|
|
address sender;
|
|
address receiver;
|
|
uint64 srcChainId;
|
|
bytes32 srcTxHash; // src chain msg tx hash
|
|
}
|
|
|
|
struct MsgWithTransferExecutionParams {
|
|
bytes message;
|
|
TransferInfo transfer;
|
|
bytes[] sigs;
|
|
address[] signers;
|
|
uint256[] powers;
|
|
}
|
|
|
|
struct BridgeTransferParams {
|
|
bytes request;
|
|
bytes[] sigs;
|
|
address[] signers;
|
|
uint256[] powers;
|
|
}
|
|
}
|