@gooddollar/goodcollective-contracts 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.dbg.json +4 -0
- package/artifacts/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.json +995 -0
- package/artifacts/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.dbg.json +4 -0
- package/artifacts/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.json +113 -0
- package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.dbg.json +4 -0
- package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.json +2210 -0
- package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.dbg.json +4 -0
- package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.json +30 -0
- package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.dbg.json +4 -0
- package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.json +45 -0
- package/artifacts/contracts/DirectPayments/ProvableNFT.sol/ProvableNFT.dbg.json +4 -0
- package/artifacts/contracts/DirectPayments/ProvableNFT.sol/ProvableNFT.json +1187 -0
- package/artifacts/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.dbg.json +4 -0
- package/artifacts/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.json +831 -0
- package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.dbg.json +4 -0
- package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.json +42 -0
- package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.dbg.json +4 -0
- package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.json +61 -0
- package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.dbg.json +4 -0
- package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.json +47 -0
- package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.dbg.json +4 -0
- package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.json +320 -0
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +30 -0
- package/artifacts/contracts/Interfaces.sol/IMembersValidator.dbg.json +4 -0
- package/artifacts/contracts/Interfaces.sol/IMembersValidator.json +45 -0
- package/artifacts/contracts/UBI/UBIPool.sol/UBIPool.dbg.json +4 -0
- package/artifacts/contracts/UBI/UBIPool.sol/UBIPool.json +2078 -0
- package/artifacts/contracts/UBI/UBIPoolFactory.sol/UBIPoolFactory.dbg.json +4 -0
- package/artifacts/contracts/UBI/UBIPoolFactory.sol/UBIPoolFactory.json +1011 -0
- package/artifacts/contracts/test/HelperLibraryTest.sol/HelperLibraryTest.dbg.json +4 -0
- package/artifacts/contracts/test/HelperLibraryTest.sol/HelperLibraryTest.json +90 -0
- package/artifacts/contracts/utils/HelperLibrary.sol/HelperLibrary.dbg.json +4 -0
- package/artifacts/contracts/utils/HelperLibrary.sol/HelperLibrary.json +117 -0
- package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.dbg.json +4 -0
- package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.json +119 -0
- package/contracts/DirectPayments/DirectPaymentsFactory.sol +32 -6
- package/contracts/DirectPayments/DirectPaymentsLibrary.sol +168 -14
- package/contracts/DirectPayments/DirectPaymentsPool.sol +31 -116
- package/contracts/GoodCollective/GoodCollectiveSuperApp.sol +7 -6
- package/contracts/GoodCollective/IGoodCollectiveSuperApp.sol +4 -0
- package/contracts/GoodCollective/SuperAppBaseFlow.sol +6 -0
- package/contracts/UBI/UBIPool.sol +62 -18
- package/contracts/UBI/UBIPoolFactory.sol +32 -4
- package/contracts/utils/HelperLibrary.sol +10 -0
- package/contracts/utils/Recover.sol +16 -0
- package/package.json +4 -4
- package/releases/deployment.json +7417 -30724
- package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +54 -0
- package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary.ts +77 -0
- package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.ts +77 -0
- package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
- package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.ts +146 -0
- package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +90 -11
- package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.ts +6 -8
- package/typechain-types/contracts/DirectPayments/index.ts +1 -0
- package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.ts +40 -0
- package/typechain-types/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.ts +22 -1
- package/typechain-types/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.ts +38 -1
- package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.ts +152 -0
- package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.ts +523 -0
- package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/index.ts +5 -0
- package/typechain-types/contracts/GoodCollective/index.ts +2 -1
- package/typechain-types/contracts/UBI/MultiClaimModule.sol/IClaimable.ts +92 -0
- package/typechain-types/contracts/UBI/MultiClaimModule.sol/IModule.ts +196 -0
- package/typechain-types/contracts/UBI/MultiClaimModule.sol/MultiClaimModule.ts +242 -0
- package/typechain-types/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
- package/typechain-types/contracts/UBI/UBIPool.ts +77 -0
- package/typechain-types/contracts/UBI/UBIPoolFactory.ts +54 -0
- package/typechain-types/contracts/utils/Recover.ts +263 -0
- package/typechain-types/contracts/utils/index.ts +1 -0
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +38 -1
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary__factory.ts +96 -0
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary__factory.ts +96 -0
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary__factory.ts +169 -0
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +53 -2
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator__factory.ts +1 -1
- package/typechain-types/factories/contracts/DirectPayments/index.ts +1 -0
- package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts +18 -0
- package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp__factory.ts +13 -0
- package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry__factory.ts +24 -0
- package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp__factory.ts +62 -0
- package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow__factory.ts +335 -0
- package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/GoodCollective/index.ts +1 -1
- package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IClaimable__factory.ts +33 -0
- package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IModule__factory.ts +84 -0
- package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/MultiClaimModule__factory.ts +150 -0
- package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
- package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +38 -1
- package/typechain-types/factories/contracts/UBI/UBIPool__factory.ts +42 -1
- package/typechain-types/factories/contracts/test/HelperLibraryTest__factory.ts +1 -1
- package/typechain-types/factories/contracts/utils/HelperLibrary__factory.ts +11 -1
- package/typechain-types/factories/contracts/utils/Recover__factory.ts +172 -0
- package/typechain-types/factories/contracts/utils/index.ts +1 -0
- package/typechain-types/hardhat.d.ts +27 -0
- package/typechain-types/index.ts +8 -2
|
@@ -11,11 +11,14 @@ import { AccessControlUpgradeable } from "@openzeppelin/contracts-upgradeable/ac
|
|
|
11
11
|
import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
|
|
12
12
|
|
|
13
13
|
import "../Interfaces.sol";
|
|
14
|
+
import "../GoodCollective/GoodCollectiveSuperApp.sol";
|
|
15
|
+
import "../GoodCollective/SuperAppBaseFlow.sol";
|
|
14
16
|
|
|
15
17
|
// import "hardhat/console.sol";
|
|
16
18
|
|
|
17
19
|
contract UBIPoolFactory is AccessControlUpgradeable, UUPSUpgradeable {
|
|
18
20
|
error NOT_PROJECT_OWNER();
|
|
21
|
+
error NOT_PROJECT_MANAGER();
|
|
19
22
|
error NOT_POOL();
|
|
20
23
|
|
|
21
24
|
event PoolCreated(
|
|
@@ -29,6 +32,7 @@ contract UBIPoolFactory is AccessControlUpgradeable, UUPSUpgradeable {
|
|
|
29
32
|
event PoolDetailsChanged(address indexed pool, string ipfs);
|
|
30
33
|
event PoolVerifiedChanged(address indexed pool, bool isVerified);
|
|
31
34
|
event UpdatedImpl(address indexed impl);
|
|
35
|
+
event MemberAdded(address indexed member, address indexed pool);
|
|
32
36
|
|
|
33
37
|
struct PoolRegistry {
|
|
34
38
|
string ipfs;
|
|
@@ -58,8 +62,8 @@ contract UBIPoolFactory is AccessControlUpgradeable, UUPSUpgradeable {
|
|
|
58
62
|
_;
|
|
59
63
|
}
|
|
60
64
|
|
|
61
|
-
modifier
|
|
62
|
-
if (pool.hasRole(pool.
|
|
65
|
+
modifier onlyPoolManager(UBIPool pool) {
|
|
66
|
+
if (pool.hasRole(pool.MANAGER_ROLE(), msg.sender) == false) {
|
|
63
67
|
revert NOT_PROJECT_OWNER();
|
|
64
68
|
}
|
|
65
69
|
|
|
@@ -121,6 +125,19 @@ contract UBIPoolFactory is AccessControlUpgradeable, UUPSUpgradeable {
|
|
|
121
125
|
pool = UBIPool(address(new ERC1967Proxy(impl.implementation(), initCall)));
|
|
122
126
|
}
|
|
123
127
|
|
|
128
|
+
// Register the app with the host
|
|
129
|
+
if (pool.host().isApp(pool) == false) {
|
|
130
|
+
try
|
|
131
|
+
IRegisterSuperapp(address(pool.host())).registerApp(address(pool), SuperAppDefinitions.APP_LEVEL_FINAL)
|
|
132
|
+
{} catch {
|
|
133
|
+
//fallback for older versions of superfluid used in unit tests
|
|
134
|
+
IRegisterSuperapp(address(pool.host())).registerAppByFactory(
|
|
135
|
+
address(pool),
|
|
136
|
+
SuperAppDefinitions.APP_LEVEL_FINAL
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
124
141
|
//access control to project is determinted by the first pool access control rules
|
|
125
142
|
if (address(projectIdToControlPool[keccak256(bytes(_projectId))]) == address(0))
|
|
126
143
|
projectIdToControlPool[keccak256(bytes(_projectId))] = pool;
|
|
@@ -134,7 +151,7 @@ contract UBIPoolFactory is AccessControlUpgradeable, UUPSUpgradeable {
|
|
|
134
151
|
emit PoolCreated(address(pool), _projectId, _ipfs, _settings, _limits);
|
|
135
152
|
}
|
|
136
153
|
|
|
137
|
-
function changePoolDetails(UBIPool _pool, string memory _ipfs) external
|
|
154
|
+
function changePoolDetails(UBIPool _pool, string memory _ipfs) external onlyPoolManager(_pool) {
|
|
138
155
|
registry[address(_pool)].ipfs = _ipfs;
|
|
139
156
|
emit PoolDetailsChanged(address(_pool), _ipfs);
|
|
140
157
|
}
|
|
@@ -154,8 +171,19 @@ contract UBIPoolFactory is AccessControlUpgradeable, UUPSUpgradeable {
|
|
|
154
171
|
feeRecipient = _feeRecipient;
|
|
155
172
|
}
|
|
156
173
|
|
|
157
|
-
function addMember(address account)
|
|
174
|
+
function addMember(address account) public onlyPool {
|
|
175
|
+
_addMemberToRegistry(account);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function _addMemberToRegistry(address account) internal {
|
|
158
179
|
memberPools[account].push(msg.sender);
|
|
180
|
+
emit MemberAdded(account, msg.sender);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
function addMembers(address[] calldata members) external onlyPool {
|
|
184
|
+
for (uint i = 0; i < members.length; i++) {
|
|
185
|
+
addMember(members[i]);
|
|
186
|
+
}
|
|
159
187
|
}
|
|
160
188
|
|
|
161
189
|
function removeMember(address member) external onlyPool {
|
|
@@ -16,6 +16,9 @@ library HelperLibrary {
|
|
|
16
16
|
using SuperTokenV1Library for ISuperToken;
|
|
17
17
|
using CFAv1Library for CFAv1Library.InitData;
|
|
18
18
|
|
|
19
|
+
error ZERO_AMOUNT();
|
|
20
|
+
error ZERO_ADDRESS();
|
|
21
|
+
|
|
19
22
|
/**
|
|
20
23
|
* @dev A struct containing information about a token swap
|
|
21
24
|
* @param swapFrom The address of the token being swapped
|
|
@@ -179,4 +182,11 @@ library HelperLibrary {
|
|
|
179
182
|
}
|
|
180
183
|
} else if (newFeeRate > 0) newCtx = cfaV1.createFlowWithCtx(newCtx, recipient, superToken, newFeeRate); //passing in the ctx which is sent to the callback here
|
|
181
184
|
}
|
|
185
|
+
|
|
186
|
+
function recoverFunds(ISuperToken superToken, address recipient, uint256 amount) external {
|
|
187
|
+
require(IGoodCollectiveSuperApp(address(this)).getRegistry().hasRole(0x00, msg.sender), "not owner");
|
|
188
|
+
if (amount == 0) revert ZERO_AMOUNT();
|
|
189
|
+
if (recipient == address(0)) revert ZERO_ADDRESS();
|
|
190
|
+
superToken.transfer(recipient, amount);
|
|
191
|
+
}
|
|
182
192
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity >=0.8;
|
|
4
|
+
import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
|
|
5
|
+
import { IERC20Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
|
|
6
|
+
|
|
7
|
+
contract Recover is UUPSUpgradeable {
|
|
8
|
+
function _authorizeUpgrade(address _impl) internal virtual override {
|
|
9
|
+
require(msg.sender == 0x564193644236F6D9f3D3a3209975E51D32050612, "not owner");
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function end() external {
|
|
13
|
+
IERC20Upgradeable gd = IERC20Upgradeable(0x62B8B11039FcfE5aB0C56E502b1C372A3d2a9c7A);
|
|
14
|
+
gd.transfer(0xC1dCdf8E70acB44CDbB688C91A4883Cf9052Ea9c, gd.balanceOf(address(this)));
|
|
15
|
+
}
|
|
16
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddollar/goodcollective-contracts",
|
|
3
3
|
"packageManager": "yarn@3.2.1",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"types": "./typechain-types/index.ts",
|
|
7
7
|
"files": [
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"dotenv": "^16.3.1",
|
|
36
36
|
"ethereum-waffle": "^3.0.0",
|
|
37
37
|
"graphql": "^16.7.1",
|
|
38
|
-
"hardhat": "^2.
|
|
38
|
+
"hardhat": "^2.26.2",
|
|
39
39
|
"hardhat-abi-exporter": "^2.10.1",
|
|
40
40
|
"hardhat-celo": "^0.0.4",
|
|
41
41
|
"hardhat-contract-sizer": "^2.10.0",
|
|
42
|
-
"hardhat-deploy": "^0.
|
|
42
|
+
"hardhat-deploy": "^1.0.4",
|
|
43
43
|
"hardhat-gas-reporter": "^1.0.8",
|
|
44
44
|
"prettier": "^2.8.8",
|
|
45
45
|
"prettier-plugin-solidity": "^1.1.3",
|
|
@@ -69,4 +69,4 @@
|
|
|
69
69
|
"test:setup": "yarn exec ./scripts/deployContracts.sh",
|
|
70
70
|
"verify": "npx hardhat run scripts/verify.ts --network ${0}"
|
|
71
71
|
}
|
|
72
|
-
}
|
|
72
|
+
}
|