Skip to content

Commit ca03b7a

Browse files
authored
Merge pull request #78 from bancorprotocol/fix-events
Update BancorNetwork and PoolCollection events + try to avoid (re)building during tests
2 parents 0c365d1 + 53a1347 commit ca03b7a

File tree

5 files changed

+68
-51
lines changed

5 files changed

+68
-51
lines changed

packages/v3/contracts/network/BancorNetwork.sol

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,9 @@ contract BancorNetwork is IBancorNetwork, Upgradeable, OwnedUpgradeable, Reentra
125125
);
126126

127127
/**
128-
* @dev triggered when funds are deposited
128+
* @dev triggered when base token liquidity is deposited
129129
*/
130-
event FundsDeposited(
130+
event BaseTokenDeposited(
131131
bytes32 indexed contextId,
132132
IReserveToken indexed token,
133133
address indexed provider,
@@ -137,21 +137,43 @@ contract BancorNetwork is IBancorNetwork, Upgradeable, OwnedUpgradeable, Reentra
137137
);
138138

139139
/**
140-
* @dev triggered when funds are withdrawn
140+
* @dev triggered when network token liquidity is deposited
141141
*/
142-
event FundsWithdrawn(
142+
event NetworkTokenDeposited(
143+
bytes32 indexed contextId,
144+
address indexed provider,
145+
uint256 depositAmount,
146+
uint256 poolTokenAmount,
147+
uint256 govTokenAmount
148+
);
149+
150+
/**
151+
* @dev triggered when base token liquidity is withdrawn
152+
*/
153+
event BaseTokenWithdrawn(
143154
bytes32 indexed contextId,
144155
IReserveToken indexed token,
145156
address indexed provider,
146157
IPoolCollection poolCollection,
147-
uint256 poolTokenAmount,
148-
uint256 govTokenAmount,
149158
uint256 baseTokenAmount,
159+
uint256 poolTokenAmount,
150160
uint256 externalProtectionBaseTokenAmount,
151161
uint256 networkTokenAmount,
152162
uint256 withdrawalFeeAmount
153163
);
154164

165+
/**
166+
* @dev triggered when network token liquidity is withdrawn
167+
*/
168+
event NetworkTokenWithdrawn(
169+
bytes32 indexed contextId,
170+
address indexed provider,
171+
uint256 networkTokenAmount,
172+
uint256 poolTokenAmount,
173+
uint256 govTokenAmount,
174+
uint256 withdrawalFeeAmount
175+
);
176+
155177
/**
156178
* @dev triggered when funds are migrated
157179
*/
@@ -709,13 +731,12 @@ contract BancorNetwork is IBancorNetwork, Upgradeable, OwnedUpgradeable, Reentra
709731
0
710732
);
711733

712-
emit FundsDeposited({
734+
emit NetworkTokenDeposited({
713735
contextId: contextId,
714-
token: IReserveToken(address(_networkToken)),
715736
provider: provider,
716-
poolCollection: IPoolCollection(address(0x0)),
717737
depositAmount: networkTokenAmount,
718-
poolTokenAmount: depositAmounts.poolTokenAmount
738+
poolTokenAmount: depositAmounts.poolTokenAmount,
739+
govTokenAmount: depositAmounts.govTokenAmount
719740
});
720741

721742
emit TotalLiquidityUpdated({
@@ -788,7 +809,7 @@ contract BancorNetwork is IBancorNetwork, Upgradeable, OwnedUpgradeable, Reentra
788809

789810
// TODO: process network fees based on the return values
790811

791-
emit FundsDeposited({
812+
emit BaseTokenDeposited({
792813
contextId: contextId,
793814
token: pool,
794815
provider: provider,
@@ -878,16 +899,12 @@ contract BancorNetwork is IBancorNetwork, Upgradeable, OwnedUpgradeable, Reentra
878899

879900
assert(amounts.poolTokenAmount == completedRequest.poolTokenAmount);
880901

881-
emit FundsWithdrawn({
902+
emit NetworkTokenWithdrawn({
882903
contextId: contextId,
883-
token: IReserveToken(address(_networkToken)),
884904
provider: provider,
885-
poolCollection: IPoolCollection(address(0x0)),
905+
networkTokenAmount: amounts.networkTokenAmount,
886906
poolTokenAmount: amounts.poolTokenAmount,
887907
govTokenAmount: amounts.govTokenAmount,
888-
baseTokenAmount: 0,
889-
externalProtectionBaseTokenAmount: 0,
890-
networkTokenAmount: amounts.networkTokenAmount,
891908
withdrawalFeeAmount: amounts.withdrawalFeeAmount
892909
});
893910

@@ -971,16 +988,15 @@ contract BancorNetwork is IBancorNetwork, Upgradeable, OwnedUpgradeable, Reentra
971988
);
972989
}
973990

974-
emit FundsWithdrawn({
991+
emit BaseTokenWithdrawn({
975992
contextId: contextId,
976993
token: pool,
977994
provider: provider,
978995
poolCollection: poolCollection,
979-
poolTokenAmount: completedRequest.poolTokenAmount,
980-
govTokenAmount: 0,
981996
baseTokenAmount: amounts.baseTokenAmountToTransferFromVaultToProvider.add(
982997
amounts.baseTokenAmountToTransferFromExternalProtectionWalletToProvider
983998
),
999+
poolTokenAmount: completedRequest.poolTokenAmount,
9841000
externalProtectionBaseTokenAmount: amounts.baseTokenAmountToTransferFromExternalProtectionWalletToProvider,
9851001
networkTokenAmount: amounts.networkTokenAmountToMintForProvider,
9861002
withdrawalFeeAmount: amounts.baseTokenWithdrawalFeeAmount

packages/v3/contracts/pools/PoolCollection.sol

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ contract PoolCollection is IPoolCollection, OwnedUpgradeable, ReentrancyGuardUpg
4242

4343
uint32 private constant DEFAULT_TRADING_FEE_PPM = 2000; // 0.2%
4444

45+
// trading enabling/disabling reasons
46+
uint8 private constant TRADING_STATUS_UPDATE_OWNER = 0;
47+
uint8 private constant TRADING_STATUS_UPDATE_MIN_LIQUIDITY = 1;
48+
4549
// withdrawal-related input data
4650
struct PoolWithdrawalParams {
4751
uint256 networkTokenAvgTradingLiquidity;
@@ -104,7 +108,7 @@ contract PoolCollection is IPoolCollection, OwnedUpgradeable, ReentrancyGuardUpg
104108
/**
105109
* @dev triggered when trading in a specific pool is enabled/disabled
106110
*/
107-
event TradingEnabled(IReserveToken indexed pool, bool newStatus);
111+
event TradingEnabled(IReserveToken indexed pool, bool newStatus, uint8 reason);
108112

109113
/**
110114
* @dev triggered when depositing to a specific pool is enabled/disabled
@@ -257,7 +261,7 @@ contract PoolCollection is IPoolCollection, OwnedUpgradeable, ReentrancyGuardUpg
257261

258262
// although the owner-controlled flag is set to true, we want to emphasize that the trading in a newly created
259263
// pool is disabled
260-
emit TradingEnabled({ pool: reserveToken, newStatus: false });
264+
emit TradingEnabled({ pool: reserveToken, newStatus: false, reason: TRADING_STATUS_UPDATE_OWNER });
261265

262266
emit TradingFeePPMUpdated({ pool: reserveToken, prevFeePPM: 0, newFeePPM: newPool.tradingFeePPM });
263267
emit DepositingEnabled({ pool: reserveToken, newStatus: newPool.depositingEnabled });
@@ -344,7 +348,7 @@ contract PoolCollection is IPoolCollection, OwnedUpgradeable, ReentrancyGuardUpg
344348

345349
poolData.tradingEnabled = status;
346350

347-
emit TradingEnabled({ pool: pool, newStatus: status });
351+
emit TradingEnabled({ pool: pool, newStatus: status, reason: TRADING_STATUS_UPDATE_OWNER });
348352
}
349353

350354
/**
@@ -457,7 +461,7 @@ contract PoolCollection is IPoolCollection, OwnedUpgradeable, ReentrancyGuardUpg
457461
poolData.liquidity.networkTokenTradingLiquidity.add(depositParams.baseTokenDeltaAmount) >=
458462
minLiquidityForTrading
459463
) {
460-
emit TradingEnabled({ pool: pool, newStatus: true });
464+
emit TradingEnabled({ pool: pool, newStatus: true, reason: TRADING_STATUS_UPDATE_MIN_LIQUIDITY });
461465
}
462466
}
463467

@@ -687,7 +691,7 @@ contract PoolCollection is IPoolCollection, OwnedUpgradeable, ReentrancyGuardUpg
687691
bool currEnabled = networkTokenCurrTradingLiquidity >= minLiquidityForTrading;
688692
bool newEnabled = networkTokenNewTradingLiquidity >= minLiquidityForTrading;
689693
if (newEnabled != currEnabled) {
690-
emit TradingEnabled({ pool: pool, newStatus: newEnabled });
694+
emit TradingEnabled({ pool: pool, newStatus: newEnabled, reason: TRADING_STATUS_UPDATE_MIN_LIQUIDITY });
691695
}
692696
}
693697
}

packages/v3/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"scripts": {
2222
"build": "hardhat compile",
2323
"rebuild": "yarn clean && yarn build",
24-
"test": "yarn build && NODE_OPTIONS='--max-old-space-size=8192' hardhat test",
24+
"test": "NODE_OPTIONS='--max-old-space-size=8192' hardhat test",
2525
"testb": "BAIL=1 yarn test",
2626
"profile": "PROFILE=1 yarn test",
2727
"size": "yarn rebuild && hardhat size-contracts",

packages/v3/test/network/BancorNetwork.ts

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -699,15 +699,8 @@ describe('BancorNetwork', () => {
699699
const res = await deposit(amount);
700700

701701
await expect(res)
702-
.to.emit(network, 'FundsDeposited')
703-
.withArgs(
704-
contextId,
705-
token.address,
706-
providerAddress,
707-
ZERO_ADDRESS,
708-
amount,
709-
expectedPoolTokenAmount
710-
);
702+
.to.emit(network, 'NetworkTokenDeposited')
703+
.withArgs(contextId, providerAddress, amount, expectedPoolTokenAmount, expectedPoolTokenAmount);
711704

712705
await expect(res)
713706
.to.emit(network, 'TotalLiquidityUpdated')
@@ -747,7 +740,7 @@ describe('BancorNetwork', () => {
747740
}
748741

749742
await expect(res)
750-
.to.emit(network, 'FundsDeposited')
743+
.to.emit(network, 'BaseTokenDeposited')
751744
.withArgs(
752745
contextId,
753746
token.address,
@@ -1597,17 +1590,13 @@ describe('BancorNetwork', () => {
15971590
const res = await network.connect(provider).withdraw(id);
15981591

15991592
await expect(res)
1600-
.to.emit(network, 'FundsWithdrawn')
1593+
.to.emit(network, 'NetworkTokenWithdrawn')
16011594
.withArgs(
16021595
contextId,
1603-
token.address,
16041596
provider.address,
1605-
ZERO_ADDRESS,
1597+
withdrawalAmounts.networkTokenAmount,
16061598
poolTokenAmount,
16071599
poolTokenAmount,
1608-
BigNumber.from(0),
1609-
BigNumber.from(0),
1610-
withdrawalAmounts.networkTokenAmount,
16111600
withdrawalAmounts.withdrawalFeeAmount
16121601
);
16131602

@@ -1648,17 +1637,16 @@ describe('BancorNetwork', () => {
16481637
}
16491638

16501639
await expect(res)
1651-
.to.emit(network, 'FundsWithdrawn')
1640+
.to.emit(network, 'BaseTokenWithdrawn')
16521641
.withArgs(
16531642
contextId,
16541643
token.address,
16551644
provider.address,
16561645
poolCollection.address,
1657-
poolTokenAmount,
1658-
BigNumber.from(0),
1659-
withdrawalAmounts.networkTokenAmountToMintForProvider.add(
1660-
withdrawalAmounts.baseTokenAmountToTransferFromVaultToProvider
1646+
withdrawalAmounts.baseTokenAmountToTransferFromVaultToProvider.add(
1647+
withdrawalAmounts.baseTokenAmountToTransferFromExternalProtectionWalletToProvider
16611648
),
1649+
poolTokenAmount,
16621650
withdrawalAmounts.baseTokenAmountToTransferFromExternalProtectionWalletToProvider,
16631651
withdrawalAmounts.networkTokenAmountToMintForProvider,
16641652
withdrawalAmounts.baseTokenWithdrawalFeeAmount

packages/v3/test/pools/PoolCollection.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ describe('PoolCollection', () => {
1919
const MIN_LIQUIDITY_FOR_TRADING = toWei(BigNumber.from(100_000));
2020
const INITIAL_RATE = { n: BigNumber.from(1), d: BigNumber.from(2) };
2121

22+
const TRADING_STATUS_UPDATE_OWNER = 0;
23+
const TRADING_STATUS_UPDATE_MIN_LIQUIDITY = 1;
24+
2225
let deployer: SignerWithAddress;
2326
let nonOwner: SignerWithAddress;
2427

@@ -185,7 +188,9 @@ describe('PoolCollection', () => {
185188
await expect(res)
186189
.to.emit(poolCollection, 'TradingFeePPMUpdated')
187190
.withArgs(reserveToken.address, BigNumber.from(0), pool.tradingFeePPM);
188-
await expect(res).to.emit(poolCollection, 'TradingEnabled').withArgs(reserveToken.address, false);
191+
await expect(res)
192+
.to.emit(poolCollection, 'TradingEnabled')
193+
.withArgs(reserveToken.address, false, TRADING_STATUS_UPDATE_OWNER);
189194
await expect(res)
190195
.to.emit(poolCollection, 'DepositingEnabled')
191196
.withArgs(reserveToken.address, pool.depositingEnabled);
@@ -397,14 +402,18 @@ describe('PoolCollection', () => {
397402
expect(tradingEnabled).to.be.true;
398403

399404
const res = await poolCollection.enableTrading(reserveToken.address, false);
400-
await expect(res).to.emit(poolCollection, 'TradingEnabled').withArgs(reserveToken.address, false);
405+
await expect(res)
406+
.to.emit(poolCollection, 'TradingEnabled')
407+
.withArgs(reserveToken.address, false, TRADING_STATUS_UPDATE_OWNER);
401408

402409
pool = await poolCollection.poolData(reserveToken.address);
403410
({ tradingEnabled } = pool);
404411
expect(tradingEnabled).to.be.false;
405412

406413
const res2 = await poolCollection.enableTrading(reserveToken.address, true);
407-
await expect(res2).to.emit(poolCollection, 'TradingEnabled').withArgs(reserveToken.address, true);
414+
await expect(res2)
415+
.to.emit(poolCollection, 'TradingEnabled')
416+
.withArgs(reserveToken.address, true, TRADING_STATUS_UPDATE_OWNER);
408417

409418
pool = await poolCollection.poolData(reserveToken.address);
410419
({ tradingEnabled } = pool);
@@ -989,7 +998,7 @@ describe('PoolCollection', () => {
989998
) {
990999
await expect(res)
9911000
.to.emit(poolCollection, 'TradingEnabled')
992-
.withArgs(reserveToken.address, true);
1001+
.withArgs(reserveToken.address, true, TRADING_STATUS_UPDATE_MIN_LIQUIDITY);
9931002
}
9941003

9951004
let rate;

0 commit comments

Comments
 (0)