Skip to content

Commit 5ff2e08

Browse files
test(oracle): refactor oracle tests to not require running full blockchain networks, keeping them fast, deterministic, and stable (#2425)
* test(oracle): refactor oracle tests to not require running full blockchain networks, keeping them fast, deterministic, and stable * refactor: remove unnecessary msg server functions, * chore: changelog * fix(gen-changelog): improve script robustness * rm temp file * chore: changelog * improvements for oracle
1 parent 6aa5337 commit 5ff2e08

24 files changed

+299
-286
lines changed

.cursorignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,4 @@ x/devgas/*
5151
x/epochs/*
5252
x/genmsg/*
5353
x/inflation/*
54-
x/oracle/*
54+
# x/oracle/*

CHANGELOG-UNRELEASED.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
## Changelog Chunk
2+
* changelog
23
* evm: rewrite eth_estimateGas for panic safety and performance in [#2424](https://github.com/NibiruChain/nibiru/pull/2424) - ([37dba0a](https://github.com/NibiruChain/nibiru/commit/37dba0aeef545ee7a943556e1132f1aab6f6be68)) by @Unique-Divine
34
* chore: remove evm-core-ts and move it to ts-sdk in [#2423](https://github.com/NibiruChain/nibiru/pull/2423) - ([e1401f6](https://github.com/NibiruChain/nibiru/commit/e1401f69237b07d4f35f59e7de54abed2efe925b)) by @cgilbe27
45
* docs(bank): README fixes

justfile

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,21 @@ gen-changelog:
6060

6161
LAST_VER="v2.7.0"
6262
start_branch="$(git branch --show-current)"
63-
git checkout main
64-
git-cliff "$LAST_VER.." -o CHANGELOG-UNRELEASED.md
65-
git checkout "$start_branch"
63+
64+
tmpdir="$(mktemp -d)"
65+
cleanup() { rm -rf "$tmpdir"; }
66+
trap cleanup EXIT
67+
68+
# Create a detached worktree at main so we don’t touch the current branch
69+
git fetch -q origin main
70+
git worktree add --detach --quiet "$tmpdir" origin/main
71+
72+
# Run git-cliff in the main worktree but write the file into the original repo
73+
( cd "$tmpdir" && git-cliff "$LAST_VER.." ) > CHANGELOG-UNRELEASED.md
74+
6675
log_success "Created CHANGELOG-UNRELEASED.md with changes since $LAST_VER"
67-
git add CHANGELOG-UNRELEASED.md
76+
git add CHANGELOG-UNRELEASED.md \
77+
&& git ci -m "chore: changelog" || true
6878

6979
# Generate the Nibiru Token Registry files
7080
gen-token-registry:

x/evm/precompile/oracle.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func (p precompileOracle) queryExchangeRate(
118118
return nil, err
119119
}
120120

121-
priceAtBlock, err := p.oracleKeeper.ExchangeRates.Get(ctx, assetPair)
121+
priceAtBlock, err := p.oracleKeeper.ExchangeRateMap.Get(ctx, assetPair)
122122
if err != nil {
123123
return nil, err
124124
}
@@ -181,7 +181,7 @@ func (p precompileOracle) chainLinkLatestRoundData(
181181
return nil, err
182182
}
183183

184-
priceAtBlock, err := p.oracleKeeper.ExchangeRates.Get(ctx, assetPair)
184+
priceAtBlock, err := p.oracleKeeper.ExchangeRateMap.Get(ctx, assetPair)
185185
if err != nil {
186186
return nil, err
187187
}

x/oracle/abci.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
func EndBlocker(ctx sdk.Context, k keeper.Keeper) {
1515
defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), telemetry.MetricKeyEndBlocker)
1616

17-
params, err := k.Params.Get(ctx)
17+
params, err := k.ModuleParams.Get(ctx)
1818
if err != nil {
1919
return
2020
}

x/oracle/abci_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,22 @@ func TestOracleTallyTiming(t *testing.T) {
2121
}, i)
2222
}
2323

24-
params, err := input.OracleKeeper.Params.Get(input.Ctx)
24+
params, err := input.OracleKeeper.ModuleParams.Get(input.Ctx)
2525
require.NoError(t, err)
2626

2727
params.VotePeriod = 10 // set vote period to 10 for now, for convenience
2828
params.ExpirationBlocks = 100
29-
input.OracleKeeper.Params.Set(input.Ctx, params)
29+
input.OracleKeeper.ModuleParams.Set(input.Ctx, params)
3030
require.Equal(t, 1, int(input.Ctx.BlockHeight()))
3131

3232
EndBlocker(input.Ctx, input.OracleKeeper)
33-
_, err = input.OracleKeeper.ExchangeRates.Get(input.Ctx, asset.PAIR_BTC)
33+
_, err = input.OracleKeeper.ExchangeRateMap.Get(input.Ctx, asset.PAIR_BTC)
3434
require.Error(t, err)
3535

3636
input.Ctx = input.Ctx.WithBlockHeight(int64(params.VotePeriod - 1))
3737

3838
EndBlocker(input.Ctx, input.OracleKeeper)
39-
_, err = input.OracleKeeper.ExchangeRates.Get(input.Ctx, asset.PAIR_BTC)
39+
_, err = input.OracleKeeper.ExchangeRateMap.Get(input.Ctx, asset.PAIR_BTC)
4040
require.NoError(t, err)
4141
}
4242

@@ -55,21 +55,21 @@ func TestOraclePriceExpiration(t *testing.T) {
5555
}, i)
5656
}
5757

58-
params, err := input.OracleKeeper.Params.Get(input.Ctx)
58+
params, err := input.OracleKeeper.ModuleParams.Get(input.Ctx)
5959
require.NoError(t, err)
6060

6161
params.VotePeriod = 10
6262
params.ExpirationBlocks = 10
63-
input.OracleKeeper.Params.Set(input.Ctx, params)
63+
input.OracleKeeper.ModuleParams.Set(input.Ctx, params)
6464

6565
// Wait for prices to set
6666
input.Ctx = input.Ctx.WithBlockHeight(int64(params.VotePeriod - 1))
6767
EndBlocker(input.Ctx, input.OracleKeeper)
6868

6969
// Check if both prices are set
70-
_, err = input.OracleKeeper.ExchangeRates.Get(input.Ctx, pair1)
70+
_, err = input.OracleKeeper.ExchangeRateMap.Get(input.Ctx, pair1)
7171
require.NoError(t, err)
72-
_, err = input.OracleKeeper.ExchangeRates.Get(input.Ctx, pair2)
72+
_, err = input.OracleKeeper.ExchangeRateMap.Get(input.Ctx, pair2)
7373
require.NoError(t, err)
7474

7575
// Set prices for pair 1
@@ -89,12 +89,12 @@ func TestOraclePriceExpiration(t *testing.T) {
8989
input.Ctx = input.Ctx.WithBlockHeight(int64(params.ExpirationBlocks+params.VotePeriod) + 1)
9090
EndBlocker(input.Ctx, input.OracleKeeper)
9191

92-
_, err = input.OracleKeeper.ExchangeRates.Get(input.Ctx, pair1)
92+
_, err = input.OracleKeeper.ExchangeRateMap.Get(input.Ctx, pair1)
9393
require.NoError(t, err)
94-
_, err = input.OracleKeeper.ExchangeRates.Get(input.Ctx, pair2)
94+
_, err = input.OracleKeeper.ExchangeRateMap.Get(input.Ctx, pair2)
9595
require.NoError(t, err)
9696

97-
querier := keeper.NewQuerier(input.OracleKeeper)
97+
querier := input.OracleKeeper
9898
{
9999
res, err := querier.ExchangeRate(input.Ctx, &types.QueryExchangeRateRequest{
100100
Pair: pair1,

x/oracle/genesis.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState
7878
if len(data.Rewards) != 0 {
7979
keeper.RewardsID.Set(ctx, data.Rewards[len(data.Rewards)-1].Id)
8080
}
81-
keeper.Params.Set(ctx, data.Params)
81+
keeper.ModuleParams.Set(ctx, data.Params)
8282

8383
// check if the module account exists
8484
moduleAcc := keeper.AccountKeeper.GetModuleAccount(ctx, types.ModuleName)
@@ -91,7 +91,7 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState
9191
// to a genesis file, which can be imported again
9292
// with InitGenesis
9393
func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) *types.GenesisState {
94-
params, err := keeper.Params.Get(ctx)
94+
params, err := keeper.ModuleParams.Get(ctx)
9595
if err != nil {
9696
panic(err)
9797
}
@@ -105,7 +105,7 @@ func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) *types.GenesisState {
105105
}
106106

107107
exchangeRates := []types.ExchangeRateTuple{}
108-
for _, er := range keeper.ExchangeRates.Iterate(ctx, collections.Range[asset.Pair]{}).KeyValues() {
108+
for _, er := range keeper.ExchangeRateMap.Iterate(ctx, collections.Range[asset.Pair]{}).KeyValues() {
109109
exchangeRates = append(exchangeRates, types.ExchangeRateTuple{Pair: er.Key, ExchangeRate: er.Value.ExchangeRate})
110110
}
111111

x/oracle/genesis_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import (
1515
func TestExportInitGenesis(t *testing.T) {
1616
input := keeper.CreateTestFixture(t)
1717

18-
input.OracleKeeper.Params.Set(input.Ctx, types.DefaultParams())
18+
input.OracleKeeper.ModuleParams.Set(input.Ctx, types.DefaultParams())
1919
input.OracleKeeper.FeederDelegations.Insert(input.Ctx, keeper.ValAddrs[0], keeper.Addrs[1])
20-
input.OracleKeeper.ExchangeRates.Insert(input.Ctx, "pair1:pair2",
20+
input.OracleKeeper.ExchangeRateMap.Insert(input.Ctx, "pair1:pair2",
2121
types.ExchangeRateAtBlock{
2222
ExchangeRate: sdkmath.LegacyNewDec(123),
2323
CreatedBlock: 0,

0 commit comments

Comments
 (0)