Move Ethereum chain client to use shared EVM code
Replacing original code in Ethereum chain client with the shared EVM code which is derived from it.
Each commit will be a separate file de-dupe, for ease of review.
Diff for posterity:
$ diff bifrost/pkg/chainclients/ethereum/smartcontract_log_parser.go bifrost/pkg/chainclients/shared/evm/smartcontract_log_parser.go
1c1
< package ethereum
---
> package evm
14d13
<
20a20,28
> const (
> NativeTokenAddr = "0x0000000000000000000000000000000000000000"
> depositEvent = "0xef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb395"
> transferOutEvent = "0xa9cd03aa3c1b4515114539cd53d22085129d495cb9e9f9af77864526240f1bf7"
> transferAllowanceEvent = "0x05b90458f953d3fcb2d7fb25616a2fddeca749d0c47cc5c9832d0266b5346eea"
> vaultTransferEvent = "0x281daef48d91e5cd3d32db0784f6af69cd8d8d2e8c612a3568dca51ded51e08f"
> transferOutAndCallEvent = "0x8e5841bcd195b858d53b38bcf91b38d47f3bc800469b6812d35451ab619c6f6c"
> )
>
34a43
> nativeAsset common.Asset
41a51
> nativeAsset common.Asset,
49a60
> nativeAsset: nativeAsset,
158,159c169,170
< // ParseTransferOutAndCall is a log parse operation binding the contract event 0xbda904e26adea40cc083dc36e80fde1641dfdd8b9a035c44022a43e713f73d36.
< func (scp *SmartContractLogParser) ParseTransferOutAndCall(log etypes.Log) (*THORChainRouterTransferOutAndCall, error) {
---
> // parseTransferOutAndCall is a log parse operation binding the contract event 0xbda904e26adea40cc083dc36e80fde1641dfdd8b9a035c44022a43e713f73d36.
> func (scp *SmartContractLogParser) parseTransferOutAndCall(log etypes.Log) (*THORChainRouterTransferOutAndCall, error) {
168c179
< func (scp *SmartContractLogParser) getTxInItem(logs []*etypes.Log, txInItem *types.TxInItem) (bool, error) {
---
> func (scp *SmartContractLogParser) GetTxInItem(logs []*etypes.Log, txInItem *types.TxInItem) (bool, error) {
169a181
> scp.logger.Info().Msg("tx logs are empty return nil")
187d198
< scp.logger.Info().Msgf("deposit:%+v", depositEvt)
200c211
< scp.logger.Err(err).Msgf("fail to get asset from token address: %s", depositEvt.Asset)
---
> scp.logger.Err(err).Str("token address", depositEvt.Amount.String()).Msg("failed to get asset from token address")
209d219
< scp.logger.Info().Msgf("token:%s,decimals:%d", depositEvt.Asset, decimals)
220d229
< scp.logger.Info().Msgf("transfer out: %+v", transferOutEvt)
223c232
< scp.logger.Err(err).Msgf("fail to parse memo: %s", transferOutEvt.Memo)
---
> scp.logger.Err(err).Str("memo", transferOutEvt.Memo).Msg("failed to parse transferOutEvent memo")
227c236
< scp.logger.Error().Msgf("%s is not correct memo to use transfer out", transferOutEvt.Memo)
---
> scp.logger.Error().Str("memo", transferOutEvt.Memo).Msg("incorrect memo for transferOutEvent")
253d261
< scp.logger.Info().Msgf("transfer allowance: %+v", transferAllowanceEvt)
272c280
< scp.logger.Err(err).Msgf("fail to parse memo: %s", transferAllowanceEvt.Memo)
---
> scp.logger.Err(err).Str("memo", transferAllowanceEvt.Memo).Msg("failed to parse transferAllowanceEvt memo")
276c284
< scp.logger.Error().Msgf("%s is not correct memo to use transfer allowance", transferAllowanceEvt.Memo)
---
> scp.logger.Error().Str("memo", transferAllowanceEvt.Memo).Msg("incorrect memo for transferAllowanceEvt")
281c289
< scp.logger.Err(err).Msgf("fail to get asset from token address")
---
> scp.logger.Err(err).Str("address", transferAllowanceEvt.Asset.String()).Msg("fail to get asset from token address")
300d307
< scp.logger.Info().Msgf("vault transfer: %+v", transferEvent)
315c322
< scp.logger.Err(err).Msgf("fail to parse memo: %s", transferEvent.Memo)
---
> scp.logger.Err(err).Str("memo", transferEvent.Memo).Msg("failed to parse vaultTransferEvent memo")
319c326
< scp.logger.Error().Msgf("%s is not yggdrasil return memo", transferEvent.Memo)
---
> scp.logger.Error().Str("memo", transferEvent.Memo).Msg("memo is not yggdrasil return memo")
340c347
< transferOutAndCall, err := scp.ParseTransferOutAndCall(*item)
---
> transferOutAndCall, err := scp.parseTransferOutAndCall(*item)
355c362
< decimals := scp.decimalResolver(ethToken)
---
> decimals := scp.decimalResolver(NativeTokenAddr)
357c364
< common.NewCoin(common.ETHAsset, scp.amtConverter(ethToken, transferOutAndCall.Amount)).WithDecimals(decimals),
---
> common.NewCoin(scp.nativeAsset, scp.amtConverter(NativeTokenAddr, transferOutAndCall.Amount)).WithDecimals(decimals),
Edited by Asmund THORSec