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: ropsten
    source:
      address: '0x75be6e18c80A487C8b49663bf14f80A6495045B2'
      abi: Factory
      startBlock: 9227587
    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: ropsten
    source:
      address: '0x6ebcCa6df2CAba986FCF44E64Ee82251c1455Dcc'
      abi: DTFactory
      startBlock: 9227578
    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: ropsten
    source:
      address: '0x3cd7Ef1F207E1a46AAd7D5d7F5f0A5cF081Fc726'
      abi: Metadata
      startBlock: 9227595
    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: ropsten
    source:
      address: '0xA7a711A09396DF82D9be46A26B48BafdB9BB4fA6'
      abi: FixedRateExchange
      startBlock: 9227595
    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
templates:
  - kind: ethereum/contract
    name: Pool
    network: ropsten
    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_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: ropsten
    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