Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create CrossVMBridgeFulfillment.sol contracts #166

Open
sisyphusSmiling opened this issue Feb 7, 2025 · 0 comments · May be fixed by #168
Open

Create CrossVMBridgeFulfillment.sol contracts #166

sisyphusSmiling opened this issue Feb 7, 2025 · 0 comments · May be fixed by #168
Assignees
Labels

Comments

@sisyphusSmiling
Copy link
Contributor

Description

Define the contracts required for the bridge to fulfill Cadence-native contracts into EVM

abstract contract CrossVMBridgeFulfillment is ERC721, ICrossVMBridgeFulfillment {
    /**
     * Sets the bridge EVM address such that only the bridge COA can call the privileged methods
     */
    constructor(address vmBridge)
    /**
     * Modifier restricting access to the designated VM bridge EVM address 
     */
    modifier onlyVMBridge()
    /**
     * Returns the designated VM bridge’s EVM address
     */
    function getVMBridgeAddress() public view returns (address)
    /**
     * Fulfills the bridge request, minting (if non-existent) or transferring (if escrowed) the NFT with given ID to
     * the provided address
     */
    function fulfillToEVM(address to, uint256 id, bytes data) external onlyVMBridge
    /**
     * ERC165 - Allows a caller to determine the contract conforms to the `ICrossVMFulfillment` interface
     */
    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Todo
Status: 🏗 In Progress
Development

Successfully merging a pull request may close this issue.

1 participant