Skip to content

Conversation

@shargon
Copy link
Member

@shargon shargon commented Oct 1, 2025

Selected contracts can be executed without fees, promoting adoption of stablecoins for payments and settlements.


This feature is included in the neo4 roadmap, has been discussed during CentrePoint, and is considered to be included in the next version without having to wait for neo4.

This pull request only includes the definition of the whitelist by the commit, after being accepted I will proceed to the actual consumption of this whitelist by the ApplicationEngine

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?

  • Working on it after define the methods and structure

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

NGDAdmin and others added 30 commits May 22, 2025 08:05
* 100% Coverage Trie.Get

* fix ut

Co-authored-by: Shargon <[email protected]>
* Makefile support for mainnet full node Dockerfile

* add docker run

* add container name

* update doc

* improve

* some improvement

---------

Co-authored-by: Shargon <[email protected]>
* optimize: command tokenizer

* Fix: keep consistency with legacy behaviour when quote char not at first char

---------

Co-authored-by: Shargon <[email protected]>
Co-authored-by: NGD Admin <[email protected]>
* Fix: make the signer sign specific data

* Plugin: add SignClient

* Remove x64 and x86 configurations from solution file

* [`ut`] 100% Coverage Trie.Get (#3952)

* 100% Coverage Trie.Get

* fix ut

---------

Co-authored-by: NGD Admin <[email protected]>
Co-authored-by: Jimmy <[email protected]>
Co-authored-by: Shargon <[email protected]>
* style: make the code style of StatuePlugin more standard

* Update src/Plugins/StateService/StatePlugin.cs

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

* [`ut`] 100% Coverage Trie.Get (#3952)

* 100% Coverage Trie.Get

* fix ut

---------

Co-authored-by: Vitor Nazário Coelho <[email protected]>
Co-authored-by: Shargon <[email protected]>
Co-authored-by: NGD Admin <[email protected]>
Co-authored-by: Jimmy <[email protected]>
* fix ut

Co-authored-by: Shargon <[email protected]>
- Add comprehensive Contributing section to README
- Document branch rules: master (stable release) vs dev (development)
- Specify that all PRs must be based on dev branch, not master
- Include step-by-step PR creation guidelines
- Add development workflow diagram
- Update table of contents to include Contributing section
- Provide clear instructions for fork, branch, commit, and PR process

Co-authored-by: Shargon <[email protected]>
Co-authored-by: NGD Admin <[email protected]>
…3962)

* [UnitTest] - Add unit tests for BigDecimal to increase code coverage

* Update tests/Neo.UnitTests/UT_BigDecimal.cs

---------

Co-authored-by: Shargon <[email protected]>
Co-authored-by: NGD Admin <[email protected]>
* Adding unit test to increase coverage in UInt256 and UInt160. Modify some styles

* Apply suggestions from code review

Remove multiple blank lines

* Update src/Neo/UInt160.cs

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

* Update src/Neo/UInt160.cs

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

* Fix: apply suggested changes to UInt160 and UInt256

* [UnitTest] - Add unit tests for BigDecimal to increase code coverage

---------

Co-authored-by: Shargon <[email protected]>
Co-authored-by: Will <[email protected]>
Co-authored-by: NGD Admin <[email protected]>
Co-authored-by: Jimmy <[email protected]>
* [`ut`] 100% Coverage Trie.Get (#3952)

* 100% Coverage Trie.Get

* fix ut

* Update devcontainer.dockerfile version

---------

Co-authored-by: Shargon <[email protected]>
Co-authored-by: Jimmy <[email protected]>
…hod; 2. Add ShowDllNotFoundError to make exception handling clearer (#3955)

Co-authored-by: Jimmy <[email protected]>
Co-authored-by: NGD Admin <[email protected]>
Co-authored-by: Shargon <[email protected]>
- Add comprehensive documentation for Neo persistence system class relationships
- Document interface hierarchy (IStore, IStoreSnapshot, IReadOnlyStore, IWriteStore, IStoreProvider)
- Explain class structure and relationships between providers, stores, snapshots, and caches
- Detail cache system with DataCache, StoreCache, and ClonedCache relationships
- Include data types (StorageKey, StorageItem) and enums (TrackState, SeekDirection)
- Provide clear explanations of when to use each cache type
- Add typical usage patterns for layered caching architecture

Co-authored-by: Shargon <[email protected]>
…alize (#3966)

* Optimize: Avoid stack alloc in UInt160 and UInt256 Serialize

* Optimize: Avoid stack alloc in UInt160 and UInt256 Serialize

---------

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

* Rename

* OnNewSnapshot rename

* Update src/Neo/Persistence/DataCache.cs

---------

Co-authored-by: Will <[email protected]>
…#3972)

* Optimize: keep more exception info when UInt160.Parse and UInt256.Parse throw exception

* Update src/Neo.Extensions/StringExtensions.cs

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

* Optimize: keep more exception info when UInt160.Parse and UInt256.Parse throw exception

* Update src/Neo/UInt160.cs

---------

Co-authored-by: Christopher Schuchardt <[email protected]>
Co-authored-by: Shargon <[email protected]>
Add a couple of compatibility edge-cases, ref.
nspcc-dev/neo-go#3926.

Signed-off-by: Anna Shaleva <[email protected]>
* Add: more exception info when throw exception

* Update src/Neo/SmartContract/Native/PolicyContract.cs

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

* Update src/Neo/SmartContract/Native/PolicyContract.cs

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

* Update src/Neo/SmartContract/Native/PolicyContract.cs

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

* Add: more exception info when throw exception

---------

Co-authored-by: Shargon <[email protected]>
* Style and decorators

* format

---------

Co-authored-by: Will <[email protected]>
/// </summary>
private const string MillisecondsPerBlockChangedEventName = "MillisecondsPerBlockChanged";

private const string WhitelistChangedEventName = "WhitelistChanged";
Copy link
Member

Choose a reason for hiding this comment

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

We should rename this event. Because we may have other "whitelist" in the future.

Copy link
Member Author

Choose a reason for hiding this comment

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

What names does propose? WhitelistFeeChanged ?

Copy link
Member Author

Choose a reason for hiding this comment

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

@erikzhang event name changed

@shargon
Copy link
Member Author

shargon commented Nov 11, 2025

Ping @neo-project/core

@ajara87
Copy link
Member

ajara87 commented Nov 17, 2025

Conflicts

@shargon shargon changed the base branch from master to master-n3 November 20, 2025 12:02
@shargon shargon added N3 and removed neo4 labels Nov 20, 2025
@shargon shargon changed the title [N4] Whitelist of Free Contracts [N3] Whitelist of Free Contracts Nov 20, 2025
@shargon
Copy link
Member Author

shargon commented Nov 25, 2025

@superboyiii could you test that is working as expected, with native and non native contracts? I want to merge this pr in few days (today or tomorrow)

@shargon
Copy link
Member Author

shargon commented Nov 25, 2025

Tests will be moved to #4340, this PR will be merged in few hours if there is no new opinions

@shargon shargon merged commit 934b77e into master-n3 Nov 26, 2025
6 checks passed
@shargon shargon deleted the whitelisted-fee-definition branch November 26, 2025 09:58
@shargon shargon mentioned this pull request Nov 26, 2025
18 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Critical Issues (bugs) that need to be fixed ASAP N3 Port-to-4.x Ready to Merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.