Skip to content

Commit

Permalink
adding tests and fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Yarom Swisa authored and Yarom Swisa committed Sep 23, 2024
1 parent 4eaba69 commit 75e499d
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 5 deletions.
11 changes: 6 additions & 5 deletions x/pairing/keeper/grpc_query_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,16 @@ func (k Keeper) Provider(goCtx context.Context, req *types.QueryProviderRequest)

ctx := sdk.UnwrapSDKContext(goCtx)

metadata, err := k.epochStorageKeeper.GetMetadata(ctx, req.Address)
if err != nil {
return &types.QueryProviderResponse{}, nil
}

chains := []string{req.ChainID}
if req.ChainID == "" {
chains = k.specKeeper.GetAllChainIDs(ctx)
chains = metadata.Chains
}

metadata, err := k.epochStorageKeeper.GetMetadata(ctx, req.Address)
if err != nil {
return nil, err
}
stakeEntries := []epochstoragetypes.StakeEntry{}
for _, chain := range chains {
stakeEntry, found := k.epochStorageKeeper.GetStakeEntryCurrent(ctx, chain, req.Address)
Expand Down
39 changes: 39 additions & 0 deletions x/pairing/keeper/single_provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,3 +162,42 @@ func TestDelegations(t *testing.T) {
require.Equal(t, int64(0), res.StakeEntries[0].DelegateTotal.Amount.Int64())
}
}

func TestUnstakeWithOperator(t *testing.T) {
ts := newTester(t)
SetupForSingleProviderTests(ts, 1, 5, 0)

// delegator, _ := ts.AddAccount("del", 1, 1000000000)
provider, _ := ts.GetAccount(common.PROVIDER, 0)

// unstake one chain
_, err := ts.TxPairingUnstakeProvider(provider.Addr.String(), SpecName(0))
require.NoError(t, err)

// check the entries got the stake of spec0
for i := 1; i < 5; i++ {
res, err := ts.QueryPairingProvider(provider.Addr.String(), SpecName(i))
require.NoError(t, err)
require.Equal(t, testStake*5/4, res.StakeEntries[0].Stake.Amount.Int64())
}

// unstake everything
for i := 1; i < 5; i++ {
_, err := ts.TxPairingUnstakeProvider(provider.Addr.String(), SpecName(i))
require.NoError(t, err)
}

res, err := ts.QueryPairingProvider(provider.Addr.String(), "")
require.NoError(t, err)
require.Len(t, res.StakeEntries, 0)

// stake again
d := common.MockDescription()
err = ts.StakeProviderExtra(provider.GetVaultAddr(), provider.Addr.String(), ts.Spec(SpecName(0)), 1, nil, 0, d.Moniker, d.Identity, d.Website, d.SecurityContact, d.Details)
require.NoError(ts.T, err)

// check we got all the self delegations
res, err = ts.QueryPairingProvider(provider.Addr.String(), SpecName(0))
require.NoError(t, err)
require.Equal(t, testStake*5+1, res.StakeEntries[0].Stake.Amount.Int64())
}
1 change: 1 addition & 0 deletions x/pairing/keeper/unstaking.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ func (k Keeper) UnstakeEntry(ctx sdk.Context, validator, chainID, creator, unsta
entry.Stake = entry.Stake.AddAmount(part)
total = total.Sub(part)
count--
k.epochStorageKeeper.SetStakeEntryCurrent(ctx, entry)
}
}
}
Expand Down

0 comments on commit 75e499d

Please sign in to comment.