Releases: planetarium/libplanet
Libplanet 4.5.0
Released on May 14, 2024.
Due to changes in #3780 and #3783, a network ran with a prior version may not be compatible with this version. Regarding #3780, a network that ran with an IAction
that has used GetTotalSupply()
with its execution result dependent on its value may not be compatible. Regarding #3783, a network that ran with an IAction
that has either used MintAsset()
and BurnAsset()
with its execution result dependent on handling of a possible Exception
thrown by these methods may not be compatible.
Backward-incompatible API changes
- (Libplanet.Types) Updated
BlockMetadata.CurrentProtocolVersion
from 6 to 7. [#3769] - (Libplanet.Store) Added
IterateSubTrieValues(KeyBytes)
andIterateSubTrieNodes(KeyBytes)
methods toMerkleTrie
. [#3774] - (Libplanet.Types) Added
BlockMetadata.CurrencyAccountProtocolVersion
. [#3775] - (Libplanet.Mocks) Removed
MockWorldState.ToModern()
andMockWorldState.SetTotalSupply()
methods. [#3778] - (Libplanet.Action) Removed
TotalSupplyNotTrackableException
class. [#3780] - (Libplanet.Action)
IWorldState.GetTotalSupply()
no longer throws aTotalSupplyNotTrackableException
but returns a zero amount of correspondingFungibleAssetValue
. [#3780] - (Libplanet.Action) Changed the precednce for the types of
Exception
s that may be thrown byIWorld.MintAsset()
andIWorld.BurnAsset()
.
Added APIs
- (Libplanet.Action) Added
CurrencyAccount
class. [#3779]
Behavioral changes
- (Libplanet.Mocks)
MockWorldState.SetBalance()
now automatically updates the total supply of the providedCurrency
. [#3778]
Libplanet 4.4.2
Libplanet 4.4.1
Released on April 18, 2024.
- Ported changes from Libplanet 4.3.1 release. [#3757]
Libplanet 4.3.1
Libplanet 4.4.0
Released on April 17, 2024.
Backward-incompatible API changes
- (Libplanet.Action) Removed
IWorld.SetValidator()
extension method. UseIWorld.SetValidatorSet()
extension method instead. [#3735] - (Libplanet.Types) Renamed
BlockMetadata.PoWProtocolVersion
toBlockMetadata.PBFTProtocolVersion
andBlockMetadata.LegacyStateVersion
toBlockMetadata.WorldStateProtocolVersion
while increasing each value by 1. [#3736] - (Libplanet.Store) Changed the type of
TrieMetadata.Version
fromBigInteger
toint
. [#3738] - (Libplanet.Store) Changed
TrieMetadata
to throw anArgumentException
when trying to create an instance with an invalid version. [#3738] - (Libplanet.Action) Added
IWorldState.Version
interface property. [#3739] - (Libplanet.Types) Updated
BlockMetadata.CurrentProtocolVersion
from 5 to 6. [#3741] - (Libplanet.Types) Added
BlockMetadata.TransferFixProtocolVersion
,BlockMetadata.SignatureProtocolVersion
, andBlockMetadata.TransactionOrderingFixProtocolVersion
constants. [#3742] - (Libplanet.Action) Removed
ReservedAddresses.FungibleAssetAccount
. [#3745] - (Libplanet.Action) Changed
ReservedAddresses.ValidatorSetAccount
's value from0x1000000000000000000000000000000000000002
to0x100000000000000000000000000000000000001
. [#3745]
Added APIs
Libplanet 4.3.0
Released on April 8, 2024.
Due to changes in #3728, a network ran with a prior version may not be compatible with this version, specifically those that ran with IAction
s that has allowed negative balances through TransferAssets()
with allowNegativeBalance
as true
.
Backward-incompatible API changes
- (Libplanet.Action) Added
Txs
property of typeIReadOnlyList<ITransaction>?
toIActionContext
. [#3713] - (Libplanet.Action) Removed
TotalFungibleAssets
property fromIWorld
. [#3714] - (Libplanet.Action) Changed
GetBalance()
,GetTotalSupply()
, andGetValidatorSet()
ofIWorldState
to extension methods. [#3715] - (Libplanet.Action) Changed
MintAsset()
,BurnAsset()
,TransferAsset()
, andSetValidator()
ofIWorld
to extension methods. [#3715] - (Libplanet.Action) Removed
allowNegativeBalance
parameter fromIWorld.TransferAsset()
extension method. [#3725, #3728] - (Libplanet.Store) Removed
journal
,indexCacheSize
, andflush
parameters fromDefaultStore
's constructor. [#3729]
Dependencies
Libplanet 4.2.0
Released on March 22, 2024.
Backward-incompatible API changes
- (Libplanet.Action) Moved
GetBalance()
andGetTotalSupply()
methods fromIAccountState
toIWorldState
. [#3694, #3697] - (Libplanet.Action) Moved
MintAsset()
,BurnAsset()
, andTransferAsset()
methods fromIAccount
toIWorld
. [#3694, #3697] - (Libplanet.Action) Removed
TotalSupplyDiff
,FungibleAssetValueDiff
, andValidatorDiff
properties fromAccountDiff
. [#3694, #3697] - (Libplanet.Action) Removed
Uncommitted
property andCommitAccount()
method fromIWorldDelta
. [#3694, #3699] - (Libplanet.Action) Moved
GetValidatorSet()
fromIAccountState
toIWorldState
. [#3702] - (Libplanet.Action) Moved
SetValidator()
fromIAccount
toIWorld
. [#3702]
Added APIs
- Added
Libplanet.Mocks
project. [#3642]
Libplanet 4.1.0
Released on March 8, 2024.
Backward-incompatible API changes
- Removed the '#nullable disable' from 3 projects (Action, Common, Explorer). [#3622]
- Removed the '#nullable disable' from the Libplanet.Store project. [#3644]
- Removed the '#nullable disable' from the Libplanet.RocksDBStore project. [#3651]
- Removed
BaseIndex
class and changedBlockSet
base class fromBaseIndex<BlockHash, Block>
toIReadOnlyDictionary<BlockHash, Block>
. [#3686]
Backward-incompatible network protocol changes
- (Libplanet.Net) Changed some types due to removal of 'nullable keyword'. [#3669]
- Changed
blocks
parameter type ofBranch
class constructor fromIEnumerable<(Block, BlockCommit)>
toIEnumerable<(Block, BlockCommit?)>
. - Changed
AppProtocolVersion.Extra
field type fromIValue
toIValue?
. - Changed
extra
parameter type ofAppProtocolVersion
class constructor fromIValue
toIValue?
. - Changed
extra
parameter type ofAppProtocolVersion.Sign
method fromIValue
toIValue?
.
- Changed
Added APIs
- (Libplanet.Store.Remote) Introduce
Libplanet.Store.Server.RemoteKeyValueService
[#3688] - (Libplanet.Store.Remote) Introduce
Libplanet.Store.Client.RemoteKeyValueStore
[#3688]
Behavioral changes
- (Libplanet.Store) Optimized
ITrie.IterateNodes()
to greatly reduce the amount of memory used. [#3687]
Libplanet 4.0.6
Released on February 22, 2024.
- (Libplanet.Action) Fixed a bug where
FeeCollector.Mortgage()
unintentionally resets accumulatedAccount.TotalUpdatedFungibleAssets
. [#3680]
Libplanet 4.0.5
Released on February 20, 2024.
- (Libplanet.Action) Optimized
ActionEvaluation
by removing redundant commits. [#3675]