daostack / daostack/subgraph

question: how to recognize a signaling scheme

Open
#448 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
44
Forks
30
PR merge metrics
No merged PRs in 30d

Description

So: Ape Unit is developing a signaling schem feature in https://github.com/daostack/subgraph/pull/427

It works like this:
- generic actions include, in their ipfs data, a key-value pair and a corresponding action (add, delete, remove)
- these key-value paris are then indexed in the subgraph

This means that on-chain, there is no such thing as a "signalingscheme contract": it is just a GenericScheme that is treated different in subgraph and alchemy

The question is this:
- how does the subgraph know which GenericScheme to treat as a signaling scheme (how does the subgraph know for which contracts it needs to look for key-value pairs in the ipfs data)?
- how will alchemy know if a GenericScheme scheme is to be treated as a signaling scheme?

Example solution (not sure if this is good but would work):

- a schemeregistrar proposal for adding a new scheme includes in the data on ipfs under "descriptionHash" an (optional) field "typeofScheme"
- when registering a `GenericScheme` on proposal execution, the subgraph will read `typeofScheme`. If `typeofScheme === 'SignalingScheme`, it will (a) index the signal scheme events as described above and (b) set the name of the scheme to `SignalingScheme`
- alchemy can read the scheme name and provide the correct interface

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing PR 427 and the subgraph's handling of GenericScheme registrations, IPFS descriptionHash data, and indexed events. Compare that with how Alchemy identifies scheme interfaces; done requires an agreed, implemented way for both systems to recognize signaling schemes.

Written by the indexing model from the issue text.

Assessment

Tech stack
graphql, typescript
Domain
backend-api-design, blockchain
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.