Skip to content

Commit 8f6428c

Browse files
committed
Merge commit 'd23bf60b9c7537a150d47912cf03459700215d59' into v81
2 parents f7c2195 + d23bf60 commit 8f6428c

File tree

2 files changed

+51
-40
lines changed

2 files changed

+51
-40
lines changed

squid.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,12 @@ deploy:
8585
########## BASE NETWORK ##########
8686
- name: base-processor
8787
cmd: ['sqd', 'process:base:prod']
88-
# env:
89-
# ### Fork Setup Stage 1
90-
# ARCHIVE_ONLY: 'true'
91-
# BLOCK_TO: 21527081
92-
# ### Fork Setup Stage 2
93-
# # DISABLE_ARCHIVE: 'true'
88+
env:
89+
# ### Fork Setup Stage 1
90+
# ARCHIVE_ONLY: 'true'
91+
# BLOCK_TO: 21527081
92+
# ### Fork Setup Stage 2
93+
DISABLE_ARCHIVE: 'true'
9494
# # RPC_BASE_ENV: RPC_BASE_ENDPOINT
9595
# # RPC_BASE_ENDPOINT: https://virtual.base.rpc.tenderly.co/103020a8-b59a-4d51-9f8b-b156564e9fb8
9696
# ### Time Travel Fix

src/templates/otoken/otoken.ts

Lines changed: 45 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,18 @@ export const createOTokenProcessor = (params: {
287287
},
288288
}
289289

290+
/* Owners which have been pulled or updated in the current context. */
291+
let ownersChanged = new Map<string, OTokenAddress>()
292+
let getOwner = async (ctx: Context, address: string, block: Block) => {
293+
let owner = owners!.get(address)
294+
if (!owner) {
295+
owner = await createAddress(ctx, params.otokenAddress, address, block)
296+
owners!.set(owner.address, owner)
297+
}
298+
ownersChanged.set(owner.address, owner)
299+
return owner
300+
}
301+
290302
await result.initialize()
291303

292304
// Prepare data for transfer processing
@@ -348,11 +360,7 @@ export const createOTokenProcessor = (params: {
348360
.find(({ address }) => address === data.to)!.credits
349361

350362
const ensureAddress = async (address: string) => {
351-
let entity = owners!.get(address)
352-
if (!entity) {
353-
entity = await createAddress(ctx, params.otokenAddress, address, block)
354-
owners!.set(entity.address, entity)
355-
}
363+
let entity = await getOwner(ctx, address, block)
356364
entity.blockNumber = block.header.height
357365
entity.lastUpdated = new Date(block.header.timestamp)
358366
return entity
@@ -602,11 +610,7 @@ export const createOTokenProcessor = (params: {
602610
const timestamp = new Date(block.header.timestamp)
603611
const blockNumber = block.header.height
604612
const otokenObject = await getOTokenObject(block)
605-
let owner = owners!.get(address)
606-
if (!owner) {
607-
owner = await createAddress(ctx, params.otokenAddress, address, block)
608-
owners!.set(address, owner)
609-
}
613+
let owner = await getOwner(ctx, address, block)
610614
const rebaseOption = new OTokenRebaseOption({
611615
id: getUniqueId(`${ctx.chain.id}-${params.otokenAddress}-${hash}-${owner.address}`),
612616
chainId: ctx.chain.id,
@@ -646,11 +650,7 @@ export const createOTokenProcessor = (params: {
646650
const sourceAddress = data.source.toLowerCase()
647651
const targetAddress = data.target.toLowerCase()
648652
// Source
649-
let sourceOwner = owners!.get(sourceAddress)
650-
if (!sourceOwner) {
651-
sourceOwner = await createAddress(ctx, params.otokenAddress, sourceAddress, block)
652-
owners!.set(sourceAddress, sourceOwner)
653-
}
653+
let sourceOwner = await getOwner(ctx, sourceAddress, block)
654654
sourceOwner.rebasingOption = RebasingOption.YieldDelegationSource
655655
sourceOwner.delegatedTo = targetAddress
656656
result.rebaseOptions.push(
@@ -667,11 +667,7 @@ export const createOTokenProcessor = (params: {
667667
}),
668668
)
669669
// Target
670-
let targetOwner = owners!.get(targetAddress)
671-
if (!targetOwner) {
672-
targetOwner = await createAddress(ctx, params.otokenAddress, targetAddress, block)
673-
owners!.set(targetAddress, targetOwner)
674-
}
670+
let targetOwner = await getOwner(ctx, targetAddress, block)
675671
targetOwner.rebasingOption = RebasingOption.YieldDelegationTarget
676672
targetOwner.delegatedTo = null
677673
result.rebaseOptions.push(
@@ -697,11 +693,7 @@ export const createOTokenProcessor = (params: {
697693
const sourceAddress = data.source.toLowerCase()
698694
const targetAddress = data.target.toLowerCase()
699695
// Source
700-
let sourceOwner = owners!.get(sourceAddress)
701-
if (!sourceOwner) {
702-
sourceOwner = await createAddress(ctx, params.otokenAddress, sourceAddress, block)
703-
owners!.set(sourceAddress, sourceOwner)
704-
}
696+
let sourceOwner = await getOwner(ctx, sourceAddress, block)
705697
sourceOwner.rebasingOption = RebasingOption.OptOut
706698
sourceOwner.delegatedTo = null
707699
result.rebaseOptions.push(
@@ -718,11 +710,7 @@ export const createOTokenProcessor = (params: {
718710
}),
719711
)
720712
// Target
721-
let targetOwner = owners!.get(targetAddress)
722-
if (!targetOwner) {
723-
targetOwner = await createAddress(ctx, params.otokenAddress, targetAddress, block)
724-
owners!.set(targetAddress, targetOwner)
725-
}
713+
let targetOwner = await getOwner(ctx, targetAddress, block)
726714
targetOwner.rebasingOption = RebasingOption.OptIn
727715
targetOwner.delegatedTo = null
728716
result.rebaseOptions.push(
@@ -1136,7 +1124,8 @@ export const createOTokenProcessor = (params: {
11361124
})
11371125
result.erc20.states.set(erc20State.id, erc20State)
11381126
}
1139-
for (const owner of owners?.values() ?? []) {
1127+
const ownersToUpdate = [...(ownersChanged.values() ?? [])]
1128+
for (const owner of ownersToUpdate) {
11401129
if (owner.balance === 0n) {
11411130
result.erc20.removedHolders.add(owner.address)
11421131
} else {
@@ -1204,9 +1193,7 @@ export const createOTokenProcessor = (params: {
12041193
time('erc20 instances')
12051194

12061195
// Save to database
1207-
if (owners) {
1208-
await ctx.store.upsert([...owners.values()])
1209-
}
1196+
await ctx.store.upsert(ownersToUpdate)
12101197
await ctx.store.upsert(result.apies)
12111198
await Promise.all([
12121199
ctx.store.upsert(result.otokens), // TODO: Consider changing otoken ID to block number instead of timestamp.
@@ -1233,6 +1220,30 @@ export const createOTokenProcessor = (params: {
12331220
),
12341221
])
12351222
time('save to database')
1223+
1224+
// Log entity counts
1225+
ctx.log.info(`Saved ${ownersToUpdate.length} OTokenAddress entities`)
1226+
ctx.log.info(`Saved entities:
1227+
APYs: ${result.apies.length}
1228+
OTokens: ${result.otokens.length}
1229+
WOTokens: ${result.wotokens.length}
1230+
Assets: ${result.assets.length}
1231+
History: ${result.history.length}
1232+
Rebases: ${result.rebases.length}
1233+
RebaseOptions: ${result.rebaseOptions.length}
1234+
Activity: ${result.activity.length}
1235+
Vaults: ${result.vaults.length}
1236+
DripperStates: ${result.dripperStates.length}
1237+
HarvesterYieldSent: ${result.harvesterYieldSent.length}
1238+
DailyStats: ${result.dailyStats.size}
1239+
ERC20:
1240+
- States: ${result.erc20.states.size}
1241+
- StatesByDay: ${result.erc20.statesByDay.size}
1242+
- Holders: ${result.erc20.holders.size}
1243+
- Balances: ${result.erc20.balances.size}
1244+
- Transfers: ${result.erc20.transfers.size}
1245+
- RemovedHolders: ${result.erc20.removedHolders.size}
1246+
`)
12361247
}
12371248

12381249
return {

0 commit comments

Comments
 (0)