Skip to content

refactor(collections): add UintValueEncoder and use Uint for wei store#2595

Open
expertdicer wants to merge 1931 commits into
mainfrom
expertdicer/collections-uint-value-encoder
Open

refactor(collections): add UintValueEncoder and use Uint for wei store#2595
expertdicer wants to merge 1931 commits into
mainfrom
expertdicer/collections-uint-value-encoder

Conversation

@expertdicer

Copy link
Copy Markdown
Contributor

Abstract

collections.IntValueEncoder used to delegate to IntKeyEncoder, which panics on negative or nil sdkmath.Int values. That was misleading for signed state (e.g. wei block deltas) and unsafe for callers that expected a general signed int encoder.

This PR splits signed value encoding from unsigned fixed-width encoding: IntValueEncoder now marshals signed sdkmath.Int, a new UintValueEncoder keeps the existing 32-byte big-endian format for non-negative persisted state, and weiStore is typed as sdkmath.Uint. eth.SignedIntValueEncoder is removed in favor of the generic collections encoder.

Unique-Divine and others added 30 commits October 23, 2025 14:38
… work with "0x" Ethereum hex and "nibi"-prefixed Bech32 address formats (#2410)

* wip!: impl #2401

* implement rest of feature; don't return an Eth address for a Wasm contract

* update changelog

* fix: estimate gas succeeds with small wei amounts now

* docs(evm): add a bit of documentation for the Balance and Account
queries
commit 08c59b47850586f603ee18061793c3e973b50532
Author: Unique Divine <realuniquedivine@gmail.com>
Date:   Thu Oct 23 15:27:38 2025 -0500

    merge conf

commit 1dffd7852590c7e0d26129c433569b88f648c106
Merge: 1bfc24d 4dd252f
Author: Unique Divine <realuniquedivine@gmail.com>
Date:   Thu Oct 23 15:26:49 2025 -0500

    Merge remote-tracking branch 'yin/main' into ud/main-merge-yinwen

commit 4dd252f
Author: yinwenyu6 <yinwenyu6@outlook.com>
Date:   Sat Aug 16 20:11:04 2025 +0800

    chore: fix function name

    Signed-off-by: yinwenyu6 <yinwenyu6@outlook.com>
… "debug_traceBlockByNumber". Fixes [Nibiru#2400 bug](#2400) (#2409)

* refactor: use return values without error for function that always succeeds

* fix(TraceBlock): use native tracer behavior, not JS parallel tracer; Make test comparisons less brittle

* fix(evmstate): trace block gas inconsistency fixed + error on trace tx failure like geth

* finish PR for #2400

* tx hash field

* fix(vmtracer): include tx hash as one of the fields for trace results

* refactor: PR feedback from Gemini-code-assist
…2390)

* chore(deps): bump cipher-base from 1.0.4 to 1.0.6 in /x/evm/embeds

Bumps [cipher-base](https://github.com/crypto-browserify/cipher-base) from 1.0.4 to 1.0.6.
- [Changelog](https://github.com/browserify/cipher-base/blob/master/CHANGELOG.md)
- [Commits](browserify/cipher-base@v1.0.4...v1.0.6)

---
updated-dependencies:
- dependency-name: cipher-base
  dependency-version: 1.0.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updated changelog - dependabot

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Unique-Divine <51418232+Unique-Divine@users.noreply.github.com>
Co-authored-by: Unique Divine <realuniquedivine@gmail.com>
* fix(evm-rpc): remove unsafe debug API methods.

* refactor: make code organization suggestion from Gemini input
…tions and combine micro-packages (#2413)

* fix(evm-rpc): remove unsafe debug API methods.

* refactor: make code organization suggestion from Gemini input

* refactor(upgrades): simplify upgrade hanlder code to use less abstractions and combine micro-packages

* fix tests and add feedback

* refactor: last bit of changes from self-review
* wip!: try adding back coverage reports

* add trivial go change for CI to start

* try newer version, fix license, update install docs

* docs(README): face lift with updated docs
…ctors (#2415)

* feat: custom ante NewDeductFeeDecorator allowing 0 fee for zero gas actors

* chore: changelog

* fix: linter

* refactor: moved private code to fee.go

* impl last PR comment + cleanup

---------

Co-authored-by: Unique Divine <realuniquedivine@gmail.com>
… transfer recipient (#2418)

* fix(evmstate/test): fix flaky trace tx tests with deterministic ERC20 transfer recipient

* changelog
* ci: less cache collisions

* changelog

* better PR template
#2420)

* feat: add recursive check for nested authz exec messages and enforce max depth limit

* changelog

* docs(CHANGELOG): move log entry to correct position

---------

Co-authored-by: Unique Divine <51418232+Unique-Divine@users.noreply.github.com>
* fix(evm): add panic safety to eth_estimateGas. Fix usage of incorrect SDB context in successive estimation calls.

* fix(evm): use geth efficiency improvements and improved BinSearch with lo bias

* fix(evm-e2e): newer assertion is more lenient

* fix: add suggestion from Cursor bot

* fix: bug with ineffectual assignment

* ci: add new gen-changelog command to automate its maintenance more

* more pr feedback

---------

Co-authored-by: Oleg Nikonychev <oleg.nikonychev@gmail.com>
…chain 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
…CI caching (#2431)

* chore: changelog

* ci(golangci-lint): update linter version to latest (v2.6.1)

* ci(golangci-lint): update linter version to latest (v2.6.1); improve CI caching
…consumed on failed EVM tx; nonce increment on the ctx should only happen in DeliverTx and ReCheckTx, not CheckTx (#2434)

* fix(evmante): nonce increment on the ctx should only happen in DeliverTx and ReCheckTx, not CheckTx

* fix: pull golangci.yml update from other branch

* fix: impl panic-safe guard for fixed gas taken by true ante failures in DeliverTx

* fix if statement

* chore: upgrade handler for v2.9
…cts (#2433)

* chore: changelog

* sai-trading: add first set of artifacts

* sai-trading: toml for build info

* sai-trading: start a small program that uses a running nibid process for local testing

* chore: add out.txt to gitignore; add justfile comment

* sai-trading: project scaffolding with script to deploy all Sai contracts

* sai-trading: get a simple test going that checks for the running network in the background

* test(ci): need to install bun before running the script

* use which instead of command -v

* fix array concatenation

* make pr title lint more flexible to account for sai-trading and revert changes to app, proto, api

* test(.github): fix just install if statement

* chore: linter

* fix(linter): revert the build tag issue and disable that small piece of govet

* Delete TODO_ANALYSIS.md
Signed-off-by: vetclippy <vetclippy@icloud.com>
…nce it's one of the nibid genesis subcommands (#2448)
…o baseapp and the SDK types (#2451)

* refactor: move cosmos-sdk to internal/cosmos-sdk for smoother edits to baseapp and the SDK types

* rm swagger.go

* fix(configurator): rm NFT module

* fix: make wasmd and cosmos-sdk deps play nicely; remove nft module from wasmd

* refactor(swagger-ui): rm swagger JS boilerplate

* refacor(cosmos-sdk): rm more top-level unused files

* refactor: clean up deps even more; delete dead code

* fix: linter
…angelog): use config from current branch, not main (#2465)

* docs: update changelog

* docs(changelog): update with version 2.9 and 2.8

* cliff.toml, remove author; latest version bump

* fix(justfile/gen-changelog): use config from current branch, not main

* docs: PR feedback

* fix(justfile): PR feedback to handle failure case explicitly
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v4...v6)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](docker/metadata-action@v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Unique Divine <51418232+Unique-Divine@users.noreply.github.com>
Unique-Divine and others added 26 commits May 30, 2026 19:01
…tisig self-managing (#2602)

* feat(v2.14): Remove legacy SDK multisig as CW4 admin and make CW3 multisig self-managing

* feat(v2.14): Return multisig upgrade errors for log/event emission without halting chain
* fix: Make gov module safer; accept only deposit denom

* test(evm): Fix test assertion for FunToken token creation

* test(bank): Use gov min deposit denom in send-enabled proposal test

* refactor(gov): Avoid rebuilding MinDeposit coins in denom error
…ng UX to account for wallet client edge cases (#2596)

* feat(evm): Enhance EVM zero gas detection to be automatic for eligible txs

* test(evm): More test coverage for automatic zero gas functionality
…zero fee hints for EVM RPC calls used in wallet preflight (#2601)
* docs: markdown content

* refactor: Helper fn DRY change

* fix(localnet.sh): Show DEBUG logs, make configurable, and fix color terminal output bug

* docs: Rm broken links and unused doc files

* docs: Remove outdated stuff do broad cleanup

* fix(localnet): use echo_error in which_ok before color init

which_ok called undefined log_error when tput was missing, which could
abort the script under set -euo pipefail instead of disabling colors.
Define echo_info/echo_error/echo_success before which_ok so the missing
binary path works during console_log_text_color startup.

Co-authored-by: Unique Divine <Unique-Divine@users.noreply.github.com>

* fix(justfile): just localnet script flag defaults

* docs: Fix Cosmos SDK example snippets

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(lcoalnet.sh): Color terminal guards not working as expected

* ci: Detect localnet startup failures in workflows

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Unique Divine <Unique-Divine@users.noreply.github.com>
* feat(evm): Allow zero-gas calls with native value

* feat: Add LayerZero zero-gas upgrade step and lint fallback

* refactor(upgrades): Use handler structs for upgrade registration
* refactor(upgrades): Add NewVanillaUpgrade helper, register v2.13.0, harden v2.14.0

* docs(security-reports): Save Code4rena competitive audit as PDF and upload to the repo

* docs(security-reports): Add PDF links

* refactor(typos): Apply suggestions from code review

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* test: Use less hard-coded constants

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…t for easier test debugging and less hanging (#2620)
…2621)

* wip: adapter tests not working yet

* wip: Push updated artifact with rename and desired business logic

* feat(evm): Add oracle precompile adapter support

* feat: Upgrade handler, more tests, and production artifact x_oracle.wasm from mainnet

* refactor: Prefer proto equal over custom fn

* fix(oracle): Share x-oracle adapter schema
@Unique-Divine
Unique-Divine force-pushed the main branch 4 times, most recently from 22fb261 to ac05154 Compare July 2, 2026 11:43
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.

[bug] The IntKeyEncoder.Encode function panics if the input math.Int is nil or negative.

8 participants