Skip to content

Commit 4552edc

Browse files
committed
feat!: implement bme
Signed-off-by: Artur Troian <troian@users.noreply.github.com>
1 parent b798cef commit 4552edc

File tree

101 files changed

+7531
-2024
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+7531
-2024
lines changed

.env

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
GO111MODULE=on
2+
CGO_ENABLED=1
23

34
KIND_VERSION=0.11.1
45
ROOT_DIR=${AKASH_ROOT}
@@ -13,3 +14,5 @@ AKASH_DEVCACHE_NODE_MODULES=${AKASH_DEVCACHE}
1314
AKASH_DEVCACHE_NODE_BIN=${AKASH_DEVCACHE_NODE_MODULES}/node_modules/.bin
1415
AKASH_RUN=${AKASH_DEVCACHE}/run
1516
AKASH_RUN_BIN=${AKASH_RUN}/bin
17+
18+
CARGO_TARGET_DIR=${AKASH_DEVCACHE_BASE}/cosmwasm

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,10 @@ coverage.txt
3434
/.editorconfig
3535

3636
dev.env
37+
38+
*.test
39+
40+
# Added by cargo
41+
42+
/target
43+
/Cargo.lock

.mockery.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ template: testify
55
template-data:
66
unroll-variadic: true
77
packages:
8-
pkg.akt.dev/node/testutil/cosmos:
8+
pkg.akt.dev/node/v2/testutil/cosmos:
99
config:
1010
dir: testutil/cosmos/mocks
1111
interfaces:
1212
AuthzKeeper: {}
13+
AccountKeeper: {}
1314
BankKeeper: {}
1415
TakeKeeper: {}

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ GORELEASER_LDFLAGS := $(ldflags)
7171
ldflags += -linkmode=external
7272

7373
ifeq (static-link,$(findstring static-link,$(BUILD_OPTIONS)))
74-
ldflags += -extldflags "-L$(AKASH_DEVCACHE_LIB) -lm -Wl,-z,muldefs -static"
74+
ldflags += -extldflags "-L$(AKASH_DEVCACHE_LIB) -lm -Wl,-z,muldefs"
7575
else
7676
ldflags += -extldflags "-L$(AKASH_DEVCACHE_LIB)"
7777
endif

_run/common.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ node-init-finalize:
124124

125125
.PHONY: node-run
126126
node-run:
127-
$(AKASH) start --minimum-gas-prices=$(AKASH_GAS_PRICES)
127+
$(AKASH) start --trace=true
128128

129129
.PHONY: node-status
130130
node-status:

app/app.go

Lines changed: 107 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"cosmossdk.io/log"
2525
storetypes "cosmossdk.io/store/types"
2626
evidencetypes "cosmossdk.io/x/evidence/types"
27-
"cosmossdk.io/x/feegrant"
2827
upgradetypes "cosmossdk.io/x/upgrade/types"
2928
"github.com/CosmWasm/wasmd/x/wasm"
3029
wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper"
@@ -47,33 +46,21 @@ import (
4746
"github.com/cosmos/cosmos-sdk/x/auth/ante"
4847
authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
4948
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
50-
vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"
51-
"github.com/cosmos/cosmos-sdk/x/authz"
52-
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
53-
consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types"
5449
distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
55-
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
5650
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
57-
minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
5851
paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
5952
slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
6053
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
6154
transfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"
6255
ibchost "github.com/cosmos/ibc-go/v10/modules/core/exported"
63-
ibctm "github.com/cosmos/ibc-go/v10/modules/light-clients/07-tendermint"
64-
6556
cflags "pkg.akt.dev/go/cli/flags"
66-
audittypes "pkg.akt.dev/go/node/audit/v1"
67-
certtypes "pkg.akt.dev/go/node/cert/v1"
68-
deploymenttypes "pkg.akt.dev/go/node/deployment/v1"
69-
emodule "pkg.akt.dev/go/node/escrow/module"
70-
markettypes "pkg.akt.dev/go/node/market/v1"
71-
providertypes "pkg.akt.dev/go/node/provider/v1beta4"
72-
taketypes "pkg.akt.dev/go/node/take/v1"
7357
"pkg.akt.dev/go/sdkutil"
7458

7559
apptypes "pkg.akt.dev/node/v2/app/types"
7660
utypes "pkg.akt.dev/node/v2/upgrades/types"
61+
"pkg.akt.dev/node/v2/util/partialord"
62+
"pkg.akt.dev/node/v2/x/bme"
63+
"pkg.akt.dev/node/v2/x/escrow"
7764
"pkg.akt.dev/node/v2/x/oracle"
7865
awasm "pkg.akt.dev/node/v2/x/wasm"
7966
// unnamed import of statik for swagger UI support
@@ -226,7 +213,8 @@ func NewApp(
226213

227214
// Tell the app's module manager how to set the order of BeginBlockers, which are run at the beginning of every block.
228215
app.MM.SetOrderBeginBlockers(orderBeginBlockers(app.MM.ModuleNames())...)
229-
app.MM.SetOrderInitGenesis(OrderInitGenesis(app.MM.ModuleNames())...)
216+
app.MM.SetOrderEndBlockers(orderEndBlockers(app.MM.ModuleNames())...)
217+
app.MM.SetOrderInitGenesis(orderInitGenesis(app.MM.ModuleNames())...)
230218

231219
app.Configurator = module.NewConfigurator(app.AppCodec(), app.MsgServiceRouter(), app.GRPCQueryRouter())
232220
err = app.MM.RegisterServices(app.Configurator)
@@ -294,75 +282,110 @@ func NewApp(
294282
}
295283

296284
// orderBeginBlockers returns the order of BeginBlockers, by module name.
297-
func orderBeginBlockers(_ []string) []string {
298-
return []string{
299-
upgradetypes.ModuleName,
300-
banktypes.ModuleName,
301-
paramstypes.ModuleName,
302-
deploymenttypes.ModuleName,
303-
govtypes.ModuleName,
304-
providertypes.ModuleName,
305-
certtypes.ModuleName,
306-
markettypes.ModuleName,
307-
audittypes.ModuleName,
308-
genutiltypes.ModuleName,
309-
vestingtypes.ModuleName,
310-
authtypes.ModuleName,
311-
authz.ModuleName,
312-
taketypes.ModuleName,
313-
emodule.ModuleName,
314-
minttypes.ModuleName,
315-
distrtypes.ModuleName,
316-
slashingtypes.ModuleName,
317-
evidencetypes.ModuleName,
318-
stakingtypes.ModuleName,
319-
transfertypes.ModuleName,
320-
consensusparamtypes.ModuleName,
321-
ibctm.ModuleName,
322-
ibchost.ModuleName,
323-
feegrant.ModuleName,
324-
epochstypes.ModuleName,
325-
oracle.ModuleName,
326-
// akash wasm module must be prior wasm
327-
awasm.ModuleName,
328-
// wasm after ibc transfer
329-
wasmtypes.ModuleName,
330-
}
285+
// the original order for reference
286+
//
287+
// upgradetypes.ModuleName,
288+
// banktypes.ModuleName,
289+
// paramstypes.ModuleName,
290+
// deploymenttypes.ModuleName,
291+
// govtypes.ModuleName,
292+
// providertypes.ModuleName,
293+
// certtypes.ModuleName,
294+
// markettypes.ModuleName,
295+
// audittypes.ModuleName,
296+
// genutiltypes.ModuleName,
297+
// vestingtypes.ModuleName,
298+
// authtypes.ModuleName,
299+
// authz.ModuleName,
300+
// taketypes.ModuleName,
301+
// emodule.ModuleName,
302+
// minttypes.ModuleName,
303+
// distrtypes.ModuleName,
304+
// slashingtypes.ModuleName,
305+
// evidencetypes.ModuleName,
306+
// stakingtypes.ModuleName,
307+
// transfertypes.ModuleName,
308+
// consensusparamtypes.ModuleName,
309+
// ibctm.ModuleName,
310+
// ibchost.ModuleName,
311+
// feegrant.ModuleName,
312+
// epochstypes.ModuleName,
313+
// oracle.ModuleName,
314+
// bme.ModuleName,
315+
// // akash wasm module must be prior wasm
316+
// awasm.ModuleName,
317+
// // wasm after ibc transfer
318+
// wasmtypes.ModuleName,
319+
func orderBeginBlockers(modules []string) []string {
320+
ord := partialord.NewPartialOrdering(modules)
321+
ord.FirstElements(epochstypes.ModuleName)
322+
323+
// Staking ordering
324+
// TODO: Perhaps this can be relaxed, left to future work to analyze.
325+
ord.Sequence(distrtypes.ModuleName, slashingtypes.ModuleName, evidencetypes.ModuleName, stakingtypes.ModuleName)
326+
// TODO: This can almost certainly be un-constrained, but we keep the constraint to match prior functionality.
327+
// IBChost came after staking, before superfluid.
328+
// TODO: Come back and delete this line after testing the base change.
329+
ord.Sequence(stakingtypes.ModuleName, ibchost.ModuleName)
330+
331+
// oracle must come up prior bme
332+
ord.Before(oracle.ModuleName, bme.ModuleName)
333+
334+
// escrow must come up after bme
335+
ord.Before(bme.ModuleName, escrow.ModuleName)
336+
337+
// akash wasm module must be prior wasm
338+
ord.Before(awasm.ModuleName, wasmtypes.ModuleName)
339+
// wasm after ibc transfer
340+
ord.Before(transfertypes.ModuleName, wasmtypes.ModuleName)
341+
342+
// We leave downtime-detector un-constrained.
343+
// every remaining module's begin block is a no-op.
344+
345+
return ord.TotalOrdering()
331346
}
332347

333-
// OrderEndBlockers returns EndBlockers (crisis, govtypes, staking) with no relative order.
334-
func OrderEndBlockers(_ []string) []string {
335-
return []string{
336-
govtypes.ModuleName,
337-
stakingtypes.ModuleName,
338-
upgradetypes.ModuleName,
339-
banktypes.ModuleName,
340-
paramstypes.ModuleName,
341-
deploymenttypes.ModuleName,
342-
providertypes.ModuleName,
343-
certtypes.ModuleName,
344-
markettypes.ModuleName,
345-
audittypes.ModuleName,
346-
genutiltypes.ModuleName,
347-
vestingtypes.ModuleName,
348-
authtypes.ModuleName,
349-
authz.ModuleName,
350-
taketypes.ModuleName,
351-
emodule.ModuleName,
352-
minttypes.ModuleName,
353-
distrtypes.ModuleName,
354-
slashingtypes.ModuleName,
355-
evidencetypes.ModuleName,
356-
transfertypes.ModuleName,
357-
ibchost.ModuleName,
358-
feegrant.ModuleName,
359-
// akash wasm module must be prior wasm
360-
awasm.ModuleName,
361-
// wasm after ibc transfer
362-
wasmtypes.ModuleName,
363-
oracle.ModuleName,
364-
epochstypes.ModuleName,
365-
}
348+
// orderEndBlockers returns EndBlockers (crisis, govtypes, staking) with no relative order.
349+
// original ordering for reference
350+
//
351+
// govtypes.ModuleName,
352+
// stakingtypes.ModuleName,
353+
// upgradetypes.ModuleName,
354+
// banktypes.ModuleName,
355+
// paramstypes.ModuleName,
356+
// deploymenttypes.ModuleName,
357+
// providertypes.ModuleName,
358+
// certtypes.ModuleName,
359+
// markettypes.ModuleName,
360+
// audittypes.ModuleName,
361+
// genutiltypes.ModuleName,
362+
// vestingtypes.ModuleName,
363+
// authtypes.ModuleName,
364+
// authz.ModuleName,
365+
// taketypes.ModuleName,
366+
// emodule.ModuleName,
367+
// minttypes.ModuleName,
368+
// distrtypes.ModuleName,
369+
// slashingtypes.ModuleName,
370+
// evidencetypes.ModuleName,
371+
// transfertypes.ModuleName,
372+
// ibchost.ModuleName,
373+
// feegrant.ModuleName,
374+
// // akash wasm module must be prior wasm
375+
// awasm.ModuleName,
376+
// // wasm after ibc transfer
377+
// wasmtypes.ModuleName,
378+
// oracle.ModuleName,
379+
// bme.ModuleName,
380+
// epochstypes.ModuleName,
381+
func orderEndBlockers(modules []string) []string {
382+
ord := partialord.NewPartialOrdering(modules)
383+
384+
// Staking must be after gov.
385+
ord.FirstElements(govtypes.ModuleName, stakingtypes.ModuleName)
386+
//ord.Before(govtypes.ModuleName, )
387+
388+
return ord.TotalOrdering()
366389
}
367390

368391
func getGenesisTime(appOpts servertypes.AppOptions, homePath string) time.Time { // nolint: unused

app/app_configure.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,24 +23,23 @@ import (
2323
ibchost "github.com/cosmos/ibc-go/v10/modules/core/exported"
2424

2525
audittypes "pkg.akt.dev/go/node/audit/v1"
26-
taketypes "pkg.akt.dev/go/node/take/v1"
2726

2827
"pkg.akt.dev/node/v2/x/audit"
28+
"pkg.akt.dev/node/v2/x/bme"
2929
"pkg.akt.dev/node/v2/x/cert"
3030
"pkg.akt.dev/node/v2/x/deployment"
3131
"pkg.akt.dev/node/v2/x/epochs"
3232
"pkg.akt.dev/node/v2/x/escrow"
3333
"pkg.akt.dev/node/v2/x/market"
3434
"pkg.akt.dev/node/v2/x/oracle"
3535
"pkg.akt.dev/node/v2/x/provider"
36-
"pkg.akt.dev/node/v2/x/take"
3736
awasm "pkg.akt.dev/node/v2/x/wasm"
3837
)
3938

4039
func akashModuleBasics() []module.AppModuleBasic {
4140
return []module.AppModuleBasic{
42-
take.AppModuleBasic{},
4341
epochs.AppModuleBasic{},
42+
bme.AppModuleBasic{},
4443
escrow.AppModuleBasic{},
4544
deployment.AppModuleBasic{},
4645
market.AppModuleBasic{},
@@ -58,7 +57,7 @@ func akashModuleBasics() []module.AppModuleBasic {
5857
// NOTE: Capability module must occur first so that it can initialize any capabilities
5958
// so that other modules that want to create or claim capabilities afterwards in InitChain
6059
// can do so safely.
61-
func OrderInitGenesis(_ []string) []string {
60+
func orderInitGenesis(_ []string) []string {
6261
return []string{
6362
authtypes.ModuleName,
6463
authz.ModuleName,
@@ -79,13 +78,14 @@ func OrderInitGenesis(_ []string) []string {
7978
consensustypes.ModuleName,
8079
feegrant.ModuleName,
8180
cert.ModuleName,
82-
taketypes.ModuleName,
8381
escrow.ModuleName,
8482
deployment.ModuleName,
8583
provider.ModuleName,
8684
market.ModuleName,
8785
genutiltypes.ModuleName,
8886
oracle.ModuleName,
87+
epochs.ModuleName,
88+
bme.ModuleName,
8989
awasm.ModuleName,
9090
wasmtypes.ModuleName,
9191
}

app/mac.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@ import (
88
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
99
ibctransfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"
1010
emodule "pkg.akt.dev/go/node/escrow/module"
11+
12+
bmemodule "pkg.akt.dev/node/v2/x/bme"
1113
)
1214

1315
func ModuleAccountPerms() map[string][]string {
1416
return map[string][]string{
1517
authtypes.FeeCollectorName: nil,
18+
bmemodule.ModuleName: {authtypes.Burner, authtypes.Minter},
1619
emodule.ModuleName: nil,
1720
distrtypes.ModuleName: nil,
1821
minttypes.ModuleName: {authtypes.Minter},

0 commit comments

Comments
 (0)