diff --git a/schema.graphql b/schema.graphql index ff3ec10..57f5197 100644 --- a/schema.graphql +++ b/schema.graphql @@ -100,6 +100,8 @@ type Upgrade @entity { # End – default data block impl: Bytes + version: String! + creatorContractImpl: Bytes type: String } diff --git a/src/ERC1155Mappings/factoryMappings.ts b/src/ERC1155Mappings/factoryMappings.ts index ea94cf0..ab8300c 100644 --- a/src/ERC1155Mappings/factoryMappings.ts +++ b/src/ERC1155Mappings/factoryMappings.ts @@ -113,6 +113,10 @@ export function handle1155FactoryUpgraded(event: Upgraded): void { upgrade.block = event.block.number; upgrade.timestamp = event.block.timestamp; upgrade.impl = event.params.implementation; + upgrade.version = creator.contractVersion(); + // zora1155Impl didn't exist on all versions of the contract, so this + // handles the case it doesnt exist. + upgrade.creatorContractImpl = creator.try_zora1155Impl().value; upgrade.address = event.address; upgrade.type = "1155Factory"; diff --git a/src/ERC721Mappings/ERC721FactoryMappings.ts b/src/ERC721Mappings/ERC721FactoryMappings.ts index 216bf60..a6790ac 100644 --- a/src/ERC721Mappings/ERC721FactoryMappings.ts +++ b/src/ERC721Mappings/ERC721FactoryMappings.ts @@ -86,6 +86,8 @@ export function handleFactoryUpgraded(event: Upgraded): void { upgrade.block = event.block.number; upgrade.timestamp = event.block.timestamp; upgrade.impl = event.params.implementation; + upgrade.version = creator.contractVersion().toString(); + upgrade.creatorContractImpl = creator.implementation(); upgrade.address = event.address; upgrade.type = "721Factory";