-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Hi,
I have deployed a subgraph in Subgraph studio.
I'm testing a IPFS File Datasource to gather off-chain metadata info into a chain based handler.
The entity of the off-chain data is defined as:
type IpfsMetadata @entity {
id: Bytes!
metaData: String!
}
The event driven entity is linked this way
type AssetTransfer @entity {
id: Bytes!
tokenId: BigInt!
cid: String!
metaData: IpfsMetadata
}
In mappings file, the following event handler set the relationship:
export function handleAssetTransfer(event: AssetTransferEvent): void {
let entity = new AsssetTransfer(idBytes);
const cid = event.params.cid;
entity.metaData = Bytes.fromUTF8(cid);
IpfsMetadataTemplate.create(cid);
.....
}
I have the following content handler:
export function handleIpfsContent(content: Bytes): void {
let cid = dataSource.stringParam();
let ipfs = new IpfsMetadata(Bytes.fromUTF8(cid));
ipfs.metaData = content.toString();
ipfs.save();
}
Currently, cid are always the same for every indexed event (it's a normal use case), so the following warning is shown through the dashboard after the first IpfsMetadata entity is created:
"no runtime host created, there is already a runtime host instantiated for this data source, address: xxxxxxx, name: IpfsMetadata, runner_index: 1246"
When I query the index to check the AssetTransfer entities, all of them are successfully linked to the unique IpfsMetadata entity, so everything seems to work fine.
However, I don't like the warning log at every new indexed event when cid parameter is repeated.
As entities associated with File Data Sources cannot be accessed by chain-based handlers, there is no way to check whether the IpfsMetada entity does exist to prevent creating a new file datasource template.
Shoud I be aware of the logged message?
Is there any other thing I can do to prevent the warning log?
Best regards