Submitted by Trust
LayerZeroModule.sol#L431-L445
Holograph gets its cross chain messaging primitives through Layer Zero. To get pricing estimate, it uses the DstConfig price struct exposed in LZs RelayerV2.
The issue is that the important baseGas and gasPerByte configuration parameters, which are used to calculate a custom amount of gas for the destination LZ message, use the values that come from the source chain. This is in contrast to LZ which handles DstConfigs in a mapping keyed by chainID.  The encoded gas amount is described here.
The impact is that when those fields are different between chains, one of two things may happen:
The code does not handle a failed lzReceive (differently to a failed executeJob). Therefore, no failure event is emitted and the NFT is screwed.
Firstly, make sure to use the target gas costs.
Secondly, re-engineer lzReceive to be fault-proof, i.e. save some gas to emit result event.
gzeon (judge) commented:
ACC01ADE (Holograph) disputed and commented:
Trust (warden) commented:
ACC01ADE (Holograph) commented:
ACC01ADE (Holograph) confirmed and commented:
alexanderattar (Holograph) resolved:
