Commit de82772
Master n3 to master (#1478)
* Update neo submodule to master-n3 (#1453)
Co-authored-by: Neo Dev Bot <dev@neo.local>
* Use stable framework package in templates (#1456)
* Add: FindOptions.Backwards definition (#1458)
* Add: IsContract for ContractManagement (#1454) (#1455)
Co-authored-by: Will <201105916+Wi1l-B0t@users.noreply.github.com>
* CI: run on master-n3 (#1459)
* Update neo (#1463)
* Upgrade devpack to Neo v3.9.0 (#1464)
* Upgrade devpack to Neo v3.9.0
* Restore manifest version in test artifacts
* Add: comment doc for Framework.Services (#1460) (#1467)
* Fix: remove many compiler warnings (#1461) (#1469)
* Reorder (#1472)
* Fix CS0067 warning in artifacts (#1474)
* Avoid CS0067 in artifacts
* one more
* Add: comments doc for ContractMethod CallFlags (#1479)
* Add reference (#1476)
* docs: Clarify Base58CheckDecode FAULT behavior in UInt160.Parse (#1483)
Update documentation to warn that invalid Base58Check addresses will cause
execution to FAULT (abort) rather than throw a catchable exception.
Fixes #1443
* fix: HexStringInterpreter regex should only accept hex characters (#1484)
Change regex from [a-zA-Z0-9_] to [a-fA-F0-9] to properly validate
hexadecimal strings (0-9, a-f, A-F only).
Fixes #1264
* docs: Add optimizer documentation (#1481)
* docs: Add optimizer documentation
Document the bytecode optimization strategies including:
- Peephole optimization
- Jump compression
- Reachability analysis
- Miscellaneous optimizations
Also includes architecture overview and usage instructions.
* docs: add OptimizationType enum options to optimizer documentation
* fix(compiler): extend division overflow check and improve temp file security (#1485)
* fix(compiler): extend division overflow check to IntPtr type
- Add comprehensive documentation for CheckDivideOverflow method
- Extend overflow check to include IntPtr (nint) type
- Use BigInteger for consistent handling of min values
- Add clear comments explaining which types need/don't need overflow checks
Fixes HIGH-002 from security audit
* test: add unit tests for division overflow fix
Demonstrates the IntPtr (nint) division overflow issue and fix:
- Before fix: nint.MinValue / -1 would silently overflow
- After fix: properly throws in checked context
Tests cover Int32, Int64, IntPtr, and BigInteger division scenarios.
* fix: remove unsupported nint/nuint types from tests
Neo compiler does not support nint/nuint (IntPtr/UIntPtr) types.
Removed IntPtr handling from division overflow check and tests.
* test: add testing artifacts for division overflow and shift contracts
- Add Contract_DivisionOverflow.cs testing artifact
- Update Contract_shift.cs with new shift methods
All 938 tests pass locally.
* chore: revert neo submodule to master-n3 version
* fix: Support Event?.Invoke() conditional invocation pattern (#1482)
Add support for invoking events using the null-conditional operator.
When calling Event?.Invoke(...), the compiler now correctly recognizes
this as an event invocation and emits the appropriate System.Runtime.Notify call.
Fixes #1093
* Update examples for Neo v3.9 (#1465)
* Update examples for v3.9
* chore: Remove example nef and manifest artifacts
Remove compiled artifacts from examples as requested in PR review.
These files should be generated during build, not committed.
* refactor: replace neo submodule with NuGet package references (Neo 3.9.1) (#1489)
* refactor: replace neo submodule with NuGet package references (Neo 3.9.1)
- Remove neo submodule dependency
- Update project references to use NuGet packages:
- Neo 3.9.1
- Neo.Extensions 3.9.1
- Neo.IO 3.9.1
- Neo.Json 3.9.1
- Simplify CI workflow by removing submodule-related version extraction
- Fix PublishPackage job that was failing due to empty VERSION_NEO variable
* fix: workflow should support both master and master-n3 branches
* fix: restore Release job in workflow
* fix: remove neo submodule projects from solution file
* fix: handle partial class compilation with correct SemanticModel (#1488)
* fix: handle partial class compilation with correct SemanticModel
- Add SemanticModelExtensions.GetModelForNode() helper method
- Fix Expression.cs to check syntax tree before GetConstantValue
- Fix InvocationExpression.cs to get correct model for GetSymbolInfo
- Fix SourceConvert.cs to get correct model for GetTypeInfo
This fixes NC5001 errors when compiling contracts with partial classes
(e.g., Example.SmartContract.NFT) where syntax nodes may come from
different syntax trees than the current semantic model.
Closes #1363
* test: add unit tests for partial class cross-file compilation
Tests the fix for issue #1363 where syntax nodes from different
syntax trees caused NC5001 errors during compilation.
New tests cover:
- Cross-file method invocations in partial classes
- Expression-bodied members using constants from other files
- Complex expressions using both constants and methods across files
* refactor: use GetModelForNode helper in TryConvertConstant
Apply review suggestion to use the GetModelForNode extension method
instead of inline syntax tree check. This allows constant evaluation
to work across partial class files.
---------
Co-authored-by: Jimmy <jimmy@r3e.network>
Co-authored-by: Neo Dev Bot <dev@neo.local>
Co-authored-by: Will <201105916+Wi1l-B0t@users.noreply.github.com>1 parent f0519c2 commit de82772
242 files changed
Lines changed: 2667 additions & 451 deletions
File tree
- .github/workflows
- examples
- Example.SmartContract.ContractCall.UnitTests
- TestingArtifacts
- Example.SmartContract.Event.UnitTests
- TestingArtifacts
- Example.SmartContract.Exception.UnitTests
- TestingArtifacts
- Example.SmartContract.FaunFeatures.UnitTests
- TestingArtifacts
- Example.SmartContract.FaunFeatures
- Example.SmartContract.HelloWorld.UnitTests
- TestingArtifacts
- Example.SmartContract.Inscription.UnitTests
- TestingArtifacts
- Example.SmartContract.Modifier.UnitTests
- TestingArtifacts
- Example.SmartContract.NEP17.UnitTests
- TestingArtifacts
- Example.SmartContract.NEP17
- Example.SmartContract.NFT.UnitTests
- Example.SmartContract.NFT
- Example.SmartContract.Oracle.UnitTests
- TestingArtifacts
- Example.SmartContract.SampleRoyaltyNEP11Token.UnitTests
- TestingArtifacts
- Example.SmartContract.SampleRoyaltyNEP11Token
- Example.SmartContract.Storage.UnitTests
- TestingArtifacts
- Example.SmartContract.Transfer.UnitTests
- TestingArtifacts
- Example.SmartContract.ZKP.UnitTests
- TestingArtifacts
- TestContract
- src
- Neo.Compiler.CSharp
- CompilationEngine
- MethodConvert
- Expression
- Helpers
- Optimizer
- SecurityAnalyzer
- Neo.Disassembler.CSharp
- Neo.SmartContract.Framework
- Native
- Neo.SmartContract.Testing
- Coverage
- Extensions
- Interpreters
- Native
- tests
- Neo.Compiler.CSharp.TestContracts
- Neo.Compiler.CSharp.UnitTests
- SecurityAnalyzer
- TestingArtifacts
- Neo.SmartContract.Framework.UnitTests/TestingArtifacts
- Neo.SmartContract.Template.UnitTests/templates
- neocontractnep17/TestingArtifacts
- neocontractoracle/TestingArtifacts
- neocontractowner/TestingArtifacts
- Neo.SmartContract.Testing.UnitTests
- Extensions
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
31 | 30 | | |
32 | 31 | | |
33 | 32 | | |
| |||
94 | 93 | | |
95 | 94 | | |
96 | 95 | | |
97 | | - | |
| 96 | + | |
98 | 97 | | |
99 | 98 | | |
100 | 99 | | |
| |||
103 | 102 | | |
104 | 103 | | |
105 | 104 | | |
106 | | - | |
107 | 105 | | |
108 | 106 | | |
109 | 107 | | |
110 | 108 | | |
111 | 109 | | |
112 | 110 | | |
113 | 111 | | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | 112 | | |
119 | 113 | | |
120 | 114 | | |
| |||
138 | 132 | | |
139 | 133 | | |
140 | 134 | | |
141 | | - | |
| 135 | + | |
142 | 136 | | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | 137 | | |
154 | | - | |
155 | 138 | | |
156 | 139 | | |
157 | 140 | | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | 141 | | |
163 | 142 | | |
164 | 143 | | |
| |||
201 | 180 | | |
202 | 181 | | |
203 | 182 | | |
204 | | - | |
205 | 183 | | |
206 | 184 | | |
207 | 185 | | |
| |||
220 | 198 | | |
221 | 199 | | |
222 | 200 | | |
223 | | - | |
224 | | - | |
225 | 201 | | |
226 | | - | |
227 | | - | |
228 | 202 | | |
229 | | - | |
230 | | - | |
231 | 203 | | |
232 | | - | |
233 | | - | |
234 | 204 | | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
256 | 209 | | |
257 | 210 | | |
258 | 211 | | |
259 | 212 | | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | 213 | | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | 214 | | |
269 | 215 | | |
270 | | - | |
271 | 216 | | |
272 | 217 | | |
273 | 218 | | |
| |||
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | | - | |
| 6 | + | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
38 | 40 | | |
39 | | - | |
| 41 | + | |
40 | 42 | | |
41 | 43 | | |
42 | 44 | | |
43 | | - | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
44 | 53 | | |
45 | 54 | | |
46 | 55 | | |
47 | | - | |
48 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
49 | 65 | | |
50 | 66 | | |
51 | 67 | | |
| |||
70 | 86 | | |
71 | 87 | | |
72 | 88 | | |
73 | | - | |
| 89 | + | |
| 90 | + | |
74 | 91 | | |
75 | 92 | | |
76 | 93 | | |
| |||
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | | - | |
| 18 | + | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
Lines changed: 0 additions & 1 deletion
This file was deleted.
Binary file not shown.
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | | - | |
| 18 | + | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
Lines changed: 0 additions & 1 deletion
This file was deleted.
0 commit comments