Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
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
850 changes: 850 additions & 0 deletions accounts1.json

Large diffs are not rendered by default.

106 changes: 88 additions & 18 deletions app/app.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
package app

import (
"io"
"os"
"path/filepath"
"time"

"github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
Expand All @@ -16,6 +11,7 @@ import (
"github.com/cosmos/cosmos-sdk/server/config"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
"github.com/cosmos/cosmos-sdk/simapp"
store "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
"github.com/cosmos/cosmos-sdk/version"
Expand Down Expand Up @@ -48,7 +44,7 @@ import (
govclient "github.com/cosmos/cosmos-sdk/x/gov/client"
govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
transfer "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer"
"github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer"
ibctransferkeeper "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer/keeper"
ibctransfertypes "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer/types"
ibc "github.com/cosmos/cosmos-sdk/x/ibc/core"
Expand All @@ -72,9 +68,17 @@ import (
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
appparams "github.com/interchainberlin/pooltoy/app/params"
"github.com/interchainberlin/pooltoy/regex"
"github.com/interchainberlin/pooltoy/x/escrow"
escrowkeeper "github.com/interchainberlin/pooltoy/x/escrow/keeper"
escrowtypes "github.com/interchainberlin/pooltoy/x/escrow/types"
"github.com/interchainberlin/pooltoy/x/faucet"
faucetkeeper "github.com/interchainberlin/pooltoy/x/faucet/keeper"
faucettypes "github.com/interchainberlin/pooltoy/x/faucet/types"
"io"
"os"
"path/filepath"
"time"

"github.com/interchainberlin/pooltoy/x/pooltoy"
pooltoykeeper "github.com/interchainberlin/pooltoy/x/pooltoy/keeper"
pooltoytypes "github.com/interchainberlin/pooltoy/x/pooltoy/types"
Expand All @@ -85,6 +89,11 @@ import (
tmos "github.com/tendermint/tendermint/libs/os"
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
dbm "github.com/tendermint/tm-db"

"github.com/cosmos/cosmos-sdk/x/upgrade"
upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
)

const Name = "pooltoy"
Expand All @@ -95,9 +104,12 @@ func getGovProposalHandlers() []govclient.ProposalHandler {
var govProposalHandlers []govclient.ProposalHandler
// this line is used by starport scaffolding # stargate/app/govProposalHandlers

govProposalHandlers = append(govProposalHandlers,
govProposalHandlers = append(
govProposalHandlers,
paramsclient.ProposalHandler,
distrclient.ProposalHandler,
upgradeclient.ProposalHandler,
upgradeclient.CancelProposalHandler,
// this line is used by starport scaffolding # stargate/app/govProposalHandler
)

Expand All @@ -120,6 +132,7 @@ var (
mint.AppModuleBasic{},
distr.AppModuleBasic{},
gov.NewAppModuleBasic(getGovProposalHandlers()...),
upgrade.AppModuleBasic{},
params.AppModuleBasic{},
crisis.AppModuleBasic{},
slashing.AppModuleBasic{},
Expand All @@ -128,6 +141,7 @@ var (
transfer.AppModuleBasic{},
pooltoy.AppModuleBasic{},
faucet.AppModule{},
escrow.AppModule{},
)

// module account permissions
Expand All @@ -140,6 +154,7 @@ var (
govtypes.ModuleName: {authtypes.Burner},
ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner},
faucettypes.ModuleName: {authtypes.Minter},
escrowtypes.ModuleName: {authtypes.Staking},
}

// module accounts that are allowed to receive tokens
Expand Down Expand Up @@ -184,10 +199,11 @@ type App struct {
BankKeeper bankkeeper.Keeper
CapabilityKeeper *capabilitykeeper.Keeper
StakingKeeper stakingkeeper.Keeper
SlashingKeeper slashingkeeper.Keeper
MintKeeper mintkeeper.Keeper
SlashingKeeper slashingkeeper.Keeper // todo check if needed
MintKeeper mintkeeper.Keeper // todo check if needed
DistrKeeper distrkeeper.Keeper
GovKeeper govkeeper.Keeper
UpgradeKeeper upgradekeeper.Keeper
CrisisKeeper crisiskeeper.Keeper
ParamsKeeper paramskeeper.Keeper
IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
Expand All @@ -202,12 +218,14 @@ type App struct {
PooltoyKeeper pooltoykeeper.Keeper
FaucetKeeper faucetkeeper.Keeper
// this line is used by starport scaffolding # stargate/app/keeperDeclaration

EscrowKeeper escrowkeeper.Keeper
// the module manager
mm *module.Manager
sm *module.SimulationManager
}

//todo check paramskeeper

// New returns a reference to an initialized Gaia.
// NewSimApp returns a reference to an initialized SimApp.
func New(
Expand All @@ -233,6 +251,10 @@ func New(
evidencetypes.StoreKey, ibctransfertypes.StoreKey, capabilitytypes.StoreKey,
pooltoytypes.StoreKey,
faucettypes.StoreKey,
escrowtypes.StoreKey,
escrowtypes.IDStoreKey,
upgradetypes.StoreKey,

// this line is used by starport scaffolding # stargate/app/storeKey
)
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
Expand Down Expand Up @@ -260,7 +282,10 @@ func New(
// grant capabilities for the ibc and ibc-transfer modules
scopedIBCKeeper := app.CapabilityKeeper.ScopeToModule(ibchost.ModuleName)
scopedTransferKeeper := app.CapabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName)

//StakingKeeper := stakingkeeper.NewKeeper(
// appCodec, keys[stakingtypes.StoreKey], app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName),
//)
app.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, keys[upgradetypes.StoreKey], appCodec, homePath)
// add keepers
app.AccountKeeper = authkeeper.NewAccountKeeper(
appCodec, keys[authtypes.StoreKey], app.GetSubspace(authtypes.ModuleName), authtypes.ProtoBaseAccount, maccPerms,
Expand Down Expand Up @@ -302,8 +327,13 @@ func New(
govRouter := govtypes.NewRouter()
govRouter.AddRoute(govtypes.RouterKey, govtypes.ProposalHandler).
AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)).
AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
AddRoute(distrtypes.RouterKey, distr.NewCommunityPoolSpendProposalHandler(app.DistrKeeper)).
AddRoute(ibchost.RouterKey, ibcclient.NewClientUpdateProposalHandler(app.IBCKeeper.ClientKeeper))
app.GovKeeper = govkeeper.NewKeeper(
appCodec, keys[govtypes.StoreKey], app.GetSubspace(govtypes.ModuleName), app.AccountKeeper, app.BankKeeper,
&stakingKeeper, govRouter,
)

// Create Transfer Keepers
app.TransferKeeper = ibctransferkeeper.NewKeeper(
Expand All @@ -314,7 +344,7 @@ func New(
transferModule := transfer.NewAppModule(app.TransferKeeper)

app.PooltoyKeeper = pooltoykeeper.NewKeeper(
appCodec,
appCodec, // todo why this is not app.appCodec
keys[pooltoytypes.StoreKey],
app.AccountKeeper,
)
Expand All @@ -329,6 +359,15 @@ func New(
app.appCodec,
)


app.EscrowKeeper = escrowkeeper.NewKeeper(
app.BankKeeper,
app.AccountKeeper,
appCodec, //todo appcodec or app.appcodec?
keys[escrowtypes.StoreKey],
keys[escrowtypes.IDStoreKey],
)

// Create static IBC router, add transfer route, then set and seal it
ibcRouter := porttypes.NewRouter()
ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferModule)
Expand All @@ -343,10 +382,10 @@ func New(

// this line is used by starport scaffolding # stargate/app/keeperDefinition

app.GovKeeper = govkeeper.NewKeeper(
appCodec, keys[govtypes.StoreKey], app.GetSubspace(govtypes.ModuleName), app.AccountKeeper, app.BankKeeper,
&stakingKeeper, govRouter,
)
//app.GovKeeper = govkeeper.NewKeeper(
// appCodec, keys[govtypes.StoreKey], app.GetSubspace(govtypes.ModuleName), app.AccountKeeper, app.BankKeeper,
// &stakingKeeper, govRouter,
//)

/**** Module Options ****/

Expand All @@ -371,6 +410,7 @@ func New(
slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper),
upgrade.NewAppModule(app.UpgradeKeeper),
evidence.NewAppModule(app.EvidenceKeeper),
ibc.NewAppModule(app.IBCKeeper),
params.NewAppModule(app.ParamsKeeper),
Expand All @@ -383,6 +423,12 @@ func New(
faucet.NewAppModule(
app.FaucetKeeper,
),

escrow.NewAppModule(
app.appCodec, //todo 1
app.EscrowKeeper,
),

// this line is used by starport scaffolding # stargate/app/appModule
)

Expand All @@ -391,12 +437,35 @@ func New(
// CanWithdrawInvariant invariant.
// NOTE: staking module is required if HistoricalEntries param > 0
app.mm.SetOrderBeginBlockers(
upgradetypes.ModuleName,
distrtypes.ModuleName, slashingtypes.ModuleName,
evidencetypes.ModuleName, stakingtypes.ModuleName, minttypes.ModuleName, ibchost.ModuleName,
evidencetypes.ModuleName, stakingtypes.ModuleName, minttypes.ModuleName,pooltoytypes.ModuleName, faucettypes.ModuleName, escrowtypes.ModuleName, ibchost.ModuleName,
)

app.mm.SetOrderEndBlockers(crisistypes.ModuleName, govtypes.ModuleName, stakingtypes.ModuleName, pooltoytypes.ModuleName, faucettypes.ModuleName)
app.mm.SetOrderEndBlockers(crisistypes.ModuleName, govtypes.ModuleName, stakingtypes.ModuleName, pooltoytypes.ModuleName, faucettypes.ModuleName, escrowtypes.ModuleName)
app.UpgradeKeeper.SetUpgradeHandler("pooltoy-upgrade-0",
func(ctx sdk.Context, plan upgradetypes.Plan) {
// a place to run genesis initialization logic for new modules that were just added as part of the upgrade...

// var genState escrowtypes.GenesisState
// genState.Params = escrowtypes.DefaultParams()
// genState.Params.PoolCreationFee = sdk.NewCoins(sdk.NewCoin("uatom", sdk.NewInt(40000000)))
// app.Escrow.InitGenesis(ctx, genState)
})

upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
if err != nil {
panic(err)
}

if upgradeInfo.Name == "pooltoy-upgrade-0" && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
storeUpgrades := store.StoreUpgrades{
Added: []string{escrowtypes.ModuleName},
}

// configure store loader that checks if version == upgradeHeight and applies store upgrades
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
}
// NOTE: The genutils module must occur after staking so that pools are
// properly initialized with tokens from genesis accounts.
// NOTE: Capability module must occur first so that it can initialize any capabilities
Expand All @@ -418,6 +487,7 @@ func New(
minttypes.ModuleName,
pooltoytypes.ModuleName,
faucettypes.ModuleName,
escrowtypes.ModuleName,
// this line is used by starport scaffolding # stargate/app/initGenesis
)

Expand Down
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ require (
github.com/gorilla/mux v1.8.0
github.com/grpc-ecosystem/grpc-gateway v1.16.0
github.com/kr/text v0.2.0 // indirect
github.com/pkg/errors v0.9.1
github.com/regen-network/cosmos-proto v0.3.1
github.com/spf13/cast v1.3.1
github.com/spf13/cobra v1.1.3
Expand Down
13 changes: 13 additions & 0 deletions proto/escrow/genesis.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
syntax = "proto3";
package escrow;

// this line is used by starport scaffolding # genesis/proto/import

option go_package = "github.com/interchainberlin/pooltoy/x/escrow/types";


// GenesisState defines the escrow module's genesis state.
message GenesisState {
// this line is used by starport scaffolding # genesis/proto/state
// this line is used by starport scaffolding # ibc/genesis/proto
}
39 changes: 39 additions & 0 deletions proto/escrow/query.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
syntax = "proto3";
package escrow;

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

option go_package = "github.com/interchainberlin/pooltoy/x/escrow/types";

// Query defines the gRPC querier service.
service Query {
// this line is used by starport scaffolding # 2
rpc QueryOfferListAll (OfferListAllRequest) returns (OfferListResponse);
rpc QueryOfferByID (QueryOfferByIDRequest) returns (Offer);
rpc QueryOfferByAddr (QueryOfferByAddrRequest) returns (OfferListResponse);
}

message OfferListAllRequest {}

message QueryOfferByIDRequest{
int64 id = 1;
}

message QueryOfferByAddrRequest {
string offerer = 1;
}

message OfferListResponse {
repeated Offer offerList = 1;
}

message Offer {
string sender = 1;
repeated cosmos.base.v1beta1.Coin amount = 2
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
repeated cosmos.base.v1beta1.Coin request = 3
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
int64 id =4;
}
45 changes: 45 additions & 0 deletions proto/escrow/tx.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
syntax = "proto3";
package escrow;

import "gogoproto/gogo.proto";
import "cosmos/base/v1beta1/coin.proto";
// this line is used by starport scaffolding # proto/tx/import
//import "github.com/cosmos/cosmos-sdk/bank/v1beta1/bank.proto";

option go_package = "github.com/interchainberlin/pooltoy/x/escrow/types";

// Msg defines the Msg service.
service Msg {
// this line is used by starport scaffolding # proto/tx/rpc
rpc Offer(OfferRequest) returns (OfferResponse);
rpc Response(ResponseRequest) returns (ResponseResult);
rpc CancelOffer(CancelOfferRequest) returns(CancelOfferResponse);
}

// this line is used by starport scaffolding # proto/tx/message
message OfferRequest {
string sender = 1;
repeated cosmos.base.v1beta1.Coin amount = 2
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
repeated cosmos.base.v1beta1.Coin request = 3
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
}

message OfferResponse {
string sender = 1;
int64 index = 2;
}

message ResponseRequest {
string sender = 1;
int64 id = 2;
}

message ResponseResult {}

message CancelOfferRequest {
string sender = 1;
int64 id = 2;
}

message CancelOfferResponse {}
Loading