schema:
  file: ./schema.graphql
dataSources:
  - kind: ethereum
    name: FleekNFA
    network: goerli
    source:
      address: "0x8795608346Eb475E42e69F1281008AEAa522479D" # <- Proxy Contract
      abi: FleekNFA
      startBlock: 8671990
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.7
      language: wasm/assemblyscript
      entities:
        - Approval
        - ApprovalForAll
        - MetadataUpdate
        - NewMint
        - Transfer
        - Token
        - TokenOwner
        - TokenController
        - CollectionOwner
        - Collection
        - GithubRepository
        - AccessPoint
        - ChangeAccessPointCreationStatus
        - ChangeAccessPointScore
        - ChangeAccessPointNameVerify
        - ChangeAccessPointContentVerify
        - ChangeAccessPointAutoApproval
      abis:
        - name: FleekNFA
          file: ../contracts/deployments/goerli/FleekERC721.json
      eventHandlers:
        - event: Approval(indexed address,indexed address,indexed uint256)
          handler: handleApproval
        - event: ApprovalForAll(indexed address,indexed address,bool)
          handler: handleApprovalForAll
        # Token Events
        - event: MetadataUpdate(indexed uint256,string,string,indexed address)
          handler: handleMetadataUpdateWithStringValue
        - event: MetadataUpdate(indexed uint256,string,string[2],indexed address)
          handler: handleMetadataUpdateWithDoubleStringValue
        - event: MetadataUpdate(indexed uint256,string,uint24,indexed address)
          handler: handleMetadataUpdateWithIntValue
        - event: MetadataUpdate(indexed uint256,string,bool,indexed address)
          handler: handleMetadataUpdateWithBooleanValue
        - event: NewMint(indexed uint256,string,string,string,string,string,string,string,uint24,bool,indexed address,indexed address,address)
          handler: handleNewMint
        - event: Transfer(indexed address,indexed address,indexed uint256)
          handler: handleTransfer
          # Access Control Events
        - event: TokenRoleChanged(indexed uint256,indexed uint8,indexed address,bool,address)
          handler: handleTokenRoleChanged
        - event: TokenRolesCleared(indexed uint256,address)
          handler: handleTokenRolesCleared
        - event: CollectionRoleChanged(indexed uint8,indexed address,bool,address)
          handler: handleCollectionRoleChanged
        - event: Initialized(uint8)
          handler: handleInitialized
        # Access Point Events
        - event: ChangeAccessPointContentVerify(string,uint256,indexed bool,indexed address)
          handler: handleChangeAccessPointContentVerify
        - event: ChangeAccessPointNameVerify(string,uint256,indexed bool,indexed address)
          handler: handleChangeAccessPointNameVerify
        - event: ChangeAccessPointScore(string,indexed uint256,uint256,indexed address)
          handler: handleChangeAccessPointScore
        - event: ChangeAccessPointCreationStatus(string,uint256,uint8,indexed address)
          handler: handleChangeAccessPointCreationStatus
        - event: NewAccessPoint(string,indexed uint256,indexed address)
          handler: handleNewAccessPoint
      file: ./src/fleek-nfa.ts
specVersion: 0.0.5
