You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,10 +12,12 @@ and this project adheres to the versioning scheme outlined in the [README.md](RE
12
12
- Renamed `clarity-serialization` to `clarity-types`.
13
13
- Add `stackerdb_timeout_secs` to miner config for limiting duration of StackerDB HTTP requests.
14
14
- When determining a global transaction replay set, the state evaluator now uses a longest-common-prefix algorithm to find a replay set in the case where a single replay set has less than 70% of signer weight.
15
-
- New endpoint /v3/tenures/blocks/ allowing retrieving the list of stacks blocks from a burn block
15
+
- New endpoints /v3/tenures/blocks/, /v3/tenures/blocks/hash, /v3/tenures/blocks/height allowing retrieving the list of stacks blocks from a burn block
16
16
- Creates epoch 3.3 and costs-4 in preparation for a hardfork to activate Clarity 4
17
17
- Adds support for new Clarity 4 builtins (not activated until epoch 3.3):
18
18
-`contract-hash?`
19
+
-`current-contract`
20
+
-`block-time`
19
21
-`to-ascii?`
20
22
- Added `contract_cost_limit_percentage` to the miner config file — sets the percentage of a block’s execution cost at which, if a large non-boot contract call would cause a BlockTooBigError, the miner will stop adding further non-boot contract calls and only include STX transfers and boot contract calls for the remainder of the block.
21
23
@@ -25,8 +27,9 @@ and this project adheres to the versioning scheme outlined in the [README.md](RE
25
27
expressive (#6337)
26
28
- Removed affirmation maps logic throughout, upgrading chainstate DB schema to 11 and burnchain DB schema to 3 (#6314)
27
29
28
-
### Changed
30
+
### Fixed
29
31
32
+
- When running `stacks-inspect decode-tx`, print the correct version of the address (mainnet or testnet) based on the transaction passed in
30
33
- When a contract deploy is analyzed, it will no longer throw a `CostError` when the contract contains an undefined top-level variable. Instead, it will throw a `UndefinedVariable` error.
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+18-8Lines changed: 18 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,7 +56,7 @@ For an example of this process, see PRs
56
56
test, module, function, etc.), each should be documented according
57
57
to our [coding guidelines](#Coding-Guidelines).
58
58
59
-
> [*] The Changelog focuses on product changes. A "major change" refers to updates that have a direct impact on the end user, such as introducing new features, modifying existing functionality, or optimizing runtime performance.
59
+
> [*] The Changelog focuses on product changes. A "major change" refers to updates that have a direct impact on the end user, such as introducing new features, modifying existing functionality, or optimizing runtime performance.
60
60
On the other hand, changes that do not need to be reflected in the Changelog include code refactoring, writing tests, or automating processes, as these do not directly affect the user experience.
61
61
62
62
## Git Commit Messages
@@ -374,10 +374,10 @@ A test should be marked `#[ignore]` if:
374
374
-**Integration tests need to be properly tagged** using [pinny-rs](https://github.com/BitcoinL2-Labs/pinny-rs/) crate. Tagging requires two fundamental steps:
375
375
1. Define allowed tags in the package `Cargo.toml` file (if needed).
376
376
2. Apply relevant tags to the tests, picking from the allowed set.
377
-
377
+
378
378
Then it will be possible to run tests with filtering based on the tags using `cargo test` and `cargo nextest` runner.
379
379
> For more information and examples on how tagging works, refer to the [pinny-rs](https://github.com/BitcoinL2-Labs/pinny-rs/) readme.
380
-
380
+
381
381
Below the tag set currently defined with related purpose:
382
382
383
383
| Tag | Description |
@@ -406,16 +406,26 @@ cargo fmt-stacks
406
406
407
407
## Clippy Warnings
408
408
409
-
PRs will be checked against `clippy` and will _fail_ if any clippy warnings are generated.
410
-
Unfortunately, not all existing clippy warnings have been addressed throughout stacks-core, so arguments must be passed via the command line.
411
-
Therefore, we handle `clippy` configurations using a Cargo alias: `cargo clippy-stacks`
409
+
All PRs are checked with `clippy`, and the CI will **fail** if any warnings are raised.
410
+
Because not all existing clippy warnings in `stacks-core` have been addressed, we use Cargo aliases to standardize how clippy is run across different parts of the codebase.
411
+
412
+
Two commands are available:
412
413
413
-
You can check what warnings need to be addressed locally via:
414
+
-`cargo clippy-stacks`
415
+
Runs clippy across the core packages of the repository (e.g. `stx-genesis`, `clarity`, `stacks-signer`, etc.).
416
+
417
+
-`cargo clippy-stackslib`
418
+
Runs clippy specifically on the `stackslib` package, with a different configuration.
419
+
420
+
To check warnings locally, run:
414
421
415
422
```bash
416
423
cargo clippy-stacks
424
+
cargo clippy-stackslib
417
425
```
418
426
427
+
Make sure both commands pass before opening a pull request.
428
+
419
429
## Comments
420
430
421
431
Comments are very important for the readability and correctness of the codebase. The purpose of comments is:
@@ -523,12 +508,9 @@ impl DiagnosableError for CheckErrors {
523
508
CheckErrors::ValueOutOfBounds => "created a type which value size was out of defined bounds".into(),
524
509
CheckErrors::TypeSignatureTooDeep => "created a type which was deeper than maximum allowed type depth".into(),
525
510
CheckErrors::ExpectedName => "expected a name argument to this function".into(),
526
-
CheckErrors::NoSuperType(a, b) => format!("unable to create a supertype for the two types: '{a}' and '{b}'"),
527
-
CheckErrors::UnknownListConstructionFailure => "invalid syntax for list definition".into(),
528
511
CheckErrors::ListTypesMustMatch => "expecting elements of same type in a list".into(),
529
512
CheckErrors::ConstructedListTooLarge => "reached limit of elements in a sequence".into(),
530
513
CheckErrors::TypeError(expected_type, found_type) => format!("expecting expression of type '{expected_type}', found '{found_type}'"),
531
-
CheckErrors::TypeLiteralError(expected_type, found_type) => format!("expecting a literal of type '{expected_type}', found '{found_type}'"),
532
514
CheckErrors::TypeValueError(expected_type, found_value) => format!("expecting expression of type '{expected_type}', found '{found_value}'"),
533
515
CheckErrors::UnionTypeError(expected_types, found_type) => format!("expecting expression of type {}, found '{}'", formatted_expected_types(expected_types), found_type),
534
516
CheckErrors::UnionTypeValueError(expected_types, found_type) => format!("expecting expression of type {}, found '{}'", formatted_expected_types(expected_types), found_type),
@@ -593,21 +575,18 @@ impl DiagnosableError for CheckErrors {
593
575
CheckErrors::IfArmsMustMatch(type_1, type_2) => format!("expression types returned by the arms of 'if' must match (got '{type_1}' and '{type_2}')"),
594
576
CheckErrors::MatchArmsMustMatch(type_1, type_2) => format!("expression types returned by the arms of 'match' must match (got '{type_1}' and '{type_2}')"),
595
577
CheckErrors::DefaultTypesMustMatch(type_1, type_2) => format!("expression types passed in 'default-to' must match (got '{type_1}' and '{type_2}')"),
596
-
CheckErrors::TooManyExpressions => "reached limit of expressions".into(),
597
578
CheckErrors::IllegalOrUnknownFunctionApplication(function_name) => format!("use of illegal / unresolved function '{function_name}"),
598
579
CheckErrors::UnknownFunction(function_name) => format!("use of unresolved function '{function_name}'"),
599
580
CheckErrors::TraitBasedContractCallInReadOnly => "use of trait based contract calls are not allowed in read-only context".into(),
600
581
CheckErrors::WriteAttemptedInReadOnly => "expecting read-only statements, detected a writing operation".into(),
601
582
CheckErrors::AtBlockClosureMustBeReadOnly => "(at-block ...) closures expect read-only statements, but detected a writing operation".into(),
602
583
CheckErrors::BadTokenName => "expecting an token name as an argument".into(),
603
-
CheckErrors::DefineFTBadSignature => "(define-token ...) expects a token name as an argument".into(),
604
584
CheckErrors::DefineNFTBadSignature => "(define-asset ...) expects an asset name and an asset identifier type signature as arguments".into(),
605
585
CheckErrors::NoSuchNFT(asset_name) => format!("tried to use asset function with a undefined asset ('{asset_name}')"),
606
586
CheckErrors::NoSuchFT(asset_name) => format!("tried to use token function with a undefined token ('{asset_name}')"),
607
587
CheckErrors::NoSuchTrait(contract_name, trait_name) => format!("use of unresolved trait {contract_name}.{trait_name}"),
608
588
CheckErrors::TraitReferenceUnknown(trait_name) => format!("use of undeclared trait <{trait_name}>"),
609
589
CheckErrors::TraitMethodUnknown(trait_name, func_name) => format!("method '{func_name}' unspecified in trait <{trait_name}>"),
610
-
CheckErrors::ImportTraitBadSignature => "(use-trait ...) expects a trait name and a trait identifier".into(),
0 commit comments