Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
5a40644
added Scalar UI to node, updated buf to v2
vexxvakan May 19, 2025
ef867f4
fixed proto gen
vexxvakan May 19, 2025
d576c62
cleaned up and improved proto scripts
vexxvakan May 20, 2025
603eb52
Update deps, Cosmos SDK 0.53.0
vexxvakan May 20, 2025
e803179
update required app wiring for sdk v0.53
vexxvakan May 20, 2025
e816a07
v30 upgrade handler
vexxvakan May 20, 2025
854a4a6
bumped interchaintest
vexxvakan May 20, 2025
cd87882
fix new v29 test to not use the local image but v29 instead
vexxvakan May 20, 2025
627394d
remove deprecated swagger instance
vexxvakan May 20, 2025
0c859ad
removed globalfee module
vexxvakan May 20, 2025
dc2a4b1
forked and adapted skip's feemarket module, removed globalfee module
vexxvakan May 21, 2025
9299abd
wired up feemarket in feepay module
vexxvakan May 21, 2025
ab856bf
added feemarket store key to app
vexxvakan May 21, 2025
4224194
fixed feemarket api route and non canonical MsgParams name
vexxvakan May 21, 2025
a0ae429
removed globalfee leftovers, WIP rework e2e suite
vexxvakan May 22, 2025
c6de955
fixed up more tests, cleaned up a lot (sorry for massive commit)
vexxvakan May 30, 2025
e46b42a
fully implemented feemarket
vexxvakan Jun 2, 2025
d23ef64
improve feemarket e2e tests
vexxvakan Jun 5, 2025
2ddefad
improve feemarket e2e tests
vexxvakan Jun 8, 2025
7e88be6
WIP! grpc steaming wrapper module, experimental
vexxvakan Jun 10, 2025
adae4b9
fixed node panic on stream sub
vexxvakan Jun 10, 2025
28084ec
improve app close handling, shutdown grpc streams on exit
vexxvakan Jun 10, 2025
2a9c5b3
make websocket subscriptions work
vexxvakan Jun 10, 2025
907b15d
improved connection handling and added detailed telemetry
vexxvakan Jun 10, 2025
1161f11
improved websocket closing and normalised data parsing
vexxvakan Jun 11, 2025
a7451da
add recoveries on panic to stop node from crashing
vexxvakan Jun 11, 2025
3dcfd45
added stream config to config.toml, increased connection security
vexxvakan Jun 11, 2025
52a2895
added circuit breaker middleware to streams
vexxvakan Jun 11, 2025
0e8e086
WIP, quick commit for backup
vexxvakan Jun 12, 2025
6b71287
clean up ws middleware
vexxvakan Jun 12, 2025
1f9574c
better websocket code structure
vexxvakan Jun 12, 2025
8c086d0
Remove accidentally committed HANDOVER.md
vexxvakan Jun 12, 2025
768016d
simplified ws implementation
vexxvakan Jun 12, 2025
0adfb22
even more simplification
vexxvakan Jun 12, 2025
8e444de
improve websocket implementation
vexxvakan Jul 6, 2025
ad0ac5e
lint and improve stream module
vexxvakan Jul 9, 2025
957d3d2
lint
vexxvakan Jul 9, 2025
dffe3e1
lint interchaintest
vexxvakan Jul 9, 2025
c92b1f7
fully implement feemarket
vexxvakan Oct 10, 2025
55d7cbd
rework Dockerfile and compose setup
vexxvakan Oct 15, 2025
dfced76
stricter lint + make file modernisation
vexxvakan Oct 15, 2025
af246d1
make use of new tool functionality, bump deps
vexxvakan Oct 15, 2025
bd708e4
lint tokenfactory and improve error handling
vexxvakan Oct 15, 2025
81317d0
lint x/mint and improve error handling, remove unused depinject leftover
vexxvakan Oct 15, 2025
dfb06db
lint x/feeshare and improve error handling
vexxvakan Oct 15, 2025
69ef25e
lint x/feepay and improve error handling
vexxvakan Oct 15, 2025
cf7afcb
lint x/feemarket, improve error handling, fix genesis denom error
vexxvakan Oct 15, 2025
80ba8b8
lint x/gov wrapper
vexxvakan Oct 15, 2025
f6e21ce
lint x/drip, improve error handling
vexxvakan Oct 15, 2025
772f7c8
lint x/cw-hooks
vexxvakan Oct 15, 2025
e623c5b
lint x/clock and improve error handling
vexxvakan Oct 15, 2025
c5851af
unify msg server error handling
vexxvakan Oct 15, 2025
dd6b07d
lint wasmbindings
vexxvakan Oct 15, 2025
d82934b
add missed tokenfactory msg server unify
vexxvakan Oct 15, 2025
4e1b5c7
lint testutil
vexxvakan Oct 15, 2025
41c8ca5
lint cmd
vexxvakan Oct 15, 2025
63ef9f8
lint and clean up app directory
vexxvakan Oct 15, 2025
890487d
improve error handling in new fee ante decorators, completes fix for …
vexxvakan Oct 15, 2025
d70ec52
remove previous upgrades, register v30 upgrade
vexxvakan Oct 15, 2025
9328f2f
fix license display on github, add NOTICE for completeness
vexxvakan Oct 15, 2025
f55c5c5
upgrade Interchaintest to official Cosmos version and implement new D…
vexxvakan Oct 15, 2025
88d2a52
clean up CI and utils
vexxvakan Oct 20, 2025
a5a06ad
bump deps
vexxvakan Oct 20, 2025
7f6dc46
fix up openapi gen
vexxvakan Oct 20, 2025
9c1c72b
clean up protos
vexxvakan Oct 20, 2025
6fbb438
tidy interchaintest
vexxvakan Oct 20, 2025
266bc56
remove deprecated x/crisis
vexxvakan Oct 20, 2025
e8a90a9
remove deprecated x/params
vexxvakan Oct 20, 2025
133dfd2
remove deprecated x/nft module
vexxvakan Oct 20, 2025
4fac71b
clean up app directory
vexxvakan Oct 20, 2025
9620e5a
regenerated protos
vexxvakan Oct 21, 2025
07f9033
rework stream module with simple block listener
vexxvakan Nov 5, 2025
a88b076
rework stream module impl again
vexxvakan Nov 5, 2025
21d10f7
improve tooling
vexxvakan Nov 5, 2025
7ddab63
clean up protos
vexxvakan Nov 5, 2025
1c7510d
improve app wiring
vexxvakan Nov 5, 2025
c3d9efb
regenerate api
vexxvakan Nov 6, 2025
0e1ad2f
updated go version in docker image
vexxvakan Nov 6, 2025
d46a0f5
move feemarket proto to juno subdir, regen api/gogo/openapi
vexxvakan Nov 6, 2025
67113d4
configure feemarket and improve e2e test
vexxvakan Nov 10, 2025
7dbbf11
cw hooks v2
vexxvakan Nov 10, 2025
6b256cd
fix up broken tokenfactory tests
vexxvakan Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 0 additions & 4 deletions .codespellrc

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/interchaintest-E2E.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ jobs:
- "ictest-tokenfactory"
- "ictest-feeshare"
- "ictest-pfm"
- "ictest-globalfee"
- "ictest-upgrade"
- "ictest-ibc"
- "ictest-unity-deploy"
Expand All @@ -74,6 +73,7 @@ jobs:
- "ictest-cwhooks"
- "ictest-clock"
- "ictest-gov-fix"
- "ictest-feemarket"
fail-fast: false

steps:
Expand Down
6 changes: 0 additions & 6 deletions .github/workflows/push-docker-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,6 @@
# cosmoscontracts/juno:X # is updated to X.Y.Z
# cosmoscontracts/juno:latest # is updated to X.Y.Z
#
# cosmoscontracts/juno-e2e:vX.Y.Z # is pushed
# cosmoscontracts/juno-e2e:X.Y.Z # is pushed
# cosmoscontracts/juno-e2e:X.Y # is updated to X.Y.Z
# cosmoscontracts/juno-e2e:X # is updated to X.Y.Z
# cosmoscontracts/juno-e2e:latest # is updated to X.Y.Z
#
# All the images above have support for linux/amd64 and linux/arm64.
#
# Due to QEMU virtualization used to build multi-platform docker images
Expand Down
134 changes: 94 additions & 40 deletions .github/workflows/release-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,59 +3,113 @@ name: Dispatch Release to juno-std
on:
release:
types: [released]
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'

env:
JUNO_REPO: "https://github.com/CosmosContracts/juno.git"
JUNO_DIR: "../dependencies/juno/"
JUNO_DIR: "proto"
COSMOS_SDK_REPO: "https://github.com/cosmos/cosmos-sdk.git"
COSMOS_SDK_REV: "v0.50.13"
COSMOS_SDK_DIR: "../dependencies/cosmos-sdk/"
COSMOS_SDK_REV: "v0.53.4"
COSMOS_SDK_DIR: "proto"
WASMD_REPO: "https://github.com/CosmWasm/wasmd.git"
WASMD_REV: "v0.54.0"
WASMD_DIR: "../dependencies/wasmd/"
WASMD_REV: "v0.54.2"
WASMD_DIR: "proto"
COMETBFT_REPO: "https://github.com/cometbft/cometbft.git"
COMETBFT_REV: "v0.38.17"
COMETBFT_DIR: "../dependencies/cometbft/"
COMETBFT_REV: "v0.38.19"
COMETBFT_DIR: "proto"
IBC_GO_REPO: "https://github.com/cosmos/ibc-go.git"
IBC_GO_REV: "v8.7.0"
IBC_GO_DIR: "../dependencies/ibc-go/"
IBC_GO_DIR: "proto"
ICS23_REPO: "https://github.com/cosmos/ics23.git"
ICS23_REV: "go/v0.11.0"
ICS23_DIR: "../dependencies/ics23/"
ICS23_DIR: "proto"

jobs:
dispatch:
runs-on: ubuntu-latest
steps:
- name: Build repo_config JSON
id: build_repo_config
env:
GITHUB_EVENT_RELEASE_TAG: ${{ github.event.release.tag_name }}
run: |
printf '[\n {"name": "juno", "repo": "%s", "rev": "%s", "dir": "%s", "exclude_mods": [], "is_main": true},\n {"name": "cosmos-sdk", "repo": "%s", "rev": "%s", "dir": "%s", "exclude_mods": ["reflection", "autocli"], "is_main": false},\n {"name": "wasmd", "repo": "%s", "rev": "%s", "dir": "%s", "exclude_mods": [], "is_main": false},\n {"name": "cometbft", "repo": "%s", "rev": "%s", "dir": "%s", "exclude_mods": [], "is_main": false},\n {"name": "ibc-go", "repo": "%s", "rev": "%s", "dir": "%s", "exclude_mods": [], "is_main": false},\n {"name": "ics23", "repo": "%s", "rev": "%s", "dir": "%s", "exclude_mods": [], "is_main": false}\n]\n' \
"$JUNO_REPO" "$GITHUB_EVENT_RELEASE_TAG" "$JUNO_DIR" \
"$COSMOS_SDK_REPO" "$COSMOS_SDK_REV" "$COSMOS_SDK_DIR" \
"$WASMD_REPO" "$WASMD_REV" "$WASMD_DIR" \
"$COMETBFT_REPO" "$COMETBFT_REV" "$COMETBFT_DIR" \
"$IBC_GO_REPO" "$IBC_GO_REV" "$IBC_GO_DIR" \
"$ICS23_REPO" "$ICS23_REV" "$ICS23_DIR" > repo_config.json
cat repo_config.json
echo "json=$(cat repo_config.json)" >> $GITHUB_OUTPUT
shell: bash

- name: Dispatch release event with repo_config
uses: peter-evans/repository-dispatch@v3
- name: Dispatch release event
uses: actions/github-script@v8
with:
token: ${{ secrets.DISPATCH_TOKEN }}
repository: CosmosContracts/juno-std
event-type: juno-release
client-payload: |
{
"is_draft": "${{ github.event.release.draft }}",
"is_prerelease": "${{ github.event.release.prerelease }}",
"release_tag": "${{ github.event.release.tag_name }}",
"repo_config": "${{ steps.build_repo_config.outputs.json }}"
github-token: ${{ secrets.DISPATCH_TOKEN }}
script: |
const { context, core, github } = require('@actions/github-script');

// Resolve target repository (owner/repo) from env
const repoStr = "CosmosContracts/juno-std";
if (!repoStr.includes('/')) {
core.setFailed(`Invalid repository: '${repoStr}'`);
return;
}
const [targetOwner, targetRepo] = "CosmosContracts/juno-std".split('/', 2);

// Determine release_tag and flags based on event type or manual inputs
const inputs = (context.payload && context.payload.inputs) || {};
const releaseTag = inputs.release_tag || '';
const isDraft = String(inputs.is_draft || '').toLowerCase() === 'true';
const isPrerelease = String(inputs.is_prerelease || '').toLowerCase() === 'true';

if (!releaseTag) {
core.setFailed('Unable to determine release_tag');
return;
}

// Build 'repos' as a structured JSON object keyed by name
const repos = {
juno: {
name: 'juno',
repo: process.env.JUNO_REPO,
rev: releaseTag,
dir: process.env.JUNO_DIR,
exclude_mods: [],
},
cosmos_sdk: {
name: 'cosmos',
repo: process.env.COSMOS_SDK_REPO,
rev: process.env.COSMOS_SDK_REV,
dir: process.env.COSMOS_SDK_DIR,
exclude_mods: ['cosmos/benchmark', 'cosmos/counter', 'cosmos/epochs', 'cosmos/protocolpool],
},
wasmd: {
name: 'wasm',
repo: process.env.WASMD_REPO,
rev: process.env.WASMD_REV,
dir: process.env.WASMD_DIR,
exclude_mods: [],
},
cometbft: {
name: 'cometbft',
repo: process.env.COMETBFT_REPO,
rev: process.env.COMETBFT_REV,
dir: process.env.COMETBFT_DIR,
exclude_mods: [],
},
ibc_go: {
name: 'ibc-go',
repo: process.env.IBC_GO_REPO,
rev: process.env.IBC_GO_REV,
dir: process.env.IBC_GO_DIR,
exclude_mods: [],
},
ics23: {
name: 'ics23',
repo: process.env.ICS23_REPO,
rev: process.env.ICS23_REV,
dir: process.env.ICS23_DIR,
exclude_mods: [],
},
};

const payload = {
is_draft: isDraft,
is_prerelease: isPrerelease,
release_tag: releaseTag,
repos,
};

core.info(`Dispatching to ${targetOwner}/${targetRepo} with payload: ${JSON.stringify(payload)}`);
await github.rest.repos.createDispatchEvent({
owner: targetOwner,
repo: targetRepo,
event_type: "juno-release",
client_payload: payload,
});
core.info('Repository dispatch event sent successfully.');
3 changes: 0 additions & 3 deletions .github/workflows/spell-check-ignore.txt

This file was deleted.

24 changes: 0 additions & 24 deletions .github/workflows/spell-check.yml

This file was deleted.

14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# build artifacts
bin

# IDEs
.vscode
.cursor
.claude

# OS
.DS_Store

# Heighliner
heighliner*
!scripts/heighliner
!scripts/heighliner

# random stuff
x/feemarket/fuzz/testdata
25 changes: 25 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,25 @@ linters:
- unused
- unparam
- revive
- containedctx
- copyloopvar
- decorder
- dupl
- dupword
- err113
- errchkjson
- errname
- errorlint
- exhaustive
- exptostd
- fatcontext
- funcorder
- ginkgolinter
settings:
staticcheck:
checks:
- "all"
- "-ST1000" # Disable required package comment
revive:
enable-all-rules: true
rules:
Expand Down Expand Up @@ -62,6 +80,8 @@ linters:
disabled: true
- name: deep-exit
disabled: true
- name: "var-naming"
disabled: true
gosec:
excludes:
- G404
Expand Down Expand Up @@ -94,6 +114,11 @@ formatters:
- prefix(github.com/cosmos/cosmos-sdk)
- prefix(github.com/CosmosContracts/juno)
custom-order: true
exclusions:
paths:
- ".*.pb.go"
- ".*.pb.gw.go"
- "./api/*.*"

issues:
max-issues-per-linter: 0
Expand Down
6 changes: 4 additions & 2 deletions .mise.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# macOS/Linux with curl (recommended):
# macOS/Linux with curl:
# curl https://mise.run | sh
#
# Using Homebrew on macOS:
Expand Down Expand Up @@ -26,4 +26,6 @@
# mise ls # List installed tools

[tools]
go = "1.23.9"
go = "1.25.2"
buf = "latest"
yq = "latest"
24 changes: 0 additions & 24 deletions .pre-commit-config.yaml

This file was deleted.

Loading
Loading