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;
|
||
|
}
|
||
|
}
|