Skip to content

Commit f127e22

Browse files
authored
fix poolSnapshot (#361)
1 parent f03dce6 commit f127e22

File tree

2 files changed

+40
-41
lines changed

2 files changed

+40
-41
lines changed

src/mappings/pool.ts

+17-38
Original file line numberDiff line numberDiff line change
@@ -45,38 +45,26 @@ export function handleJoin(event: LOG_JOIN): void {
4545
if (token.isDatatoken) {
4646
poolTx.datatoken = token.id
4747
poolTx.datatokenValue = ammount
48-
if (pool.isFinalized) {
49-
const poolSnapshot = getPoolSnapshot(
50-
pool.id,
51-
event.block.timestamp.toI32()
52-
)
53-
poolSnapshot.datatokenLiquidity =
54-
poolSnapshot.datatokenLiquidity.plus(ammount)
55-
56-
poolSnapshot.save()
57-
}
5848

5949
pool.datatokenLiquidity = pool.datatokenLiquidity.plus(ammount)
6050
} else {
6151
poolTx.baseToken = token.id
6252
poolTx.baseTokenValue = ammount
63-
64-
if (pool.isFinalized) {
65-
const poolSnapshot = getPoolSnapshot(
66-
pool.id,
67-
event.block.timestamp.toI32()
68-
)
69-
poolSnapshot.baseTokenLiquidity =
70-
poolSnapshot.baseTokenLiquidity.plus(ammount)
71-
poolSnapshot.save()
72-
}
7353
pool.baseTokenLiquidity = pool.baseTokenLiquidity.plus(ammount)
7454

7555
addLiquidity(token.id, ammount)
7656
}
7757

7858
poolTx.save()
7959
pool.save()
60+
61+
if (pool.isFinalized) {
62+
const poolSnapshot = getPoolSnapshot(pool.id, event.block.timestamp.toI32())
63+
poolSnapshot.baseTokenLiquidity = pool.baseTokenLiquidity
64+
poolSnapshot.datatokenLiquidity = pool.datatokenLiquidity
65+
poolSnapshot.totalShares = pool.totalShares
66+
poolSnapshot.save()
67+
}
8068
}
8169

8270
export function handleExit(event: LOG_EXIT): void {
@@ -98,21 +86,19 @@ export function handleExit(event: LOG_EXIT): void {
9886
poolTx.datatoken = token.id
9987
poolTx.datatokenValue = ammount.neg()
10088

101-
poolSnapshot.datatokenLiquidity =
102-
poolSnapshot.datatokenLiquidity.minus(ammount)
103-
10489
pool.datatokenLiquidity.minus(ammount)
10590
} else {
10691
poolTx.baseToken = token.id
10792
poolTx.baseTokenValue = ammount.neg()
10893

109-
poolSnapshot.baseTokenLiquidity =
110-
poolSnapshot.baseTokenLiquidity.minus(ammount)
111-
11294
pool.baseTokenLiquidity.minus(ammount)
11395
removeLiquidity(token.id, ammount)
11496
}
11597

98+
poolSnapshot.baseTokenLiquidity = pool.baseTokenLiquidity
99+
poolSnapshot.datatokenLiquidity = pool.datatokenLiquidity
100+
poolSnapshot.totalShares = pool.totalShares
101+
116102
poolSnapshot.save()
117103
poolTx.save()
118104
pool.save()
@@ -139,17 +125,12 @@ export function handleSwap(event: LOG_SWAP): void {
139125
poolTx.datatokenValue = ammountOut.neg()
140126

141127
pool.datatokenLiquidity = pool.datatokenLiquidity.minus(ammountOut)
142-
143-
poolSnapshot.datatokenLiquidity =
144-
poolSnapshot.datatokenLiquidity.minus(ammountOut)
145128
} else {
146129
poolTx.baseToken = tokenOut.id
147130
poolTx.baseTokenValue = ammountOut.neg()
148131

149132
pool.baseTokenLiquidity = pool.baseTokenLiquidity.minus(ammountOut)
150-
151-
poolSnapshot.baseTokenLiquidity =
152-
poolSnapshot.baseTokenLiquidity.minus(ammountOut)
133+
poolSnapshot.swapVolume = poolSnapshot.swapVolume.plus(ammountOut)
153134

154135
addPoolSwap(tokenOut.id, ammountOut)
155136
removeLiquidity(tokenOut.id, ammountOut)
@@ -166,17 +147,12 @@ export function handleSwap(event: LOG_SWAP): void {
166147
poolTx.datatokenValue = ammountIn
167148

168149
pool.datatokenLiquidity = pool.datatokenLiquidity.plus(ammountIn)
169-
170-
poolSnapshot.datatokenLiquidity =
171-
poolSnapshot.datatokenLiquidity.plus(ammountIn)
172150
} else {
173151
poolTx.baseToken = tokenIn.id
174152
poolTx.baseTokenValue = ammountIn
175153

176154
pool.baseTokenLiquidity = pool.baseTokenLiquidity.plus(ammountIn)
177-
178-
poolSnapshot.baseTokenLiquidity =
179-
poolSnapshot.baseTokenLiquidity.plus(ammountIn)
155+
poolSnapshot.swapVolume = poolSnapshot.swapVolume.plus(ammountIn)
180156

181157
addLiquidity(tokenIn.id, ammountIn)
182158
addPoolSwap(tokenIn.id, ammountIn)
@@ -192,6 +168,9 @@ export function handleSwap(event: LOG_SWAP): void {
192168
)
193169
pool.spotPrice = spotPrice
194170
poolSnapshot.spotPrice = spotPrice
171+
poolSnapshot.baseTokenLiquidity = pool.baseTokenLiquidity
172+
poolSnapshot.datatokenLiquidity = pool.datatokenLiquidity
173+
poolSnapshot.totalShares = pool.totalShares
195174

196175
poolSnapshot.save()
197176
poolTx.save()

subgraph.yaml

+23-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ dataSources:
2828
handler: handleNftCreated
2929
- event: TokenCreated(indexed address,indexed address,string,string,uint256,address)
3030
handler: handleNewToken
31-
31+
3232
- kind: ethereum/contract
3333
name: FactoryRouter
3434
network: rinkeby
@@ -71,7 +71,6 @@ dataSources:
7171
handler: handleDispenserContractRemoved
7272

7373
templates:
74-
7574
- name: ERC20Template
7675
kind: ethereum/contract
7776
network: rinkeby
@@ -263,4 +262,25 @@ templates:
263262
- event: PublishMarketFeeChanged(indexed bytes32,address,address,uint256)
264263
handler: handlePublishMarketFeeChanged
265264
- event: TokenCollected(indexed bytes32,indexed address,indexed address,uint256)
266-
handler: handleTokenCollected
265+
handler: handleTokenCollected
266+
267+
- name: SSContract
268+
kind: ethereum/contract
269+
network: rinkeby
270+
source:
271+
abi: SSContract
272+
mapping:
273+
kind: ethereum/events
274+
apiVersion: 0.0.6
275+
language: wasm/assemblyscript
276+
file: ./src/mappings/sscontract.ts
277+
entities:
278+
- SSContract
279+
abis:
280+
- name: SSContract
281+
file: ./node_modules/@oceanprotocol/contracts/artifacts/contracts/pools/ssContracts/SideStaking.sol/SideStaking.json
282+
eventHandlers:
283+
- event: VestingCreated(indexed address,indexed address,uint256,uint256)
284+
handler: handleVestingCreated
285+
- event: Vesting(indexed address,indexed address,indexed address,uint256)
286+
handler: handleVesting

0 commit comments

Comments
 (0)