onlyRegistrar onlyRegistrar() modifier

Modifier to make a function callable only if caller is granted with REGISTRAR_ROLE.

registerTokenManager registerTokenManager(contract TokenManager newTokenManager) external

Register new token manager.


removeTokenManager removeTokenManager(contract TokenManager tokenManagerAddress) external

Cancel registration of token manager.


connectSchain connectSchain(string schainName, address[] tokenManagerAddresses) external

Register new SKALE chain.


  • Function caller has to be granted with REGISTRAR_ROLE.

  • Direct messaging between SKALE chains must be allowed.

  • Amount of token managers on target SKALE chain must be equal to the amount on current one.

postMessage postMessage(bytes32 fromChainHash, address sender, bytes data) → address external

Allows MessageProxy to post operational message from mainnet or SKALE chains.


  • MessageProxy must be the caller of the function.

  • Linker must be an origin of the message on mainnet.

  • The message must come from the mainnet.

  • The message must contains information about interchain connection allowance.

  • Interchain connection allowance in the message must be different from the current one.

disconnectSchain disconnectSchain(string schainName) external

Cancel registration of linked SKALE chain.


hasTokenManager hasTokenManager(contract TokenManager tokenManager) → bool external

Check if TokenManager is registered in IMA.

hasSchain hasSchain(string schainName) → bool connected external

Check if SKALE chain with name {schainName} is registered in IMA.

initialize initialize(contract MessageProxy newMessageProxyAddress, address linker) external

Is called once during contract deployment.

InterchainConnectionAllowed InterchainConnectionAllowed(bool isAllowed) event

Emitted when interchainConnections was changed.