Skip to content

Commit

Permalink
Smart Contract 0.6.3
Browse files Browse the repository at this point in the history
Re-organising state variables, quite far from the finished product. Then more compile error testing.
  • Loading branch information
EdmundBerkmann committed Feb 13, 2024
1 parent 585cc91 commit fc2301f
Show file tree
Hide file tree
Showing 33 changed files with 226 additions and 186 deletions.
2 changes: 1 addition & 1 deletion contracts/Diamond.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import "./interfaces/IDiamondLoupe.sol";
import "./interfaces/IDiamondCut.sol";
import "./interfaces/IERC173.sol";
import "../lib/safe-contracts/contracts/interfaces/ISafe.sol";
import "../lib/safe-contracts/contracts/interfaces/ISafeIERC165.sol";
import "../lib/safe-contracts/contracts/interfaces/IERC165.sol";

contract Diamond {
struct DiamondArgs {
Expand Down
4 changes: 2 additions & 2 deletions contracts/facets/DiamondLoupeFacet.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../libraries/LibDiamond.sol";
import { IDiamondLoupe } from "../interfaces/IDiamondLoupe.sol";
import { IERC165 } from "../lib/safe-contracts/contracts/interfaces/ISafeIERC165.sol";
import { IERC165 } from "../../lib/safe-contracts/contracts/interfaces/IERC165.sol";

// The functions in DiamondLoupeFacet MUST be added to a diamond.
// The EIP-2535 Diamond standard requires these functions.
Expand Down
2 changes: 1 addition & 1 deletion contracts/facets/DiamondOracleFacet.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../../libraries/LibDiamond.sol";
import { LibDiamond } from "../libraries/LibDiamond.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol";
Expand Down
15 changes: 14 additions & 1 deletion contracts/facets/app/AccessControlFacet.sol
Original file line number Diff line number Diff line change
@@ -1,10 +1,23 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/access/AccessControl.sol";

modifier canCreateToken(address creator) {require(!_hasCreatedToken[creator], "CreatorToken: Creator has already created a token."); _;}
modifier onlyAdmin() {require(admins[msg.sender], "Only Admin can call this function"); _;}
modifier onlyCreator() {require(creatorToIsAdmin[msg.sender] == false && msg.sender != creator, "CreatorToken: Only Creators can call this function"); _;}
modifier onlyOwner() {require(creatorToIsAdmin[msg.sender] == false && msg.sender != creator && msg.sender != owner(), "CreatorToken: Only Owners can call this function"); _;}
modifier onlyUser() {require(users[msg.sender], "Only User can call this function"); _;}
modifier onlyCreatorOrOwner() {require(owners[msg.sender] || creators[msg.sender], "CreatorToken: Only Creators or Owners can call this function"); _;}
modifier dailySnapshot() {if (block.timestamp >= _lastSnapshotTimestamp.add(1 days)) {_takeSnapshot(); _lastSnapshotTimestamp = block.timestamp;} _;}

mapping (address => bool) private admins;
mapping (address => bool) private creators;
mapping (address => bool) private owners; // to rename to investors
mapping (address => bool) private users;

contract AccessControlFacet is AccessControl {
bytes32 public constant UPGRADE_ROLE = keccak256("UPGRADE_ROLE");
bytes32 public constant STEELO_ROLE = keccak256("STEELO_ROLE");
Expand Down
2 changes: 1 addition & 1 deletion contracts/facets/app/AnalyticsReportingFacet.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";

contract AnalyticsReportingFacet {
function initialize() external {
Expand Down
2 changes: 1 addition & 1 deletion contracts/facets/app/DataManagementFacet.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";

contract DataManagementFacet {
function initialize() external {
Expand Down
2 changes: 1 addition & 1 deletion contracts/facets/app/GasOptimisationFacet.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";

contract GasOptimisationFacet {
// Example: Bulk processing to minimise transaction costs
Expand Down
4 changes: 2 additions & 2 deletions contracts/facets/app/MultiSigFacet.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { ISafe } from "../lib/safe-contracts/contracts/interfaces/ISafe.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";
import { ISafe } from "../../../lib/safe-contracts/contracts/interfaces/ISafe.sol";

contract MultiSigFacet {
function initialize() external {
Expand Down
2 changes: 1 addition & 1 deletion contracts/facets/app/NotificationFacet.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";

contract NotificationFacet {
function initialize() external {
Expand Down
2 changes: 1 addition & 1 deletion contracts/facets/app/OfflineModeFacet.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";

contract OfflineModeFacet {
function setOfflineMode(bool _offlineMode) external {
Expand Down
2 changes: 1 addition & 1 deletion contracts/facets/app/SecurityComplianceFacet.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";

contract SecurityComplianceFacet {
function initialize() external {
Expand Down
4 changes: 2 additions & 2 deletions contracts/facets/app/SocialNetworkFacet.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { ISafe } from "../lib/safe-contracts/contracts/interfaces/ISafe.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";
import { ISafe } from "../../../lib/safe-contracts/contracts/interfaces/ISafe.sol";

contract SocialNetworkFacet {
ISafe private safeCore;
Expand Down
2 changes: 1 addition & 1 deletion contracts/facets/app/UserExperienceFacet.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";

contract UserExperienceFacet {
function initialize() external {
Expand Down
2 changes: 1 addition & 1 deletion contracts/facets/app/UserInteractionFacet.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";

contract UserInteractionFacet {
function initialize() external {
Expand Down
7 changes: 4 additions & 3 deletions contracts/facets/features/BazaarFacet.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { IUniswapV4 } from "../../interfaces/IUniswapV4.sol";
import { IUniswapX } from "../../interfaces/IUniswapX.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";
import { IUniswapV4 } from "../../interfaces/IUniswap.sol";
import { IUniswapX } from "../../interfaces/IUniswap.sol";
import { IBazaarFacet } from "../../interfaces/IFeaturesFacet.sol";
import { IERC1155 } from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";

contract BazaarFacet {
Expand Down
3 changes: 2 additions & 1 deletion contracts/facets/features/GalleryFacet.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";
import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
import { IERC1155 } from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
import { IGalleryFacet } from "../../interfaces/IFeaturesFacet.sol";
import "@openzeppelin/contracts/utils/Strings.sol";

contract GalleryFacet {
Expand Down
5 changes: 3 additions & 2 deletions contracts/facets/features/MosaicFacet.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";
import { ISteezFacet } from "../../interfaces/ISteezFacet.sol";
import { IMosaicFacet } from "../../interfaces/IFeaturesFacet.sol";
import { ILens } from "../../interfaces/ILens.sol";
import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
import { IERC1155 } from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
Expand Down Expand Up @@ -68,7 +69,7 @@ contract MosaicFacet {
emit Liked(msg.sender, contentId);
}

function comment(uint256 contentId, string calldata comment) external {
function commentOnContent(uint256 contentId, string calldata comment) external {
// Placeholder: Actual comment logic
emit Commented(msg.sender, contentId, comment);
}
Expand Down
13 changes: 9 additions & 4 deletions contracts/facets/features/ProfileFacet.sol
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { MultiSigFacet } from "../app/MultiSigFacet.sol";
import { IFeaturesFacet } from "../../interfaces/IFeaturesFacet.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";
import { IProfileFacet } from "../../interfaces/IFeaturesFacet.sol";
import { ILens } from "../../interfaces/ILens.sol";
import { ISafe } from "../lib/safe-contracts/contracts/interfaces/ISafe.sol";
import { ISafe } from "../../../lib/safe-contracts/contracts/interfaces/ISafe.sol";
import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
import { IERC1155 } from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "../app/MultiSigFacet.sol";

string username;
string bio;
string avatarURI;
address walletAddress;

contract ProfileFacet is IProfileFacet, ERC1155Upgradeable, OwnableUpgradeable, ReentrancyGuardUpgradeable {
// Event declarations, e.g., for profile updates, content posted, etc.
Expand Down
3 changes: 2 additions & 1 deletion contracts/facets/features/VillageFacet.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { LibDiamond } from "../../libraries/LibDiamond.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { IVillageFacet } from "../../interfaces/IFeaturesFacet.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
Expand Down
17 changes: 17 additions & 0 deletions contracts/facets/steelo/STEELOFacet.sol
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,23 @@ contract STEELOFacet is
event BurnRateUpdated(uint256 newBurnRate);
event steeloTGEExecuted(uint256 tgeAmount);

// Storage
mapping(uint256 => mapping(uint256 => uint256)) private _snapshotBalances;
mapping(uint256 => uint256) private _lastSnapshot;
int256 steezTransactionCount;
uint256 steeloCurrentPrice;
uint256 steezCurrentPrice;
uint256 totalMinted;
uint256 totalBurned;
uint256 lastMintEvent;
uint256 lastBurnUpdate;
uint256 mintAmount;
uint256 burnAmount;
uint256 burnRate;
uint256 mintRate;
bool isDeflationary;
bool tgeExecuted;

function initialize(
address _treasury,
address _oracle,
Expand Down
6 changes: 6 additions & 0 deletions contracts/facets/steelo/SteeloStakingFacet.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,16 @@ contract SteeloStakingFacet is OwnableUpgradeable, ReentrancyGuardUpgradeable {

IERC20Upgradeable public steeloToken;

// Events
event Staked(address indexed user, uint256 amount);
event Unstaked(address indexed user, uint256 amount);
event RewardPaid(address indexed user, uint256 rewardAmount);

// Storage
mapping(address => uint256) public stakes;
mapping(address => bool) public isStakeholder;
mapping(address => uint256) public stakeDuration;

function initialize(address _steeloToken) public initializer {
__Ownable_init();
__ReentrancyGuard_init();
Expand Down
32 changes: 28 additions & 4 deletions contracts/facets/steez/STEEZFacet.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ pragma solidity 0.8.20;
import { LibDiamond } from "../../libraries/LibDiamond.sol";
import { IDiamondCut } from "../../interfaces/IDiamondCut.sol";
import { ISteezFacet } from "../../interfaces/ISteezFacet.sol";
import { SafeProxyFactory } from "../lib/safe-contracts/contracts/proxies/SafeProxyFactory.sol";
import { SafeProxy } from "../lib/safe-contracts/contracts/proxies/SafeProxy.sol";
import { SafeL2 } from "../lib/safe-contracts/contracts/SafeL2.sol";
import { SafeProxyFactory } from "../../../lib/safe-contracts/contracts/proxies/SafeProxyFactory.sol";
import { SafeProxy } from "../../../lib/safe-contracts/contracts/proxies/SafeProxy.sol";
import { SafeL2 } from "../../../lib/safe-contracts/contracts/SafeL2.sol";
import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
import "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
Expand All @@ -30,10 +30,34 @@ contract STEEZFacet is SafeL2, ERC1155Upgradeable, OwnableUpgradeable, PausableU
event TokenTransferred(uint256 tokenId, address from, address to, uint256 amount);
event TokenBurned(uint256 tokenId, address owner, uint256 amount);

// State variables to track auction state
Royalties private _royalties;
string public _baseURI;
address public _safeAddress;
address public _creatorTokenAddress;
uint256 public _maxCreatorTokens;
uint256 public _transactionFee;
uint256 private _totalShareholdings;
uint256 public _currentTokenID;
uint256 private _snapshotCounter;
uint256 private snapshotCounter;
uint256 private _lastSnapshotTimestamp;
uint256 public currentPrice = ds.INITIAL_PRICE;
uint256 public tokensSecuredThisBatch = 0;
uint256 public auctionStartTime;
mapping(uint256 => mapping(address => uint256)) _undistributedRoyalties;
mapping(uint256 => uint256) _communityRoyaltyRates;
mapping(uint256 => mapping(address => Snapshot[])) _holderSnapshots;
mapping(uint256 => Snapshot[]) _totalUndistributedSnapshots;
mapping(uint256 => mapping(uint256 => uint256)) private _snapshotBalances;
mapping(uint256 => uint256) private _lastSnapshot;
mapping(address => bool) private _hasCreatedToken;
mapping(uint256 => bool) private _tokenExists;
mapping(uint256 => uint256) private _totalSupply;
mapping(address => uint256) private _shareholdings;
mapping(uint256 => uint256) private _transactionCount;
mapping(uint256 => uint256) private _mintedInLastYear;
mapping(uint256 => uint256) private _lastMintTime;
mapping(uint256 => mapping(address => uint256)) public balances;

modifier withinAuctionPeriod() {
require(auctionStartTime != 0, "Auction has not started yet");
Expand Down
5 changes: 5 additions & 0 deletions contracts/facets/steez/SteezFeesFacet.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ struct Snapshot {
uint256 value;
}

mapping(uint256 => mapping(address => uint256)) public undistributedRoyalties;
mapping(uint256 => uint256[]) public communitySplits;
mapping(uint256 => address[]) public tokenHolders;
mapping(uint256 => mapping(address => uint256)) public balances;

contract SteezFeesFacet is OwnableUpgradeable, ReentrancyGuardUpgradeable {

event RoyaltyPaid(uint256 indexed tokenId, address indexed recipient, uint256 amount);
Expand Down
6 changes: 6 additions & 0 deletions contracts/facets/steez/SteezManagementFacet.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";

mapping(uint256 => uint256[]) public creatorSplits;
mapping (address => bool) private admins;
mapping (address => bool) private creators;
mapping (address => bool) private owners; // to rename to investors
mapping (address => bool) private users;

contract SteezManagementFacet is AccessControlUpgradeable, OwnableUpgradeable, ReentrancyGuardUpgradeable {
bytes32 public constant MANAGER_ROLE = keccak256("MANAGER_ROLE");
bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
Expand Down
6 changes: 5 additions & 1 deletion contracts/interfaces/IAppFacet.sol
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

interface IAppFacet {
// Declare the functions for the Master interface here
}

interface IGovernanceFacet {

// Declare the functions for the Governance interface here
}
20 changes: 20 additions & 0 deletions contracts/interfaces/IFeaturesFacet.sol
Original file line number Diff line number Diff line change
@@ -1,6 +1,26 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

interface IFeaturesFacet {
// Declare the functions for the Master interface here
}

interface IProfileFacet {
// Declare the functions for the IProfileFacet interface here
}

interface IVillageFacet {
// Declare the functions for the IVillageFacet interface here
}

interface IMosaicFacet {
// Declare the functions for the IMosaicFacet interface here
}

interface IBazaarFacet {
// Declare the functions for the IBazaarFacet interface here
}

interface IGalleryFacet {
// Declare the functions for the IGalleryFacet interface here
}
Loading

0 comments on commit fc2301f

Please sign in to comment.