Skip to content

refactor(js-dash-sdk,platform-test-suite)!: convert to ESM, consume ESM dapi-client and wallet-lib#3678

Closed
PastaPastaPasta wants to merge 5 commits into
dashpay:v3.1-devfrom
PastaPastaPasta:claude/esm-5-sdk-and-test-suite
Closed

refactor(js-dash-sdk,platform-test-suite)!: convert to ESM, consume ESM dapi-client and wallet-lib#3678
PastaPastaPasta wants to merge 5 commits into
dashpay:v3.1-devfrom
PastaPastaPasta:claude/esm-5-sdk-and-test-suite

Conversation

@PastaPastaPasta
Copy link
Copy Markdown
Member

Summary

Final PR in the ESM migration stack. Converts dash (@dashevo/js-dash-sdk) and @dashevo/platform-test-suite to ESM. Restores monorepo-wide green tests after PR 3.

This is PR 5 of 5. Depends on #3674, #3675, #3676, #3677.

What changes

js-dash-sdk

  • package.json: "type": "module", exports map, engines.node >= 18.18. Drops unpkg/browser, test:browsers*, prepublishOnly. Removes devDeps: all karma-*, webpack, browser polyfills, ts-mock-imports (replaced).
  • tsconfig.build.json and tsconfig.json: module: nodenext, moduleResolution: nodenext, target: es2020.
  • All 54 .ts source files get .js extensions on relative imports (TS NodeNext requirement: TS compiles .ts to .js, but the import string must already say .js).
  • Refactored src/SDK/Client/Platform/methods/names/register.ts to accept an injectable randomBytes parameter instead of relying on ts-mock-imports. ESM module exports are frozen; ts-mock-imports-style export mutation no longer works.
  • Replaced winston with console-backed logger.
  • CJS-named-import fixes for @dashevo/dashcore-lib, @dashevo/wasm-dpp, @dashevo/grpc-common, and the system-id imports from contract packages (@dashevo/dpns-contract, @dashevo/dashpay-contract, etc.).
  • Added parallel import type { X as XType }; type X = XType; aliases in 22 .ts files where destructured value names are also used in type positions. Works around TS2440 namespace collision under module: nodenext.
  • Defensive (loadDpp.default ?? loadDpp)() unwrap in 4 sites where wasm-dpp's CJS default is called directly (Platform.initializeDppModule, createIdentityFixtureInAccount, two contract specs).
  • Deletes webpack.config.js, webpack.base.config.js, karma/.

platform-test-suite

  • package.json: "type": "module", drops test:browsers, browser polyfills, karma-*.
  • All ~35 .js files converted to ESM with .js extensions on relative imports.
  • lib/test/bootstrap.js rewritten as ESM with fileURLToPath-based __dirname.
  • .mocharc.yml uses import: for ESM root hooks.
  • Deletes karma.conf.js, lib/test/karma/.

Test plan

  • yarn workspace @dashevo/dapi-client run test:unit315 passing
  • yarn workspace @dashevo/wallet-lib run test:unit377 passing
  • yarn workspace dash run test:unit60 passing ✅ (3 pending pre-existing)
  • yarn workspace @dashevo/platform-test-suite run lint — ESM bootstrap loads
  • platform-test-suite e2e tests require live testnet credentials in .env (pre-existing constraint, unrelated to this conversion)

Breaking changes

  • Both packages ESM-only. require('dash') and require('@dashevo/platform-test-suite') no longer work.
  • Deep imports require .js extensions.
  • js-dash-sdk's Platform.names.register(...) gained an optional trailing randomBytes parameter. Existing callers unaffected; subclasses or replacements need to know.
  • Drops winston, bs58, node-inspect-extracted from deps where unused.

Monorepo state after this stack lands

  • @dashevo/dapi-client — ESM, Uint8Array API, browser-bundler-friendly (Vite/esbuild/webpack 5)
  • @dashevo/wallet-lib — ESM
  • dash — ESM TypeScript
  • @dashevo/platform-test-suite — ESM
  • @dashevo/dashmate — was already ESM, works as-is
  • @dashevo/dapi-grpc — patched in PR 1; rest of package unchanged

Stack

…ton/fetch/promisify shims

Non-breaking cleanup pass; package stays CJS, no public API changes, no consumer changes required.

dapi-client: replace winston with a minimal console-backed logger that preserves the same API (.error/.warn/.info/.verbose/.debug/.silly/.getForId). Drop node-fetch and the lib/test/bootstrap setimmediate shim — Node 18+ has both globally. Drop the https.Agent self-signed-TLS branch from requestJsonRpc (was Node-only; consumers wanting this must configure NODE_TLS_REJECT_UNAUTHORIZED at the app layer). Inline lodash/sample in ListDAPIAddressProvider. Add engines.node >=18.18. Remove dependencies: winston, node-fetch, lodash, bs58 (unused), node-inspect-extracted (unused). Remove devDeps: setimmediate.

dapi-grpc: inline the promisify shim in core/v0/web/CorePromiseClient.js and platform/v0/web/PlatformPromiseClient.js so the browser bundle no longer requires Node's util module. Both files document the shim so a future codegen regen does not silently reintroduce require('util').
… API

Adds lib/utils/bytes.js helper (hexToBytes/bytesToHex/base64ToBytes/bytesToBase64/concatBytes/bytesEqual) and converts all Buffer.* call sites in dapi-client lib/ to Uint8Array, with corresponding test updates. Package stays CJS.

Production exceptions where Buffer is retained: BlockHeadersReader passes Buffer to dashcore-lib's BlockHeader (its BufferReader needs .readInt32LE), and GetIdentitiesContractKeysResponse passes Buffer to wasm-dpp's Identifier.from (it explicitly requires Node Buffer).

createGrpcTransportError now handles both raw bytes (grpc-js path) and base64 strings (grpc-web path) for drive-error-data-bin, stack-bin, and dash-serialized-consensus-error-bin metadata fields, restoring the dual-format behavior that Buffer.from(x, 'base64') used to provide implicitly.

Test updates: spec files that construct expected protobuf requests now wrap .toBuffer() with new Uint8Array(...) to match production's normalization (sinon calledOnceWithExactly distinguishes Buffer from plain Uint8Array).

Breaking change for direct consumers: response object byte fields are now Uint8Array. Callers that do response.field.toString('hex') will fail — use bytesToHex(response.field) from lib/utils/bytes instead. Buffer.isBuffer(response.field) now returns false; use response.field instanceof Uint8Array.

Test results: dapi-client 315/315, wallet-lib 377/377, js-dash-sdk 60/60 — downstream consumers continue passing without modification (they exercise dapi-client mostly via mocks).
Converts @dashevo/dapi-client to pure ESM: type: module, exports map with ./lib/* wildcard, all CJS require/module.exports replaced with import/export, .js extensions on relative imports. Engine bumped to >=18.18.

Drops webpack.config.js, karma.conf.js, and lib/test/karma/. Removes the @babel/core, babel-loader, browser-polyfill, karma, and webpack devDeps. Consumers must use a modern bundler (Vite/esbuild/webpack 5) which handles ESM natively.

Moves 'events' npm package from devDependencies to dependencies — used by DAPIClient, ReconnectableStream, and BlockHeadersProvider for EventEmitter, and resolves correctly in both Node and browser bundlers.

BREAKING: CJS consumers (require) no longer work. Downstream consumers wallet-lib (PR 4) and js-dash-sdk (PR 5) are temporarily broken between this PR merging and PRs 4/5 merging — they must land as a sequence. Dashmate is already ESM and continues to work.

Test results: dapi-client 315/315. wallet-lib + js-dash-sdk fail as expected (fixed by PRs 4 + 5).
Converts @dashevo/wallet-lib to pure ESM so it can consume the ESM dapi-client from PR 3. Adds 'type: module' to package.json. All src/, fixtures/, and tests/ files converted from CJS require/module.exports to ESM import/export with .js extensions on relative imports.

Deletes webpack.config.js, karma/, src/test/karma/. Removes browser-polyfill devDeps (buffer, crypto-browserify, stream-browserify, etc.) and webpack/karma. Tests run via Mocha in Node 18+; browser builds are out of scope. Engines: >=18.18.

CJS-named-import fixes: lodash, crypto-js, @dashevo/dashcore-lib, @dashevo/wasm-dpp, @dashevo/grpc-common all use default-import + destructure pattern because Node ESM cannot statically enumerate named exports of CJS modules.

Surfaces three previously-silent CJS bugs that ESM strict mode catches: missing UnknownStrategy export from errors/index.js, missing named exports for coinSelection strategies, and a 'type=' implicit-global in DerivableKeyChain.spec.js.

Defensive (loadDpp.default ?? loadDpp)() unwrap in IdentitySyncWorker.onStart for the same wasm-dpp NodeNext interop reason as PR 3's bootstrap.

Test results: wallet-lib 377/377 passing. dapi-client unchanged (315/315). js-dash-sdk still broken (PR 5 fixes).
…SM dapi-client and wallet-lib

Final PR in the ESM migration stack. Converts the two remaining workspace packages that consumed dapi-client/wallet-lib, restoring monorepo-wide green tests after PR 3.

js-dash-sdk: TypeScript-based package with NodeNext module resolution. Adds 'type: module' + exports map. tsconfig.build.json → module: nodenext, moduleResolution: nodenext, target: es2020. All .ts files get .js extensions on relative imports (TS NodeNext compiles .ts to .js but the import string must already say .js). Drops ts-mock-imports by refactoring register.ts to accept an injectable randomBytes parameter (ts-mock-imports relies on mutable module exports which ESM forbids). Deletes webpack/karma + browser polyfills. Replaces winston with console-backed logger. CJS-named-import conversions for @dashevo/dashcore-lib, @dashevo/wasm-dpp, @dashevo/grpc-common, and the system-id imports from contract packages. Adds parallel 'import type' aliases (via 'import type { X as XType }; type X = XType;') in 22 .ts files where destructured value names are also used as types — works around TS2440 namespace collision under NodeNext.

platform-test-suite: converted ~35 files from CJS to ESM. Test bootstrap converted; .mocharc.yml uses 'import:' for ESM root hooks.

Defensive (loadDpp.default ?? loadDpp)() unwrap in 4 sites (Platform.initializeDppModule, createIdentityFixtureInAccount, contracts/get.spec.ts, contracts/history.spec.ts). createGrpcTransportError-style dual-format byte handling preserved.

Test results: 752 passing across the monorepo (dapi-client 315, wallet-lib 377, js-dash-sdk 60). platform-test-suite is end-to-end and requires live testnet credentials in .env (pre-existing constraint).
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 19, 2026

Important

Review skipped

Too many files!

This PR contains 262 files, which is 112 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 94e93c1f-aad6-4cdc-9d31-a8c7dea8af34

📥 Commits

Reviewing files that changed from the base of the PR and between 6a3b904 and 68e85b4.

⛔ Files ignored due to path filters (38)
  • .yarn/cache/@dabh-diagnostics-npm-2.0.2-83eb005a83-d0c7ae32da.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/assert-browserify-npm-2.0.0-8125e483ea-161984368c.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/babel-loader-npm-9.1.3-cbf4da21df-7086e67827.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/browserify-zlib-npm-0.2.0-eab4087284-852e72effd.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/color-npm-3.2.1-568cf1014f-bf70438e01.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/color-string-npm-1.6.0-94ed25c258-27c2365153.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/colors-npm-1.4.0-7e2cf12234-90b2d54651.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/colorspace-npm-1.1.4-f01655548a-bb3934ef3c.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/common-path-prefix-npm-3.0.0-68b78785c1-09c180e8d8.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/core-js-npm-3.33.2-08a6fba407-d62554d51c.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/enabled-npm-2.0.0-bf5d96c9d8-9d256d89f4.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/fecha-npm-4.2.1-40d84f7733-6cf959d41a.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/find-cache-dir-npm-4.0.0-ad2504e37e-52a456a80d.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/find-up-npm-6.3.0-e5056fc655-4f3bdc30d4.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/fn.name-npm-1.1.0-b472333184-000198af19.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/karma-sourcemap-loader-npm-0.3.8-a7560c795e-f641355ec1.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/kuler-npm-2.0.0-19e74c9695-9e10b5a165.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/locate-path-npm-7.2.0-0e1169e19b-1c6d269d4e.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/logform-npm-2.3.0-13155f7f21-1fbe98725e.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/net-npm-1.0.2-1d5514df5b-d97e215d92.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/node-inspect-extracted-npm-1.0.8-53baa7fd4f-4647a29afd.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/one-time-npm-1.0.0-aeaad5e524-64d0160480.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/os-browserify-npm-0.3.0-cbc91c79a5-16e37ba3c0.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/p-limit-npm-4.0.0-5dccf29b67-01d9d70695.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/p-locate-npm-6.0.0-b6cfb720dc-2bfe5234ef.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/pako-npm-1.0.11-b8f1b69d3e-1ad07210e8.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/path-exists-npm-5.0.0-0bf403c56c-8ca842868c.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/pkg-dir-npm-7.0.0-02ff099b31-94298b20a4.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/safe-stable-stringify-npm-1.1.1-1c282e1c55-bddfc2334d.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/schema-utils-npm-4.2.0-e822c5b02e-808784735e.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/stack-trace-npm-0.0.10-9460b173e1-7bd633f0e9.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/text-hex-npm-1.0.0-22389e4d56-1138f68adc.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/tls-npm-0.0.1-d44eeeb72e-83aee8b284.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/triple-beam-npm-1.3.0-eda4e2a46c-7d7b77d862.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/ts-mock-imports-npm-1.3.8-ce172e5189-82ee2a7256.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/winston-npm-3.3.3-3fa4527b42-60b74f2ea7.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/winston-transport-npm-4.4.0-e1b3134c1e-f1651e8a87.zip is excluded by !**/.yarn/**, !**/*.zip
  • .yarn/cache/yocto-queue-npm-1.0.0-7b502f1987-2cac84540f.zip is excluded by !**/.yarn/**, !**/*.zip
📒 Files selected for processing (262)
  • .pnp.cjs
  • packages/dapi-grpc/clients/core/v0/web/CorePromiseClient.js
  • packages/dapi-grpc/clients/platform/v0/web/PlatformPromiseClient.js
  • packages/js-dapi-client/.mocharc.yml
  • packages/js-dapi-client/karma.conf.js
  • packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersProvider.js
  • packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersReader.js
  • packages/js-dapi-client/lib/BlockHeadersProvider/createBlockHeadersProviderFromOptions.js
  • packages/js-dapi-client/lib/DAPIClient.js
  • packages/js-dapi-client/lib/SimplifiedMasternodeListProvider/SimplifiedMasternodeListProvider.js
  • packages/js-dapi-client/lib/SimplifiedMasternodeListProvider/createMasternodeListStreamFactory.js
  • packages/js-dapi-client/lib/dapiAddressProvider/DAPIAddress.js
  • packages/js-dapi-client/lib/dapiAddressProvider/ListDAPIAddressProvider.js
  • packages/js-dapi-client/lib/dapiAddressProvider/SimplifiedMasternodeListDAPIAddressProvider.js
  • packages/js-dapi-client/lib/dapiAddressProvider/createDAPIAddressProviderFromOptions.js
  • packages/js-dapi-client/lib/dapiAddressProvider/errors/DAPIAddressHostMissingError.js
  • packages/js-dapi-client/lib/errors/DAPIClientError.js
  • packages/js-dapi-client/lib/index.js
  • packages/js-dapi-client/lib/logger/index.js
  • packages/js-dapi-client/lib/methods/core/CoreMethodsFacade.js
  • packages/js-dapi-client/lib/methods/core/broadcastTransactionFactory.js
  • packages/js-dapi-client/lib/methods/core/getBestBlockHashFactory.js
  • packages/js-dapi-client/lib/methods/core/getBestBlockHeightFactory.js
  • packages/js-dapi-client/lib/methods/core/getBlockByHashFactory.js
  • packages/js-dapi-client/lib/methods/core/getBlockByHeightFactory.js
  • packages/js-dapi-client/lib/methods/core/getBlockHashFactory.js
  • packages/js-dapi-client/lib/methods/core/getBlockchainStatusFactory.js
  • packages/js-dapi-client/lib/methods/core/getMasternodeStatusFactory.js
  • packages/js-dapi-client/lib/methods/core/getTransaction/GetTransactionResponse.js
  • packages/js-dapi-client/lib/methods/core/getTransaction/getTransactionFactory.js
  • packages/js-dapi-client/lib/methods/core/subscribeToBlockHeadersWithChainLocksFactory.js
  • packages/js-dapi-client/lib/methods/core/subscribeToMasternodeListFactory.js
  • packages/js-dapi-client/lib/methods/core/subscribeToTransactionsWithProofsFactory.js
  • packages/js-dapi-client/lib/methods/platform/PlatformMethodsFacade.js
  • packages/js-dapi-client/lib/methods/platform/broadcastStateTransition/BroadcastStateTransitionResponse.js
  • packages/js-dapi-client/lib/methods/platform/broadcastStateTransition/broadcastStateTransitionFactory.js
  • packages/js-dapi-client/lib/methods/platform/getConsensusParams/ConsensusParamsBlock.js
  • packages/js-dapi-client/lib/methods/platform/getConsensusParams/ConsensusParamsEvidence.js
  • packages/js-dapi-client/lib/methods/platform/getConsensusParams/getConsensusParamsFactory.js
  • packages/js-dapi-client/lib/methods/platform/getConsensusParams/getConsensusParamsResponse.js
  • packages/js-dapi-client/lib/methods/platform/getDataContract/GetDataContractResponse.js
  • packages/js-dapi-client/lib/methods/platform/getDataContract/getDataContractFactory.js
  • packages/js-dapi-client/lib/methods/platform/getDataContractHistory/DataContractHistoryEntry.js
  • packages/js-dapi-client/lib/methods/platform/getDataContractHistory/GetDataContractHistoryResponse.js
  • packages/js-dapi-client/lib/methods/platform/getDataContractHistory/getDataContractHistoryFactory.js
  • packages/js-dapi-client/lib/methods/platform/getDocuments/GetDocumentsResponse.js
  • packages/js-dapi-client/lib/methods/platform/getDocuments/getDocumentsFactory.js
  • packages/js-dapi-client/lib/methods/platform/getEpochsInfo/EpochInfo.js
  • packages/js-dapi-client/lib/methods/platform/getEpochsInfo/GetEpochsInfoResponse.js
  • packages/js-dapi-client/lib/methods/platform/getEpochsInfo/getEpochsInfoFactory.js
  • packages/js-dapi-client/lib/methods/platform/getIdentitiesContractKeys/GetIdentitiesContractKeysResponse.js
  • packages/js-dapi-client/lib/methods/platform/getIdentitiesContractKeys/getIdentitiesContractKeysFactory.js
  • packages/js-dapi-client/lib/methods/platform/getIdentity/GetIdentityResponse.js
  • packages/js-dapi-client/lib/methods/platform/getIdentity/getIdentityFactory.js
  • packages/js-dapi-client/lib/methods/platform/getIdentityBalance/GetIdentityBalanceResponse.js
  • packages/js-dapi-client/lib/methods/platform/getIdentityBalance/getIdentityBalanceFactory.js
  • packages/js-dapi-client/lib/methods/platform/getIdentityByPublicKeyHash/GetIdentityByPublicKeyHashResponse.js
  • packages/js-dapi-client/lib/methods/platform/getIdentityByPublicKeyHash/getIdentityByPublicKeyHashFactory.js
  • packages/js-dapi-client/lib/methods/platform/getIdentityContractNonce/GetIdentityContractNonceResponse.js
  • packages/js-dapi-client/lib/methods/platform/getIdentityContractNonce/getIdentityContractNonceFactory.js
  • packages/js-dapi-client/lib/methods/platform/getIdentityKeys/GetIdentityKeysResponse.js
  • packages/js-dapi-client/lib/methods/platform/getIdentityKeys/getIdentityKeysFactory.js
  • packages/js-dapi-client/lib/methods/platform/getIdentityNonce/GetIdentityNonceResponse.js
  • packages/js-dapi-client/lib/methods/platform/getIdentityNonce/getIdentityNonceFactory.js
  • packages/js-dapi-client/lib/methods/platform/getProtocolVersionUpgradeState/GetProtocolVersionUpgradeStateResponse.js
  • packages/js-dapi-client/lib/methods/platform/getProtocolVersionUpgradeState/VersionEntry.js
  • packages/js-dapi-client/lib/methods/platform/getProtocolVersionUpgradeState/getProtocolVersionUpgradeStateFactory.js
  • packages/js-dapi-client/lib/methods/platform/getProtocolVersionUpgradeVoteStatus/GetProtocolVersionUpgradeVoteStatusResponse.js
  • packages/js-dapi-client/lib/methods/platform/getProtocolVersionUpgradeVoteStatus/VersionSignal.js
  • packages/js-dapi-client/lib/methods/platform/getProtocolVersionUpgradeVoteStatus/getProtocolVersionUpgradeVoteStatusFactory.js
  • packages/js-dapi-client/lib/methods/platform/getStatus/ChainStatus.js
  • packages/js-dapi-client/lib/methods/platform/getStatus/GetStatusResponse.js
  • packages/js-dapi-client/lib/methods/platform/getStatus/NetworkStatus.js
  • packages/js-dapi-client/lib/methods/platform/getStatus/NodeStatus.js
  • packages/js-dapi-client/lib/methods/platform/getStatus/StateSyncStatus.js
  • packages/js-dapi-client/lib/methods/platform/getStatus/TimeStatus.js
  • packages/js-dapi-client/lib/methods/platform/getStatus/VersionStatus.js
  • packages/js-dapi-client/lib/methods/platform/getStatus/getStatusFactory.js
  • packages/js-dapi-client/lib/methods/platform/getTotalCreditsInPlatform/GetTotalCreditsInPlatformResponse.js
  • packages/js-dapi-client/lib/methods/platform/getTotalCreditsInPlatform/getTotalCreditsInPlatformFactory.js
  • packages/js-dapi-client/lib/methods/platform/response/AbstractResponse.js
  • packages/js-dapi-client/lib/methods/platform/response/Metadata.js
  • packages/js-dapi-client/lib/methods/platform/response/Proof.js
  • packages/js-dapi-client/lib/methods/platform/response/StoreTreeProofs.js
  • packages/js-dapi-client/lib/methods/platform/response/errors/InvalidResponseError.js
  • packages/js-dapi-client/lib/methods/platform/waitForStateTransitionResult/ErrorResult.js
  • packages/js-dapi-client/lib/methods/platform/waitForStateTransitionResult/WaitForStateTransitionResultResponse.js
  • packages/js-dapi-client/lib/methods/platform/waitForStateTransitionResult/waitForStateTransitionResultFactory.js
  • packages/js-dapi-client/lib/networkConfigs.js
  • packages/js-dapi-client/lib/test/bootstrap.js
  • packages/js-dapi-client/lib/test/fixtures/getHeadersFixture.js
  • packages/js-dapi-client/lib/test/fixtures/getMNListDiffsFixture.js
  • packages/js-dapi-client/lib/test/fixtures/getMetadataFixture.js
  • packages/js-dapi-client/lib/test/fixtures/getProofFixture.js
  • packages/js-dapi-client/lib/test/fixtures/getStatusFixture.js
  • packages/js-dapi-client/lib/test/karma/bootstrap.js
  • packages/js-dapi-client/lib/test/karma/loader.js
  • packages/js-dapi-client/lib/test/mocks/BlockHeadersWithChainLocksStreamMock.js
  • packages/js-dapi-client/lib/test/mocks/mockHeadersChain.js
  • packages/js-dapi-client/lib/transport/GrpcTransport/GrpcTransport.js
  • packages/js-dapi-client/lib/transport/GrpcTransport/createGrpcTransportError.js
  • packages/js-dapi-client/lib/transport/GrpcTransport/errors/InternalServerError.js
  • packages/js-dapi-client/lib/transport/GrpcTransport/errors/NotFoundError.js
  • packages/js-dapi-client/lib/transport/GrpcTransport/errors/TimeoutError.js
  • packages/js-dapi-client/lib/transport/JsonRpcTransport/JsonRpcTransport.js
  • packages/js-dapi-client/lib/transport/JsonRpcTransport/createJsonTransportError.js
  • packages/js-dapi-client/lib/transport/JsonRpcTransport/errors/JsonRpcError.js
  • packages/js-dapi-client/lib/transport/JsonRpcTransport/errors/WrongHttpCodeError.js
  • packages/js-dapi-client/lib/transport/JsonRpcTransport/requestJsonRpc.js
  • packages/js-dapi-client/lib/transport/ReconnectableStream.js
  • packages/js-dapi-client/lib/transport/errors/NoAvailableAddressesError.js
  • packages/js-dapi-client/lib/transport/errors/response/InvalidRequestDPPError.js
  • packages/js-dapi-client/lib/transport/errors/response/InvalidRequestError.js
  • packages/js-dapi-client/lib/transport/errors/response/MaxRetriesReachedError.js
  • packages/js-dapi-client/lib/transport/errors/response/NoAvailableAddressesForRetryError.js
  • packages/js-dapi-client/lib/transport/errors/response/ResponseError.js
  • packages/js-dapi-client/lib/transport/errors/response/RetriableResponseError.js
  • packages/js-dapi-client/lib/transport/errors/response/ServerError.js
  • packages/js-dapi-client/lib/utils/bytes.js
  • packages/js-dapi-client/lib/utils/wait.js
  • packages/js-dapi-client/package.json
  • packages/js-dapi-client/polyfills/fetch-polyfill.js
  • packages/js-dapi-client/test/integration/BlockHeadersProvider/BlockHeadersProvider.spec.js
  • packages/js-dapi-client/test/integration/DAPIClient.spec.js
  • packages/js-dapi-client/test/integration/SMLProvider/SimplifiedMasternodeListProvider.spec.js
  • packages/js-dapi-client/test/integration/methods/core/CoreMethodsFacade.spec.js
  • packages/js-dapi-client/test/integration/methods/platform/PlatformMethodsFacade.spec.js
  • packages/js-dapi-client/test/unit/BlockHeadersProvider/BlockHeadersProvider.spec.js
  • packages/js-dapi-client/test/unit/BlockHeadersProvider/BlockHeadersReader.spec.js
  • packages/js-dapi-client/test/unit/BlockHeadersProvider/createBlockHeadersProviderFromOptions.spec.js
  • packages/js-dapi-client/test/unit/DAPIClient.spec.js
  • packages/js-dapi-client/test/unit/dapiAddressProvider/DAPIAddress.spec.js
  • packages/js-dapi-client/test/unit/dapiAddressProvider/ListDAPIAddressProvider.spec.js
  • packages/js-dapi-client/test/unit/dapiAddressProvider/SimplifiedMasternodeListDAPIAddressProvider.spec.js
  • packages/js-dapi-client/test/unit/dapiAddressProvider/createDAPIAddressProviderFromOptions.spec.js
  • packages/js-dapi-client/test/unit/methods/core/broadcastTransactionFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/core/getBestBlockHashFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/core/getBlockByHashFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/core/getBlockByHeightFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/core/getBlockHashFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/core/getBlockchainStatusFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/core/getMasternodeStatusFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/core/getTransaction/GetTransactionResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/core/getTransaction/getTransactionFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/core/subscribeToBlockHeadersWithChainLocksFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/core/subscribeToTransactionsWithProofsFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/broadcaseStateTransition/broadcastStateTransitionFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getConsensusParams/ConsensusParamsBlock.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getConsensusParams/ConsensusParamsEvidence.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getConsensusParams/getConsensusParamsFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getConsensusParams/getConsensusParamsResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getDataContract/GetDataContractResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getDataContract/getDataContractFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getDataContractHistory/GetDataContractHistoryResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getDataContractHistory/getDataContractHistoryFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getDocuments/GetDocumentsResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getDocuments/getDocumentsFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getEpochsInfo/GetEpochsInfoResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getEpochsInfo/getEpochsInfoFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentitiesContractKeys/GetIdentitiesContractKeysResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentitiesContractKeys/getIdentitiesContractKeysFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentity/GetIdentityResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentity/getIdentityFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentityBalance/GetIdentityBalanceResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentityBalance/getIdentityBalanceFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentityByPublicKeyHash/GetIdentityByPublicKeyHashResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentityByPublicKeyHash/getIdentityByPublicKeyHashFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentityContractNonce/GetIdentityContractNonce.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentityContractNonce/getIdentityContractNonceFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentityKeys/GetIdentityKeys.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentityKeys/getIdentityKeysFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentityNonce/GetIdentityNonce.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getIdentityNonce/getIdentityNonceFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getProtocolVersionUpgradeState/GetProtocolVersionUpgradeStateResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getProtocolVersionUpgradeState/getProtocolVersionUpgradeStateFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getProtocolVersionUpgradeVoteStatus/GetProtocolVersionUpgradeVoteStatusResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getProtocolVersionUpgradeVoteStatus/getProtocolVersionUpgradeVoteStatusFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getStatus/GetStatusResponse.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/getStatus/getStatusFactory.spec.js
  • packages/js-dapi-client/test/unit/methods/platform/waitForStateTransitionResult/waitForStateTransitionResultFactory.spec.js
  • packages/js-dapi-client/test/unit/transport/GrpcTransport/GrpcTransport.spec.js
  • packages/js-dapi-client/test/unit/transport/GrpcTransport/createGrpcTransportError.spec.js
  • packages/js-dapi-client/test/unit/transport/JsonRpcTransport/JsonRpcTransport.spec.js
  • packages/js-dapi-client/test/unit/transport/JsonRpcTransport/createJsonTransportError.spec.js
  • packages/js-dapi-client/test/unit/transport/JsonRpcTransport/requestJsonRpc.spec.js
  • packages/js-dapi-client/test/unit/transport/ReconnectableStream.spec.js
  • packages/js-dapi-client/webpack.config.js
  • packages/js-dash-sdk/karma/karma.conf.js
  • packages/js-dash-sdk/karma/karma.functional.conf.js
  • packages/js-dash-sdk/karma/options.js
  • packages/js-dash-sdk/package.json
  • packages/js-dash-sdk/src/SDK/Client/Client.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Client.ts
  • packages/js-dash-sdk/src/SDK/Client/ClientApps.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/ClientApps.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/Fetcher/Fetcher.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/Fetcher/Fetcher.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/Fetcher/index.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/Fetcher/withRetry.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/IStateTransitionResult.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/NonceManager/NonceManager.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/NonceManager/NonceManager.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/Platform.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/Platform.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/StateRepository.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/broadcastStateTransition.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/createAssetLockTransaction.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/index.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/create.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/get.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/get.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/history.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/history.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/publish.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/update.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/documents/broadcast.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/documents/create.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/documents/get.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/documents/get.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/creditTransfer.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/creditWithdrawal.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/get.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/internal/createAssetLockProof.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/internal/createIdentityCreateTransition.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/internal/createIdentityTopUpTransition.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/internal/waitForCoreChainLockedHeight.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/register.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/topUp.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/update.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/names/register.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/names/register.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/names/resolve.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/names/resolve.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/names/resolveByRecord.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/names/resolveByRecord.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/names/search.spec.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/methods/names/search.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/signStateTransition.ts
  • packages/js-dash-sdk/src/SDK/Client/Platform/types.ts
  • packages/js-dash-sdk/src/SDK/Client/index.ts
  • packages/js-dash-sdk/src/SDK/Core/Core.d.ts
  • packages/js-dash-sdk/src/SDK/Core/index.ts
  • packages/js-dash-sdk/src/SDK/Platform/Platform.ts
  • packages/js-dash-sdk/src/SDK/Platform/index.ts
  • packages/js-dash-sdk/src/SDK/SDK.spec.ts
  • packages/js-dash-sdk/src/SDK/SDK.ts
  • packages/js-dash-sdk/src/SDK/index.ts
  • packages/js-dash-sdk/src/bls/getBlsAdapter.ts
  • packages/js-dash-sdk/src/index.ts
  • packages/js-dash-sdk/src/logger/index.ts
  • packages/js-dash-sdk/src/test/bootstrap.js
  • packages/js-dash-sdk/src/test/fixtures/createIdentityFixtureInAccount.ts
  • packages/js-dash-sdk/src/test/fixtures/createTransactionFixtureInAccount.ts
  • packages/js-dash-sdk/src/test/fixtures/getResponseMetadataFixture.ts
  • packages/js-dash-sdk/src/test/karma/bootstrap.ts
  • packages/js-dash-sdk/src/test/mocks/createAndAttachTransportMocksToClient.ts
  • packages/js-dash-sdk/src/utils/createFakeIntantLock.ts
  • packages/js-dash-sdk/tests/functional/sdk.js
  • packages/js-dash-sdk/tsconfig.json
  • packages/js-dash-sdk/tsconfig.mocha.json
  • packages/js-dash-sdk/tsconfig.tsd.json
  • packages/js-dash-sdk/webpack.base.config.js

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added this to the v3.1.0 milestone May 19, 2026
@PastaPastaPasta
Copy link
Copy Markdown
Member Author

Closing — reopening as upstream→upstream so CI runs against secrets/runners. New PR link will be added shortly.

@PastaPastaPasta
Copy link
Copy Markdown
Member Author

Reopened as #3683 (upstream→upstream so CI runs against repo secrets/runners).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant