All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This project uses NerdBank.GitVersioning to manage version numbers. This tool automatically sets the Semantic Versioning Patch value based on the Git height of the commit that generated the build. As such, released versions of this package will not have contiguous patch numbers. Initial major and minor releases will be documented in this file without a patch number. Patch version will be included for bug fixes, but may not exactly match a publicly released version.
TestApplicationEngine
emits raw code coverage data to folder specified inNEO_TEST_APP_ENGINE_COVERAGE_PATH
environment variable when set.
ToolkitWallet
a shared implementation of Neo Wallet for developer scenariosBranchInfo
model type- Diagnostic record model types
EnableAnsiEscapeSequences
utility methodResolveFileName
extension methodJsonWriterExtensions
extension methods- WorkNet extension constants
- Updated
DebugInfo
model types to use C#record
/record struct
- Marked
DebugInfo.LoadAsync
obsolete - PersistentTrackingStore class uses column family named
PersistentTrackingStore
by default - Reworked
StateServiceStore
to load as much info asyncronously ahead of time (usingBranchInfo
record), handle remote logic directly and redefinedICacheClient
to only handle caching responsibilities
- RocksDB extension methods that have recently been encorporated into rocksdb-sharp library
- Reworked GitHub Action workflows into reusable pieces (
test
&package
) and action specific workflows (pr
,push
&release
).
- Updated to Neo v3.4 (#70)
- CreateGenesisContract extension method (#60)
- Utility.VerifyProof method (1d4b6ab53868b0b0fda961d135e6d86f9c65f6ce)
- PersistentTrackingStore (#67)
- Removed storage providers (#69)
- Storage Providers are specific to Neo Express so they were moved into that repo
- Updated to Neo 3.3.1 (#69)
- Verify state service proofs in StateServiceStore methods (#64)
- MemoryTrackingStore throws NullReferenceException when
Put
a null value to match RocksDB behavior - Moved
RocksDbStorageProvider.CreateCheckpoint
overloads to be extension methods - Support additional instructions in GetComment (4cafe6643f0516ba8ba3536bea4e725da9bce12e)
- Changed to embedded debug symbols
- Replaced all Azure DevOps Pipelines with GitHub Actions
- Updated build definition to run tests on MacOS as well as Windows and Ubuntu
- ContractParameterParser.ConvertObject and ContractParameterParser.ConvertStackItem static methods (#56)
- Added method token support for CALLT opCode in Extensions.GetComment (#57)
- Update to Neo 3.1.0, target framework net6.0 and C# language version 10 (#55)
- Update KNOWN_NETWORK_NUMBERS (#55)
- Moved general Neo MessagePack formatters to MessagePack.Formatters.Neo.BlockchainToolkit namespace (#55)
- Simplified service override code in
TestApplicationEngine
(#50) - Made
NullStore.Instance
readonly (#50) MemoryTrackingStore
disposes underlyingIReadOnlyStore
, if underlying store isIDisposable
(#51)- Replaced
checkpointCleanup
disposable with checkpoint folder cleanup inCheckpointStorageProvider
(#51) - Replaced
CheckpointStorageProvider
public constructor with staticOpen
method (#51) - Made metadata parameters to
RocksDbUtility.RestoreCheckpoint
optional (#51)
- Instruction and branch execution tracking in
TestApplicationEngine
(#50) ICheckpointStore
,CheckpointStore
andNullCheckpointStore
(#51)RocksDbUtility.GetTempPath
(#51)IStore.EnsureLedgerInitialized
extension method (#51)RocksDbStorageProvider.OpenForDiscard
static method (#51)- Added Base64 encoding support for ContractParameterParser.ParseObjectParameter (#55)
- Add UInt256 MessagePack Formatter (#55)
IDisposableStorageProvider
interface (#51)- Obsolete
RocksDbStorageProvider.RestoreCheckpoint
methods (#51) - Public
RocksDbStore
constructors (#51)
Thanks to @merl111 for his contribution (#41) in this release
- static function to create a dummy block for testing (#41)
- StateServiceStore (#45, #46, #48)
- Persistence Refactoring (#44)
- Update dependencies (#47)
- MessagePack to 2.3.85
- Neo to 3.0.3
- OneOf to 3.0.201
- rocksdb to 6.22.1.20635
- System.IO.Abstractions to 13.2.47
- Updated Neo dependency to 3.0.2
- Neo N3 release support
- Bumped major version to 3 for consistency with Neo N3 release
- Changed package name from Neo.BlockchainToolkit3 to Neo.BlockchainToolkit.Library
- Neo N3 RC4 support
- Update trace models (#34)
- correctly update immutable tracking map (#37)
- move read array/map header out of for loop in StackItemFormatter.Deserialize (#38)
- support empty string param in TrimStartDirectorySeparators (f271ac0e745cc2da00f59452364ce90aaa04d260)
- Ensure operation field is not null (#39)
- Update GitHub + Azure Pipeline Build files
- Create test transactions for TestApplicationEngine (#33)
- Cross Platform Path Handling (#31)
- Neo N3 RC3 support
- Handle sequence points with negative document index values (#27)
- Resolve Slot Indexes when loading debug info (#28)
- Work around neo-project/neo-devpack-dotnet#637 (#29)
- file:// URI support (#17)
- Debug Info Static Variables (#21)
- added ProtocolSettingsRecord (#22)
- support optional explicit slot indexes (#25)
- ensure length before accessing string char by index + test (#16) fixes neo-project/neo-express#136
- Neo N3 RC2 support
- Debug Info Parsing
- Disassembly Helper Methods (
EnumerateInstructions
,GetOperandString
andGetComment
)
- Neo N3 RC1 support
- Neo 3 Preview 5 support
Initial Release