Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(oracle): add oracle slashing events #1859

Merged
merged 3 commits into from
May 1, 2024
Merged

Conversation

k-yang
Copy link
Member

@k-yang k-yang commented May 1, 2024

Purpose / Abstract

  • Add x/oracle slashing events to block_results. SlashingKeeper wraps StakingKeeper and delegates Slash and Jail to it, but adds extra events to the block output.

Copy link
Contributor

coderabbitai bot commented May 1, 2024

Walkthrough

The recent changes revolve around integrating a slashingKeeper component into key structures within the NibiruApp and its oracle module. These modifications include adding the slashingKeeper to the Keeper structures, adjusting function parameters to support slashing operations, and updating utility and test configurations. These enhancements aim to improve the management of validator penalties such as slashing and jailing, bolstering governance and security in the application.

Changes

Files Summary of Changes
app/keepers.go, x/oracle/keeper/... Introduced slashingKeeper in Keeper structs and updated function parameters for slashing operations.
x/oracle/keeper/slash.go Modified logging and argument order in slashing and jailing functions.
x/oracle/keeper/test_utils.go, x/oracle/types/expected_keeper.go Enhanced test setups and interfaces to support new slashing functionality.

Poem

🐰✨
Oh, in the land of code and byte,
A rabbit hopped through the night.
With each leap, a line refined,
Slashing bugs with keen mind.
Jailing errors, setting right,
In the glow of moonlight bright. 🌕🌟


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@k-yang k-yang marked this pull request as ready for review May 1, 2024 16:57
@k-yang k-yang requested a review from a team as a code owner May 1, 2024 16:57
@k-yang k-yang enabled auto-merge (squash) May 1, 2024 17:01
Copy link

codecov bot commented May 1, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 68.59%. Comparing base (45bb20c) to head (0bc3a6a).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1859      +/-   ##
==========================================
+ Coverage   68.58%   68.59%   +0.01%     
==========================================
  Files         176      176              
  Lines       10087    10091       +4     
==========================================
+ Hits         6918     6922       +4     
  Misses       2747     2747              
  Partials      422      422              
Files Coverage Δ
app/keepers.go 99.12% <100.00%> (ø)
x/oracle/keeper/keeper.go 86.02% <100.00%> (+0.15%) ⬆️
x/oracle/keeper/slash.go 84.37% <100.00%> (-0.48%) ⬇️
x/oracle/keeper/sudo.go 94.28% <100.00%> (ø)
x/oracle/keeper/test_utils.go 96.70% <100.00%> (+0.07%) ⬆️

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

@@ -30,7 +30,7 @@ func (k sudoExtension) EditOracleParams(
ctx sdk.Context, newParams oracletypes.MsgEditOracleParams,
sender sdk.AccAddress,
) (paramsAfter oracletypes.Params, err error) {
if err := k.SudoKeeper.CheckPermissions(sender, ctx); err != nil {
if err := k.sudoKeeper.CheckPermissions(sender, ctx); err != nil {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check the definition and initialization of sudoKeeper.

It appears that sudoKeeper is used here but not defined or initialized in this file or mentioned in the PR summary. Please ensure that sudoKeeper is properly defined and initialized, or update the reference to the correct keeper.

@k-yang k-yang merged commit c2e0107 into main May 1, 2024
14 checks passed
@k-yang k-yang deleted the fix/oracle/slash-events branch May 1, 2024 17:10
k-yang added a commit that referenced this pull request May 1, 2024
* refactor(oracle): add oracle slashing events

* Update CHANGELOG.md
k-yang added a commit that referenced this pull request May 1, 2024
* refactor(oracle): add oracle slashing events

* Update CHANGELOG.md
k-yang added a commit that referenced this pull request May 1, 2024
* refactor(oracle): add oracle slashing events

* Update CHANGELOG.md
k-yang added a commit that referenced this pull request May 1, 2024
* refactor(oracle): add oracle slashing events

* Update CHANGELOG.md
k-yang added a commit that referenced this pull request May 1, 2024
* refactor(oracle): add oracle slashing events

* Update CHANGELOG.md
k-yang added a commit that referenced this pull request May 1, 2024
* refactor(oracle): add oracle slashing events

* Update CHANGELOG.md
@k-yang k-yang restored the fix/oracle/slash-events branch May 1, 2024 18:32
k-yang added a commit that referenced this pull request May 1, 2024
* refactor(oracle): add oracle slashing events

* Update CHANGELOG.md
k-yang added a commit that referenced this pull request Jan 3, 2025
* refactor(oracle): add oracle slashing events

* Update CHANGELOG.md
k-yang added a commit that referenced this pull request Feb 20, 2025
* chore(perp): remove perp

* chore(perp): remove perp protos

* chore(stablecoin): remove stablecoin

* chore(spot): remove spot

* chore: use large ubuntu runner for goreleaser workflow

* fix(ledger): bump the hid package to v0.9.2 which fixes ledger on new… (#1649)

* fix(ledger): bump the hid package to v0.9.2 which fixes ledger on new macos versions

* chore: update changelog

* chore: update changelog

* feat(wasmbinding)!: whitelisted stargate queries for QueryRequest::Stargate: auth, bank, gov, tokenfactory, epochs, inflation, oracle, sudo, devgas (#1646)

* fix(tokenfactory)!: Fix bug in MsgBurn on total supply tracking

* chore: rm stablecoin. How does this keep getting merged lol

* test: add export statements for the gRPC query service descriptions in each module

* feat(wasmbinding): whitelisted stargate queries for QueryRequest::Stargate

* changelog

* fix changelog

* refactor!: make the epoch infos name consistent

* docs,test(stargate_query): leave an in-depth explainer above the function

* refactor: pR comments: earlier return + remove duplicate hardcoded paths

* test: proto package may have more than 3 'parts'. Use len - 1 instead

* docs: fix small documentation typos

* chore: reset module consensus versions

* fix(inflation): enable inflationary NIBI (#1655)

* chore(epochs): add day epoch and remove 15min epoch from default genesis

* chore(epochs): remove 15min epoch from default genesis

* fix(inflation): inflate strategic reserves to sudo root account

* fix(inflation): test inflation amounts

* chore: update changelog

* fix(keeper): inflation keeper instantiation

* feat(oracle): edit oracle params msg (#1658)

* chore: update changelog

* Update CHANGELOG.md

* chore(oracle): curate default oracle whitelist (#1659)

* chore(oracle): curate default oracle whitelist

* update changelog

* chore(deps): Bump github.com/CosmWasm/wasmvm from 1.4.1 to 1.5.0 (#1657)

Bumps [github.com/CosmWasm/wasmvm](https://github.com/CosmWasm/wasmvm) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/CosmWasm/wasmvm/releases)
- [Changelog](https://github.com/CosmWasm/wasmvm/blob/main/CHANGELOG.md)
- [Commits](CosmWasm/wasmvm@v1.4.1...v1.5.0)

---
updated-dependencies:
- dependency-name: github.com/CosmWasm/wasmvm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: Unique-Divine <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Unique Divine <[email protected]>

* chore(deps): Bump google.golang.org/grpc from 1.58.3 to 1.59.0 (#1643)

* chore(deps): Bump google.golang.org/grpc from 1.58.3 to 1.59.0

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.58.3 to 1.59.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.58.3...v1.59.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* Updated changelog - dependabot

---------

Signed-off-by: Unique-Divine <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Unique Divine <[email protected]>
Co-authored-by: Unique-Divine <[email protected]>
Co-authored-by: Unique-Divine <[email protected]>

* chore(deps): Bump github.com/cosmos/ibc-go/v7 from 7.3.0 to 7.3.1 (#1647)

* chore(oracle): remove bnb:usd from default whitelist

* chore(epochs): add month default epoch

* chore(wasm): bump wasmd dependency to v0.43.0 (#1660)

* chore(wasm): bump wasmd dependency to v0.43.0

* Update CHANGELOG.md

* fix: fix linter issues

---------

Co-authored-by: Matthias <[email protected]>

* fix(epochs): fix epoch tests broken by adding month epoch into default genesis

* feat: update wasmd to v0.44.0 (#1666)

* feat: update wasmd to v0.44.0

* chore: lint

* chore(inflation)!: remove x/inflation module (#1667)

* chore(inflation): remove x/inflation and inflation proto files

* fix: wasmbinding imports

* chore(inflation): remove inflation from app keepers

* update changelog

* feat(inflation)!: make inflation follow a polynomial distribution (#1670)

* feat: make inflation follow a polynomial distribution

* chore: changelog

* fix: fix inflation test

* fix: fix epoch/period confusion

* chore: update changelog

* feat: add inflation events detailed distribution (#1695)

* feat: add inflation events detailed distribution

* chore: changelog

* fix: improve error handling

* fix: broken unit test + make x/sudo safer by making blank genesis invalid

* refactor: run gofumpt formatter

---------

Co-authored-by: Unique-Divine <[email protected]>

* fix(inflation): fix default inflation allocation params (#1688)

* fix: fix default inflation allocation

* chore: changelog

* fix: fix tests

---------

Co-authored-by: Unique Divine <[email protected]>

* feat: add upgrade handler for inflation module (#1684)

* upgrade handler

* make lint

* update changelog

* fix changelog

* use orderedModuleNames() function for upgrade

---------

Co-authored-by: Unique Divine <[email protected]>

* fix: upgrade handler for v1.1.0 (#1706)

* fix: upgrade handler for v1.1.0

* chore: update changelog

* refactor(inflation): make inflation disabled by default (#1712)

* refactor(inflation): make inflation disabled by default

* chore: update changelog

* chore: bump librocksdb to v8.9.1 (#1778)

Co-authored-by: Unique Divine <[email protected]>

* chore: update changelog

* ci: fix go mod

* ci: remove go toolchain directive

* feat: make inflation params a collection and add commands to update them (#1776)

* feat: make inflation params a collection and add commands to update them

* fix: more tests

* chore: changelog

* Update x/inflation/keeper/grpc_query.go

Co-authored-by: Unique Divine <[email protected]>

* Update x/inflation/keeper/grpc_query.go

Co-authored-by: Unique Divine <[email protected]>

* Update x/inflation/keeper/sudo.go

Co-authored-by: Unique Divine <[email protected]>

* fix: fix tests and improve function

* fix: add test for queryserver

---------

Co-authored-by: Unique Divine <[email protected]>

* ci: bump grocksdb to 1.8.12

* fix: remove verify-dist-temp

* ci: use new goreleaser image

* ci: update make build commands

* fix(inflation): fix first epoch's inflation distribution (#1786)

* fix: fix inflation start bug

* fix: fix off by 2 on inflation start

* fix: make test more random

* chore: changelog

* fix: use sdkmath.Int instead of sdk.Int

* comments + var names

---------

Co-authored-by: Unique-Divine <[email protected]>

* ci: update goreleaser config file

* feat: upgrade handler for v1.0.1

* feat(inflation): add inflation tx cmds (#1795)

* feat(inflation): add toggle-inflation cli command

* feat(inflation): add edit-params command and update validate-basic

* chore: update changelog

* feat: uncomment amino registering on register legacy amino codec for inflation module (#1792)

* uncomment amino registering on register legacy amino codec

* add changelog entry

---------

Co-authored-by: Unique-Divine <[email protected]>

* feat: handle case where skip epoch not aligned with epoch passed (#1796)

* fix(inflation): num skipped epochs tracking (#1797)

* fix: fix bug on inflation

* chore: changelog

* fix: add bool to see wether inflation ever started

* fix: epoch off by one error

* chore: unwire epochs keeper from inflation keeper

* fix: off by one tests

---------

Co-authored-by: Kevin Yang <[email protected]>

* chore: bump cosmos-sdk to v0.47.9 (#1808)

* chore: bump cosmos-sdk to v0.47.9

* chore: update changelog

* chore: add v1.0.2 upgrade handler

* fix(inflation-docs): ① Document inflation + ② delete unused code + ③ fix CI (#1799)

* refactor,docs(inflation): Document everything + delete unused code

* changelog

* feat(localnet): make perp and spot modules optional features

* fix(e2e-wasm.yml-ci): Use consistent command runner

* wip! move nibid to path after downlaoding release

* wip! fix syntax error in localnet.sh

* wip!: what version is running?

* wip! try: simplify and use fresh build

* wip! fix param space

* wip!: fix source path in chaosnet and localnet

* wip!: fix source path in chaosnet and localnet

* wip!: fix source path in chaosnet and localnet

* fix(localent.sh): missing prices in oralce genesis

* wait a bit since localnet is fixed now

* fix(deploy-wasm): using wrong binary name

* ci: Runs well but needs a better name

* ci: fix chaosnet build (#1806)

* ci: fix chaosnet build

* fix(scripts): use better current absolute path directory fn

* refactor(e2e-localnet): remove unused script

* fix(justfile): handle case where stop is called without anything running

---------

Co-authored-by: Unique-Divine <[email protected]>

* chore: bump cosmos-sdk to v0.47.9 (#1808)

* chore: bump cosmos-sdk to v0.47.9

* chore: update changelog

* feat: update default inflation rate (#1804)

* feat: update default inflation rate

* chore: changelog

* fix: fix rounding issue

* ci: remove go toolchain in go.mod file

* ci: revert back to cosmos sdk v0.47.5

* ci: bump to cosmos-sdk v0.47.6

* ci: bump to cosmos-sdk v0.47.7

* ci: bump to cosmos-sdk v0.47.8

* ci: bump to cosmos-sdk v0.47.9

* ci: revert to cosmos sdk v0.47.5

* chore: bump cosmos-sdk to v0.47.10

* chore: add back v1.0.1 files

* fix: add back v1.0.2 upgrade handler

* fix: wasm ibc transaction panic (#1816)

* fix wasm ibc transaction panic

* include upgrade 1.0.3

* linter

* update and fix changelog

* feat: base64 decoder for cw3 wasm messages (#1731)

* wip

* feat: have a dirty funny looking solution

* chore: changelog

* fix: fix replace usage

* Update cmd/nibid/cmd/decode_base64.go

Co-authored-by: Kevin Yang <[email protected]>

* fix: turns out InterfaceRegistry.Resolve does the trick

* chore: changelog

* fix: remove unused import

---------

Co-authored-by: Kevin Yang <[email protected]>

* refactor(decode-base64): clean code improvements and fn docs (#1754)

* add date into changelog for release

* chore: finalize v1.1.0 changelog

* feat(inflation): add burn method (#1823)

* feat(inflation): add burn method

* Update CHANGELOG.md

* chore: fix changelog (#1824)

* test(inflation): add additional burn test cases (#1828)

* test(inflation): add negative burn tests

* test(inflation): add total supply check to burn tests

* Update CHANGELOG.md

* feat(tokenfactory): burn native method (#1832)

* refactor: move Burn rpc method to x/tokenfactory

* Update tx_msgs.go

* feat: add burn native method to tokenfactory msg server

* feat: add cli cmd

* fix: validate msg

* feat: add v1.2.0 upgrade handler

* Update CHANGELOG.md

* fix: register codec for MsgBurnNative

* fix: test

---------

Co-authored-by: Unique-Divine <[email protected]>

* revert: remove x/inflation burn method

* feat(ica): ICA Host / Controller integration (#1820)

* ICA Host / Controller integration. Added upgrade constants. Added make format command

* Fixed required message URLs

* Code import fix

* Fixed upgrade name

* Fixed upgrade target

* Changed version number

* Update CHANGELOG.md

---------

Co-authored-by: Jonathan Gimeno <[email protected]>
Co-authored-by: Kevin Yang <[email protected]>

* refactor(oracle): add oracle slashing events (#1859)

* refactor(oracle): add oracle slashing events

* Update CHANGELOG.md

* fix(ica): add controller stack (#1864)

* fix(ica): add controller stack

* chore: update changelog

* fix: linter issues

* Update CHANGELOG.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(wasm)!: increase contract size limit to 3MB (#1906)

* feat(wasm): increase contract size limit to 3MB

* chore: update changelog

* feat: add pebbledb support (#1818)

* chore: make default db backend PebbleDB

* chore: update changelog

* chore: add v1.4.0 upgrade handler

* feat(ibc): add wasm stack to ibc router (#1931)

* feat(ibc): add wasm stack to ibc router

* Update CHANGELOG.md

* feat: add v1.5.0 upgrade handler

* chore: update changelog

* feat: add pebbledb support

* chore: remove wasmbinding folder and nibiru/v1 dependency

* fix: remove extra overrideWasmVariables

* fix: upgrades

* fix: oracle keeper

* fix: epochs tests

* feat: add v2.0.0 upgrade handler

* linter

* fix: upgrade handlers had wrong function type

* Revert "feat: enable wasm light clients on IBC (08-wasm) (#2068)"

This reverts commit ee5e29f.

* fix: remove v2.1.0 upgrade handler

* chore: update changelog for v2 EVM release

* fix: revert testnet-1 chain id to 7210

* fix: revert wasmvm to v1.5.0

* feat(ibc): add back 08-wasm client

* chore: minor refactors to resemble main branch

---------

Signed-off-by: Unique-Divine <[email protected]>
Signed-off-by: Unique-Divine <[email protected]>
Co-authored-by: Unique Divine <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Unique-Divine <[email protected]>
Co-authored-by: Unique-Divine <[email protected]>
Co-authored-by: Matthias <[email protected]>
Co-authored-by: Matthias <[email protected]>
Co-authored-by: Jonathan Gimeno <[email protected]>
Co-authored-by: Helder Moreira <[email protected]>
Co-authored-by: Segfault <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Oleg Nikonychev <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants