Skip to content

Commit 009188b

Browse files
refactor(subgraph): use productData from events directly (#298)
changes - removed redundant contract calls to get product data - use product data from events directly
1 parent e94f75e commit 009188b

File tree

3 files changed

+3
-20
lines changed

3 files changed

+3
-20
lines changed

subgraph/src/service-provider-registry.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
} from "../generated/ServiceProviderRegistry/ServiceProviderRegistry";
1010
import { Provider, ProviderProduct } from "../generated/schema";
1111
import { BIGINT_ONE } from "./utils/constants";
12-
import { getProviderProductData, getServiceProviderInfo } from "./utils/contract-calls";
12+
import { getServiceProviderInfo } from "./utils/contract-calls";
1313
import { decodePDPOfferingData } from "./utils/decoders";
1414
import { createProviderProduct, initiateProvider } from "./utils/entity";
1515
import { getProviderProductEntityId } from "./utils/keys";
@@ -99,9 +99,9 @@ export function handleProductAdded(event: ProductAddedEvent): void {
9999
* @param event The ProductUpdated event.
100100
*/
101101
export function handleProductUpdated(event: ProductUpdatedEvent): void {
102-
const providerId = event.params.providerId;
103102
const productType = event.params.productType;
104103
const serviceProvider = event.params.serviceProvider;
104+
const productData = event.params.productData;
105105
const capabilityKeys = event.params.capabilityKeys;
106106
const capabilityValues = event.params.capabilityValues;
107107

@@ -114,7 +114,6 @@ export function handleProductUpdated(event: ProductUpdatedEvent): void {
114114
return;
115115
}
116116

117-
const productData = getProviderProductData(event.address, providerId, productType);
118117
const decodedProductData = decodePDPOfferingData(productData);
119118

120119
providerProduct.capabilityKeys = capabilityKeys;

subgraph/src/utils/contract-calls.ts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,6 @@ export function getServiceProviderInfo(registryAddress: Address, providerId: Big
2222
);
2323
}
2424

25-
export function getProviderProductData(registryAddress: Address, providerId: BigInt, productType: number): Bytes {
26-
const serviceProviderRegistryInstance = ServiceProviderRegistry.bind(registryAddress);
27-
28-
const productDataTry = serviceProviderRegistryInstance.try_getProduct(providerId, i32(productType));
29-
30-
if (productDataTry.reverted) {
31-
log.warning("getProviderProductData: contract call reverted for providerId: {}", [providerId.toString()]);
32-
return Bytes.empty();
33-
}
34-
35-
return productDataTry.value.getProductData();
36-
}
37-
3825
export function getPieceCidData(verifierAddress: Address, setId: BigInt, pieceId: BigInt): Bytes {
3926
const pdpVerifierInstance = PDPVerifier.bind(verifierAddress);
4027

subgraph/src/utils/entity.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { ProductAdded as ProductAddedEvent } from "../../generated/ServiceProvid
44
import { BIGINT_ZERO, BIGINT_ONE, ContractAddresses, LeafSize } from "./constants";
55
import { ProviderStatus } from "./types";
66
import { getProviderProductEntityId, getPieceEntityId, getDataSetEntityId } from "./keys";
7-
import { getProviderProductData } from "./contract-calls";
87
import { decodePDPOfferingData } from "./decoders";
98
import { validateCommPv2, unpaddedSize } from "./cid";
109

@@ -42,17 +41,15 @@ export function createRails(
4241
}
4342

4443
export function createProviderProduct(event: ProductAddedEvent): void {
45-
const providerId = event.params.providerId;
4644
const productType = event.params.productType;
4745
const serviceProvider = event.params.serviceProvider;
46+
const productData = event.params.productData;
4847
const capabilityKeys = event.params.capabilityKeys;
4948
const capabilityValues = event.params.capabilityValues;
5049

5150
const productId = getProviderProductEntityId(serviceProvider, productType);
5251
const providerProduct = new ProviderProduct(productId);
5352

54-
const productData = getProviderProductData(event.address, providerId, productType);
55-
5653
providerProduct.provider = serviceProvider;
5754
providerProduct.productData = productData;
5855
providerProduct.decodedProductData = decodePDPOfferingData(productData).toJSON();

0 commit comments

Comments
 (0)