Providing Contract

Address

Address : (not yet deployed) on Klaytn Blockchain Main-net

Summary

A providing contract defines the rules that are provided for providing a project in Otherworld.

  • Defines a Provider account.

  • Defines the royalty rate.

    • Defines the Provider's royalty rate.

    • Defines the Operator's royalty rate.

    • Defines the Associator's royalty rate.

    • Defines the Creator's royalty rate.

    • Defines the royalty rate of the DAO fund.

  • Defines the project details.

    • A project can contain multiple collections.

    • A project can contain multiple universes.

    • Defines an Operator account.

    • Define an Associator account.

    • Defines the DAO fund account.

    • Defines the metadata URL for the project.

  • Defines the universe details.

    • A universe can contain multiple collections.

    • Defines the metadata URL for the universe.

  • Defines the collection details.

    • Define token contracts (KIP-17, KIP-37) on a per-collection basis.

    • A collection can be in multiple universes.

    • Defines the Creator account.

    • Defines the metadata URL for the collection.

Data

Base

Name
Type

Provider

Address

NLS

Address

Provider Rate

Uint

Operator Rate

Uint

Associator Rate

Uint

Creator Rate

Uint

DAO Rate

Uint

Royalty Denominator

Uint

Created Timestamp

Uint

Project

Name
Type

ID

Uint

Metadata URL

String

Operator

Address

NLS Operation

Boolean

Operator Sequence

Uint

Operator Expiration Timestamp

Uint

Associator

Address

NLS Association

Boolean

DAO

Address

Is Active

Boolean

Created Timestamp

Uint

Project Metadata (IPFS URL)

Name
Type

Name

String

Description EN

String

Description KR

String

Description JP

String

Thumbnail Image URL

String

Background F Image URL

String

Background B Image URL

String
Name
Type

Name

String

Description EN

String

Description KR

String

Description JP

String

Collection

Name
Type

ID

Uint

Project ID

Uint

Metadata URL

String

Creator

Address

NLS Creation

Boolean

Token Contract

Address

Is Active

Boolean

Created Timestamp

Uint

Collection Metadata (IPFS URL)

Name
Type

Name

String

Symbol

String

NLS License

Boolean

Description EN

String

Description KR

String

Description JP

String

Background F Image URL

String

Background B Image URL

String

Event

Set Royalty Info

Name
Type

Denominator

Uint

Provider Rate

Uint

Operator Rate

Uint

Associator Rate

Uint

Creator Rate

Uint

DAO Rate

Uint

Set Provider

Name
Type

Provider

Address

Set NLS

Name
Type

NLS

Address

인터페이스

interface IOWProviding {
    function setRoyaltyInfo(
        uint96 _denominator,
        uint96 _providerRate,
        uint96 _operatorRate,
        uint96 _associatorRate,
        uint96 _creatorRate,
        uint96 _DAORate
    ) external;

    function getRoyaltyInfo()
        external
        view
        returns (ProvidingBase.RoyaltyInfo memory);

    function addProject(
        uint256 _operatorExpirationTimestamp,
        address payable _operator,
        address payable _associator,
        address payable _DAO,
        string calldata _URL
    ) external;

    function setProjectURL(uint256 _projectId, string calldata _URL) external;

    function setProjectOperator(uint256 _projectId, address payable _operator)
        external;

    function setProjectOperatorEXPTime(
        uint256 _projectId,
        uint256 _operatorExpirationTimestamp
    ) external;

    function setProjectNextOperator(
        uint256 _projectId,
        address payable _operator,
        uint256 _operatorExpirationTimestamp
    ) external;

    function setProjectAssociator(
        uint256 _projectId,
        address payable _associator
    ) external;

    function setProjectDAO(uint256 _projectId, address payable _DAO) external;

    function setProjectActive(uint256 _projectId, bool _isActive) external;

    function isExistProjectById(uint256 _projectId)
        external
        view
        returns (bool);

    function isActiveProject(uint256 _projectId) external view returns (bool);

    function getProjectById(uint256 _projectId)
        external
        view
        returns (ProvidingBase.Project memory);

    function getActiveProjectIds() external view returns (uint256[] memory);

    function getProjectIdByCollectionId(uint256 _collectionId)
        external
        view
        returns (uint256);

    function addUniverse(uint256 _projectId, string calldata _URL) external;

    function setUniverseURL(uint256 _universeId, string calldata _URL) external;

    function setUniverseProject(uint256 _universeId, uint256 _projectId)
        external;

    function setUniverseActive(uint256 _universeId, bool _isActive) external;

    function addCollectionOfUniverse(uint256 _universeId, uint256 _collectionId)
        external;

    function removeCollectionOfUniverse(
        uint256 _universeId,
        uint256 _collectionId
    ) external;

    function isExistUniverseById(uint256 _universeId)
        external
        view
        returns (bool);

    function isActiveUniverse(uint256 _universeId) external view returns (bool);

    function isValidUniverse(uint256 _universeId, uint256 _projectId)
        external
        view
        returns (bool);

    function getUniverseById(uint256 _universeId)
        external
        view
        returns (ProvidingBase.Universe memory, uint256[] memory);

    function getUniverseIdOfProject(uint256 _projectId, bool _activeFilter)
        external
        view
        returns (uint256[] memory);

    function addCollection(
        uint256 _projectId,
        address _tokenContract,
        address payable _creator,
        string calldata _URL
    ) external;

    function setCollectionURL(uint256 _collectionId, string calldata _URL)
        external;

    function setCollectionProject(uint256 _collectionId, uint256 _projectId)
        external;

    function setCollectionTokenContract(
        uint256 _collectionId,
        address _tokenContract
    ) external;

    function setCollectionCreator(
        uint256 _collectionId,
        address payable _creator
    ) external;

    function setCollectionActive(uint256 _collectionId, bool _isActive)
        external;

    function isExistCollectionById(uint256 _collectionId)
        external
        view
        returns (bool);

    function isExistTokenContract(address _tokenContract)
        external
        view
        returns (bool);

    function isActiveCollection(uint256 _collectionId)
        external
        view
        returns (bool);

    function isValidCollectionOfProject(
        uint256 _collectionId,
        uint256 _projectId
    ) external view returns (bool);

    function isValidCollectionOfUniverse(
        uint256 _collectionId,
        uint256 _universeId
    ) external view returns (bool);

    function getCollectionById(uint256 _collectionId)
        external
        view
        returns (ProvidingBase.Collection memory);

    function getCollectionIdByToken(address _tokenContract)
        external
        view
        returns (uint256);

    function getCollectionIdOfProject(uint256 _projectId, bool _activeFilter)
        external
        view
        returns (uint256[] memory);

    function getCollectionIdOfUniverse(uint256 _universeId, bool _activeFilter)
        external
        view
        returns (uint256[] memory);

    function getCollectionByToken(address _tokenContract)
        external
        view
        returns (ProvidingBase.Collection memory);

    function getTokenContractByCollectionId(uint256 _collectionId)
        external
        view
        returns (address);

    function getCollectionTypeByCollectionId(uint256 _collectionId)
        external
        view
        returns (ProvidingBase.TokenType);

    function getAccountsByCollectionId(uint256 _collectionId)
        external
        view
        returns (address payable[5] memory);

    function getAccountByAccountType(
        uint256 _collectionId,
        OWBase.AccountType _type
    ) external view returns (address payable);

    function getAccountByMintingType(
        uint256 _collectionId,
        OfferingBase.MintingType _type
    ) external view returns (address payable);

    function setProvider(address payable _provider) external;

    function setNLS(address payable _NLS) external;

    function setBaseURI(string calldata _baseURI) external;

    function getProvider() external view returns (address payable);

    function getNLS() external view returns (address payable);

    function getBaseURI() external view returns (string memory);
}

Last updated