Docs
Reference
Contract documentation
tokenvault
BaseNFTVault

BaseNFTVault

Abstract contract for bridging NFTs across different chains.

CanonicalNFT

struct CanonicalNFT {
  uint256 chainId;
  address addr;
  string symbol;
  string name;
}

BridgeTransferOp

struct BridgeTransferOp {
  uint256 destChainId;
  address to;
  address token;
  uint256[] tokenIds;
  uint256[] amounts;
  uint256 gasLimit;
  uint256 fee;
  address refundTo;
  string memo;
}

ERC1155_INTERFACE_ID

bytes4 ERC1155_INTERFACE_ID

ERC721_INTERFACE_ID

bytes4 ERC721_INTERFACE_ID

isBridgedToken

mapping(address => bool) isBridgedToken

bridgedToCanonical

mapping(address => struct BaseNFTVault.CanonicalNFT) bridgedToCanonical

canonicalToBridged

mapping(uint256 => mapping(address => address)) canonicalToBridged

BridgedTokenDeployed

event BridgedTokenDeployed(uint256 chainId, address ctoken, address btoken, string ctokenSymbol, string ctokenName)

TokenSent

event TokenSent(bytes32 msgHash, address from, address to, uint256 destChainId, address token, uint256[] tokenIds, uint256[] amounts)

TokenReleased

event TokenReleased(bytes32 msgHash, address from, address token, uint256[] tokenIds, uint256[] amounts)

TokenReceived

event TokenReceived(bytes32 msgHash, address from, address to, uint256 srcChainId, address token, uint256[] tokenIds, uint256[] amounts)

VAULT_INVALID_TO

error VAULT_INVALID_TO()

VAULT_INVALID_TOKEN

error VAULT_INVALID_TOKEN()

VAULT_INVALID_AMOUNT

error VAULT_INVALID_AMOUNT()

VAULT_INVALID_USER

error VAULT_INVALID_USER()

VAULT_INVALID_FROM

error VAULT_INVALID_FROM()

VAULT_INVALID_SRC_CHAIN_ID

error VAULT_INVALID_SRC_CHAIN_ID()

VAULT_INTERFACE_NOT_SUPPORTED

error VAULT_INTERFACE_NOT_SUPPORTED()

VAULT_MESSAGE_NOT_FAILED

error VAULT_MESSAGE_NOT_FAILED()

VAULT_MESSAGE_RELEASED_ALREADY

error VAULT_MESSAGE_RELEASED_ALREADY()

VAULT_TOKEN_ARRAY_MISMATCH

error VAULT_TOKEN_ARRAY_MISMATCH()

VAULT_MAX_TOKEN_PER_TXN_EXCEEDED

error VAULT_MAX_TOKEN_PER_TXN_EXCEEDED()

init

function init(address addressManager) external

Initializes the contract with an address manager.

Parameters

NameTypeDescription
addressManageraddressThe address of the address manager.