Releases: moonbeam-foundation/moonbeam
Moonbeam v0.21.1
Priority
- RPC Nodes:
High
- prevents eth_feeHistory request to crash node - Collators:
Low
Breaking change
- Metrics in prometheus are new using
moonbeam_
prefix (see #1329).
(This is likely to change in the next release to remove addition substrate_ prefix)
Changes
- Fix wrong "to" value in tracing for DelegateCall (#1299)
- Remove all
unwrap()
in production code (#1327) - use 'moonbeam' prefix when emitting prometheus metrics (#1329)
- Pin frontier
e37f7d9
(fix fee history unwrap) (#1341) - Update client version to v0.21.1 (#1346)
Dependency changes
Moonbeam: v0.21.0...v0.21.1
Substrate: moonbeam-foundation/substrate@c84f200...c84f200
Polkadot: moonbeam-foundation/polkadot@66cb46b...66cb46b
Cumulus: moonbeam-foundation/cumulus@b43fcff...b43fcff
Frontier: moonbeam-foundation/frontier@2be428c...e37f7d9
Moonbeam v0.21.0
Targeted deployment:
- Alphanet: Saturday 26th Feb 2022
- Moonriver: Monday 28th Feb 2022
- Moonbeam: Wednesday 2nd Mar 2022
Changes
- Pin frontier
eth_call
return code instead address (#1303) - Fix client debug unwrap issue (#1276)
- Remove perf-test sys-info feature (#1192)
- 0.9.17 Dependency Upgrade (#1319)
- Fix issues from migrating to clap v3 (#1324)
Dependency changes
Moonbeam: v0.20.1...v0.21.0
Substrate: moonbeam-foundation/substrate@570b21a...c84f200
Polkadot: moonbeam-foundation/polkadot@c028a34...66cb46b
Cumulus: moonbeam-foundation/cumulus@c92f0ab...b43fcff
Frontier: moonbeam-foundation/frontier@07021fa...2be428c
Runtime 1300
Description
This runtime includes breaking changes on the api of asset-manager, detailed here:
Substrate API (PolkadotJS)⚠️ Breaking Change⚠️
Asset manager query changes
Querying the account assets is now returning an Optional value:
- runtime 1201:
api.query.assets.account(assetId, accountId) => PalletAssetsAssetAccount
- runtime 1300:
api.query.assets.account(assetId, accountId) => Option<PalletAssetsAssetAccount>
This code snippet allows to support both:
const accountAssetData = await apiAt.query.assets.account(assetId, accountId);
if (!accountAssetData.isEmpty) {
const accountAsset: PalletAssetsAssetAccount =
unwrap" in accountAssetData ? accountAssetData.unwrap() : (accountAssetData as any);
console.log(`Account balance is ${accountAsset.balance.toBigInt()}`);
}
A new storage item name SupportedFeePaymentAssets
, being a vector Vec<AssetType>
, which holds the assets that we accept for xcm fee payment
A new extrinsic RemoveSupportedAsset(asset, numAssetsWeightHint)
, where asset:AssetType
is the asset to be removed and numAssetsWeightHint
refers to the number of supported assets for fee payment (length of SupportedFeePaymentAssets
) in storage.
-
SetAssetUnitsPerSecond: an additional parameter
numAssetsWeightHint
needs to be passed, being the number of supported assets for fee payment (length ofSupportedFeePaymentAssets
) in storage. -
ChangeExistingAssetType: an additional parameter
numAssetsWeightHint
needs to be passed, being the number of supported assets for fee payment (length ofSupportedFeePaymentAssets
) in storage.
Runtimes
Moonbase
✨ spec_version : 1300
🏋 size : 1189429
#️⃣ sha256 : 0xb335022301b9e6c56ff138633f906ce4899219f933feba2bbec2a4ac6622ea05
#️⃣ blake2-256 : 0x690d1ed6d7237dc125c2e7383f2311b8c63e7e3ad4f401c02ab1d5e9a978f57f
🗳️ proposal (authorizeUpgrade) : 0xe41818e42f268f978e10fe50a6971e4314b0aeeddf3770fc3bad1f5544139fa5
Moonriver
✨ spec_version : 1300
🏋 size : 1181500
#️⃣ sha256 : 0x93828da89060e3d613997bcbe80c1d3c8125939cc848132d3c8f4aa4c62bfebe
#️⃣ blake2-256 : 0xe4f8ad20bdf5fe62ec43732a6ae819e47f9bb15c1b9e650da171b06962f0a376
🗳️ proposal (authorizeUpgrade) : 0x6e9b0600fddd82f740f0a883e52804b65d9e1ef728c3f3f7a42ee7f929757cd8
Moonbeam
✨ spec_version : 1300
🏋 size : 1164678
#️⃣ sha256 : 0xdb1dc47e1775b51d509c281b7dca882f7db67e85f68ec27e6f15b4e31414bacc
#️⃣ blake2-256 : 0xc18b6d14021a066f196d84f508978d34818094a083dca7841f8b5437f6140047
🗳️ proposal (authorizeUpgrade) : 0x02666936739fa8a5f9ed1873ecd3cce32b65d67ce6fdd3099e5ba00d53cb57c7
Build information
WASM runtime built using rustc 1.56.1 (59eed8a2a 2021-11-01)
Changes
- 0.9.16 dependency upgrade (#1273)
- Fix Staking total delegations mismatch (#1291)
- Add
BaseFeePerGas
storage value update to migration code (#1298) - Add field names to pallet Event variants (#1277)
- Uncomment event and pin to new xtokens commit (#1292)
- Add GLMR ERC20 precompile on Moonbeam (#1308)
- Enable native asset cross chain transfer in moonriver (#1236)
- Fix removing request when delegation is kicked from bottom (#1307)
- Supported fee payment assets storage (#1118)
Dependency changes
Moonbeam: runtime-1201...runtime-1300
Substrate: moonbeam-foundation/substrate@3a5aa8c...570b21a
Polkadot: moonbeam-foundation/polkadot@ac51d9b...c028a34
Cumulus: moonbeam-foundation/cumulus@0f82e1f...c92f0ab
Frontier: moonbeam-foundation/frontier@0b66a77...a74529a
Moonbeam v0.20.1
Priority
- RPC Node =>
‼️ HIGH: This is a high priority release and you must upgrade as as soon as possible. - Collator => Low
Changes
Dependency changes
Moonbeam: v0.20.0...v0.20.1
Substrate: moonbeam-foundation/substrate@570b21a...570b21a
Polkadot: moonbeam-foundation/polkadot@c028a34...c028a34
Cumulus: moonbeam-foundation/cumulus@c92f0ab...c92f0ab
Frontier: moonbeam-foundation/frontier@75183a3...07021fa
Moonbeam v0.20.0
Changes
Dependency changes
Moonbeam: v0.19.2...v0.20.0
Substrate: moonbeam-foundation/substrate@3a5aa8c...570b21a
Polkadot: moonbeam-foundation/polkadot@ac51d9b...c028a34
Cumulus: moonbeam-foundation/cumulus@0f82e1f...c92f0ab
Frontier: moonbeam-foundation/frontier@32b7cf4...75183a3
Moonbeam v0.19.2
Changes
Dependency changes
Moonbeam: v0.19.1...v0.19.2
Substrate: moonbeam-foundation/substrate@3a5aa8c...3a5aa8c
Polkadot: moonbeam-foundation/polkadot@ac51d9b...ac51d9b
Cumulus: moonbeam-foundation/cumulus@0f82e1f...0f82e1f
Frontier: moonbeam-foundation/frontier@3bb9f72...32b7cf4
Runtime 1201
Runtimes
Moonbase
✨ spec_version : 1201
🏋 size : 1141606
#️⃣ sha256 : 0x37d63a24e1a44643ab80fc17e16064cec07019ad5091b5a4bc85e91a6564a200
#️⃣ blake2-256 : 0xae3d1a7ad0eff0318d2025762c9d7ebac8c869601151c1e086767bd3847d10dd
🗳️ proposal (authorizeUpgrade) : 0x4883be8cf4ef33ab52215e108b314b1bb2fb5af29b4380bca15f3274877e224c
Moonriver
✨ spec_version : 1201
🏋 size : 1144838
#️⃣ sha256 : 0xaa89108cd1e14f248d7889e52b3604ffdfb7796823e1412cbf4133e45c1298a5
#️⃣ blake2-256 : 0xf520a6b0c3b724d29fec7cdee5b3402ace0c2d5f32b57872779a82d9c950f3bc
🗳️ proposal (authorizeUpgrade) : 0xb640e3694b755bc04a06b21dc1ce453dd6af531cb9cf2bab47bf9206fb1070e6
Moonbeam
✨ spec_version : 1201
🏋 size : 1131471
#️⃣ sha256 : 0xe5cb5e9017426d7809b5079f68dcc59b5c519a899782f5d271539cb52bd536ba
#️⃣ blake2-256 : 0x97baa6a8847c94aecab65f3800ca581bbf47d6d0425aa9494a66593bfc0d47f2
🗳️ proposal (authorizeUpgrade) : 0xe9e1f2c91c0ddb6be19ff2c16f7027fd027d3f1a51d5ab18a91265368d182722
Build information
WASM runtime built using rustc 1.56.1 (59eed8a2a 2021-11-01)
Changes
- Fix parent block eth hash calculation between runtime version (#1263)
Dependency changes
Moonbeam: runtime-1200...runtime-1201
Substrate: moonbeam-foundation/substrate@3a5aa8c...3a5aa8c
Polkadot: moonbeam-foundation/polkadot@ac51d9b...ac51d9b
Cumulus: moonbeam-foundation/cumulus@0f82e1f...0f82e1f
Frontier: moonbeam-foundation/frontier@b4729e6...0b66a77
Moonbeam v0.19.1
Changes
- Client v0.19.1 (#1254)
- Fixes gasEstimate through Frontier (moonbeam-foundation/frontier#35)
Dependency changes
Moonbeam: v0.19.0...v0.19.1
Substrate: moonbeam-foundation/substrate@3a5aa8c...3a5aa8c
Polkadot: moonbeam-foundation/polkadot@ac51d9b...ac51d9b
Cumulus: moonbeam-foundation/cumulus@0f82e1f...0f82e1f
Frontier: moonbeam-foundation/frontier@b4729e6...3bb9f72
Runtime 1200
Description
This runtime introduces many changes to our Ethereum layer, specially around the EIP 1559. Here are the important parts:
EVM 0.33.1 - London support
- EIP-3198: BASEFEE opcode
- EIP-3529: Reduction in refunds
- EIP-3541: Reject new contracts starting with the 0xEF byte
Ethereum 0.11.1
Ethereum API - Changes
- new rpc
eth_feeHistory
: Returns transaction fee data for up to 1,024 blocks. - new property
block.baseFeePerGas
: baseFeePerGas used for the given block - new property
transactionReceipt.effectiveGasPrice
: gas price being used for the transaction - new property
transaction.accessList
: is an array of type[[{20 bytes}, [{32 bytes}...]]...]
, storing the contract address and the storage keys. Ex:-
[ [ "0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae", [ "0x0000000000000000000000000000000000000000000000000000000000000003", "0x0000000000000000000000000000000000000000000000000000000000000007" ] ], [ "0xbb9bc244d798123fde783fcc1c72d3bb8c189413", [] ] ]
-
- new property
transaction.maxFeePerGas
: how much BaseFee the transaction is allowed to pay. - new property
transaction.maxPriorityFeePerGas
: Correspond to the "tip" to the miner. (Note: It is currently included in the normal fees, being 20% to parachain bond and 80% burnt. This might change in the future) - new property
transaction.type
: The current type of transaction0
(Legacy),1
(EIP-2930),2
(EIP-1559) ⚠️ The base fee used in block is currently constant (1Gwei on Moonbase/Moonriver and 100Gwei on Moonbeam). The call theeth_gasPrice
will return that value.
Substrate API (PolkadotJS) - Staking query changes - ⚠️ Breaking Change⚠️
-
⚠️ parachainStaking.executeLeaveCandidates
added the weight hint parameterCandidateDelegationCount
. It was added after the benchmarking was made more accurate, which also increased the transaction weights (fees). -
⚠️ parachainStaking.candidateState
is now deprecated and won't return any data. It is replaced by the following 3 functions : -
parachainStaking.candidateInfo
=> Returns the CandidateMetadata structure:-
Exemple:
ParachainStakingCandidateMetadata: { bond: 'u128', delegationCount: 'u32', totalCounted: 'u128', lowestTopDelegationAmount: 'u128', highestBottomDelegationAmount: 'u128', lowestBottomDelegationAmount: 'u128', topCapacity: 'ParachainStakingCapacityStatus', bottomCapacity: 'ParachainStakingCapacityStatus', request: 'Option<ParachainStakingCandidateBondLessRequest>', status: 'ParachainStakingCollatorStatus' // This was previously named `state` }
{ bond: 1,000,000,000,000,000,000,000 delegationCount: 1 totalCounted: 2,000,000,000,000,000,000,000 lowestTopDelegationAmount: 1,000,000,000,000,000,000,000 highestBottomDelegationAmount: 0 lowestBottomDelegationAmount: 0 topCapacity: Partial bottomCapacity: Empty request: null status: Active }
-
-
parachainStaking.topDelegations
=> Returns the Delegations structure:-
Exemple:
ParachainStakingDelegations: { delegations: 'Vec<ParachainStakingBond>', total: 'u128' }
{ delegations: [ { owner: 0xC0F0f4ab324C46e55D02D0033343B4Be8A55532d amount: 1,000,000,000,000,000,000,000 } ] total: 1,000,000,000,000,000,000,000 }
-
-
parachainStaking.bottomDelegations
=> Returns the same Delegations structure as TopDelegations. -
⚠️ constparachainStaking.maxDelegatorsPerCandidate
=> is now replaced bymaxTopDelegationsPerCandidate
-
const
parachainStaking.maxTopDelegationsPerCandidate
=> the max number (u32) of delegations in the TopDelegations (currently set to 300 on all runtimes) -
const
parachainStaking.maxBottomDelegationsPerCandidate
=> the max number (u32) of delegations in the BottomDelegations (currently set to 50 on all runtimes). This implies that bottom delegations after 50 will get automatically and instantly revoked (The list, which includes delegations not eligible for rewards, is ordered by staking amount so the lowest staking delegation are the first ones to be revoked) -
⚠️ eventCandidateWentOffline(RoundIndex, T::AccountId)
has been replaced byCandidateWentOffline(T::AccountId)
-
⚠️ eventCandidateBackOnline(RoundIndex, T::AccountId)
has been replaced byCandidateBackOnline(T::AccountId)
-
event
DelegationKicked(T::AccountId, T::AccountId, BalanceOf<T>)
has been added => This event is sent when the lowest of the BottomDelegations list is kicked (This happens when the top delegations and bottom delegations are full and a new delegation with higher amount is coming)
Substrate API (PolkadotJS) - Asset manager query changes - ⚠️ Breaking Change⚠️
-
⚠️ assetManager.asset_id_units_per_second
is now deprecated and won't return any data. It is replaced by the following function : -
assetManager.asset_type_units_per_second
=> Returns u128 being the amount of units charged for an asset, asasset_id_units_per_second
, but its a mapping whose key is the assetType and not the assetId -
⚠️ assetManager.setAssetsUnitsPerSecond
changes from requesting(T::AssetId, u128)
to requesting(T::AssetType, u128)
-
⚠️ assetManager.registerAsset
accepts an additional boolean parameteris_sufficient
, that indicates whether an account can exist in storage just by having asset units -
⚠️ eventUnitsPerSecondChanged(T::AssetId, u128)
has been replaced byUnitsPerSecondChanged(T::AssetType, u128)
-
assetManager.asset_type_id
=> Returns the assetId associated with an assetType (https://github.com/PureStake/moonbeam/blob/59522b72cd752bfab39c9229cdc7d7b869dffadd/pallets/asset-manager/src/lib.rs#L145) -
a new extrinsic
change_existing_asset_type
, which allows to change the assetId associated to an assetType
Runtimes
Moonbase
✨ spec_version : 1200
🏋 size : 1140744
#️⃣ sha256 : 0x2bc686a2c640eb09ce47754ea34648224fbf00a9ed0704911336beb0a811b928
#️⃣ blake2-256 : 0x480e902941988d9a1d0f62f8b4a1aa9abc3bc44fef2c19e82b0d68b4704cc17d
🗳️ proposal (authorizeUpgrade) : 0xa6cc36a14c0e62e060bc87656742d0469778d500dac44b14fe633d77edb55dd8
Moonriver
✨ spec_version : 1200
🏋 size : 1144341
#️⃣ sha256 : 0xe22d4bd47af1da1ab38b3284d08d2da247e5853428ca19124360c98272e8780e
#️⃣ blake2-256 : 0xd616498de1a953e89a7dafb719adaf2b344a50562f92940300230219041cf9d1
🗳️ proposal (authorizeUpgrade) : 0x7a9ef6122fe98bef1940de26e5e32145cf89c5919a539c04759954a4c27e3c5a
Moonbeam
✨ spec_version : 1200
🏋 size : 1131782
#️⃣ sha256 : 0x6074b7b2db2d410b71c8eecfb8b849cc87723a66b677112278c5319f3f0f7baf
#️⃣ blake2-256 : 0xed658efc35c7949ead7283405e4509377bad584545ca03459fe0babad823af46
🗳️ proposal (authorizeUpgrade) : 0x9fe2446e6caa9d488ed27596e6df26ee9a95eadc94d4d90076cbfacdeae75aa7
Build information
WASM runtime built using rustc 1.56.1 (59eed8a2a 2021-11-01)
Changes
- Improve stability & performance of EVM tracing Step event (#1033, #1144)
- Add is_sufficient support for Assets (#1077)
- Update Frontier/Ethereum/EVM to support Substrate v0.9.13 + EIP-1559 (#1006, #1176, #1178)
- Add Identity to NonTransfer proxy for all runtimes (#1123)
- Add
eth_feeHistory
RPC method (#1126) - Add Author mapping precompile (#1129, #1160)
- Add deposit/withdraw wETH functions to balances ERC20 precompile (#1106, #1145)
- Add Democracy precompile to Moonriver (#1148)
- Disable Identity, ParachainStaking and Treasury in MaintenanceMode (#1153)
- Improve precompiles support for
payable
/view
keywords (#1142) - Fix XCM max UMP weight and add transact info migration (#1114)
- Fix incorrect staking total for candidate bond more and add extrinsic to fix incorrect state (#1162)
- Enable XCM on moonbeam (#1183)
- Fix support for U256::MAX value in ERC20 precompiles
approve
(#1201) - Add support for multi-location Statemine prefix breaking change (#1159, #1205, #1220)
- Fix leftover staking delegation request in execute_leave_candida...
Runtime 1103
Runtimes
Moonbase
✨ spec_version : 1103
🏋 size : 1093694
#️⃣ sha256 : 0x8c2babf954992e52df2b302abfad9c248bd9518d27de7b16b4a60aba9c3ca995
#️⃣ blake2-256 : 0x0edad6a307312fd8e6914f437eb006852503d9ab6701de7bae183e3a9b705cd4
🗳️ proposal (authorizeUpgrade) : 0xf4900788fcd6e0770f48e88cc7fb1574a594294d536d13a84d2a624a5d03bb5d
Moonriver
✨ spec_version : 1103
🏋 size : 1085315
#️⃣ sha256 : 0x1d3472e2e492188f07b3b9d16271c26684d4e12c0e338c3aee72a5df1a2a19dd
#️⃣ blake2-256 : 0xe680ebbeb387ea4afb1ec8e899499688eaab30da28beb73887cf4c74ee7d8aa2
🗳️ proposal (authorizeUpgrade) : 0x4bcc3d16c0d137480c4b16f5709986166067a4d9fdebdf0a747df2f231004def
Moonbeam
✨ spec_version : 1103
🏋 size : 752763
#️⃣ sha256 : 0x92ecf01198fb6134f8015b6824ec54553376e97f906b15671c73d1288c39e335
#️⃣ blake2-256 : 0xbde1888bf1a7dfe1964615a1aac135938025be32a1c1431e7e07e0ab059d31e1
🗳️ proposal (authorizeUpgrade) : 0x69a4e58b3a19d1ce4e76c0bcba025db714c62e66e2dba3c60371276c173a6801
Build information
WASM runtime built using rustc 1.53.0 (53cb7b09b 2021-06-17)
Changes
- Runtime 1103 (#1216)
- Use versionned runtime API to convert transactions (moonbeam-foundation/frontier/pull/31)
Dependency changes
Moonbeam: runtime-1102...runtime-1103
Substrate: moonbeam-foundation/substrate@e09e70a...e09e70a
Polkadot: moonbeam-foundation/polkadot@415ce0d...415ce0d
Cumulus: moonbeam-foundation/cumulus@1cb6d23...1cb6d23
Frontier: moonbeam-foundation/frontier@8cfdfa3...276a54a