NFTDelegation.com
  • 👋Welcome to NFTDelegation
  • Overview
    • ✨Features
    • 💡Use Cases
  • Guides
    • â„šī¸How to Register
      • 📃How to Register a Delegation?
      • 👩‍đŸ’ŧHow to Register a Delegation Manager?
      • 🤝How to Register a Consolidation?
      • 📄How to Register a Delegation/ Consolidation/Delegation Manager (Advanced)?
      • 🔐How to Delegate using SAFE (formerly GNOSIS) using the Transaction Builder?
    • â„šī¸How to View
      • 📃How to View Your Delegations?
      • 👩‍đŸ’ŧHow to View Your Delegation Managers (Sub-Delegations)?
      • 🤝How to View Your Consolidations?
    • â„šī¸How to Manage
      • 📃How to Update a Delegation/Delegation Manager/Consolidation?
      • 👩‍đŸ’ŧHow to Revoke a Delegation/Delegation Manager/Consolidation?
    • â„šī¸How to Manage using Delegation Management (Sub-Delegation) Rights
      • 📃How to Register a Delegation Using Delegation Management (Sub-Delegation) Rights?
      • 👩‍đŸ’ŧHow to Revoke a Delegation Using Delegation Management (Sub-Delegation) Rights?
    • â„šī¸How to Lock
      • 🔒How to Globally Lock Your Wallet ?
      • 🔒How to Lock Your Wallet for a Specific Collection?
      • 🔒How to Lock Your Wallet for a Specific Use Case on a Collection?
    • â„šī¸How to Unlock
      • 🔓How to Globally Unlock Your Wallet ?
      • 🔓How to Unlock Your Wallet for a Specific Collection?
      • 🔓How to Unlock Your Wallet for a Specific Use Case?
  • Three Address Protocol (TAP)
    • 💡What is TAP?
    • 💡How to Register Delegations (TAP)?
    • 💡How to Register Consolidations (TAP)?
  • Developer Center
    • 💡General Info
    • 📔Contract Addresses
    • 📖Getter Functions
    • âœī¸Setter Functions
    • 📄INFTDelegationRead.sol
    • 📄INFTDelegationWrite.sol
    • đŸ–Ĩī¸NFTDelegation Integrations
      • 🔗Retrieve Calls
      • 🔗ERC721 Integration
  • Resources
    • NFTDelegation.com
    • Github
    • Dune Dashboard
Powered by GitBook
On this page
  1. Developer Center

INFTDelegationWrite.sol

This page provides the solidity Interface for all Setter functions (Write functions) of the NFTDelegation.com Smart Contract.

//SPDX-License-Identifier: MIT

/**
 * @dev Interface for all Setter functions (Write functions) of the NFTDelegation.com Smart Contract
 */

pragma solidity ^0.8.18;

interface INFTDelegationWrite {

    /**
     * @notice This function allows a Delegator to register a delegation address on a specific usecase on a certain collection
     */

    function registerDelegationAddress(address _collectionAddress, address _delegationAddress, uint256 _expiryDate, uint256 _useCase, bool _allTokens, uint256 _tokenId) external;

    /**
     * @notice This function allows a wallet address that has sub-delegation rights to register a delegation address on a specific usecase on a certain collection on behalf of a delegator
     */

    function registerDelegationAddressUsingSubDelegation(address _delegatorAddress, address _collectionAddress, address _delegationAddress, uint256 _expiryDate, uint256 _useCase, bool _allTokens, uint256 _tokenId) external;

    /**
     * @notice This function allows a Delegator to revoke a delegation address from a specific usecase for a certain collection
     */

    function revokeDelegationAddress(address _collectionAddress, address _delegationAddress, uint256 _useCase) external;

    /**
     * @notice This function allows a wallet address that has sub-delegation rights to revoke a delegation address from a specific usecase for a certain collection on behalf of a delegator
     */

    function revokeDelegationAddressUsingSubdelegation(address _delegatorAddress, address _collectionAddress, address _delegationAddress, uint256 _useCase) external;

    /**
     * @notice This function allows a Delegator to update a delegation address, already registered, on a specific use case on a certain collection
     */

    function updateDelegationAddress(address _collectionAddress, address _olddelegationAddress, address _newdelegationAddress, uint256 _expiryDate, uint256 _useCase, bool _allTokens, uint256 _tokenId) external;

    /**
     * @notice This function allows a Delegator to register up to 5 delegation addresses on various usecases on various collections
     */

    function batchDelegations(address[] memory _collectionAddresses, address[] memory _delegationAddresses, uint256[] memory _expiryDates, uint256[] memory _useCases, bool[] memory _allTokens, uint256[] memory _tokenIds) external;
    
    /**
     * @notice This function allows a Delegator to revoke up to 5 delegation addresses
     */

    function batchRevocations(address[] memory _collectionAddresses, address[] memory _delegationAddresses, uint256[] memory _useCases) external;

    /**
     * @notice This function allows a wallet address to be locked globally
     */

    function setGlobalLock(bool _status) external;

    /**
     * @notice This function allows a wallet address to be locked on a collection
     */

    function setCollectionLock(address _collectionAddress, bool _status) external;

    /**
     * @notice This function allows a wallet address to be locked on a specific use case on a collection
     */

    function setCollectionUsecaseLock(address _collectionAddress, uint256 _useCase, bool _status) external;

    /**
     * @notice This function allows a wallet address to update the number of use cases
     */

    function updateUseCaseCounter() external;

}
PreviousINFTDelegationRead.solNextNFTDelegation Integrations

Last updated 1 year ago

📄