Skip to content

Commit

Permalink
Merge pull request #556 from PeggyJV/collin/pruned-otx-workaround
Browse files Browse the repository at this point in the history
Remove CompletedOutgoingTxs from unsigned batch and contract calls lookups
  • Loading branch information
EricBolten committed Feb 9, 2024
2 parents 8a21caf + 73f849d commit 4abf107
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 30 deletions.
11 changes: 0 additions & 11 deletions module/x/gravity/keeper/batch.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,17 +163,6 @@ func (k Keeper) getLastOutgoingBatchByTokenType(ctx sdk.Context, token common.Ad
// GetUnsignedBatchTxs returns all batches for which the specified validator has not submitted confirmations in ascending nonce order
func (k Keeper) GetUnsignedBatchTxs(ctx sdk.Context, val sdk.ValAddress) []*types.BatchTx {
var unconfirmed []*types.BatchTx
k.IterateCompletedOutgoingTxsByType(ctx, types.BatchTxPrefixByte, func(_ []byte, cotx types.OutgoingTx) bool {
sig := k.getEthereumSignature(ctx, cotx.GetStoreIndex(), val)
if len(sig) == 0 {
batch, ok := cotx.(*types.BatchTx)
if !ok {
panic(sdkerrors.Wrapf(types.ErrInvalid, "couldn't cast to batch tx for completed tx %s", cotx))
}
unconfirmed = append(unconfirmed, batch)
}
return false
})
k.IterateOutgoingTxsByType(ctx, types.BatchTxPrefixByte, func(_ []byte, otx types.OutgoingTx) bool {
sig := k.getEthereumSignature(ctx, otx.GetStoreIndex(), val)
if len(sig) == 0 {
Expand Down
9 changes: 6 additions & 3 deletions module/x/gravity/keeper/batch_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,8 @@ func TestGetUnconfirmedBatchTxs(t *testing.T) {

blockheight := uint64(ctx.BlockHeight())
sig := []byte("dummysig")
gk.SetCompletedOutgoingTx(ctx, &types.BatchTx{
//gk.SetCompletedOutgoingTx(ctx, &types.BatchTx{
gk.SetOutgoingTx(ctx, &types.BatchTx{
BatchNonce: 1,
Height: uint64(ctx.BlockHeight()),
})
Expand Down Expand Up @@ -437,12 +438,14 @@ func TestGetUnconfirmedBatchTxs(t *testing.T) {

addressA := "0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
addressB := "0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
gk.SetCompletedOutgoingTx(ctx, &types.BatchTx{
//gk.SetCompletedOutgoingTx(ctx, &types.BatchTx{
gk.SetOutgoingTx(ctx, &types.BatchTx{
TokenContract: addressB,
BatchNonce: 3,
Height: blockheight,
})
gk.SetCompletedOutgoingTx(ctx, &types.BatchTx{
//gk.SetCompletedOutgoingTx(ctx, &types.BatchTx{
gk.SetOutgoingTx(ctx, &types.BatchTx{
TokenContract: addressA,
BatchNonce: 4,
Height: blockheight,
Expand Down
12 changes: 0 additions & 12 deletions module/x/gravity/keeper/contract_call.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,6 @@ import (

func (k Keeper) GetUnsignedContractCallTxs(ctx sdk.Context, val sdk.ValAddress) []*types.ContractCallTx {
var unconfirmed []*types.ContractCallTx
k.IterateCompletedOutgoingTxsByType(ctx, types.ContractCallTxPrefixByte, func(_ []byte, cotx types.OutgoingTx) bool {
sig := k.getEthereumSignature(ctx, cotx.GetStoreIndex(), val)
if len(sig) == 0 {
call, ok := cotx.(*types.ContractCallTx)
if !ok {
panic(sdkerrors.Wrapf(types.ErrInvalid, "couldn't cast to contract call for completed tx %s", cotx))
}
unconfirmed = append(unconfirmed, call)
}
return false
})

k.IterateOutgoingTxsByType(ctx, types.ContractCallTxPrefixByte, func(_ []byte, otx types.OutgoingTx) bool {
sig := k.getEthereumSignature(ctx, otx.GetStoreIndex(), val)
if len(sig) == 0 {
Expand Down
3 changes: 2 additions & 1 deletion module/x/gravity/keeper/contract_call_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ func TestGetUnconfirmedContractCallTxs(t *testing.T) {
fees := []types.ERC20Token{}
sig := []byte("dummysig")
gk.CreateContractCallTx(ctx, 1, scope, address, payload, tokens, fees)
gk.SetCompletedOutgoingTx(ctx, &types.ContractCallTx{
//gk.SetCompletedOutgoingTx(ctx, &types.ContractCallTx{
gk.SetOutgoingTx(ctx, &types.ContractCallTx{
InvalidationNonce: 2,
InvalidationScope: scope,
Address: address.Hex(),
Expand Down
8 changes: 6 additions & 2 deletions module/x/gravity/keeper/grpc_query_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,9 @@ func TestKeeper_UnsignedBatchTxs(t *testing.T) {
res, err := gk.UnsignedBatchTxs(sdk.WrapSDKContext(ctx), req)
require.NoError(t, err)
require.NotNil(t, res)
require.Len(t, res.Batches, 3)
//require.Len(t, res.Batches, 3)
// Test broken by completed tx workaround to SubmitEthereumTxComfiration bug
require.Len(t, res.Batches, 1)
}
})
}
Expand Down Expand Up @@ -344,7 +346,9 @@ func TestKeeper_UnsignedContractCallTxs(t *testing.T) {
res, err := gk.UnsignedContractCallTxs(sdk.WrapSDKContext(ctx), req)
require.NoError(t, err)
require.NotNil(t, res)
require.Len(t, res.Calls, 3)
//require.Len(t, res.Calls, 3)
// Test broken by completed tx workaround to SubmitEthereumTxComfiration bug
require.Len(t, res.Calls, 2)
}
})
}
Expand Down
2 changes: 1 addition & 1 deletion orchestrator/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Reference: https://www.lpalmieri.com/posts/fast-rust-docker-builds/

FROM rust:1.70 as cargo-chef-rust
FROM rust:1.74 as cargo-chef-rust
RUN cargo install cargo-chef --version 0.1.62

FROM cargo-chef-rust as planner
Expand Down

0 comments on commit 4abf107

Please sign in to comment.