diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..3a65aebf7
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,70 @@
+###############################################################################
+# Set default behavior to automatically normalize line endings.
+###############################################################################
+* text eol=lf
+*.cs text eol=lf
+*.csproj text eol=lf
+*.props text eol=lf
+*.json text eol=lf
+*.targets text eol=lf
+
+###############################################################################
+# Set default behavior for command prompt diff.
+#
+# This is need for earlier builds of msysgit that does not have it on by
+# default for csharp files.
+# Note: This is only used by command line
+###############################################################################
+*.cs diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+*.sln text eol=crlf
+#*.csproj text eol=crlf
+#*.vbproj merge=binary
+#*.vcxproj merge=binary
+#*.vcproj merge=binary
+#*.dbproj merge=binary
+#*.fsproj merge=binary
+#*.lsproj merge=binary
+#*.wixproj merge=binary
+#*.modelproj merge=binary
+#*.sqlproj merge=binary
+#*.wwaproj merge=binary
+
+###############################################################################
+# behavior for image files
+#
+# image files are treated as binary by default.
+###############################################################################
+*.jpg binary
+*.png binary
+*.gif binary
+*.ico binary
+*.zip binary
+
+###############################################################################
+# diff behavior for common document formats
+#
+# Convert binary document formats to text before diffing them. This feature
+# is only available from the command line. Turn it on by uncommenting the
+# entries below.
+###############################################################################
+#*.doc diff=astextplain
+#*.DOC diff=astextplain
+#*.docx diff=astextplain
+#*.DOCX diff=astextplain
+#*.dot diff=astextplain
+#*.DOT diff=astextplain
+#*.pdf diff=astextplain
+#*.PDF diff=astextplain
+#*.rtf diff=astextplain
+#*.RTF diff=astextplain
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 000000000..e093c7c14
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,47 @@
+# Description
+
+
+
+# Change Log
+
+
+Fixes # (issue)
+
+## Type of change
+
+
+
+- [ ] Optimization (the change is only an optimization)
+- [ ] Style (the change is only a code style for better maintenance or standard purpose)
+- [ ] Bug fix (non-breaking change which fixes an issue)
+- [ ] New feature (non-breaking change which adds functionality)
+- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
+- [ ] This change requires a documentation update
+
+# How Has This Been Tested?
+
+
+
+- [ ] Unit Testing
+- [ ] Run Application
+- [ ] Local Computer Tests
+- [ ] No Testing
+
+
+# Checklist:
+
+- [ ] My code follows the style guidelines of this project
+- [ ] I have performed a self-review of my code
+- [ ] I have commented my code, particularly in hard-to-understand areas
+- [ ] I have made corresponding changes to the documentation
+- [ ] My changes generate no new warnings
+- [ ] I have added tests that prove my fix is effective or that my feature works
+- [ ] New and existing unit tests pass locally with my changes
+- [ ] Any dependent changes have been merged and published in downstream modules
diff --git a/.gitignore b/.gitignore
index 940794e60..f86ddf565 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,5 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
-##
-## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.suo
@@ -19,10 +17,12 @@
[Rr]eleases/
x64/
x86/
+build/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
+.store/
# Visual Studio 2015 cache/options directory
.vs/
@@ -42,11 +42,9 @@ TestResult.xml
[Rr]eleasePS/
dlldata.c
-# .NET Core
+# DNX
project.lock.json
-project.fragment.lock.json
artifacts/
-**/Properties/launchSettings.json
*_i.c
*_p.c
@@ -113,10 +111,6 @@ _TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
-# Visual Studio code coverage results
-*.coverage
-*.coveragexml
-
# NCrunch
_NCrunch_*
.*crunch*.local.xml
@@ -160,13 +154,17 @@ PublishScripts/
# NuGet Packages
*.nupkg
+*.snupkg
+
# The packages folder can be ignored because of Package Restore
**/packages/*
+
# except build/, which is used as an MSBuild target.
!**/packages/build/
+
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
-# NuGet v3's project.json files produces more ignorable files
+# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
@@ -191,19 +189,21 @@ _pkginfo.txt
!*.[Cc]ache/
# Others
+*.[Cc]ache
ClientBin/
+[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
-*.jfm
*.pfx
*.publishsettings
+node_modules/
orleans.codegen.cs
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
-#bower_components/
+bower_components/
# RIA/Silverlight projects
Generated_Code/
@@ -219,7 +219,6 @@ UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
-*.ndf
# Business Intelligence projects
*.rdl.data
@@ -234,10 +233,6 @@ FakesAssemblies/
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
-node_modules/
-
-# Typescript v1 declaration files
-typings/
# Visual Studio 6 build log
*.plg
@@ -245,9 +240,6 @@ typings/
# Visual Studio 6 workspace options file
*.opt
-# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
-*.vbw
-
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
@@ -267,22 +259,12 @@ paket-files/
.idea/
*.sln.iml
-# CodeRush
-.cr/
-
-# Python Tools for Visual Studio (PTVS)
-__pycache__/
-*.pyc
-
-# Cake - Uncomment if you are using it
-# tools/**
-# !tools/packages.config
-
-# Telerik's JustMock configuration file
-*.jmconfig
+PublishProfiles
+/.vscode
+launchSettings.json
+/coverages
+**/.DS_Store
-# BizTalk build output
-*.btp.cs
-*.btm.cs
-*.odx.cs
-*.xsd.cs
+# Benchmarks
+**/BenchmarkDotNet.Artifacts/
+/src/Neo.CLI/neo-cli/
diff --git a/.neo/README.md b/.neo/README.md
new file mode 100644
index 000000000..735c85dfb
--- /dev/null
+++ b/.neo/README.md
@@ -0,0 +1,26 @@
+## Overview
+This repository contain main classes of the [Neo](https://www.neo.org) blockchain.
+Visit the [documentation](https://docs.neo.org/docs/en-us/index.html) to get started.
+
+## 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-node](https://github.com/neo-project/neo-node) Neo CLI for running a node.
+- [neo-vm](https://github.com/neo-project/neo-vm) Neo VM for running neo contracts.
+- [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*.
+
+## Opening a new issue
+Please feel free to create new issues to suggest features or ask questions.
+
+- [Feature request](https://github.com/neo-project/neo/issues/new?assignees=&labels=discussion&template=feature-or-enhancement-request.md&title=)
+- [Bug report](https://github.com/neo-project/neo/issues/new?assignees=&labels=&template=bug_report.md&title=)
+- [Questions](https://github.com/neo-project/neo/issues/new?assignees=&labels=question&template=questions.md&title=)
+
+If you found a security issue, please refer to our [security policy](https://github.com/neo-project/neo/security/policy).
+
+## Bounty program
+You can be rewarded by finding security issues. Please refer to our [bounty program page](https://neo.org/bounty) for more information.
+
+## License
+The NEO project is licensed under the [MIT license](http://www.opensource.org/licenses/mit-license.php).
diff --git a/.neo/neo.png b/.neo/neo.png
new file mode 100644
index 000000000..1a71de07e
Binary files /dev/null and b/.neo/neo.png differ
diff --git a/SpellingExclusions.dic b/SpellingExclusions.dic
new file mode 100644
index 000000000..e69de29bb
diff --git a/plugins/Directory.Build.props b/plugins/Directory.Build.props
index 1c06fd7ef..72b4483a0 100644
--- a/plugins/Directory.Build.props
+++ b/plugins/Directory.Build.props
@@ -4,19 +4,31 @@
2015-2025 The Neo Project
The Neo Project
+ $(Authors)
Neo.Plugins.$(MSBuildProjectName)
- https://github.com/neo-project/neo-modules
+ neo.png
+ README.md
+ https://github.com/neo-project/neo-node
+ https://github.com/neo-project/neo-node.git
MIT
git
- https://github.com/neo-project/neo-modules.git
NEO;Blockchain
4.0.0
net10.0
$(PackageId)
- enable
+ true
+ snupkg
+ true
true
+ enable
+ ../../bin/$(PackageId)
+
+
+
+
+
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index e87c75bad..c3453614b 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -4,10 +4,23 @@
2015-2025 The Neo Project
The Neo Project
+ $(Authors)
net10.0
4.0.0
+ $(MSBuildProjectName)
+ neo.png
+ README.md
+ https://github.com/neo-project/neo-node
+ MIT
+ git
+ https://github.com/neo-project/neo-node.git
+ NEO;Blockchain
+ true
+ snupkg
+ true
enable
enable
+ ../../bin/$(PackageId)
@@ -15,4 +28,9 @@
+
+
+
+
+
diff --git a/src/Neo.CLI/Neo.CLI.csproj b/src/Neo.CLI/Neo.CLI.csproj
index 36ad6310c..c5db13e29 100644
--- a/src/Neo.CLI/Neo.CLI.csproj
+++ b/src/Neo.CLI/Neo.CLI.csproj
@@ -5,6 +5,7 @@
neo-cli
Exe
neo.ico
+ false
diff --git a/src/Neo.GUI/Neo.GUI.csproj b/src/Neo.GUI/Neo.GUI.csproj
index b6a8508f6..c0d98b7ac 100644
--- a/src/Neo.GUI/Neo.GUI.csproj
+++ b/src/Neo.GUI/Neo.GUI.csproj
@@ -9,6 +9,7 @@
true
disable
neo.ico
+ false
diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props
index b479c2d9f..50a28eee1 100644
--- a/tests/Directory.Build.props
+++ b/tests/Directory.Build.props
@@ -2,6 +2,7 @@
+ Exe
net10.0
enable
false
@@ -15,4 +16,8 @@
+
+
+
+