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

feat: bc fusion hardfork implementation #358

Merged
merged 22 commits into from
Nov 29, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
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
3 changes: 3 additions & 0 deletions docs/sdk/core/examples/app2.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,9 @@ func (msg MsgIssue) GetInvolvedAddresses() []sdk.AccAddress {
// Handle MsgIssue.
func handleMsgIssue(keyIssue *sdk.KVStoreKey, keyAcc *sdk.KVStoreKey) sdk.Handler {
return func(ctx sdk.Context, msg sdk.Msg) sdk.Result {
if sdk.IsUpgrade(sdk.BEPXXX) {
return sdk.ErrMsgNotSupported("").Result()
}
issueMsg, ok := msg.(MsgIssue)
if !ok {
return sdk.NewError(2, 1, "MsgIssue is malformed").Result()
Expand Down
3 changes: 3 additions & 0 deletions types/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ const (
FixDoubleSignChainId = "FixDoubleSignChainId"
BEP126 = "BEP126" //https://github.com/binance-chain/BEPs/pull/126
BEP255 = "BEP255" // https://github.com/bnb-chain/BEPs/pull/255

// TODO: to be determined
BEPXXX = "BEPXXX-DECO"
)

var MainNetConfig = UpgradeConfig{
Expand Down
6 changes: 6 additions & 0 deletions x/stake/cross_stake/cross_stake.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,9 @@ func (app *CrossStakeApp) ExecuteFailAckPackage(ctx sdk.Context, payload []byte)
}

func (app *CrossStakeApp) handleDelegate(ctx sdk.Context, pack *types.CrossStakeDelegateSynPackage, relayFee int64) (sdk.ExecuteResult, uint8, error) {
if sdk.IsUpgrade(sdk.BEPXXX) {
unclezoro marked this conversation as resolved.
Show resolved Hide resolved
return sdk.ExecuteResult{}, uint8(sdk.ErrMsgNotSupported("").Code()), nil
}
var errCode uint8
sideChainId := app.stakeKeeper.DestChainName
if scCtx, err := app.stakeKeeper.ScKeeper.PrepareCtxForSideChain(ctx, sideChainId); err != nil {
Expand Down Expand Up @@ -264,6 +267,9 @@ func (app *CrossStakeApp) handleUndelegate(ctx sdk.Context, pack *types.CrossSta
}

func (app *CrossStakeApp) handleRedelegate(ctx sdk.Context, pack *types.CrossStakeRedelegateSynPackage, relayFee int64) (sdk.ExecuteResult, uint8, error) {
if sdk.IsUpgrade(sdk.BEPXXX) {
return sdk.ExecuteResult{}, uint8(sdk.ErrMsgNotSupported("").Code()), nil
}
var errCode uint8
sideChainId := app.stakeKeeper.DestChainName
if scCtx, err := app.stakeKeeper.ScKeeper.PrepareCtxForSideChain(ctx, sideChainId); err != nil {
Expand Down
18 changes: 18 additions & 0 deletions x/stake/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,9 @@ func handleMsgRemoveValidatorAfterProposal(ctx sdk.Context, msg MsgRemoveValidat
}

func handleMsgCreateValidatorOpen(ctx sdk.Context, msg MsgCreateValidatorOpen, k keeper.Keeper) sdk.Result {
if sdk.IsUpgrade(sdk.BEPXXX) {
return sdk.ErrMsgNotSupported("").Result()
}
pubkey, err := sdk.GetConsPubKeyBech32(msg.PubKey)
if err != nil {
return ErrInvalidPubKey(k.Codespace()).Result()
Expand All @@ -143,6 +146,9 @@ func handleMsgCreateValidatorOpen(ctx sdk.Context, msg MsgCreateValidatorOpen, k
}

func handleMsgCreateValidator(ctx sdk.Context, msg MsgCreateValidator, k keeper.Keeper) sdk.Result {
if sdk.IsUpgrade(sdk.BEPXXX) {
return sdk.ErrMsgNotSupported("").Result()
}
// consensus pubkey only support ed25519
if _, ok := msg.PubKey.(ed25519.PubKeyEd25519); !ok {
return ErrInvalidPubKey(k.Codespace()).Result()
Expand Down Expand Up @@ -206,6 +212,9 @@ func handleMsgCreateValidator(ctx sdk.Context, msg MsgCreateValidator, k keeper.
}

func checkCreateProposal(ctx sdk.Context, keeper keeper.Keeper, govKeeper gov.Keeper, msg MsgCreateValidatorProposal) error {
if sdk.IsUpgrade(sdk.BEPXXX) {
return sdk.ErrMsgNotSupported("")
}
proposal := govKeeper.GetProposal(ctx, msg.ProposalId)
if proposal == nil {
return fmt.Errorf("proposal %d does not exist", msg.ProposalId)
Expand Down Expand Up @@ -354,6 +363,9 @@ func handleMsgDelegateV1(ctx sdk.Context, msg types.MsgDelegate, k keeper.Keeper
}

func handleMsgDelegate(ctx sdk.Context, msg types.MsgDelegate, k keeper.Keeper) sdk.Result {
if sdk.IsUpgrade(sdk.BEPXXX) {
return sdk.ErrMsgNotSupported("").Result()
}
validator, found := k.GetValidator(ctx, msg.ValidatorAddr)
if !found {
return ErrNoValidatorFound(k.Codespace()).Result()
Expand Down Expand Up @@ -446,6 +458,9 @@ func handleMsgUndelegate(ctx sdk.Context, msg types.MsgUndelegate, k keeper.Keep
}

func handleMsgBeginUnbonding(ctx sdk.Context, msg types.MsgBeginUnbonding, k keeper.Keeper) sdk.Result {
if sdk.IsUpgrade(sdk.BEPXXX) {
return sdk.ErrMsgNotSupported("").Result()
}
ubd, err := k.BeginUnbonding(ctx, msg.DelegatorAddr, msg.ValidatorAddr, msg.SharesAmount)
if err != nil {
return err.Result()
Expand All @@ -462,6 +477,9 @@ func handleMsgBeginUnbonding(ctx sdk.Context, msg types.MsgBeginUnbonding, k kee
}

func handleMsgRedelegate(ctx sdk.Context, msg types.MsgRedelegate, k keeper.Keeper) sdk.Result {
if sdk.IsUpgrade(sdk.BEPXXX) {
return sdk.ErrMsgNotSupported("").Result()
}
if msg.Amount.Denom != k.BondDenom(ctx) {
return ErrBadDenom(k.Codespace()).Result()
}
Expand Down