trac-msb 0.2.17 → 0.2.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/README.md +62 -2
  2. package/SECURITY.md +9 -6
  3. package/cli/commandHandler.js +272 -0
  4. package/cli/handlers.js +210 -0
  5. package/cli/interactive.js +182 -0
  6. package/msb.mjs +7 -8
  7. package/package.json +33 -11
  8. package/rpc/create_server.js +44 -44
  9. package/rpc/handlers.js +43 -56
  10. package/rpc/routes/index.js +8 -8
  11. package/rpc/rpc_server.js +6 -2
  12. package/rpc/utils/helpers.js +46 -66
  13. package/scripts/pear-runner.js +170 -0
  14. package/src/config/args.js +60 -13
  15. package/src/config/config.js +163 -14
  16. package/src/config/env.js +57 -25
  17. package/src/core/network/Network.js +121 -56
  18. package/src/core/network/protocols/LegacyProtocol.js +21 -11
  19. package/src/core/network/protocols/NetworkMessages.js +38 -17
  20. package/src/core/network/protocols/ProtocolInterface.js +15 -3
  21. package/src/core/network/protocols/ProtocolSession.js +144 -17
  22. package/src/core/network/protocols/V1Protocol.js +37 -18
  23. package/src/core/network/protocols/connectionPolicies.js +174 -0
  24. package/src/core/network/protocols/legacy/NetworkMessageRouter.js +26 -20
  25. package/src/core/network/protocols/{shared/handlers/base/BaseOperationHandler.js → legacy/handlers/BaseStateOperationHandler.js} +25 -14
  26. package/src/core/network/protocols/legacy/handlers/{GetRequestHandler.js → LegacyGetRequestHandler.js} +9 -9
  27. package/src/core/network/protocols/legacy/handlers/LegacyResponseHandler.js +23 -0
  28. package/src/core/network/protocols/{shared/handlers/RoleOperationHandler.js → legacy/handlers/LegacyRoleOperationHandler.js} +19 -12
  29. package/src/core/network/protocols/{shared/handlers/SubnetworkOperationHandler.js → legacy/handlers/LegacySubnetworkOperationHandler.js} +29 -18
  30. package/src/core/network/protocols/{shared/handlers/TransferOperationHandler.js → legacy/handlers/LegacyTransferOperationHandler.js} +18 -12
  31. package/src/core/network/protocols/legacy/validators/base/BaseResponse.js +7 -10
  32. package/src/core/network/protocols/shared/validators/{PartialBootstrapDeployment.js → PartialBootstrapDeploymentValidator.js} +9 -4
  33. package/src/core/network/protocols/shared/validators/{base/PartialOperation.js → PartialOperationValidator.js} +53 -31
  34. package/src/core/network/protocols/shared/validators/{PartialRoleAccess.js → PartialRoleAccessValidator.js} +51 -17
  35. package/src/core/network/protocols/shared/validators/{PartialTransaction.js → PartialTransactionValidator.js} +21 -7
  36. package/src/core/network/protocols/shared/validators/{PartialTransfer.js → PartialTransferValidator.js} +32 -14
  37. package/src/core/network/protocols/v1/NetworkMessageRouter.js +91 -7
  38. package/src/core/network/protocols/v1/V1ProtocolError.js +27 -0
  39. package/src/core/network/protocols/v1/handlers/V1BaseOperationHandler.js +66 -0
  40. package/src/core/network/protocols/v1/handlers/V1BroadcastTransactionOperationHandler.js +272 -0
  41. package/src/core/network/protocols/v1/handlers/V1LivenessOperationHandler.js +88 -0
  42. package/src/core/network/protocols/v1/handlers/broadcastTransaction/BroadcastTransactionErrorMapper.js +84 -0
  43. package/src/core/network/protocols/v1/handlers/broadcastTransaction/BroadcastTransactionOperationStrategies.js +128 -0
  44. package/src/core/network/protocols/v1/handlers/broadcastTransaction/BroadcastTransactionPayloadUtils.js +26 -0
  45. package/src/core/network/protocols/v1/validators/V1BaseOperation.js +212 -0
  46. package/src/core/network/protocols/v1/validators/V1BroadcastTransactionRequest.js +28 -0
  47. package/src/core/network/protocols/v1/validators/V1BroadcastTransactionResponse.js +260 -0
  48. package/src/core/network/protocols/v1/validators/V1LivenessRequest.js +15 -0
  49. package/src/core/network/protocols/v1/validators/V1LivenessResponse.js +17 -0
  50. package/src/core/network/protocols/v1/validators/V1ValidationSchema.js +210 -0
  51. package/src/core/network/services/ConnectionManager.js +149 -96
  52. package/src/core/network/services/MessageOrchestrator.js +197 -37
  53. package/src/core/network/services/PendingRequestService.js +175 -0
  54. package/src/core/network/services/TransactionCommitService.js +149 -0
  55. package/src/core/network/services/TransactionPoolService.js +129 -18
  56. package/src/core/network/services/TransactionRateLimiterService.js +57 -35
  57. package/src/core/network/services/ValidatorHealthCheckService.js +127 -0
  58. package/src/core/network/services/ValidatorObserverService.js +400 -121
  59. package/src/core/state/State.js +259 -156
  60. package/src/core/state/utils/address.js +4 -9
  61. package/src/core/state/utils/balance.js +7 -7
  62. package/src/core/state/utils/roles.js +1 -1
  63. package/src/index.js +320 -278
  64. package/src/messages/network/v1/NetworkMessageBuilder.js +71 -100
  65. package/src/messages/network/v1/NetworkMessageDirector.js +16 -50
  66. package/src/messages/network/v1/networkMessageFactory.js +1 -1
  67. package/src/messages/state/ApplyStateMessageBuilder.js +6 -6
  68. package/src/messages/state/applyStateMessageFactory.js +1 -1
  69. package/src/utils/Scheduler.js +0 -8
  70. package/src/utils/buffer.js +1 -1
  71. package/src/utils/check.js +12 -13
  72. package/src/utils/constants.js +78 -5
  73. package/src/utils/deepEqualApplyPayload.js +40 -0
  74. package/src/utils/errors.js +20 -0
  75. package/src/utils/fileUtils.js +12 -3
  76. package/src/utils/helpers.js +10 -1
  77. package/src/utils/logger.js +25 -0
  78. package/src/utils/migrationUtils.js +3 -3
  79. package/src/utils/normalizers.js +38 -0
  80. package/src/utils/protobuf/networkV1.generated.cjs +2460 -0
  81. package/src/utils/protobuf/operationHelpers.js +24 -3
  82. package/.dockerignore +0 -16
  83. package/.github/workflows/acceptance-tests.yml +0 -38
  84. package/.github/workflows/lint-pr-title.yml +0 -26
  85. package/.github/workflows/publish.yml +0 -33
  86. package/.github/workflows/unit-tests.yml +0 -34
  87. package/CODE_OF_CONDUCT.md +0 -128
  88. package/docker-compose.yml +0 -17
  89. package/dockerfile +0 -41
  90. package/docs/fee_distribution.md +0 -89
  91. package/docs/trac_network_http_api.openapi.yaml +0 -889
  92. package/migration/.gitkeep +0 -0
  93. package/proto/applyOperations.proto +0 -117
  94. package/proto/network.proto +0 -74
  95. package/rpc/rpc_services.js +0 -163
  96. package/scripts/generate-protobufs.js +0 -42
  97. package/src/core/network/identity/NetworkWalletFactory.js +0 -77
  98. package/src/core/network/protocols/legacy/handlers/ResponseHandler.js +0 -37
  99. package/src/utils/cli.js +0 -130
  100. package/src/utils/cliCommands.js +0 -280
  101. package/src/utils/protobuf/network.cjs +0 -840
  102. package/tests/acceptance/v1/account/account.test.mjs +0 -123
  103. package/tests/acceptance/v1/balance/balance.test.mjs +0 -54
  104. package/tests/acceptance/v1/broadcast-transaction/broadcast-transaction.test.mjs +0 -116
  105. package/tests/acceptance/v1/confirmed-length/confirmed-length.test.mjs +0 -19
  106. package/tests/acceptance/v1/fee/fee.test.mjs +0 -11
  107. package/tests/acceptance/v1/health/health.test.mjs +0 -33
  108. package/tests/acceptance/v1/rpc.test.mjs +0 -95
  109. package/tests/acceptance/v1/tx/tx.test.mjs +0 -111
  110. package/tests/acceptance/v1/tx-details/tx-details.test.mjs +0 -213
  111. package/tests/acceptance/v1/tx-hashes/tx-hashes.test.mjs +0 -72
  112. package/tests/acceptance/v1/tx-payloads-bulk/tx-payloads-bulk.test.mjs +0 -27
  113. package/tests/acceptance/v1/txv/txv.test.mjs +0 -11
  114. package/tests/acceptance/v1/unconfirmed-length/unconfirmed-length.test.mjs +0 -11
  115. package/tests/fixtures/apply.fixtures.js +0 -77
  116. package/tests/fixtures/assembleMessage.fixtures.js +0 -41
  117. package/tests/fixtures/check.fixtures.js +0 -428
  118. package/tests/fixtures/networkV1.fixtures.js +0 -85
  119. package/tests/fixtures/protobuf.fixtures.js +0 -388
  120. package/tests/helpers/StateNetworkFactory.js +0 -155
  121. package/tests/helpers/address.js +0 -6
  122. package/tests/helpers/autobaseTestHelpers.js +0 -419
  123. package/tests/helpers/config.js +0 -4
  124. package/tests/helpers/createTestSignature.js +0 -13
  125. package/tests/helpers/regexHelper.js +0 -3
  126. package/tests/helpers/setupApplyTests.js +0 -587
  127. package/tests/helpers/transactionPayloads.mjs +0 -92
  128. package/tests/helpers/wrapper.js +0 -28
  129. package/tests/unit/messages/messages.test.js +0 -12
  130. package/tests/unit/messages/network/NetworkMessageBuilder.test.js +0 -276
  131. package/tests/unit/messages/network/NetworkMessageDirector.test.js +0 -201
  132. package/tests/unit/messages/state/applyStateMessageBuilder.complete.test.js +0 -525
  133. package/tests/unit/messages/state/applyStateMessageBuilder.partial.test.js +0 -237
  134. package/tests/unit/network/ConnectionManager.test.js +0 -191
  135. package/tests/unit/network/NetworkWalletFactory.test.js +0 -156
  136. package/tests/unit/network/networkModule.test.js +0 -10
  137. package/tests/unit/state/State.test.js +0 -80
  138. package/tests/unit/state/apply/addAdmin/addAdminHappyPathScenario.js +0 -42
  139. package/tests/unit/state/apply/addAdmin/addAdminScenarioHelpers.js +0 -276
  140. package/tests/unit/state/apply/addAdmin/adminEntryEncodingFailureScenario.js +0 -30
  141. package/tests/unit/state/apply/addAdmin/adminEntryExistsScenario.js +0 -78
  142. package/tests/unit/state/apply/addAdmin/nodeEntryInitializationFailureScenario.js +0 -30
  143. package/tests/unit/state/apply/addAdmin/nonBootstrapNodeScenario.js +0 -68
  144. package/tests/unit/state/apply/addAdmin/state.apply.addAdmin.test.js +0 -159
  145. package/tests/unit/state/apply/addIndexer/addIndexerHappyPathScenario.js +0 -39
  146. package/tests/unit/state/apply/addIndexer/addIndexerMultipleIndexersInTheNetworkScenario.js +0 -167
  147. package/tests/unit/state/apply/addIndexer/addIndexerPretenderAlreadyIndexerScenario.js +0 -21
  148. package/tests/unit/state/apply/addIndexer/addIndexerPretenderNotWriterScenario.js +0 -21
  149. package/tests/unit/state/apply/addIndexer/addIndexerRemoveAndReAddScenario.js +0 -186
  150. package/tests/unit/state/apply/addIndexer/addIndexerScenarioHelpers.js +0 -443
  151. package/tests/unit/state/apply/addIndexer/addIndexerWriterKeyAlreadyRegisteredScenario.js +0 -32
  152. package/tests/unit/state/apply/addIndexer/state.apply.addIndexer.test.js +0 -297
  153. package/tests/unit/state/apply/addWriter/addWriterHappyPathScenario.js +0 -41
  154. package/tests/unit/state/apply/addWriter/addWriterInvalidValidatorSignatureScenario.js +0 -32
  155. package/tests/unit/state/apply/addWriter/addWriterNewWkScenario.js +0 -149
  156. package/tests/unit/state/apply/addWriter/addWriterRequesterAlreadyWriterScenario.js +0 -21
  157. package/tests/unit/state/apply/addWriter/addWriterRequesterBalanceInsufficientScenario.js +0 -21
  158. package/tests/unit/state/apply/addWriter/addWriterRequesterEntryDecodeFailureScenario.js +0 -19
  159. package/tests/unit/state/apply/addWriter/addWriterRequesterEntryMissingScenario.js +0 -19
  160. package/tests/unit/state/apply/addWriter/addWriterRequesterIndexerScenario.js +0 -21
  161. package/tests/unit/state/apply/addWriter/addWriterRequesterNotWhitelistedScenario.js +0 -21
  162. package/tests/unit/state/apply/addWriter/addWriterScenarioHelpers.js +0 -766
  163. package/tests/unit/state/apply/addWriter/addWriterStakeBalanceUpdateFailureScenario.js +0 -50
  164. package/tests/unit/state/apply/addWriter/addWriterStakeInsufficientBalanceScenario.js +0 -29
  165. package/tests/unit/state/apply/addWriter/addWriterStakeInvalidBalanceScenario.js +0 -29
  166. package/tests/unit/state/apply/addWriter/addWriterStakeInvalidEntryScenario.js +0 -21
  167. package/tests/unit/state/apply/addWriter/addWriterStakeStakedBalanceFailureScenario.js +0 -37
  168. package/tests/unit/state/apply/addWriter/addWriterStakeSubtractFailureScenario.js +0 -42
  169. package/tests/unit/state/apply/addWriter/addWriterValidatorRewardScenario.js +0 -106
  170. package/tests/unit/state/apply/addWriter/addWriterWriterKeyMismatchScenario.js +0 -54
  171. package/tests/unit/state/apply/addWriter/addWriterWriterKeyOwnershipScenario.js +0 -54
  172. package/tests/unit/state/apply/addWriter/addWriterZeroWriterKeyScenario.js +0 -29
  173. package/tests/unit/state/apply/addWriter/state.apply.addWriter.test.js +0 -309
  174. package/tests/unit/state/apply/adminRecovery/adminRecoveryHappyPathScenario.js +0 -30
  175. package/tests/unit/state/apply/adminRecovery/adminRecoveryScenarioHelpers.js +0 -881
  176. package/tests/unit/state/apply/adminRecovery/state.apply.adminRecovery.test.js +0 -435
  177. package/tests/unit/state/apply/appendWhitelist/appendWhitelistBanAndReapplyScenario.js +0 -78
  178. package/tests/unit/state/apply/appendWhitelist/appendWhitelistExistingReaderHappyPathScenario.js +0 -98
  179. package/tests/unit/state/apply/appendWhitelist/appendWhitelistFeeAfterDisableScenario.js +0 -66
  180. package/tests/unit/state/apply/appendWhitelist/appendWhitelistHappyPathScenario.js +0 -55
  181. package/tests/unit/state/apply/appendWhitelist/appendWhitelistInsufficientAdminBalanceScenario.js +0 -103
  182. package/tests/unit/state/apply/appendWhitelist/appendWhitelistNodeAlreadyWhitelistedScenario.js +0 -60
  183. package/tests/unit/state/apply/appendWhitelist/appendWhitelistScenarioHelpers.js +0 -189
  184. package/tests/unit/state/apply/appendWhitelist/state.apply.appendWhitelist.test.js +0 -220
  185. package/tests/unit/state/apply/balanceInitialization/balanceInitializationHappyPathScenario.js +0 -82
  186. package/tests/unit/state/apply/balanceInitialization/balanceInitializationScenarioHelpers.js +0 -111
  187. package/tests/unit/state/apply/balanceInitialization/invalidAmountScenario.js +0 -45
  188. package/tests/unit/state/apply/balanceInitialization/nodeEntryBalanceUpdateFailureScenario.js +0 -82
  189. package/tests/unit/state/apply/balanceInitialization/state.apply.balanceInitialization.test.js +0 -189
  190. package/tests/unit/state/apply/banValidator/banValidatorBanAndReWhitelistScenario.js +0 -156
  191. package/tests/unit/state/apply/banValidator/banValidatorHappyPathScenario.js +0 -36
  192. package/tests/unit/state/apply/banValidator/banValidatorScenarioHelpers.js +0 -531
  193. package/tests/unit/state/apply/banValidator/banValidatorSequentialBansScenario.js +0 -74
  194. package/tests/unit/state/apply/banValidator/banValidatorTargetDecodeFailureScenario.js +0 -19
  195. package/tests/unit/state/apply/banValidator/banValidatorTargetIndexerScenario.js +0 -32
  196. package/tests/unit/state/apply/banValidator/banValidatorTargetNodeEntryMissingScenario.js +0 -19
  197. package/tests/unit/state/apply/banValidator/banValidatorTargetRoleUpdateFailureScenario.js +0 -19
  198. package/tests/unit/state/apply/banValidator/banValidatorWhitelistedNonWriterScenario.js +0 -38
  199. package/tests/unit/state/apply/banValidator/banValidatorWhitelistedZeroBalanceScenario.js +0 -91
  200. package/tests/unit/state/apply/banValidator/banValidatorWithdrawFailureScenario.js +0 -19
  201. package/tests/unit/state/apply/banValidator/state.apply.banValidator.test.js +0 -266
  202. package/tests/unit/state/apply/bootstrapDeployment/bootstrapDeploymentDuplicateRegistrationScenario.js +0 -143
  203. package/tests/unit/state/apply/bootstrapDeployment/bootstrapDeploymentHappyPathScenario.js +0 -26
  204. package/tests/unit/state/apply/bootstrapDeployment/bootstrapDeploymentIncompleteOperationScenario.js +0 -94
  205. package/tests/unit/state/apply/bootstrapDeployment/bootstrapDeploymentInvalidDeploymentEntryScenario.js +0 -37
  206. package/tests/unit/state/apply/bootstrapDeployment/bootstrapDeploymentMultipleBootstrapScenario.js +0 -86
  207. package/tests/unit/state/apply/bootstrapDeployment/bootstrapDeploymentScenarioHelpers.js +0 -347
  208. package/tests/unit/state/apply/bootstrapDeployment/invalidValidatorNodeEntryScenario.js +0 -57
  209. package/tests/unit/state/apply/bootstrapDeployment/state.apply.bootstrapDeployment.test.js +0 -429
  210. package/tests/unit/state/apply/common/access-control/adminConsistencyMismatchScenario.js +0 -120
  211. package/tests/unit/state/apply/common/access-control/adminEntryDecodeFailureScenario.js +0 -130
  212. package/tests/unit/state/apply/common/access-control/adminEntryExistsScenario.js +0 -93
  213. package/tests/unit/state/apply/common/access-control/adminEntryMissingScenario.js +0 -108
  214. package/tests/unit/state/apply/common/access-control/adminOnlyGuardScenario.js +0 -126
  215. package/tests/unit/state/apply/common/access-control/adminPublicKeyDecodeFailureScenario.js +0 -121
  216. package/tests/unit/state/apply/common/access-control/roleAccessOperationValidationScenario.js +0 -50
  217. package/tests/unit/state/apply/common/adminControlOperationValidationScenario.js +0 -56
  218. package/tests/unit/state/apply/common/balances/adminEntryUpdateFailureScenario.js +0 -52
  219. package/tests/unit/state/apply/common/balances/base/requesterBalanceScenarioBase.js +0 -198
  220. package/tests/unit/state/apply/common/balances/feeDecodeFailureScenario.js +0 -52
  221. package/tests/unit/state/apply/common/balances/requesterBalanceDecodeFailureScenario.js +0 -15
  222. package/tests/unit/state/apply/common/balances/requesterBalanceFeeApplicationFailureScenario.js +0 -11
  223. package/tests/unit/state/apply/common/balances/requesterBalanceInsufficientScenario.js +0 -15
  224. package/tests/unit/state/apply/common/balances/requesterBalanceUpdateFailureScenario.js +0 -11
  225. package/tests/unit/state/apply/common/balances/validatorEntryRewardFailureScenario.js +0 -11
  226. package/tests/unit/state/apply/common/balances/validatorEntryUpdateFailureScenario.js +0 -11
  227. package/tests/unit/state/apply/common/balances/validatorNodeEntryDecodeFailureScenario.js +0 -40
  228. package/tests/unit/state/apply/common/base/OperationValidationScenarioBase.js +0 -114
  229. package/tests/unit/state/apply/common/commonScenarioHelper.js +0 -103
  230. package/tests/unit/state/apply/common/indexer/indexerNodeEntryDecodeFailureScenario.js +0 -36
  231. package/tests/unit/state/apply/common/indexer/indexerNodeEntryMissingScenario.js +0 -36
  232. package/tests/unit/state/apply/common/indexer/indexerRoleUpdateFailureScenario.js +0 -29
  233. package/tests/unit/state/apply/common/indexer/indexerSequenceStateInvalidScenario.js +0 -66
  234. package/tests/unit/state/apply/common/invalidMessageComponentValidationScenario.js +0 -84
  235. package/tests/unit/state/apply/common/nodeEntryInitializationFailureScenario.js +0 -47
  236. package/tests/unit/state/apply/common/operationAlreadyAppliedScenario.js +0 -85
  237. package/tests/unit/state/apply/common/payload-structure/addressWithInvalidPublicKeyScenario.js +0 -52
  238. package/tests/unit/state/apply/common/payload-structure/initializationDisabledScenario.js +0 -54
  239. package/tests/unit/state/apply/common/payload-structure/invalidAddressValidationScenario.js +0 -73
  240. package/tests/unit/state/apply/common/payload-structure/invalidHashValidationScenario.js +0 -71
  241. package/tests/unit/state/apply/common/payload-structure/invalidPayloadValidationScenario.js +0 -31
  242. package/tests/unit/state/apply/common/payload-structure/invalidSignatureValidationScenario.js +0 -142
  243. package/tests/unit/state/apply/common/payload-structure/partialOperationValidationScenario.js +0 -87
  244. package/tests/unit/state/apply/common/requester/requesterNodeEntryBufferMissingScenario.js +0 -71
  245. package/tests/unit/state/apply/common/requester/requesterNodeEntryDecodeFailureScenario.js +0 -73
  246. package/tests/unit/state/apply/common/requester/requesterNodeEntryMissingScenario.js +0 -36
  247. package/tests/unit/state/apply/common/requesterAddressValidationScenario.js +0 -44
  248. package/tests/unit/state/apply/common/requesterPublicKeyValidationScenario.js +0 -25
  249. package/tests/unit/state/apply/common/transactionValidityMismatchScenario.js +0 -98
  250. package/tests/unit/state/apply/common/validatorConsistency/base/validatorConsistencyScenarioBase.js +0 -202
  251. package/tests/unit/state/apply/common/validatorConsistency/validatorEntryDecodeFailureScenario.js +0 -17
  252. package/tests/unit/state/apply/common/validatorConsistency/validatorEntryMissingScenario.js +0 -44
  253. package/tests/unit/state/apply/common/validatorConsistency/validatorInactiveScenario.js +0 -19
  254. package/tests/unit/state/apply/common/validatorConsistency/validatorWriterKeyMismatchScenario.js +0 -18
  255. package/tests/unit/state/apply/common/validatorEntryValidation/base/validatorEntryValidationScenarioBase.js +0 -315
  256. package/tests/unit/state/apply/common/validatorEntryValidation/validatorEntryInvalidBalanceScenario.js +0 -18
  257. package/tests/unit/state/apply/common/writerKeyExistsValidationScenario.js +0 -43
  258. package/tests/unit/state/apply/disableInitialization/disableInitializationAlreadyDisabledScenario.js +0 -53
  259. package/tests/unit/state/apply/disableInitialization/disableInitializationHappyPathScenario.js +0 -24
  260. package/tests/unit/state/apply/disableInitialization/disableInitializationScenarioHelpers.js +0 -204
  261. package/tests/unit/state/apply/disableInitialization/state.apply.disableInitialization.test.js +0 -161
  262. package/tests/unit/state/apply/missing-tests.md +0 -18
  263. package/tests/unit/state/apply/removeIndexer/removeIndexerHappyPathScenario.js +0 -58
  264. package/tests/unit/state/apply/removeIndexer/removeIndexerReAddAndRemoveAgainScenario.js +0 -98
  265. package/tests/unit/state/apply/removeIndexer/removeIndexerRemoveMultipleIndexersScenario.js +0 -167
  266. package/tests/unit/state/apply/removeIndexer/removeIndexerScenarioHelpers.js +0 -429
  267. package/tests/unit/state/apply/removeIndexer/removeIndexerTargetNotIndexerScenario.js +0 -22
  268. package/tests/unit/state/apply/removeIndexer/removeIndexerWriterKeyMissingScenario.js +0 -20
  269. package/tests/unit/state/apply/removeIndexer/state.apply.removeIndexer.test.js +0 -291
  270. package/tests/unit/state/apply/removeWriter/removeWriterAndAddWriterAgainScenario.js +0 -87
  271. package/tests/unit/state/apply/removeWriter/removeWriterHappyPathScenario.js +0 -38
  272. package/tests/unit/state/apply/removeWriter/removeWriterInvalidValidatorSignatureScenario.js +0 -32
  273. package/tests/unit/state/apply/removeWriter/removeWriterRequesterBalanceInsufficientScenario.js +0 -21
  274. package/tests/unit/state/apply/removeWriter/removeWriterRequesterEntryDecodeFailureScenario.js +0 -19
  275. package/tests/unit/state/apply/removeWriter/removeWriterRequesterEntryMissingScenario.js +0 -19
  276. package/tests/unit/state/apply/removeWriter/removeWriterRequesterIndexerScenario.js +0 -21
  277. package/tests/unit/state/apply/removeWriter/removeWriterRequesterNotWriterScenario.js +0 -21
  278. package/tests/unit/state/apply/removeWriter/removeWriterRequesterRoleUpdateFailureScenario.js +0 -19
  279. package/tests/unit/state/apply/removeWriter/removeWriterScenarioHelpers.js +0 -348
  280. package/tests/unit/state/apply/removeWriter/removeWriterThroughWriterValidatorScenario.js +0 -113
  281. package/tests/unit/state/apply/removeWriter/removeWriterUnstakeFailureScenario.js +0 -33
  282. package/tests/unit/state/apply/removeWriter/removeWriterWriterKeyMismatchScenario.js +0 -21
  283. package/tests/unit/state/apply/removeWriter/removeWriterWriterKeyOwnershipScenario.js +0 -26
  284. package/tests/unit/state/apply/removeWriter/removeWriterWriterKeyRegistryMissingScenario.js +0 -22
  285. package/tests/unit/state/apply/removeWriter/state.apply.removeWriter.test.js +0 -307
  286. package/tests/unit/state/apply/state.apply.test.js +0 -24
  287. package/tests/unit/state/apply/transfer/state.apply.transfer.test.js +0 -819
  288. package/tests/unit/state/apply/transfer/transferContractSchemaValidationScenario.js +0 -22
  289. package/tests/unit/state/apply/transfer/transferDoubleSpendAcrossValidatorsScenario.js +0 -146
  290. package/tests/unit/state/apply/transfer/transferDoubleSpendSameBatchScenario.js +0 -63
  291. package/tests/unit/state/apply/transfer/transferDoubleSpendSingleValidatorScenario.js +0 -67
  292. package/tests/unit/state/apply/transfer/transferExistingRecipientAmountScenario.js +0 -31
  293. package/tests/unit/state/apply/transfer/transferExistingRecipientZeroAmountScenario.js +0 -31
  294. package/tests/unit/state/apply/transfer/transferHandlerGuardScenarios.js +0 -22
  295. package/tests/unit/state/apply/transfer/transferHappyPathScenario.js +0 -8
  296. package/tests/unit/state/apply/transfer/transferInvalidIncomingDataScenario.js +0 -66
  297. package/tests/unit/state/apply/transfer/transferNewRecipientAmountScenario.js +0 -31
  298. package/tests/unit/state/apply/transfer/transferNewRecipientZeroAmountScenario.js +0 -31
  299. package/tests/unit/state/apply/transfer/transferScenarioHelpers.js +0 -1170
  300. package/tests/unit/state/apply/transfer/transferSelfTransferAmountScenario.js +0 -38
  301. package/tests/unit/state/apply/transfer/transferSelfTransferZeroAmountScenario.js +0 -38
  302. package/tests/unit/state/apply/transfer/transferValidatorRecipientAmountScenario.js +0 -38
  303. package/tests/unit/state/apply/transfer/transferValidatorRecipientZeroAmountScenario.js +0 -38
  304. package/tests/unit/state/apply/txOperation/state.apply.txOperation.test.js +0 -318
  305. package/tests/unit/state/apply/txOperation/txOperationBootstrapNotRegisteredScenario.js +0 -70
  306. package/tests/unit/state/apply/txOperation/txOperationDifferentValidatorCreatorHappyPathScenario.js +0 -23
  307. package/tests/unit/state/apply/txOperation/txOperationInvalidDeploymentEntryScenario.js +0 -48
  308. package/tests/unit/state/apply/txOperation/txOperationInvalidFeeAmountScenario.js +0 -39
  309. package/tests/unit/state/apply/txOperation/txOperationInvalidSubnetCreatorAddressScenario.js +0 -46
  310. package/tests/unit/state/apply/txOperation/txOperationRequesterCreatorHappyPathScenario.js +0 -21
  311. package/tests/unit/state/apply/txOperation/txOperationScenarioHelpers.js +0 -432
  312. package/tests/unit/state/apply/txOperation/txOperationStandardHappyPathScenario.js +0 -21
  313. package/tests/unit/state/apply/txOperation/txOperationTransferFeeAddCreatorBalanceFailureScenario.js +0 -26
  314. package/tests/unit/state/apply/txOperation/txOperationTransferFeeAddValidatorBalanceFailureScenario.js +0 -25
  315. package/tests/unit/state/apply/txOperation/txOperationTransferFeeAddValidatorBonusFailureScenario.js +0 -27
  316. package/tests/unit/state/apply/txOperation/txOperationTransferFeeDecodeCreatorEntryScenario.js +0 -18
  317. package/tests/unit/state/apply/txOperation/txOperationTransferFeeDecodeRequesterEntryScenario.js +0 -17
  318. package/tests/unit/state/apply/txOperation/txOperationTransferFeeDecodeValidatorEntryScenario.js +0 -31
  319. package/tests/unit/state/apply/txOperation/txOperationTransferFeeGuardBypassScenario.js +0 -49
  320. package/tests/unit/state/apply/txOperation/txOperationTransferFeeGuardScenarioFactory.js +0 -93
  321. package/tests/unit/state/apply/txOperation/txOperationTransferFeeInsufficientRequesterBalanceScenario.js +0 -28
  322. package/tests/unit/state/apply/txOperation/txOperationTransferFeeInvalidCreatorBalanceScenario.js +0 -29
  323. package/tests/unit/state/apply/txOperation/txOperationTransferFeeInvalidRequesterBalanceScenario.js +0 -28
  324. package/tests/unit/state/apply/txOperation/txOperationTransferFeeInvalidRequesterEntryScenario.js +0 -17
  325. package/tests/unit/state/apply/txOperation/txOperationTransferFeeInvalidValidatorBalanceScenario.js +0 -33
  326. package/tests/unit/state/apply/txOperation/txOperationTransferFeeMissingCreatorEntryScenario.js +0 -18
  327. package/tests/unit/state/apply/txOperation/txOperationTransferFeeSubtractFailureScenario.js +0 -25
  328. package/tests/unit/state/apply/txOperation/txOperationTransferFeeUpdateCreatorBalanceFailureScenario.js +0 -26
  329. package/tests/unit/state/apply/txOperation/txOperationTransferFeeUpdateFailureScenario.js +0 -25
  330. package/tests/unit/state/apply/txOperation/txOperationTransferFeeUpdateValidatorBalanceFailureScenario.js +0 -26
  331. package/tests/unit/state/apply/txOperation/txOperationTransferFeeUpdateValidatorBonusFailureScenario.js +0 -27
  332. package/tests/unit/state/apply/txOperation/txOperationValidatorCreatorHappyPathScenario.js +0 -21
  333. package/tests/unit/state/stateModule.test.js +0 -23
  334. package/tests/unit/state/stateTestUtils.js +0 -32
  335. package/tests/unit/state/utils/address.test.js +0 -63
  336. package/tests/unit/state/utils/adminEntry.test.js +0 -52
  337. package/tests/unit/state/utils/balance.test.js +0 -320
  338. package/tests/unit/state/utils/lengthEntry.test.js +0 -54
  339. package/tests/unit/state/utils/nodeEntry.test.js +0 -298
  340. package/tests/unit/state/utils/roles.test.js +0 -44
  341. package/tests/unit/unit.test.js +0 -14
  342. package/tests/unit/utils/amountSerialization/amountSerialization.test.js +0 -237
  343. package/tests/unit/utils/buffer/buffer.test.js +0 -251
  344. package/tests/unit/utils/check/adminControlOperation.test.js +0 -156
  345. package/tests/unit/utils/check/balanceInitializationOperation.test.js +0 -54
  346. package/tests/unit/utils/check/bootstrapDeploymentOperation.test.js +0 -104
  347. package/tests/unit/utils/check/check.test.js +0 -17
  348. package/tests/unit/utils/check/common.test.js +0 -419
  349. package/tests/unit/utils/check/coreAdminOperation.test.js +0 -95
  350. package/tests/unit/utils/check/roleAccessOperation.test.js +0 -255
  351. package/tests/unit/utils/check/transactionOperation.test.js +0 -107
  352. package/tests/unit/utils/check/transferOperation.test.js +0 -102
  353. package/tests/unit/utils/fileUtils/readAddressesFromWhitelistFile.test.js +0 -95
  354. package/tests/unit/utils/fileUtils/readBalanceMigrationFile.test.js +0 -149
  355. package/tests/unit/utils/helpers/helpers.test.js +0 -11
  356. package/tests/unit/utils/helpers/isHexString.test.js +0 -12
  357. package/tests/unit/utils/helpers/normalizeHex.test.js +0 -82
  358. package/tests/unit/utils/migrationUtils/validateAddressFromIncomingFile.test.js +0 -100
  359. package/tests/unit/utils/normalizers/normalizers.test.js +0 -469
  360. package/tests/unit/utils/protobuf/applyOperations.test.js +0 -91
  361. package/tests/unit/utils/protobuf/operationHelpers.test.js +0 -305
  362. package/tests/unit/utils/protobuf/protobuf.test.js +0 -12
  363. package/tests/unit/utils/type/type.test.js +0 -25
  364. package/tests/unit/utils/utils.test.js +0 -20
  365. package/whitelist/.gitkeep +0 -0
@@ -1,419 +0,0 @@
1
- import b4a from 'b4a';
2
-
3
- import { MIN_SAFE_VALIDATION_INTEGER, MAX_SAFE_VALIDATION_INTEGER } from '../../../../src/utils/constants.js';
4
- import { partial_operation_value_type } from "../../../fixtures/check.fixtures.js";
5
- import { config } from '../../../helpers/config.js';
6
-
7
- export function topLevelValidationTests(
8
- t,
9
- validateFn,
10
- validFixture,
11
- valueKey,
12
- notAllowedDataTypes,
13
- topFields
14
- ) {
15
-
16
- t.test('strict mode', t => {
17
- const invalidInput = {
18
- ...validFixture,
19
- extra: b4a.from('redundant field', 'utf-8')
20
- };
21
- t.absent(validateFn(invalidInput), 'Extra field should fail due to $$strict');
22
- t.absent(validateFn({}), 'Empty object should fail');
23
- });
24
-
25
- t.test('operation type', t => {
26
- const invalidOperationType = { ...validFixture, type: 'invalid-op' };
27
- t.absent(validateFn(invalidOperationType), 'Invalid operation type should fail');
28
- const notDefinedOperationType = { ...validFixture, type: 999 };
29
- t.absent(validateFn(notDefinedOperationType), 'Invalid operation which is not defined in OperationType should fail');
30
-
31
- const zeroValue = { ...validFixture, type: 0 };
32
- t.absent(validateFn(zeroValue), 'Type with value 0 should fail');
33
-
34
- const negativeValue = { ...validFixture, type: -1 };
35
- t.absent(validateFn(negativeValue), 'Negative type value should fail');
36
- });
37
-
38
- t.test('type range', t => {
39
- const belowMin = { ...validFixture, type: MIN_SAFE_VALIDATION_INTEGER - 1 };
40
- const aboveMax = { ...validFixture, type: MAX_SAFE_VALIDATION_INTEGER + 1 };
41
- t.absent(validateFn(belowMin), 'Type below allowed min should fail');
42
- t.absent(validateFn(aboveMax), 'Type above allowed max should fail');
43
- });
44
-
45
- t.test('neasted objects', t => {
46
- const nestedObjectInsideValue = {
47
- ...validFixture,
48
- [valueKey]: {
49
- ...validFixture[valueKey],
50
- nested: { foo: b4a.from('bar', 'utf-8') }
51
- }
52
- };
53
- t.absent(validateFn(nestedObjectInsideValue), `Unexpected nested field inside -${valueKey}- should fail due to strict`);
54
- const nestedObjectInsideValue2 = {
55
- ...validFixture,
56
- nested: { foo: b4a.from('bar', 'utf-8') }
57
- };
58
- //console.log('nestedObjectInsideValue2', nestedObjectInsideValue2);
59
- t.absent(validateFn(nestedObjectInsideValue2), 'Unexpected nested field inside general object should fail due to strict');
60
-
61
- const nestedObjectInsideValue3 = {
62
- ...validFixture,
63
- type: {
64
- foo: b4a.from('bar', 'utf-8'),
65
- nested: { foo: b4a.from('bar', 'utf-8') }
66
- }
67
- };
68
- //console.log('nestedObjectInsideValue3', nestedObjectInsideValue3);
69
- t.absent(validateFn(nestedObjectInsideValue3), 'Unexpected nested field inside `type` field should fail due to strict');
70
-
71
- const nestedObjectInsideValue4 = {
72
- ...validFixture,
73
- address: {
74
- foo: b4a.from('bar', 'utf-8'),
75
- nested: { foo: b4a.from('bar', 'utf-8') }
76
- }
77
- };
78
- //console.log('nestedObjectInsideValue4', nestedObjectInsideValue4);
79
- t.absent(validateFn(nestedObjectInsideValue4), 'Unexpected nested field inside `address` field should fail due to strict');
80
-
81
-
82
- });
83
-
84
- t.test('invalid data types', t => {
85
- for (const invalidDataType of notAllowedDataTypes) {
86
- const invalidDataTypeForType = { ...validFixture, type: invalidDataType };
87
- if (typeof invalidDataType === 'number') {
88
- continue;
89
- }
90
- //console.log('invalidDataTypeForType', invalidDataTypeForType);
91
- t.absent(validateFn(invalidDataTypeForType), `Invalid data type for 'type' key ${String(invalidDataType)} (${typeof invalidDataType}) should fail`);
92
- }
93
-
94
- // testing for invalid data types in address
95
- for (const invalidDataType of notAllowedDataTypes) {
96
- const invalidTypForAddressKey = { ...validFixture, address: invalidDataType };
97
- //console.log('invalidTypForAddressKey', invalidTypForAddressKey);
98
- t.absent(validateFn(invalidTypForAddressKey), `Invalid data type for 'address' key ${String(invalidDataType)} (${typeof invalidDataType}) should fail`);
99
- }
100
-
101
- for (const invalidDataType of notAllowedDataTypes) {
102
- if (String(invalidDataType) === '[object Object]') {
103
- continue;
104
- }
105
- const invalidTypeForTypeValue = { ...validFixture, [valueKey]: invalidDataType };
106
- //console.log('invalidTypeForTypeValue', invalidTypeForTypeValue);
107
- t.absent(validateFn(invalidTypeForTypeValue), `Invalid data type for ${valueKey} key ${String(invalidDataType)} (${typeof invalidDataType}) should fail`);
108
- }
109
-
110
- const invalidOperationTypeDiffType = { ...validFixture, type: "string" }
111
- //console.log('invalidOperationTypeDiffType', invalidOperationTypeDiffType);
112
- t.absent(validateFn(invalidOperationTypeDiffType), 'Wrong type for `type` should fail')
113
-
114
- for (const mainField of topFields) {
115
- const missingFieldInvalidInput = { ...validFixture }
116
- delete missingFieldInvalidInput[mainField]
117
- //console.log('missingFieldInvalidInput1111', missingFieldInvalidInput);
118
- t.absent(validateFn(missingFieldInvalidInput), `Missing ${mainField} should fail`);
119
- }
120
- });
121
- }
122
-
123
- export const valueLevelValidationTest = (t, validateFn, validFixture, valueKey, valueFields, notAllowedDataTypes) => {
124
- for (const field of valueFields) {
125
- if (partial_operation_value_type.includes(valueKey) && (field === 'is' || field === 'vn' || field === 'vs')) continue;
126
-
127
- const missing = {
128
- ...validFixture,
129
- [valueKey]: { ...validFixture[valueKey] }
130
- };
131
- delete missing[valueKey][field];
132
- //console.log(missing);
133
- t.absent(validateFn(missing), `Missing ${valueKey}.${field} should fail`);
134
- }
135
-
136
- t.test(`Invalid data types for each field in ${valueKey}`, t => {
137
- for (const field of valueFields) {
138
- for (const invalidType of notAllowedDataTypes) {
139
- const withInvalidDataType = {
140
- ...validFixture,
141
- [valueKey]: {
142
- ...validFixture[valueKey],
143
- [field]: invalidType
144
- }
145
- };
146
- //console.log('withInvalidDataType', withInvalidDataType);
147
- t.absent(validateFn(withInvalidDataType), `Invalid data type for ${valueKey}.${field}: ${String(invalidType)} (${typeof invalidType}) should fail`);
148
- }
149
- }
150
- });
151
-
152
- t.test("Empty strings for each field in value", t => {
153
- for (const field of valueFields) {
154
- const emptyStr = {
155
- ...validFixture,
156
- [valueKey]: {
157
- ...validFixture[valueKey],
158
- [field]: ''
159
- }
160
- };
161
- //console.log('emptyStr', emptyStr);
162
- t.absent(validateFn(emptyStr), `Empty string for ${valueKey}.${field} should fail`);
163
- }
164
- })
165
-
166
- t.test("Nested objects for each field in value", t => {
167
- for (const field of valueFields) {
168
- const nestedObj = {
169
- ...validFixture,
170
- [valueKey]: {
171
- ...validFixture[valueKey],
172
- [field]: { foo: b4a.from('bar', 'utf-8') }
173
- }
174
- };
175
- //console.log('nestedObj', nestedObj);
176
- t.absent(validateFn(nestedObj), `Nested object for ${valueKey}.${field} should fail under strict mode`);
177
- }
178
- });
179
-
180
- t.test("Extra field in value", t => {
181
- const extraInValue = {
182
- ...validFixture,
183
- [valueKey]: {
184
- ...validFixture[valueKey],
185
- extraField: b4a.from('redundant', 'utf-8')
186
- }
187
- }
188
- //console.log('extraInValue', extraInValue);
189
- t.absent(validateFn(extraInValue), 'Extra field should fail due to $$strict')
190
- });
191
-
192
- t.test("Empty object for each field in value", t => {
193
- for (const field of valueFields) {
194
- const emptyObjForField = {
195
- ...validFixture,
196
- [valueKey]: {
197
- ...validFixture[valueKey],
198
- [field]: {}
199
- }
200
- }
201
- //console.log('emptyObjForField', emptyObjForField);
202
- t.absent(validateFn(emptyObjForField), `Empty object for ${valueKey}.${field} should fail`)
203
- }
204
- })
205
-
206
- }
207
-
208
- export function addressBufferLengthTest(
209
- t,
210
- validateFn,
211
- validFixture,
212
- ) {
213
- const emptyBuffer = b4a.alloc(0);
214
- const oneTooShort = b4a.alloc(config.addressLength - 1, 0x01);
215
- const tooShort = b4a.alloc(config.addressLength - 2, 0x01);
216
- const exact = b4a.alloc(config.addressLength, 0x01);
217
- const oneTooLong = b4a.alloc(config.addressLength + 1, 0x01);
218
- const tooLong = b4a.alloc(config.addressLength + 2, 0x01);
219
-
220
- const inputs = {
221
- emptyBufferInput: { ...validFixture, address: emptyBuffer },
222
- shortInput: { ...validFixture, address: tooShort },
223
- oneTooShortInput: { ...validFixture, address: oneTooShort },
224
- exactInput: { ...validFixture, address: exact },
225
- oneTooLongInput: { ...validFixture, address: oneTooLong },
226
- longInput: { ...validFixture, address: tooLong },
227
- };
228
-
229
- //console.log('inputs', inputs);
230
-
231
- t.absent(validateFn(inputs.emptyBufferInput), `'address' empty buffer (length ${emptyBuffer.length}) should fail`);
232
-
233
- t.absent(validateFn(inputs.shortInput), `'address' too short (length ${tooShort.length}) should fail`);
234
-
235
- t.absent(validateFn(inputs.oneTooShortInput), `'address' one too short (length ${oneTooShort.length}) should fail`);
236
-
237
- t.ok(validateFn(inputs.exactInput), `'address' exact length (length ${exact.length}) should pass`);
238
-
239
- t.absent(validateFn(inputs.oneTooLongInput), `'address' one too long (length ${oneTooLong.length}) should fail`);
240
-
241
- t.absent(validateFn(inputs.longInput), `'address' too long (length ${tooLong.length}) should fail`);
242
- }
243
-
244
- export function fieldsBufferLengthTest(
245
- t,
246
- validateFn,
247
- validFixture,
248
- valueKey,
249
- requiredFieldLengthsForValue
250
- ) {
251
- for (const [field, expectedLen] of Object.entries(requiredFieldLengthsForValue)) {
252
- const emptyBuffer = b4a.alloc(0);
253
- const oneTooShort = b4a.alloc(expectedLen - 1, 0x01);
254
- const tooShort = b4a.alloc(expectedLen - 2, 0x01);
255
- const exact = b4a.alloc(expectedLen, 0x01);
256
- const oneTooLong = b4a.alloc(expectedLen + 1, 0x01);
257
- const tooLong = b4a.alloc(expectedLen + 2, 0x01);
258
-
259
- const buildValueLevel = (val) => ({
260
- ...validFixture,
261
- [valueKey]: {
262
- ...validFixture[valueKey],
263
- [field]: val
264
- }
265
- });
266
-
267
- const inputs = {
268
- emptyBufferInput: buildValueLevel(emptyBuffer),
269
- shortInput: buildValueLevel(tooShort),
270
- oneTooShortInput: buildValueLevel(oneTooShort),
271
- exactInput: buildValueLevel(exact),
272
- oneTooLongInput: buildValueLevel(oneTooLong),
273
- longInput: buildValueLevel(tooLong),
274
- };
275
-
276
- //console.log('inputs', inputs);
277
-
278
-
279
- t.absent(validateFn(inputs.emptyBufferInput), `${valueKey}.${field} empty buffer (length ${emptyBuffer.length}) should fail`);
280
-
281
- t.absent(validateFn(inputs.shortInput), `${valueKey}.${field} too short (length ${tooShort.length}) should fail`);
282
-
283
- t.absent(validateFn(inputs.oneTooShortInput), `${valueKey}.${field} one too short (length ${oneTooShort.length}) should fail`);
284
-
285
- t.ok(validateFn(inputs.exactInput), `${valueKey}.${field} exact length (length ${exact.length}) should pass`);
286
-
287
- t.absent(validateFn(inputs.oneTooLongInput), `${valueKey}.${field} one too long (length ${oneTooLong.length}) should fail`);
288
-
289
- t.absent(validateFn(inputs.longInput), `${valueKey}.${field} too long (length ${tooLong.length}) should fail`);
290
- }
291
- }
292
-
293
- export function partialTypeCommonTests(t, validateFn, validFixture, valueKey) {
294
- t.test('missing validator fields combinations for complete payload', async t => {
295
- t.test('missing vn only', t => {
296
- const test = structuredClone(validFixture)
297
- delete test[valueKey].vn
298
- const result = validateFn(test)
299
- //console.log('test', test);
300
- t.is(result, false, 'Should fail when vn is missing')
301
- })
302
-
303
- t.test('missing vs only', t => {
304
- const test = structuredClone(validFixture)
305
- delete test[valueKey].vs
306
- const result = validateFn(test)
307
- //console.log('test', test);
308
- t.is(result, false, 'Should fail when vs is missing')
309
- })
310
-
311
- t.test('missing va only', t => {
312
- const test = structuredClone(validFixture)
313
- delete test[valueKey].va
314
- const result = validateFn(test)
315
- //console.log('test', test);
316
- t.is(result, false, 'Should fail when va is missing')
317
- })
318
-
319
- t.test('missing vn and vs', t => {
320
- const test = structuredClone(validFixture)
321
- delete test[valueKey].vn
322
- delete test[valueKey].vs
323
- const result = validateFn(test)
324
- //console.log('test', test);
325
- t.is(result, false, 'Should fail when vn and vs are missing')
326
- })
327
-
328
- t.test('missing vn and va', t => {
329
- const test = structuredClone(validFixture)
330
- delete test[valueKey].vn
331
- delete test[valueKey].va
332
- const result = validateFn(test)
333
- //console.log('test', test);
334
- t.is(result, false, 'Should fail when vn and va are missing')
335
- })
336
-
337
- t.test('missing vs and va', t => {
338
- const test = structuredClone(validFixture)
339
- delete test[valueKey].vs
340
- delete test[valueKey].va
341
- const result = validateFn(test)
342
- //console.log('test', test);
343
- t.is(result, false, 'Should fail when vs and va are missing')
344
- })
345
-
346
- t.test('missing all validator fields', t => {
347
- const test = structuredClone(validFixture)
348
- delete test[valueKey].vs
349
- delete test[valueKey].va
350
- delete test[valueKey].vn
351
- const result = validateFn(test)
352
- //console.log('test', test);
353
- t.is(result, true, 'Should not fail when all validator fields are missing')
354
- })
355
- })
356
-
357
- t.test('optional fields null cases', async t => {
358
- t.test('vn null only', t => {
359
- const test = structuredClone(validFixture)
360
- test[valueKey].vn = null
361
- const result = validateFn(test)
362
- //console.log('test', test);
363
- t.is(result, false, 'Should fail when vn is null')
364
- })
365
-
366
- t.test('vs null only', t => {
367
- const test = structuredClone(validFixture)
368
- test[valueKey].vs = null
369
- const result = validateFn(test)
370
- //console.log('test', test);
371
- t.is(result, false, 'Should fail when vs is null')
372
- })
373
-
374
- t.test('va null only', t => {
375
- const test = structuredClone(validFixture)
376
- test[valueKey].va = null
377
- const result = validateFn(test)
378
- //console.log('test', test);
379
- t.is(result, false, 'Should fail when va is null')
380
- })
381
-
382
- t.test('vn and vs null', t => {
383
- const test = structuredClone(validFixture)
384
- test[valueKey].vn = null
385
- test[valueKey].vs = null
386
- const result = validateFn(test)
387
- //console.log('test', test);
388
- t.is(result, false, 'Should fail when vn and vs are null')
389
- })
390
-
391
- t.test('vn and va null', t => {
392
- const test = structuredClone(validFixture)
393
- test[valueKey].vn = null
394
- test[valueKey].va = null
395
- const result = validateFn(test)
396
- //console.log('test', test);
397
- t.is(result, false, 'Should fail when vn and va are null')
398
- })
399
-
400
- t.test('vs and va null', t => {
401
- const test = structuredClone(validFixture)
402
- test[valueKey].vs = null
403
- test[valueKey].va = null
404
- const result = validateFn(test)
405
- //console.log('test', test);
406
- t.is(result, false, 'Should fail when vs and va are null')
407
- })
408
-
409
- t.test('all validator fields null', t => {
410
- const test = structuredClone(validFixture)
411
- test[valueKey].vn = null
412
- test[valueKey].vs = null
413
- test[valueKey].va = null
414
- const result = validateFn(test)
415
- //console.log('test', test);
416
- t.is(result, false, 'Should fail when all validator fields are null')
417
- })
418
- })
419
- }
@@ -1,95 +0,0 @@
1
- import test from 'brittle'
2
- import Check from '../../../../src/utils/check.js'
3
- import { CAO, not_allowed_data_types } from '../../../fixtures/check.fixtures.js'
4
- import { topLevelValidationTests, valueLevelValidationTest, addressBufferLengthTest, fieldsBufferLengthTest } from './common.test.js';
5
- import { config } from '../../../helpers/config.js';
6
-
7
- const check = new Check(config)
8
-
9
- test('validateCoreAdminOperation- happy paths for all operation types', t => {
10
- const validInputs = [
11
- CAO.validAddAdminOperation,
12
- CAO.validDisableInitializationOperation,
13
- ]
14
-
15
- for (const validInput of validInputs) {
16
- t.ok(check.validateCoreAdminOperation(validInput), `Valid payload for ${validInput.type} should pass`)
17
- }
18
- })
19
-
20
- test('validateCoreAdminOperation - data type validation TOP LEVEL', t => {
21
- // ADD_ADMIN
22
- topLevelValidationTests(
23
- t,
24
- check.validateCoreAdminOperation.bind(check),
25
- CAO.validAddAdminOperation,
26
- 'cao',
27
- not_allowed_data_types,
28
- CAO.topFieldsCoreAdmin
29
- );
30
- // DISABLE_INITIALIZATION
31
- topLevelValidationTests(
32
- t,
33
- check.validateCoreAdminOperation.bind(check),
34
- CAO.validDisableInitializationOperation,
35
- 'cao',
36
- not_allowed_data_types,
37
- CAO.topFieldsCoreAdmin
38
- );
39
- })
40
-
41
- test('validateCoreAdminOperation - value level validation (cao)', t => {
42
- // ADD_ADMIN
43
- valueLevelValidationTest(
44
- t,
45
- check.validateCoreAdminOperation.bind(check),
46
- CAO.validAddAdminOperation,
47
- 'cao',
48
- CAO.coreAdminOperationValuesFields,
49
- not_allowed_data_types
50
- );
51
- // DISABLE_INITIALIZATION
52
- valueLevelValidationTest(
53
- t,
54
- check.validateCoreAdminOperation.bind(check),
55
- CAO.validDisableInitializationOperation,
56
- 'cao',
57
- CAO.coreAdminOperationValuesFields,
58
- not_allowed_data_types
59
- );
60
-
61
- })
62
-
63
- test('validateCoreAdminOperation - address buffer length validation - TOP LEVEL', t => {
64
- // ADD_ADMIN
65
- addressBufferLengthTest(
66
- t,
67
- check.validateCoreAdminOperation.bind(check),
68
- CAO.validAddAdminOperation,
69
- );
70
- // DISABLE_INITIALIZATION
71
- addressBufferLengthTest(
72
- t,
73
- check.validateCoreAdminOperation.bind(check),
74
- CAO.validDisableInitializationOperation,
75
- );
76
- });
77
-
78
- test('validateCoreAdminOperation - fields buffer length validation - VALUE LEVEL (eko)', t => {
79
- // ADD_ADMIN
80
- fieldsBufferLengthTest(
81
- t,
82
- check.validateCoreAdminOperation.bind(check),
83
- CAO.validAddAdminOperation,
84
- 'cao',
85
- CAO.requiredLengthOfFieldsForCoreAdmin
86
- )
87
- // DISABLE_INITIALIZATION
88
- fieldsBufferLengthTest(
89
- t,
90
- check.validateCoreAdminOperation.bind(check),
91
- CAO.validDisableInitializationOperation,
92
- 'cao',
93
- CAO.requiredLengthOfFieldsForCoreAdmin
94
- )
95
- });