Releases: planetarium/libplanet
Releases · planetarium/libplanet
Libplanet 2.0.0
Released on June 14, 2023.
Backward-incompatible API changes
-
Added
IAccountStateDelta.TotalUpdatedFungibleAssets
interface property. [#3208] -
Removed
blockAction
parameter fromActionContext()
. [#3209] -
Added
ITransaction.MaxGasPrice
property. [#3201] -
Added
ITransaction.GasLimit
property. [#3201] -
Currency.Serialize()
's behavioral is changed. the serialize field is replaced. [#3201]
Added APIs
- Added
FungibleAssetValue.Serialize()
method. [#3201]
Behavioral changes
Libplanet 1.4.0
Released on June 7, 2023.
Backward-incompatible API changes
- Removed
IBlockChainStates.GetTrie()
interface method. [#3168] - Removed
PolymorphicAction<T>
class. [#3193] - Changed
BlockChain.Create()
to acceptIActionEvaluator
interface instead ofActionEvaluator
object. [#3195] - Removed
blockAction
parameter fromBlockChain.EvaluateGenesis()
,BlockChain.DetermineGenesisStateRootHash()
, andBlockChain.ProposeGenesisBlock()
methods. [#3195]
Libplanet 1.3.0
Released on May 19, 2023.
Backward-incompatible API changes
- Renamed
PreloadState
asBlockSyncState
. [#3154] - Replaced
Swarm<T>.PreloadAsync
's parameterIProgress<PreloadState> progress
asIProgress<BlockSyncState> progress
. [#3154] - Moved
IAccountStateDelta
and relations interface toLibplanet.State
namespace (fromLibplanet.Action
namespace). [#3173] - Changed
BlockChain<T>()
constructors to explicitly require anIBlockChainStates
and anIActionEvaluator
. [#3172] - Changed
BlockChain<T>.DetermineGenesisStateRootHash()
,BlockChain<T>.EvaluateGenesis()
, andBlockChain<T>.ProposeGenesisBlock()
to explicitly requireIActionEvaluator
. [#3172] - Removed type parameter
T
fromBlockChain<T>
class. [#3182] - Removed type parameter
T
fromIBlockPolicy<T>
interface. [#3182] - Removed type parameter
T
fromIStagePolicy<T>
interface. [#3182] - Removed type parameter
T
fromContext<T>
class. [#3183] - Removed type parameter
T
fromConsensusContext<T>
class. [#3183] - Removed type parameter
T
fromConsensusReactor<T>
class. [#3183] - Removed type parameter
T
fromBlockCandidateTable<T>
class. [#3184] - Removed type parameter
T
fromTxCompletion<T>
class. [#3184] - Removed type parameter
T
fromSwarm<T>
class. [#3184] - (Libplanet.Explorer) Removed type parameter
T
requiringT
asIAction
from all classes. [#3185]
Behavioral changes
Gossip
became to store theMessageId
s received through theHaveMessage
instead of immediately replying to them, and send theWantMessage
requests all at once during eachHeartbeatTask
. #3152Swarm<T>.PreloadAsync()
usePullBlocksAsync()
andConsumeBlockCandidates()
. [#3154]Swarm<T>.PreloadAsync()
usesBlockCandidateTable<T>
to cache downloadedBlock
s, instead of storing them on forkedBlockChain<T>
. [#3154]Swarm<T>.PullBlocksAsync()
andSwarm<T>.GetDemandBlockHashes()
iterates using new parameterchunkSize
. [#3154]Swarm<T>.ConsumeBlockCandidates()
repeats iff new parametercheckInterval
is not null. [#3154]Swarm<T>.ConsumeBlockCandidates()
does not renders if new parameterrender
isfalse
. [#3154]Swarm<T>.PullBlocksAsync()
andSwarm<T>.GetDemandBlockHashes()
receives new parameterIProgress<BlockSyncState> progress
and will report progress to it, if it's given. [#3154]- Moved creation of
BlockDemandTable
andBlockCandidateTable
to constructor ofSwarm<T>
fromSwarm<T>.StartAsync()
. [#3154]
Libplanet 1.2.1
Released on May 17, 2023.
- (Libplanet.Explorer) Fixed a bug where a
TransactionQuery
could not properly retrieve actions. [#3174]
Libplanet 1.2.0
Released on May 16, 2023.
Deprecated APIs
- Removed
StaticActionLoader
class. UseSingleActionLoader
instead. [#3148] - Removed
Mint
andTransfer
class. [#3159]
Backward-incompatible API changes
- Removed type parameter
T
fromTransaction.Create<T>()
andPreEvaluationBlock.Evaluate<T>()
. [#3122] - Signatures of
IActionRenderer<T>
's methods was changed. [#3117]- The signature of
RenderAction(IAction, IActionContext, IAccountStateDelta)
method was changed toRenderAction(IValue, IActionContext, IAccountStateDelta)
. - The signature of
RenderActionError(IAction, IActionContext, Exception)
method was changed toRenderActionError(IValue, IActionContext, Exception)
.
- The signature of
- Added
SingleActionLoader
,TypedActionLoader
, andIndexedActionLoader
classes. [#3148] - Removed
trieGetter
parameter fromActionEvaluator
constructor. [#3149] - Added
IBlockChainStates.GetTrie()
interface method. [#3149] BlockChain<T>.Create()
static method now requiresactionEvaluator
parameter explicitly. [#3149]- Removed
IBlockPolicy.NativeTokens
property. [#3153]- Removed
NonNativeTokenException
class. - Removed
IActionContext.IsNativeToken()
method. - Removed
nativeTokenPredicate
parameter fromActionEvaluator()
- Removed
nativeTokenPredicate
parameter from allBlockChain<T>
's methods. - (Libplanet.Explorer) Removed
BlockPolicyType<T>
class.
- Removed
- Removed generic type parameter
T
fromIRenderer<T>
and all its implementations. [#3163] - Removed
IActionContext.GenesisHash
property. [#3164] - Removed
genesisHash
parameter fromActionEvaluator()
. [#3164]
Added APIs
- Added
IActionContext.GasUsed()
method. [#3144] - Added
IActionContext.GasLimit()
method. [#3144] - Added
PolymorphicAction<T>.ReloadLoader()
static method. [#3158]
Behavioral changes
Libplanet 1.1.1
Libplanet 1.0.3
Libplanet 1.1.0
Released on May 9, 2023.
Deprecated APIs
Backward-incompatible API changes
- Changed the encoding scheme and related methods for
TxActionList
. [#3083]- Removed
TxActionList.FromBencodex<T>()
method. - Changed the return type for
TxActionList.ToBencodex()
fromDictionary
toIValue
.
- Removed
- Removed
IRenderer<T>.RenderReorg()
,IRenderer<T>.RenderReorgEnd()
,IActionRenderer<T>.UnrenderAction()
, andIActionRenderer<T>.UnrenderActionError()
. [#3092] - Removed
NonblockRenderer
,NonblockActionRenderer
,DelayedRenderer
, andDelayedActionRenderer
classes. [#3098] - (Libplanet.Net) Removed optional
render
parameter from allSwarm<T>.PreloadAsync()
overload methods. No rendering is done during the preloading phase. [#3108] TxActionList
now implementsIBencodable
interface. [#3110]- Removed
FromBencodex()
static method; useTxActionList(IValue)
constructor instead. - Removed
ToBencodex()
method; useTxActionList.Bencoded
instead.
- Removed
TxActionList
now implementsIEnumerable<IValue>
instead ofIEnumerable<IAction>
. [#3110]- Changed
TxSystemAction.SystemAction
to return anIValue
. - Changed
TxCustomActions.CustomActions
to return anIImmutableList<IValue>
.
- Changed
TxActionList
's JSON representation has changed. It no longer has"type"
field. [#3110]- Changed the type for
ActionTypeAttribute.TypeIdentifier
fromstring
toIValue
. [#3111] - Changed the return type for
ActionTypeAttribute.ValueOf()
fromstring?
toIValue?
. [#3111] - Changed the return type for
IActionTypeLoader.Load()
fromIDictionary<string, Type>
toIDictionary<IValue, Type>
. [#3111] - Changed return types and parameter types of serveral methods from
IReadOnlyList<ActionEvaluation>
toIReadOnlyList<IActionEvaluation>
. [#3089]BlockChain<T>.DetermineGenesisStateRootHash()
method'sevaluations
parameter type.BlockChain<T>.DetermineBlockStateRootHash()
method'sevaluations
parameter type.BlockChain<T>.EvaluateBlock()
method's return type.BlockChain<T>.EvaluateGenesis()
method's return type.
- Removed
BlockChain<T>.MakeTransaction(PrivateKey, IAction, IImmutableSet<Address>, DateTimeOffset?)
. [#3116] - Removed
Transaction<T>.Create(long, PrivateKey, BlockHash?, IAction, IImmutableSet<Address>?, DateTimeOffset?)
. [#3116] - Added
Transaction<T>.Create(long, PrivateKey, BlockHash?, IEnumerable<IValue>, IImmutableSet<Address>?, DateTimeOffset?)
. [#3116] - Removed
ITransaction.SystemAction
andITransaction.CustomActions
. UseITxInvoice.Actions
instead. [#3116] - Overhauled
TxActionList
class. [#3116]- Changed
TxActionList
class to besealed
fromabstract
.TxActionList
is pretty much the oldTxCustomActionsList
. - Changed the JSON representation of
TxActionList
to be more simple. - Removed
TxSystemActionList
andTxCustomActionsList
- Changed
- Changed
Transaction<T>
toTransaction
to be non-generic. [#3121]Transaction.Create<T>()
now requires type parameterT
.
- Changed
Block<T>
toBlock
to be non-generic. [#3123]- Removed
IBlockContent<T>
interface. UseIBlockContent
instead. Also changedIBlockContent.IImmutableSet<ITransaction>
toIBlockContent.ReadOnlyList<ITransaction>
. - Changed
BlockContent<T>
toBlockContent
. - Removed
IPreEvaluationBlock<T>
interface. UseIPreEvaluationBlock
instead. - Changed
PreEvaluationBlock<T>
toPreEvaluationBlock
.PreEvaluationBlock.Evaluate<T>()
now requires type parameterT
.
- Removed
- Removed
PreEvaluationBlock.Evaluate<T>()
method. [#3127] - Renamed
IActionTypeLoader
toIActionLoader
. [#3135]- Added
IActionLoader.Load(long, IValue)
interface method. - Removed
ActionTypeLoaderContext
class. Uselong
instead. - Renamed
StaticActionTypeLoader
toStaticActionLoader
.
- Added
- Added
IActionEvaluator.IActionLoader
property. [#3136] - Changed
IActionLoader.LoadAction()
to throwInvalidActionException
instead ofArgumentException
when an action cannot be instantiated. [#3140]
Backward-incompatible network protocol changes
Backward-incompatible storage format changes
Added APIs
- Added
IActionEvaluator
interface. [#3082] - Added
ActionTypeAttribute(int)
constructor. [#3111] - Added
IActionEvaluation
interface. [#3089] - Added parameterless constructor to
Mint
,Transfer
, andInitialize
. [#3112] - Added
InvalidActionException
class. [#3140]
Behavioral changes
- Changed
BlockChain<T>
to ignoreIRenderer<T>.RenderReorg()
,IRenderer<T>.RenderReorgEnd()
,IActionRenderer<T>.UnrenderAction()
, andIActionRenderer<T>.UnrenderActionError()
, i.e., these interface methods are no longer invoked by aBlockChain<T>
. [#3087] - Changed
Context<T>.ConsumeMutation()
to iteratively callContext<T>.ProcessGenericUponRules()
itself, instead of producing submutations of it. [#3137]
Bug fixes
- Fixes a bug where
BlockChain<T>
could not propose if a certain type of invalidTransaction
was staged. [#3136] - Fixes a bug where
Context<T>
would completely halt if aBlock
with anIValue
as one of its action that cannot be instantiated via itsIActionLoader
. [#3140]
Dependencies
CLI tools
Libplanet 1.0.2
Released on May 4, 2023.
Libplanet 1.0.1
Released on May 3, 2023.