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
5 changes: 4 additions & 1 deletion packages/ethereum-contracts/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
## [UNRELEASED]

### Changed
- Refactored `GeneralDistributionAgreementV1`: extracted functionality which reads and writes agreement data to from/to the token contract into dedicated libraries:
- Refactored `GeneralDistributionAgreementV1`: extracted functionality which reads/writes agreement data from/to the token contract into dedicated libraries:
- `GDAv1StorageLib` contains data structures and related encoders/decoders.
- `GDAv1StorageReader` contains getters reading agreement data from the token contract, allowing contracts to get this data without making a call to the GDA contract.
- `GDAv1StorageWriter` contains functions for writing agreement data to the token contract. This can only be used by the GDA contract itself.

### Breaking
- PoolMemberNFT pruning: `IPoolMemberNFT` and `PoolMemberNFT` removed, `POOL_MEMBER_NFT()` removed from `ISuperToken`.

## [v1.13.0]

### Added
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ contract PoolAdminNFT is PoolNFTBase, IPoolAdminNFT {
return _poolAdminDataByTokenId[tokenId];
}

/// @notice Reverts - Transfer of pool member NFT is not allowed.
/// @dev We revert when users attempt to transfer pool member NFTs.
/// @notice Reverts - Transfer of NFT is not allowed.
/// @dev We revert when users attempt to transfer NFTs.
function _transfer(
address, // from,
address, // to,
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -127,14 +127,14 @@ abstract contract PoolNFTBase is UUPSProxiable, IPoolNFTBase {
}

/// @notice Returns the name of the NFT
/// @dev Should follow the naming convention: (Pool Admin|Pool Member) NFT
/// @dev Should follow the naming convention: Pool Admin NFT
/// @return name of the NFT
function name() external view virtual override returns (string memory) {
return _name;
}

/// @notice Returns the symbol of the NFT
/// @dev Should follow the naming convention: PA|PM
/// @dev Should follow the naming convention: PA
/// @return symbol of the NFT
function symbol() external view virtual override returns (string memory) {
return _symbol;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,6 @@ interface IPoolNFTBase is IERC721Metadata {
function triggerMetadataUpdate(uint256 tokenId) external;

/// @notice Gets the token id
/// @dev For PoolAdminNFT, `account` is admin and for PoolMemberNFT, `account` is member
/// @dev For PoolAdminNFT, `account` is admin
function getTokenId(address pool, address account) external view returns (uint256 tokenId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import { IERC20Permit } from "@openzeppelin/contracts/token/ERC20/extensions/IER
import { IERC5267 } from "@openzeppelin/contracts/interfaces/IERC5267.sol";
import { IERC777 } from "@openzeppelin/contracts/token/ERC777/IERC777.sol";
import { IPoolAdminNFT } from "../agreements/gdav1/IPoolAdminNFT.sol";
import { IPoolMemberNFT } from "../agreements/gdav1/IPoolMemberNFT.sol";

/**
* @title Super token (Superfluid Token + ERC20 + ERC777) interface
Expand Down Expand Up @@ -77,8 +76,6 @@ interface ISuperToken is ISuperfluidToken, IERC20Metadata, IERC777, IERC20Permit

// solhint-disable-next-line func-name-mixedcase
function POOL_ADMIN_NFT() external view returns (IPoolAdminNFT);
// solhint-disable-next-line func-name-mixedcase
function POOL_MEMBER_NFT() external view returns (IPoolMemberNFT);

/**************************************************************************
* IERC20Metadata & ERC777
Expand Down Expand Up @@ -606,14 +603,6 @@ interface ISuperToken is ISuperfluidToken, IERC20Metadata, IERC777, IERC20Permit
IPoolAdminNFT indexed poolAdminNFT
);

/**
* @dev Pool Member NFT proxy created event
* @param poolMemberNFT pool member nft address
*/
event PoolMemberNFTCreated(
IPoolMemberNFT indexed poolMemberNFT
);

/**************************************************************************
* Function modifiers for access control and parameter validations
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import { ISuperTokenFactory } from "./ISuperTokenFactory.sol";
import { ISETH } from "../tokens/ISETH.sol";
/// Superfluid/ERC20x NFTs
import { IPoolAdminNFT } from "../agreements/gdav1/IPoolAdminNFT.sol";
import { IPoolMemberNFT } from "../agreements/gdav1/IPoolMemberNFT.sol";
/// Superfluid agreement interfaces:
import { ISuperAgreement } from "./ISuperAgreement.sol";
import { IConstantFlowAgreementV1 } from "../agreements/IConstantFlowAgreementV1.sol";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,18 @@ pragma solidity ^0.8.23;
import {
ISuperfluid,
ISuperToken,
IPoolAdminNFT,
IPoolMemberNFT
IPoolAdminNFT
} from "../interfaces/superfluid/ISuperfluid.sol";
import { SuperTokenFactoryBase, IConstantOutflowNFT, IConstantInflowNFT } from "../superfluid/SuperTokenFactory.sol";
import { SuperTokenFactoryBase, IPoolMemberNFT } from "../superfluid/SuperTokenFactory.sol";

contract SuperTokenFactoryStorageLayoutTester is SuperTokenFactoryBase {
constructor(
ISuperfluid host,
ISuperToken superTokenLogic,
IConstantOutflowNFT constantOutflowNFT,
IConstantInflowNFT constantInflowNFT,
IPoolAdminNFT poolAdminNFT,
IPoolMemberNFT poolMemberNFT
)
SuperTokenFactoryBase(host, superTokenLogic, constantOutflowNFT, constantInflowNFT, poolAdminNFT, poolMemberNFT)
SuperTokenFactoryBase(host, superTokenLogic, poolAdminNFT, poolMemberNFT)
// solhint-disable-next-line no-empty-blocks
{ }

Expand All @@ -43,12 +40,10 @@ contract SuperTokenFactoryUpdateLogicContractsTester is SuperTokenFactoryBase {
constructor(
ISuperfluid host,
ISuperToken superTokenLogic,
IConstantOutflowNFT constantOutflowNFT,
IConstantInflowNFT constantInflowNFT,
IPoolAdminNFT poolAdminNFT,
IPoolMemberNFT poolMemberNFT
)
SuperTokenFactoryBase(host, superTokenLogic, constantOutflowNFT, constantInflowNFT, poolAdminNFT, poolMemberNFT)
SuperTokenFactoryBase(host, superTokenLogic, poolAdminNFT, poolMemberNFT)
// solhint-disable-next-line no-empty-blocks
{ }
}
Expand All @@ -57,12 +52,10 @@ contract SuperTokenFactoryMock is SuperTokenFactoryBase {
constructor(
ISuperfluid host,
ISuperToken superTokenLogic,
IConstantOutflowNFT constantOutflowNFT,
IConstantInflowNFT constantInflowNFT,
IPoolAdminNFT poolAdminNFT,
IPoolMemberNFT poolMemberNFT
)
SuperTokenFactoryBase(host, superTokenLogic, constantOutflowNFT, constantInflowNFT, poolAdminNFT, poolMemberNFT)
SuperTokenFactoryBase(host, superTokenLogic, poolAdminNFT, poolMemberNFT)
// solhint-disable-next-line no-empty-blocks
{ }
}
Expand All @@ -71,12 +64,10 @@ contract SuperTokenFactoryMock42 is SuperTokenFactoryBase {
constructor(
ISuperfluid host,
ISuperToken superTokenLogic,
IConstantOutflowNFT constantOutflowNFT,
IConstantInflowNFT constantInflowNFT,
IPoolAdminNFT poolAdminNFT,
IPoolMemberNFT poolMemberNFT
)
SuperTokenFactoryBase(host, superTokenLogic, constantOutflowNFT, constantInflowNFT, poolAdminNFT, poolMemberNFT)
SuperTokenFactoryBase(host, superTokenLogic, poolAdminNFT, poolMemberNFT)
// solhint-disable-next-line no-empty-blocks
{ }
}
Loading
Loading