Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
67e4975
[`ut`] 100% Coverage Trie.Get (#3952) (#3957)
NGDAdmin May 22, 2025
d3b943a
New Dockerfile, New Makefile (#3954)
superboyiii May 23, 2025
39b37b5
[`Optimize`]: command tokenizer (#3918)
Wi1l-B0t May 23, 2025
9599679
[`Add`]: Plugin Sign Client (#3950)
Wi1l-B0t May 26, 2025
8403891
[`Style`]: make the code style of `StatePlugin` more standard (#3951)
Wi1l-B0t May 26, 2025
4bd86c7
Fix BigDecimal (#3963)
shargon May 26, 2025
4f0c588
Optimize: 1. add show usage if arg not provided; 2. remove downloaded…
Wi1l-B0t May 26, 2025
a6585bb
* 100% Coverage Trie.Get (#3964)
May 27, 2025
0d1ebb0
docs: Add contribution guidelines and branch rules to README (#3960)
May 27, 2025
0a231b7
[UnitTest] - Add unit tests for BigDecimal to increase code coverage …
ajara87 May 27, 2025
0a99f61
[UnitTest] Increase unit test coverage for UInt160 and UInt256 (#3956)
ajara87 May 27, 2025
7181c93
Update devcontainer.dockerfile version (#3965)
vncoelho May 28, 2025
452f9a5
Optimzie: 1. Merge duplicated code in MainService to a LoadScript met…
Wi1l-B0t May 28, 2025
6c55def
docs: Add Neo persistence system architecture documentation (#3959)
May 29, 2025
a2cd7ef
Optimize: Remove unnecessary `stackalloc` in UInt160 and UInt256 Ser…
Wi1l-B0t May 29, 2025
2378848
[feature] Storage events (#3967)
shargon May 30, 2025
2bb8bda
Optimize: keep more exception info in UInt160.Parse and UInt256.Parse…
Wi1l-B0t Jun 2, 2025
9071acc
Change to official repo (#3977)
shargon Jun 3, 2025
142b713
Reduce cache access (#3979)
shargon Jun 5, 2025
ed1cf40
[`style`] Style MPT project (#3980)
shargon Jun 5, 2025
fb95b4a
tests: extend StdLib's unit tests (#3986)
AnnaShaleva Jun 6, 2025
ea5a56f
Style: fix some variable with underscore style (#3989)
Wi1l-B0t Jun 8, 2025
e2e62bb
Optimzie: use CommonPrefixLength instead in Trie.Put (#3990)
Wi1l-B0t Jun 8, 2025
5c8874d
Create issue-metrics.yml (#3985)
shargon Jun 10, 2025
bed8c57
Fix: Assertion arguments should be passed in the correct order (#3999)
Wi1l-B0t Jun 10, 2025
c8d1549
Fix not null reference (#3996)
shargon Jun 11, 2025
3e08ff8
Add: more exception info when throw ArgumentException (#3998)
Wi1l-B0t Jun 12, 2025
de16170
[`style`] Json decorator (#3995)
shargon Jun 12, 2025
f4e4706
MPTTrie clean (#3994)
shargon Jun 13, 2025
538e5b4
Fix: P/Invokes should not be visible (#4003)
Wi1l-B0t Jun 16, 2025
14a7c22
[Optimization] - Optimize key method (#4001)
ajara87 Jun 18, 2025
5a01a56
Fix Threading hanging with `NeoSystem` (#4005)
cschuchardt88 Jun 18, 2025
f864e8a
Style: unify json init style (#4004)
Wi1l-B0t Jun 18, 2025
0dad015
Update packages (#4006)
shargon Jun 19, 2025
1ebd85d
Restore DBFTPlugin Unit Tests (ConsensusService and Consensus Context…
vncoelho Jun 20, 2025
6d59406
Style: move MPT Benchamrk Project to benchmarks/ (#4011)
Wi1l-B0t Jun 21, 2025
6d711c0
[`improve`] nullable app logs (#4008)
shargon Jun 21, 2025
67915b2
Fix: remove FluentAssertions in notary tests (#4014)
Wi1l-B0t Jun 21, 2025
7036374
Add: SignClient Vsock support (#4002)
Wi1l-B0t Jun 23, 2025
6c7f6c4
Comments: add Exception info for numeric ops (#4021)
Wi1l-B0t Jun 25, 2025
cb56508
Isolate ApplicationEngine events (#4016)
shargon Jun 28, 2025
4790594
Cache nuget packages (#4034)
shargon Jun 30, 2025
e5229fe
Style: more standard code style for Neo.VM (#4022)
Wi1l-B0t Jun 30, 2025
6c35bf8
Optimize: more semantics description and better impl for 'TestBit(thi…
Wi1l-B0t Jun 30, 2025
852771d
Improve exception messages throughout Neo codebase (#4032)
Jun 30, 2025
0c268ea
Optimize: impl `GetLowestSetBit` by `TrailingZeroCount` if available …
Wi1l-B0t Jun 30, 2025
37d3b3b
[`style`] Style neo system (#4040)
shargon Jul 1, 2025
31dea06
Refactor MainService.Vote class (#4036)
ajara87 Jul 3, 2025
c52eb34
Doc: add document for plugin SignClient (#4049)
Wi1l-B0t Jul 6, 2025
e74abfd
[`Fix`] RcpClient Directories and Naming (#4046)
cschuchardt88 Jul 7, 2025
2943818
Optimize: no secaped char for command line input (#4044)
Wi1l-B0t Jul 7, 2025
1328bb4
Fix: tx.ToJson no 'cosigners' field (#4051)
Wi1l-B0t Jul 7, 2025
cfba43d
Fix: not matched error code if argument is null with RpcMethodWithPar…
Wi1l-B0t Jul 13, 2025
7991b5e
Renamed and Fix Properties with plugins (#4062)
cschuchardt88 Jul 13, 2025
3e63b2f
[`Add`] Indexer to EvaluationStack (#4050)
cschuchardt88 Jul 13, 2025
e37e142
Comments: Add detail description for RPC Method (#4054)
Wi1l-B0t Jul 13, 2025
c330319
[`Add`] `TryCatch` & `TryCatchThrow` Extensions (#4038)
cschuchardt88 Jul 14, 2025
a0f5ed0
Add: input cli command line with `--argument-name argument-value` (#4…
Wi1l-B0t Jul 14, 2025
5bdb4c4
Optimize: more detail for help command (#4067)
Wi1l-B0t Jul 17, 2025
5cbbcd5
Optimize: clearer parser for parameter Signers and Witnesses, and fix…
Wi1l-B0t Jul 19, 2025
6b4468d
[`Fix`] Async Ask Method (#4071)
cschuchardt88 Jul 19, 2025
c3dd619
Move `install sc` out of `ConsoleServiceBase.Run` (#4048)
Wi1l-B0t Jul 19, 2025
aa39868
[`Add`] `RandomNumberFactory` Class (#3987)
cschuchardt88 Jul 19, 2025
6126b4d
[UT] - Add unit tests in NeoSystem (#3978)
ajara87 Jul 19, 2025
e29b885
Move: Neo.Network.Rpc.RpcClient.Tests to Neo.RpcClient.Tests (#4077)
Wi1l-B0t Jul 22, 2025
a3eeb56
Add Scan for Vulnerable Dependencies (#4082)
cschuchardt88 Jul 22, 2025
be1449d
Doc: Add doc for plugin RpcServer (#4068)
Wi1l-B0t Jul 23, 2025
ea94531
Add More Descriptions in PR Template (#4083)
cschuchardt88 Jul 27, 2025
f95e3d5
Fix: no handling if `ContractNameOrHashOrId` is a native contract nam…
Wi1l-B0t Jul 27, 2025
7a84ada
optimize: More parameter type support for RpcMethod (#4085)
Wi1l-B0t Jul 27, 2025
e2fab41
UT - Add test cases for OnCommand (#4095)
ajara87 Jul 30, 2025
bccd875
Add Faun (#4097)
shargon Jul 30, 2025
01d4305
fix(cli): improve macOS leveldb error messages with dependency detail…
Jim8y Jul 31, 2025
d4f04ba
Optimize: merge RpcMethod and RpcMethodWithParams (#4074)
Wi1l-B0t Aug 1, 2025
02f4ee9
Add invokeabi command for simplified contract invocation (#4033)
Jim8y Aug 1, 2025
a61ea05
Fixed `release.yml` (#4106)
cschuchardt88 Aug 4, 2025
216a17b
Doc: Add doc for plugin RpcServer, Part-2 (#4104)
Wi1l-B0t Aug 4, 2025
356deee
update packages (#4108)
shargon Aug 4, 2025
ac1e7fc
Remove GUI (#4110)
cschuchardt88 Aug 4, 2025
69f7d7a
Fixed docker.yml (#4109)
cschuchardt88 Aug 4, 2025
1758d29
Optimize RPCClient code (#4103)
ajara87 Aug 5, 2025
bfbee17
unit-tests: Use proper 'Assert' methods (#4112)
Wi1l-B0t Aug 5, 2025
e1141a4
Optimize: use explicitly typed parameters instead of JArray in `RpcMe…
Wi1l-B0t Aug 5, 2025
42ad70f
Fix: unicode escape for cli input (#4105)
Wi1l-B0t Aug 5, 2025
c8aa869
Add RestServer Plugin (#4093)
cschuchardt88 Aug 6, 2025
ec27ab8
Add some check (#4114)
shargon Aug 6, 2025
a6d5b66
Fix. Replace RpcSendByHashOrIndexAsync comment (#4116)
ajara87 Aug 6, 2025
3c63828
Clean JsonSerializer (#4113)
shargon Aug 6, 2025
1baf431
[`Add`] IComparable, Casting to UInt160 & UInt256 (#4117)
cschuchardt88 Aug 7, 2025
62c8cf0
Allow HF in syscalls (#4119)
shargon Aug 7, 2025
257756e
unit-tests: Use proper 'Assert' methods (#4122)
Wi1l-B0t Aug 8, 2025
06ace04
Fix: avoid NullReferenceException when account not found (#4120)
Wi1l-B0t Aug 11, 2025
9a7f8d7
use StringComparison IgnoreCase instead (#4124)
Wi1l-B0t Aug 11, 2025
96d2c80
[`Add`] Protected for ApplicationEngine properties (#4123)
cschuchardt88 Aug 12, 2025
045d042
Hardfork: add Gorgon hardfork (#4128)
AnnaShaleva Aug 13, 2025
cbf5650
Optimize: use expilict type instead of JArray in RpcMethod (#4125)
Wi1l-B0t Aug 14, 2025
58051c3
Fix: some default values not matched (#4134)
Wi1l-B0t Aug 18, 2025
78e3618
Fix: More jsonrpc parameter checks for `RpcServer` (#4129)
Wi1l-B0t Aug 19, 2025
715bb20
Optimize: nullable for plugin RpcServer (#4135)
Wi1l-B0t Aug 22, 2025
89ba23b
Remove netstandard phase one (#4145)
ajara87 Aug 23, 2025
8b2a9ea
fix: out of bound exception in TestAppend (#4149)
Wi1l-B0t Aug 24, 2025
0931394
Unify extensions (#4131)
shargon Aug 24, 2025
a29922e
Remove: unnecessary json rewrite for rpc interfaces (#4148)
Wi1l-B0t Aug 25, 2025
e95dca4
UnitTests: add unit tests project for plugin StateService (#4139)
Wi1l-B0t Aug 26, 2025
bc6f34e
Optimize: use explicit type instead of JArray for plugin RpcMethods (…
Wi1l-B0t Aug 26, 2025
bdfcd66
Improve StringExtensions exception messages (#4151)
Jim8y Aug 26, 2025
e3fc3d0
Optimize #4144 (#4152)
shargon Aug 26, 2025
3ba7b14
Update `coverallsapp` (#4154)
cschuchardt88 Aug 30, 2025
d06a07d
[`Add`] Hex Encode/Decode to `StdLib` (#4150)
cschuchardt88 Sep 1, 2025
d42392b
[`Add`] GetBlockedAccounts to Policy Contract (#4147)
cschuchardt88 Sep 1, 2025
e8e410a
Style: use ThrowIfNull to check argument is null or not (#4156)
Wi1l-B0t Sep 1, 2025
fe2e37c
Remove: unnecessary benchmarks in unit test (#4158)
Wi1l-B0t Sep 2, 2025
cc946e6
Remove AllowUnsafeBlocks if no unsafe blocks (#4159)
Wi1l-B0t Sep 3, 2025
daf5993
Add: parameter nullable checking for `RpcMethod` (#4157)
Wi1l-B0t Sep 8, 2025
a998ad0
Remove: unnecessary warning disable (#4162)
Wi1l-B0t Sep 8, 2025
f5bedb3
Add: unit tests for SQLiteWallet (#4160)
Wi1l-B0t Sep 8, 2025
efcfe3c
Optimize: enable nullable for SQLiteWallet (#4163)
Wi1l-B0t Sep 9, 2025
657cac5
[`Add`] Debugger Display for Storage Items, Values & Trackables (#4155)
cschuchardt88 Sep 11, 2025
8afce40
Self Storage (#4118)
shargon Sep 11, 2025
a7bd974
Fix: avoid using obsolete AesGcm (#4165)
Wi1l-B0t Sep 12, 2025
9b85382
Optimize: reduce one memory copy in UInt160.ToString and UInt256.ToSt…
Wi1l-B0t Sep 13, 2025
07a208a
Optimize: enable nullable for TokensTracker (#4167)
Wi1l-B0t Sep 15, 2025
9004da9
enable nullable for MPTrie (#4173)
Wi1l-B0t Sep 16, 2025
5cc2cfd
Optimize: add more info when throw FormatException (#4180)
Wi1l-B0t Sep 21, 2025
e818d88
Added MemorySearch Unit Tests (#4183)
cschuchardt88 Sep 24, 2025
1c5d3b8
Fix: run without interactive in mac and linux support (#4182)
Wi1l-B0t Sep 24, 2025
d38f847
Fix: cannot load config.json if neo-cli not exsit in current dir (#4192)
Wi1l-B0t Sep 24, 2025
d7ec803
Optimize: use Property intead of Method (#4197)
Wi1l-B0t Sep 29, 2025
5dd874c
Teste missed StateService workflow tests (#4195)
vncoelho Sep 29, 2025
d180196
Replaced `Random` with `RandomNumberFactory` (#4184)
cschuchardt88 Oct 4, 2025
bf73d6e
Updated `nuget` README.md (#4209)
cschuchardt88 Oct 4, 2025
0938348
Fix ut CheckNextBytes (#4210)
ajara87 Oct 4, 2025
363d730
Ceiling Divide BigInteger extension (#4208)
shargon Oct 4, 2025
3692bd3
Map constructor (#4207)
shargon Oct 4, 2025
5321dfe
Create constructor for JObject (#4206)
shargon Oct 6, 2025
d0bcc5e
Optimize: sampling peers ramdomly (#4212)
Wi1l-B0t Oct 10, 2025
07ea7fa
Doc: add seriliazation format discription (#4203)
Wi1l-B0t Oct 11, 2025
9f148d6
Fixed math divide ceiling (#4211)
cschuchardt88 Oct 11, 2025
4ba1439
Style: fix underline variable naming style (#4200)
Wi1l-B0t Oct 13, 2025
6ffece3
Doc: add doc for native contract API (#4220)
Wi1l-B0t Oct 13, 2025
58125f2
Add: more info to get why throw FormatException (#4215)
Wi1l-B0t Oct 13, 2025
146e81e
Doc: rpc method descriptions from other plugins (#4222)
Wi1l-B0t Oct 14, 2025
ee6ed70
[`Add`] Multi-Sig Support in Wallets (#4213)
cschuchardt88 Oct 15, 2025
0f853fc
[`Fix`] Random Factory `NextBigInteger` (#4146)
cschuchardt88 Oct 17, 2025
ba34663
Gas test suite (#4229)
shargon Oct 18, 2025
d5517eb
Replace `RotateLeft` extension with `dotnet` one (#4232)
cschuchardt88 Oct 20, 2025
272af62
[`Move`] Internals to Project File (#4231)
cschuchardt88 Oct 20, 2025
72eab3b
Add: script to run localnet nodes (#4199)
Wi1l-B0t Oct 23, 2025
455e17a
Fix: Log stacktrace to get where/why the exception is thrown (#4242)
Wi1l-B0t Oct 23, 2025
7345a68
[`Add`] Plugin Loading (#4225)
cschuchardt88 Oct 23, 2025
394bca5
Fix native contract API test path resolution (#4243)
Jim8y Oct 23, 2025
d5f54ed
Fix: null reference exception on start (#4244)
Wi1l-B0t Oct 24, 2025
e23feeb
P2P: send ArchivalNode capability, fix #2346 (#4245)
roman-khimov Oct 24, 2025
aef6f4d
Fix unit tests (#4249)
shargon Oct 25, 2025
b9c6438
Add: assert committe info to get what kind of InvalidOperation for te…
Wi1l-B0t Oct 28, 2025
f3b8170
Fix update native api (#4257)
shargon Oct 29, 2025
4ab5033
Handle P2P handshake before ChannelsConfig (#4248)
Jim8y Nov 1, 2025
17a0c32
Fix: unexpected log source from akka (#4264)
Wi1l-B0t Nov 2, 2025
c5c3eb6
Merge branch 'master' into dev
erikzhang Nov 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# https://github.com/dotnet/dotnet-docker/blob/main/README.sdk.md
# https://mcr.microsoft.com/en-us/artifact/mar/dotnet/sdk/tags <-- this shows all images
FROM mcr.microsoft.com/dotnet/sdk:9.0.102-noble
FROM mcr.microsoft.com/dotnet/sdk:9.0.300-noble

# Install the libleveldb-dev package
RUN apt-get update && apt-get install -y libleveldb-dev
2 changes: 2 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ dotnet_diagnostic.IDE0251.severity = warning
dotnet_diagnostic.IDE0044.severity = warning

dotnet_diagnostic.CS1591.severity = silent
// Use primary constructor
csharp_style_prefer_primary_constructors = false

# Sort using and Import directives with System.* appearing first
dotnet_sort_system_directives_first = false
Expand Down
18 changes: 14 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@

<!-- Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change. -->

# Change Log
<!-- Use a list

- Add File 'filename here'
- Removed File 'filename here'
- Add Class 'class name here'
- etc

-->

Fixes # (issue)

## Type of change
Expand All @@ -19,10 +29,10 @@ Fixes # (issue)

<!-- Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration -->

- [ ] Test A
- [ ] Test B

**Test Configuration**:
- [ ] Unit Testing
- [ ] Run Application
- [ ] Local Computer Tests
- [ ] No Testing


# Checklist:
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,11 @@ jobs:
-p:GITHUB_ACTIONS=true

- name: Remove (junk)
working-directory: ${{ env.DIST_DIR }}/Plugins/LevelDBStore
run: |
rm -v -R ${{ env.DIST_DIR }}/Plugins/LevelDBStore/runtimes
rm -v ${{ env.DIST_DIR }}/Plugins/LevelDBStore/Neo*
rm -v -R runtimes
rm -v Neo*
rm -v $(ls *.dll | grep -v "LevelDBStore.dll")

- name: Docker Login
run: |
Expand Down
40 changes: 40 additions & 0 deletions .github/workflows/issue-metrics.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Monthly issue metrics
on:
workflow_dispatch:
schedule:
- cron: '3 2 1 * *'

permissions:
issues: write
pull-requests: read

jobs:
build:
name: issue metrics
runs-on: ubuntu-latest
steps:
- name: Get dates for last month
shell: bash
run: |
# Calculate the first day of the previous month
first_day=$(date -d "last month" +%Y-%m-01)

# Calculate the last day of the previous month
last_day=$(date -d "$first_day +1 month -1 day" +%Y-%m-%d)

#Set an environment variable with the date range
echo "$first_day..$last_day"
echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV"

- name: Run issue-metrics tool
uses: github/[email protected]
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SEARCH_QUERY: 'repo:neo-project/neo is:issue created:${{ env.last_month }} -reason:"not planned" -reason:"duplicate"'

- name: Create issue
uses: peter-evans/[email protected]
with:
title: Monthly issue metrics report
token: ${{ secrets.GITHUB_TOKEN }}
content-filepath: ./issue_metrics.md
48 changes: 46 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,37 @@ jobs:
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Cache NuGet packages
uses: actions/cache@v4
with:
path: ~/.nuget/packages
key : ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
restore-keys: ${{ runner.os }}-nuget-

- name: Check Format (*.cs)
run: dotnet format --verify-no-changes --verbosity diagnostic

Check-Vulnerable:
name: Scan for Vulnerable Dependencies
needs: [Format]
timeout-minutes: 15
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout
uses: actions/[email protected]

- name: Setup .NET
uses: actions/[email protected]
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Restore
run: dotnet restore

- name: Scan for Vulnerable Dependencies
run: dotnet list package --vulnerable --include-transitive

Test-Everything:
needs: [Format]
timeout-minutes: 15
Expand All @@ -37,6 +65,13 @@ jobs:
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Cache NuGet packages
uses: actions/cache@v4
with:
path: ~/.nuget/packages
key : ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
restore-keys: ${{ runner.os }}-nuget-

- name: Build (Everything)
run: dotnet build --disable-parallel -p:GITHUB_ACTIONS=true

Expand Down Expand Up @@ -65,6 +100,13 @@ jobs:
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Cache NuGet packages
uses: actions/cache@v4
with:
path: ~/.nuget/packages
key : ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
restore-keys: ${{ runner.os }}-nuget-

- name: Test (MacOS)
if: matrix.os == 'macos-latest'
run: |
Expand Down Expand Up @@ -94,7 +136,7 @@ jobs:

- name: Coveralls
if: matrix.os == 'ubuntu-latest'
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b
uses: coverallsapp/github-action@v2.3.6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
debug: false
Expand All @@ -108,11 +150,13 @@ jobs:
${{ github.workspace }}/TestResults/Neo.VM.Tests/coverage.info
${{ github.workspace }}/TestResults/Neo.Json.UnitTests/coverage.info
${{ github.workspace }}/TestResults/Neo.Cryptography.MPTTrie.Tests/coverage.info
${{ github.workspace }}/TestResults/Neo.Network.RPC.Tests/coverage.info
${{ github.workspace }}/TestResults/Neo.RpcClient.Tests/coverage.info
${{ github.workspace }}/TestResults/Neo.Plugins.DBFTPlugin.Tests/coverage.info
${{ github.workspace }}/TestResults/Neo.Plugins.OracleService.Tests/coverage.info
${{ github.workspace }}/TestResults/Neo.Plugins.RpcServer.Tests/coverage.info
${{ github.workspace }}/TestResults/Neo.Plugins.Storage.Tests/coverage.info
${{ github.workspace }}/TestResults/Neo.Plugins.ApplicationLogs.Tests/coverage.info
${{ github.workspace }}/TestResults/Neo.Plugins.StateService.Tests/coverage.info
${{ github.workspace }}/TestResults/Neo.Extensions.Tests/coverage.info

PublishPackage:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ jobs:
run: |
rm -v -R runtimes
rm -v Neo*
rm -v $(ls *.dll | grep -v "LevelDBStore.dll")

# Create the distribution directory
- name: Create Distribution Directory
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -266,3 +266,5 @@ launchSettings.json

# Benchmarks
**/BenchmarkDotNet.Artifacts/
/src/Neo.CLI/neo-cli/
**/localnet_nodes/
5 changes: 2 additions & 3 deletions .neo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@ Visit the [documentation](https://docs.neo.org/docs/en-us/index.html) to get sta
## Related projects
Code references are provided for all platform building blocks. That includes the base library, the VM, a command line application and the compiler.

- [neo:](https://github.com/neo-project/neo/) Neo core library, contains base classes, including ledger, p2p and IO modules.
- [neo-modules:](https://github.com/neo-project/neo-modules/) Neo modules include additional tools and plugins to be used with Neo.
- [neo-devpack-dotnet:](https://github.com/neo-project/neo-devpack-dotnet/) These are the official tools used to convert a C# smart-contract into a *neo executable file*.
- [neo:](https://github.com/neo-project/neo/) Neo core library, contains base classes, including ledger, Peer-to-Peer, IO, plugins and more.
- [neo-devpack-dotnet:](https://github.com/neo-project/neo-devpack-dotnet/) These are the official tools used to convert C# smart-contract into *neo vm executable file*.

## Opening a new issue
Please feel free to create new issues to suggest features or ask questions.
Expand Down
60 changes: 58 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,14 +94,19 @@
</a>
</p>

## Quick Start A Mainnet Node
1. git clone https://github.com/neo-project/neo.git
2. cd neo/src/Neo.CLI
3. make build

## Table of Contents
1. [Overview](#overview)
2. [Project structure](#project-structure)
3. [Related projects](#related-projects)
4. [Opening a new issue](#opening-a-new-issue)
5. [Bounty program](#bounty-program)
6. [License](#license)
5. [Contributing](#contributing)
6. [Bounty program](#bounty-program)
7. [License](#license)

## Overview
This repository is a csharp implementation of the [neo](https://neo.org) blockchain. It is jointly maintained by the neo core developers and neo global development community.
Expand Down Expand Up @@ -146,6 +151,57 @@ Please feel free to create new issues to suggest features or ask questions.

If you found a security issue, please refer to our [security policy](https://github.com/neo-project/neo/security/policy).

## Contributing

We welcome contributions to the Neo project! To ensure a smooth collaboration process, please follow these guidelines:

### Branch Rules

- **`master`** - Contains the latest stable release version. This branch reflects the current production state.
- **`dev`** - The main development branch where all new features and improvements are integrated.

### Pull Request Guidelines

**Important**: All pull requests must be based on the `dev` branch, not `master`.

1. **Fork the repository** and create your feature branch from `dev`:
```bash
git checkout dev
git pull origin dev
git checkout -b feature/your-feature-name
```

2. **Make your changes** following the project's coding standards and conventions.

3. **Test your changes** thoroughly to ensure they don't break existing functionality.

4. **Commit your changes** with clear, descriptive commit messages:
```bash
git commit -m "feat: add new feature description"
```

5. **Push to your fork** and create a pull request against the `dev` branch:
```bash
git push origin feature/your-feature-name
```

6. **Create a Pull Request** targeting the `dev` branch with:
- Clear title and description
- Reference to any related issues
- Summary of changes made

### Development Workflow

```
feature/bug-fix → dev → master (via release)
```

- Feature branches are merged into `dev`
- `dev` is periodically merged into `master` for releases
- Never create PRs directly against `master`

For more detailed contribution guidelines, please check our documentation or reach out to the maintainers.

## Bounty program
You can be rewarded by finding security issues. Please refer to our [bounty program page](https://neo.org/bounty) for more information.

Expand Down
5 changes: 2 additions & 3 deletions benchmarks/Neo.Benchmarks/Neo.Benchmarks.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@
<TargetFrameworks>net9.0</TargetFrameworks>
<RootNamespace>Neo</RootNamespace>
<ImplicitUsings>enable</ImplicitUsings>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="System.IO.Hashing" Version="9.0.1" />
<PackageReference Include="System.IO.Hashing" Version="9.0.7" />
<ProjectReference Include="..\..\src\Neo\Neo.csproj" />
<ProjectReference Include="..\..\src\Plugins\LevelDBStore\LevelDBStore.csproj" />
<PackageReference Include="BenchmarkDotNet" Version="0.14.0" />
<PackageReference Include="BenchmarkDotNet" Version="0.15.2" />
</ItemGroup>

<ItemGroup>
Expand Down
50 changes: 50 additions & 0 deletions benchmarks/Neo.Cryptography.MPTTrie.Benchmarks/Benchmarks.Cache.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
// Copyright (C) 2015-2025 The Neo Project.
//
// Benchmarks.Cache.cs file belongs to the neo project and is free
// software distributed under the MIT software license, see the
// accompanying file LICENSE in the main directory of the
// repository or http://www.opensource.org/licenses/mit-license.php
// for more details.
//
// Redistribution and use in source and binary forms with or without
// modifications are permitted.

using BenchmarkDotNet.Attributes;

namespace Neo.Cryptography.MPTTrie.Benchmarks
{
public class Benchmarks_Cache
{
private readonly byte _prefix = 0x01;
private readonly UInt256 _hash;

public Benchmarks_Cache()
{
var randomBytes = new byte[UInt256.Length];
new Random(42).NextBytes(randomBytes);
_hash = new UInt256(randomBytes);
}

[Benchmark]
public byte[] Key_Original()
{
var buffer = new byte[UInt256.Length + 1];
using (var ms = new MemoryStream(buffer, true))
using (var writer = new BinaryWriter(ms))
{
writer.Write(_prefix);
_hash.Serialize(writer);
}
return buffer;
}

[Benchmark]
public byte[] Key_Optimized()
{
var buffer = new byte[UInt256.Length + 1];
buffer[0] = _prefix;
_hash.GetSpan().CopyTo(buffer.AsSpan(1));
return buffer;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.15.2" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\Neo\Neo.csproj" />
</ItemGroup>

</Project>
Loading