v2.0.0
Compare 1.3.3...2.0.0 · commit 4499e74
The 2.0 line is a major rewrite of the project's tooling and runtime expectations. See Migration: 1.x → 2.0 below.
⚠️ Breaking Changes
- Proto numbers are
bigint, notLong. Fields previously typedLong(e.g.gas_wanted,gas_used, sequences, heights) are nowbigint. Any code that constructed or readLongvalues (Long.fromNumber,.toNumber(),.toString(),.eq(), …) needs to switch tobigint(BigInt(x),Number(x), arithmetic with thensuffix). This is a wire-compatible change but a source-incompatible one. - RPC layer moved to
@gnolang/tm2-rpc. The internal JSON-RPC / WebSocket transport was extracted to a new package (allinbits/tm2-rpc). Direct importers of the previousprovider/spectypes may need to update import paths. - Tested on Node.js 24. No
enginesfield is enforced, but the test/build matrix moved to Node 24 and earlier majors are no longer covered.
Added
- Dual ESM + CJS distribution. The package now ships as
"type": "module"with conditionalexports—importresolves todist/index.mjs,requireresolves todist/index.cjs, with matching.d.mts/.d.ctstypes. Both consumer styles continue to work.
Changed
- Build pipeline migrated to tsdown.
- Test framework migrated from jest to vitest.
- Package manager switched from yarn to pnpm.
- Linting setup modernised; rules unified with sibling JS/TS projects.
- All runtime and dev dependencies updated to current majors.
Pre-2.0 dependency bumps included
@types/node24.3.0 → 24.5.2 (#241)prettier3.6.2 → 3.7.3 (#246), 3.7.3 → 3.8.1 (#250)- eslint group bumps (#242, #251)
- actions group bump (#247)
feat: Version 2.0(#256)
Migration: 1.x → 2.0
- Replace
Longwithbigint. Search your codebase for anyLongusage that came from this package's proto types and convert:Long.fromNumber(x)→BigInt(x)value.toNumber()→Number(value)value.toString()→value.toString()(unchanged)a.add(b)/a.eq(b)→a + b/a === b
- Move to a Node 24+ runtime for both build and test. CI/build images pinned to older Node majors should be updated.
- Pair with
@gnolang/gno-js-client2.0.xif you use it (oldergno-js-clientversions depend ontm2-js-client1.x and will not work with 2.x). - No source changes are required for ESM vs CJS consumers — both paths are still supported via the new conditional
exports. - No migration is required for
Provider/Wallet/Signerpublic API shapes — those are preserved.