specVersion: 0.0.4
schema:
  file: schema.graphql
features:
  - nonFatalErrors
dataSources:
  - kind: ethereum/contract
    name: Factory
    network: mainnet
    source:
      address: "0xc35dadb65012ec5796536bd9864ed8773abc74c4"
      startBlock: 2867560
      abi: Factory
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.5
      language: wasm/assemblyscript
      file: Factory/Factory.wasm
      entities: []
      abis:
        - name: Factory
          file: Factory/abis/factory.json
        - name: ERC20
          file: Factory/abis/ERC20.json
        - name: ERC20SymbolBytes
          file: Factory/abis/ERC20SymbolBytes.json
        - name: ERC20NameBytes
          file: Factory/abis/ERC20NameBytes.json
        - name: Pool
          file: Factory/abis/pool.json
      eventHandlers:
        - event: PoolCreated(indexed address,indexed address,indexed uint24,int24,address)
          handler: handlePoolCreated
  - kind: ethereum/contract
    name: NonfungiblePositionManager
    network: mainnet
    source:
      address: "0xf4d73326c13a4fc5fd7a064217e12780e9bd62c3"
      startBlock: 2868037
      abi: NonfungiblePositionManager
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.5
      language: wasm/assemblyscript
      file: NonfungiblePositionManager/NonfungiblePositionManager.wasm
      entities: []
      abis:
        - name: NonfungiblePositionManager
          file: NonfungiblePositionManager/abis/NonfungiblePositionManager.json
        - name: Pool
          file: NonfungiblePositionManager/abis/pool.json
        - name: Factory
          file: NonfungiblePositionManager/abis/factory.json
        - name: ERC20
          file: NonfungiblePositionManager/abis/ERC20.json
      eventHandlers:
        - event: IncreaseLiquidity(indexed uint256,uint128,uint256,uint256)
          handler: handleIncreaseLiquidity
        - event: DecreaseLiquidity(indexed uint256,uint128,uint256,uint256)
          handler: handleDecreaseLiquidity
        - event: Collect(indexed uint256,address,uint256,uint256)
          handler: handleCollect
        - event: Transfer(indexed address,indexed address,indexed uint256)
          handler: handleTransfer
templates:
  - kind: ethereum/contract
    name: Pool
    network: mainnet
    source:
      abi: Pool
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.5
      language: wasm/assemblyscript
      file: templates/Pool/Pool.wasm
      entities: []
      abis:
        - name: Pool
          file: Pool/abis/pool.json
        - name: Factory
          file: Pool/abis/factory.json
        - name: ERC20
          file: Pool/abis/ERC20.json
      eventHandlers:
        - event: Initialize(uint160,int24)
          handler: handleInitialize
        - event: Swap(indexed address,indexed address,int256,int256,uint160,uint128,int24)
          handler: handleSwap
        - event: Mint(address,indexed address,indexed int24,indexed int24,uint128,uint256,uint256)
          handler: handleMint
        - event: Burn(indexed address,indexed int24,indexed int24,uint128,uint256,uint256)
          handler: handleBurn
        - event: Flash(indexed address,indexed address,uint256,uint256,uint256,uint256)
          handler: handleFlash
        - event: Collect(indexed address,address,indexed int24,indexed int24,uint128,uint128)
          handler: handlePoolCollect
        - event: CollectProtocol(indexed address,indexed address,uint128,uint128)
          handler: handleProtocolCollect
        - event: SetFeeProtocol(uint8,uint8,uint8,uint8)
          handler: handleSetProtocolFee
