From 9cc34b70e39d01de8da17d7190d2c7e6c29a2dda Mon Sep 17 00:00:00 2001 From: expertdicer Date: Tue, 28 Jan 2025 09:33:42 +0700 Subject: [PATCH 1/8] fix: change pair delimiter --- x/common/asset/pair.go | 10 ++++----- x/common/asset/pair_test.go | 45 ++++++++++++++++++++++--------------- x/common/error_test.go | 4 ++-- x/common/omap/omap_test.go | 2 +- x/oracle/genesis_test.go | 6 ++--- 5 files changed, 38 insertions(+), 29 deletions(-) diff --git a/x/common/asset/pair.go b/x/common/asset/pair.go index 09377ae510..e9ef6deb8e 100644 --- a/x/common/asset/pair.go +++ b/x/common/asset/pair.go @@ -17,7 +17,7 @@ type Pair string func NewPair(base string, quote string) Pair { // validate as denom - ap := fmt.Sprintf("%s%s%s", base, ":", quote) + ap := fmt.Sprintf("%s%s%s", base, "@", quote) return Pair(ap) } @@ -25,7 +25,7 @@ func NewPair(base string, quote string) Pair { // The form, "token0:token1", is expected for 'pair'. // Use this function to return an error instead of panicking. func TryNewPair(pair string) (Pair, error) { - split := strings.Split(pair, ":") + split := strings.Split(pair, "@") splitLen := len(split) if splitLen != 2 { if splitLen == 1 { @@ -72,12 +72,12 @@ func (pair Pair) Inverse() Pair { } func (pair Pair) BaseDenom() string { - split := strings.Split(pair.String(), ":") + split := strings.Split(pair.String(), "@") return split[0] } func (pair Pair) QuoteDenom() string { - split := strings.Split(pair.String(), ":") + split := strings.Split(pair.String(), "@") return split[1] } @@ -87,7 +87,7 @@ func (pair Pair) Validate() error { return ErrInvalidTokenPair.Wrap("pair is empty") } - split := strings.Split(pair.String(), ":") + split := strings.Split(pair.String(), "@") if len(split) != 2 { return ErrInvalidTokenPair.Wrap(pair.String()) } diff --git a/x/common/asset/pair_test.go b/x/common/asset/pair_test.go index 442f0f7ee6..26dea49069 100644 --- a/x/common/asset/pair_test.go +++ b/x/common/asset/pair_test.go @@ -27,7 +27,7 @@ func TestTryNewPair(t *testing.T) { }, { "more than 2 tokens", - fmt.Sprintf("%s:%s:%s", denoms.NIBI, denoms.NUSD, denoms.USDC), + fmt.Sprintf("%s@%s@%s", denoms.NIBI, denoms.NUSD, denoms.USDC), asset.ErrInvalidTokenPair, }, { @@ -37,22 +37,27 @@ func TestTryNewPair(t *testing.T) { }, { "correct pair", - fmt.Sprintf("%s:%s", denoms.NIBI, denoms.NUSD), + fmt.Sprintf("%s@%s", denoms.NIBI, denoms.NUSD), + nil, + }, + { + "correct pair 2", + fmt.Sprintf("%s:@%s", denoms.NIBI, denoms.NUSD), nil, }, { "empty token identifier", - fmt.Sprintf(":%s", denoms.ETH), + fmt.Sprintf("@%s", denoms.ETH), fmt.Errorf("empty token identifiers are not allowed"), }, { "invalid denom 1", - "-invalid1:valid", + "-invalid1@valid", fmt.Errorf("invalid denom"), }, { "invalid denom 2", - "valid:-invalid2", + "valid@-invalid2", fmt.Errorf("invalid denom"), }, } @@ -71,17 +76,17 @@ func TestTryNewPair(t *testing.T) { } func TestGetDenoms(t *testing.T) { - pair := asset.MustNewPair("uatom:unibi") + pair := asset.MustNewPair("uatom@unibi") require.Equal(t, "uatom", pair.BaseDenom()) require.Equal(t, "unibi", pair.QuoteDenom()) } func TestEquals(t *testing.T) { - pair := asset.MustNewPair("abc:xyz") - matchingOther := asset.MustNewPair("abc:xyz") - mismatchToken1 := asset.MustNewPair("abc:abc") - inversePair := asset.MustNewPair("xyz:abc") + pair := asset.MustNewPair("abc@xyz") + matchingOther := asset.MustNewPair("abc@xyz") + mismatchToken1 := asset.MustNewPair("abc@abc") + inversePair := asset.MustNewPair("xyz@abc") require.True(t, pair.Equal(matchingOther)) require.False(t, pair.Equal(inversePair)) @@ -90,16 +95,20 @@ func TestEquals(t *testing.T) { func TestMustNewAssetPair(t *testing.T) { require.Panics(t, func() { - asset.MustNewPair("aaa:bbb:ccc") + asset.MustNewPair("aaa@bbb@ccc") }) - require.NotPanics(t, func() { + require.Panics(t, func() { asset.MustNewPair("aaa:bbb") }) + + require.NotPanics(t, func() { + asset.MustNewPair("aaa@bbb") + }) } func TestInverse(t *testing.T) { - pair := asset.MustNewPair("abc:xyz") + pair := asset.MustNewPair("abc@xyz") inverse := pair.Inverse() require.Equal(t, "xyz", inverse.BaseDenom()) require.Equal(t, "abc", inverse.QuoteDenom()) @@ -113,8 +122,8 @@ func TestMarshalJSON(t *testing.T) { input asset.Pair strOutput string }{ - {name: "happy-0", input: asset.Pair("abc:xyz"), strOutput: "\"abc:xyz\""}, - {name: "happy-1", input: asset.Pair("abc:xyz:foo"), strOutput: "\"abc:xyz:foo\""}, + {name: "happy-0", input: asset.Pair("abc@xyz"), strOutput: "\"abc@xyz\""}, + {name: "happy-1", input: asset.Pair("abc@xyz@foo"), strOutput: "\"abc@xyz@foo\""}, {name: "happy-2", input: asset.Pair("abc"), strOutput: "\"abc\""}, {name: "empty", input: asset.Pair(""), strOutput: "\"\""}, } @@ -156,9 +165,9 @@ func TestPairsUtils(t *testing.T) { pairStrs []string expectPanic bool }{ - {pairStrs: []string{"eth:usd", "btc:usd", "atom:usd"}, expectPanic: false}, - {pairStrs: []string{"eth:usd", "", "abc"}, expectPanic: true}, - {pairStrs: []string{"eth:usd:ftt", "btc:usd"}, expectPanic: true}, + {pairStrs: []string{"eth@usd", "btc@usd", "atom@usd"}, expectPanic: false}, + {pairStrs: []string{"eth@usd", "", "abc"}, expectPanic: true}, + {pairStrs: []string{"eth@usd@ftt", "btc@usd"}, expectPanic: true}, } var panicTestFn func(t require.TestingT, f assert.PanicTestFunc, msgAndArgs ...interface{}) diff --git a/x/common/error_test.go b/x/common/error_test.go index 0582376331..6d95bbe89a 100644 --- a/x/common/error_test.go +++ b/x/common/error_test.go @@ -88,13 +88,13 @@ func TestCombineErrorsGeneric(t *testing.T) { {name: "type=[]string | mixed", in: []string{"", "abc", ""}, out: errors.New(": abc: ")}, // cases: fmt.Stringer - {name: "type=fmt.Stringer |", in: asset.Registry.Pair(denoms.USDC, denoms.NUSD), out: errors.New("uusdc:unusd")}, + {name: "type=fmt.Stringer |", in: asset.Registry.Pair(denoms.USDC, denoms.NUSD), out: errors.New("uusdc@unusd")}, // cases: []fmt.Stringer { name: "type=[]fmt.Stringer | happy", in: []fmt.Stringer{asset.Registry.Pair(denoms.BTC, denoms.NUSD), asset.Registry.Pair(denoms.ETH, denoms.NUSD)}, - out: errors.New("ubtc:unusd: ueth:unusd"), + out: errors.New("ubtc@unusd: ueth@unusd"), }, {name: "type=[]fmt.Stringer | empty", in: []fmt.Stringer{}, out: nil}, } diff --git a/x/common/omap/omap_test.go b/x/common/omap/omap_test.go index 04c6bec5eb..837d01345b 100644 --- a/x/common/omap/omap_test.go +++ b/x/common/omap/omap_test.go @@ -128,7 +128,7 @@ type DummyValue struct{} // TestPair tests an SortedMap where the key is an asset.Pair. func (s *Suite) TestPair() { pairStrs := []string{ - "abc:xyz", "abc:abc", "aaa:bbb", "xyz:xyz", "bbb:ccc", "xyz:abc", + "abc@xyz", "abc@abc", "aaa@bbb", "xyz@xyz", "bbb@ccc", "xyz@abc", } sortedKeyStrs := []string{} sortedKeyStrs = append(sortedKeyStrs, pairStrs...) diff --git a/x/oracle/genesis_test.go b/x/oracle/genesis_test.go index 13ccdbf7fa..bf38815e77 100644 --- a/x/oracle/genesis_test.go +++ b/x/oracle/genesis_test.go @@ -17,7 +17,7 @@ func TestExportInitGenesis(t *testing.T) { input.OracleKeeper.Params.Set(input.Ctx, types.DefaultParams()) input.OracleKeeper.FeederDelegations.Insert(input.Ctx, keeper.ValAddrs[0], keeper.Addrs[1]) - input.OracleKeeper.ExchangeRates.Insert(input.Ctx, "pair1:pair2", + input.OracleKeeper.ExchangeRates.Insert(input.Ctx, "pair1@pair2", types.ExchangeRateAtBlock{ ExchangeRate: math.LegacyNewDec(123), CreatedBlock: 0, @@ -25,8 +25,8 @@ func TestExportInitGenesis(t *testing.T) { }) input.OracleKeeper.Prevotes.Insert(input.Ctx, keeper.ValAddrs[0], types.NewAggregateExchangeRatePrevote(types.AggregateVoteHash{123}, keeper.ValAddrs[0], uint64(2))) input.OracleKeeper.Votes.Insert(input.Ctx, keeper.ValAddrs[0], types.NewAggregateExchangeRateVote(types.ExchangeRateTuples{{Pair: "foo", ExchangeRate: math.LegacyNewDec(123)}}, keeper.ValAddrs[0])) - input.OracleKeeper.WhitelistedPairs.Insert(input.Ctx, "pair1:pair1") - input.OracleKeeper.WhitelistedPairs.Insert(input.Ctx, "pair2:pair2") + input.OracleKeeper.WhitelistedPairs.Insert(input.Ctx, "pair1@pair1") + input.OracleKeeper.WhitelistedPairs.Insert(input.Ctx, "pair2@pair2") input.OracleKeeper.MissCounters.Insert(input.Ctx, keeper.ValAddrs[0], 10) input.OracleKeeper.Rewards.Insert(input.Ctx, 0, types.Rewards{ Id: 0, From 7b4b9efac986de509875da44aae807421acfba72 Mon Sep 17 00:00:00 2001 From: expertdicer Date: Tue, 28 Jan 2025 16:51:24 +0700 Subject: [PATCH 2/8] Update tests --- x/evm/precompile/oracle_test.go | 6 +++--- x/oracle/keeper/grpc_query_test.go | 2 +- x/oracle/types/msgs_test.go | 8 ++++---- x/oracle/types/vote_test.go | 10 +++++----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/x/evm/precompile/oracle_test.go b/x/evm/precompile/oracle_test.go index affb7b6662..91530c1b31 100644 --- a/x/evm/precompile/oracle_test.go +++ b/x/evm/precompile/oracle_test.go @@ -64,7 +64,7 @@ func (s *OracleSuite) TestOracle_HappyPath() { ) { contractInput, err := embeds.SmartContract_Oracle.ABI.Pack( string(precompile.OracleMethod_queryExchangeRate), - "unibi:uusd", + "unibi@uusd", ) s.Require().NoError(err) evmObj, _ := deps.NewEVM() @@ -84,7 +84,7 @@ func (s *OracleSuite) TestOracle_HappyPath() { // 69 seconds + 420 nanoseconds === 69000 milliseconds for the // return value from the UnixMilli() function deps.Ctx = deps.Ctx.WithBlockTime(time.Unix(69, 420)).WithBlockHeight(69) - deps.App.OracleKeeper.SetPrice(deps.Ctx, "unibi:uusd", sdk.MustNewDecFromStr("0.067")) + deps.App.OracleKeeper.SetPrice(deps.Ctx, "unibi@uusd", sdk.MustNewDecFromStr("0.067")) resp, err := runQuery(deps.Ctx) s.NoError(err) @@ -129,7 +129,7 @@ func (s *OracleSuite) TestOracle_HappyPath() { contractInput, err := embeds.SmartContract_Oracle.ABI.Pack( string(precompile.OracleMethod_chainLinkLatestRoundData), - "unibi:uusd", + "unibi@uusd", ) s.Require().NoError(err) evmObj, _ := deps.NewEVM() diff --git a/x/oracle/keeper/grpc_query_test.go b/x/oracle/keeper/grpc_query_test.go index c6ff2f4ad1..e90b2fa2ad 100644 --- a/x/oracle/keeper/grpc_query_test.go +++ b/x/oracle/keeper/grpc_query_test.go @@ -511,7 +511,7 @@ func TestQueryVoteTargets(t *testing.T) { input.OracleKeeper.WhitelistedPairs.Delete(input.Ctx, p) } - voteTargets := []asset.Pair{"denom1:denom2", "denom3:denom4", "denom5:denom6"} + voteTargets := []asset.Pair{"denom1@denom2", "denom3@denom4", "denom5@denom6"} for _, target := range voteTargets { input.OracleKeeper.WhitelistedPairs.Insert(input.Ctx, target) } diff --git a/x/oracle/types/msgs_test.go b/x/oracle/types/msgs_test.go index 265eae0bbd..1333a4ea66 100644 --- a/x/oracle/types/msgs_test.go +++ b/x/oracle/types/msgs_test.go @@ -77,22 +77,22 @@ func TestMsgAggregateExchangeRateVote(t *testing.T) { exchangeRates := types.ExchangeRateTuples{ { - Pair: "FOO:USD", + Pair: "FOO@USD", ExchangeRate: math.LegacyMustNewDecFromStr("1.0"), }, { - Pair: "BAR:USD", + Pair: "BAR@USD", ExchangeRate: math.LegacyMustNewDecFromStr("1232.132"), }, } abstainExchangeRates := types.ExchangeRateTuples{ { - Pair: "FOO:USD", + Pair: "FOO@USD", ExchangeRate: math.LegacyZeroDec(), }, { - Pair: "BAR:USD", + Pair: "BAR@USD", ExchangeRate: math.LegacyMustNewDecFromStr("1232.132"), }, } diff --git a/x/oracle/types/vote_test.go b/x/oracle/types/vote_test.go index dce6f8cf49..e67fe67f1b 100644 --- a/x/oracle/types/vote_test.go +++ b/x/oracle/types/vote_test.go @@ -13,12 +13,12 @@ func TestExchangeRateTuples_ToString(t *testing.T) { t.Run("inverse", func(t *testing.T) { tuples := types.ExchangeRateTuples{ { - Pair: "BTC:USD", + Pair: "BTC@USD", ExchangeRate: math.LegacyMustNewDecFromStr("40000.00"), }, { - Pair: "ETH:USD", + Pair: "ETH@USD", ExchangeRate: math.LegacyMustNewDecFromStr("4000.00"), }, } @@ -35,12 +35,12 @@ func TestExchangeRateTuples_ToString(t *testing.T) { t.Run("check duplicates", func(t *testing.T) { tuples := types.ExchangeRateTuples{ { - Pair: "BTC:USD", + Pair: "BTC@USD", ExchangeRate: math.LegacyMustNewDecFromStr("40000.00"), }, { - Pair: "BTC:USD", + Pair: "BTC@USD", ExchangeRate: math.LegacyMustNewDecFromStr("4000.00"), }, } @@ -56,7 +56,7 @@ func TestExchangeRateTuples_ToString(t *testing.T) { func TestExchangeRateTuple(t *testing.T) { t.Run("inverse", func(t *testing.T) { exchangeRate := types.ExchangeRateTuple{ - Pair: "BTC:USD", + Pair: "BTC@USD", ExchangeRate: math.LegacyMustNewDecFromStr("40000.00"), } exchangeRateStr, err := exchangeRate.ToString() From ef4511b9d366cf4e33fba299e6cc48d1460a71f6 Mon Sep 17 00:00:00 2001 From: expertdicer Date: Tue, 28 Jan 2025 17:04:05 +0700 Subject: [PATCH 3/8] Update tests --- x/oracle/keeper/msg_server_test.go | 2 +- x/oracle/keeper/whitelist_test.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/x/oracle/keeper/msg_server_test.go b/x/oracle/keeper/msg_server_test.go index 4b8aa07142..d15abc3c6a 100644 --- a/x/oracle/keeper/msg_server_test.go +++ b/x/oracle/keeper/msg_server_test.go @@ -125,7 +125,7 @@ func TestAggregatePrevoteVote(t *testing.T) { ExchangeRate: math.LegacyMustNewDecFromStr("0.29"), }, { - Pair: "BTC:CNY", + Pair: "BTC@CNY", ExchangeRate: math.LegacyMustNewDecFromStr("0.27"), }, } diff --git a/x/oracle/keeper/whitelist_test.go b/x/oracle/keeper/whitelist_test.go index 5f24606dfe..61f3ba8368 100644 --- a/x/oracle/keeper/whitelist_test.go +++ b/x/oracle/keeper/whitelist_test.go @@ -24,10 +24,10 @@ func TestKeeper_GetVoteTargets(t *testing.T) { panicCases := []TestCase{ {name: "blank pair", in: []asset.Pair{""}, panic: true}, {name: "blank pair and others", in: []asset.Pair{"", "x", "abc", "defafask"}, panic: true}, - {name: "denom len too short", in: []asset.Pair{"x:y", "xx:yy"}, panic: true}, + {name: "denom len too short", in: []asset.Pair{"x@y", "xx@yy"}, panic: true}, } happyCases := []TestCase{ - {name: "happy", in: []asset.Pair{"foo:bar", "whoo:whoo"}}, + {name: "happy", in: []asset.Pair{"foo@bar", "whoo@whoo"}}, } for _, testCase := range append(panicCases, happyCases...) { @@ -64,7 +64,7 @@ func TestKeeper_GetVoteTargets(t *testing.T) { input.OracleKeeper.WhitelistedPairs.Delete(input.Ctx, p) } - expectedTargets := []asset.Pair{"foo:bar", "whoo:whoo"} + expectedTargets := []asset.Pair{"foo@bar", "whoo@whoo"} for _, target := range expectedTargets { input.OracleKeeper.WhitelistedPairs.Insert(input.Ctx, target) } From 6115f9aa2a01be94bfd6f0c9410fdd3391500908 Mon Sep 17 00:00:00 2001 From: expertdicer Date: Tue, 28 Jan 2025 17:11:05 +0700 Subject: [PATCH 4/8] Update tests --- x/oracle/keeper/sudo_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/oracle/keeper/sudo_test.go b/x/oracle/keeper/sudo_test.go index f52d7f427e..0cc9b98f29 100644 --- a/x/oracle/keeper/sudo_test.go +++ b/x/oracle/keeper/sudo_test.go @@ -32,7 +32,7 @@ func (s *SuiteOracleSudo) TestEditOracleParams() { votePeriod := math.NewInt(1_234) voteThreshold := math.LegacyMustNewDecFromStr("0.4") rewardBand := math.LegacyMustNewDecFromStr("0.5") - whitelist := []string{"aave:usdc", "sol:usdc"} + whitelist := []string{"aave@usdc", "sol@usdc"} slashFraction := math.LegacyMustNewDecFromStr("0.5") slashWindow := math.NewInt(2_000) minValidPerWindow := math.LegacyMustNewDecFromStr("0.5") From 1ebd70cf7719327c143f255c6d4cc4ea5ad4560c Mon Sep 17 00:00:00 2001 From: expertdicer Date: Tue, 28 Jan 2025 17:15:57 +0700 Subject: [PATCH 5/8] chore: update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aec8bba4e4..5218edb726 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -87,6 +87,7 @@ needed to include double quotes around the hexadecimal string. - [#2172](https://github.com/NibiruChain/nibiru/pull/2172) - chore: close iterator in IterateEpochInfo - [#2173](https://github.com/NibiruChain/nibiru/pull/2173) - fix(evm): clear `StateDB` between calls - [#2177](https://github.com/NibiruChain/nibiru/pull/2177) - fix(cmd): Continue from #2127 and unwire vesting flags and logic from genaccounts.go +- [#2181](https://github.com/NibiruChain/nibiru/pull/2181) - fix: change pair delimiter #### Nibiru EVM | Before Audit 2 - 2024-12-06 From aeb3bb165d5b7af8caf8c8caa686f10d137126b7 Mon Sep 17 00:00:00 2001 From: expertdicer Date: Tue, 28 Jan 2025 17:30:25 +0700 Subject: [PATCH 6/8] Update tests --- x/oracle/keeper/app_test.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/x/oracle/keeper/app_test.go b/x/oracle/keeper/app_test.go index c8b5ebe33e..8ffc6d37c2 100644 --- a/x/oracle/keeper/app_test.go +++ b/x/oracle/keeper/app_test.go @@ -43,8 +43,8 @@ func (s *TestSuite) SetupTest() { s.cfg.GenesisState[types.ModuleName] = s.cfg.Codec.MustMarshalJSON(func() codec.ProtoMarshaler { gs := types.DefaultGenesisState() gs.Params.Whitelist = []asset.Pair{ - "nibi:usdc", - "btc:usdc", + "nibi@usdc", + "btc@usdc", } return gs @@ -72,20 +72,20 @@ func (s *TestSuite) TestSuccessfulVoting() { // then the number picked is the one in the middle always. prices := []map[asset.Pair]sdk.Dec{ { - "nibi:usdc": math.LegacyOneDec(), - "btc:usdc": math.LegacyMustNewDecFromStr("100203.0"), + "nibi@usdc": math.LegacyOneDec(), + "btc@usdc": math.LegacyMustNewDecFromStr("100203.0"), }, { - "nibi:usdc": math.LegacyOneDec(), - "btc:usdc": math.LegacyMustNewDecFromStr("100150.5"), + "nibi@usdc": math.LegacyOneDec(), + "btc@usdc": math.LegacyMustNewDecFromStr("100150.5"), }, { - "nibi:usdc": math.LegacyOneDec(), - "btc:usdc": math.LegacyMustNewDecFromStr("100200.9"), + "nibi@usdc": math.LegacyOneDec(), + "btc@usdc": math.LegacyMustNewDecFromStr("100200.9"), }, { - "nibi:usdc": math.LegacyOneDec(), - "btc:usdc": math.LegacyMustNewDecFromStr("100300.9"), + "nibi@usdc": math.LegacyOneDec(), + "btc@usdc": math.LegacyMustNewDecFromStr("100300.9"), }, } votes := s.sendPrevotes(prices) From 043ab510760300a0762f87f801b6e42318073f1b Mon Sep 17 00:00:00 2001 From: expertdicer Date: Tue, 28 Jan 2025 19:02:57 +0700 Subject: [PATCH 7/8] Update tests --- x/oracle/keeper/app_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x/oracle/keeper/app_test.go b/x/oracle/keeper/app_test.go index 8ffc6d37c2..a6722b7db8 100644 --- a/x/oracle/keeper/app_test.go +++ b/x/oracle/keeper/app_test.go @@ -99,8 +99,8 @@ func (s *TestSuite) TestSuccessfulVoting() { gotPrices := s.currentPrices() require.Equal(s.T(), map[asset.Pair]sdk.Dec{ - "nibi:usdc": math.LegacyOneDec(), - "btc:usdc": math.LegacyMustNewDecFromStr("100200.9"), + "nibi@usdc": math.LegacyOneDec(), + "btc@usdc": math.LegacyMustNewDecFromStr("100200.9"), }, gotPrices, ) From ec910c4f78675da7276355b9aac534b346ac6d51 Mon Sep 17 00:00:00 2001 From: expertdicer Date: Mon, 3 Feb 2025 10:21:35 +0700 Subject: [PATCH 8/8] Update localnet and evm-e2e --- contrib/scripts/localnet.sh | 4 ++-- evm-e2e/test/utils.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/scripts/localnet.sh b/contrib/scripts/localnet.sh index 8266cf44e4..52124cfe60 100755 --- a/contrib/scripts/localnet.sh +++ b/contrib/scripts/localnet.sh @@ -218,9 +218,9 @@ add_genesis_param '.app_state.sudo.sudoers.root = "'"$val_address"'"' # hack for localnet since we don't have a pricefeeder yet price_btc="50000" price_eth="2000" -add_genesis_param '.app_state.oracle.exchange_rates[0].pair = "ubtc:uuusd"' +add_genesis_param '.app_state.oracle.exchange_rates[0].pair = "ubtc@uuusd"' add_genesis_param '.app_state.oracle.exchange_rates[0].exchange_rate = "'"$price_btc"'"' -add_genesis_param '.app_state.oracle.exchange_rates[1].pair = "ueth:uuusd"' +add_genesis_param '.app_state.oracle.exchange_rates[1].pair = "ueth@uuusd"' add_genesis_param '.app_state.oracle.exchange_rates[1].exchange_rate = "'"$price_eth"'"' # ------------------------------------------------------------------------ diff --git a/evm-e2e/test/utils.ts b/evm-e2e/test/utils.ts index dbf8f4c1c5..16bbdf4443 100644 --- a/evm-e2e/test/utils.ts +++ b/evm-e2e/test/utils.ts @@ -75,7 +75,7 @@ export const deployContractNibiruOracleChainLinkLike = async (): Promise<{ deploymentTransaction(): ContractTransactionResponse; }; }> => { - const oraclePair = 'ueth:uuusd'; + const oraclePair = 'ueth@uuusd'; const factory = new NibiruOracleChainLinkLike__factory(account); const contract = await factory.deploy(oraclePair, toBigInt(8)); await contract.waitForDeployment();