Skip to content

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

  • token address: Address of the token that this NTT Manager is tied to.
  • mode Mode: Mode of the NTT Manager (LOCKING=0 or BURNING=1).
  • chainId uint16: Wormhole chain ID that the NTT Manager is deployed on.
  • NTT_MANAGER_VERSION string: The version string of the NttManager contract implementation.
  • rateLimitDuration uint64: Duration (in seconds) until limits fully replenish.

Cross-chain Peers and Governance Thresholds

  • peers mapping(uint16 ⇒ NttManagerPeer): Mapping of peer chain IDs to their peer NTT Manager address and token decimals.
  • messageAttestations mapping(bytes32 ⇒ AttestationInfo): Tracks whether a message has been executed and the bitmap of transceivers that have attested to it.
  • THRESHOLD_SLOT uint8: Number of attestation approvals required for message execution.
  • MESSAGE_SEQUENCE_SLOT uint64: Monotonic sequence number for outgoing messages.

Rate Limiting and Queues

  • rateLimitDuration uint64: Duration (in seconds) until limits fully replenish.
  • outboundLimitParams RateLimitParams: Parameters controlling outbound transfer rate limits, including capacity and last transaction timestamp.
  • inboundLimitParams mapping(uint16 ⇒ RateLimitParams): Parameters controlling inbound transfer rate limits per peer chain.
  • outboundQueue mapping(uint64 ⇒ OutboundQueuedTransfer): Queue of outbound transfers when rate limits are exceeded, keyed by sequence number.
  • inboundQueue mapping(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)

event InboundTransferLimitUpdated(
    uint16 chainId,
    uint256 oldLimit,
    uint256 newLimit
)
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)

event InboundTransferQueued(bytes32 digest)
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)

event MessageAlreadyExecuted(
    bytes32 indexed sourceNttManager,
    bytes32 indexed digest
)
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)

event MessageAttestedTo(bytes32 digest, address transceiver, uint8 index)
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)

event NotPaused(bool notPaused)
Parameters

notPaused bool

Whether the contract is not paused.

OutboundTransferCancelled

Emitted when an outbound transfer has been cancelled. (Defined in NttManager.sol)

event OutboundTransferCancelled(uint256 sequence, address recipient, uint256 amount)
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)

event OutboundTransferLimitUpdated(uint256 oldLimit, uint256 newLimit)
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)

event OutboundTransferQueued(uint64 sequence)
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)

event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
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)

event Paused(bool paused)
Parameters

paused bool

Whether the contract is paused.

PauserTransferred

Emitted when pauser capability is transferred. (Defined in PausableUpgradeable.sol)

event PauserTransferred(address indexed oldPauser, address indexed newPauser)
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)

event ThresholdChanged(uint8 oldThreshold, uint8 threshold)
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)

event TransceiverAdded(address transceiver, uint256 transceiversNum, uint8 threshold)
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)

event TransceiverRemoved(address transceiver, uint8 threshold)
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)

event TransferRedeemed(bytes32 indexed digest)
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)

event TransferSent(bytes32 indexed digest)
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), OutboundTransferCancelled or TransferRedeemed (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)

function cancelOutboundQueuedTransfer(uint64 messageSequence) external
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)

function completeInboundQueuedTransfer(bytes32 digest) external
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)

function completeOutboundQueuedTransfer(uint64 messageSequence) external payable returns (uint64)
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, or TransferRedeemed (depending on the transfer type)

getCurrentInboundCapacity

Returns the currently remaining inbound capacity from a chain. (Defined in RateLimiter.sol)

function getCurrentInboundCapacity(uint16 chainId) external view returns (uint256)
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)

function getCurrentOutboundCapacity() public view returns (uint256)
Returns

capacity uint256

The current available outbound capacity.

getInboundLimitParams

Returns the inbound rate limit parameters for a chain. (Defined in RateLimiter.sol)

function getInboundLimitParams(uint16 chainId_) external view returns (RateLimitParams memory)
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)

function getMode() public view returns (uint8)
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)

function getMigratesImmutables() external view returns (bool)
Returns

migrates bool

Whether the contract migrates immutables.

getOutboundLimitParams

Returns the outbound rate limit parameters. (Defined in RateLimiter.sol)

function getOutboundLimitParams() public pure virtual returns (RateLimitParams memory)
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)

function getPeer(uint16 chainId_) external view returns (NttManagerPeer memory)
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)

function getThreshold() external view returns (uint8)
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)

function getTransceiverInfo() external view returns (TransceiverInfo[] memory)
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)

function getTransceivers() external pure returns (address[] memory result)
Returns

result address[] memory

An array of enabled transceiver addresses.

initialize

Initializes the contract. (Defined in Implementation.sol)

function initialize() external payable

isMessageApproved

Checks if a message has been approved with at least the minimum threshold of attestations from distinct endpoints. (Defined in ManagerBase.sol)

function isMessageApproved(bytes32 digest) external view returns (bool)
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)

function isMessageExecuted(bytes32 digest) external view returns (bool)
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)

function isPaused() external view returns (bool)
Returns

paused bool

Whether the contract is paused.

messageAttestations

Returns the number of attestations for a given message. (Defined in ManagerBase.sol)

function messageAttestations(bytes32 digest) external view returns (uint8)
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)

function migrate() external

nextMessageSequence

Returns the next message sequence. (Defined in ManagerBase.sol)

function nextMessageSequence() external view returns (uint64)
Returns

sequence uint64

The next message sequence number.

owner

Returns the address of the current owner. (Defined in OwnableUpgradeable.sol)

function owner() external view returns (address)
Returns

owner address

The address of the current owner.

pause

Pauses the manager. (Defined in ManagerBase.sol)

function pause() external

Emits: Paused

pauser

Returns the current pauser account address. (Defined in PausableUpgradeable.sol)

function pauser() external view returns (address)
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)

function removeTransceiver(address transceiver) external
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)

function setInboundLimit(uint256 limit, uint16 chainId_) external
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)

function setOutboundLimit(uint256 limit) external
Parameters

limit uint256

The new outbound transfer limit.

setPeer

Set peer contract information for a specific chain. (Defined in NttManager.sol)

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)

function setThreshold(uint8 threshold) external
Parameters

threshold uint8

The number of attestations required.

Emits: ThresholdChanged

setTransceiver

Sets the transceiver for the given chain. (Defined in ManagerBase.sol)

function setTransceiver(address transceiver) external
Parameters

transceiver address

The address of the transceiver contract.

Emits: TransceiverAdded

tokenDecimals

Returns the number of decimals for the token. (Defined in NttManager.sol)

function tokenDecimals() external view returns (uint8)
Returns

decimals uint8

The number of decimals for the token.

transceiverAttestedToMessage

Returns if the transceiver has attested to the message. (Defined in ManagerBase.sol)

function transceiverAttestedToMessage(bytes32 digest, uint8 index) external view returns (bool)
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)

function transferOwnership(address newOwner) external
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)

function transferPauserCapability(address newPauser) external
Parameters

newPauser address

The address of the new pauser.

Emits: PauserTransferred

upgrade

Upgrades to a new manager implementation. (Defined in ManagerBase.sol)

function upgrade(address newImplementation) external
Parameters

newImplementation address

The address of the new implementation contract.

unpause

Unpauses the manager. (Defined in ManagerBase.sol)

function unpause() external

Emits: NotPaused

Errors

BurnAmountDifferentThanBalanceDiff

Error when the burn amount differs from the balance difference. (Defined in NttManager.sol)

error BurnAmountDifferentThanBalanceDiff(uint256 burnAmount, uint256 balanceDiff);
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)

error CallerNotTransceiver(address caller);
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)

error CancellerNotSender(address canceller, address sender);
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)

error CapacityCannotExceedLimit(TrimmedAmount newCurrentCapacity, TrimmedAmount newLimit);
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)

error DeliveryPaymentTooLow(uint256 requiredPayment, uint256 providedPayment);
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)

error DisabledTransceiver(address transceiver);
Parameters

transceiver address

The disabled transceiver address.

InboundQueuedTransferNotFound

The inbound transfer is no longer queued. (Defined in RateLimiter.sol)

error InboundQueuedTransferNotFound(bytes32 digest);
Parameters

digest bytes32

The digest of the queued transfer.

InboundQueuedTransferStillQueued

The transfer is still queued. (Defined in RateLimiter.sol)

error InboundQueuedTransferStillQueued(bytes32 digest, uint256 transferTimestamp);
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)

error InvalidInitialization();

InvalidMode

The mode is invalid (neither LOCKING nor BURNING). (Defined in NttManager.sol)

error InvalidMode(uint8 mode);
Parameters

mode uint8

The invalid mode value.

InvalidPauser

Error when the pauser is not a valid pauser account. (Defined in PausableUpgradeable.sol)

error InvalidPauser(address account);
Parameters

account address

The invalid pauser account address.

InvalidPeer

The peer for the chain does not match the configuration. (Defined in NttManager.sol)

error InvalidPeer(uint16 chainId, bytes32 peerAddress);
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)

error InvalidPeerChainIdZero();

InvalidPeerDecimals

The peer cannot have zero decimals. (Defined in NttManager.sol)

error InvalidPeerDecimals();

InvalidPeerSameChainId

The peer cannot be on the same chain. (Defined in NttManager.sol)

error InvalidPeerSameChainId();

InvalidPeerZeroAddress

The peer cannot be the zero address. (Defined in NttManager.sol)

error InvalidPeerZeroAddress();

InvalidRecipient

Error when the recipient is invalid. (Defined in NttManager.sol)

error InvalidRecipient();

InvalidRefundAddress

Error when the refund address is invalid. (Defined in NttManager.sol)

error InvalidRefundAddress();

InvalidTargetChain

Error when trying to execute a message on an unintended target chain. (Defined in NttManager.sol)

error InvalidTargetChain(uint16 targetChain, uint16 thisChain);
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)

error InvalidTransceiverZeroAddress();

MessageNotApproved

Error when the message is not approved. (Defined in ManagerBase.sol)

error MessageNotApproved(bytes32 msgHash);
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)

error NoEnabledTransceivers();

NonRegisteredTransceiver

Error when attempting to remove a transceiver that is not registered. (Defined in TransceiverRegistry.sol)

error NonRegisteredTransceiver(address transceiver);
Parameters

transceiver address

The non-registered transceiver address.

NotEnoughCapacity

Not enough capacity to send the transfer. (Defined in RateLimiter.sol)

error NotEnoughCapacity(uint256 currentCapacity, uint256 amount);
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)

error NotInitializing();

NotMigrating

Error when a function can only be called during migration. (Defined in Implementation.sol)

error NotMigrating();

NotImplemented

Feature is not implemented. (Defined in INttManager.sol)

error NotImplemented();

OnlyDelegateCall

Error when a function can only be called via delegate call. (Defined in Implementation.sol)

error OnlyDelegateCall();

OwnableInvalidOwner

Error when the owner is not a valid owner account. (Defined in OwnableUpgradeable.sol)

error OwnableInvalidOwner(address owner);
Parameters

owner address

The invalid owner address.

OwnableUnauthorizedAccount

Error when the caller account is not authorized to perform an operation. (Defined in OwnableUpgradeable.sol)

error OwnableUnauthorizedAccount(address account);
Parameters

account address

The unauthorized account address.

OutboundQueuedTransferNotFound

Outbound transfer is no longer queued. (Defined in RateLimiter.sol)

error OutboundQueuedTransferNotFound(uint64 queueSequence);
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)

error OutboundQueuedTransferStillQueued(uint64 queueSequence, uint256 transferTimestamp);
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)

error PeerNotRegistered(uint16 chainId);
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)

error RefundFailed(uint256 refundAmount);
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)

error RequireContractIsNotPaused();

RequireContractIsPaused

Error when a function requires the contract to be paused. (Defined in PausableUpgradeable.sol)

error RequireContractIsPaused();

RetrievedIncorrectRegisteredTransceivers

Retrieved an incorrect number of registered transceivers. (Defined in ManagerBase.sol)

error RetrievedIncorrectRegisteredTransceivers(uint256 retrieved, uint256 registered);
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)

error StaticcallFailed();

ThresholdTooHigh

The threshold for transceiver attestations is too high. (Defined in ManagerBase.sol)

error ThresholdTooHigh(uint256 threshold, uint256 transceivers);
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)

error TooManyTransceivers();

TransceiverAlreadyAttestedToMessage

Error when the transceiver already attested to the message. (Defined in ManagerBase.sol)

error TransceiverAlreadyAttestedToMessage(bytes32 nttManagerMessageHash);
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)

error TransceiverAlreadyEnabled(address transceiver);
Parameters

transceiver address

The already enabled transceiver address.

TransferAmountHasDust

The transfer has some dust. (Defined in NttManager.sol)

error TransferAmountHasDust(uint256 amount, uint256 dust);
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 RateLimiter.sol)

error UndefinedRateLimiting();

UnexpectedDeployer

The caller is not the deployer. (Defined in NttManager.sol)

error UnexpectedDeployer(address expectedOwner, address owner);
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)

error UnexpectedMsgValue();

ZeroAmount

Error when the transfer amount is zero. (Defined in NttManager.sol)

error ZeroAmount();

ZeroThreshold

The number of thresholds should not be zero. (Defined in ManagerBase.sol)

error ZeroThreshold();

TransferAlreadyCompleted

Thrown when trying to complete an inbound transfer that was already processed. (Defined in NttManager.sol)

error TransferAlreadyCompleted(bytes32 digest);
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)

error UnexpectedRecipientNttManagerAddress(bytes32 recipientNttManagerAddress);
Parameters

recipientNttManagerAddress bytes32

The unexpected NTT Manager address from the message.