Skip to content

Commit 697b97d

Browse files
committed
added increaseMemberUnits and decreaseMemberUnits to ISuperfluidPool
1 parent e4c4f1c commit 697b97d

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

packages/ethereum-contracts/contracts/agreements/gdav1/SuperfluidPool.sol

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,26 @@ contract SuperfluidPool is ISuperfluidPool, BeaconProxiable {
399399
return true;
400400
}
401401

402+
/// @inheritdoc ISuperfluidPool
403+
function increaseMemberUnits(address memberAddr, uint128 addedUnits) external override returns (bool) {
404+
if (msg.sender != admin && msg.sender != address(GDA)) revert SUPERFLUID_POOL_NOT_POOL_ADMIN_OR_GDA();
405+
406+
_updateMemberUnits(memberAddr, _getUnits(memberAddr) + addedUnits);
407+
emit Transfer(address(0), memberAddr, addedUnits);
408+
409+
return true;
410+
}
411+
412+
/// @inheritdoc ISuperfluidPool
413+
function decreaseMemberUnits(address memberAddr, uint128 subtractedUnits) external override returns (bool) {
414+
if (msg.sender != admin && msg.sender != address(GDA)) revert SUPERFLUID_POOL_NOT_POOL_ADMIN_OR_GDA();
415+
416+
_updateMemberUnits(memberAddr, _getUnits(memberAddr) - subtractedUnits);
417+
emit Transfer(memberAddr, address(0), subtractedUnits);
418+
419+
return true;
420+
}
421+
402422
/**
403423
* @notice Checks whether or not the NFT hook can be called.
404424
* @dev A staticcall, so `POOL_MEMBER_NFT` must be a view otherwise the assumption is that it reverts

packages/ethereum-contracts/contracts/interfaces/agreements/gdav1/ISuperfluidPool.sol

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,16 @@ interface ISuperfluidPool is IERC20, IERC20Metadata {
8989
/// @param newUnits The new units for the member
9090
function updateMemberUnits(address memberAddr, uint128 newUnits) external returns (bool);
9191

92+
/// @notice Increases `memberAddr` ownedUnits by `addedUnits`
93+
/// @param memberAddr The address of the member
94+
/// @param addedUnits The additional units for the member
95+
function increaseMemberUnits(address memberAddr, uint128 addedUnits) external returns (bool);
96+
97+
/// @notice Decreases `memberAddr` ownedUnits by `subtractedUnits`
98+
/// @param memberAddr The address of the member
99+
/// @param subtractedUnits The units subtracted for the member
100+
function decreaseMemberUnits(address memberAddr, uint128 subtractedUnits) external returns (bool);
101+
92102
/// @notice Claims the claimable balance for `memberAddr` at `block.timestamp`
93103
/// @param memberAddr The address of the member
94104
function claimAll(address memberAddr) external returns (bool);

packages/ethereum-contracts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@superfluid-finance/ethereum-contracts",
33
"description": " Ethereum contracts implementation for the Superfluid Protocol",
4-
"version": "1.12.1",
4+
"version": "1.12.2",
55
"dependencies": {
66
"@decentral.ee/web3-helpers": "0.5.3",
77
"@nomiclabs/hardhat-ethers": "2.2.3",

0 commit comments

Comments
 (0)