Lucid
  • USING LUCID
    • Welcome to Lucid
    • Homepage
    • Explore Page
    • Organisation Summary Page
    • Sidebar Navigation
  • Organisation Creation Page
  • Creating an Organisation
    • 1. Setup Organisation Details
    • 2. Module Selection
    • 3. Module Configuration
    • 4. Safe and Protocol Upgrades Configuration
    • 5. Governor Configuration
    • 6. Veto and Multi-Bridge Configuration
    • 7. Token Configuration
    • 8. Asset Transfer Portals Configuration
    • 9. Review and Deploy Organisation
    • 10. Lucid Post-Deployment Integration
  • Editing an Organisation
  • Modules and integrations
    • Multi-Bridge
      • Multi-Bridge Asset Transfers
      • Multi-Bridge Message and Asset Transfers
      • Resend Transaction
    • Bridge Portals
    • Vested Emission Offerings (VEOs)
      • VEO Purchase Flow
      • VEO Creation Flow
      • VEO Removal Flow
      • Claiming Vested Tokens
    • Wizard | Protocol Upgrades
  • Developer Reference
    • VEOs
      • Vesting Options
      • Price Models
      • Debt Buffer
      • Deposit Interval
    • Message Bridging
      • Sending a Message
      • Message Execution
      • Admin Functions
    • Asset Bridging
      • Bridging Assets
      • Admin Functions
    • Adapters
      • Axelar Adapter
      • CCIP Adapter
      • Connext Adapter
      • Hyperlane Adapter
      • LayerZero Adapter
      • Polymer Adapter
      • Wormhole Adapter
    • Deployed Contracts
      • Multibridge Contracts
      • VEO Contracts
  • API Reference
  • RESOURCES
    • About
    • Fees
      • Lucid Pricing and Fee Structure
      • Fee Estimates for Bridges
    • Frequently Asked Questions
    • Key Terms and Explanations
    • Contact
Powered by GitBook
On this page
  • Access Control
  • Admin functions
  • setLocalAdapter
  • setMinBridges
  • setMultipleBridgeAdapters
  • setControllerForChain
  • Pause functions
  • pause
  • unpause
  1. Developer Reference
  2. Asset Bridging

Admin Functions

PreviousBridging AssetsNextAdapters

Last updated 1 month ago

Access Control

The Asset Controller contract uses OpenZeppelin’s module. To grant, revoke, or check roles for an address, use the standard functions available in the AccessControl contract.

The following roles are available:

Role
keccak256 hash
Description

DEFAULT_ADMIN_ROLE

0x0000000000000000000000000000000000000000000000000000000000000000

Full access to all admin functions

PAUSE_ROLE

0x139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d

Can pause the message sending, resending and execution functions

Admin functions

The following functions can only be called by an account with the DEFAULT_ADMIN_ROLE role.

setLocalAdapter

Sets the local bridge adapters on the same chain that can be used to relay messages to the Controller contract. If a Registry has been set, the local adapters configured through this function will not be taken into account.

function setLocalAdapter(address[] memory adapters, bool[] memory enabled) public;
Name
Type
Description

adapters

address[]

An array of adapter addresses to enable/disable

enabled

bool[]

An array of boolean values to enable or disable the corresponding adapters in adapters. Both arrays must have the same length


setMinBridges

Sets the minimum number of bridges required to relay an asset when performing multi-bridge transfers without mint/burn limits. Setting this value to 0 will disable multi-bridge transfers entirely.

function setMinBridges(uint256 _minBridges) public;
Name
Type
Description

_minBridges

uint256

The minimum number of bridges required.


setMultipleBridgeAdapters

Adds a bridge adapter to the whitelist of adapters that can be used for multi-bridge transfers without applying mint/burn limits.

function setMultiBridgeAdapters(address[] memory adapter, bool[] memory enabled) public;

Input Params:

Name
Type
Description

adapter

address[]

An array of adapter addresses of the bridge adapters.

enabled

bool[]

An array of the status of the adapters. True to enable, false to disable. Adapterand enabled must have the same length.


setControllerForChain

Sets the controller contract addresses for the specified chain IDs. To disable a controller on a given chain, its address should be set to the zero address (address(0)).

function setMessageOriginators(address[] memory originators, bool[] memory enabled) public

Input params:

Name
Type
Description

chainId

uint256[]

An array of chain id to set controllers for

controller

address[]

An array of controller addresses to set for the corresponding chainIds. Both arrays must have the same length.


Pause functions

The following functions can only be called by accounts with the PAUSE_ROLE:

pause

Pauses the contract. This disables the following functions: execute(), sendMessage()and resendMessage() .

 function pause() public;

unpause

Unpauses the contract, re-enabling the functions listed above.

 function unpause() public;

AccessControl