Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix NEO callstates #3599

Merged
merged 21 commits into from
Dec 19, 2024
Merged

Fix NEO callstates #3599

merged 21 commits into from
Dec 19, 2024

Conversation

shargon
Copy link
Member

@shargon shargon commented Nov 26, 2024

Description

Fixes #3596

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?

  • Manual

Test Configuration:

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

@shargon shargon marked this pull request as ready for review November 26, 2024 11:37
Copy link
Contributor

@roman-khimov roman-khimov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vote method requires this too.

@shargon shargon requested a review from roman-khimov November 26, 2024 13:57
@shargon shargon added Bug Used to tag confirmed bugs Hardfork labels Nov 26, 2024
@shargon shargon changed the title Allow callstates to use HF Allow NEO callstates Nov 26, 2024
@shargon shargon changed the title Allow NEO callstates Fix NEO callstates Nov 26, 2024
Copy link
Contributor

@roman-khimov roman-khimov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Much better this way. Probably solving any other similar problems (like CpuFee updates). I'd try avoiding unnecessary changes, but that's nitpicking mostly.

Copy link
Member

@cschuchardt88 cschuchardt88 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix these memory leaks

shargon and others added 2 commits November 26, 2024 23:46
Co-authored-by: Christopher Schuchardt <[email protected]>
Co-authored-by: Christopher Schuchardt <[email protected]>
@@ -131,7 +131,7 @@ public record ProtocolSettings
/// <returns>The loaded <see cref="ProtocolSettings"/>.</returns>
public static ProtocolSettings Load(Stream stream)
{
var config = new ConfigurationBuilder().AddJsonStream(stream).Build();
using var config = new ConfigurationBuilder().AddJsonStream(stream).Build();
Copy link
Member

@cschuchardt88 cschuchardt88 Nov 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ConfigurationBuilder on build uses ConfigurationRoot may have to cast to it. either way needs to be fixed for memory leak.

or could do
((IDisposable)config).Dispose(); at of the method

https://github.com/dotnet/runtime/blob/9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationBuilder.cs#L53C24-L53C41

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was not a memory leak...

Copy link
Member

@cschuchardt88 cschuchardt88 Nov 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ConfiguationRoot is the class that is created for inherits from IConfigurationRoot

How isn't it a memory leak, The memory for the providers are still allocated? Streams and all.
https://github.com/dotnet/runtime/blob/9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationRoot.cs#L99C9-L112C10

Just do (config as IDisposable)?.Dispose() what's the big deal?

@cschuchardt88 cschuchardt88 dismissed their stale review November 26, 2024 23:06

Fixed problem

@Jim8y Jim8y added this to the v3.8.0 milestone Nov 27, 2024
@Jim8y Jim8y mentioned this pull request Nov 27, 2024
11 tasks
@shargon
Copy link
Member Author

shargon commented Nov 27, 2024

Ready to review again

Copy link
Member

@AnnaShaleva AnnaShaleva left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@NGDAdmin NGDAdmin merged commit 705f4bb into HF_Echidna Dec 19, 2024
6 of 7 checks passed
@NGDAdmin NGDAdmin deleted the call-states-hf branch December 19, 2024 07:37
NGDAdmin pushed a commit that referenced this pull request Jan 23, 2025
* add hardofork HF_Echidna

* Add entries to `Designation` event (#3397)

* Add entries to Designation event

* Change to HF_Echidna

* Add UT

* Add count

* [Neo Core StdLib] Add Base64url (#3453)

* add base64url

* active in

* update placehold hf height

* fix hf issue and move methods to proper place.

* fix test

* use identifymodel instead.

* add hardofork HF_Echidna

* Add entries to `Designation` event (#3397)

* Add entries to Designation event

* Change to HF_Echidna

* Add UT

* Add count

* [Neo Core StdLib] Add Base64url (#3453)

* add base64url

* active in

* update placehold hf height

* fix hf issue and move methods to proper place.

* fix test

* use identifymodel instead.

* add hardofork HF_Echidna

* Add entries to `Designation` event (#3397)

* Add entries to Designation event

* Change to HF_Echidna

* Add UT

* Add count

* [Neo Core StdLib] Add Base64url (#3453)

* add base64url

* active in

* update placehold hf height

* fix hf issue and move methods to proper place.

* fix test

* use identifymodel instead.

* format

* Fixed typo

* Added back #3397

* Fixed tests

* fixed global.json

* Update src/Neo/Neo.csproj

* Update src/Neo/Neo.csproj

* [`Fix`]: integer overflow in `JumpTable.SubStr ` (#3496)

* fix: int overflow in SubStr

* fix: int overflow in SubStr

* format

* Versioning change

* Clean

* Rename

* Show change

* Space

* remove duplicated lines in gitignroe

---------

Co-authored-by: Jimmy <[email protected]>
Co-authored-by: Shargon <[email protected]>

* Fix NEO callstates (#3599)

* Allow callstates to use HF

* Rename to method

* Other rename

* Change the way

* Reduce changes

* Reduce changes

* Adapt name always

* Avoid string when only is lower the first char

* UT

* Test all

* Update src/Neo/ProtocolSettings.cs

Co-authored-by: Christopher Schuchardt <[email protected]>

* Update src/Neo/ProtocolSettings.cs

Co-authored-by: Christopher Schuchardt <[email protected]>

* Reuse Load from stream

* Unify

* Fix default logic

* Change ContractMethod to allowMultiple

* Use LowerInvariant

* Move CheckingHardfork

* Remove optional arg

* Fix build

* Avoid file not found error

---------

Co-authored-by: Christopher Schuchardt <[email protected]>

* fix tests error (#3636)

* fux build error

* Update src/Neo/SmartContract/ApplicationEngine.cs

---------

Co-authored-by: Shargon <[email protected]>

* NeoToken: accept candidate registration via onNEP17Payment (#3597)

Solves two problems:
 * inability to estimate GAS needed for registerCandidate in a regular way
   because of its very high fee (more than what normal RPC servers allow)
 * inability to have MaxBlockSystemFee lower than the registration price
   which is very high on its own (more than practically possible to execute)

Fixes #3552.

Signed-off-by: Roman Khimov <[email protected]>

* specify the argument exception information.

* Fix Ut (#3635)

* NeoToken: add NEP-27 to supported standards list starting from Echidna (#3643)

#3597 introduces `onNEP17Payment`
handler to native NeoToke contract starting from Echidna hardfork. We
need to update the list of supported standards respectively.

Signed-off-by: Anna Shaleva <[email protected]>

* ut: fix HF_Echidna unit tests (#3646)

* Fix UT

* Update src/Neo/ProtocolSettings.cs

Co-authored-by: nan01ab <[email protected]>

* Update src/Neo/ProtocolSettings.cs

Co-authored-by: nan01ab <[email protected]>

* Update src/Neo/ProtocolSettings.cs

Co-authored-by: Christopher Schuchardt <[email protected]>

---------

Co-authored-by: Jimmy <[email protected]>
Co-authored-by: nan01ab <[email protected]>
Co-authored-by: Christopher Schuchardt <[email protected]>

* [Core Add] Add support to Ed25519 (#3507)

* fix unnecessary change

* Clean using

---------

Co-authored-by: Fernando Diaz Toledano <[email protected]>

* Fix `HF_Echidna` comments (#3679)

* Fix obsolete

* Fix https://github.com/neo-project/neo/pull/3454/files#r1912152270

* Fix comment

* Update RoleManagement.cs

* Unset HF_Echidna

* Revert getTransaction

* Revert verifyWithECDsa

* format

---------

Signed-off-by: Roman Khimov <[email protected]>
Signed-off-by: Anna Shaleva <[email protected]>
Co-authored-by: Shargon <[email protected]>
Co-authored-by: Christopher Schuchardt <[email protected]>
Co-authored-by: nan01ab <[email protected]>
Co-authored-by: Roman Khimov <[email protected]>
Co-authored-by: Anna Shaleva <[email protected]>
Co-authored-by: Vitor Nazário Coelho <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants