dash/test/lint
Konstantin Akimov 8a0e681cea
feat!: add an implementation of DIP 0027 Credit Asset Locks (#5026)
## Issue being fixed or feature implemented
This is an implementation of DIP0027 "Credit Asset Locks".
It's a mechanism to fluidly exchange between Dash and credits.

## What was done?
This pull request includes:
      - Asset Lock transaction
      - Asset Unlock transaction (withdrawal)
      - Credit Pool in coinbase
      - Unit tests for Asset Lock/Unlock tx
      - New functional test `feature_asset_locks.py`

RPC: currently locked amount (credit pool) is available through rpc call
`getblock`.

## How Has This Been Tested?
There added new unit tests for basic checks of transaction validity
(asset lock/unlock).
Also added new functional test "feature_asset_locks.py" that cover
typical cases, but not all corner cases yet.

## Breaking Changes
This feature should be activated as hard-fork because:
- It adds 2 new special transaction and one of them [asset unlock tx]
requires update consensus rulels
 - It adds new data in coinbase tx (credit pool)

## Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
**To release DIP 0027**
- [x] I have assigned this pull request to a milestone

---------

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2023-07-24 11:39:38 -05:00
..
check-doc.py merge bitcoin#19671: Remove -zapwallettxes 2022-05-13 18:06:06 +05:30
check-rpc-mappings.py refactor: remove leftover rpc prefix from filename (evo, quorum) 2022-10-21 21:51:45 +05:30
commit-script-check.sh Merge bitcoin/bitcoin#23543: test: Prevent non-compatible sed binary for scripted-diffs 2022-04-11 09:46:40 -07:00
extended-lint-all.sh Merge #14505: test: Add linter to make sure single parameter constructors are marked explicit 2021-11-24 14:36:20 -05:00
extended-lint-cppcheck.sh Merge #18234: refactor: Replace boost::mutex,condition_var,chrono with std equivalents in scheduler 2023-05-31 18:14:23 -05:00
git-subtree-check.sh
lint-all.sh Optimize linters (#4637) 2021-12-30 19:34:36 +03:00
lint-assertions.sh partial bitcoin#19277: Add Assert identity function' 2022-05-13 18:06:06 +05:30
lint-circular-dependencies.sh feat!: add an implementation of DIP 0027 Credit Asset Locks (#5026) 2023-07-24 11:39:38 -05:00
lint-cppcheck-dash.sh feat: mnlistdiff v20 CL sig quorums (#5377) 2023-07-10 11:23:09 -05:00
lint-filenames.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-format-strings.py Merge #16688: log: Add validation interface logging 2023-05-24 12:43:57 -05:00
lint-format-strings.sh build/depends: commit dashpay/bls-signatures@66ee820f to source tree as vendored (#5077) 2022-11-22 11:34:46 -06:00
lint-git-commit-check.sh Fix lint-git-commit-check.sh (#4267) 2021-07-19 12:32:12 +03:00
lint-include-guards.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-includes.sh Merge #17477: Remove the mempool's NotifyEntryAdded and NotifyEntryRemoved signals 2023-02-15 00:07:39 -06:00
lint-locale-dependence.sh Merge bitcoin/bitcoin#23214: Replace stoul with ToIntegral in dbwrapper 2023-04-17 11:17:34 -05:00
lint-logs.sh Merge #17260: Split some CWallet functions into new LegacyScriptPubKeyMan (#4938) 2022-08-08 11:05:21 -05:00
lint-python-dead-code.sh Merge #21096: Re-add dead code detection 2021-10-05 20:34:00 +03:00
lint-python-mutable-default-parameters.sh Merge #16726: tests: Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values 2023-04-04 12:45:27 -05:00
lint-python-utf8-encoding.sh partial merge #17398: Update leveldb to 1.22+ (#4230) 2021-07-15 15:42:55 -05:00
lint-python.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-qt.sh Merge #13529: Use new Qt5 connect syntax 2021-08-23 12:12:31 -04:00
lint-rpc-help.sh Merge bitcoin#14726: Use RPCHelpMan for all RPCs (#4492) 2021-10-12 00:55:23 +03:00
lint-shebang.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-shell-locale.sh build/depends: commit dashpay/bls-signatures@66ee820f to source tree as vendored (#5077) 2022-11-22 11:34:46 -06:00
lint-shell.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-spelling.ignore-words.txt Merge #18253: doc: Correct spelling errors in comments 2023-04-04 12:53:49 -05:00
lint-spelling.sh partial Merge bitcoin/bitcoin#22405: build: remove --enable-glibc-back-compat from Guix build 2023-03-26 16:50:26 -05:00
lint-submodule.sh
lint-tests.sh
lint-whitespace.sh Merge #20937: guix: Make nsis reproducible by respecting SOURCE-DATE-EPOCH 2023-03-26 16:50:26 -05:00
README.md Merge #17176: ci: Cleanup macOS runs 2022-05-17 01:20:21 -04:00

This folder contains lint scripts.

check-doc.py

Check for missing documentation of command line options.

commit-script-check.sh

Verification of scripted diffs. Scripted diffs are only assumed to run on the latest LTS release of Ubuntu. Running them on other operating systems might require installing GNU tools, such as GNU sed.

git-subtree-check.sh

Run this script from the root of the repository to verify that a subtree matches the contents of the commit it claims to have been updated to.

To use, make sure that you have fetched the upstream repository branch in which the subtree is maintained:

Usage: git-subtree-check.sh DIR (COMMIT)

COMMIT may be omitted, in which case HEAD is used.

lint-all.sh

Calls other scripts with the lint- prefix.