v2.0.16
Meta Earth v2.0.16 Version Upgrade
Meta Earth v2.0.16 includes more than 50 updates, covering core modules such as Wstaking, Kyc, Gravity, DiD, Eibc, Sequencer, Rollapp, Wbank, Wdistri, Tron, and EVM,Involving new feature launch, Bug fix, security check enhancement, governance rule adjustment and performance optimization.
1. New Features
1.1 Tron cross-chain:
- Added request-batch-confirm command-line transaction support.
1.2 NFT:
-
The class-address query interface adds a paging function;
-
The new paging function is added to the nft-filter query interface.
1.3 KYC:
- Added the CreateSubAccount transaction to support the creation of sub-accounts.
2. Bug fixes
2.1 WStaking:
-
Fix the problem that the sum of the pledged interest of users in the whole region is not checked when the user interest is settled by MsgDelegate transaction: Check whether the sum of the pledged interest of all users in the region is sufficient before settlement, report an error if it is insufficient, and deduct the current user settlement interest if it is sufficient;
-
Fixed the verification logic error between the total pledge amount of the verifier and the reduced pledge amount of the user in the Undelegate transaction;
-
Fixed /cosmos/staking/v1beta1/fixed_deposit_by_region query Interface。
2.2 Verifier Update:
- Fixes an issue where the EndBlock BlockValidatorUpdates method does not eliminate duplicate Validator updates.
2.3 DID:
- Repair the Genesis data verification function.
2.4 IBC:
- Fix the OnRecv Packet method of transfergenesis. When the returned ack is nil or success, you can enable Transfers Enabled.
2.5 Gravity:
-
Fixed the problem that the chainName of the gravity/v1/last_observed_relayer query interface is written as bsc. Now both bsc and tron can be queried normally;
-
Fix the problem of repeatedly calculating the number of pending state extraction in the AddToOutgoingPool method;
-
Fixed the problem that when the MsgIncreaseBridge Fee transaction increases the cross-chain transaction Fee, the bridgeFee is not deducted from the Supply of bridgeToken.
2.6 KYC:
-
Fix the problem that inactive Service is incorrectly set as active when Genesis imports status data;
-
Fix the problem that the accumulated unsettled interest in the region is not deducted when the user interest of KYC transaction settlement is removed;
-
Fix the problem that the settlement interest of users with pledge in the experience area is not deducted from the accumulated unsettled interest in the experience area when executing the authentication KYC transaction;
-
Fix the problem that regions slices are initialized to empty data when QueryProtocol queries all regions.
2.7 District Treasury:
- Fix the problem that transactions that withdraw money from the regional vault to the specified address do not verify the lock status of the receiving address-the locked address cannot receive tokens.
2.8 Rollapp:
- Fixes the problem that the parameter is incorrectly passed by NewHeight in the freezeClientState method.
2.9 WBank:
- Fix the problem that the input/output verification in the FeeToReceivers method is only executed after the transfer. Now it has been adjusted to the verification before the transfer.
2.10 WDistri:
- Fix the common problem caused by forced conversion when the zone vault address type conversion fails in the EndBlock AllocateBlockReward method. Now, the error log is printed instead.
2.11 Eibc:
-
Fixed the problem that the query interface of QueryDemandOrdersByStatus incorrectly uses fulfiller and Recipient comparison. Now, it is changed to fulfiller and fulfileraddress comparison;
-
Fix the problem that the MsgUpdateDemandOrder interface is not registered in the codec.
2.12 Transaction Type:
- Fixed legacy message types of MsgLeaveGroupRequest, MsgFreeGasAccount, MsgUpdateDao, MsgUpdateDidStatus and MsgTransferRegion transactions.
2.13 EVM:
- Repair EVM-related functions to ensure that the EVM contract can be used normally.
3. Security Hardening
3.1 Gas fee:
- Before deducting gasfee.
3.2 Verifier Creation:
- When creating a verifier, it is prohibited to use the same public key as the ReplaceConsensusPubKey transaction.
3.3 Rollapp:
-
When executing an UpdateRollapp transaction, check whether the rollapp is being used;
-
When you execute an UpdateRollapp transaction, check whether the rollapp status is frozen;
-
Do not use the "/" character in the chain ID of the rollapp.
3.4 VC:
- When executing the RemoveVC transaction, verify whether the VC certificate already exists.
3.5 DelayAck:
- The RollappPacket is used to check whether the RollappId is consistent with the incoming rollappID.
3.6 NFT:
When casting NFT, check whether the current casting quantity exceeds the total issued quantity.
3.7 Gravity:
-
Check whether the relayer is online during the MsgConfirm Batch and MsgRelayerSetConfirm transaction;
-
The tryatteststation method rejects the request whose totalPower is 0, and adds the relayer online verification;
-
The query request whose req is nil is rejected.
3.8 WStaking:
-
The interface checks whether req is nil and blocks empty query requests.
-
The MsgSetFixedDepositCfgStatus transaction increases the status value verification.
-
The optimized msgnew -- ratemust be greater than 0 and within the [0.0001, 10000] interval.
3.9 Sequencer:
- For the msgreplaceposer transaction, check whether the incoming rolappid is consistent with the rolappid corresponding to the old and new projecers.
3.10 DID:
- Limit the size of the Data field in MsgCreateVC and msgupdateevc transactions.
3.11 Tron:
- Optimize the ValidateTronAddress method to verify the address of the Tron chain.
3.12 KYC:
- When creating an SBT for MsgCreateSBT transaction, check whether the SBT corresponding to the did already exists to prevent repeated creation.
3.13 Gas Account:
- Reject requests with req = nil in the FreeGasAccounts and Is FreeGasAccount queries.
4. Rule Adjustment
4.1 Gas fee allocation mechanism:
- When the transaction contains only one wasm type msg, 40% of the handling fee is allocated to the contract creator; When the transaction contains multiple msg, 40% of the handling fee is allocated to the feel_pool module account (the original 30% handling fee income of the feel_pool remains unchanged).
4.2 Gravity:
-
Remove the verification of the amount of the MsgBondedRelayer and MsgAddDelegate transactions.
-
Adjust the number of cross-chain bridge relay slash, adjust the amount limit;
-
umec tokens are prohibited from being transferred out during cross-chain transfer out.
4.3 KYC:
- Remove the restriction that the same inviter can only issue invitation rewards once.
4.4 CreateRollapp:
- Remove the restriction that the creator must be a whitelist address when the whitelist is not empty.
4.5 UpdateRollapp:
- Removes the creator whitelist verification. Added only the creator of the rollapp can update the permission verification of the rollapp.
5. Performance Optimization
5.1 WStaking:
-
Optimize the interest calculation logic of beginBlock-skip directly when the pledge quantity in the area is 0;
-
Optimize the calculation method of pledge interest-return 0 reward directly when the pledge quantity is 0.
5.2 DelayAck:
- Optimize finalizeRollappPacket method。
5.3 Sequencer:
- Optimize the verification between the msg.Bond parameter and the minBond parameter in the MsgCreateSequencer transaction.
5.4 Chain start:
- Optimize the processing of the EIP155 chain ID.
5.5 EVM:
- Adjust the name of the EVM Chain ID.
What's Changed
- fix: MsgMintNFT singer option in tx.proto by @Huxaiphy in #343
- [BUG BOUNTY] fix(wstaking): validate fixed deposit interest rate range on update (#532) by @sureshchouksey8 in #624
- fix(wstaking): handle zero delegation amount in BeginBlock and improve Calculate function by @GAVINNB in #712
- fix: upgrade evm chain by @koelzen in #718
- fix: remove inviter reward logic from SendInviteReward function by @GAVINNB in #841
- feat: upgrade v2.0.14 for update evm params by @koelzen in #911
- fix(sequencer): enforce non-zero min bond by @jamilahmadzai in #909
- fix(types): prevent double EIP155 suffix and correct chain ID fallback at startup by @KHHH2312 in #898
- Revert "fix(types): prevent double EIP155 suffix and correct chain ID fallback at startup" by @koelzen in #946
- fix: update rollapp by @koelzen in #1122
- fix(gravity): avoid double counting pending withdrawals by @modelsbridgeaicom-ship-it in #969
- fix: reject bridge token symbols colliding with native base denom by @aglichandrap in #26
- fix(wbank): validate fee receiver metadata before transfer by @jamilahmadzai in #1139
- fix: prevent chain halt from invalid treasury addresses in AllocateBlockReward (#1133) by @litinghui-sketch in #1144
- fix: correct FrozenHeight revision number/height argument order in fraud_handler.go by @litinghui-sketch in #1143
- fix(gravity): reject zero-power attestation quorum by @modelsbridgeaicom-ship-it in #1134
- fix: make test by @koelzen in #1165
- ci: pr labels by @koelzen in #1188
- fix: bonded relayer check amount by @koelzen in #1207
- fix(did): bound credential data size by @jamilahmadzai in #1194
- fix(eibc): register update demand order message by @jamilahmadzai in #1189
- fix: decrement bridge token supply on bridge fee increases by @NikYak228 in #616
- fix(types): correct legacy message type strings by @modelsbridgeaicom-ship-it in #1056
- fix(wstaking): prevent nil pointer panic in FixedDepositByRegion when pagination is omitted by @Kai8karma in #1167
- fix(eibc): isFulfiller filter compares FulfillerAddress, not Recipient by @Kai8karma in #1166
- fix: evm chainid set to 2404 by @koelzen in #1288
- ci: publish release images to GHCR on tag pushes by @zenzenless in #1292
- fix: store batch by @koelzen in #1328
- ci: add pr template by @koelzen in #1342
- ci: add golangci-lint workflow with reviewdog by @koelzen in #1378
- fix: relayer not online when confirm by @koelzen in #1385
- style: auto-fix golangci-lint issues across codebase by @koelzen in #1386
- fix: avoid phantom KYC protocol regions by @Aglcr7 in #503
- feat: create sub account by @koelzen in #1387
- fix: Failed rollapp IBC receives can pre-register poisoned DenomMetada… by @marvin-985 in #1389
- fix: validate tron address checksum by @NikYak228 in #577
- style: auto-fix golangci-lint issues by @koelzen in #1390
- style: low-risk lint fixes by @koelzen in #1391
- fix: reject blocked region withdraw receivers by @marvin-985 in #1392
- fix(dao): reject nil free gas query requests by @modelsbridgeaicom-ship-it in #1053
- fix: deduct region delegate interest when settlement interest by @jackz1024 in #1394
- fix: optimize kyc and megroup genesis by @jackz1024 in #1398
- fix(gravity): ignore offline attestation votes by @modelsbridgeaicom-ship-it in #1006
- fix(wstaking): validate fixed deposit config status by @modelsbridgeaicom-ship-it in #978
- fix: reject cross-rollapp replace proposer by @NikYak228 in #652
- fix(kyc): reject duplicate SBT creation by @x0tta6bl4-ai in #738
- refactor: delete unuse meid nft by @jackz1024 in #1408
- fix(denommetadata): return update proposal type by @jamilahmadzai in #1358
- fix: check frozen status when UpdateRollapp by @jackz1024 in #1424
- fix: fix rollapp packet prefix collisions by @marvin-985 in #1425
- fix: MintNFT not allows leading-zero token IDs to bypass class TotalS… by @GAVINNB in #1423
- fix: check user credential in RemoveVC by @jackz1024 in #1427
- fix(gravity): reject nil direct query requests by @modelsbridgeaicom-ship-it in #986
- fix: funds check in ante handler by @koelzen in #1426
- fix: support tron signature in gravity tx cli by @koelzen in #1432
- fix: modify the validation logic by @GAVINNB in #1433
- fix: added pagination for wnft queries by @GAVINNB in #1431
- fix: check rollappsEnable in UpdateRollapp(#921) by @marvin-985 in #1430
- fix: fix genesis import kyc inactive status(#363) and issuers were overwritten by null values. by @marvin-985 in #1434
- fix: fix LastObservedRelayer used hardcode bsc as chain name(#240) by @marvin-985 in #1435
- fix: update OnRecvPacket return handling and transfer enabling logic by @jackz1024 in #1436
- fix(ante): require exactly one message for wasm creator parsing by @GAVINNB in #1438
- fix(did): enforce comprehensive genesis state validation by @GAVINNB in #1437
- feat: add query_type parameter to FixedDepositByRegion endpoint by @GAVINNB in #1439
- fix: fix duplicate ABCI validator updates for the old pubkey of ReplaceConsensusPubkeyInfo.(#293) by @marvin-985 in #1440
- fix: delegate interest validation and add rollapp unit tests by @jackz1024 in #1441
- feat: sub account & v2.0.15 handler by @koelzen in #1422
- fix: create sub account msg by @koelzen in #1442
- fix: remove useless meid by @koelzen in #1443
- ci: dockerfile by @koelzen in #1445
- fix: hardcode evm chainid by @koelzen in #1447
- fix: check create sub account authority by @koelzen in #1448
- fix: check main account pubkey nil by @koelzen in #1449
- fix: check old chainid by @koelzen in #1450
- fix: check sub account did by @koelzen in #1451
- fix: user create sub account by @koelzen in #1453
- fix: check sub account register did by @koelzen in #1454
- fix: rollback events about kyc by @jackz1024 in #1456
- fix: improve error messages for invalid token ID in NFT creation by @jackz1024 in #1458
- fix: update readme by @koelzen in #1459
- fix: subaccount not allowed to delegate by @koelzen in #1461
- fix: add external bridge fee precision by @koelzen in #1462
- fix: uat v2.0.15.rc2 handler by @koelzen in #1463
- fix(rollapp): fixed permission verification error during update opera… by @jackz1024 in #1464
- fix: go lint by @koelzen in #1465
- feat: check send to external limit by @koelzen in #1467
- fix: free gas dao address by @koelzen in #1469
- fix: set max slashing times as 100 by @koelzen in #1470
- fix: reset slash fraction by @koelzen in #1471
- fix: v2.0.16 relayer event nonce update by @koelzen in #1472
- feat: update ts client by @koelzen in #1473
- fix: max delegate amount by @koelzen in #1475
New Contributors
- @Huxaiphy made their first contribution in #343
- @sureshchouksey8 made their first contribution in #624
- @GAVINNB made their first contribution in #712
- @jamilahmadzai made their first contribution in #909
- @KHHH2312 made their first contribution in #898
- @modelsbridgeaicom-ship-it made their first contribution in #969
- @aglichandrap made their first contribution in #26
- @litinghui-sketch made their first contribution in #1144
- @NikYak228 made their first contribution in #616
- @Kai8karma made their first contribution in #1167
- @zenzenless made their first contribution in #1292
- @Aglcr7 made their first contribution in #503
- @marvin-985 made their first contribution in #1389
- @x0tta6bl4-ai made their first contribution in #738
Full Changelog: v2.0.15...v2.0.16