diff --git a/peer/camino_network.go b/peer/camino_network.go deleted file mode 100644 index 81f2d7cb18..0000000000 --- a/peer/camino_network.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (C) 2022-2023, Chain4Travel AG. All rights reserved. -// See the file LICENSE for licensing terms. - -package peer - -import ( - "context" - "fmt" - - "github.com/ethereum/go-ethereum/log" - - "github.com/ava-labs/avalanchego/ids" - - "github.com/ava-labs/coreth/plugin/evm/message" -) - -func (n *network) RequestCrossChain(chainID ids.ID, msg []byte, handler message.ResponseHandler) error { - if handler != nil { - return fmt.Errorf("ResponseHandler not yet supported") - } - log.Debug("sending request to chain", "chainID", chainID, "requestLen", len(msg)) - return n.appSender.SendCrossChainAppRequest(context.TODO(), chainID, 0, msg) -} diff --git a/peer/network.go b/peer/network.go index f9a4989535..4a88da2855 100644 --- a/peer/network.go +++ b/peer/network.go @@ -49,9 +49,6 @@ type Network interface { // SendAppRequest sends message to given nodeID, notifying handler when there's a response or timeout SendAppRequest(nodeID ids.NodeID, message []byte, handler message.ResponseHandler) error - // RequestCrossChain sends message to a given chainID, notifying handler when there's a response or timeout - RequestCrossChain(chainID ids.ID, message []byte, handler message.ResponseHandler) error - // Gossip sends given gossip message to peers Gossip(gossip []byte) error diff --git a/plugin/evm/camino_collect_rewards_tx.go b/plugin/evm/camino_collect_rewards_tx.go index 8e13a06bf7..d2f5a5d8c1 100644 --- a/plugin/evm/camino_collect_rewards_tx.go +++ b/plugin/evm/camino_collect_rewards_tx.go @@ -19,6 +19,7 @@ import ( gconstants "github.com/ava-labs/coreth/constants" "github.com/ava-labs/coreth/core/state" "github.com/ava-labs/coreth/params" + evmMsg "github.com/ava-labs/coreth/plugin/evm/message" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/log" ) @@ -28,8 +29,9 @@ const ( ) var ( - _ UnsignedAtomicTx = &UnsignedCollectRewardsTx{} - _ secp256k1fx.UnsignedTx = &UnsignedCollectRewardsTx{} + _ UnsignedAtomicTx = (*UnsignedCollectRewardsTx)(nil) + _ secp256k1fx.UnsignedTx = (*UnsignedCollectRewardsTx)(nil) + _ evmMsg.ResponseHandler = (*RewardsCrossChainMsgHandler)(nil) FeeRewardAddress = common.HexToAddress(FeeRewardAddressStr) FeeRewardAddressID, _ = ids.ToShortID(FeeRewardAddress.Bytes()) @@ -303,7 +305,11 @@ func (vm *VM) TriggerRewardsTx(block *Block) { if err != nil { log.Warn("cannot marshall reward message", "error", err) } - vm.RequestCrossChain(ids.ID{}, request, nil) + vm.SendCrossChainRequest( + constants.PlatformChainID, + request, + &RewardsCrossChainMsgHandler{}, + ) break } } @@ -448,3 +454,16 @@ func feeRewardExportMinTimeInterval(vm *VM) uint64 { } return vm.ethConfig.Genesis.FeeRewardExportMinTimeInterval } + +type RewardsCrossChainMsgHandler struct { +} + +func (h *RewardsCrossChainMsgHandler) OnResponse(response []byte) error { + log.Info("CollectRewards cross-chain request success", "response", string(response)) + return nil +} + +func (h *RewardsCrossChainMsgHandler) OnFailure() error { + log.Error("CollectRewards cross-chain request failed") + return nil +}