Skip to content

Events payloads enhancement spec

Stefano Ceschi Berrini edited this page May 26, 2023 · 2 revisions

In order to remove the dependency we have in graph w/ the contracts (and therefore get rid of the archival node), we need to enhance the current events - or create new ones?

We should also bear in mind that such events will be available after a certain block, therefore we need to probably think how to properly set an initial state for the graph.

RESOLUTION MANAGER EVENTS

  • handleResolutionTypeCreated

    • resolutionType, via resolutionManager.resolutionTypes(event.params.typeIndex)
  • handleResolutionRejected (no blockchain deps)

  • handleResolutionVoted

    • resolutionResult, via resolutionManager.getResolutionResult(resolutionId)
    • maybeDelegated, via voting.try_getDelegateAt(voterAddress, snapshotId)
    • delegatedAddress
    • resolutionVoterVotingPower
    • resolutionVoterDelegatedVotingPower
  • handleResolutionExecuted

    • executionTimestamp
  • handleResolutionUpdated

    • executionDetails of resolutionId
    • resolution dataURI (ipfs)
    • resolution typeId
    • resolution yesVotesTotal
    • resolution isNegative
    • resolution addressedContributor
    • resolution snapshotId
  • handleResolutionCreated

    • executionDetails of resolutionId
    • resolution dataURI (ipfs)
    • resolution typeId
    • resolution yesVotesTotal
    • resolution isNegative
    • resolution addressedContributor
    • resolution snapshotId
  • handleResolutionApproved

    • resolution approveTimestamp
    • resolution snapshotId see below
    • totalVotingPower, via voting.getTotalVotingPowerAt(resolutionEntity.snapshotId)
    • all resolution possible voters' voting power
    • maybeDelegated (via voting.try_getDelegateAt(Address.fromString(voterAddress.toHex()),resolutionEntity.snapshotId)

SHAREHOLDER REGISTRY EVENTS

  • handleStatusChanged (no contracts deps)

  • handleTransfer

    • votingPower of address from from votingContract
    • shareholderRegistryBalance of address from from shareholderRegistryContract
    • votingPower of address to from votingContract
    • shareholderRegistryBalance of address to from shareholderRegistryContract
    • totalVotingPower from votingContract

NEOKINGDOM TOKEN EVENTS

  • handleTransfer
  • neokigdomTokenBalance of address from, via neokingdomTokenContract.balanceOf(from)
  • votingPower of address from, via votingContract.getVotingPower(from)
  • governanceWithdrawableTempBalance of address from, via internalMarketContract.withdrawableBalanceOf(from)
  • governanceOfferedTempBalance of address from, via internalMarketContract.offeredBalanceOf(from)
  • governanceBalance of address from, via governanceTokenContract.balanceOf(from)
  • governanceVestingBalance of address from, via governanceTokenContract.vestingBalanceOf(from)
  • and all ^ also of address to

INTERNAL MARKET EVENTS

  • handleOfferCreated (no contracts deps)

  • handleOfferMatched

    • neokigdomTokenBalance of address offer.from, via neokingdomTokenContract.balanceOf(offer.from)
    • votingPower of address offer.from, via votingContract.getVotingPower(offer.from)
    • governanceWithdrawableTempBalance of address offer.from, via internalMarketContract.withdrawableBalanceOf(offer.from)
    • governanceOfferedTempBalance of address offer.from, via internalMarketContract.offeredBalanceOf(offer.from)
    • governanceBalance of address offer.from, via governanceTokenContract.balanceOf(offer.from)
    • governanceVestingBalance of address offer.from, via governanceTokenContract.vestingBalanceOf(offer.from)

GOVERNANCE TOKEN EVENTS

  • handleVestingSet (no contract deps)

  • handleTransfer

    • neokigdomTokenBalance of address from, via neokingdomTokenContract.balanceOf(from)
    • votingPower of address from, via votingContract.getVotingPower(from)
    • governanceWithdrawableTempBalance of address from, via internalMarketContract.withdrawableBalanceOf(from)
    • governanceOfferedTempBalance of address from, via internalMarketContract.offeredBalanceOf(from)
    • governanceBalance of address from, via governanceTokenContract.balanceOf(from)
    • governanceVestingBalance of address from, via governanceTokenContract.vestingBalanceOf(from)
    • and all ^ also of address to
    • totalVotingPower, via votingContract.getTotalVotingPower()