// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.0;
interface IObservabilityEvents {
/// > [[[[[[[[[[[ Factory events ]]]]]]]]]]]
event CloneDeployed(
address indexed factory,
address indexed owner,
address indexed clone
);
event TributarySet(
address indexed factory,
address indexed clone,
address oldTributary,
address indexed newTributary
);
event FactoryLimitSet(
address indexed factory,
uint256 oldLimit,
uint256 newLimit
);
event FactoryGuardSet(bool guard);
event FactoryImplementationSet(
address indexed factory,
address indexed oldImplementation,
address indexed newImplementation
);
/// > [[[[[[[[[[[ Clone events ]]]]]]]]]]]
event WritingEditionPurchased(
address indexed clone,
uint256 tokenId,
address indexed recipient,
uint256 price,
string message,
uint256 flatFeeAmount
);
event Transfer(
address indexed clone,
address indexed from,
address indexed to,
uint256 tokenId
);
event RoyaltyChange(
address indexed clone,
address indexed oldRoyaltyRecipient,
uint256 oldRoyaltyBPS,
address indexed newRoyaltyRecipient,
uint256 newRoyaltyBPS
);
event RendererSet(address indexed clone, address indexed renderer);
event WritingEditionLimitSet(
address indexed clone,
uint256 oldLimit,
uint256 newLimit
);
event PriceSet(address indexed clone, uint256 oldLimit, uint256 newLimit);
event FundingRecipientSet(
address indexed clone,
address indexed oldFundingRecipient,
address indexed newFundingRecipient
);
event BaseDescriptionURISet(
address indexed clone,
string oldBaseDescriptionURI,
string newBaseDescriptionURI
);
}
interface IObservability {
function emitDeploymentEvent(address owner, address clone) external;
function emitTributarySet(
address clone,
address oldTributary,
address newTributary
) external;
function emitFactoryGuardSet(bool guard) external;
function emitFactoryImplementationSet(
address oldImplementation,
address newImplementation
) external;
function emitFactoryLimitSet(uint256 oldLimit, uint256 newLimit) external;
function emitTransferEvent(
address from,
address to,
uint256 tokenId
) external;
function emitWritingEditionPurchased(
uint256 tokenId,
address recipient,
uint256 price,
string memory message,
uint256 flatFeeAmount
) external;
function emitRoyaltyChange(
address oldRoyaltyRecipient,
uint256 oldRoyaltyBPS,
address newRoyaltyRecipient,
uint256 newRoyaltyBPS
) external;
function emitRendererSet(address renderer) external;
function emitWritingEditionLimitSet(
uint256 oldLimit,
uint256 newLimit
) external;
function emitFundingRecipientSet(
address oldFundingRecipient,
address newFundingRecipient
) external;
function emitPriceSet(uint256 oldPrice, uint256 newPrice) external;
function emitBaseDescriptionURISet(
string memory oldBaseDescriptionURI,
string memory newBaseDescriptionURI
) external;
}
/**
* @title Observability
* @author MirrorXYZ
*/
contract Observability is IObservability, IObservabilityEvents {
/// > [[[[[[[[[[[ Factory functions ]]]]]]]]]]]
function emitDeploymentEvent(
address owner,
address clone
) external override {
emit CloneDeployed(msg.sender, owner, clone);
}
function emitTributarySet(
address clone,
address oldTributary,
address newTributary
) external override {
emit TributarySet(msg.sender, clone, oldTributary, newTributary);
}
function emitFactoryLimitSet(
uint256 oldLimit,
uint256 newLimit
) external override {
emit FactoryLimitSet(msg.sender, oldLimit, newLimit);
}
function emitFactoryGuardSet(bool guard) external override {
emit FactoryGuardSet(guard);
}
function emitFactoryImplementationSet(
address oldImplementation,
address newImplementation
) external override {
emit FactoryImplementationSet(
msg.sender,
oldImplementation,
newImplementation
);
}
/// > [[[[[[[[[[[ Clone functions ]]]]]]]]]]]
function emitWritingEditionPurchased(
uint256 tokenId,
address recipient,
uint256 price,
string memory message,
uint256 flatFeeAmount
) external override {
emit WritingEditionPurchased(
msg.sender,
tokenId,
recipient,
price,
message,
flatFeeAmount
);
}
function emitTransferEvent(
address from,
address to,
uint256 tokenId
) external override {
emit Transfer(msg.sender, from, to, tokenId);
}
function emitRoyaltyChange(
address oldRoyaltyRecipient,
uint256 oldRoyaltyBPS,
address newRoyaltyRecipient,
uint256 newRoyaltyBPS
) external override {
emit RoyaltyChange(
msg.sender,
oldRoyaltyRecipient,
oldRoyaltyBPS,
newRoyaltyRecipient,
newRoyaltyBPS
);
}
function emitRendererSet(address renderer) external override {
emit RendererSet(msg.sender, renderer);
}
function emitWritingEditionLimitSet(
uint256 oldLimit,
uint256 newLimit
) external override {
emit WritingEditionLimitSet(msg.sender, oldLimit, newLimit);
}
function emitPriceSet(
uint256 oldPrice,
uint256 newPrice
) external override {
emit PriceSet(msg.sender, oldPrice, newPrice);
}
function emitFundingRecipientSet(
address oldFundingRecipient,
address newFundingRecipient
) external override {
emit FundingRecipientSet(
msg.sender,
oldFundingRecipient,
newFundingRecipient
);
}
function emitBaseDescriptionURISet(
string memory oldBaseDescriptionURI,
string memory newBaseDescriptionURI
) external override {
emit BaseDescriptionURISet(
msg.sender,
oldBaseDescriptionURI,
newBaseDescriptionURI
);
}
}
{
"compilationTarget": {
"Observability.sol": "Observability"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
}
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":false,"internalType":"string","name":"oldBaseDescriptionURI","type":"string"},{"indexed":false,"internalType":"string","name":"newBaseDescriptionURI","type":"string"}],"name":"BaseDescriptionURISet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"factory","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"clone","type":"address"}],"name":"CloneDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"guard","type":"bool"}],"name":"FactoryGuardSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"factory","type":"address"},{"indexed":true,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"FactoryImplementationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"factory","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"FactoryLimitSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":true,"internalType":"address","name":"oldFundingRecipient","type":"address"},{"indexed":true,"internalType":"address","name":"newFundingRecipient","type":"address"}],"name":"FundingRecipientSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"PriceSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":true,"internalType":"address","name":"renderer","type":"address"}],"name":"RendererSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":true,"internalType":"address","name":"oldRoyaltyRecipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldRoyaltyBPS","type":"uint256"},{"indexed":true,"internalType":"address","name":"newRoyaltyRecipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"newRoyaltyBPS","type":"uint256"}],"name":"RoyaltyChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"factory","type":"address"},{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":false,"internalType":"address","name":"oldTributary","type":"address"},{"indexed":true,"internalType":"address","name":"newTributary","type":"address"}],"name":"TributarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"WritingEditionLimitSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"string","name":"message","type":"string"},{"indexed":false,"internalType":"uint256","name":"flatFeeAmount","type":"uint256"}],"name":"WritingEditionPurchased","type":"event"},{"inputs":[{"internalType":"string","name":"oldBaseDescriptionURI","type":"string"},{"internalType":"string","name":"newBaseDescriptionURI","type":"string"}],"name":"emitBaseDescriptionURISet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"clone","type":"address"}],"name":"emitDeploymentEvent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"guard","type":"bool"}],"name":"emitFactoryGuardSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oldImplementation","type":"address"},{"internalType":"address","name":"newImplementation","type":"address"}],"name":"emitFactoryImplementationSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"oldLimit","type":"uint256"},{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"emitFactoryLimitSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oldFundingRecipient","type":"address"},{"internalType":"address","name":"newFundingRecipient","type":"address"}],"name":"emitFundingRecipientSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"oldPrice","type":"uint256"},{"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"emitPriceSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"renderer","type":"address"}],"name":"emitRendererSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oldRoyaltyRecipient","type":"address"},{"internalType":"uint256","name":"oldRoyaltyBPS","type":"uint256"},{"internalType":"address","name":"newRoyaltyRecipient","type":"address"},{"internalType":"uint256","name":"newRoyaltyBPS","type":"uint256"}],"name":"emitRoyaltyChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"emitTransferEvent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"clone","type":"address"},{"internalType":"address","name":"oldTributary","type":"address"},{"internalType":"address","name":"newTributary","type":"address"}],"name":"emitTributarySet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"oldLimit","type":"uint256"},{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"emitWritingEditionLimitSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"string","name":"message","type":"string"},{"internalType":"uint256","name":"flatFeeAmount","type":"uint256"}],"name":"emitWritingEditionPurchased","outputs":[],"stateMutability":"nonpayable","type":"function"}]