NTT Manager Contract Reference (EVM)#
The NttManager contract is responsible for managing the token and associated transceivers. It enables cross-chain token transfers, peer registration, rate limiting, and message attestation for the NTT protocol.
Structure Overview#
The NTT Manager system is built using a layered inheritance structure composed of multiple base contracts and interfaces.
NttManager.sol
├── INttManager.sol
├── RateLimiter.sol
│ ├── IRateLimiter.sol
│ └── IRateLimiterEvents.sol
└── ManagerBase.sol
├── IManagerBase.sol
├── TransceiverRegistry.sol
├── PausableOwnable.sol
├── ReentrancyGuardUpgradeable.sol
└── Implementation.sol
Key Components:
NttManager.sol: The main contract that combines all functionality for token transfers with rate limiting.ManagerBase.sol: Provides core management functionality including message handling, threshold management, and transceiver coordination.RateLimiter.sol: Adds rate limiting capabilities with queuing mechanisms for both inbound and outbound transfers.TransceiverRegistry.sol: Manages the registration, enabling, and disabling of transceivers.PausableOwnable.sol: Provides ownership and emergency pause functionality.ReentrancyGuardUpgradeable.sol: Protects against reentrancy attacks in an upgradeable context.Implementation.sol: Handles proxy implementation logic for upgradeable contracts.
State Variables#
Core Identification#
tokenaddress: Address of the token that this NTT Manager is tied to.modeMode: Mode of the NTT Manager (LOCKING=0 or BURNING=1).chainIduint16: Wormhole chain ID that the NTT Manager is deployed on.NTT_MANAGER_VERSIONstring: The version string of the NttManager contract implementation.rateLimitDurationuint64: Duration (in seconds) until limits fully replenish.
Cross-chain Peers and Governance Thresholds#
peersmapping(uint16 ⇒ NttManagerPeer): Mapping of peer chain IDs to their peer NTT Manager address and token decimals.messageAttestationsmapping(bytes32 ⇒ AttestationInfo): Tracks whether a message has been executed and the bitmap of transceivers that have attested to it.THRESHOLD_SLOTuint8: Number of attestation approvals required for message execution.MESSAGE_SEQUENCE_SLOTuint64: Monotonic sequence number for outgoing messages.
Rate Limiting and Queues#
rateLimitDurationuint64: Duration (in seconds) until limits fully replenish.outboundLimitParamsRateLimitParams: Parameters controlling outbound transfer rate limits, including capacity and last transaction timestamp.inboundLimitParamsmapping(uint16 ⇒ RateLimitParams): Parameters controlling inbound transfer rate limits per peer chain.outboundQueuemapping(uint64 ⇒ OutboundQueuedTransfer): Queue of outbound transfers when rate limits are exceeded, keyed by sequence number.inboundQueuemapping(bytes32 ⇒ InboundQueuedTransfer): Queue of inbound transfers when rate limits are exceeded, keyed by message digest.
Events#
InboundTransferLimitUpdated#
Emitted when the inbound transfer limit is updated. (Defined in RateLimiter.sol)
Parameters
chainId uint16
The chain ID for which the limit was updated.
oldLimit uint256
The previous inbound limit.
newLimit uint256
The new inbound limit.
InboundTransferQueued#
Emitted when an inbound transfer is queued due to rate limiting. (Defined in RateLimiter.sol)
Parameters
digest bytes32
The digest of the queued transfer.
MessageAlreadyExecuted#
Emitted when a message has already been executed to notify client against retries. (Defined in ManagerBase.sol)
Parameters
sourceNttManager bytes32
The address of the source NttManager.
digest bytes32
The keccak-256 hash of the message.
MessageAttestedTo#
Emitted when a message has been attested to by a transceiver. (Defined in ManagerBase.sol)
Parameters
digest bytes32
The digest of the message.
transceiver address
The address of the transceiver that attested to the message.
index uint8
The index of the transceiver in the registry.
NotPaused#
Emitted when the contract is unpaused. (Defined in PausableUpgradeable.sol)
Parameters
notPaused bool
Whether the contract is not paused.
OutboundTransferCancelled#
Emitted when an outbound transfer has been cancelled. (Defined in NttManager.sol)
Parameters
sequence uint256
The sequence number being cancelled.
recipient address
The canceller and recipient of the funds.
amount uint256
The amount of the transfer being cancelled.
OutboundTransferLimitUpdated#
Emitted when the outbound transfer limit is updated. (Defined in RateLimiter.sol)
Parameters
oldLimit uint256
The previous outbound limit.
newLimit uint256
The new outbound limit.
OutboundTransferQueued#
Emitted when an outbound transfer is queued due to rate limiting. (Defined in RateLimiter.sol)
Parameters
sequence uint64
The sequence number of the queued transfer.
OutboundTransferRateLimited#
Emitted when an outbound transfer is rate limited. (Defined in RateLimiter.sol)
event OutboundTransferRateLimited(
address sender,
uint64 sequence,
uint256 amount,
uint256 currentCapacity
)
Parameters
sender address
The address that initiated the transfer.
sequence uint64
The sequence number of the transfer.
amount uint256
The amount being transferred.
currentCapacity uint256
The current available capacity.
OwnershipTransferred#
Emitted when ownership of the contract is transferred. (Defined in OwnableUpgradeable.sol)
Parameters
previousOwner address
The previous owner's address.
newOwner address
The new owner's address.
Paused#
Emitted when the contract is paused. (Defined in PausableUpgradeable.sol)
Parameters
paused bool
Whether the contract is paused.
PauserTransferred#
Emitted when pauser capability is transferred. (Defined in PausableUpgradeable.sol)
Parameters
oldPauser address
The previous pauser's address.
newPauser address
The new pauser's address.
PeerUpdated#
Emitted when the peer contract is updated. (Defined in NttManager.sol)
event PeerUpdated(
uint16 indexed chainId_,
bytes32 oldPeerContract,
uint8 oldPeerDecimals,
bytes32 peerContract,
uint8 peerDecimals
)
Parameters
chainId_ uint16
The chain ID of the peer contract.
oldPeerContract bytes32
The old peer contract address.
oldPeerDecimals uint8
The old peer contract decimals.
peerContract bytes32
The new peer contract address.
peerDecimals uint8
The new peer contract decimals.
ThresholdChanged#
Emitted when the threshold required for transceivers is changed. (Defined in ManagerBase.sol)
Parameters
oldThreshold uint8
The old threshold.
threshold uint8
The new threshold.
TransceiverAdded#
Emitted when a transceiver is added to the NttManager. (Defined in ManagerBase.sol)
Parameters
transceiver address
The address of the transceiver.
transceiversNum uint256
The current number of transceivers.
threshold uint8
The current threshold of transceivers.
TransceiverRemoved#
Emitted when a transceiver is removed from the NttManager. (Defined in ManagerBase.sol)
Parameters
transceiver address
The address of the transceiver.
threshold uint8
The current threshold of transceivers.
TransferRedeemed#
Emitted when a transfer has been redeemed (either minted or unlocked on the recipient chain). (Defined in NttManager.sol)
Parameters
digest bytes32
The digest of the message.
TransferSent#
Emitted when a message is sent from the NttManager. (Defined in NttManager.sol)
event TransferSent(
bytes32 indexed recipient,
bytes32 indexed refundAddress,
uint256 amount,
uint256 fee,
uint16 recipientChain,
uint64 msgSequence
)
Parameters
recipient bytes32
The recipient of the message.
refundAddress bytes32
The address on the destination chain to which the refund of unused gas will be paid.
amount uint256
The amount transferred.
fee uint256
The amount of ether sent along with the tx to cover the delivery fee.
recipientChain uint16
The chain ID of the recipient.
msgSequence uint64
The unique sequence ID of the message.
TransferSent (Digest Version)#
Emitted when a message is sent from the NttManager (digest version). (Defined in NttManager.sol)
Parameters
digest bytes32
The digest of the message.
Functions#
attestationReceived#
Called by transceivers when the attestation is received. (Defined in NttManager.sol)
function attestationReceived(
uint16 sourceChainId,
bytes32 sourceNttManagerAddress,
TransceiverStructs.NttManagerMessage memory payload
) external
Parameters
sourceChainId uint16
The chain ID of the source.
sourceNttManagerAddress bytes32
The address of the source NttManager.
payload TransceiverStructs.NttManagerMessage
The message payload containing transfer details.
NttManagerMessage struct
id bytes32
Unique message identifier (incrementally assigned on EVM chains).
sender bytes32
Original message sender address.
payload bytes
Payload that corresponds to the transfer type.
Emits:
MessageAlreadyExecuted(if the message was already executed),OutboundTransferCancelledorTransferRedeemed(if the message execution succeeds),TransferSent(if the message execution succeeds)
cancelOutboundQueuedTransfer#
Cancel an outbound transfer that's been queued due to rate limiting. (Defined in NttManager.sol)
Parameters
messageSequence uint64
The sequence number of the queued transfer to cancel.
Emits:
OutboundTransferCancelled
completeInboundQueuedTransfer#
Complete an inbound transfer that's been queued due to rate limiting. (Defined in NttManager.sol)
Parameters
digest bytes32
The digest of the queued transfer.
Emits:
TransferRedeemed
completeOutboundQueuedTransfer#
Complete an outbound transfer that's been queued due to rate limiting. (Defined in NttManager.sol)
Parameters
messageSequence uint64
The sequence number of the queued transfer.
Returns
sequence uint64
The sequence number of the completed transfer.
Emits:
TransferSent(two variants)
executeMsg#
Execute a message when the threshold is met. (Defined in NttManager.sol)
function executeMsg(
uint16 sourceChainId,
bytes32 sourceNttManagerAddress,
TransceiverStructs.NttManagerMessage memory message
) external
Parameters
sourceChainId uint16
The chain ID of the source.
sourceNttManagerAddress bytes32
The address of the source NttManager.
message TransceiverStructs.NttManagerMessage
The message to execute containing transfer details.
NttManagerMessage struct
id bytes32
Unique message identifier (incrementally assigned on EVM chains).
sender bytes32
Original message sender address.
payload bytes
Payload that corresponds to the transfer type.
Emits:
MessageAlreadyExecuted(if already executed),OutboundTransferCancelled, orTransferRedeemed(depending on the transfer type)
getCurrentInboundCapacity#
Returns the currently remaining inbound capacity from a chain. (Defined in RateLimiter.sol)
Parameters
chainId uint16
The chain ID to check capacity for.
Returns
capacity uint256
The current available inbound capacity from the specified chain.
getCurrentOutboundCapacity#
Returns the currently remaining outbound capacity. (Defined in RateLimiter.sol)
Returns
capacity uint256
The current available outbound capacity.
getInboundLimitParams#
Returns the inbound rate limit parameters for a chain. (Defined in RateLimiter.sol)
Parameters
chainId_ uint16
The chain ID to get parameters for.
Returns
params RateLimitParams struct
The inbound rate limit parameters for the specified chain.
RateLimitParams struct
limit TrimmedAmount
Current rate limit value.
currentCapacity TrimmedAmount
The current capacity left.
lastTxTimestamp uint64
Timestamp of when capacity was previously consumed.
getInboundQueuedTransfer#
Returns queued transfer details for inbound queue. (Defined in RateLimiter.sol)
function getInboundQueuedTransfer(bytes32 digest) external view returns (InboundQueuedTransfer memory)
Parameters
digest bytes32
The digest of the queued transfer.
Returns
transfer InboundQueuedTransfer struct
The queued transfer details.
InboundQueuedTransfer struct
amount TrimmedAmount
The trimmed amount of the transfer.
txTimestamp uint64
The timestamp of the transfer.
recipient address
The recipient of the transfer.
getMode#
Returns the mode (locking or burning) of the NttManager. (Defined in ManagerBase.sol)
Returns
mode uint8
The mode of the NttManager (0 for LOCKING, 1 for BURNING).
Mode enum values
LOCKING 0
Tokens are locked on the source chain and unlocked on the destination chain.
BURNING 1
Tokens are burned on the source chain and minted on the destination chain.
getMigratesImmutables#
Returns whether the contract migrates immutables. (Defined in Implementation.sol)
Returns
migrates bool
Whether the contract migrates immutables.
getOutboundLimitParams#
Returns the outbound rate limit parameters. (Defined in RateLimiter.sol)
Returns
params RateLimitParams struct
The outbound rate limit parameters.
RateLimitParams struct
limit TrimmedAmount
Current rate limit value.
currentCapacity TrimmedAmount
The current capacity left.
lastTxTimestamp uint64
Timestamp of when capacity was previously consumed.
getOutboundQueuedTransfer#
Returns queued transfer details for outbound queue. (Defined in RateLimiter.sol)
function getOutboundQueuedTransfer(uint64 queueSequence) external view returns (OutboundQueuedTransfer memory)
Parameters
queueSequence uint64
The sequence number of the queued transfer.
Returns
transfer OutboundQueuedTransfer struct
The queued transfer details.
OutboundQueuedTransfer struct
recipient bytes32
The recipient of the transfer.
refundAddress bytes32
The refund address for unused gas.
amount TrimmedAmount
The amount of the transfer, trimmed.
txTimestamp uint64
The timestamp of the transfer.
recipientChain uint16
The chain of the recipient.
sender address
The sender of the transfer.
transceiverInstructions bytes
Additional instructions for the recipient chain.
getPeer#
Returns peer information for a given chain ID. (Defined in NttManager.sol)
Parameters
chainId_ uint16
The chain ID of the peer.
Returns
peer NttManagerPeer struct
The peer information for the given chain ID.
NttManagerPeer struct
peerAddress bytes32
The address of the peer contract on the remote chain.
tokenDecimals uint8
The number of decimals for the peer token.
getThreshold#
Returns the number of transceivers that must attest to a message. (Defined in ManagerBase.sol)
Returns
threshold uint8
The number of attestations required for a message to be considered valid.
getTransceiverInfo#
Returns the info for all enabled transceivers. (Defined in TransceiverRegistry.sol)
Returns
info TransceiverInfo[] memory
An array of transceiver information structs.
TransceiverInfo struct
registered bool
Whether this transceiver is registered.
enabled bool
Whether this transceiver is enabled.
index uint8
Index of the transceiver.
getTransceivers#
Returns the enabled Transceiver contracts. (Defined in TransceiverRegistry.sol)
Returns
result address[] memory
An array of enabled transceiver addresses.
initialize#
Initializes the contract. (Defined in Implementation.sol)
isMessageApproved#
Checks if a message has been approved with at least the minimum threshold of attestations from distinct endpoints. (Defined in ManagerBase.sol)
Parameters
digest bytes32
The keccak-256 hash of the message.
Returns
approved bool
Whether the message has been approved.
isMessageExecuted#
Checks if a message has been executed. (Defined in ManagerBase.sol)
Parameters
digest bytes32
The keccak-256 hash of the message.
Returns
executed bool
Whether the message has been executed.
isPaused#
Returns true if the contract is paused, and false otherwise. (Defined in PausableUpgradeable.sol)
Returns
paused bool
Whether the contract is paused.
messageAttestations#
Returns the number of attestations for a given message. (Defined in ManagerBase.sol)
Parameters
digest bytes32
The keccak-256 hash of the message.
Returns
count uint8
The number of attestations for the message.
migrate#
Migrates the contract state to a new implementation. (Defined in Implementation.sol)
nextMessageSequence#
Returns the next message sequence. (Defined in ManagerBase.sol)
Returns
sequence uint64
The next message sequence number.
owner#
Returns the address of the current owner. (Defined in OwnableUpgradeable.sol)
Returns
owner address
The address of the current owner.
pause#
Pauses the manager. (Defined in ManagerBase.sol)
Emits:
Paused
pauser#
Returns the current pauser account address. (Defined in PausableUpgradeable.sol)
Returns
pauser address
The address of the current pauser.
quoteDeliveryPrice#
Fetches the delivery price for a given recipient chain transfer. (Defined in ManagerBase.sol)
function quoteDeliveryPrice(
uint16 recipientChain,
bytes memory transceiverInstructions
) public view returns (uint256[] memory, uint256)
Parameters
recipientChain uint16
The chain ID of the recipient.
transceiverInstructions bytes
The transceiver-specific instructions for the transfer.
Returns
deliveryQuotes uint256[] memory
An array of delivery quotes from each transceiver.
totalPrice uint256
The total price for delivery across all transceivers.
removeTransceiver#
Removes/disables a transceiver address in the registry of a given chain. (Defined in ManagerBase.sol)
Parameters
transceiver address
The address of the transceiver contract to remove.
setInboundLimit#
Set the inbound transfer limit for a specific chain. (Defined in NttManager.sol)
Parameters
limit uint256
The new inbound transfer limit.
chainId_ uint16
The chain ID to set the limit for.
setOutboundLimit#
Set the outbound transfer limit. (Defined in NttManager.sol)
Parameters
limit uint256
The new outbound transfer limit.
setPeer#
Set peer contract information for a specific chain; this is local manager configuration (no cross-chain message) and must be called on both chains. If either side is unset or mismatched, inbound verification or amount trimming fails (InvalidPeer, InvalidPeerDecimals). (Defined in NttManager.sol)
Example
- On Chain A: Register Chain B as a peer with B’s manager address (
peerContract), B’s token decimals (decimals), and the inbound limit from B → A (inboundLimit). - On Chain B: Register Chain A the same way (A’s manager, A’s token decimals, inbound limit from A → B).
function setPeer(
uint16 peerChainId,
bytes32 peerContract,
uint8 decimals,
uint256 inboundLimit
) external
Parameters
peerChainId uint16
The chain ID of the peer.
peerContract bytes32
The address of the peer contract.
decimals uint8
The number of decimals for the peer token.
inboundLimit uint256
The inbound transfer limit for this peer.
Emits:
PeerUpdated
setThreshold#
Sets the threshold for the number of attestations required for a message to be considered valid. (Defined in ManagerBase.sol)
Parameters
threshold uint8
The number of attestations required.
Emits:
ThresholdChanged
setTransceiver#
Sets the transceiver for the given chain. (Defined in ManagerBase.sol)
Parameters
transceiver address
The address of the transceiver contract.
Emits:
TransceiverAdded
tokenDecimals#
Returns the number of decimals for the token. (Defined in NttManager.sol)
Returns
decimals uint8
The number of decimals for the token.
transceiverAttestedToMessage#
Returns if the transceiver has attested to the message. (Defined in ManagerBase.sol)
Parameters
digest bytes32
The keccak-256 hash of the message.
index uint8
The index of the transceiver.
Returns
attested bool
Whether the transceiver has attested to the message.
transfer (basic)#
Transfer tokens (simple version). (Defined in NttManager.sol)
function transfer(
uint256 amount,
uint16 recipientChain,
bytes32 recipient
) external payable returns (uint64)
Parameters
amount uint256
The amount of tokens to transfer.
recipientChain uint16
The chain ID of the recipient.
recipient bytes32
The recipient address on the destination chain.
Returns
sequence uint64
The sequence number of the transfer.
Emits:
OutboundTransferRateLimited(if rate limited),TransferSent(two variants, if successful)
transfer (advanced)#
Transfer tokens (full version with additional parameters). (Defined in NttManager.sol)
function transfer(
uint256 amount,
uint16 recipientChain,
bytes32 recipient,
bytes32 refundAddress,
bool shouldQueue,
bytes memory transceiverInstructions
) external payable returns (uint64)
Parameters
amount uint256
The amount of tokens to transfer.
recipientChain uint16
The chain ID of the recipient.
recipient bytes32
The recipient address on the destination chain.
refundAddress bytes32
The address to refund unused gas to.
shouldQueue bool
Whether to queue the transfer if rate limited.
transceiverInstructions bytes
Additional instructions for transceivers.
Returns
sequence uint64
The sequence number of the transfer.
Emits:
OutboundTransferRateLimited(if rate limited),TransferSent(two variants, if successful)
transferOwnership#
Transfer ownership of the Manager and all Transceiver contracts. (Defined in ManagerBase.sol)
Parameters
newOwner address
The address of the new owner.
Emits:
OwnershipTransferred
transferPauserCapability#
Transfers the ability to pause to a new account. (Defined in PausableOwnable.sol)
Parameters
newPauser address
The address of the new pauser.
Emits:
PauserTransferred
upgrade#
Upgrades to a new manager implementation. (Defined in ManagerBase.sol)
Parameters
newImplementation address
The address of the new implementation contract.
unpause#
Unpauses the manager. (Defined in ManagerBase.sol)
Emits:
NotPaused
Errors#
BurnAmountDifferentThanBalanceDiff#
Error when the burn amount differs from the balance difference. (Defined in NttManager.sol)
Parameters
burnAmount uint256
The amount that was burned.
balanceDiff uint256
The actual balance difference.
CallerNotTransceiver#
Error when the caller is not the transceiver. (Defined in TransceiverRegistry.sol)
Parameters
caller address
The address that is not a transceiver.
CancellerNotSender#
Error when someone other than the original sender tries to cancel a queued outbound transfer. (Defined in NttManager.sol)
Parameters
canceller address
The address attempting to cancel.
sender address
The original sender's address.
CapacityCannotExceedLimit#
The new capacity cannot exceed the limit. (Defined in RateLimiter.sol)
Parameters
newCurrentCapacity TrimmedAmount
The new current capacity value.
TrimmedAmount type
amount uint64
The amount value (64 bits).
decimals uint8
The number of decimals (8 bits).
newLimit TrimmedAmount
The new limit value.
TrimmedAmount type
amount uint64
The amount value (64 bits).
decimals uint8
The number of decimals (8 bits).
DeliveryPaymentTooLow#
Payment for a transfer is too low. (Defined in ManagerBase.sol)
Parameters
requiredPayment uint256
The required payment amount.
providedPayment uint256
The payment amount that was provided.
DisabledTransceiver#
Error when the transceiver is disabled. (Defined in TransceiverRegistry.sol)
Parameters
transceiver address
The disabled transceiver address.
InboundQueuedTransferNotFound#
The inbound transfer is no longer queued. (Defined in RateLimiter.sol)
Parameters
digest bytes32
The digest of the queued transfer.
InboundQueuedTransferStillQueued#
The transfer is still queued. (Defined in RateLimiter.sol)
Parameters
digest bytes32
The digest of the queued transfer.
transferTimestamp uint256
The timestamp of the transfer.
InvalidInitialization#
Error when the contract is in an invalid initialization state. (Defined in Initializable.sol)
InvalidMode#
The mode is invalid (neither LOCKING nor BURNING). (Defined in NttManager.sol)
Parameters
mode uint8
The invalid mode value.
InvalidPauser#
Error when the pauser is not a valid pauser account. (Defined in PausableUpgradeable.sol)
Parameters
account address
The invalid pauser account address.
InvalidPeer#
The peer for the chain does not match the configuration. (Defined in NttManager.sol)
Parameters
chainId uint16
The chain ID of the peer.
peerAddress bytes32
The peer address that doesn't match.
InvalidPeerChainIdZero#
The peer chain ID cannot be zero. (Defined in NttManager.sol)
InvalidPeerDecimals#
The peer cannot have zero decimals. (Defined in NttManager.sol)
InvalidPeerSameChainId#
The peer cannot be on the same chain. (Defined in NttManager.sol)
InvalidPeerZeroAddress#
The peer cannot be the zero address. (Defined in NttManager.sol)
InvalidRecipient#
Error when the recipient is invalid. (Defined in NttManager.sol)
InvalidRefundAddress#
Error when the refund address is invalid. (Defined in NttManager.sol)
InvalidTargetChain#
Error when trying to execute a message on an unintended target chain. (Defined in NttManager.sol)
Parameters
targetChain uint16
The target chain ID from the message.
thisChain uint16
The current chain ID.
InvalidTransceiverZeroAddress#
Error when the transceiver is the zero address. (Defined in TransceiverRegistry.sol)
MessageNotApproved#
Error when the message is not approved. (Defined in ManagerBase.sol)
Parameters
msgHash bytes32
The hash of the message that is not approved.
NoEnabledTransceivers#
There are no transceivers enabled with the Manager. (Defined in ManagerBase.sol)
NonRegisteredTransceiver#
Error when attempting to remove a transceiver that is not registered. (Defined in TransceiverRegistry.sol)
Parameters
transceiver address
The non-registered transceiver address.
NotEnoughCapacity#
Not enough capacity to send the transfer. (Defined in RateLimiter.sol)
Parameters
currentCapacity uint256
The current available capacity.
amount uint256
The requested transfer amount.
NotInitializing#
Error when a function can only be called during initialization. (Defined in Initializable.sol)
NotMigrating#
Error when a function can only be called during migration. (Defined in Implementation.sol)
NotImplemented#
Feature is not implemented. (Defined in INttManager.sol)
OnlyDelegateCall#
Error when a function can only be called via delegate call. (Defined in Implementation.sol)
OwnableInvalidOwner#
Error when the owner is not a valid owner account. (Defined in OwnableUpgradeable.sol)
Parameters
owner address
The invalid owner address.
OwnableUnauthorizedAccount#
Error when the caller account is not authorized to perform an operation. (Defined in OwnableUpgradeable.sol)
Parameters
account address
The unauthorized account address.
OutboundQueuedTransferNotFound#
Outbound transfer is no longer queued. (Defined in RateLimiter.sol)
Parameters
queueSequence uint64
The sequence number of the queued transfer.
OutboundQueuedTransferStillQueued#
Cannot complete the outbound transfer. The transfer is still queued. (Defined in RateLimiter.sol)
Parameters
queueSequence uint64
The sequence number of the queued transfer.
transferTimestamp uint256
The timestamp of the transfer.
PeerNotRegistered#
Error when the manager doesn't have a peer registered for the destination chain. (Defined in ManagerBase.sol)
Parameters
chainId uint16
The chain ID for which no peer is registered.
RefundFailed#
Error when the refund to the sender fails. (Defined in ManagerBase.sol)
Parameters
refundAmount uint256
The amount that failed to be refunded.
RequireContractIsNotPaused#
Error when a function requires the contract to not be paused. (Defined in PausableUpgradeable.sol)
RequireContractIsPaused#
Error when a function requires the contract to be paused. (Defined in PausableUpgradeable.sol)
RetrievedIncorrectRegisteredTransceivers#
Retrieved an incorrect number of registered transceivers. (Defined in ManagerBase.sol)
Parameters
retrieved uint256
The number of transceivers retrieved.
registered uint256
The number of transceivers that should be registered.
StaticcallFailed#
Staticcall reverted. (Defined in NttManager.sol)
ThresholdTooHigh#
The threshold for transceiver attestations is too high. (Defined in ManagerBase.sol)
Parameters
threshold uint256
The requested threshold value.
transceivers uint256
The number of available transceivers.
TooManyTransceivers#
Error when the number of registered transceivers exceeds 64. (Defined in TransceiverRegistry.sol)
TransceiverAlreadyAttestedToMessage#
Error when the transceiver already attested to the message. (Defined in ManagerBase.sol)
Parameters
nttManagerMessageHash bytes32
The hash of the NTT Manager message.
TransceiverAlreadyEnabled#
Error when attempting to enable a transceiver that is already enabled. (Defined in TransceiverRegistry.sol)
Parameters
transceiver address
The already enabled transceiver address.
TransferAmountHasDust#
The transfer has some dust. (Defined in NttManager.sol)
Parameters
amount uint256
The transfer amount.
dust uint256
The dust amount.
UndefinedRateLimiting#
If the rate limiting behavior isn't explicitly defined in the constructor. (Defined in IRateLimiter.sol)
UnexpectedDeployer#
The caller is not the deployer. (Defined in NttManager.sol)
Parameters
expectedOwner address
The expected owner address.
owner address
The actual owner address.
UnexpectedMsgValue#
An unexpected msg.value was passed with the call. (Defined in NttManager.sol)
ZeroAmount#
Error when the transfer amount is zero. (Defined in NttManager.sol)
ZeroThreshold#
The number of thresholds should not be zero. (Defined in ManagerBase.sol)
TransferAlreadyCompleted#
Thrown when trying to complete an inbound transfer that was already processed. (Defined in NttManager.sol)
Parameters
digest bytes32
The digest of the transfer message that has already been completed.
UnexpectedRecipientNttManagerAddress#
Thrown when the recipient NTT Manager address in the message does not match this contract. (Defined in NttManager.sol)
Parameters
recipientNttManagerAddress bytes32
The unexpected NTT Manager address from the message.