Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
ec189f6
refactor(sdk): standartize dpp2 api
shumkov Jan 16, 2026
dd71a34
refactor: various improvements
shumkov Jan 17, 2026
511b494
refactoring: types and other stuff
shumkov Jan 17, 2026
b2d70d6
refactor: to/from object types
shumkov Jan 19, 2026
0283dbd
fix: invalid byte size
shumkov Jan 19, 2026
78590e9
refactor: use typed to form return objects
shumkov Jan 19, 2026
88bcf31
refactor: version
shumkov Jan 19, 2026
10572ac
refactor: use js types directly in method params
shumkov Jan 20, 2026
7863c19
refactor: use specific types and remove js prefix
shumkov Jan 20, 2026
80ba209
refactor: define types for plain and json objects
shumkov Jan 20, 2026
835606c
refactor: use identifier instead of strings
shumkov Jan 20, 2026
9285a32
refactor: use types in conversion macros
shumkov Jan 20, 2026
b4359e3
style: fix formatting
shumkov Jan 21, 2026
78e1dbc
refactor: use unified try from options macro
shumkov Jan 21, 2026
1577bd9
refactor: use PlatformVersionLikeJs intead of JsValue
shumkov Jan 21, 2026
952b7a4
refactor: replaced manual `try_from_options` in `ProTxHashWasm` with …
shumkov Jan 21, 2026
b72f52a
refactor: types missing `impl_wasm_type_info!`
shumkov Jan 21, 2026
89cc011
test: update tests
shumkov Jan 21, 2026
5803dea
chore: convertion methods for PartialIdentity
shumkov Jan 22, 2026
d173cd4
refactor: missing types
shumkov Jan 22, 2026
cb7bc43
chore: conversion methods for token transitions
shumkov Jan 22, 2026
f174f3b
test: cover conversion methods with tests
shumkov Jan 22, 2026
1bd9ab2
refactor: TryFrom inconsitences
shumkov Jan 22, 2026
49cbebf
refactor(wasm-sdk): add Wasm suffix to exposed DPNS types
claude Jan 22, 2026
43da1da
docs: update
shumkov Jan 22, 2026
cf67168
refactor: return types
shumkov Jan 22, 2026
c33e6fd
Merge remote-tracking branch 'origin/claude/refactor-wasm-dpp2-V6fo6'…
shumkov Jan 22, 2026
0ad7a10
refactor: remove unchecked
shumkov Jan 22, 2026
f232a3c
refactor: missing types
shumkov Jan 22, 2026
68dec57
refactor: more missing types
shumkov Jan 22, 2026
3513d82
refactor: naming conventions
shumkov Jan 22, 2026
370043e
docs: remove todos
shumkov Jan 23, 2026
a8b1a04
fix: from_bytes functions panic or corrupt data on invalid input length
shumkov Jan 23, 2026
c0b974c
fix: ProTxHashLike rejects ProTxHash objects despite TypeScript type …
shumkov Jan 23, 2026
7c7c845
fix: Reflect::get returns undefined for missing properties instead of…
shumkov Jan 23, 2026
eb9b935
refactor: remove redundant .into() calls in Document serialization me…
shumkov Jan 23, 2026
045a97c
fix: properly check for undefined in Reflect::get for required proper…
shumkov Jan 23, 2026
01f65b7
fix: add missing TypeScript type definitions for extern types
shumkov Jan 23, 2026
ea8259e
fix: use get_required_property for all required constructor params
shumkov Jan 23, 2026
6a0cf9f
fix: validate numeric JS values before casting to u16/u32
shumkov Jan 23, 2026
9434a52
fix: add field name to try_to_object for cleaner error messages
shumkov Jan 23, 2026
2730dbf
fix: use try_to_object for validated Object conversion in wasm-sdk
shumkov Jan 23, 2026
d4d4066
fix: add try_to_bytes helpers for validated Uint8Array conversion
shumkov Jan 23, 2026
d6920b1
refactor: add get_optional_property helper for optional JS properties
shumkov Jan 23, 2026
4dc18b3
refactor: replace bitwise OR with logical OR in boolean expressions
shumkov Jan 23, 2026
646a39d
refactor: add try_to_array helper for array validation
shumkov Jan 23, 2026
f74d0b6
style: apply rustfmt formatting
shumkov Jan 23, 2026
4c70850
refactor: replace match on boolean with if/else for clippy compliance
shumkov Jan 23, 2026
2fa724d
fix: potential precision loss for large credit values
shumkov Jan 23, 2026
815c523
refactor(wasm): add generic get_optional_property helpers and improve…
shumkov Jan 23, 2026
377bc53
refactor(wasm-dpp2): replace impl_try_from_options macro with generic…
shumkov Jan 23, 2026
e91ab47
refactor: stricly use bignint for u64
shumkov Jan 23, 2026
457b544
fix(wasm-dpp2): rename mintingAllowChoosingDestination getter/setter …
shumkov Jan 23, 2026
f103f5b
fix(wasm-dpp2): remove redundant static lifetimes from const declarat…
shumkov Jan 23, 2026
20e62a9
refactor: remo get_ prefix from getters
shumkov Jan 23, 2026
6ad55c6
fix(wasm-dpp2): use base58 strings as Map keys for Identifier lookups
shumkov Jan 23, 2026
e672d65
fix(wasm-dpp2): rename newTokenDestinationIdentity to newTokensDestin…
shumkov Jan 23, 2026
ae72379
test(wasm-dpp2): add loadedPublicKeys setter test for PartialIdentity
shumkov Jan 23, 2026
f27f323
fix(wasm-dpp2): convert property-style chai assertions to function calls
shumkov Jan 23, 2026
4f51c5f
test(wasm-dpp2): replace __wbg_ptr checks with instanceof assertions
shumkov Jan 23, 2026
f4fa76f
test(wasm-dpp2): fix outputScript setter test to use distinct values
shumkov Jan 23, 2026
a8d48e1
fix(wasm-dpp2): update TypeScript types for ContestedDocumentVotePoll…
shumkov Jan 23, 2026
78714db
fix: invliad interfaces
shumkov Jan 23, 2026
435fbff
refactor: snake case to camel case param names
shumkov Jan 23, 2026
436ae79
fix(wasm-dpp2): add try_to_map for safe JS Map validation
shumkov Jan 23, 2026
ea2fa2e
fix(wasm-dpp2): rename assetLock to assetLockProof for consistency
shumkov Jan 23, 2026
d3cc807
fix(wasm-dpp2): fix coreFeePerByte setter parameter name consistency
shumkov Jan 23, 2026
2875fd2
test(wasm-dpp2): fix duplicate assertions in DocumentsTransitions tests
shumkov Jan 23, 2026
a0685e1
fix(wasm-dpp2): add NaN, Infinity, and fractional validation to try_t…
shumkov Jan 23, 2026
f34019b
fix(wasm-dpp2): propagate Reflect.get errors in try_from_options helpers
shumkov Jan 23, 2026
522a4a9
fix(wasm-dpp2): use IdentifierLikeOrUndefinedJs for optional identity…
shumkov Jan 23, 2026
e76c46a
fix(wasm-dpp2): fix set_minimum_token_cost calling wrong method
shumkov Jan 23, 2026
6e31e40
fix(wasm-dpp2): change fromDocumentTransition to take reference inste…
shumkov Jan 23, 2026
ed46a82
fix(wasm-dpp2): rename recipientId to recipientOwnerId in DocumentTra…
shumkov Jan 23, 2026
a42a82e
fix(wasm-dpp2): allow clearing tokenPaymentInfo by accepting Option i…
shumkov Jan 23, 2026
b36e0bd
fix(wasm-dpp2): change groupContractPosition getter to take &self ins…
shumkov Jan 23, 2026
acbaf8a
fix(wasm-dpp2): rename constructor param from actionIsProposer to isA…
shumkov Jan 23, 2026
2769cd2
Merge branch 'v3.0-dev' into feat/sdk/standard-api-dpp2
shumkov Jan 23, 2026
0c2581d
fix(wasm-sdk): use existing wasm-dpp2 utility functions instead of no…
shumkov Jan 25, 2026
8eb5f57
refactor(wasm-dpp2): add try_to_string helper and remove duplicate code
shumkov Jan 25, 2026
d3c25da
refactor(wasm): use try_from_options_optional for settings extraction
shumkov Jan 25, 2026
929fd51
refactor(wasm): add JsMapExt trait to DRY up Map building patterns
shumkov Jan 25, 2026
7336eee
refactor(wasm-sdk): use wasm-dpp2 serialization helpers directly
shumkov Jan 25, 2026
83ca89b
refactor(wasm): add try_to_vec generic helper for JS array conversions
shumkov Jan 25, 2026
32ef89d
refactor(wasm-dpp2): simplify Map iteration using for loop
shumkov Jan 25, 2026
dce1436
refactor(wasm): add impl_try_from_options macro for consistent option…
shumkov Jan 25, 2026
bcd49a7
fix(wasm): resolve clippy warnings
shumkov Jan 25, 2026
a599326
style: fix formatting
shumkov Jan 25, 2026
fead6b9
test: update dpp2 tests
shumkov Jan 25, 2026
05eb74d
test: migrate tests to type script
shumkov Jan 26, 2026
e6cf910
Merge branch 'v3.1-dev' into feat/sdk/standard-api-dpp2
shumkov Jan 26, 2026
2c9f92d
chore: update deps
shumkov Jan 26, 2026
48fe5f8
chore: update TypeScript version
shumkov Jan 26, 2026
426cc04
refactor: fix TS linting errors
shumkov Jan 26, 2026
e8a0e80
test: convert wasm-sdk tests to typescript
shumkov Jan 26, 2026
da7d8f8
test: convert evo sdk tests to type script
shumkov Jan 26, 2026
09e7253
style: fix linter
shumkov Jan 26, 2026
b738a13
test: fix functional tests
shumkov Jan 26, 2026
ca7d453
build: configure mocha to use ts-node/esm for TypeScript type checking
shumkov Jan 26, 2026
718dd9b
fix(js-evo-sdk): correct parserOptions.project path in tests eslintrc
shumkov Jan 26, 2026
1f53ef1
test(wasm-dpp2): consolidate duplicate BatchTransition tests
shumkov Jan 26, 2026
9578191
build(wasm-dpp2): add tsconfigRootDir to eslint parserOptions
shumkov Jan 26, 2026
8243116
test: standardize test descriptions to use "should ..." convention
shumkov Jan 26, 2026
978d6ef
test(wasm-dpp2): fix misleading test name in ChainLockProof spec
shumkov Jan 26, 2026
83b4e32
refactor(wasm-dpp2): replace JsValue round-trip with direct try_into …
shumkov Jan 26, 2026
4ab7cbd
refactor(wasm-dpp2): update try_to_* helpers to accept &JsValue
shumkov Jan 26, 2026
b248aa0
refactor(wasm-dpp2): add string parsing support to try_to_u* functions
shumkov Jan 26, 2026
6835a94
refactor(wasm-dpp2,wasm-sdk): use utility functions for JS value extr…
shumkov Jan 26, 2026
5c95798
test: fix $format_version field in test assertions
shumkov Jan 26, 2026
6b98dbc
fix(wasm-dpp2): update Document TypeScript typedefs for bigint serial…
shumkov Jan 26, 2026
0bc5ea3
style(wasm-dpp2): fix formatting and clippy warnings
shumkov Jan 26, 2026
45c0455
chore: upgrade eslint to 8.57.0 and remove airbnb-typescript dependency
shumkov Jan 27, 2026
7ddd203
fix(wasm-sdk): add explicit ts-node/esm loader to test:functional script
shumkov Jan 27, 2026
8ec4b87
fix(wasm-sdk,js-evo-sdk): add explicit ts-node/esm loader to test:uni…
shumkov Jan 27, 2026
ec4665b
chore(ci): update Node.js version from 20 to 24
shumkov Jan 27, 2026
f9153b2
fix(wasm-dpp2): use distinct js_name for set_signature parameter
shumkov Jan 27, 2026
21c99f5
refactor(wasm-dpp2): simplify IdentityPublicKey constructor
shumkov Jan 27, 2026
5407c5a
refactor(wasm-dpp2): change IdentityPublicKey data to accept Uint8Array
shumkov Jan 27, 2026
50eff5b
style(wasm-dpp2): format public_key_in_creation.rs
shumkov Jan 27, 2026
857d1e7
chore: migrate to ESLint 9 with eslint-config-airbnb-extended
shumkov Jan 27, 2026
90bd014
chore: fix ESLint and TypeScript version constraints in packages
shumkov Jan 28, 2026
aefe2d4
fix(eslint): resolve lint errors in ESLint 9 migration
shumkov Jan 28, 2026
afb12f3
chore: yarn lock
shumkov Jan 28, 2026
0794ae4
chore(dashmate): update tar to ^7.6.0 to fix security vulnerability
shumkov Jan 28, 2026
cb35698
chore: yarn lock
shumkov Jan 28, 2026
1242c7e
fix(wasm-sdk): convert hex string to Uint8Array for IdentityPublicKey…
shumkov Jan 28, 2026
36d9d71
chore(dashmate): update tar to 7.5.7 to fix security vulnerability
shumkov Jan 28, 2026
c4ac709
fix(wasm-dpp2): convert options to JsValue before using try_from_options
shumkov Jan 28, 2026
800211f
chore(bench-suite): restore lint script and fix lint errors
shumkov Jan 28, 2026
06e6a8b
refactor(wasm-dpp2): use serde for primitive fields in transition opt…
shumkov Jan 28, 2026
fdbf4ed
refactor(wasm-dpp2): simplify PlatformVersionWasm conversion with def…
shumkov Jan 28, 2026
f584652
refactor(wasm-dpp2): use serde with IdentifierWasm in constructor opt…
shumkov Jan 29, 2026
231cdbf
refactor(wasm-dpp2): use try_to_object for user input validation
shumkov Jan 29, 2026
8e49634
refactor(wasm-dpp2,wasm-sdk): reorder operations to eliminate options…
shumkov Jan 29, 2026
5076ee3
refactor(wasm-dpp2,wasm-sdk): extract wasm_bindgen types manually ins…
shumkov Jan 29, 2026
e874ba6
refactor(wasm-dpp2): use impl_try_from_js_value macro for cleaner typ…
shumkov Jan 29, 2026
7661145
refactor(wasm-dpp2): use *Like TypeScript type aliases for flexible i…
shumkov Jan 29, 2026
85aaed8
refactor(wasm-dpp2,wasm-sdk): use macros for signer type conversions
shumkov Jan 29, 2026
8e0c802
refactor(wasm-dpp2): use options object for verifyPublicKey
shumkov Jan 29, 2026
11e22fa
Revert "refactor(wasm-dpp2): use options object for verifyPublicKey"
shumkov Jan 29, 2026
af1fe59
refactor(wasm-dpp2): standardize constructors with options objects
shumkov Jan 29, 2026
de7848e
refactor(wasm-dpp2): use options objects for identity/transitions and…
shumkov Jan 30, 2026
5680e47
refactor(wasm-dpp2): update tests for options object constructors and…
shumkov Jan 30, 2026
6ed71be
refactor(wasm-dpp2): use serde for data field in IdentityPublicKeyInC…
shumkov Jan 30, 2026
a49eab9
refactor(wasm-dpp2): use try_from_options_optional and simplify setters
shumkov Jan 30, 2026
4d3d298
refactor(wasm-dpp2): use options objects for distribution structs and…
shumkov Jan 30, 2026
5d1fc1c
refactor(wasm-dpp2): add explicit setters for distribution struct fields
shumkov Jan 30, 2026
572e29b
refactor(wasm-sdk): use ProTxHashWasm type and improve query deserial…
shumkov Jan 30, 2026
cfcb590
fix(wasm-sdk): remove incorrect serde renames for boolean status fields
shumkov Jan 30, 2026
fb11810
chore(wasm-dpp2,wasm-sdk): fix pre-existing clippy, formatting, and l…
shumkov Jan 30, 2026
9276ca3
Merge branch 'v3.1-dev' into feat/sdk/standard-api-dpp2
shumkov Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/actions/nodejs/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ inputs:
node-version:
description: "Node.js version to use"
required: false
default: "20"
default: "24"
runs:
using: composite
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prebuild-devcontainers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Setup Node.JS
uses: actions/setup-node@v4
with:
node-version: "20"
node-version: "24"

- name: Install skopeo
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ jobs:
- name: Setup Node.JS
uses: actions/setup-node@v4
with:
node-version: "20"
node-version: "24"

- name: Enable corepack
run: corepack enable
Expand Down
3,535 changes: 2,746 additions & 789 deletions .pnp.cjs

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .yarn/cache/fsevents-patch-19706e7e35-10.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
86 changes: 86 additions & 0 deletions eslint/base.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import { configs, plugins } from 'eslint-config-airbnb-extended';
import globals from 'globals';

/**
* Base ESLint configuration for all packages.
* Contains common rules and overrides used across the monorepo.
*/
export const baseConfig = [
// Register the plugins required by airbnb-extended
// Each plugin export is a config object with nested plugins
plugins.stylistic,
plugins.importX,
plugins.node,
...configs.base.recommended,
{
languageOptions: {
ecmaVersion: 2022,
sourceType: 'module',
parserOptions: {
ecmaVersion: 2022,
sourceType: 'module',
},
globals: {
...globals.node,
BigInt: 'readonly',
},
},
rules: {
// Common overrides from existing configs
'no-plusplus': 'off',
'eol-last': ['error', 'always'],
'class-methods-use-this': 'off',
curly: ['warn', 'all'],
'no-await-in-loop': 'off',
'no-continue': 'off',
// Custom restricted syntax - remove ForOfStatement restriction from airbnb
'no-restricted-syntax': [
'error',
{
selector: 'LabeledStatement',
message: 'Labels are a form of GOTO; using them makes code confusing.',
},
{
selector: 'WithStatement',
message: '`with` is disallowed in strict mode.',
},
],
// Disable import-x rules that don't work well in monorepo
'import-x/no-relative-packages': 'off',
'import-x/extensions': 'off',
'import-x/no-named-as-default': 'off',
// Increase line length limit
'@stylistic/max-len': ['warn', { code: 120, ignoreStrings: true, ignoreTemplateLiterals: true, ignoreUrls: true, ignoreRegExpLiterals: true, ignoreComments: true }],
// Disable @stylistic rules that weren't enforced before
'@stylistic/indent': 'off',
'@stylistic/brace-style': 'off',
'@stylistic/max-statements-per-line': 'off',
'@stylistic/operator-linebreak': 'off',
'@stylistic/member-delimiter-style': 'off',
'@stylistic/type-annotation-spacing': 'off',
'@stylistic/arrow-parens': 'off',
'@stylistic/arrow-spacing': 'off',
'@stylistic/semi': 'off',
'@stylistic/comma-spacing': 'off',
'@stylistic/comma-dangle': 'off',
'@stylistic/quote-props': 'off',
'@stylistic/quotes': 'off',
'@stylistic/lines-between-class-members': 'off',
'@stylistic/object-curly-newline': 'off',
'@stylistic/no-mixed-operators': 'off',
// Disable other rules that weren't enforced before
'prefer-arrow-callback': 'off',
'prefer-object-has-own': 'off',
'no-new': 'off',
'no-restricted-exports': 'off',
// Disable import-x rules that cause too many warnings
'import-x/newline-after-import': 'off',
'import-x/no-useless-path-segments': 'off',
'import-x/no-rename-default': 'off',
'import-x/namespace': 'off',
'import-x/prefer-default-export': 'off',
},
},
];

export default baseConfig;
32 changes: 32 additions & 0 deletions eslint/mocha-tests.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import globals from 'globals';

/**
* Mocha test files ESLint configuration.
* Provides test-specific globals and rule relaxations.
*/
export const mochaTestConfig = {
files: [
'**/test/**/*.js',
'**/test/**/*.ts',
'**/tests/**/*.js',
'**/tests/**/*.ts',
'**/*.spec.js',
'**/*.spec.ts',
'**/test-d/**/*.ts',
],
languageOptions: {
globals: {
...globals.mocha,
expect: 'readonly',
},
},
rules: {
// Allow dev dependencies in tests
'import-x/no-extraneous-dependencies': 'off',
// dirty-chai uses property assertions
'no-unused-expressions': 'off',
'@typescript-eslint/no-unused-expressions': 'off',
},
};

export default mochaTestConfig;
50 changes: 50 additions & 0 deletions eslint/typescript.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import { configs, plugins } from 'eslint-config-airbnb-extended';

/**
* TypeScript ESLint configuration.
* Extends base config with TypeScript-specific rules and relaxations.
*/
export const typescriptConfig = [
// Register the TypeScript plugin
plugins.typescriptEslint,
...configs.base.typescript,
{
files: ['**/*.ts', '**/*.tsx'],
rules: {
// Disable base rules that conflict with TypeScript versions
'no-return-await': 'off',
'@typescript-eslint/return-await': 'warn',
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': 'warn',
'no-shadow': 'off',
'@typescript-eslint/no-shadow': 'error',

// Relax strict TypeScript rules for backward compatibility
'@typescript-eslint/no-require-imports': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/no-unsafe-function-type': 'off',
'@typescript-eslint/no-this-alias': 'off',
'@typescript-eslint/no-namespace': 'off',
'@typescript-eslint/no-use-before-define': 'off',
'no-use-before-define': 'off',

// Disable new @typescript-eslint rules not previously enforced
'@typescript-eslint/consistent-indexed-object-style': 'off',
'@typescript-eslint/consistent-type-definitions': 'off',
'@typescript-eslint/no-inferrable-types': 'off',
'@typescript-eslint/array-type': 'off',
'@typescript-eslint/prefer-function-type': 'off',

// Import resolution handled by TypeScript
'import-x/extensions': 'off',
'import-x/no-unresolved': 'off',

// Disable @stylistic rules for TypeScript files (not previously enforced)
'@stylistic/member-delimiter-style': 'off',
'@stylistic/type-annotation-spacing': 'off',
},
},
];

export default typescriptConfig;
25 changes: 25 additions & 0 deletions eslint/wasm.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/**
* WASM-specific ESLint configuration.
* Relaxes rules that conflict with WASM bindings and FFI patterns.
*/
export const wasmConfig = {
rules: {
// WASM bindings use __type, _wbg_ptr naming conventions
'no-underscore-dangle': 'off',
// Legitimate use in hex conversion and buffer operations
'no-bitwise': 'off',
// for-of loops are acceptable in modern TypeScript
'no-restricted-syntax': 'off',
// Extended line length for WASM binding code
'max-len': [
'error',
{
code: 140,
ignoreStrings: true,
ignoreTemplateLiterals: true,
},
],
},
};

export default wasmConfig;
8 changes: 7 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,17 @@
},
"devDependencies": {
"@iarna/toml": "^2.2.5",
"@typescript-eslint/parser": "^8.0.0",
"add-stream": "^1.0.0",
"conventional-changelog": "^3.1.24",
"conventional-changelog-dash": "github:dashevo/conventional-changelog-dash",
"eslint": "^9.18.0",
"eslint-config-airbnb-extended": "^3.0.1",
"eslint-plugin-jsdoc": "^50.6.3",
"globals": "^15.14.0",
"semver": "^7.5.3",
"tempfile": "^3.0.0",
"typescript": "^5.7.3",
"ultra-runner": "^3.10.5"
},
"workspaces": [
Expand Down Expand Up @@ -75,6 +81,7 @@
"packages/js-evo-sdk"
],
"resolutions": {
"tar": "7.5.7",
"pbkdf2": "^3.1.3",
"elliptic": "6.6.1",
"bn.js": "4.12.0",
Expand Down Expand Up @@ -108,7 +115,6 @@
"cross-spawn": "^7.0.5",
"nanoid": "^3.3.8",
"tar-fs": "^3.0.9",
"tar": "^7.5.4",
"brace-expansion": "^2.0.2",
"cipher-base": "^1.0.5",
"sha.js": "^2.4.12",
Expand Down
36 changes: 0 additions & 36 deletions packages/bench-suite/.eslintrc

This file was deleted.

2 changes: 1 addition & 1 deletion packages/bench-suite/benchmarks/basicValidation.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const { PrivateKey } = require('@dashevo/dashcore-lib');

const dpnsDocumentTypes = require('@dashevo/dpns-contract/schema/v1/dpns-contract-documents.json');

// const { DashPlatformProtocol, Identity, Identifier, default: loadWasmDpp } = require('@dashevo/wasm-dpp');
const { Identity, Identifier } = require('@dashevo/wasm-dpp');
const generateRandomIdentifier = require('@dashevo/wasm-dpp/lib/test/utils/generateRandomIdentifierAsync');

const crypto = require('crypto');
Expand Down
2 changes: 0 additions & 2 deletions packages/bench-suite/benchmarks/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
/* eslint-disable global-require */

module.exports = [
require('./documents/100string'),
require('./documents/indices'),
Expand Down
8 changes: 8 additions & 0 deletions packages/bench-suite/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import baseConfig from '../../eslint/base.mjs';

export default [
...baseConfig,
{
ignores: ['dist/**', 'node_modules/**'],
},
];
2 changes: 1 addition & 1 deletion packages/bench-suite/lib/Runner.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class Runner {
* @param {string} filePath
*/
loadBenchmarks(filePath) {
// eslint-disable-next-line global-require,import/no-dynamic-require
// eslint-disable-next-line import-x/no-dynamic-require
const benchmarks = require(filePath);

for (const benchmarkConfig of benchmarks) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class DriveMetricsCollector extends events.EventEmitter {
let logData;
try {
logData = JSON.parse(line);
} catch (e) {
} catch {
return;
}

Expand Down
7 changes: 2 additions & 5 deletions packages/bench-suite/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"description": "Dash Platform benchmark tool",
"scripts": {
"bench": "node ./bin/bench.js",
"lint": ""
"lint": "eslint ."
},
"dependencies": {
"@dashevo/dashcore-lib": "~0.22.0",
Expand All @@ -20,10 +20,7 @@
"mocha": "^11.1.0"
},
"devDependencies": {
"babel-eslint": "^10.1.0",
"eslint": "^8.53.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-plugin-import": "^2.29.0"
"eslint": "^9.18.0"
},
"repository": {
"type": "git",
Expand Down
3 changes: 0 additions & 3 deletions packages/dapi-grpc/.eslintignore

This file was deleted.

19 changes: 0 additions & 19 deletions packages/dapi-grpc/.eslintrc

This file was deleted.

11 changes: 11 additions & 0 deletions packages/dapi-grpc/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import baseConfig from '../../eslint/base.mjs';
import mochaTestConfig from '../../eslint/mocha-tests.mjs';

export default [
...baseConfig,
mochaTestConfig,
{
// Generated protobuf code - ignore clients and src generated directories
ignores: ['dist/**', 'node_modules/**', 'clients/**', 'src/**'],
},
];
Loading