/******************************************************************
 * File: "interceptors-address.mustache"
 *
 * Interceptor Target: {{ name }}
 *  - type: {{ target.type }}
 *  - address: {{ target.address }}
 *  - Parameters: {{{ nativeParamTypes }}}
 ******************************************************************/

;(() => {
  const interceptorTarget =
  {{# target.moduleName }}
    Module.getBaseAddress('{{ target.moduleName }}')
  {{/ target.moduleName}}
  {{^ target.moduleName }}
    __sidecar__moduleBaseAddress
  {{/ target.moduleName}}
    .add({{ target.address }})

  Interceptor.attach(
    interceptorTarget,
    {
      onEnter: args => {
        log.verbose(
          'SidecarAgent',
          'Interceptor.attach(0x%s) onEnter()',
          Number({{ target.address }}).toString(16),
        )

        {{{ declareJsArgs }}}

        send(__sidecar__payloadHook(
          '{{ name }}',
          {{{ jsArgs }}}
        ), null)

      },
    }
  )
})()
