Skip to content

Commit

Permalink
added gov proposal to enable trading reward
Browse files Browse the repository at this point in the history
  • Loading branch information
faneaatiku committed Apr 18, 2024
1 parent 5404194 commit b5271e5
Show file tree
Hide file tree
Showing 15 changed files with 822 additions and 57 deletions.
5 changes: 4 additions & 1 deletion app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
epochskeeper "github.com/bze-alphateam/bze/x/epochs/keeper"
epochstypes "github.com/bze-alphateam/bze/x/epochs/types"
"github.com/bze-alphateam/bze/x/rewards"
rewardsclient "github.com/bze-alphateam/bze/x/rewards/client"
rewardskeeper "github.com/bze-alphateam/bze/x/rewards/keeper"
rewardstypes "github.com/bze-alphateam/bze/x/rewards/types"
"github.com/bze-alphateam/bze/x/tradebin"
Expand Down Expand Up @@ -143,6 +144,7 @@ func getGovProposalHandlers() []govclient.ProposalHandler {
cointrunkmoduleclient.AcceptedDomainProposalHandler,
cointrunkmoduleclient.PublisherProposalHandler,
burnermoduleclient.BurnCoinsProposalHandler,
rewardsclient.ActivateTradingRewardProposalHandler,
// this line is used by starport scaffolding # stargate/app/govProposalHandler
)

Expand Down Expand Up @@ -509,7 +511,8 @@ func New(
AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)).
AddRoute(cointrunkmoduletypes.RouterKey, cointrunkmodule.NewCointrunkProposalHandler(app.CointrunkKeeper)).
AddRoute(burnermoduletypes.RouterKey, burnermodule.NewBurnerProposalHandler(app.BurnerKeeper))
AddRoute(burnermoduletypes.RouterKey, burnermodule.NewBurnerProposalHandler(app.BurnerKeeper)).
AddRoute(rewardstypes.RouterKey, rewards.NewRewardsProposalHandler(app.RewardsKeeper))

app.GovKeeper = govkeeper.NewKeeper(
appCodec, keys[govtypes.StoreKey], app.GetSubspace(govtypes.ModuleName), app.AccountKeeper, app.BankKeeper,
Expand Down
10 changes: 10 additions & 0 deletions proto/rewards/gov.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
syntax = "proto3";
package bze.v1.rewards;

option go_package = "github.com/bze-alphateam/bze/x/rewards/types";

message ActivateTradingRewardProposal {
string title = 1;
string description = 2;
string reward_id = 3;
}
5 changes: 4 additions & 1 deletion testutil/simapp/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
epochskeeper "github.com/bze-alphateam/bze/x/epochs/keeper"
epochstypes "github.com/bze-alphateam/bze/x/epochs/types"
"github.com/bze-alphateam/bze/x/rewards"
rewardsclient "github.com/bze-alphateam/bze/x/rewards/client"
rewardskeeper "github.com/bze-alphateam/bze/x/rewards/keeper"
rewardstypes "github.com/bze-alphateam/bze/x/rewards/types"
"github.com/bze-alphateam/bze/x/tradebin"
Expand Down Expand Up @@ -144,6 +145,7 @@ func getGovProposalHandlers() []govclient.ProposalHandler {
cointrunkmoduleclient.AcceptedDomainProposalHandler,
cointrunkmoduleclient.PublisherProposalHandler,
burnermoduleclient.BurnCoinsProposalHandler,
rewardsclient.ActivateTradingRewardProposalHandler,
// this line is used by starport scaffolding # stargate/app/govProposalHandler
)

Expand Down Expand Up @@ -508,7 +510,8 @@ func New(
AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)).
AddRoute(cointrunkmoduletypes.RouterKey, cointrunkmodule.NewCointrunkProposalHandler(app.CointrunkKeeper)).
AddRoute(burnermoduletypes.RouterKey, burnermodule.NewBurnerProposalHandler(app.BurnerKeeper))
AddRoute(burnermoduletypes.RouterKey, burnermodule.NewBurnerProposalHandler(app.BurnerKeeper)).
AddRoute(rewardstypes.RouterKey, rewards.NewRewardsProposalHandler(app.RewardsKeeper))

app.GovKeeper = govkeeper.NewKeeper(
appCodec, keys[govtypes.StoreKey], app.GetSubspace(govtypes.ModuleName), app.AccountKeeper, app.BankKeeper,
Expand Down
68 changes: 35 additions & 33 deletions vue/src/store/generated/bze-alphateam/bze/bze.v1.rewards/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { txClient, queryClient, MissingWalletError , registry} from './module'

import { ActivateTradingRewardProposal } from "./module/types/rewards/gov"
import { Params } from "./module/types/rewards/params"
import { StakingReward } from "./module/types/rewards/staking_reward"
import { StakingRewardParticipant } from "./module/types/rewards/staking_reward_participant"
Expand All @@ -12,7 +13,7 @@ import { TradingRewardCandidate } from "./module/types/rewards/trading_reward"
import { MarketIdTradingRewardId } from "./module/types/rewards/trading_reward"


export { Params, StakingReward, StakingRewardParticipant, PendingUnlockParticipant, TradingReward, TradingRewardExpiration, TradingRewardLeaderboard, TradingRewardLeaderboardEntry, TradingRewardCandidate, MarketIdTradingRewardId };
export { ActivateTradingRewardProposal, Params, StakingReward, StakingRewardParticipant, PendingUnlockParticipant, TradingReward, TradingRewardExpiration, TradingRewardLeaderboard, TradingRewardLeaderboardEntry, TradingRewardCandidate, MarketIdTradingRewardId };

async function initTxClient(vuexGetters) {
return await txClient(vuexGetters['common/wallet/signer'], {
Expand Down Expand Up @@ -61,6 +62,7 @@ const getDefaultState = () => {
GetMarketIdTradingRewardIdHandler: {},

_Structure: {
ActivateTradingRewardProposal: getStructure(ActivateTradingRewardProposal.fromPartial({})),
Params: getStructure(Params.fromPartial({})),
StakingReward: getStructure(StakingReward.fromPartial({})),
StakingRewardParticipant: getStructure(StakingRewardParticipant.fromPartial({})),
Expand Down Expand Up @@ -405,33 +407,33 @@ export default {
},


async sendMsgCreateStakingReward({ rootGetters }, { value, fee = [], memo = '' }) {
async sendMsgCreateTradingReward({ rootGetters }, { value, fee = [], memo = '' }) {
try {
const txClient=await initTxClient(rootGetters)
const msg = await txClient.msgCreateStakingReward(value)
const msg = await txClient.msgCreateTradingReward(value)
const result = await txClient.signAndBroadcast([msg], {fee: { amount: fee,
gas: "200000" }, memo})
return result
} catch (e) {
if (e == MissingWalletError) {
throw new Error('TxClient:MsgCreateStakingReward:Init Could not initialize signing client. Wallet is required.')
throw new Error('TxClient:MsgCreateTradingReward:Init Could not initialize signing client. Wallet is required.')
}else{
throw new Error('TxClient:MsgCreateStakingReward:Send Could not broadcast Tx: '+ e.message)
throw new Error('TxClient:MsgCreateTradingReward:Send Could not broadcast Tx: '+ e.message)
}
}
},
async sendMsgJoinStaking({ rootGetters }, { value, fee = [], memo = '' }) {
async sendMsgExitStaking({ rootGetters }, { value, fee = [], memo = '' }) {
try {
const txClient=await initTxClient(rootGetters)
const msg = await txClient.msgJoinStaking(value)
const msg = await txClient.msgExitStaking(value)
const result = await txClient.signAndBroadcast([msg], {fee: { amount: fee,
gas: "200000" }, memo})
return result
} catch (e) {
if (e == MissingWalletError) {
throw new Error('TxClient:MsgJoinStaking:Init Could not initialize signing client. Wallet is required.')
throw new Error('TxClient:MsgExitStaking:Init Could not initialize signing client. Wallet is required.')
}else{
throw new Error('TxClient:MsgJoinStaking:Send Could not broadcast Tx: '+ e.message)
throw new Error('TxClient:MsgExitStaking:Send Could not broadcast Tx: '+ e.message)
}
}
},
Expand Down Expand Up @@ -465,60 +467,60 @@ export default {
}
}
},
async sendMsgCreateTradingReward({ rootGetters }, { value, fee = [], memo = '' }) {
async sendMsgJoinStaking({ rootGetters }, { value, fee = [], memo = '' }) {
try {
const txClient=await initTxClient(rootGetters)
const msg = await txClient.msgCreateTradingReward(value)
const msg = await txClient.msgJoinStaking(value)
const result = await txClient.signAndBroadcast([msg], {fee: { amount: fee,
gas: "200000" }, memo})
return result
} catch (e) {
if (e == MissingWalletError) {
throw new Error('TxClient:MsgCreateTradingReward:Init Could not initialize signing client. Wallet is required.')
throw new Error('TxClient:MsgJoinStaking:Init Could not initialize signing client. Wallet is required.')
}else{
throw new Error('TxClient:MsgCreateTradingReward:Send Could not broadcast Tx: '+ e.message)
throw new Error('TxClient:MsgJoinStaking:Send Could not broadcast Tx: '+ e.message)
}
}
},
async sendMsgExitStaking({ rootGetters }, { value, fee = [], memo = '' }) {
async sendMsgCreateStakingReward({ rootGetters }, { value, fee = [], memo = '' }) {
try {
const txClient=await initTxClient(rootGetters)
const msg = await txClient.msgExitStaking(value)
const msg = await txClient.msgCreateStakingReward(value)
const result = await txClient.signAndBroadcast([msg], {fee: { amount: fee,
gas: "200000" }, memo})
return result
} catch (e) {
if (e == MissingWalletError) {
throw new Error('TxClient:MsgExitStaking:Init Could not initialize signing client. Wallet is required.')
throw new Error('TxClient:MsgCreateStakingReward:Init Could not initialize signing client. Wallet is required.')
}else{
throw new Error('TxClient:MsgExitStaking:Send Could not broadcast Tx: '+ e.message)
throw new Error('TxClient:MsgCreateStakingReward:Send Could not broadcast Tx: '+ e.message)
}
}
},

async MsgCreateStakingReward({ rootGetters }, { value }) {
async MsgCreateTradingReward({ rootGetters }, { value }) {
try {
const txClient=await initTxClient(rootGetters)
const msg = await txClient.msgCreateStakingReward(value)
const msg = await txClient.msgCreateTradingReward(value)
return msg
} catch (e) {
if (e == MissingWalletError) {
throw new Error('TxClient:MsgCreateStakingReward:Init Could not initialize signing client. Wallet is required.')
throw new Error('TxClient:MsgCreateTradingReward:Init Could not initialize signing client. Wallet is required.')
} else{
throw new Error('TxClient:MsgCreateStakingReward:Create Could not create message: ' + e.message)
throw new Error('TxClient:MsgCreateTradingReward:Create Could not create message: ' + e.message)
}
}
},
async MsgJoinStaking({ rootGetters }, { value }) {
async MsgExitStaking({ rootGetters }, { value }) {
try {
const txClient=await initTxClient(rootGetters)
const msg = await txClient.msgJoinStaking(value)
const msg = await txClient.msgExitStaking(value)
return msg
} catch (e) {
if (e == MissingWalletError) {
throw new Error('TxClient:MsgJoinStaking:Init Could not initialize signing client. Wallet is required.')
throw new Error('TxClient:MsgExitStaking:Init Could not initialize signing client. Wallet is required.')
} else{
throw new Error('TxClient:MsgJoinStaking:Create Could not create message: ' + e.message)
throw new Error('TxClient:MsgExitStaking:Create Could not create message: ' + e.message)
}
}
},
Expand Down Expand Up @@ -548,29 +550,29 @@ export default {
}
}
},
async MsgCreateTradingReward({ rootGetters }, { value }) {
async MsgJoinStaking({ rootGetters }, { value }) {
try {
const txClient=await initTxClient(rootGetters)
const msg = await txClient.msgCreateTradingReward(value)
const msg = await txClient.msgJoinStaking(value)
return msg
} catch (e) {
if (e == MissingWalletError) {
throw new Error('TxClient:MsgCreateTradingReward:Init Could not initialize signing client. Wallet is required.')
throw new Error('TxClient:MsgJoinStaking:Init Could not initialize signing client. Wallet is required.')
} else{
throw new Error('TxClient:MsgCreateTradingReward:Create Could not create message: ' + e.message)
throw new Error('TxClient:MsgJoinStaking:Create Could not create message: ' + e.message)
}
}
},
async MsgExitStaking({ rootGetters }, { value }) {
async MsgCreateStakingReward({ rootGetters }, { value }) {
try {
const txClient=await initTxClient(rootGetters)
const msg = await txClient.msgExitStaking(value)
const msg = await txClient.msgCreateStakingReward(value)
return msg
} catch (e) {
if (e == MissingWalletError) {
throw new Error('TxClient:MsgExitStaking:Init Could not initialize signing client. Wallet is required.')
throw new Error('TxClient:MsgCreateStakingReward:Init Could not initialize signing client. Wallet is required.')
} else{
throw new Error('TxClient:MsgExitStaking:Create Could not create message: ' + e.message)
throw new Error('TxClient:MsgCreateStakingReward:Create Could not create message: ' + e.message)
}
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,21 @@ import { StdFee } from "@cosmjs/launchpad";
import { SigningStargateClient } from "@cosmjs/stargate";
import { Registry, OfflineSigner, EncodeObject, DirectSecp256k1HdWallet } from "@cosmjs/proto-signing";
import { Api } from "./rest";
import { MsgCreateStakingReward } from "./types/rewards/tx";
import { MsgJoinStaking } from "./types/rewards/tx";
import { MsgClaimStakingRewards } from "./types/rewards/tx";
import { MsgUpdateStakingReward } from "./types/rewards/tx";
import { MsgCreateTradingReward } from "./types/rewards/tx";
import { MsgExitStaking } from "./types/rewards/tx";
import { MsgClaimStakingRewards } from "./types/rewards/tx";
import { MsgUpdateStakingReward } from "./types/rewards/tx";
import { MsgJoinStaking } from "./types/rewards/tx";
import { MsgCreateStakingReward } from "./types/rewards/tx";


const types = [
["/bze.v1.rewards.MsgCreateStakingReward", MsgCreateStakingReward],
["/bze.v1.rewards.MsgJoinStaking", MsgJoinStaking],
["/bze.v1.rewards.MsgClaimStakingRewards", MsgClaimStakingRewards],
["/bze.v1.rewards.MsgUpdateStakingReward", MsgUpdateStakingReward],
["/bze.v1.rewards.MsgCreateTradingReward", MsgCreateTradingReward],
["/bze.v1.rewards.MsgExitStaking", MsgExitStaking],
["/bze.v1.rewards.MsgClaimStakingRewards", MsgClaimStakingRewards],
["/bze.v1.rewards.MsgUpdateStakingReward", MsgUpdateStakingReward],
["/bze.v1.rewards.MsgJoinStaking", MsgJoinStaking],
["/bze.v1.rewards.MsgCreateStakingReward", MsgCreateStakingReward],

];
export const MissingWalletError = new Error("wallet is required");
Expand Down Expand Up @@ -51,12 +51,12 @@ const txClient = async (wallet: OfflineSigner, { addr: addr }: TxClientOptions =

return {
signAndBroadcast: (msgs: EncodeObject[], { fee, memo }: SignAndBroadcastOptions = {fee: defaultFee, memo: ""}) => client.signAndBroadcast(address, msgs, fee,memo),
msgCreateStakingReward: (data: MsgCreateStakingReward): EncodeObject => ({ typeUrl: "/bze.v1.rewards.MsgCreateStakingReward", value: MsgCreateStakingReward.fromPartial( data ) }),
msgJoinStaking: (data: MsgJoinStaking): EncodeObject => ({ typeUrl: "/bze.v1.rewards.MsgJoinStaking", value: MsgJoinStaking.fromPartial( data ) }),
msgClaimStakingRewards: (data: MsgClaimStakingRewards): EncodeObject => ({ typeUrl: "/bze.v1.rewards.MsgClaimStakingRewards", value: MsgClaimStakingRewards.fromPartial( data ) }),
msgUpdateStakingReward: (data: MsgUpdateStakingReward): EncodeObject => ({ typeUrl: "/bze.v1.rewards.MsgUpdateStakingReward", value: MsgUpdateStakingReward.fromPartial( data ) }),
msgCreateTradingReward: (data: MsgCreateTradingReward): EncodeObject => ({ typeUrl: "/bze.v1.rewards.MsgCreateTradingReward", value: MsgCreateTradingReward.fromPartial( data ) }),
msgExitStaking: (data: MsgExitStaking): EncodeObject => ({ typeUrl: "/bze.v1.rewards.MsgExitStaking", value: MsgExitStaking.fromPartial( data ) }),
msgClaimStakingRewards: (data: MsgClaimStakingRewards): EncodeObject => ({ typeUrl: "/bze.v1.rewards.MsgClaimStakingRewards", value: MsgClaimStakingRewards.fromPartial( data ) }),
msgUpdateStakingReward: (data: MsgUpdateStakingReward): EncodeObject => ({ typeUrl: "/bze.v1.rewards.MsgUpdateStakingReward", value: MsgUpdateStakingReward.fromPartial( data ) }),
msgJoinStaking: (data: MsgJoinStaking): EncodeObject => ({ typeUrl: "/bze.v1.rewards.MsgJoinStaking", value: MsgJoinStaking.fromPartial( data ) }),
msgCreateStakingReward: (data: MsgCreateStakingReward): EncodeObject => ({ typeUrl: "/bze.v1.rewards.MsgCreateStakingReward", value: MsgCreateStakingReward.fromPartial( data ) }),

};
};
Expand Down

0 comments on commit b5271e5

Please sign in to comment.