Skip to content

Commit bb718ae

Browse files
authored
Merge pull request #149 from xpladev/release/v1.6.x
v1.6.0
2 parents 0756c4e + da1d389 commit bb718ae

File tree

17 files changed

+355
-194
lines changed

17 files changed

+355
-194
lines changed

.github/workflows/go.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313

1414
strategy:
1515
matrix:
16-
go-version: [1.20.x]
16+
go-version: [1.21.x]
1717

1818
steps:
1919
- uses: actions/checkout@v3

app/app.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import (
4646
"github.com/xpladev/xpla/app/openapiconsole"
4747
xplaappparams "github.com/xpladev/xpla/app/params"
4848
"github.com/xpladev/xpla/app/upgrades"
49-
v1_5 "github.com/xpladev/xpla/app/upgrades/v1_5"
49+
v1_6 "github.com/xpladev/xpla/app/upgrades/v1_6"
5050
"github.com/xpladev/xpla/docs"
5151

5252
"github.com/CosmWasm/wasmd/x/wasm"
@@ -58,7 +58,7 @@ var (
5858
DefaultNodeHome string
5959

6060
Upgrades = []upgrades.Upgrade{
61-
v1_5.Upgrade,
61+
v1_6.Upgrade,
6262
}
6363
)
6464

app/keepers/keepers.go

+8-2
Original file line numberDiff line numberDiff line change
@@ -374,14 +374,17 @@ func NewAppKeeper(
374374
AddRoute(erc20types.RouterKey, erc20.NewErc20ProposalHandler(&appKeepers.Erc20Keeper)).
375375
AddRoute(volunteertypes.RouterKey, volunteerkeeper.NewVolunteerValidatorProposalHandler(appKeepers.VolunteerKeeper))
376376

377+
govConfig := govtypes.DefaultConfig()
378+
// set the MaxMetadataLen for proposals to the same value as it was pre-sdk v0.47.x
379+
govConfig.MaxMetadataLen = 10200
377380
govKeeper := govkeeper.NewKeeper(
378381
appCodec,
379382
appKeepers.keys[govtypes.StoreKey],
380383
appKeepers.AccountKeeper,
381384
appKeepers.BankKeeper,
382385
appKeepers.StakingKeeper,
383386
bApp.MsgServiceRouter(),
384-
govtypes.DefaultConfig(),
387+
govConfig,
385388
govModAddress,
386389
)
387390

@@ -466,6 +469,9 @@ func NewAppKeeper(
466469
bApp.MsgServiceRouter(),
467470
)
468471

472+
// required since ibc-go v7.5.0
473+
appKeepers.ICAHostKeeper.WithQueryRouter(bApp.GRPCQueryRouter())
474+
469475
// ICA Controller keeper
470476
appKeepers.ICAControllerKeeper = icacontrollerkeeper.NewKeeper(
471477
appCodec, appKeepers.keys[icacontrollertypes.StoreKey], appKeepers.GetSubspace(icacontrollertypes.SubModuleName),
@@ -556,7 +562,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
556562
paramsKeeper.Subspace(pfmroutertypes.ModuleName).WithKeyTable(pfmroutertypes.ParamKeyTable())
557563
paramsKeeper.Subspace(icacontrollertypes.SubModuleName)
558564
paramsKeeper.Subspace(icahosttypes.SubModuleName)
559-
paramsKeeper.Subspace(wasmtypes.ModuleName).WithKeyTable(wasmtypes.ParamKeyTable())
565+
paramsKeeper.Subspace(wasmtypes.ModuleName)
560566
paramsKeeper.Subspace(feemarkettypes.ModuleName).WithKeyTable(feemarkettypes.ParamKeyTable())
561567
paramsKeeper.Subspace(evmtypes.ModuleName).WithKeyTable(evmtypes.ParamKeyTable())
562568
paramsKeeper.Subspace(erc20types.ModuleName)

app/upgrades/v1_5/upgrades.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package v1_5
22

33
import (
4+
wasmmigrationv2 "github.com/CosmWasm/wasmd/x/wasm/migrations/v2"
45
wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"
56

67
"github.com/cosmos/cosmos-sdk/baseapp"
@@ -95,7 +96,7 @@ func CreateUpgradeHandler(
9596

9697
// wasm
9798
case wasmtypes.ModuleName:
98-
keyTable = wasmtypes.ParamKeyTable() //nolint:staticcheck
99+
keyTable = wasmmigrationv2.ParamKeyTable() //nolint:staticcheck
99100

100101
// xpla
101102
case rewardtypes.ModuleName:

app/upgrades/v1_6/const.go

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package v1_6
2+
3+
import (
4+
store "github.com/cosmos/cosmos-sdk/store/types"
5+
6+
"github.com/xpladev/xpla/app/upgrades"
7+
)
8+
9+
const (
10+
UpgradeName = "v1_6"
11+
)
12+
13+
var Upgrade = upgrades.Upgrade{
14+
UpgradeName: UpgradeName,
15+
CreateUpgradeHandler: CreateUpgradeHandler,
16+
StoreUpgrades: store.StoreUpgrades{
17+
Added: []string{},
18+
Deleted: []string{},
19+
},
20+
}
21+
22+
const (
23+
// https://github.com/Arachnid/deterministic-deployment-proxy
24+
thirdwebProxy = "0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222"
25+
26+
upgradeFeeSupporter = "xpla1xj3vn9a27u5q945e2xvwfdh3hv6zuy0qkx9d4l"
27+
)

app/upgrades/v1_6/upgrades.go

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package v1_6
2+
3+
import (
4+
"math/big"
5+
6+
"cosmossdk.io/errors"
7+
sdkmath "cosmossdk.io/math"
8+
"github.com/cosmos/cosmos-sdk/codec"
9+
sdk "github.com/cosmos/cosmos-sdk/types"
10+
"github.com/cosmos/cosmos-sdk/types/module"
11+
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
12+
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
13+
"github.com/ethereum/go-ethereum/common/hexutil"
14+
ethtypes "github.com/ethereum/go-ethereum/core/types"
15+
16+
evmtypes "github.com/xpladev/ethermint/x/evm/types"
17+
"github.com/xpladev/xpla/app/keepers"
18+
)
19+
20+
func CreateUpgradeHandler(
21+
mm *module.Manager,
22+
configurator module.Configurator,
23+
keepers *keepers.AppKeepers,
24+
cdc codec.BinaryCodec,
25+
) upgradetypes.UpgradeHandler {
26+
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
27+
data, err := hexutil.Decode(thirdwebProxy)
28+
if err != nil {
29+
return nil, errors.Wrap(err, "failed to decode ethereum tx hex bytes")
30+
}
31+
32+
msg := &evmtypes.MsgEthereumTx{}
33+
if err := msg.UnmarshalBinary(data); err != nil {
34+
return nil, err
35+
}
36+
37+
if err := msg.ValidateBasic(); err != nil {
38+
return nil, err
39+
}
40+
41+
// fund fee collector by upgrade fee supporter
42+
upgradeFeeSupporterAccout, err := sdk.AccAddressFromBech32(upgradeFeeSupporter)
43+
if err != nil {
44+
return nil, err
45+
}
46+
evmDenom := keepers.EvmKeeper.GetParams(ctx).EvmDenom
47+
borrowedCoins := sdk.NewCoin(evmDenom, sdk.DefaultPowerReduction)
48+
err = keepers.BankKeeper.SendCoinsFromAccountToModule(ctx, upgradeFeeSupporterAccout, authtypes.FeeCollectorName, sdk.NewCoins(borrowedCoins))
49+
if err != nil {
50+
return nil, err
51+
}
52+
53+
// execute thiredweb proxy contract
54+
res, err := keepers.EvmKeeper.EthereumTx(ctx, msg)
55+
if err != nil {
56+
return nil, err
57+
}
58+
59+
if res.Failed() {
60+
return nil, errors.ErrPanic.Wrap(res.VmError)
61+
}
62+
63+
// Gas refunded rollback without use
64+
tx := msg.AsTransaction()
65+
66+
signer := ethtypes.NewLondonSigner(keepers.EvmKeeper.ChainID())
67+
from, err := signer.Sender(tx)
68+
if err != nil {
69+
return nil, err
70+
}
71+
72+
// sender -> rewardDistributeAccount
73+
refundedGas := msg.GetGas() - res.GasUsed
74+
refundAmount := new(big.Int).Mul(new(big.Int).SetUint64(refundedGas), tx.GasPrice())
75+
refundCoin := sdk.NewCoin(evmDenom, sdkmath.NewIntFromBigInt(refundAmount))
76+
err = keepers.BankKeeper.SendCoins(ctx, from.Bytes(), upgradeFeeSupporterAccout, sdk.NewCoins(refundCoin))
77+
if err != nil {
78+
return nil, err
79+
}
80+
81+
// feeCollector -> rewardDistributeAccount
82+
err = keepers.BankKeeper.SendCoinsFromModuleToAccount(ctx, authtypes.FeeCollectorName, upgradeFeeSupporterAccout, sdk.NewCoins(borrowedCoins.Sub(refundCoin)))
83+
if err != nil {
84+
return nil, err
85+
}
86+
87+
return mm.RunMigrations(ctx, configurator, fromVM)
88+
}
89+
}

docs/proto/proto-docs.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
- [Query](#xpla.reward.v1beta1.Query)
2020

2121
- [xpla/reward/v1beta1/tx.proto](#xpla/reward/v1beta1/tx.proto)
22-
- [MsgFundFeeCollector](#xpla.reward.v1beta1.MsgFundFeeCollector)
23-
- [MsgFundFeeCollectorResponse](#xpla.reward.v1beta1.MsgFundFeeCollectorResponse)
22+
- [MsgFundRewardPool](#xpla.reward.v1beta1.MsgFundRewardPool)
23+
- [MsgFundRewardPoolResponse](#xpla.reward.v1beta1.MsgFundRewardPoolResponse)
2424
- [MsgUpdateParams](#xpla.reward.v1beta1.MsgUpdateParams)
2525
- [MsgUpdateParamsResponse](#xpla.reward.v1beta1.MsgUpdateParamsResponse)
2626

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

201201

202202

203-
<a name="xpla.reward.v1beta1.MsgFundFeeCollector"></a>
203+
<a name="xpla.reward.v1beta1.MsgFundRewardPool"></a>
204204

205-
### MsgFundFeeCollector
206-
MsgFundFeeCollector allows an account to directly
207-
fund the fee collector.
205+
### MsgFundRewardPool
206+
MsgFundRewardPool allows an account to directly
207+
fund the reward pool.
208208

209209

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

218218

219219

220-
<a name="xpla.reward.v1beta1.MsgFundFeeCollectorResponse"></a>
220+
<a name="xpla.reward.v1beta1.MsgFundRewardPoolResponse"></a>
221221

222-
### MsgFundFeeCollectorResponse
223-
MsgFundFeeCollectorResponse defines the Msg/FundFeeCollector response type.
222+
### MsgFundRewardPoolResponse
223+
MsgFundRewardPoolResponse defines the Msg/FundRewardPool response type.
224224

225225

226226

@@ -269,7 +269,7 @@ Msg defines the reawrd Msg service.
269269

270270
| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint |
271271
| ----------- | ------------ | ------------- | ------------| ------- | -------- |
272-
| `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. | |
272+
| `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. | |
273273
| `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 | |
274274

275275
<!-- end services -->

go.mod

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
module github.com/xpladev/xpla
22

3-
go 1.20
3+
go 1.21
44

55
require (
66
cosmossdk.io/api v0.3.1
77
cosmossdk.io/errors v1.0.1
88
cosmossdk.io/math v1.3.0
99
cosmossdk.io/simapp v0.0.0-20230608160436-666c345ad23d
10-
github.com/CosmWasm/wasmd v0.45.0
10+
github.com/CosmWasm/wasmd v0.46.0
1111
github.com/cometbft/cometbft v0.37.5
1212
github.com/cometbft/cometbft-db v0.8.0
13-
github.com/cosmos/cosmos-proto v1.0.0-beta.4
14-
github.com/cosmos/cosmos-sdk v0.47.10
13+
github.com/cosmos/cosmos-proto v1.0.0-beta.5
14+
github.com/cosmos/cosmos-sdk v0.47.13
1515
github.com/cosmos/gogoproto v1.4.10
16-
github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.3-0.20240228213828-cce7f56d000b
17-
github.com/cosmos/ibc-go/v7 v7.4.0
16+
github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.3
17+
github.com/cosmos/ibc-go/v7 v7.7.0
1818
github.com/ethereum/go-ethereum v1.10.26
1919
github.com/golang/protobuf v1.5.4
2020
github.com/grpc-ecosystem/grpc-gateway v1.16.0
@@ -24,7 +24,7 @@ require (
2424
github.com/spf13/cobra v1.8.0
2525
github.com/spf13/pflag v1.0.5
2626
github.com/spf13/viper v1.18.2
27-
github.com/stretchr/testify v1.8.4
27+
github.com/stretchr/testify v1.9.0
2828
github.com/xpladev/ethermint v0.23.0-xpla-4
2929
golang.org/x/sync v0.6.0
3030
google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80
@@ -46,7 +46,7 @@ require (
4646
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
4747
github.com/99designs/keyring v1.2.1 // indirect
4848
github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect
49-
github.com/CosmWasm/wasmvm v1.5.1 // indirect
49+
github.com/CosmWasm/wasmvm v1.5.4 // indirect
5050
github.com/StackExchange/wmi v1.2.1 // indirect
5151
github.com/VictoriaMetrics/fastcache v1.6.0 // indirect
5252
github.com/armon/go-metrics v0.4.1 // indirect
@@ -125,7 +125,7 @@ require (
125125
github.com/gtank/merlin v0.1.1 // indirect
126126
github.com/gtank/ristretto255 v0.1.2 // indirect
127127
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
128-
github.com/hashicorp/go-getter v1.7.1 // indirect
128+
github.com/hashicorp/go-getter v1.7.5 // indirect
129129
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
130130
github.com/hashicorp/go-safetemp v1.0.0 // indirect
131131
github.com/hashicorp/go-version v1.6.0 // indirect
@@ -205,12 +205,12 @@ require (
205205
go.opentelemetry.io/otel/trace v1.21.0 // indirect
206206
go.uber.org/atomic v1.10.0 // indirect
207207
go.uber.org/multierr v1.9.0 // indirect
208-
golang.org/x/crypto v0.18.0 // indirect
208+
golang.org/x/crypto v0.21.0 // indirect
209209
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
210-
golang.org/x/net v0.20.0 // indirect
210+
golang.org/x/net v0.23.0 // indirect
211211
golang.org/x/oauth2 v0.16.0 // indirect
212-
golang.org/x/sys v0.16.0 // indirect
213-
golang.org/x/term v0.16.0 // indirect
212+
golang.org/x/sys v0.18.0 // indirect
213+
golang.org/x/term v0.18.0 // indirect
214214
golang.org/x/text v0.14.0 // indirect
215215
golang.org/x/time v0.5.0 // indirect
216216
google.golang.org/api v0.155.0 // indirect
@@ -229,7 +229,7 @@ require (
229229
replace (
230230
// use cosmos fork of keyring
231231
github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0
232-
github.com/cosmos/cosmos-sdk => github.com/xpladev/cosmos-sdk v0.47.10-xpla
232+
github.com/cosmos/cosmos-sdk => github.com/xpladev/cosmos-sdk v0.47.13-xpla
233233

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

0 commit comments

Comments
 (0)