labels:
  solo.hiero.com/testSuiteName: ""
  solo.hiero.com/testName: ""
  solo.hiero.com/testRunUID: ""
  solo.hiero.com/testCreationTimestamp: ""
  solo.hiero.com/testExpirationTimestamp: ""
  solo.hiero.com/testRequester: ""
graphql: # not needed for default use case
  enabled: false
rosetta: # not needed for default use case
  enabled: false
redis:
  enabled: true
#  namespaceOverride: "{{ tpl (.Values.global.namespaceOverride | toString) }}"
# importer is a component of the hiero mirror node
# config for subchart hiero-mirror/importer
importer:
  image:
    registry: ghcr.io
    repository: hiero-ledger/hiero-mirror-node/importer
  nodeSelector: {}
  tolerations:
    - key: "solo-scheduling.io/os"
      operator: "Equal"
      value: "linux"
      effect: "NoSchedule"
    - key: "solo-scheduling.io/role"
      operator: "Equal"
      value: "network"
      effect: "NoSchedule"
  resources:
    requests:
      cpu: 0
      memory: 200Mi
    limits:
      cpu: 1000m
      memory: 220Mi
  readinessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  livenessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  startupProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 300
  envFrom:
    - secretRef:
        name: mirror-passwords
    - secretRef:
        name: "{{ .Release.Name }}-redis"
    - secretRef:
        name: uploader-mirror-secrets
  # The addressbook.bin file updates will be handled by infrastructure code or solo
  addressBook: ""
  config:
    # importer is a springboot app, its application.yaml configuration starts here
    # This config is mounted at [/usr/etc/hiero/application.yaml] in the importer pod
    hiero:
      mirror:
        importer:
          startDate: 1970-01-01T00:00:00Z
          network: other
          downloader:
            allowAnonymousAccess: false
            bucketName: "solo-streams"
            # for s3 configuration of mirror node look at uploader-mirror-secrets.yaml
          parser:
            record:
              entity:
                persist:
                  pendingReward: false
              sidecar:
                enabled: true
grpc:
  image:
    registry: ghcr.io
    repository: hiero-ledger/hiero-mirror-node/grpc
  ingress:
    annotations:
      haproxy-ingress.github.io/backend-protocol: h2
  nodeSelector: {}
  tolerations:
    - key: "solo-scheduling.io/os"
      operator: "Equal"
      value: "linux"
      effect: "NoSchedule"
    - key: "solo-scheduling.io/role"
      operator: "Equal"
      value: "network"
      effect: "NoSchedule"
  resources:
    requests:
      cpu: 0
      memory: 100Mi
    limits:
      cpu: 500m
      memory: 120Mi
  readinessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  livenessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  startupProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
pinger:
  enabled: true
  resources:
    requests:
      cpu: 0
      memory: 15Mi
    limits:
      cpu: 100m
      memory: 20Mi
  readinessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  livenessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  startupProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
postgresql:
  persistence:
    size: 10Gi
  postgresql:
    nodeSelector: {}
    tolerations:
      - key: "solo-scheduling.io/os"
        operator: "Equal"
        value: "linux"
        effect: "NoSchedule"
      - key: "solo-scheduling.io/role"
        operator: "Equal"
        value: "network"
        effect: "NoSchedule"
    resources:
      requests:
        cpu: 0
        memory: 0
      limits:
        cpu: 1000m
        memory: 1000Mi
  pgpool:
    replicaCount: 0
rest:
  nodeSelector: {}
  tolerations:
    - key: "solo-scheduling.io/os"
      operator: "Equal"
      value: "linux"
      effect: "NoSchedule"
    - key: "solo-scheduling.io/role"
      operator: "Equal"
      value: "network"
      effect: "NoSchedule"
  resources:
    requests:
      cpu: 0
      memory: 120Mi
    limits:
      cpu: 500m
      memory: 120Mi
  readinessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  livenessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  startupProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  monitor:
    enabled: false
  redis:
    enabled: true
  global:
    hostname: "localhost"
restjava:
  image:
    registry: ghcr.io
    repository: hiero-ledger/hiero-mirror-node/rest-java
  nodeSelector: {}
  tolerations:
    - key: "solo-scheduling.io/os"
      operator: "Equal"
      value: "linux"
      effect: "NoSchedule"
    - key: "solo-scheduling.io/role"
      operator: "Equal"
      value: "network"
      effect: "NoSchedule"
  resources:
    requests:
      cpu: 0
      memory: 175Mi
    limits:
      cpu: 2
      memory: 200Mi
  readinessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  livenessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  startupProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
web3:
  image:
    registry: ghcr.io
    repository: hiero-ledger/hiero-mirror-node/web3
  nodeSelector: {}
  tolerations:
    - key: "solo-scheduling.io/os"
      operator: "Equal"
      value: "linux"
      effect: "NoSchedule"
    - key: "solo-scheduling.io/role"
      operator: "Equal"
      value: "network"
      effect: "NoSchedule"
  resources:
    requests:
      cpu: 0
      memory: 185Mi
    limits:
      cpu: 1000m
      memory: 185Mi
  readinessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  livenessProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  startupProbe:
    initialDelaySeconds: 0
    periodSeconds: 1
    failureThreshold: 60
  config:
    hiero:
      mirror:
        web3:
          # Enable opcode tracer to support debugging and transaction tracing in solo deployments
          opcode:
            tracer:
              enabled: true

          # Defaults to TESTNET, therefor it needs to be set to OTHER for solo deployments
          evm:
            network: OTHER

          # This cache causes an issue where data about contractState, entity and tokens to be outdated for a short
          # period after a transaction is imported into the mirror node, which forces users to hardcode sleep logic into
          # their tests and scripts to wait for the cache to expire before they can access that data.
          # Disabling the cache makes sure that the data is always up to date and eliminates the need for hardcoded
          # sleep logic in tests and scripts, resulting in a more reliable results and improved user experience.
          cache:
            contractState: expireAfterWrite=0s,maximumSize=0
            entity: expireAfterWrite=0s,maximumSize=0
            token: expireAfterWrite=0s,maximumSize=0

# config for subchart hiero-mirror/monitor
# Sets up a Pinger service that periodically submits CRYPTO_TRANSFER transactions
# Additional configuration for node addresses, operator id and key should be handled by infrastructure code or solo
monitor:
  enabled: false
  nodeSelector: {}
  tolerations:
    - key: "solo-scheduling.io/os"
      operator: "Equal"
      value: "linux"
      effect: "NoSchedule"
    - key: "solo-scheduling.io/role"
      operator: "Equal"
      value: "network"
      effect: "NoSchedule"
  resources:
    requests:
      cpu: 0
      memory: 0
    limits:
      cpu: 500m
      memory: 1000Mi
  envFrom:
    - secretRef:
        name: mirror-passwords
    - secretRef:
        name: "{{ .Release.Name }}-redis"
    - secretRef:
        name: uploader-mirror-secrets
  config:
    hiero:
      mirror:
        common:
          realm: 0
          shard: 0
        monitor:
          publish:
            scenarios:
              pinger:
                properties:
                  amount: 1
                  maxTransactionFee: 10000
                  senderAccountId: 0.0.2
                  recipientAccountId: 0.0.55
                  transferTypes:
                    - CRYPTO
                receiptPercent: 1
                tps: 5
                type: CRYPTO_TRANSFER
          subscribe:
            grpc:
              hcs:
                enabled: false
            rest:
              transactionId:
                enabled: true
                samplePercent: 1
          network: OTHER
  readinessProbe:
    failureThreshold: 60
    initialDelaySeconds: 0
    timeoutSeconds: 1
