Skip to content

Commit

Permalink
Merge pull request #149 from xpladev/release/v1.6.x
Browse files Browse the repository at this point in the history
v1.6.0
  • Loading branch information
JoowonYun committed Aug 29, 2024
2 parents 0756c4e + da1d389 commit bb718ae
Show file tree
Hide file tree
Showing 17 changed files with 355 additions and 194 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/go.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:

strategy:
matrix:
go-version: [1.20.x]
go-version: [1.21.x]

steps:
- uses: actions/checkout@v3
Expand Down
4 changes: 2 additions & 2 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ import (
"github.com/xpladev/xpla/app/openapiconsole"
xplaappparams "github.com/xpladev/xpla/app/params"
"github.com/xpladev/xpla/app/upgrades"
v1_5 "github.com/xpladev/xpla/app/upgrades/v1_5"
v1_6 "github.com/xpladev/xpla/app/upgrades/v1_6"
"github.com/xpladev/xpla/docs"

"github.com/CosmWasm/wasmd/x/wasm"
Expand All @@ -58,7 +58,7 @@ var (
DefaultNodeHome string

Upgrades = []upgrades.Upgrade{
v1_5.Upgrade,
v1_6.Upgrade,
}
)

Expand Down
10 changes: 8 additions & 2 deletions app/keepers/keepers.go
Original file line number Diff line number Diff line change
Expand Up @@ -374,14 +374,17 @@ func NewAppKeeper(
AddRoute(erc20types.RouterKey, erc20.NewErc20ProposalHandler(&appKeepers.Erc20Keeper)).
AddRoute(volunteertypes.RouterKey, volunteerkeeper.NewVolunteerValidatorProposalHandler(appKeepers.VolunteerKeeper))

govConfig := govtypes.DefaultConfig()
// set the MaxMetadataLen for proposals to the same value as it was pre-sdk v0.47.x
govConfig.MaxMetadataLen = 10200
govKeeper := govkeeper.NewKeeper(
appCodec,
appKeepers.keys[govtypes.StoreKey],
appKeepers.AccountKeeper,
appKeepers.BankKeeper,
appKeepers.StakingKeeper,
bApp.MsgServiceRouter(),
govtypes.DefaultConfig(),
govConfig,
govModAddress,
)

Expand Down Expand Up @@ -466,6 +469,9 @@ func NewAppKeeper(
bApp.MsgServiceRouter(),
)

// required since ibc-go v7.5.0
appKeepers.ICAHostKeeper.WithQueryRouter(bApp.GRPCQueryRouter())

// ICA Controller keeper
appKeepers.ICAControllerKeeper = icacontrollerkeeper.NewKeeper(
appCodec, appKeepers.keys[icacontrollertypes.StoreKey], appKeepers.GetSubspace(icacontrollertypes.SubModuleName),
Expand Down Expand Up @@ -556,7 +562,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
paramsKeeper.Subspace(pfmroutertypes.ModuleName).WithKeyTable(pfmroutertypes.ParamKeyTable())
paramsKeeper.Subspace(icacontrollertypes.SubModuleName)
paramsKeeper.Subspace(icahosttypes.SubModuleName)
paramsKeeper.Subspace(wasmtypes.ModuleName).WithKeyTable(wasmtypes.ParamKeyTable())
paramsKeeper.Subspace(wasmtypes.ModuleName)
paramsKeeper.Subspace(feemarkettypes.ModuleName).WithKeyTable(feemarkettypes.ParamKeyTable())
paramsKeeper.Subspace(evmtypes.ModuleName).WithKeyTable(evmtypes.ParamKeyTable())
paramsKeeper.Subspace(erc20types.ModuleName)
Expand Down
3 changes: 2 additions & 1 deletion app/upgrades/v1_5/upgrades.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package v1_5

import (
wasmmigrationv2 "github.com/CosmWasm/wasmd/x/wasm/migrations/v2"
wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"

"github.com/cosmos/cosmos-sdk/baseapp"
Expand Down Expand Up @@ -95,7 +96,7 @@ func CreateUpgradeHandler(

// wasm
case wasmtypes.ModuleName:
keyTable = wasmtypes.ParamKeyTable() //nolint:staticcheck
keyTable = wasmmigrationv2.ParamKeyTable() //nolint:staticcheck

// xpla
case rewardtypes.ModuleName:
Expand Down
27 changes: 27 additions & 0 deletions app/upgrades/v1_6/const.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package v1_6

import (
store "github.com/cosmos/cosmos-sdk/store/types"

"github.com/xpladev/xpla/app/upgrades"
)

const (
UpgradeName = "v1_6"
)

var Upgrade = upgrades.Upgrade{
UpgradeName: UpgradeName,
CreateUpgradeHandler: CreateUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{
Added: []string{},
Deleted: []string{},
},
}

const (
// https://github.com/Arachnid/deterministic-deployment-proxy
thirdwebProxy = "0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222"

upgradeFeeSupporter = "xpla1xj3vn9a27u5q945e2xvwfdh3hv6zuy0qkx9d4l"
)
89 changes: 89 additions & 0 deletions app/upgrades/v1_6/upgrades.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
package v1_6

import (
"math/big"

"cosmossdk.io/errors"
sdkmath "cosmossdk.io/math"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/ethereum/go-ethereum/common/hexutil"
ethtypes "github.com/ethereum/go-ethereum/core/types"

evmtypes "github.com/xpladev/ethermint/x/evm/types"
"github.com/xpladev/xpla/app/keepers"
)

func CreateUpgradeHandler(
mm *module.Manager,
configurator module.Configurator,
keepers *keepers.AppKeepers,
cdc codec.BinaryCodec,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
data, err := hexutil.Decode(thirdwebProxy)
if err != nil {
return nil, errors.Wrap(err, "failed to decode ethereum tx hex bytes")
}

msg := &evmtypes.MsgEthereumTx{}
if err := msg.UnmarshalBinary(data); err != nil {
return nil, err
}

if err := msg.ValidateBasic(); err != nil {
return nil, err
}

// fund fee collector by upgrade fee supporter
upgradeFeeSupporterAccout, err := sdk.AccAddressFromBech32(upgradeFeeSupporter)
if err != nil {
return nil, err
}
evmDenom := keepers.EvmKeeper.GetParams(ctx).EvmDenom
borrowedCoins := sdk.NewCoin(evmDenom, sdk.DefaultPowerReduction)
err = keepers.BankKeeper.SendCoinsFromAccountToModule(ctx, upgradeFeeSupporterAccout, authtypes.FeeCollectorName, sdk.NewCoins(borrowedCoins))
if err != nil {
return nil, err
}

// execute thiredweb proxy contract
res, err := keepers.EvmKeeper.EthereumTx(ctx, msg)
if err != nil {
return nil, err
}

if res.Failed() {
return nil, errors.ErrPanic.Wrap(res.VmError)
}

// Gas refunded rollback without use
tx := msg.AsTransaction()

signer := ethtypes.NewLondonSigner(keepers.EvmKeeper.ChainID())
from, err := signer.Sender(tx)
if err != nil {
return nil, err
}

// sender -> rewardDistributeAccount
refundedGas := msg.GetGas() - res.GasUsed
refundAmount := new(big.Int).Mul(new(big.Int).SetUint64(refundedGas), tx.GasPrice())
refundCoin := sdk.NewCoin(evmDenom, sdkmath.NewIntFromBigInt(refundAmount))
err = keepers.BankKeeper.SendCoins(ctx, from.Bytes(), upgradeFeeSupporterAccout, sdk.NewCoins(refundCoin))
if err != nil {
return nil, err
}

// feeCollector -> rewardDistributeAccount
err = keepers.BankKeeper.SendCoinsFromModuleToAccount(ctx, authtypes.FeeCollectorName, upgradeFeeSupporterAccout, sdk.NewCoins(borrowedCoins.Sub(refundCoin)))
if err != nil {
return nil, err
}

return mm.RunMigrations(ctx, configurator, fromVM)
}
}
20 changes: 10 additions & 10 deletions docs/proto/proto-docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
- [Query](#xpla.reward.v1beta1.Query)

- [xpla/reward/v1beta1/tx.proto](#xpla/reward/v1beta1/tx.proto)
- [MsgFundFeeCollector](#xpla.reward.v1beta1.MsgFundFeeCollector)
- [MsgFundFeeCollectorResponse](#xpla.reward.v1beta1.MsgFundFeeCollectorResponse)
- [MsgFundRewardPool](#xpla.reward.v1beta1.MsgFundRewardPool)
- [MsgFundRewardPoolResponse](#xpla.reward.v1beta1.MsgFundRewardPoolResponse)
- [MsgUpdateParams](#xpla.reward.v1beta1.MsgUpdateParams)
- [MsgUpdateParamsResponse](#xpla.reward.v1beta1.MsgUpdateParamsResponse)

Expand Down Expand Up @@ -200,11 +200,11 @@ Query defines the gRPC querier service for reward module.



<a name="xpla.reward.v1beta1.MsgFundFeeCollector"></a>
<a name="xpla.reward.v1beta1.MsgFundRewardPool"></a>

### MsgFundFeeCollector
MsgFundFeeCollector allows an account to directly
fund the fee collector.
### MsgFundRewardPool
MsgFundRewardPool allows an account to directly
fund the reward pool.


| Field | Type | Label | Description |
Expand All @@ -217,10 +217,10 @@ fund the fee collector.



<a name="xpla.reward.v1beta1.MsgFundFeeCollectorResponse"></a>
<a name="xpla.reward.v1beta1.MsgFundRewardPoolResponse"></a>

### MsgFundFeeCollectorResponse
MsgFundFeeCollectorResponse defines the Msg/FundFeeCollector response type.
### MsgFundRewardPoolResponse
MsgFundRewardPoolResponse defines the Msg/FundRewardPool response type.



Expand Down Expand Up @@ -269,7 +269,7 @@ Msg defines the reawrd Msg service.

| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint |
| ----------- | ------------ | ------------- | ------------| ------- | -------- |
| `FundFeeCollector` | [MsgFundFeeCollector](#xpla.reward.v1beta1.MsgFundFeeCollector) | [MsgFundFeeCollectorResponse](#xpla.reward.v1beta1.MsgFundFeeCollectorResponse) | FundFeeCollector defines a method to allow an account to directly fund the fee collector. | |
| `FundRewardPool` | [MsgFundRewardPool](#xpla.reward.v1beta1.MsgFundRewardPool) | [MsgFundRewardPoolResponse](#xpla.reward.v1beta1.MsgFundRewardPoolResponse) | MsgFundRewardPool defines a method to allow an account to directly fund the reward pool. | |
| `UpdateParams` | [MsgUpdateParams](#xpla.reward.v1beta1.MsgUpdateParams) | [MsgUpdateParamsResponse](#xpla.reward.v1beta1.MsgUpdateParamsResponse) | UpdateParams defined a governance operation for updating the x/reward module parameters. The authority is hard-coded to the Cosmos SDK x/gov module account | |

<!-- end services -->
Expand Down
28 changes: 14 additions & 14 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
module github.com/xpladev/xpla

go 1.20
go 1.21

require (
cosmossdk.io/api v0.3.1
cosmossdk.io/errors v1.0.1
cosmossdk.io/math v1.3.0
cosmossdk.io/simapp v0.0.0-20230608160436-666c345ad23d
github.com/CosmWasm/wasmd v0.45.0
github.com/CosmWasm/wasmd v0.46.0
github.com/cometbft/cometbft v0.37.5
github.com/cometbft/cometbft-db v0.8.0
github.com/cosmos/cosmos-proto v1.0.0-beta.4
github.com/cosmos/cosmos-sdk v0.47.10
github.com/cosmos/cosmos-proto v1.0.0-beta.5
github.com/cosmos/cosmos-sdk v0.47.13
github.com/cosmos/gogoproto v1.4.10
github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.3-0.20240228213828-cce7f56d000b
github.com/cosmos/ibc-go/v7 v7.4.0
github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.3
github.com/cosmos/ibc-go/v7 v7.7.0
github.com/ethereum/go-ethereum v1.10.26
github.com/golang/protobuf v1.5.4
github.com/grpc-ecosystem/grpc-gateway v1.16.0
Expand All @@ -24,7 +24,7 @@ require (
github.com/spf13/cobra v1.8.0
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.18.2
github.com/stretchr/testify v1.8.4
github.com/stretchr/testify v1.9.0
github.com/xpladev/ethermint v0.23.0-xpla-4
golang.org/x/sync v0.6.0
google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80
Expand All @@ -46,7 +46,7 @@ require (
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
github.com/99designs/keyring v1.2.1 // indirect
github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect
github.com/CosmWasm/wasmvm v1.5.1 // indirect
github.com/CosmWasm/wasmvm v1.5.4 // indirect
github.com/StackExchange/wmi v1.2.1 // indirect
github.com/VictoriaMetrics/fastcache v1.6.0 // indirect
github.com/armon/go-metrics v0.4.1 // indirect
Expand Down Expand Up @@ -125,7 +125,7 @@ require (
github.com/gtank/merlin v0.1.1 // indirect
github.com/gtank/ristretto255 v0.1.2 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-getter v1.7.1 // indirect
github.com/hashicorp/go-getter v1.7.5 // indirect
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
github.com/hashicorp/go-safetemp v1.0.0 // indirect
github.com/hashicorp/go-version v1.6.0 // indirect
Expand Down Expand Up @@ -205,12 +205,12 @@ require (
go.opentelemetry.io/otel/trace v1.21.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.9.0 // indirect
golang.org/x/crypto v0.18.0 // indirect
golang.org/x/crypto v0.21.0 // indirect
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
golang.org/x/net v0.20.0 // indirect
golang.org/x/net v0.23.0 // indirect
golang.org/x/oauth2 v0.16.0 // indirect
golang.org/x/sys v0.16.0 // indirect
golang.org/x/term v0.16.0 // indirect
golang.org/x/sys v0.18.0 // indirect
golang.org/x/term v0.18.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.5.0 // indirect
google.golang.org/api v0.155.0 // indirect
Expand All @@ -229,7 +229,7 @@ require (
replace (
// use cosmos fork of keyring
github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0
github.com/cosmos/cosmos-sdk => github.com/xpladev/cosmos-sdk v0.47.10-xpla
github.com/cosmos/cosmos-sdk => github.com/xpladev/cosmos-sdk v0.47.13-xpla

github.com/cosmos/ledger-cosmos-go => github.com/xpladev/ledger-cosmos-go v0.12.2-xpla

Expand Down
Loading

0 comments on commit bb718ae

Please sign in to comment.