Skip to content

Commit

Permalink
feat(vstorage)!: separate x/vstorage from x/swingset module
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelfig committed Jun 5, 2022
1 parent 2e82ef9 commit cf7b993
Show file tree
Hide file tree
Showing 45 changed files with 3,957 additions and 2,980 deletions.
21 changes: 15 additions & 6 deletions golang/cosmos/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ import (
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vbank"
vbanktypes "github.com/Agoric/agoric-sdk/golang/cosmos/x/vbank/types"
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vibc"
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vstorage"

// unnamed import of statik for swagger UI support
_ "github.com/cosmos/cosmos-sdk/client/docs/statik"
Expand Down Expand Up @@ -153,6 +154,7 @@ var (
vesting.AppModuleBasic{},
router.AppModuleBasic{},
swingset.AppModuleBasic{},
vstorage.AppModuleBasic{},
vibc.AppModuleBasic{},
vbank.AppModuleBasic{},
lien.AppModuleBasic{},
Expand Down Expand Up @@ -218,6 +220,7 @@ type GaiaApp struct { // nolint: golint
RouterKeeper routerkeeper.Keeper

SwingSetKeeper swingset.Keeper
VstorageKeeper vstorage.Keeper
VibcKeeper vibc.Keeper
VbankKeeper vbank.Keeper
LienKeeper lien.Keeper
Expand Down Expand Up @@ -287,7 +290,7 @@ func NewAgoricApp(
govtypes.StoreKey, paramstypes.StoreKey, ibchost.StoreKey, upgradetypes.StoreKey,
evidencetypes.StoreKey, ibctransfertypes.StoreKey,
capabilitytypes.StoreKey, feegrant.StoreKey, authzkeeper.StoreKey, routertypes.StoreKey,
swingset.StoreKey, vibc.StoreKey, vbank.StoreKey, lien.StoreKey,
swingset.StoreKey, vstorage.StoreKey, vibc.StoreKey, vbank.StoreKey, lien.StoreKey,
)
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
Expand Down Expand Up @@ -420,14 +423,18 @@ func NewAgoricApp(
return sendToController(true, str)
}

app.VstorageKeeper = vstorage.NewKeeper(
keys[vstorage.StoreKey],
)
vm.RegisterPortHandler("vstorage", vstorage.NewStorageHandler(app.VstorageKeeper))

// The SwingSetKeeper is the Keeper from the SwingSet module
app.SwingSetKeeper = swingset.NewKeeper(
appCodec, keys[swingset.StoreKey], app.GetSubspace(swingset.ModuleName),
app.AccountKeeper, app.BankKeeper,
vbanktypes.ReservePoolName,
app.VstorageKeeper, vbanktypes.ReservePoolName,
callToController,
)
vm.RegisterPortHandler("storage", swingset.NewStorageHandler(app.SwingSetKeeper))

app.VibcKeeper = vibc.NewKeeper(
appCodec, keys[vibc.StoreKey],
Expand Down Expand Up @@ -540,6 +547,7 @@ func NewAgoricApp(
transferModule,
routerModule,
swingset.NewAppModule(app.SwingSetKeeper),
vstorage.NewAppModule(app.VstorageKeeper),
vibcModule,
vbankModule,
lienModule,
Expand All @@ -563,10 +571,10 @@ func NewAgoricApp(
ibchost.ModuleName,
routertypes.ModuleName,
swingset.ModuleName,
ibctransfertypes.ModuleName, vibc.ModuleName, vbank.ModuleName, lien.ModuleName,
ibctransfertypes.ModuleName, vstorage.ModuleName, vibc.ModuleName, vbank.ModuleName, lien.ModuleName,
)
app.mm.SetOrderEndBlockers(
ibctransfertypes.ModuleName, vibc.ModuleName, vbank.ModuleName, lien.ModuleName,
ibctransfertypes.ModuleName, vstorage.ModuleName, vibc.ModuleName, vbank.ModuleName, lien.ModuleName,
crisistypes.ModuleName,
govtypes.ModuleName,
stakingtypes.ModuleName,
Expand Down Expand Up @@ -602,6 +610,7 @@ func NewAgoricApp(
feegrant.ModuleName,
ibctransfertypes.ModuleName,
routertypes.ModuleName,
vstorage.ModuleName,
vbank.ModuleName,
vibc.ModuleName,
swingset.ModuleName,
Expand Down Expand Up @@ -704,7 +713,7 @@ func (app *GaiaApp) MustInitController(ctx sdk.Context) {
Type: "AG_COSMOS_INIT",
ChainID: ctx.ChainID(),
Params: app.SwingSetKeeper.GetParams(ctx),
StoragePort: vm.GetPort("storage"),
StoragePort: vm.GetPort("vstorage"),
SupplyCoins: sdk.NewCoins(app.BankKeeper.GetSupply(ctx, "urun")),
VibcPort: app.vibcPort,
VbankPort: app.vbankPort,
Expand Down
11 changes: 0 additions & 11 deletions golang/cosmos/proto/agoric/swingset/genesis.proto
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,5 @@ option go_package = "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/types
message GenesisState {
option (gogoproto.equal) = false;

repeated StorageEntry storage = 1 [
(gogoproto.jsontag) = "storage",
(gogoproto.moretags) = "yaml:\"storage\""
];

Params params = 2 [(gogoproto.nullable) = false];
}

// A storage entry.
message StorageEntry {
string key = 1;
string value = 2;
}
49 changes: 0 additions & 49 deletions golang/cosmos/proto/agoric/swingset/query.proto
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ syntax = "proto3";
package agoric.swingset;

import "gogoproto/gogo.proto";
import "agoric/swingset/storage.proto";
import "agoric/swingset/swingset.proto";
import "cosmos/base/query/v1beta1/pagination.proto";
import "google/api/annotations.proto";

option go_package = "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/types";
Expand All @@ -25,17 +23,6 @@ service Query {
rpc Mailbox(QueryMailboxRequest) returns (QueryMailboxResponse) {
option (google.api.http).get = "/agoric/swingset/mailbox/{peer}";
}

// Return an arbitrary storage datum.
rpc Storage(QueryStorageRequest) returns (QueryStorageResponse) {
option (google.api.http).get = "/agoric/swingset/storage/data/{path}";
}

// Return the subkeys of a given storage path.
rpc Keys(QueryKeysRequest)
returns (QueryKeysResponse) {
option (google.api.http).get = "/agoric/swingset/storage/keys/{path}";
}
}

// QueryParamsRequest is the request type for the Query/Params RPC method.
Expand Down Expand Up @@ -77,39 +64,3 @@ message QueryMailboxResponse {
(gogoproto.moretags) = "yaml:\"value\""
];
}

// QueryStorageRequest is the storage query.
message QueryStorageRequest {
repeated string path = 1 [
(gogoproto.jsontag) = "path",
(gogoproto.moretags) = "yaml:\"path\""
];
}

// QueryStorageResponse is the storage response.
message QueryStorageResponse {
string value = 1 [
(gogoproto.jsontag) = "value",
(gogoproto.moretags) = "yaml:\"value\""
];
}

// QueryKeysRequest is the keys query.
message QueryKeysRequest {
repeated string path = 1 [
(gogoproto.jsontag) = "path",
(gogoproto.moretags) = "yaml:\"path\""
];

cosmos.base.query.v1beta1.PageRequest pagination = 2;
}

// QueryKeysResponse is the keys response.
message QueryKeysResponse {
repeated string keys = 1 [
(gogoproto.jsontag) = "keys",
(gogoproto.moretags) = "yaml:\"keys\""
];

cosmos.base.query.v1beta1.PageResponse pagination = 2;
}
46 changes: 0 additions & 46 deletions golang/cosmos/proto/agoric/swingset/storage.proto

This file was deleted.

20 changes: 20 additions & 0 deletions golang/cosmos/proto/agoric/swingset/swingset.proto
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,23 @@ message StringBeans {
(gogoproto.nullable) = false
];
}

// Egress is the format for a swingset egress.
message Egress {
option (gogoproto.equal) = false;

string nickname = 1 [
(gogoproto.jsontag) = "nickname",
(gogoproto.moretags) = "yaml:\"nickname\""
];
bytes peer = 2 [
(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress",
(gogoproto.jsontag) = "peer",
(gogoproto.moretags) = "yaml:\"peer\""
];
repeated string power_flags = 3 [
(gogoproto.customname) = "PowerFlags",
(gogoproto.jsontag) = "powerFlags",
(gogoproto.moretags) = "yaml:\"powerFlags\""
];
}
22 changes: 22 additions & 0 deletions golang/cosmos/proto/agoric/vstorage/genesis.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
syntax = "proto3";
package agoric.vstorage;

import "gogoproto/gogo.proto";

option go_package = "github.com/Agoric/agoric-sdk/golang/cosmos/x/vstorage/types";

// The initial or exported state.
message GenesisState {
option (gogoproto.equal) = false;

repeated DataEntry data = 1 [
(gogoproto.jsontag) = "data",
(gogoproto.moretags) = "yaml:\"data\""
];
}

// A vstorage entry.
message DataEntry {
string path = 1;
string value = 2;
}
57 changes: 57 additions & 0 deletions golang/cosmos/proto/agoric/vstorage/query.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
syntax = "proto3";
package agoric.vstorage;

import "gogoproto/gogo.proto";
import "cosmos/base/query/v1beta1/pagination.proto";
import "google/api/annotations.proto";

option go_package = "github.com/Agoric/agoric-sdk/golang/cosmos/x/vstorage/types";

service Query {
// Return an arbitrary vstorage datum.
rpc Data(QueryDataRequest) returns (QueryDataResponse) {
option (google.api.http).get = "/agoric/vstorage/data/{path}";
}

// Return the keys of a given vstorage path.
rpc Keys(QueryKeysRequest)
returns (QueryKeysResponse) {
option (google.api.http).get = "/agoric/vstorage/keys/{path}";
}
}

// QueryDataRequest is the vstorage path data query.
message QueryDataRequest {
repeated string path = 1 [
(gogoproto.jsontag) = "path",
(gogoproto.moretags) = "yaml:\"path\""
];
}

// QueryDataResponse is the vstorage path data response.
message QueryDataResponse {
string value = 1 [
(gogoproto.jsontag) = "value",
(gogoproto.moretags) = "yaml:\"value\""
];
}

// QueryKeysRequest is the vstorage path keys query.
message QueryKeysRequest {
repeated string path = 1 [
(gogoproto.jsontag) = "path",
(gogoproto.moretags) = "yaml:\"path\""
];

cosmos.base.query.v1beta1.PageRequest pagination = 2;
}

// QueryKeysResponse is the vstorage path keys response.
message QueryKeysResponse {
repeated string keys = 1 [
(gogoproto.jsontag) = "keys",
(gogoproto.moretags) = "yaml:\"keys\""
];

cosmos.base.query.v1beta1.PageResponse pagination = 2;
}
26 changes: 26 additions & 0 deletions golang/cosmos/proto/agoric/vstorage/vstorage.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
syntax = "proto3";
package agoric.vstorage;

import "gogoproto/gogo.proto";

option go_package = "github.com/Agoric/agoric-sdk/golang/cosmos/x/vstorage/types";

// Data is the vstorage node data.
message Data {
option (gogoproto.equal) = false;

string value = 1 [
(gogoproto.jsontag) = "value",
(gogoproto.moretags) = "yaml:\"value\""
];
}

// Keys are the vstorage node subkeys.
message Keys {
option (gogoproto.equal) = false;

repeated string keys = 1 [
(gogoproto.jsontag) = "keys",
(gogoproto.moretags) = "yaml:\"keys\""
];
}
2 changes: 1 addition & 1 deletion golang/cosmos/x/swingset/abci.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock, keeper Keeper) erro

action := &beginBlockAction{
Type: "BEGIN_BLOCK",
StoragePort: vm.GetPort("storage"),
StoragePort: vm.GetPort("vstorage"),
BlockHeight: ctx.BlockHeight(),
BlockTime: ctx.BlockTime().Unix(),
ChainID: ctx.ChainID(),
Expand Down
3 changes: 0 additions & 3 deletions golang/cosmos/x/swingset/alias.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,7 @@ var (
NewQuerier = keeper.NewQuerier
NewMsgDeliverInbound = types.NewMsgDeliverInbound
NewMsgProvision = types.NewMsgProvision
NewStorage = types.NewStorage
NewMailbox = types.NewMailbox
NewKeys = types.NewKeys
ModuleCdc = types.ModuleCdc
RegisterCodec = types.RegisterCodec
)
Expand All @@ -29,5 +27,4 @@ type (
MsgDeliverInbound = types.MsgDeliverInbound
MsgProvision = types.MsgProvision
Params = types.Params
Storage = types.Storage
)

0 comments on commit cf7b993

Please sign in to comment.