# Empty admin or "deployer" resolves to the current signer.
# Top-level keys that start with "_" are shared profiles, not Hardhat networks.

_profiles:
  create2Base: &create2Base
    leadingZeroBytes: 4
    caller: "0x0000000000000000000000000000000000000000"

  create2Dev: &create2Dev
    <<: *create2Base
    factory: "0x2370B48f20FFd75A46B14A9888B3E79677eFC28c"

  create2Prod: &create2Prod
    <<: *create2Base
    factory: "0x6497eC1A66A2dF192179A760e8D35f8d30ddaA06"

  uups: &defaultUups
    placeholderImplementation: "0x000000009F21E08bE874b78F40A6d038587E0C54"

  multicall: &defaultMulticall
    controlledMulticall: "0x00000000bD2f006A24b6d99baaD1323D5809948f"

  finality: &defaultFinality
    confirmations: 12

  local: &localProfile
    environment: local
    openzeppelin:
      manifestDir: ".openzeppelin.local"
    finality: *defaultFinality
    admin: ""
    create2: *create2Dev
    uups: *defaultUups
    multicall: *defaultMulticall

  dev: &devProfile
    environment: development
    openzeppelin:
      manifestDir: ".openzeppelin.dev"
    finality: *defaultFinality
    admin: ""
    create2: *create2Dev
    uups: *defaultUups
    multicall: *defaultMulticall

  prod: &prodProfile
    environment: production
    openzeppelin:
      manifestDir: ".openzeppelin"
    finality: *defaultFinality
    admin: ""
    create2: *create2Prod
    uups: *defaultUups
    multicall: *defaultMulticall

  zkDev: &zkDevProfile
    environment: development
    openzeppelin:
      manifestDir: ".openzeppelin.dev"
    finality: *defaultFinality
    admin: ""

  zkProd: &zkProdProfile
    environment: production
    openzeppelin:
      manifestDir: ".openzeppelin"
    finality: *defaultFinality
    admin: ""

hardhat:
  <<: *localProfile

localhost:
  <<: *localProfile

ethDev:
  <<: *devProfile

ethProd:
  <<: *prodProfile

opDev:
  <<: *devProfile

opProd:
  <<: *prodProfile

bscDev:
  <<: *devProfile

bscProd:
  <<: *prodProfile

wldDev:
  <<: *devProfile

wldProd:
  <<: *prodProfile

polygonDev:
  <<: *devProfile

polygonProd:
  <<: *prodProfile

ftmDev:
  <<: *devProfile

ftmProd:
  <<: *prodProfile

sepolia:
  <<: *devProfile
  openzeppelin:
    manifestDir: ".openzeppelin.sepolia"

zkDev:
  <<: *zkDevProfile

zkProd:
  <<: *zkProdProfile

lineaDev:
  <<: *devProfile

lineaProd:
  <<: *prodProfile

baseDev:
  <<: *devProfile

baseProd:
  <<: *prodProfile

arbDev:
  <<: *devProfile

arbProd:
  <<: *prodProfile

blastDev:
  <<: *devProfile

blastProd:
  <<: *prodProfile

avaxDev:
  <<: *devProfile

avaxProd:
  <<: *prodProfile

gtDev:
  <<: *devProfile

gtProd:
  <<: *prodProfile

eniDev:
  <<: *devProfile

eniProd:
  <<: *prodProfile

beraDev:
  <<: *devProfile

beraProd:
  <<: *prodProfile

sonicDev:
  <<: *devProfile

sonicProd:
  <<: *prodProfile
