specVersion: 0.0.2
description: Ocean provides data sharing through IDOs
repository: https://github.com/oceanprotocol/ocean-subgraph
schema:
  file: ./schema.graphql
dataSources:
  - kind: ethereum/contract
    name: Factory
    network: rinkeby
    source:
      address: '0x53eDF9289B0898e1652Ce009AACf8D25fA9A42F8'
      abi: Factory
      startBlock: 7298806
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.4
      language: wasm/assemblyscript
      file: ./src/mappings/factory.ts
      entities:
        - PoolFactory
      abis:
        - name: Factory
          file: ./abis/BFactory.json
      eventHandlers:
        - event: BPoolRegistered(address,indexed address)
          handler: handleNewPool
  - kind: ethereum/contract
    name: DTFactory
    network: rinkeby
    source:
      address: '0x3fd7A00106038Fb5c802c6d63fa7147Fe429E83a'
      abi: DTFactory
      startBlock: 7298804
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.4
      language: wasm/assemblyscript
      file: ./src/mappings/dtfactory.ts
      entities:
        - DatatokenFactory
      abis:
        - name: DTFactory
          file: ./abis/DTFactory.json
      eventHandlers:
        - event: TokenRegistered(indexed address,string,string,uint256,indexed address,indexed string)
          handler: handleNewToken
  - kind: ethereum/contract
    name: Metadata
    network: rinkeby
    source:
      address: '0xfd8a7b6297153397b7eb4356c47dbd381d58bff4'
      abi: Metadata
      startBlock: 7298808
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.4
      language: wasm/assemblyscript
      file: ./src/mappings/metadata.ts
      entities:
        - Metadata
      abis:
        - name: Metadata
          file: ./abis/Metadata.json
      eventHandlers:
        - event: MetadataCreated(indexed address,indexed address,bytes,bytes)
          handler: handleMetadataCreated
        - event: MetadataUpdated(indexed address,indexed address,bytes,bytes)
          handler: handleMetadataUpdated
  - kind: ethereum/contract
    name: FixedRateExchange
    network: rinkeby
    source:
      address: '0xeD1DfC5F3a589CfC4E8B91C1fbfC18FC6699Fbde'
      abi: FixedRateExchange
      startBlock: 7298808
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.4
      language: wasm/assemblyscript
      file: ./src/mappings/fixedrateexchange.ts
      entities:
        - FixedRateExchange
      abis:
        - name: FixedRateExchange
          file: ./abis/FixedRateExchange.json
      eventHandlers:
        - event: ExchangeCreated(indexed bytes32,indexed address,indexed address,address,uint256)
          handler: handleExchangeCreated
        - event: ExchangeActivated(indexed bytes32,indexed address)
          handler: handleExchangeActivated
        - event: ExchangeDeactivated(indexed bytes32,indexed address)
          handler: handleExchangeDeactivated
        - event: ExchangeRateChanged(indexed bytes32,indexed address,uint256)
          handler: handleExchangeRateChanged
        - event: Swapped(indexed bytes32,indexed address,uint256,uint256)
          handler: handleSwapped
  - kind: ethereum/contract
    name: Dispenser
    network: rinkeby
    source:
      address: '0x623744Cd25Ed553d3b4722667697F926cf99658B'
      abi: Dispenser
      startBlock: 8554110
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.4
      language: wasm/assemblyscript
      file: ./src/mappings/dispenser.ts
      entities:
        - Dispenser
      abis:
        - name: Dispenser
          file: ./abis/Dispenser.json
      eventHandlers:
        - event: Activated(indexed address)
          handler: handleDispenserActivated
        - event: Deactivated(indexed address)
          handler: handleDispenserDeactivated
        - event: AcceptedMinter(indexed address)
          handler: handleDispenserAcceptedMinter
        - event: RemovedMinter(indexed address)
          handler: handleDispenserRemovedMinter
        - event: TokensDispensed(indexed address,indexed address,uint256)
          handler: handleDispenserTokensDispensed
        - event: OwnerWithdrawed(indexed address,indexed address,uint256)
          handler: handleDispenserOwnerWithdrawed      
templates:
  - kind: ethereum/contract
    name: Pool
    network: rinkeby
    source:
      abi: Pool
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.4
      language: wasm/assemblyscript
      file: ./src/mappings/pool.ts
      entities:
        - Pool
        - PoolFactory
        - Swap
      abis:
        - name: Pool
          file: ./abis/BPool.json
        - name: BToken
          file: ./abis/BToken.json
      eventHandlers:
        - event: LOG_CALL(indexed bytes4,indexed address,bytes)
          topic0: '0x34e1990700000000000000000000000000000000000000000000000000000000'
          handler: handleSetSwapFee
        - event: LOG_CALL(indexed bytes4,indexed address,bytes)
          topic0: '0x92eefe9b00000000000000000000000000000000000000000000000000000000'
          handler: handleSetController
        - event: LOG_CALL(indexed bytes4,indexed address,bytes)
          topic0: '0x49b5955200000000000000000000000000000000000000000000000000000000'
          handler: handleSetPublicSwap
        - event: LOG_CALL(indexed bytes4,indexed address,bytes)
          topic0: '0x4bb278f300000000000000000000000000000000000000000000000000000000'
          handler: handleFinalize
        - event: LOG_CALL(indexed bytes4,indexed address,bytes)
          topic0: '0xd1d7bc9100000000000000000000000000000000000000000000000000000000'
          handler: handleSetup
        - event: LOG_CALL(indexed bytes4,indexed address,bytes)
          topic0: '0x3fdddaa200000000000000000000000000000000000000000000000000000000'
          handler: handleRebind
        - event: LOG_CALL(indexed bytes4,indexed address,bytes)
          topic0: '0xe4e1e53800000000000000000000000000000000000000000000000000000000'
          handler: handleRebind
        - event: LOG_CALL(indexed bytes4,indexed address,bytes)
          topic0: '0x8c28cbe800000000000000000000000000000000000000000000000000000000'
          handler: handleGulp
        - event: LOG_JOIN(indexed address,indexed address,uint256)
          handler: handleJoinPool
        - event: LOG_EXIT(indexed address,indexed address,uint256)
          handler: handleExitPool
        - event: LOG_SWAP(indexed address,indexed address,indexed address,uint256,uint256)
          handler: handleSwap
        - event: Transfer(indexed address,indexed address,uint256)
          handler: handleTransfer

  - kind: ethereum/contract
    name: DataToken
    network: rinkeby
    source:
      abi: DataToken
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.4
      language: wasm/assemblyscript
      file: ./src/mappings/datatoken.ts
      entities:
        - DataToken
        - DatatokenFactory
      abis:
        - name: DataToken
          file: ./abis/DataTokenTemplate.json
      eventHandlers:
        - event: Transfer(indexed address,indexed address,uint256)
          handler: handleTransfer
        - event: OrderStarted(indexed address,indexed address,uint256,uint256,uint256,indexed address,uint256)
          handler: handleOrderStarted