Skip to content

Move Ethereum chain client to use shared EVM code

Asmund THORSec requested to merge asmund/dedupe1 into develop

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

Merge request reports