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

Buyback and Burn #1318

Open
wants to merge 200 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
6fb2be1
scaffold x/icqoracle
assafmo Dec 5, 2024
76e4c71
icqoracle proto
assafmo Dec 8, 2024
071e676
make proto-all
assafmo Dec 8, 2024
62c093e
boilerplate for x/icqoracle
assafmo Dec 10, 2024
b784b29
osmosis SpotPriceV2 icq boilerplate
assafmo Dec 11, 2024
75b8d79
update icqoracle protos
assafmo Dec 11, 2024
ccf28e3
implement icqoracle query params + sanity checks before callback logic
assafmo Dec 11, 2024
cca478f
icqoracle: implement parsing of spot price from osmosis cl pools
assafmo Dec 11, 2024
24fd9f3
update deps/osmosis to v27.0.0-no-fees
assafmo Dec 12, 2024
d5272cc
init x/auction
assafmo Dec 12, 2024
0ee0478
icqoracle: register codec for msgs
assafmo Dec 12, 2024
1cdcd14
fix update auction to use price multiplier from msg
assafmo Dec 12, 2024
c0eb659
fix error message to include token denom
assafmo Dec 12, 2024
6a3f9d8
inline stats into auction
assafmo Dec 12, 2024
3b16bda
implement cli commands
assafmo Dec 12, 2024
c2863a3
add beneficiary to auction
assafmo Dec 12, 2024
3e29cbf
implement FCFS auction type + rename a bunch of stuff
assafmo Dec 12, 2024
2040e96
rename price_stale_timeout_sec to price_expiration_timeout_sec in icq…
assafmo Dec 13, 2024
1e629dd
move common quote price calculation from auction to icqoracle
assafmo Dec 13, 2024
61710b3
refactor PlaceBid() to use auction bid handlers
assafmo Dec 13, 2024
59b2646
icqoracle: add TokenPriceForQuoteDenom to grpc query service
assafmo Dec 13, 2024
d487cbd
implement module boilerpalte for auction and icqoracle
assafmo Dec 13, 2024
d1724ef
genesis stuff
assafmo Dec 13, 2024
a740fa3
icqoracle: remove unnecessary expected keepers
assafmo Dec 17, 2024
40c4971
Simplifies ICQ oracle API endpoint paths
assafmo Dec 17, 2024
60b2cf0
s/MsgAddTokenPrice/MsgRegisterTokenPriceQuery/g
assafmo Dec 17, 2024
5aa8900
Fix icqoracle amino names
assafmo Dec 17, 2024
6913cd7
s/MsgRemoveTokenPrice/MsgRemoveTokenPriceQuery/g
assafmo Dec 17, 2024
ce9021d
fix required args for remove-token-price cli
assafmo Dec 17, 2024
e48baae
add error logging for osmosis cl pool icq submission failure
assafmo Dec 17, 2024
a0face1
simplify icq data passing
assafmo Dec 17, 2024
b701839
remove unnecessary crap
assafmo Dec 17, 2024
cc4b4b3
fix module.go
assafmo Dec 17, 2024
059505e
update token price key format to use separator
assafmo Dec 17, 2024
c0c1eb9
update auction query endpoints to remove v1beta1 versioning
assafmo Dec 17, 2024
ded8956
Refactor x/auction to support multiple token pairs, and add a unique …
assafmo Dec 17, 2024
a7e0836
Standardizes API endpoints and fix auction queries
assafmo Dec 17, 2024
97cccc7
removes unused bank keeper functions
assafmo Dec 17, 2024
b8c75ca
Adds price mapping description in GetTokenPricesByDenom
assafmo Dec 17, 2024
49ec193
update token price key format to use separator
assafmo Dec 17, 2024
6533e6f
remove unnecessary crap
assafmo Dec 17, 2024
96aea3f
wire auction in app.go
assafmo Dec 17, 2024
06eb44e
Merge branch 'scaffold-x/icqoracle' into x/auction
assafmo Dec 17, 2024
60998fd
x/auction (#1313)
assafmo Dec 17, 2024
6f79877
scaffold x/icqoracle (#1310)
assafmo Dec 17, 2024
02cd50b
x/strdburner proto
assafmo Dec 17, 2024
eaf8d76
x/strdburner initial impl
assafmo Dec 17, 2024
9ec3eb1
add burn event
assafmo Dec 17, 2024
7a539dc
strdburner: improve error logging in endblocker
assafmo Dec 17, 2024
241f69c
fix code comment
assafmo Dec 17, 2024
3976b2d
implement TotalStrdBurned and refactor EndBlocker for readability
assafmo Dec 17, 2024
eb407d1
fix ExactArgs in clis for x/auction
assafmo Dec 17, 2024
2ba4b33
emit event when bid is accepted
assafmo Dec 17, 2024
3e6a23b
Stride Burner Module (#1319)
assafmo Dec 18, 2024
429b985
fix linter ci
assafmo Dec 18, 2024
45bf5a4
fix selling token availability check in fcfs bid handler
assafmo Dec 18, 2024
3f51aa6
impl admin checks
assafmo Dec 18, 2024
4419b8c
improve bool parsing for enabled flag
assafmo Dec 18, 2024
be789ef
change icq timeout policy from retry to reject
assafmo Dec 18, 2024
4188dda
extract auction and price query validation logic into separate functions
assafmo Dec 18, 2024
3390b83
fix ci somehow
assafmo Dec 18, 2024
59a9e78
rename price_multiplier to min_price_multiplier
assafmo Dec 19, 2024
3b9150f
refactor auction and oracle store to use prefix store
assafmo Dec 19, 2024
a031eb4
Change reward distribution to auction off rewards
assafmo Dec 19, 2024
4fd74d4
make ts-tests work again after some changes have me made to stridejs'…
assafmo Dec 19, 2024
75b49d1
wire x/strdburner in app.go
assafmo Dec 22, 2024
bf2d024
Add v25 upgrade handler
assafmo Dec 23, 2024
e21786e
add osmo to default dockernet host chains
assafmo Dec 24, 2024
b988c65
fix: update token price with current block time
assafmo Dec 24, 2024
2bbebeb
update initial PriceExpirationTimeoutSec to 10min to prevent price fr…
assafmo Dec 24, 2024
8995864
Fixes bid price comparison logic in auction handler
assafmo Dec 24, 2024
31e5c97
dockernet: fix GET_VAL_ADDR() for sdk 0.50
assafmo Dec 25, 2024
d0b0352
icqoracle: add tests and fix stuff
assafmo Dec 30, 2024
9150b4b
test and fix GetTokenPriceForQuoteDenom
assafmo Dec 30, 2024
e3eb449
TestParams
assafmo Dec 30, 2024
a5b48ba
bump cosmos-sdk from v0.47.10 to v0.47.15
assafmo Jan 4, 2025
89d3f92
test SubmitICQRequest in x/icqoracle
assafmo Jan 20, 2025
303eac9
test OsmosisClPoolCallback and fix icq callback wiring in app.go
assafmo Jan 22, 2025
0c04833
test UnmarshalSpotPriceFromOsmosisClPool
assafmo Jan 22, 2025
14c819a
icqoracle: add more test cases and fix handling a pool with zero price
assafmo Jan 22, 2025
8261e10
icqoracle: test BeginBlocker and skip token price updates if query is…
assafmo Jan 23, 2025
2bf4430
icqoracle: TestBeginBlockerICQErrors
assafmo Jan 23, 2025
dec54ac
icqoracle TestBeginBlockerMultipleTokens
assafmo Jan 23, 2025
b54781e
fix tests
assafmo Jan 23, 2025
be7492d
test more edge cases of GetTokenPriceForQuoteDenom and improve error …
assafmo Jan 23, 2025
a288831
test more edge cases of GetTokenPriceForQuoteDenom
assafmo Jan 23, 2025
96e93db
auction: write a bunch of tests and improve error handling
assafmo Jan 23, 2025
a099a51
auction: test more edge cases
assafmo Jan 27, 2025
59fa3ee
Fix auction store prefix iteration
assafmo Jan 27, 2025
4fb218f
strdburner tests
assafmo Jan 27, 2025
9ad0f44
go mod tidy
assafmo Jan 27, 2025
c180e2b
Merge branch 'main' into buyback-and-burn
assafmo Jan 27, 2025
30f0d85
Merge branch 'main' into buyback-and-burn
assafmo Jan 27, 2025
6168bdd
k8s checkpoint
assafmo Jan 27, 2025
f26becb
Merge branch 'main' of github.com:Stride-Labs/stride into buyback-and…
assafmo Jan 30, 2025
581106a
Updates Osmosis to v28.0.0 and adds Gaia test setup
assafmo Jan 30, 2025
c8e79e5
Adds IBC transfer channels and test infrastructure
assafmo Jan 30, 2025
dbdaf92
remove unnecessary indirection when calling AuctionOffRewardCollector…
assafmo Feb 2, 2025
8903f4d
Update x/stakeibc/keeper/reward_allocation.go
assafmo Feb 2, 2025
9ab9176
Merge branch 'buyback-and-burn' into reappropriate-fees-to-buyback-burn
assafmo Feb 2, 2025
f132e15
normalize price feeds from Osmosis by adjusting for decimal differenc…
assafmo Feb 2, 2025
c720da3
Fix new modules for v26 store upgrades after merge
assafmo Feb 2, 2025
c8e0e1a
group icq callback registration in app.go
assafmo Feb 2, 2025
5b956a8
rm osmo from default dockernet host chains
assafmo Feb 2, 2025
5b470c2
rm ts-tests
assafmo Feb 2, 2025
98470d7
Removes query ID generation in Osmosis pool ICQ
assafmo Feb 2, 2025
823fdab
rename quoteDenom1/2 to commonQuoteDenom1/2 or something
assafmo Feb 2, 2025
210311e
refactor fcfs bid price comparison logic for clarity
assafmo Feb 2, 2025
1af8e29
Update x/auction/keeper/auction_type.go
assafmo Feb 2, 2025
07e77b0
fix tests after changes made in 98470d7d58451fd44dad78fbf4cc8b0d77e83890
assafmo Feb 2, 2025
a36b626
set block time explicitly in icqoracle tests
assafmo Feb 2, 2025
373d5c8
fix ci?
assafmo Feb 2, 2025
f16b318
Change reward distribution to auction off rewards (#1321)
assafmo Feb 3, 2025
058a06a
icqoracle InitGenesis: don't modify any values from imported genesis
assafmo Feb 3, 2025
0452533
icqoracle queries: add human readable token denoms
assafmo Feb 3, 2025
ded8830
Renames TokenPriceQueryKey to TokenPriceKey
assafmo Feb 3, 2025
ea5aaef
remove redundant error logging
assafmo Feb 3, 2025
62d02bd
v26 upgrade test (#1343)
sampocs Feb 4, 2025
845c7db
updated buyback and burn ICQ logic (#1344)
sampocs Feb 4, 2025
8d949ab
fixed comments
sampocs Feb 4, 2025
6904256
moved abci stuff to own func (#1348)
sampocs Feb 4, 2025
61318fb
Osmo pool id type (#1346)
sampocs Feb 4, 2025
4967288
updated keepers to get/set directly (#1349)
sampocs Feb 4, 2025
784c0f9
Merge remote-tracking branch 'origin/main' into buyback-and-burn
assafmo Feb 5, 2025
139a806
refactors integration tests, make some progress with icqoracle happy …
assafmo Feb 5, 2025
a606fe0
checkpoint
assafmo Feb 6, 2025
e28fb06
finally initialize osmosis client correctly
assafmo Feb 6, 2025
411e5fc
fix debugging i guess
assafmo Feb 6, 2025
12a3971
try to create osmosis pool
assafmo Feb 6, 2025
fa1838b
small refactor
assafmo Feb 6, 2025
efc4a6a
move all tests to one file to avoid duplicated init code
assafmo Feb 6, 2025
9e9ffae
Refactor IBC transfer verification in tests
assafmo Feb 6, 2025
b40988f
almost finish happy path
assafmo Feb 6, 2025
ffeb2a0
update stridejs to fix coinFromString for ibc denoms
assafmo Feb 6, 2025
9687ed6
added pool params to osmosis pool creation
assafmo Feb 6, 2025
0ba0f7a
update exit fee to 0
assafmo Feb 6, 2025
0477ff0
use rly
assafmo Feb 10, 2025
b9596b4
add restart target to makefile
assafmo Feb 10, 2025
401e989
nit
assafmo Feb 10, 2025
5269006
get osmo pool ids from tx and wait for prices to update
assafmo Feb 10, 2025
f184213
icqoracle: add gov-gated params
assafmo Feb 10, 2025
3d0da6b
simplifies strdburner keeper by removing accountKeeper dependency
assafmo Feb 10, 2025
d752552
icqoracle: add msg update params to codec and interface registry
assafmo Feb 10, 2025
bac0b5e
ensure k8s relayers start in order to make the connection and channel…
assafmo Feb 10, 2025
06928ed
update tests
assafmo Feb 10, 2025
9ce5f7b
checkpoint
assafmo Feb 10, 2025
1d2d261
added osmosis pool type to protos
sampocs Feb 11, 2025
c7be7e2
added pool type to register msg
sampocs Feb 11, 2025
b4fac7f
nit folder rename
sampocs Feb 11, 2025
097d895
renamed osmosis gamm pool generated pb type
sampocs Feb 11, 2025
9d61b29
updated bizlogic to do both gamma and CL
sampocs Feb 11, 2025
a959bf5
whoops
sampocs Feb 11, 2025
d6b8924
fixed unit tests
sampocs Feb 11, 2025
99faba8
iterated on tests a bit
sampocs Feb 11, 2025
0904f36
update stridejs to add osmosisPoolType to MsgRegisterTokenPriceQuery
assafmo Feb 11, 2025
4ec3065
authorized_quote_denom gets truncated but we can use osmo as token1
assafmo Feb 11, 2025
6626d49
add osmosis pool type to icq oracle tests
assafmo Feb 11, 2025
6c5f4ad
added concentrated liquidity position in test
assafmo Feb 11, 2025
c267d06
skip failing gamm test for now
assafmo Feb 11, 2025
b1282d4
nit oraganize imports
assafmo Feb 11, 2025
2967092
nit rename icq
assafmo Feb 11, 2025
6724154
add last response time to token price response
assafmo Feb 11, 2025
b837a19
convert to numbers to stop messing with chain encoding
assafmo Feb 11, 2025
94d6e7d
add support for gamm pool store query in icq oracle
assafmo Feb 11, 2025
fd64cca
icqoracle: checkpoint of trying to decode gamm pool from state
assafmo Feb 11, 2025
bf05b7b
continue trying to decode gamm pool from osmosis state
assafmo Feb 11, 2025
45a7115
continue trying to decode gamm pool from osmosis state
assafmo Feb 11, 2025
f306dab
node-readiness.sh: ignore stderr if the chain is running
assafmo Feb 11, 2025
e20d1ce
buyback and burn twap price (#1359)
sampocs Feb 12, 2025
c1ce60e
renamed callback
sampocs Feb 12, 2025
ae4d58d
restructured token price response query to remove duplicated fields
sampocs Feb 12, 2025
fb8e95f
updated stridejs
sampocs Feb 12, 2025
735d958
fixed build errors in test
sampocs Feb 12, 2025
fa8d596
Merge branch 'main' into buyback-and-burn
assafmo Feb 12, 2025
7c1cf64
bbb integration tests (#1354)
assafmo Feb 12, 2025
dc96a32
docs
assafmo Feb 12, 2025
f67ba9c
rename icq query
assafmo Feb 12, 2025
6385a58
update stridejs
assafmo Feb 12, 2025
9918e6f
:facepalm::facepalm::facepalm:
assafmo Feb 12, 2025
f932ed1
add base and quote denom decimals to msg register token price query test
assafmo Feb 12, 2025
aaa381b
tests
assafmo Feb 12, 2025
49c647d
test update params via gov
assafmo Feb 12, 2025
7a6ca55
add additional token price checks for base and quote denoms, decimals…
assafmo Feb 12, 2025
159dfb8
remove base_denom_decimals and quote_denom_decimals
assafmo Feb 12, 2025
3232c11
int tests: remove base_denom_decimals and quote_denom_decimals
assafmo Feb 12, 2025
e5fbe05
tests
assafmo Feb 12, 2025
dd1a4b1
removed direct dependency on google.golang.org/protobuf
assafmo Feb 13, 2025
9fc2033
test checkpoint
assafmo Feb 13, 2025
3d85045
test checkpoint
assafmo Feb 13, 2025
d426648
test checkpoint
assafmo Feb 13, 2025
4e2f545
test checkpoint
assafmo Feb 13, 2025
2cab8f4
test unwrapIBCDenom
assafmo Feb 13, 2025
4e41145
impl paging for grpc queries Auctions and TokenPrices
assafmo Feb 13, 2025
5ccaa7d
added total burned query cli
assafmo Feb 16, 2025
d17b73b
finish bbb happy path test & cleanup rest of file
assafmo Feb 16, 2025
57d4723
try to optimize bbb happy path test for time and fix a stupid bgu
assafmo Feb 16, 2025
ac19ab1
test checkpoint
assafmo Feb 17, 2025
9955f48
reordered imports
assafmo Feb 18, 2025
aed2fb8
organize imports
assafmo Feb 18, 2025
831fbe2
update deps
assafmo Feb 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ jobs:

- name: Compile stride
run: make build

- uses: actions/upload-artifact@v4
with:
name: strided ${{ matrix.targetos }} ${{ matrix.arch }}
Expand Down
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
path = deps/juno
url = https://github.com/CosmosContracts/juno.git
[submodule "deps/osmosis"]
# Commit: v20.5.0-no-fees
# Commit: v27.0.0-no-fees
path = deps/osmosis
url = https://github.com/Stride-Labs/osmosis.git
[submodule "deps/stargaze"]
Expand Down
64 changes: 64 additions & 0 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ import (
airdrop "github.com/Stride-Labs/stride/v25/x/airdrop"
airdropkeeper "github.com/Stride-Labs/stride/v25/x/airdrop/keeper"
airdroptypes "github.com/Stride-Labs/stride/v25/x/airdrop/types"
auction "github.com/Stride-Labs/stride/v25/x/auction"
auctionkeeper "github.com/Stride-Labs/stride/v25/x/auction/keeper"
auctiontypes "github.com/Stride-Labs/stride/v25/x/auction/types"
"github.com/Stride-Labs/stride/v25/x/autopilot"
autopilotkeeper "github.com/Stride-Labs/stride/v25/x/autopilot/keeper"
autopilottypes "github.com/Stride-Labs/stride/v25/x/autopilot/types"
Expand All @@ -146,6 +149,9 @@ import (
icaoracle "github.com/Stride-Labs/stride/v25/x/icaoracle"
icaoraclekeeper "github.com/Stride-Labs/stride/v25/x/icaoracle/keeper"
icaoracletypes "github.com/Stride-Labs/stride/v25/x/icaoracle/types"
icqoracle "github.com/Stride-Labs/stride/v25/x/icqoracle"
icqoraclekeeper "github.com/Stride-Labs/stride/v25/x/icqoracle/keeper"
icqoracletypes "github.com/Stride-Labs/stride/v25/x/icqoracle/types"
"github.com/Stride-Labs/stride/v25/x/interchainquery"
interchainquerykeeper "github.com/Stride-Labs/stride/v25/x/interchainquery/keeper"
interchainquerytypes "github.com/Stride-Labs/stride/v25/x/interchainquery/types"
Expand All @@ -165,6 +171,9 @@ import (
staketia "github.com/Stride-Labs/stride/v25/x/staketia"
staketiakeeper "github.com/Stride-Labs/stride/v25/x/staketia/keeper"
staketiatypes "github.com/Stride-Labs/stride/v25/x/staketia/types"
strdburner "github.com/Stride-Labs/stride/v25/x/strdburner"
strdburnerkeeper "github.com/Stride-Labs/stride/v25/x/strdburner/keeper"
strdburnertypes "github.com/Stride-Labs/stride/v25/x/strdburner/types"
)

const (
Expand Down Expand Up @@ -236,6 +245,9 @@ var (
ibchooks.AppModuleBasic{},
ibcwasm.AppModuleBasic{},
airdrop.AppModuleBasic{},
icqoracle.AppModuleBasic{},
auction.AppModuleBasic{},
strdburner.AppModuleBasic{},
)

// module account permissions
Expand All @@ -260,6 +272,10 @@ var (
stakedymtypes.ModuleName: {authtypes.Minter, authtypes.Burner},
stakedymtypes.FeeAddress: nil,
wasmtypes.ModuleName: {authtypes.Burner},
icqoracletypes.ModuleName: nil,
auctiontypes.ModuleName: nil,
// strdburner module needs burn access to burn STRD tokens that are sent to it
strdburnertypes.ModuleName: {authtypes.Burner},
}
)

Expand Down Expand Up @@ -348,6 +364,9 @@ type StrideApp struct {
StaketiaKeeper staketiakeeper.Keeper
StakedymKeeper stakedymkeeper.Keeper
AirdropKeeper airdropkeeper.Keeper
ICQOracleKeeper icqoraclekeeper.Keeper
AuctionKeeper auctionkeeper.Keeper
StrdBurnerKeeper strdburnerkeeper.Keeper

mm *module.Manager
sm *module.SimulationManager
Expand Down Expand Up @@ -404,6 +423,9 @@ func NewStrideApp(
ibchookstypes.StoreKey,
ibcwasmtypes.StoreKey,
airdroptypes.StoreKey,
icqoracletypes.StoreKey,
auctiontypes.StoreKey,
strdburnertypes.StoreKey,
)
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
Expand Down Expand Up @@ -759,6 +781,31 @@ func NewStrideApp(
app.AccountKeeper, app.BankKeeper, app.DistrKeeper, app.StakingKeeper,
)

app.ICQOracleKeeper = *icqoraclekeeper.NewKeeper(
appCodec,
keys[icqoracletypes.StoreKey],
&app.InterchainqueryKeeper,
app.TransferKeeper,
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
)
icqOracleModule := icqoracle.NewAppModule(appCodec, app.ICQOracleKeeper)

app.AuctionKeeper = *auctionkeeper.NewKeeper(
appCodec,
keys[auctiontypes.StoreKey],
app.AccountKeeper,
app.BankKeeper,
app.ICQOracleKeeper,
)
auctionModule := auction.NewAppModule(appCodec, app.AuctionKeeper)

app.StrdBurnerKeeper = *strdburnerkeeper.NewKeeper(
appCodec,
keys[strdburnertypes.StoreKey],
app.BankKeeper,
)
strdburnerModule := strdburner.NewAppModule(appCodec, app.StrdBurnerKeeper)

// Register Gov (must be registered after stakeibc)
govRouter := govtypesv1beta1.NewRouter()
govRouter.AddRoute(govtypes.RouterKey, govtypesv1beta1.ProposalHandler).
Expand All @@ -780,6 +827,10 @@ func NewStrideApp(
if err != nil {
return nil
}
err = app.InterchainqueryKeeper.SetCallbackHandler(icqoracletypes.ModuleName, app.ICQOracleKeeper.ICQCallbackHandler())
if err != nil {
return nil
}

app.EpochsKeeper = *epochsKeeper.SetHooks(
epochsmoduletypes.NewMultiEpochHooks(
Expand Down Expand Up @@ -935,6 +986,10 @@ func NewStrideApp(
stakeTiaModule,
stakeDymModule,
airdropModule,
stakeTiaModule,
icqOracleModule,
auctionModule,
strdburnerModule,
)

// During begin block slashing happens after distr.BeginBlocker so that
Expand Down Expand Up @@ -980,6 +1035,9 @@ func NewStrideApp(
ibchookstypes.ModuleName,
ibcwasmtypes.ModuleName,
airdroptypes.ModuleName,
icqoracletypes.ModuleName,
auctiontypes.ModuleName,
strdburnertypes.ModuleName,
)

app.mm.SetOrderEndBlockers(
Expand Down Expand Up @@ -1021,6 +1079,9 @@ func NewStrideApp(
ibchookstypes.ModuleName,
ibcwasmtypes.ModuleName,
airdroptypes.ModuleName,
icqoracletypes.ModuleName,
auctiontypes.ModuleName,
strdburnertypes.ModuleName,
)

// NOTE: The genutils module must occur after staking so that pools are
Expand Down Expand Up @@ -1067,6 +1128,9 @@ func NewStrideApp(
ibchookstypes.ModuleName,
ibcwasmtypes.ModuleName,
airdroptypes.ModuleName,
icqoracletypes.ModuleName,
auctiontypes.ModuleName,
strdburnertypes.ModuleName,
)

app.mm.RegisterInvariants(app.CrisisKeeper)
Expand Down
18 changes: 18 additions & 0 deletions app/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import (
v23 "github.com/Stride-Labs/stride/v25/app/upgrades/v23"
v24 "github.com/Stride-Labs/stride/v25/app/upgrades/v24"
v25 "github.com/Stride-Labs/stride/v25/app/upgrades/v25"
v26 "github.com/Stride-Labs/stride/v25/app/upgrades/v26"
v3 "github.com/Stride-Labs/stride/v25/app/upgrades/v3"
v4 "github.com/Stride-Labs/stride/v25/app/upgrades/v4"
v5 "github.com/Stride-Labs/stride/v25/app/upgrades/v5"
Expand All @@ -43,14 +44,17 @@ import (
v8 "github.com/Stride-Labs/stride/v25/app/upgrades/v8"
v9 "github.com/Stride-Labs/stride/v25/app/upgrades/v9"
airdroptypes "github.com/Stride-Labs/stride/v25/x/airdrop/types"
auctiontypes "github.com/Stride-Labs/stride/v25/x/auction/types"
autopilottypes "github.com/Stride-Labs/stride/v25/x/autopilot/types"
claimtypes "github.com/Stride-Labs/stride/v25/x/claim/types"
icacallbacktypes "github.com/Stride-Labs/stride/v25/x/icacallbacks/types"
icaoracletypes "github.com/Stride-Labs/stride/v25/x/icaoracle/types"
icqoracletypes "github.com/Stride-Labs/stride/v25/x/icqoracle/types"
recordtypes "github.com/Stride-Labs/stride/v25/x/records/types"
stakedymtypes "github.com/Stride-Labs/stride/v25/x/stakedym/types"
stakeibctypes "github.com/Stride-Labs/stride/v25/x/stakeibc/types"
staketiatypes "github.com/Stride-Labs/stride/v25/x/staketia/types"
strdburnertypes "github.com/Stride-Labs/stride/v25/x/strdburner/types"
)

func (app *StrideApp) setupUpgradeHandlers(appOpts servertypes.AppOptions) {
Expand Down Expand Up @@ -338,6 +342,16 @@ func (app *StrideApp) setupUpgradeHandlers(appOpts servertypes.AppOptions) {
),
)

// v26 upgrade handler
app.UpgradeKeeper.SetUpgradeHandler(
v26.UpgradeName,
v26.CreateUpgradeHandler(
app.mm,
app.configurator,
app.ICQOracleKeeper,
),
)

upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
if err != nil {
panic(fmt.Errorf("Failed to read upgrade info from disk: %w", err))
Expand Down Expand Up @@ -399,6 +413,10 @@ func (app *StrideApp) setupUpgradeHandlers(appOpts servertypes.AppOptions) {
storeUpgrades = &storetypes.StoreUpgrades{
Added: []string{ibcwasmtypes.ModuleName, airdroptypes.ModuleName},
}
case "v26":
storeUpgrades = &storetypes.StoreUpgrades{
Added: []string{icqoracletypes.ModuleName, strdburnertypes.ModuleName, auctiontypes.ModuleName},
}
}

if storeUpgrades != nil {
Expand Down
41 changes: 41 additions & 0 deletions app/upgrades/v26/upgrades.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package v26

import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"

icqoraclekeeper "github.com/Stride-Labs/stride/v25/x/icqoracle/keeper"
icqoracletypes "github.com/Stride-Labs/stride/v25/x/icqoracle/types"
)

var (
UpgradeName = "v26"

OsmosisChainId = "osmosis-1"
OsmosisConnectionId = "connection-2"

ICQOracleUpdateIntervalSec = uint64(5 * 60) // 5 min
ICQOraclePriceExpirationTimeoutSec = uint64(15 * 60) // 15 min
)

// CreateUpgradeHandler creates an SDK upgrade handler for v23
func CreateUpgradeHandler(
mm *module.Manager,
configurator module.Configurator,
icqoracleKeeper icqoraclekeeper.Keeper,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
ctx.Logger().Info("Starting upgrade v26...")

icqoracleKeeper.SetParams(ctx, icqoracletypes.Params{
OsmosisChainId: OsmosisChainId,
OsmosisConnectionId: OsmosisConnectionId,
UpdateIntervalSec: ICQOracleUpdateIntervalSec,
PriceExpirationTimeoutSec: ICQOraclePriceExpirationTimeoutSec,
})

ctx.Logger().Info("Running module migrations...")
return mm.RunMigrations(ctx, configurator, vm)
}
}
34 changes: 34 additions & 0 deletions app/upgrades/v26/upgrades_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package v26_test

import (
"testing"

"github.com/stretchr/testify/suite"

"github.com/Stride-Labs/stride/v25/app/apptesting"
v26 "github.com/Stride-Labs/stride/v25/app/upgrades/v26"
)

type UpgradeTestSuite struct {
apptesting.AppTestHelper
}

func (s *UpgradeTestSuite) SetupTest() {
s.Setup()
}

func TestKeeperTestSuite(t *testing.T) {
suite.Run(t, new(UpgradeTestSuite))
}

func (s *UpgradeTestSuite) TestUpgrade() {
upgradeHeight := int64(4)

s.ConfirmUpgradeSucceededs(v26.UpgradeName, upgradeHeight)

params := s.App.ICQOracleKeeper.GetParams(s.Ctx)
s.Require().Equal(v26.OsmosisChainId, params.OsmosisChainId, "Osmosis chain ID")
s.Require().Equal(v26.OsmosisConnectionId, params.OsmosisConnectionId, "Osmosis connection ID")
s.Require().Equal(v26.ICQOracleUpdateIntervalSec, params.UpdateIntervalSec, "Update interval")
s.Require().Equal(v26.ICQOraclePriceExpirationTimeoutSec, params.PriceExpirationTimeoutSec, "Timeout")
}
2 changes: 1 addition & 1 deletion dockernet/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ GET_VAL_ADDR() {
val_index=$2

MAIN_CMD=$(GET_VAR_VALUE ${chain}_MAIN_CMD)
$MAIN_CMD q staking validators | grep ${chain}_${val_index} -A 6 | grep operator | awk '{print $2}'
$MAIN_CMD q staking validators 2>&1 | grep ${chain}_${val_index} -A 6 | grep operator | awk '{print $2}'
}

GET_ICA_ADDR() {
Expand Down
18 changes: 9 additions & 9 deletions dockernet/dockerfiles/Dockerfile.osmo
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
FROM golang:1.20-alpine3.16 AS builder
FROM golang:1.23-alpine3.21 AS builder

WORKDIR /opt/

RUN set -eux; apk add --no-cache ca-certificates build-base; apk add git linux-headers

ENV COMMIT_HASH=v20.5.0-no-fees
ENV COMMIT_HASH=v27.0.0-no-fees

RUN git clone https://github.com/Stride-Labs/osmosis.git \
&& cd osmosis \
Expand All @@ -13,16 +13,16 @@ RUN git clone https://github.com/Stride-Labs/osmosis.git \
WORKDIR /opt/osmosis

# Cosmwasm - download correct libwasmvm version and verify checksum
# Note: checksum not available for v1.2.3, otherwise command should be
# wget https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/checksums.txt -O /tmp/checksums.txt
# && sha256sum /lib/libwasmvm_muslc.a | grep $(cat /tmp/checksums.txt | grep $(uname -m) | cut -d ' ' -f 1)
RUN WASMVM_VERSION=v1.2.3 \
&& wget https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/libwasmvm_muslc.$(uname -m).a \
-O /lib/libwasmvm_muslc.a
RUN ARCH=$(uname -m) && WASMVM_VERSION=$(go list -m github.com/CosmWasm/wasmvm/v2 | sed 's/.* //') && \
wget https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/libwasmvm_muslc.$ARCH.a \
-O /lib/libwasmvm_muslc.$ARCH.a && \
# verify checksum
wget https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/checksums.txt -O /tmp/checksums.txt && \
sha256sum /lib/libwasmvm_muslc.$ARCH.a | grep $(cat /tmp/checksums.txt | grep libwasmvm_muslc.$ARCH | cut -d ' ' -f 1)

RUN BUILD_TAGS=muslc LINK_STATICALLY=true make build

FROM alpine:3.16
FROM alpine:3.21
COPY --from=builder /opt/osmosis/build/osmosisd /usr/local/bin/
RUN apk add bash vim \
&& addgroup -g 1000 osmosis \
Expand Down
1 change: 0 additions & 1 deletion dockernet/ts-tests/.npmrc

This file was deleted.

8 changes: 0 additions & 8 deletions dockernet/ts-tests/.prettierrc.json

This file was deleted.

33 changes: 0 additions & 33 deletions dockernet/ts-tests/package.json

This file was deleted.

Loading
Loading