|
1 | | -import { Address, BigInt, Bytes, json, JSONValueKind } from '@graphprotocol/graph-ts' |
| 1 | +import { Address, BigInt, Bytes } from '@graphprotocol/graph-ts' |
2 | 2 |
|
3 | 3 | import { |
4 | 4 | Attested as AttestedEvent, |
@@ -32,6 +32,7 @@ import { |
32 | 32 | PROPOSAL_CANDIDATE_SCHEMA_UID, |
33 | 33 | TREASURY_ASSET_PIN_SCHEMA_UID, |
34 | 34 | } from './utils/eas' |
| 35 | +import { parseProposalMetadata } from './utils/proposalMetadata' |
35 | 36 |
|
36 | 37 | const ZERO_BYTES32 = '0x0000000000000000000000000000000000000000000000000000000000000000' |
37 | 38 |
|
@@ -206,23 +207,11 @@ function loadOrCreateCandidateGroup( |
206 | 207 | group.currentAgainstCount = BigInt.fromI32(0) |
207 | 208 | group.currentAbstainCount = BigInt.fromI32(0) |
208 | 209 | group.leadingVersion = null |
| 210 | + group.save() |
209 | 211 | } |
210 | 212 | return group |
211 | 213 | } |
212 | 214 |
|
213 | | -function getDescriptionField(description: string, key: string): string { |
214 | | - let parsedResult = json.try_fromString(description) |
215 | | - if (parsedResult.isError || parsedResult.value.kind != JSONValueKind.OBJECT) { |
216 | | - return '' |
217 | | - } |
218 | | - let obj = parsedResult.value.toObject() |
219 | | - let value = obj.get(key) |
220 | | - if (!value || value.kind != JSONValueKind.STRING) { |
221 | | - return '' |
222 | | - } |
223 | | - return value.toString() |
224 | | -} |
225 | | - |
226 | 215 | function recomputeVersionSignatureAggregates(versionId: string): void { |
227 | 216 | let version = ProposalCandidateVersion.load(versionId) |
228 | 217 | if (!version) return |
@@ -397,15 +386,24 @@ function handleProposalCandidateAttestation(event: AttestedEvent): void { |
397 | 386 | version.targets = targets |
398 | 387 | version.values = decoded.values |
399 | 388 | version.calldatas = decoded.calldatas |
400 | | - version.description = decoded.description |
| 389 | + version.metadata = decoded.description |
401 | 390 | version.proposalId = decoded.proposalId |
402 | 391 | version.createdAt = event.block.timestamp |
403 | | - let title = getDescriptionField(decoded.description, 'title') |
404 | | - let summary = getDescriptionField(decoded.description, 'description') |
405 | | - let discussionUrl = getDescriptionField(decoded.description, 'discussionUrl') |
406 | | - version.title = title.length > 0 ? title : '' |
407 | | - version.summary = summary.length > 0 ? summary : '' |
408 | | - version.discussionUrl = discussionUrl.length > 0 ? discussionUrl : null |
| 392 | + let parsedMetadata = parseProposalMetadata(decoded.description) |
| 393 | + version.title = |
| 394 | + parsedMetadata && parsedMetadata.title.length > 0 ? parsedMetadata.title : null |
| 395 | + version.description = |
| 396 | + parsedMetadata && parsedMetadata.description.length > 0 |
| 397 | + ? parsedMetadata.description |
| 398 | + : null |
| 399 | + version.representedAddress = |
| 400 | + parsedMetadata && parsedMetadata.representedAddress.length > 0 |
| 401 | + ? parsedMetadata.representedAddress |
| 402 | + : null |
| 403 | + version.discussionUrl = |
| 404 | + parsedMetadata && parsedMetadata.discussionUrl.length > 0 |
| 405 | + ? parsedMetadata.discussionUrl |
| 406 | + : null |
409 | 407 | version.save() |
410 | 408 | recomputeGroupVersionAggregates(group.id) |
411 | 409 | recomputeGroupLeadingVersion(group.id) |
|
0 commit comments