Skip to content

Releases: planetarium/libplanet

Libplanet 2.0.0

14 Jun 04:55
2.0.0
ac6bccf
Compare
Choose a tag to compare

Released on June 14, 2023.

Backward-incompatible API changes

  • Added IAccountStateDelta.TotalUpdatedFungibleAssets interface property. [#3208]

  • Removed blockAction parameter from ActionContext(). [#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

  • Improved performance of StateStoreExtensions.Commit() extension method and MerkleTrie.Commit() method. [#3165]
  • Improved performance of HashDigest<T>.DeriveFrom() static method on .NET Standard 2.1+. [#3165]

Libplanet 1.4.0

07 Jun 09:18
626bf94
Compare
Choose a tag to compare

Released on June 7, 2023.

Backward-incompatible API changes

  • Removed IBlockChainStates.GetTrie() interface method. [#3168]
  • Removed PolymorphicAction<T> class. [#3193]
  • Changed BlockChain.Create() to accept IActionEvaluator interface instead of ActionEvaluator object. [#3195]
  • Removed blockAction parameter from BlockChain.EvaluateGenesis(), BlockChain.DetermineGenesisStateRootHash(), and BlockChain.ProposeGenesisBlock() methods. [#3195]

Libplanet 1.3.0

19 May 07:38
3bf75a4
Compare
Choose a tag to compare

Released on May 19, 2023.

Backward-incompatible API changes

  • Renamed PreloadState as BlockSyncState. [#3154]
  • Replaced Swarm<T>.PreloadAsync's parameter IProgress<PreloadState> progress as IProgress<BlockSyncState> progress. [#3154]
  • Moved IAccountStateDelta and relations interface to Libplanet.State namespace (from Libplanet.Action namespace). [#3173]
  • Changed BlockChain<T>() constructors to explicitly require an IBlockChainStates and an IActionEvaluator. [#3172]
  • Changed BlockChain<T>.DetermineGenesisStateRootHash(), BlockChain<T>.EvaluateGenesis(), and BlockChain<T>.ProposeGenesisBlock() to explicitly require IActionEvaluator. [#3172]
  • Removed type parameter T from BlockChain<T> class. [#3182]
  • Removed type parameter T from IBlockPolicy<T> interface. [#3182]
  • Removed type parameter T from IStagePolicy<T> interface. [#3182]
  • Removed type parameter T from Context<T> class. [#3183]
  • Removed type parameter T from ConsensusContext<T> class. [#3183]
  • Removed type parameter T from ConsensusReactor<T> class. [#3183]
  • Removed type parameter T from BlockCandidateTable<T> class. [#3184]
  • Removed type parameter T from TxCompletion<T> class. [#3184]
  • Removed type parameter T from Swarm<T> class. [#3184]
  • (Libplanet.Explorer) Removed type parameter T requiring T as IAction from all classes. [#3185]

Behavioral changes

  • Gossip became to store the MessageIds received through the HaveMessage instead of immediately replying to them, and send the WantMessage requests all at once during each HeartbeatTask. #3152
  • Swarm<T>.PreloadAsync() use PullBlocksAsync() and ConsumeBlockCandidates(). [#3154]
  • Swarm<T>.PreloadAsync() uses BlockCandidateTable<T> to cache downloaded Blocks, instead of storing them on forked BlockChain<T>. [#3154]
  • Swarm<T>.PullBlocksAsync() and Swarm<T>.GetDemandBlockHashes() iterates using new parameter chunkSize. [#3154]
  • Swarm<T>.ConsumeBlockCandidates() repeats iff new parameter checkInterval is not null. [#3154]
  • Swarm<T>.ConsumeBlockCandidates() does not renders if new parameter render is false. [#3154]
  • Swarm<T>.PullBlocksAsync() and Swarm<T>.GetDemandBlockHashes() receives new parameter IProgress<BlockSyncState> progress and will report progress to it, if it's given. [#3154]
  • Moved creation of BlockDemandTable and BlockCandidateTable to constructor of Swarm<T> from Swarm<T>.StartAsync(). [#3154]

Libplanet 1.2.1

17 May 13:29
df50e75
Compare
Choose a tag to compare

Released on May 17, 2023.

  • (Libplanet.Explorer) Fixed a bug where a TransactionQuery could not properly retrieve actions. [#3174]

Libplanet 1.2.0

16 May 09:16
329dd0a
Compare
Choose a tag to compare

Released on May 16, 2023.

Deprecated APIs

  • Removed StaticActionLoader class. Use SingleActionLoader instead. [#3148]
  • Removed Mint and Transfer class. [#3159]

Backward-incompatible API changes

  • Removed type parameter T from Transaction.Create<T>() and PreEvaluationBlock.Evaluate<T>(). [#3122]
  • Signatures of IActionRenderer<T>'s methods was changed. [#3117]
    • The signature of RenderAction(IAction, IActionContext, IAccountStateDelta) method was changed to RenderAction(IValue, IActionContext, IAccountStateDelta).
    • The signature of RenderActionError(IAction, IActionContext, Exception) method was changed to RenderActionError(IValue, IActionContext, Exception).
  • Added SingleActionLoader, TypedActionLoader, and IndexedActionLoader classes. [#3148]
  • Removed trieGetter parameter from ActionEvaluator constructor. [#3149]
  • Added IBlockChainStates.GetTrie() interface method. [#3149]
  • BlockChain<T>.Create() static method now requires actionEvaluator parameter explicitly. [#3149]
  • Removed IBlockPolicy.NativeTokens property. [#3153]
    • Removed NonNativeTokenException class.
    • Removed IActionContext.IsNativeToken() method.
    • Removed nativeTokenPredicate parameter from ActionEvaluator()
    • Removed nativeTokenPredicate parameter from all BlockChain<T>'s methods.
    • (Libplanet.Explorer) Removed BlockPolicyType<T> class.
  • Removed generic type parameter T from IRenderer<T> and all its implementations. [#3163]
  • Removed IActionContext.GenesisHash property. [#3164]
  • Removed genesisHash parameter from ActionEvaluator(). [#3164]

Added APIs

  • Added IActionContext.GasUsed() method. [#3144]
  • Added IActionContext.GasLimit() method. [#3144]
  • Added PolymorphicAction<T>.ReloadLoader() static method. [#3158]

Behavioral changes

  • Transaction.Create() method no more fills Transaction.UpdatedAddresses automatically. [#368, #3122]
  • Mint and Transfer IActions no longer check for native tokens. [#3153]

Libplanet 1.1.1

15 May 09:17
e158557
Compare
Choose a tag to compare

Released on May 15, 2023.

  • (@planetarium/cli) Fixed the installer bug that it had failed on Linux and macOS since version 1.0.2. [#3107, #3160, #3161]

Libplanet 1.0.3

15 May 08:46
4ed25bf
Compare
Choose a tag to compare

Released on May 15, 2023.

  • (@planetarium/cli) Fixed the installer bug that it had failed on Linux and macOS since version 1.0.2. [#3107, #3160]

Libplanet 1.1.0

09 May 06:02
33fadb3
Compare
Choose a tag to compare

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() from Dictionary to IValue.
  • Removed IRenderer<T>.RenderReorg(), IRenderer<T>.RenderReorgEnd(), IActionRenderer<T>.UnrenderAction(), and IActionRenderer<T>.UnrenderActionError(). [#3092]
  • Removed NonblockRenderer, NonblockActionRenderer, DelayedRenderer, and DelayedActionRenderer classes. [#3098]
  • (Libplanet.Net) Removed optional render parameter from all Swarm<T>.PreloadAsync() overload methods. No rendering is done during the preloading phase. [#3108]
  • TxActionList now implements IBencodable interface. [#3110]
    • Removed FromBencodex() static method; use TxActionList(IValue) constructor instead.
    • Removed ToBencodex() method; use TxActionList.Bencoded instead.
  • TxActionList now implements IEnumerable<IValue> instead of IEnumerable<IAction>. [#3110]
    • Changed TxSystemAction.SystemAction to return an IValue.
    • Changed TxCustomActions.CustomActions to return an IImmutableList<IValue>.
  • TxActionList's JSON representation has changed. It no longer has "type" field. [#3110]
  • Changed the type for ActionTypeAttribute.TypeIdentifier from string to IValue. [#3111]
  • Changed the return type for ActionTypeAttribute.ValueOf() from string? to IValue?. [#3111]
  • Changed the return type for IActionTypeLoader.Load() from IDictionary<string, Type> to IDictionary<IValue, Type>. [#3111]
  • Changed return types and parameter types of serveral methods from IReadOnlyList<ActionEvaluation> to IReadOnlyList<IActionEvaluation>. [#3089]
    • BlockChain<T>.DetermineGenesisStateRootHash() method's evaluations parameter type.
    • BlockChain<T>.DetermineBlockStateRootHash() method's evaluations 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 and ITransaction.CustomActions. Use ITxInvoice.Actions instead. [#3116]
  • Overhauled TxActionList class. [#3116]
    • Changed TxActionList class to be sealed from abstract. TxActionList is pretty much the old TxCustomActionsList.
    • Changed the JSON representation of TxActionList to be more simple.
    • Removed TxSystemActionList and TxCustomActionsList
  • Changed Transaction<T> to Transaction to be non-generic. [#3121]
    • Transaction.Create<T>() now requires type parameter T.
  • Changed Block<T> to Block to be non-generic. [#3123]
    • Removed IBlockContent<T> interface. Use IBlockContent instead. Also changed IBlockContent.IImmutableSet<ITransaction> to IBlockContent.ReadOnlyList<ITransaction>.
    • Changed BlockContent<T> to BlockContent.
    • Removed IPreEvaluationBlock<T> interface. Use IPreEvaluationBlock instead.
    • Changed PreEvaluationBlock<T> to PreEvaluationBlock.
      • PreEvaluationBlock.Evaluate<T>() now requires type parameter T.
  • Removed PreEvaluationBlock.Evaluate<T>() method. [#3127]
  • Renamed IActionTypeLoader to IActionLoader. [#3135]
    • Added IActionLoader.Load(long, IValue) interface method.
    • Removed ActionTypeLoaderContext class. Use long instead.
    • Renamed StaticActionTypeLoader to StaticActionLoader.
  • Added IActionEvaluator.IActionLoader property. [#3136]
  • Changed IActionLoader.LoadAction() to throw InvalidActionException instead of ArgumentException 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, and Initialize. [#3112]
  • Added InvalidActionException class. [#3140]

Behavioral changes

  • Changed BlockChain<T> to ignore IRenderer<T>.RenderReorg(), IRenderer<T>.RenderReorgEnd(), IActionRenderer<T>.UnrenderAction(), and IActionRenderer<T>.UnrenderActionError(), i.e., these interface methods are no longer invoked by a BlockChain<T>. [#3087]
  • Changed Context<T>.ConsumeMutation() to iteratively call Context<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 invalid Transaction was staged. [#3136]
  • Fixes a bug where Context<T> would completely halt if a Block with an IValue as one of its action that cannot be instantiated via its IActionLoader. [#3140]

Dependencies

CLI tools

Libplanet 1.0.2

04 May 12:26
eb6a998
Compare
Choose a tag to compare

Released on May 4, 2023.

  • (Libplanet.Tools) The planet command now falls back to the default cryptography backend instead of crash when it fails to load libsecp256k1 at runtime. [#3138]
  • (@planetarium/cli) Fixed the installer bug that it had failed with some recent Node.js versions on Windows. [#3107, #3138]

Libplanet 1.0.1

03 May 08:15
b360034
Compare
Choose a tag to compare

Released on May 3, 2023.

Bug fixes

  • Fixed a bug where BlockChain<T>.Append() hadn't update tx executions even evaluateActions set to true when actionEvaluations are given. [#3125]
  • (Libplanet.Explorer) Fixed a bug where BlockQuery.blocks field had thrown KeyNotFoundException when appending block simultaneously. [#3126, #3130]