Skip to content
This repository was archived by the owner on Mar 11, 2025. It is now read-only.

Commit ba9ca7f

Browse files
Merge pull request #78 from decentraland/fix/eth-transfers-topic
fix: decode the eth LAND transfers
2 parents c388001 + eb009ae commit ba9ca7f

File tree

4 files changed

+92
-20
lines changed

4 files changed

+92
-20
lines changed

package-lock.json

+9-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
"@graphile/pg-aggregates": "^0.1.1",
1010
"@subsquid/evm-abi": "^0.3.1",
1111
"@subsquid/evm-codec": "^0.3.0",
12-
"@subsquid/evm-processor": "^1.21.1",
12+
"@subsquid/evm-processor": "^1.21.2",
1313
"@subsquid/file-store": "^2.0.0",
14-
"@subsquid/graphql-server": "^4.7.0",
14+
"@subsquid/graphql-server": "^4.9.0",
1515
"@subsquid/typeorm-migration": "^1.3.0",
1616
"@subsquid/typeorm-store": "^1.5.1",
1717
"dotenv": "^16.4.5",

src/eth/main.ts

+54-3
Original file line numberDiff line numberDiff line change
@@ -113,15 +113,66 @@ processor.run(
113113
].topic:
114114
case erc721abi.events[
115115
"Transfer(address indexed,address indexed,uint256 indexed)"
116+
].topic:
117+
case erc721abi.events[
118+
"Transfer(address indexed,address indexed,uint256)"
116119
].topic: {
117-
const event =
120+
let event;
121+
if (
122+
topic ===
123+
erc721abi.events[
124+
"Transfer(address indexed,address indexed,uint256)"
125+
].topic
126+
) {
127+
event =
128+
erc721abi.events[
129+
"Transfer(address indexed,address indexed,uint256 indexed)"
130+
].decode(log);
131+
} else if (
132+
topic ===
118133
erc721abi.events[
119134
"Transfer(address indexed,address indexed,uint256 indexed)"
120-
].decode(log);
135+
].topic
136+
) {
137+
event =
138+
erc721abi.events[
139+
"Transfer(address indexed,address indexed,uint256 indexed)"
140+
].decode(log);
141+
} else if (
142+
topic ===
143+
erc721abi.events[
144+
"Transfer(address indexed,address indexed,uint256 indexed,address,bytes)"
145+
].topic
146+
) {
147+
event =
148+
erc721abi.events[
149+
"Transfer(address indexed,address indexed,uint256 indexed,address,bytes)"
150+
].decode(log);
151+
} else if (
152+
topic ===
153+
erc721abi.events[
154+
"Transfer(address indexed,address indexed,uint256 indexed,address,bytes,bytes)"
155+
].topic
156+
) {
157+
event =
158+
erc721abi.events[
159+
"Transfer(address indexed,address indexed,uint256 indexed,address,bytes,bytes)"
160+
].decode(log);
161+
}
162+
163+
if (!event) {
164+
console.log("ERROR: event could not be decoded");
165+
break;
166+
}
167+
121168
const contractAddress = log.address;
122169
markteplaceEvents.push({
123170
topic,
124-
event,
171+
event: {
172+
from: event.from,
173+
to: event.to,
174+
tokenId: event.tokenId,
175+
},
125176
block,
126177
log,
127178
marketplaceOwnerCutPerMillion: getMarketplaceOwnerCutPerMillion(),

src/eth/processor.ts

+27-6
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,8 @@ export const processor = new EvmBatchProcessor()
4545
address: [
4646
addresses.LANDRegistry,
4747
addresses.EstateRegistry,
48-
addresses.Marketplace,
4948
addresses.DCLRegistrar,
50-
addresses.ERC721Bid,
51-
addresses.DCLControllerV2,
52-
...Object.values(addresses.collections),
49+
...Object.values(addresses.collections as string[]),
5350
],
5451
topic0: [
5552
erc721Abi.events[
@@ -58,26 +55,50 @@ export const processor = new EvmBatchProcessor()
5855
erc721Abi.events[
5956
"Transfer(address indexed,address indexed,uint256 indexed,address,bytes)"
6057
].topic,
58+
erc721Abi.events[
59+
"Transfer(address indexed,address indexed,uint256 indexed)"
60+
].topic,
6161
erc721Abi.events["Transfer(address indexed,address indexed,uint256)"]
6262
.topic,
6363
erc721Abi.events.OwnershipTransferred.topic,
6464
erc721Abi.events.AddWearable.topic,
65+
],
66+
})
67+
.addLog({
68+
address: [addresses.LANDRegistry, addresses.EstateRegistry],
69+
topic0: [
6570
landRegistryAbi.events.Update.topic,
6671
estateRegistryAbi.events.CreateEstate.topic,
6772
estateRegistryAbi.events.AddLand.topic,
6873
estateRegistryAbi.events.RemoveLand.topic,
6974
estateRegistryAbi.events.Update.topic,
75+
],
76+
})
77+
.addLog({
78+
address: [addresses.Marketplace],
79+
topic0: [
7080
marketplaceAbi.events.OrderCreated.topic,
7181
marketplaceAbi.events.OrderSuccessful.topic,
7282
marketplaceAbi.events.OrderCancelled.topic,
7383
marketplaceAbi.events.ChangedOwnerCutPerMillion.topic,
74-
dclRegistrarAbi.events.NameRegistered.topic,
75-
dclControllerV2.events.NameBought.topic,
84+
],
85+
})
86+
.addLog({
87+
address: [addresses.DCLRegistrar],
88+
topic0: [dclRegistrarAbi.events.NameRegistered.topic],
89+
})
90+
.addLog({
91+
address: [addresses.ERC721Bid],
92+
topic0: [
7693
erc721BidAbi.events.BidAccepted.topic,
7794
erc721BidAbi.events.BidCreated.topic,
7895
erc721BidAbi.events.BidCancelled.topic,
7996
erc721BidAbi.events.ChangedOwnerCutPerMillion.topic,
8097
],
98+
})
99+
.addLog({
100+
address: [addresses.DCLControllerV2],
101+
topic0: [dclControllerV2.events.NameBought.topic],
81102
});
82103

83104
export type Fields = EvmBatchProcessorFields<typeof processor>;

0 commit comments

Comments
 (0)