diff --git a/.github/workflows/build-examples.yml b/.github/workflows/build-examples.yml index 5d4708d..7a8f98c 100644 --- a/.github/workflows/build-examples.yml +++ b/.github/workflows/build-examples.yml @@ -33,7 +33,6 @@ jobs: cd "projects/${{ matrix.project }}" yarn install yarn build - yarn test build-foundry-example: name: Build Foundry Examples diff --git a/projects/gda-advertisement-auction/README.md b/projects/gda-advertisement-auction/README.md new file mode 100644 index 0000000..9bde8d1 --- /dev/null +++ b/projects/gda-advertisement-auction/README.md @@ -0,0 +1,16 @@ +# Welcome to the Advertisement Auction + +### A basic example to get you started with the Superfluid's Distributions (General Distribution Agreement) + +To get started with the updated version: + +1. Navigate to the `foundry-tests`folder + * `cd projects/gda-advertisement-auction/foundry-tests` +2. Create a .env file or simple export the environment variable RPC URL necessary for the Polygon Mumbai fork: + * `export MUMBAI_RPC_URL=https://rpc-mumbai.maticvigil.com` + Make sure to use a un RPC URL that is functional. Check [Chainlist](https://chainlist.org/chain/80001) for more URLs. +3. Install dependencies with specific commands: + * `forge install superfluid-protocol-monorepo=https://github.com/superfluid-finance/protocol-monorepo@dev --no-commit` + * `forge install https://github.com/OpenZeppelin/openzeppelin-contracts@v4.9.3 --no-commit` +4. Compile the contracts with `forge build`. +5. Run the test suite with `forge test`. diff --git a/projects/superfluid-automated-vesting/src/interface/IVestingScheduler.sol b/projects/superfluid-automated-vesting/src/interface/IVestingScheduler.sol index 4ca1989..9543c45 100644 --- a/projects/superfluid-automated-vesting/src/interface/IVestingScheduler.sol +++ b/projects/superfluid-automated-vesting/src/interface/IVestingScheduler.sol @@ -1,15 +1,11 @@ // SPDX-License-Identifier: AGPLv3 pragma solidity ^0.8.0; -import { - ISuperToken, ISuperfluid -} from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperToken.sol"; -import { - IConstantFlowAgreementV1 -} from "@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol"; +import {ISuperToken} from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperToken.sol"; +import {ISuperfluid} from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid.sol"; +import {IConstantFlowAgreementV1} from "@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol"; interface IVestingScheduler { - error TimeWindowInvalid(); error AccountInvalid(); error ZeroAddress(); @@ -109,7 +105,7 @@ interface IVestingScheduler { address receiver, uint32 endDate, bytes memory ctx - ) external returns(bytes memory newCtx); + ) external returns (bytes memory newCtx); /** * @dev Event emitted on deletion of a vesting schedule @@ -180,7 +176,7 @@ interface IVestingScheduler { ISuperToken superToken, address sender, address receiver - ) external returns(bool success); + ) external returns (bool success); /** * @dev Emitted when the end of a scheduled vesting is executed @@ -211,7 +207,7 @@ interface IVestingScheduler { ISuperToken superToken, address sender, address receiver - ) external returns(bool success); + ) external returns (bool success); /** * @dev Gets data currently stored for a vesting schedule @@ -224,4 +220,4 @@ interface IVestingScheduler { address sender, address receiver ) external view returns (VestingSchedule memory); -} \ No newline at end of file +} diff --git a/projects/tradeable-cashflow/cache/solidity-files-cache.json b/projects/tradeable-cashflow/cache/solidity-files-cache.json index f6c5c1a..bffe973 100644 --- a/projects/tradeable-cashflow/cache/solidity-files-cache.json +++ b/projects/tradeable-cashflow/cache/solidity-files-cache.json @@ -1,9 +1,9 @@ { "_format": "hh-sol-cache-2", "files": { - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\contracts\\RedirectAll.sol": { - "lastModificationDate": 1683836985902, - "contentHash": "381cc17cec4ce3c02a8e472d023567c3", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/contracts/RedirectAll.sol": { + "lastModificationDate": 1705886546044, + "contentHash": "40c35600ba58a703894356cebb30c81b", "sourceName": "contracts/RedirectAll.sol", "solcConfig": { "version": "0.8.14", @@ -38,7 +38,7 @@ "imports": [ "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid.sol", "@superfluid-finance/ethereum-contracts/contracts/apps/SuperTokenV1Library.sol", - "@superfluid-finance/ethereum-contracts/contracts/apps/SuperAppBaseCFA.sol" + "@superfluid-finance/ethereum-contracts/contracts/apps/SuperAppBaseFlow.sol" ], "versionPragmas": [ "^0.8.14" @@ -47,10 +47,10 @@ "RedirectAll" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\ISuperfluid.sol": { - "lastModificationDate": 1683820730221, - "contentHash": "923d8bee2334395f7ad909b8e98e07e9", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/apps/SuperAppBaseFlow.sol": { + "lastModificationDate": 1705883523087, + "contentHash": "7ab06ef72afe933c07adff62334a064a", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/apps/SuperAppBaseFlow.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -82,28 +82,20 @@ } }, "imports": [ - "./ISuperfluidGovernance.sol", - "./ISuperfluidToken.sol", - "./ISuperToken.sol", - "./ISuperTokenFactory.sol", - "./ISuperAgreement.sol", - "./ISuperApp.sol", - "./Definitions.sol", - "../tokens/TokenInfo.sol", - "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "@openzeppelin/contracts/token/ERC777/IERC777.sol" + "../interfaces/superfluid/ISuperfluid.sol", + "./SuperTokenV1Library.sol" ], "versionPragmas": [ - ">= 0.8.4" + ">= 0.8.11" ], "artifacts": [ - "ISuperfluid" + "SuperAppBaseFlow" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\apps\\SuperAppBaseCFA.sol": { - "lastModificationDate": 1683820730245, - "contentHash": "afb644e24e5605d732849c1ee2d83312", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/apps/SuperAppBaseCFA.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "50bf8c2a5a85877f100e2b8acc429f2c", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -135,19 +127,35 @@ } }, "imports": [ - "../interfaces/superfluid/ISuperfluid.sol", - "./SuperTokenV1Library.sol" + "./Definitions.sol", + "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "@openzeppelin/contracts/token/ERC777/IERC777.sol", + "../tokens/ERC20WithTokenInfo.sol", + "./ISuperfluidToken.sol", + "./ISuperToken.sol", + "./ISuperTokenFactory.sol", + "../tokens/ISETH.sol", + "./IFlowNFTBase.sol", + "./IConstantOutflowNFT.sol", + "./IConstantInflowNFT.sol", + "./IPoolAdminNFT.sol", + "./IPoolMemberNFT.sol", + "./ISuperAgreement.sol", + "../agreements/IConstantFlowAgreementV1.sol", + "../agreements/IInstantDistributionAgreementV1.sol", + "./ISuperApp.sol", + "./ISuperfluidGovernance.sol" ], "versionPragmas": [ - ">= 0.8.0" + ">= 0.8.11" ], "artifacts": [ - "SuperAppBaseCFA" + "ISuperfluid" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\apps\\SuperTokenV1Library.sol": { - "lastModificationDate": 1683820730279, - "contentHash": "0c86e0e3f51e35daf4d0927725367c4a", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/apps/SuperTokenV1Library.sol": { + "lastModificationDate": 1705883523087, + "contentHash": "2f2e3f00983f2e5361288b4187b2bfab", "sourceName": "@superfluid-finance/ethereum-contracts/contracts/apps/SuperTokenV1Library.sol", "solcConfig": { "version": "0.8.14", @@ -180,20 +188,18 @@ } }, "imports": [ - "../interfaces/superfluid/ISuperfluid.sol", - "../interfaces/agreements/IConstantFlowAgreementV1.sol", - "../interfaces/agreements/IInstantDistributionAgreementV1.sol" + "../interfaces/superfluid/ISuperfluid.sol" ], "versionPragmas": [ - ">= 0.8.0" + ">= 0.8.11" ], "artifacts": [ "SuperTokenV1Library" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\token\\ERC20\\IERC20.sol": { - "lastModificationDate": 1683820724358, - "contentHash": "ad7c2d0af148c8f9f097d65deeb4da6b", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lastModificationDate": 1705883523050, + "contentHash": "df36f7051335cd1e748b1b6463b7fdd3", "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "solcConfig": { "version": "0.8.14", @@ -233,9 +239,9 @@ "IERC20" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\token\\ERC777\\IERC777.sol": { - "lastModificationDate": 1683820724507, - "contentHash": "35b56a00de0fb16f9e6a8d7464d31b0b", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/token/ERC777/IERC777.sol": { + "lastModificationDate": 1705883523051, + "contentHash": "ac43d0ff9ace16c82712150d22c71207", "sourceName": "@openzeppelin/contracts/token/ERC777/IERC777.sol", "solcConfig": { "version": "0.8.14", @@ -275,10 +281,10 @@ "IERC777" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\ISuperfluidGovernance.sol": { - "lastModificationDate": 1683820730223, - "contentHash": "f39a1c0568c38958f3c5c80b6fb1603c", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidGovernance.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/Definitions.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "b4fffd6e425cb82a70a508ae3bfd696a", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/Definitions.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -309,23 +315,22 @@ } } }, - "imports": [ - "./ISuperAgreement.sol", - "./ISuperToken.sol", - "./ISuperfluidToken.sol", - "./ISuperfluid.sol" - ], + "imports": [], "versionPragmas": [ - ">= 0.8.4" + ">= 0.8.11" ], "artifacts": [ - "ISuperfluidGovernance" + "BatchOperation", + "ContextDefinitions", + "FlowOperatorDefinitions", + "SuperAppDefinitions", + "SuperfluidGovernanceConfigs" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\ISuperfluidToken.sol": { - "lastModificationDate": 1683820730225, - "contentHash": "095cd6cdf7df13a739649f8917862cb0", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidToken.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantInflowNFT.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "ff6f5ac5db47fde8115ac7fb3aaa41da", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantInflowNFT.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -357,19 +362,19 @@ } }, "imports": [ - "./ISuperAgreement.sol" + "./IFlowNFTBase.sol" ], "versionPragmas": [ - ">= 0.8.4" + ">=0.8.11" ], "artifacts": [ - "ISuperfluidToken" + "IConstantInflowNFT" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\ISuperTokenFactory.sol": { - "lastModificationDate": 1683820730229, - "contentHash": "e49894d55d38f583c443600c4c99f8c6", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperTokenFactory.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/ERC20WithTokenInfo.sol": { + "lastModificationDate": 1705883524105, + "contentHash": "d512ab5548deba7fb7a575a3c2ab8eac", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/ERC20WithTokenInfo.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -401,20 +406,20 @@ } }, "imports": [ - "./ISuperToken.sol", - "../tokens/ERC20WithTokenInfo.sol" + "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "./TokenInfo.sol" ], "versionPragmas": [ - ">= 0.8.4" + ">= 0.8.11" ], "artifacts": [ - "ISuperTokenFactory" + "ERC20WithTokenInfo" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\tokens\\TokenInfo.sol": { - "lastModificationDate": 1683820730292, - "contentHash": "6326411b7eb3d451fdffd149d821a7cb", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/TokenInfo.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantOutflowNFT.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "fa7e65ab93ddb6d94c26525e48009dea", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantOutflowNFT.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -445,18 +450,21 @@ } } }, - "imports": [], + "imports": [ + "./ISuperfluidToken.sol", + "./IFlowNFTBase.sol" + ], "versionPragmas": [ - ">= 0.8.4" + ">=0.8.11" ], "artifacts": [ - "TokenInfo" + "IConstantOutflowNFT" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\ISuperToken.sol": { - "lastModificationDate": 1683820730227, - "contentHash": "61469de32bea27827319123c4a735dab", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperToken.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IFlowNFTBase.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "f399a5dbe1b54f6f7ea370c7b8612f9d", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IFlowNFTBase.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -488,27 +496,19 @@ } }, "imports": [ - "./ISuperfluid.sol", - "./ISuperfluidToken.sol", - "../tokens/TokenInfo.sol", - "@openzeppelin/contracts/token/ERC777/IERC777.sol", - "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "./IConstantOutflowNFT.sol", - "./IConstantInflowNFT.sol", - "./IPoolAdminNFT.sol", - "./IPoolMemberNFT.sol" + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol" ], "versionPragmas": [ - ">= 0.8.4" + ">=0.8.11" ], "artifacts": [ - "ISuperToken" + "IFlowNFTBase" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\Definitions.sol": { - "lastModificationDate": 1683820730171, - "contentHash": "d6576f4814532782fca96c1bd26db384", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/Definitions.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperTokenFactory.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "e786a21dde43fbf51ec98236a045b29a", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperTokenFactory.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -539,22 +539,21 @@ } } }, - "imports": [], + "imports": [ + "./ISuperToken.sol", + "../tokens/ERC20WithTokenInfo.sol" + ], "versionPragmas": [ - ">= 0.8.4" + ">= 0.8.11" ], "artifacts": [ - "BatchOperation", - "ContextDefinitions", - "FlowOperatorDefinitions", - "SuperAppDefinitions", - "SuperfluidGovernanceConfigs" + "ISuperTokenFactory" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\ISuperAgreement.sol": { - "lastModificationDate": 1683820730218, - "contentHash": "49d978f06d4edeb5125a7152d6897e69", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperAgreement.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidToken.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "754cedf65d15d0129e8b2d85ac9ce35a", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidToken.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -586,19 +585,19 @@ } }, "imports": [ - "./ISuperfluidToken.sol" + "./ISuperAgreement.sol" ], "versionPragmas": [ - ">= 0.8.4" + ">= 0.8.11" ], "artifacts": [ - "ISuperAgreement" + "ISuperfluidToken" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\ISuperApp.sol": { - "lastModificationDate": 1683820730220, - "contentHash": "5057526e30b17d708447527cb6485d6f", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperApp.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperToken.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "00e370b085693a2c5240c5d5f987496f", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperToken.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -630,19 +629,24 @@ } }, "imports": [ - "./ISuperToken.sol" + "./ISuperfluidToken.sol", + "../tokens/TokenInfo.sol", + "@openzeppelin/contracts/token/ERC777/IERC777.sol", + "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "./IConstantOutflowNFT.sol", + "./IConstantInflowNFT.sol" ], "versionPragmas": [ - ">= 0.8.4" + ">= 0.8.11" ], "artifacts": [ - "ISuperApp" + "ISuperToken" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\IConstantInflowNFT.sol": { - "lastModificationDate": 1683820730194, - "contentHash": "50e7ff0bc0e1235a45c52de2eae4df43", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantInflowNFT.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IPoolAdminNFT.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "0706b5a7fbffd7139ee205fac493ecb1", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IPoolAdminNFT.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -673,21 +677,18 @@ } } }, - "imports": [ - "./ISuperToken.sol", - "./IFlowNFTBase.sol" - ], + "imports": [], "versionPragmas": [ - ">=0.8.4" + ">=0.8.11" ], "artifacts": [ - "IConstantInflowNFT" + "IPoolAdminNFT" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\IPoolAdminNFT.sol": { - "lastModificationDate": 1683820730207, - "contentHash": "6a5ee5e8ea02a99a32948c3ba8f750a8", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IPoolAdminNFT.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IPoolMemberNFT.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "2f69dea01c9e7ca17a3a18a333ee360e", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IPoolMemberNFT.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -720,16 +721,16 @@ }, "imports": [], "versionPragmas": [ - ">=0.8.4" + ">=0.8.11" ], "artifacts": [ - "IPoolAdminNFT" + "IPoolMemberNFT" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\IPoolMemberNFT.sol": { - "lastModificationDate": 1683820730208, - "contentHash": "71ace2838abebb46b969d54537e4458d", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IPoolMemberNFT.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperAgreement.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "86bf0825a88f435db8d8ca9679fc9ac6", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperAgreement.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -760,18 +761,20 @@ } } }, - "imports": [], + "imports": [ + "./ISuperfluidToken.sol" + ], "versionPragmas": [ - ">=0.8.4" + ">= 0.8.11" ], "artifacts": [ - "IPoolMemberNFT" + "ISuperAgreement" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\IConstantOutflowNFT.sol": { - "lastModificationDate": 1683820730195, - "contentHash": "d68a7fe94e12d2277eedd4054fc59a6b", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantOutflowNFT.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol": { + "lastModificationDate": 1705883524105, + "contentHash": "068f142ad5d91388ad0d82af679d7522", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -803,20 +806,20 @@ } }, "imports": [ - "./ISuperfluidToken.sol", - "./IFlowNFTBase.sol" + "../superfluid/ISuperAgreement.sol", + "../superfluid/ISuperfluidToken.sol" ], "versionPragmas": [ - ">=0.8.4" + ">= 0.8.11" ], "artifacts": [ - "IConstantOutflowNFT" + "IConstantFlowAgreementV1" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\superfluid\\IFlowNFTBase.sol": { - "lastModificationDate": 1683820730199, - "contentHash": "10e54273c5b21ca0b88131952611bf26", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IFlowNFTBase.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol": { + "lastModificationDate": 1705883524105, + "contentHash": "31642a4b51935099cc67f064d9b49576", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -848,20 +851,20 @@ } }, "imports": [ - "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "./ISuperToken.sol" + "../superfluid/ISuperAgreement.sol", + "../superfluid/ISuperfluidToken.sol" ], "versionPragmas": [ - ">=0.8.4" + ">= 0.8.11" ], "artifacts": [ - "IFlowNFTBase" + "IInstantDistributionAgreementV1" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\token\\ERC721\\extensions\\IERC721Metadata.sol": { - "lastModificationDate": 1683820724482, - "contentHash": "efbc0d15b80a74e34dbe8da0f3e879bb", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperApp.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "4da7fef1aac35869f375b2bf5812cf9d", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperApp.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -893,19 +896,19 @@ } }, "imports": [ - "../IERC721.sol" + "./ISuperToken.sol" ], "versionPragmas": [ - "^0.8.0" + ">= 0.8.11" ], "artifacts": [ - "IERC721Metadata" + "ISuperApp" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\token\\ERC721\\IERC721.sol": { - "lastModificationDate": 1683820724431, - "contentHash": "eb7e61db29f31d88b3c1cef1b063d338", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/ISETH.sol": { + "lastModificationDate": 1705883524105, + "contentHash": "4798cec8ff443efaab2bb2d15ec67586", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/ISETH.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -937,19 +940,20 @@ } }, "imports": [ - "../../utils/introspection/IERC165.sol" + "../superfluid/ISuperToken.sol" ], "versionPragmas": [ - "^0.8.0" + ">= 0.8.11" ], "artifacts": [ - "IERC721" + "ISETH", + "ISETHCustom" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\utils\\introspection\\IERC165.sol": { - "lastModificationDate": 1683820724309, - "contentHash": "03e6768535ac4da0e9756f1d8a4a018a", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidGovernance.sol": { + "lastModificationDate": 1705883524106, + "contentHash": "6855299310da30b1603fdfdd9fc3cb68", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidGovernance.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -980,18 +984,22 @@ } } }, - "imports": [], + "imports": [ + "./ISuperfluid.sol", + "./ISuperToken.sol", + "./ISuperfluidToken.sol" + ], "versionPragmas": [ - "^0.8.0" + ">= 0.8.11" ], "artifacts": [ - "IERC165" + "ISuperfluidGovernance" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\tokens\\ERC20WithTokenInfo.sol": { - "lastModificationDate": 1683820730178, - "contentHash": "77968d7579793b9f87e33dec4d917f44", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/ERC20WithTokenInfo.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "lastModificationDate": 1705883524094, + "contentHash": "efbc0d15b80a74e34dbe8da0f3e879bb", + "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -1023,20 +1031,19 @@ } }, "imports": [ - "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "./TokenInfo.sol" + "../IERC721.sol" ], "versionPragmas": [ - ">= 0.8.4" + "^0.8.0" ], "artifacts": [ - "ERC20WithTokenInfo" + "IERC721Metadata" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\agreements\\IConstantFlowAgreementV1.sol": { - "lastModificationDate": 1683820730191, - "contentHash": "253f76f0473cf1297607b03447c4b53e", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "lastModificationDate": 1705883523049, + "contentHash": "48de4c9a3a4ae5ef66a2aa620843413f", + "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -1068,20 +1075,19 @@ } }, "imports": [ - "../superfluid/ISuperAgreement.sol", - "../superfluid/ISuperfluidToken.sol" + "../../utils/introspection/IERC165.sol" ], "versionPragmas": [ - ">= 0.8.4" + "^0.8.0" ], "artifacts": [ - "IConstantFlowAgreementV1" + "IERC721" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@superfluid-finance\\ethereum-contracts\\contracts\\interfaces\\agreements\\IInstantDistributionAgreementV1.sol": { - "lastModificationDate": 1683820730201, - "contentHash": "60042f78e0fa54a8547790c391ab27c1", - "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "lastModificationDate": 1705883523051, + "contentHash": "03e6768535ac4da0e9756f1d8a4a018a", + "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -1112,20 +1118,59 @@ } } }, - "imports": [ - "../superfluid/ISuperAgreement.sol", - "../superfluid/ISuperfluidToken.sol" + "imports": [], + "versionPragmas": [ + "^0.8.0" ], + "artifacts": [ + "IERC165" + ] + }, + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/TokenInfo.sol": { + "lastModificationDate": 1705883524105, + "contentHash": "0909a5525b535f8d4bbb48481505c98f", + "sourceName": "@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/TokenInfo.sol", + "solcConfig": { + "version": "0.8.14", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.gasEstimates" + ], + "": [ + "ast" + ] + } + }, + "metadata": { + "useLiteralContent": true + } + } + }, + "imports": [], "versionPragmas": [ - ">= 0.8.4" + ">= 0.8.11" ], "artifacts": [ - "IInstantDistributionAgreementV1" + "TokenInfo" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\contracts\\TradeableCashflow.sol": { - "lastModificationDate": 1683838107680, - "contentHash": "8c645a56d0ff58003b2bafe78ddd232b", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/contracts/TradeableCashflow.sol": { + "lastModificationDate": 1705870833434, + "contentHash": "8192542ff1624a61a73cea4ceca44e17", "sourceName": "contracts/TradeableCashflow.sol", "solcConfig": { "version": "0.8.14", @@ -1168,9 +1213,9 @@ "TradeableCashflow" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\token\\ERC721\\ERC721.sol": { - "lastModificationDate": 1683820723855, - "contentHash": "f7f4f78c31f28534852e5c56000a25af", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "lastModificationDate": 1705883523049, + "contentHash": "95602b04f0b53f1139f4668d123ddeb7", "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", "solcConfig": { "version": "0.8.14", @@ -1218,9 +1263,9 @@ "ERC721" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\utils\\Address.sol": { - "lastModificationDate": 1683820722946, - "contentHash": "f31ad6fc4bbf9c06203987220156a6ba", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/utils/Address.sol": { + "lastModificationDate": 1705883521157, + "contentHash": "211ffd288c1588ba8c10eae668ca3c66", "sourceName": "@openzeppelin/contracts/utils/Address.sol", "solcConfig": { "version": "0.8.14", @@ -1260,10 +1305,10 @@ "Address" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\utils\\Strings.sol": { - "lastModificationDate": 1683820724761, - "contentHash": "396031251978f8febfd90cb62cb240ec", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/utils/Context.sol": { + "lastModificationDate": 1705883521157, + "contentHash": "f07feb4a44b1a4872370da5aa70e8e46", + "sourceName": "@openzeppelin/contracts/utils/Context.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -1294,20 +1339,18 @@ } } }, - "imports": [ - "./math/Math.sol" - ], + "imports": [], "versionPragmas": [ "^0.8.0" ], "artifacts": [ - "Strings" + "Context" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\utils\\Context.sol": { - "lastModificationDate": 1683820723095, - "contentHash": "5f2c5c4b6af2dd4551027144797bc8be", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "lastModificationDate": 1705883523049, + "contentHash": "c22d4395e33763de693fd440c6fd10e1", + "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -1343,11 +1386,56 @@ "^0.8.0" ], "artifacts": [ - "Context" + "IERC721Receiver" + ] + }, + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/utils/Strings.sol": { + "lastModificationDate": 1705883521157, + "contentHash": "48686fc32a22a3754b8e63321857dd2a", + "sourceName": "@openzeppelin/contracts/utils/Strings.sol", + "solcConfig": { + "version": "0.8.14", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.gasEstimates" + ], + "": [ + "ast" + ] + } + }, + "metadata": { + "useLiteralContent": true + } + } + }, + "imports": [ + "./math/Math.sol", + "./math/SignedMath.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "Strings" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\utils\\introspection\\ERC165.sol": { - "lastModificationDate": 1683820723571, + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "lastModificationDate": 1705883523051, "contentHash": "0e7db055ce108f9da7bb6686a00287c0", "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", "solcConfig": { @@ -1390,10 +1478,10 @@ "ERC165" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\token\\ERC721\\IERC721Receiver.sol": { - "lastModificationDate": 1683820724494, - "contentHash": "c22d4395e33763de693fd440c6fd10e1", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/utils/math/Math.sol": { + "lastModificationDate": 1705883523052, + "contentHash": "fe63409d8a06818b926cf89e0ea88b1b", + "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -1429,13 +1517,13 @@ "^0.8.0" ], "artifacts": [ - "IERC721Receiver" + "Math" ] }, - "C:\\Users\\Joel Jesudason\\Documents\\Superfluid\\main\\super-examples\\projects\\tradeable-cashflow\\node_modules\\@openzeppelin\\contracts\\utils\\math\\Math.sol": { - "lastModificationDate": 1683820724623, - "contentHash": "b9c58920ce74d6dc819161786112e7ee", - "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", + "/Users/youssefelallali/Desktop/Superfluid/Repos/super-examples/projects/tradeable-cashflow/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { + "lastModificationDate": 1705883523053, + "contentHash": "9488ebd4daacfee8ad04811600d7d061", + "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", "solcConfig": { "version": "0.8.14", "settings": { @@ -1471,7 +1559,7 @@ "^0.8.0" ], "artifacts": [ - "Math" + "SignedMath" ] } } diff --git a/projects/tradeable-cashflow/contracts/RedirectAll.sol b/projects/tradeable-cashflow/contracts/RedirectAll.sol index 1162ce5..6a5a815 100644 --- a/projects/tradeable-cashflow/contracts/RedirectAll.sol +++ b/projects/tradeable-cashflow/contracts/RedirectAll.sol @@ -25,6 +25,9 @@ contract RedirectAll is SuperAppBaseFlow { /// @notice This is the current receiver that all streams will be redirected to. address public _receiver; + /// @dev The host contract, which is the Superfluid contract that registered this contract + ISuperfluid public host; + constructor( ISuperToken acceptedToken, ISuperfluid _host, @@ -33,7 +36,8 @@ contract RedirectAll is SuperAppBaseFlow { _host, true, true, - true + true, + string("") ) { _acceptedToken = acceptedToken;