Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
675 changes: 675 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

42 changes: 42 additions & 0 deletions LICENSE-EXCEPTION
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Linking exception for the Dotify EVM contracts

Copyright (C) 2026 Kevin Nzeng Essimengane

Dotify as a whole is licensed under GPL-3.0 (see LICENSE).

The Solidity sources under `contracts/evm/contracts/` carry an additional
linking exception, and are therefore licensed under:

GPL-3.0-only WITH Classpath-exception-2.0

This is the same linking exception Parity Technologies applies to the
Substrate client. The exception text follows.

Linking this library statically or dynamically with other modules is making
a combined work based on this library. Thus, the terms and conditions of the
GNU General Public License cover the whole combination.

As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,
and to copy and distribute the resulting executable under terms of your
choice, provided that you also meet, for each linked independent module,
the terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library. If
you modify this library, you may extend this exception to your version of
the library, but you are not obligated to do so. If you do not wish to do
so, delete this exception statement from your version.

Why the contracts differ from the rest of the repository

An artist's SmartRuntime is meant to be deployed, extended and composed with.
Under a bare GPL, any contract importing a Dotify pallet would arguably become
a derivative work and have to adopt the same licence, which would make the
runtime unusable for the artists it exists to serve.

The exception keeps the pallets themselves copyleft - improvements to Dotify's
access, royalty and registry logic stay open - while leaving an importing
contract free to choose its own licence.

The web app, the API and the documentation carry no such exception. They are
plain GPL-3.0.
2 changes: 1 addition & 1 deletion contracts/evm/contracts/ArtistDirectory.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @title ArtistDirectory
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/ArtistRuntimeFactory.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { SmartRuntime } from './SmartRuntime.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/DotifyRuntimeInitializer.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { LibDiamond } from './libraries/LibDiamond.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/LibDotify.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

library LibDotify {
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/MusicRightsRegistry.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import './LibDotify.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/SmartRuntime.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { IERC165 } from './interfaces/IERC165.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/interfaces/IDiamondCut.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @title IDiamondCut — ERC-2535 Diamond Cut Interface
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/interfaces/IDiamondLoupe.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @title IDiamondLoupe — ERC-2535 Diamond Loupe Interface
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/interfaces/IERC165.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @title ERC-165 Standard Interface Detection
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/interfaces/IPersonhood.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @title IPersonhood — Proof of Personhood precompile (Individuality)
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/libraries/LibDiamond.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { IDiamondCut } from '../interfaces/IDiamondCut.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/libraries/LibMusicAccess.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { LibMusicRegistry } from './LibMusicRegistry.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/libraries/LibMusicNFT.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @title LibMusicNFT
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/libraries/LibMusicRegistry.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @title LibMusicRegistry
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/libraries/LibMusicRoyalties.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @title LibMusicRoyalties
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/libraries/LibPersonhood.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { IPersonhood } from '../interfaces/IPersonhood.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/libraries/LibReentrancyGuard.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @title LibReentrancyGuard
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/pallets/DiamondCutPallet.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { IDiamondCut } from '../interfaces/IDiamondCut.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/pallets/DiamondLoupePallet.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { IDiamondLoupe } from '../interfaces/IDiamondLoupe.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/pallets/MusicAccessPallet.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { LibDiamond } from '../libraries/LibDiamond.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/pallets/MusicNFTPallet.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { LibMusicNFT } from '../libraries/LibMusicNFT.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/pallets/MusicRegistryPallet.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { LibDiamond } from '../libraries/LibDiamond.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/pallets/MusicRoyaltiesPallet.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { LibMusicRegistry } from '../libraries/LibMusicRegistry.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/pallets/OwnershipPallet.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

import { LibDiamond } from '../libraries/LibDiamond.sol';
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/test/MockPersonhoodPrecompile.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @dev TEST-ONLY stand-in for the Individuality personhood precompile.
Expand Down
2 changes: 1 addition & 1 deletion contracts/evm/contracts/test/ReentrantRoyaltyRecipient.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @dev TEST-ONLY helper. A malicious royalty recipient that attempts to re-enter
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: GPL-3.0-only WITH Classpath-exception-2.0
pragma solidity ^0.8.28;

/// @notice Test-only facet that exposes the production registration selector
Expand Down
2 changes: 1 addition & 1 deletion web/scripts/generate-cdm-metadata.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ const publishedAt = publishedAtArg !== -1 ? process.argv[publishedAtArg + 1] : n
const COMMON = {
homepage: 'https://muzinga.netlify.app',
repository: 'https://github.com/knzeng-e/dotify',
license: 'MIT',
license: 'GPL-3.0-only WITH Classpath-exception-2.0',
authors: ['Dotify'],
keywords: ['music', 'dotify', 'artist-runtime', 'access-control']
};
Expand Down
8 changes: 4 additions & 4 deletions web/src/generated/contracts/cdm-metadata/cids.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"@dotify/artist-directory": {
"file": "dotify-artist-directory.json",
"cid": "bafk2bzacebiynqo7tjvxa3xlvf6pphgq3nzatqjbn3yo2fszrlvxibtsr4ce6",
"bytes": 4430
"cid": "bafk2bzacebcem3sk7msybseyhx3rmqybdqo2t2pdypvmnvyn2idaibe6xx4pq",
"bytes": 4468
},
"@dotify/artist-runtime-factory": {
"file": "dotify-artist-runtime-factory.json",
"cid": "bafk2bzaceckm27ft3kvt4mjs67hzklylws5fp5d4z4nrvpa34gmzndtqz7lwg",
"bytes": 7585
"cid": "bafk2bzaceabgw5kefjrqqazehtdfhz7qepzauovsy7zussxmulmvscihaozra",
"bytes": 7623
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@
],
"homepage": "https://muzinga.netlify.app",
"repository": "https://github.com/knzeng-e/dotify",
"license": "MIT",
"license": "GPL-3.0-only WITH Classpath-exception-2.0",
"authors": [
"Dotify"
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@
],
"homepage": "https://muzinga.netlify.app",
"repository": "https://github.com/knzeng-e/dotify",
"license": "MIT",
"license": "GPL-3.0-only WITH Classpath-exception-2.0",
"authors": [
"Dotify"
],
Expand Down
Loading