wormhole/ethereum/contracts/relayer/deliveryProvider/DeliveryProviderStructs.sol

141 lines
3.5 KiB
Solidity
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// SPDX-License-Identifier: Apache 2
pragma solidity ^0.8.19;
import "../../interfaces/relayer/TypedUnits.sol";
abstract contract DeliveryProviderStructs {
struct UpdatePrice {
/**
* Wormhole chain id
*/
uint16 chainId;
/**
* Gas price in ´chainId´ chain.
*/
GasPrice gasPrice;
/**
* Price of the native currency in ´chainId´ chain.
* Native currency is typically used to pay for gas.
*/
WeiPrice nativeCurrencyPrice;
}
struct TargetChainUpdate {
/**
* Wormhole chain id
*/
uint16 chainId;
/**
* Wormhole address of the relay provider in the ´chainId´ chain.
*/
bytes32 targetChainAddress;
}
struct MaximumBudgetUpdate {
/**
* Wormhole chain id
*/
uint16 chainId;
/**
* Maximum total budget for a delivery in ´chainId´ chain.
*/
Wei maximumTotalBudget;
}
struct DeliverGasOverheadUpdate {
/**
* Wormhole chain id
*/
uint16 chainId;
/**
* The gas overhead for a delivery in ´chainId´ chain.
*/
Gas newGasOverhead;
}
struct SupportedChainUpdate {
/**
* Wormhole chain id
*/
uint16 chainId;
/**
* True if the chain is supported.
*/
bool isSupported;
}
struct AssetConversionBufferUpdate {
/**
* Wormhole chain id
*/
uint16 chainId;
// See DeliveryProviderState.AssetConversion
uint16 buffer;
uint16 bufferDenominator;
}
struct Update {
// Update flags
bool updateAssetConversionBuffer;
bool updateDeliverGasOverhead;
bool updatePrice;
bool updateTargetChainAddress;
bool updateMaximumBudget;
bool updateSupportedChain;
// SupportedChainUpdate
bool isSupported;
/**
* Wormhole chain id
*/
uint16 chainId;
// AssetConversionBufferUpdate
// See DeliveryProviderState.AssetConversion
uint16 buffer;
uint16 bufferDenominator;
// DeliverGasOverheadUpdate
/**
* The gas overhead for a delivery in ´chainId´ chain.
*/
Gas newGasOverhead;
// UpdatePrice
/**
* Gas price in ´chainId´ chain.
*/
GasPrice gasPrice;
/**
* Price of the native currency in ´chainId´ chain.
* Native currency is typically used to pay for gas.
*/
WeiPrice nativeCurrencyPrice;
// TargetChainUpdate
/**
* Wormhole address of the relay provider in the ´chainId´ chain.
*/
bytes32 targetChainAddress;
// MaximumBudgetUpdate
/**
* Maximum total budget for a delivery in ´chainId´ chain.
*/
Wei maximumTotalBudget;
}
struct CoreConfig {
bool updateWormholeRelayer;
bool updateRewardAddress;
bool updateSupportedKeyTypes;
/**
* Address of the WormholeRelayer contract
*/
address payable coreRelayer;
/**
* Address where rewards are sent for successful relays and sends
*/
address payable rewardAddress;
/**
* Bitmap encoding all uint8 keyTypes supported
*/
uint256 supportedKeyTypesBitmap;
}
}