dexbot 1.4.11 → 1.4.13
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.
- package/README.md +19 -15
- package/claw/data/positions.json +144646 -0
- package/claw/docs/AI_BOT_LIBRARY_API.md +632 -0
- package/claw/docs/DEXBOT2_TUNING_CHEAT_SHEET.md +243 -0
- package/claw/docs/POSITION_HEALTH.md +117 -0
- package/claw/docs/RUNTIME_COMPARISON.md +256 -0
- package/claw/ecosystem.config.cjs +29 -0
- package/claw/examples/claw_consumer_example.ts +54 -0
- package/claw/examples/claw_infra_example.ts +53 -0
- package/claw/examples/claw_profiles_example.ts +44 -0
- package/claw/examples/connection_test.ts +40 -0
- package/claw/examples/honest_ecosystem_example.ts +35 -0
- package/claw/examples/memu_integration_example.ts +92 -0
- package/claw/examples/position_manager_cli.ts +129 -0
- package/claw/examples/short_mpa_bts_strategy.ts +127 -0
- package/claw/examples/tsconfig.json +28 -0
- package/claw/index.ts +64 -0
- package/claw/modules/bitshares_client.ts +97 -0
- package/claw/modules/chain_actions.ts +352 -0
- package/claw/modules/chain_broadcast.ts +353 -0
- package/claw/modules/chain_queries.ts +157 -0
- package/claw/modules/claw_bridge.ts +423 -0
- package/claw/modules/claw_catalog.ts +804 -0
- package/claw/modules/claw_infra.ts +326 -0
- package/claw/modules/claw_launcher.ts +452 -0
- package/claw/modules/claw_manifest.ts +55 -0
- package/claw/modules/claw_runtime_matrix.ts +104 -0
- package/claw/modules/claw_skill_md.ts +313 -0
- package/claw/modules/credit_runtime_adapter.ts +144 -0
- package/claw/modules/decision_loop.ts +184 -0
- package/claw/modules/dexbot_bridge.ts +82 -0
- package/claw/modules/dexbot_credential_client.ts +55 -0
- package/claw/modules/dexbot_profiles.ts +1340 -0
- package/claw/modules/feed_price_source.ts +134 -0
- package/claw/modules/honest_ecosystem.ts +337 -0
- package/claw/modules/kibana_price_source.ts +133 -0
- package/claw/modules/launcher_mode_detector.ts +192 -0
- package/claw/modules/launcher_paths.ts +69 -0
- package/claw/modules/liquidity_pools.ts +51 -0
- package/claw/modules/mcp_utils.ts +108 -0
- package/claw/modules/memu_bridge.ts +505 -0
- package/claw/modules/mpa_utils.ts +31 -0
- package/claw/modules/position_discovery.ts +163 -0
- package/claw/modules/position_health.ts +360 -0
- package/claw/modules/position_manager.ts +730 -0
- package/claw/modules/position_manager_watch.ts +252 -0
- package/claw/modules/short_mpa_strategy.ts +185 -0
- package/claw/modules/skill_utils.ts +74 -0
- package/claw/modules/types.ts +225 -0
- package/claw/modules/utils.ts +9 -0
- package/claw/node_modules/.package-lock.json +935 -0
- package/claw/node_modules/@babel/runtime/LICENSE +22 -0
- package/claw/node_modules/@babel/runtime/README.md +19 -0
- package/claw/node_modules/@babel/runtime/helpers/AwaitValue.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/OverloadYield.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/applyDecs.js +236 -0
- package/claw/node_modules/@babel/runtime/helpers/applyDecs2203.js +184 -0
- package/claw/node_modules/@babel/runtime/helpers/applyDecs2203R.js +191 -0
- package/claw/node_modules/@babel/runtime/helpers/applyDecs2301.js +222 -0
- package/claw/node_modules/@babel/runtime/helpers/applyDecs2305.js +133 -0
- package/claw/node_modules/@babel/runtime/helpers/applyDecs2311.js +124 -0
- package/claw/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/arrayWithHoles.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/assertClassBrand.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/assertThisInitialized.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js +24 -0
- package/claw/node_modules/@babel/runtime/helpers/asyncIterator.js +45 -0
- package/claw/node_modules/@babel/runtime/helpers/asyncToGenerator.js +26 -0
- package/claw/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/callSuper.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/checkInRHS.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/classCallCheck.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classNameTDZError.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldGet2.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldSet2.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateGetter.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/classPrivateSetter.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/construct.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/createClass.js +13 -0
- package/claw/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js +50 -0
- package/claw/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js +19 -0
- package/claw/node_modules/@babel/runtime/helpers/createSuper.js +16 -0
- package/claw/node_modules/@babel/runtime/helpers/decorate.js +250 -0
- package/claw/node_modules/@babel/runtime/helpers/defaults.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/defineAccessor.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js +12 -0
- package/claw/node_modules/@babel/runtime/helpers/defineProperty.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/dispose.js +28 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/AwaitValue.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/OverloadYield.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs.js +236 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js +184 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +191 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js +222 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js +133 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2311.js +124 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/assertClassBrand.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js +24 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/asyncIterator.js +45 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +26 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/callSuper.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/checkInRHS.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateSetter.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/construct.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/createClass.js +13 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js +50 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js +19 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/createSuper.js +16 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/decorate.js +250 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/defaults.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/defineAccessor.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js +12 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/defineProperty.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/dispose.js +28 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/extends.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/get.js +11 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/identity.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/importDeferProxy.js +27 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/inherits.js +14 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/instanceof.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js +22 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +28 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/jsx.js +22 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/nullishReceiverError.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/objectSpread.js +14 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +23 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +13 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/package.json +3 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/readOnlyError.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/regenerator.js +89 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorAsync.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorAsyncGen.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorAsyncIterator.js +33 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorDefine.js +22 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorKeys.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js +77 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorValues.js +19 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/set.js +22 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/setFunctionName.js +12 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/superPropBase.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/superPropGet.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/superPropSet.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/tdz.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/temporalRef.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js +2 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/toArray.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +12 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/toSetter.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/tsRewriteRelativeImportExtensions.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/typeof.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/using.js +12 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/usingCtx.js +59 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +56 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js +27 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js +52 -0
- package/claw/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/extends.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/get.js +11 -0
- package/claw/node_modules/@babel/runtime/helpers/getPrototypeOf.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/identity.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/importDeferProxy.js +27 -0
- package/claw/node_modules/@babel/runtime/helpers/inherits.js +14 -0
- package/claw/node_modules/@babel/runtime/helpers/inheritsLoose.js +5 -0
- package/claw/node_modules/@babel/runtime/helpers/initializerDefineProperty.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/initializerWarningHelper.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/instanceof.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/interopRequireDefault.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/interopRequireWildcard.js +22 -0
- package/claw/node_modules/@babel/runtime/helpers/isNativeFunction.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/iterableToArray.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +28 -0
- package/claw/node_modules/@babel/runtime/helpers/jsx.js +22 -0
- package/claw/node_modules/@babel/runtime/helpers/maybeArrayLike.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/newArrowCheck.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/nonIterableRest.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/nonIterableSpread.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/nullishReceiverError.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/objectSpread.js +14 -0
- package/claw/node_modules/@babel/runtime/helpers/objectSpread2.js +23 -0
- package/claw/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +13 -0
- package/claw/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/readOnlyError.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/regenerator.js +89 -0
- package/claw/node_modules/@babel/runtime/helpers/regeneratorAsync.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js +33 -0
- package/claw/node_modules/@babel/runtime/helpers/regeneratorDefine.js +22 -0
- package/claw/node_modules/@babel/runtime/helpers/regeneratorKeys.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/regeneratorRuntime.js +77 -0
- package/claw/node_modules/@babel/runtime/helpers/regeneratorValues.js +19 -0
- package/claw/node_modules/@babel/runtime/helpers/set.js +22 -0
- package/claw/node_modules/@babel/runtime/helpers/setFunctionName.js +12 -0
- package/claw/node_modules/@babel/runtime/helpers/setPrototypeOf.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/slicedToArray.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/superPropBase.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/superPropGet.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/superPropSet.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/tdz.js +4 -0
- package/claw/node_modules/@babel/runtime/helpers/temporalRef.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/temporalUndefined.js +2 -0
- package/claw/node_modules/@babel/runtime/helpers/toArray.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/toConsumableArray.js +8 -0
- package/claw/node_modules/@babel/runtime/helpers/toPrimitive.js +12 -0
- package/claw/node_modules/@babel/runtime/helpers/toPropertyKey.js +7 -0
- package/claw/node_modules/@babel/runtime/helpers/toSetter.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/tsRewriteRelativeImportExtensions.js +6 -0
- package/claw/node_modules/@babel/runtime/helpers/typeof.js +10 -0
- package/claw/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +9 -0
- package/claw/node_modules/@babel/runtime/helpers/using.js +12 -0
- package/claw/node_modules/@babel/runtime/helpers/usingCtx.js +59 -0
- package/claw/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +56 -0
- package/claw/node_modules/@babel/runtime/helpers/wrapNativeSuper.js +27 -0
- package/claw/node_modules/@babel/runtime/helpers/wrapRegExp.js +52 -0
- package/claw/node_modules/@babel/runtime/helpers/writeOnlyError.js +4 -0
- package/claw/node_modules/@babel/runtime/package.json +1107 -0
- package/claw/node_modules/@babel/runtime/regenerator/index.js +15 -0
- package/claw/node_modules/assert/.github/FUNDING.yml +12 -0
- package/claw/node_modules/assert/.github/SECURITY.md +10 -0
- package/claw/node_modules/assert/.travis.yml +30 -0
- package/claw/node_modules/assert/.zuul.yml +13 -0
- package/claw/node_modules/assert/CHANGELOG.md +11 -0
- package/claw/node_modules/assert/LICENSE +18 -0
- package/claw/node_modules/assert/README.md +105 -0
- package/claw/node_modules/assert/assert.js +506 -0
- package/claw/node_modules/assert/package.json +32 -0
- package/claw/node_modules/assert/test.js +360 -0
- package/claw/node_modules/async-limiter/.eslintignore +2 -0
- package/claw/node_modules/async-limiter/.nycrc +10 -0
- package/claw/node_modules/async-limiter/.travis.yml +9 -0
- package/claw/node_modules/async-limiter/LICENSE +8 -0
- package/claw/node_modules/async-limiter/index.js +67 -0
- package/claw/node_modules/async-limiter/package.json +35 -0
- package/claw/node_modules/async-limiter/readme.md +132 -0
- package/claw/node_modules/available-typed-arrays/.eslintrc +5 -0
- package/claw/node_modules/available-typed-arrays/.github/FUNDING.yml +12 -0
- package/claw/node_modules/available-typed-arrays/.nycrc +9 -0
- package/claw/node_modules/available-typed-arrays/CHANGELOG.md +100 -0
- package/claw/node_modules/available-typed-arrays/LICENSE +21 -0
- package/claw/node_modules/available-typed-arrays/README.md +55 -0
- package/claw/node_modules/available-typed-arrays/index.d.ts +8 -0
- package/claw/node_modules/available-typed-arrays/index.js +17 -0
- package/claw/node_modules/available-typed-arrays/package.json +93 -0
- package/claw/node_modules/available-typed-arrays/test/index.js +18 -0
- package/claw/node_modules/available-typed-arrays/tsconfig.json +49 -0
- package/claw/node_modules/base-x/LICENSE.md +22 -0
- package/claw/node_modules/base-x/README.md +67 -0
- package/claw/node_modules/base-x/package.json +49 -0
- package/claw/node_modules/base-x/src/index.d.ts +10 -0
- package/claw/node_modules/base-x/src/index.js +123 -0
- package/claw/node_modules/bigi/CHANGELOG.md +85 -0
- package/claw/node_modules/bigi/LICENSE.md +30 -0
- package/claw/node_modules/bigi/README.md +14 -0
- package/claw/node_modules/bigi/lib/bigi.js +1509 -0
- package/claw/node_modules/bigi/lib/convert.js +91 -0
- package/claw/node_modules/bigi/lib/index.js +6 -0
- package/claw/node_modules/bigi/package.json +55 -0
- package/claw/node_modules/bignumber.js/CHANGELOG.md +222 -0
- package/claw/node_modules/bignumber.js/LICENCE +23 -0
- package/claw/node_modules/bignumber.js/README.md +266 -0
- package/claw/node_modules/bignumber.js/bignumber.d.ts +1797 -0
- package/claw/node_modules/bignumber.js/bignumber.js +2814 -0
- package/claw/node_modules/bignumber.js/bignumber.js.map +1 -0
- package/claw/node_modules/bignumber.js/bignumber.min.js +3 -0
- package/claw/node_modules/bignumber.js/bignumber.mjs +2793 -0
- package/claw/node_modules/bignumber.js/bower.json +36 -0
- package/claw/node_modules/bignumber.js/doc/API.html +2118 -0
- package/claw/node_modules/bignumber.js/package.json +39 -0
- package/claw/node_modules/bs58/CHANGELOG.md +61 -0
- package/claw/node_modules/bs58/README.md +71 -0
- package/claw/node_modules/bs58/index.js +4 -0
- package/claw/node_modules/bs58/package.json +37 -0
- package/claw/node_modules/btsdex/.babelrc +17 -0
- package/claw/node_modules/btsdex/.github/workflows/check-style.yml +16 -0
- package/claw/node_modules/btsdex/LICENSE +21 -0
- package/claw/node_modules/btsdex/README.md +467 -0
- package/claw/node_modules/btsdex/cli.js +165 -0
- package/claw/node_modules/btsdex/lib/account.js +60 -0
- package/claw/node_modules/btsdex/lib/asset.js +78 -0
- package/claw/node_modules/btsdex/lib/bitshares.js +363 -0
- package/claw/node_modules/btsdex/lib/event.js +137 -0
- package/claw/node_modules/btsdex/lib/fees.js +34 -0
- package/claw/node_modules/btsdex/lib/index.js +3 -0
- package/claw/node_modules/btsdex/lib/transaction/TransactionBuilder.js +797 -0
- package/claw/node_modules/btsdex/lib/transaction/index.js +64 -0
- package/claw/node_modules/btsdex/package.json +54 -0
- package/claw/node_modules/btsdex/yarn-error.log +3483 -0
- package/claw/node_modules/btsdex-api/.babelrc +14 -0
- package/claw/node_modules/btsdex-api/README.md +3 -0
- package/claw/node_modules/btsdex-api/lib/apis.js +59 -0
- package/claw/node_modules/btsdex-api/lib/config.js +39 -0
- package/claw/node_modules/btsdex-api/lib/connection.js +188 -0
- package/claw/node_modules/btsdex-api/lib/index.js +86 -0
- package/claw/node_modules/btsdex-api/lib/logger.js +45 -0
- package/claw/node_modules/btsdex-api/lib/servers.js +30 -0
- package/claw/node_modules/btsdex-api/package.json +29 -0
- package/claw/node_modules/btsdex-ecc/.babelrc +13 -0
- package/claw/node_modules/btsdex-ecc/lib/BrainKey.js +15 -0
- package/claw/node_modules/btsdex-ecc/lib/KeyUtils.js +205 -0
- package/claw/node_modules/btsdex-ecc/lib/PrivateKey.js +198 -0
- package/claw/node_modules/btsdex-ecc/lib/PublicKey.js +197 -0
- package/claw/node_modules/btsdex-ecc/lib/address.js +84 -0
- package/claw/node_modules/btsdex-ecc/lib/addressPrefix.js +15 -0
- package/claw/node_modules/btsdex-ecc/lib/aes.js +294 -0
- package/claw/node_modules/btsdex-ecc/lib/ecdsa.js +194 -0
- package/claw/node_modules/btsdex-ecc/lib/ecsignature.js +131 -0
- package/claw/node_modules/btsdex-ecc/lib/enforce_types.js +54 -0
- package/claw/node_modules/btsdex-ecc/lib/hash.js +60 -0
- package/claw/node_modules/btsdex-ecc/lib/index.js +84 -0
- package/claw/node_modules/btsdex-ecc/lib/signature.js +185 -0
- package/claw/node_modules/btsdex-ecc/package.json +37 -0
- package/claw/node_modules/btsdex-serializer/.babelrc +13 -0
- package/claw/node_modules/btsdex-serializer/lib/ChainTypes.js +154 -0
- package/claw/node_modules/btsdex-serializer/lib/FastParser.js +75 -0
- package/claw/node_modules/btsdex-serializer/lib/ObjectId.js +65 -0
- package/claw/node_modules/btsdex-serializer/lib/SerializerValidation.js +377 -0
- package/claw/node_modules/btsdex-serializer/lib/convert.js +54 -0
- package/claw/node_modules/btsdex-serializer/lib/error_with_cause.js +43 -0
- package/claw/node_modules/btsdex-serializer/lib/index.js +72 -0
- package/claw/node_modules/btsdex-serializer/lib/operations.js +1359 -0
- package/claw/node_modules/btsdex-serializer/lib/precision.js +108 -0
- package/claw/node_modules/btsdex-serializer/lib/serializer.js +205 -0
- package/claw/node_modules/btsdex-serializer/lib/template.js +23 -0
- package/claw/node_modules/btsdex-serializer/lib/types.js +1209 -0
- package/claw/node_modules/btsdex-serializer/package-lock.json +238 -0
- package/claw/node_modules/btsdex-serializer/package.json +32 -0
- package/claw/node_modules/bytebuffer/.travis.yml +5 -0
- package/claw/node_modules/bytebuffer/LICENSE +202 -0
- package/claw/node_modules/bytebuffer/README.md +64 -0
- package/claw/node_modules/bytebuffer/bower.json +12 -0
- package/claw/node_modules/bytebuffer/bytebuffer.png +0 -0
- package/claw/node_modules/bytebuffer/dist/README.md +47 -0
- package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.js +3461 -0
- package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.min.js +88 -0
- package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.min.js.gz +0 -0
- package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.min.map +8 -0
- package/claw/node_modules/bytebuffer/dist/bytebuffer-node.js +3454 -0
- package/claw/node_modules/bytebuffer/dist/bytebuffer.js +3746 -0
- package/claw/node_modules/bytebuffer/dist/bytebuffer.min.js +93 -0
- package/claw/node_modules/bytebuffer/dist/bytebuffer.min.js.gz +0 -0
- package/claw/node_modules/bytebuffer/dist/bytebuffer.min.map +8 -0
- package/claw/node_modules/bytebuffer/donate.png +0 -0
- package/claw/node_modules/bytebuffer/externs/bytebuffer.js +862 -0
- package/claw/node_modules/bytebuffer/externs/minimal-env.js +52 -0
- package/claw/node_modules/bytebuffer/index.js +1 -0
- package/claw/node_modules/bytebuffer/jsdoc.json +13 -0
- package/claw/node_modules/bytebuffer/package.json +51 -0
- package/claw/node_modules/bytebuffer/scripts/build.js +113 -0
- package/claw/node_modules/bytebuffer/src/bower.json +12 -0
- package/claw/node_modules/bytebuffer/src/bytebuffer.js +220 -0
- package/claw/node_modules/bytebuffer/src/encodings/base64.js +88 -0
- package/claw/node_modules/bytebuffer/src/encodings/binary.js +74 -0
- package/claw/node_modules/bytebuffer/src/encodings/debug.js +211 -0
- package/claw/node_modules/bytebuffer/src/encodings/hex.js +75 -0
- package/claw/node_modules/bytebuffer/src/encodings/impl/base64.js +3 -0
- package/claw/node_modules/bytebuffer/src/encodings/impl/binary.js +65 -0
- package/claw/node_modules/bytebuffer/src/encodings/impl/debug.js +3 -0
- package/claw/node_modules/bytebuffer/src/encodings/impl/hex.js +101 -0
- package/claw/node_modules/bytebuffer/src/encodings/impl/utf8.js +126 -0
- package/claw/node_modules/bytebuffer/src/encodings/utf8.js +71 -0
- package/claw/node_modules/bytebuffer/src/helpers.js +143 -0
- package/claw/node_modules/bytebuffer/src/macros.js +222 -0
- package/claw/node_modules/bytebuffer/src/methods/append.js +58 -0
- package/claw/node_modules/bytebuffer/src/methods/assert.js +12 -0
- package/claw/node_modules/bytebuffer/src/methods/capacity.js +8 -0
- package/claw/node_modules/bytebuffer/src/methods/clear.js +13 -0
- package/claw/node_modules/bytebuffer/src/methods/clone.js +34 -0
- package/claw/node_modules/bytebuffer/src/methods/compact.js +49 -0
- package/claw/node_modules/bytebuffer/src/methods/copy.js +73 -0
- package/claw/node_modules/bytebuffer/src/methods/ensureCapacity.js +15 -0
- package/claw/node_modules/bytebuffer/src/methods/fill.js +35 -0
- package/claw/node_modules/bytebuffer/src/methods/flip.js +11 -0
- package/claw/node_modules/bytebuffer/src/methods/mark.js +17 -0
- package/claw/node_modules/bytebuffer/src/methods/order.js +36 -0
- package/claw/node_modules/bytebuffer/src/methods/prepend.js +87 -0
- package/claw/node_modules/bytebuffer/src/methods/printDebug.js +16 -0
- package/claw/node_modules/bytebuffer/src/methods/remaining.js +9 -0
- package/claw/node_modules/bytebuffer/src/methods/reset.js +17 -0
- package/claw/node_modules/bytebuffer/src/methods/resize.js +39 -0
- package/claw/node_modules/bytebuffer/src/methods/reverse.js +25 -0
- package/claw/node_modules/bytebuffer/src/methods/skip.js +19 -0
- package/claw/node_modules/bytebuffer/src/methods/slice.js +18 -0
- package/claw/node_modules/bytebuffer/src/methods/static/accessor.js +13 -0
- package/claw/node_modules/bytebuffer/src/methods/static/allocate.js +14 -0
- package/claw/node_modules/bytebuffer/src/methods/static/concat.js +55 -0
- package/claw/node_modules/bytebuffer/src/methods/static/isByteBuffer.js +9 -0
- package/claw/node_modules/bytebuffer/src/methods/static/type.js +11 -0
- package/claw/node_modules/bytebuffer/src/methods/static/wrap.js +125 -0
- package/claw/node_modules/bytebuffer/src/methods/toBuffer.js +77 -0
- package/claw/node_modules/bytebuffer/src/methods/toString.js +43 -0
- package/claw/node_modules/bytebuffer/src/types/bytes/bitset.js +89 -0
- package/claw/node_modules/bytebuffer/src/types/bytes/bytes.js +34 -0
- package/claw/node_modules/bytebuffer/src/types/floats/float32.js +81 -0
- package/claw/node_modules/bytebuffer/src/types/floats/float64.js +77 -0
- package/claw/node_modules/bytebuffer/src/types/floats/ieee754.js +130 -0
- package/claw/node_modules/bytebuffer/src/types/ints/int16.js +167 -0
- package/claw/node_modules/bytebuffer/src/types/ints/int32.js +125 -0
- package/claw/node_modules/bytebuffer/src/types/ints/int64.js +194 -0
- package/claw/node_modules/bytebuffer/src/types/ints/int8.js +137 -0
- package/claw/node_modules/bytebuffer/src/types/strings/cstring.js +110 -0
- package/claw/node_modules/bytebuffer/src/types/strings/istring.js +81 -0
- package/claw/node_modules/bytebuffer/src/types/strings/utf8string.js +214 -0
- package/claw/node_modules/bytebuffer/src/types/strings/vstring.js +78 -0
- package/claw/node_modules/bytebuffer/src/types/varints/varint32.js +164 -0
- package/claw/node_modules/bytebuffer/src/types/varints/varint64.js +208 -0
- package/claw/node_modules/bytebuffer/src/wrap-node.js +50 -0
- package/claw/node_modules/bytebuffer/src/wrap.js +43 -0
- package/claw/node_modules/bytebuffer/tests/bench.js +99 -0
- package/claw/node_modules/bytebuffer/tests/suite.js +1005 -0
- package/claw/node_modules/call-bind/.eslintignore +1 -0
- package/claw/node_modules/call-bind/.eslintrc +16 -0
- package/claw/node_modules/call-bind/.github/FUNDING.yml +12 -0
- package/claw/node_modules/call-bind/.nycrc +9 -0
- package/claw/node_modules/call-bind/CHANGELOG.md +106 -0
- package/claw/node_modules/call-bind/LICENSE +21 -0
- package/claw/node_modules/call-bind/README.md +64 -0
- package/claw/node_modules/call-bind/callBound.js +15 -0
- package/claw/node_modules/call-bind/index.js +24 -0
- package/claw/node_modules/call-bind/package.json +93 -0
- package/claw/node_modules/call-bind/test/callBound.js +54 -0
- package/claw/node_modules/call-bind/test/index.js +74 -0
- package/claw/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
- package/claw/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
- package/claw/node_modules/call-bind-apply-helpers/.nycrc +9 -0
- package/claw/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
- package/claw/node_modules/call-bind-apply-helpers/LICENSE +21 -0
- package/claw/node_modules/call-bind-apply-helpers/README.md +62 -0
- package/claw/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
- package/claw/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/claw/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
- package/claw/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
- package/claw/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
- package/claw/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/claw/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
- package/claw/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/claw/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
- package/claw/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/claw/node_modules/call-bind-apply-helpers/package.json +85 -0
- package/claw/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
- package/claw/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/claw/node_modules/call-bind-apply-helpers/test/index.js +63 -0
- package/claw/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
- package/claw/node_modules/call-bound/.eslintrc +13 -0
- package/claw/node_modules/call-bound/.github/FUNDING.yml +12 -0
- package/claw/node_modules/call-bound/.nycrc +9 -0
- package/claw/node_modules/call-bound/CHANGELOG.md +42 -0
- package/claw/node_modules/call-bound/LICENSE +21 -0
- package/claw/node_modules/call-bound/README.md +53 -0
- package/claw/node_modules/call-bound/index.d.ts +94 -0
- package/claw/node_modules/call-bound/index.js +19 -0
- package/claw/node_modules/call-bound/package.json +99 -0
- package/claw/node_modules/call-bound/test/index.js +61 -0
- package/claw/node_modules/call-bound/tsconfig.json +10 -0
- package/claw/node_modules/cipher-base/.eslintrc +26 -0
- package/claw/node_modules/cipher-base/.github/FUNDING.yml +12 -0
- package/claw/node_modules/cipher-base/CHANGELOG.md +73 -0
- package/claw/node_modules/cipher-base/LICENSE +21 -0
- package/claw/node_modules/cipher-base/README.md +17 -0
- package/claw/node_modules/cipher-base/index.js +103 -0
- package/claw/node_modules/cipher-base/package.json +63 -0
- package/claw/node_modules/cipher-base/test/index.js +221 -0
- package/claw/node_modules/core-util-is/LICENSE +19 -0
- package/claw/node_modules/core-util-is/README.md +3 -0
- package/claw/node_modules/core-util-is/lib/util.js +107 -0
- package/claw/node_modules/core-util-is/package.json +38 -0
- package/claw/node_modules/create-hash/.travis.yml +17 -0
- package/claw/node_modules/create-hash/LICENSE +21 -0
- package/claw/node_modules/create-hash/README.md +19 -0
- package/claw/node_modules/create-hash/browser.js +30 -0
- package/claw/node_modules/create-hash/index.js +1 -0
- package/claw/node_modules/create-hash/md5.js +5 -0
- package/claw/node_modules/create-hash/package.json +39 -0
- package/claw/node_modules/create-hash/test.js +41 -0
- package/claw/node_modules/create-hmac/LICENSE +21 -0
- package/claw/node_modules/create-hmac/README.md +20 -0
- package/claw/node_modules/create-hmac/browser.js +62 -0
- package/claw/node_modules/create-hmac/index.js +1 -0
- package/claw/node_modules/create-hmac/legacy.js +46 -0
- package/claw/node_modules/create-hmac/package.json +45 -0
- package/claw/node_modules/crypto-js/CONTRIBUTING.md +28 -0
- package/claw/node_modules/crypto-js/LICENSE +24 -0
- package/claw/node_modules/crypto-js/README.md +241 -0
- package/claw/node_modules/crypto-js/aes.js +232 -0
- package/claw/node_modules/crypto-js/bower.json +35 -0
- package/claw/node_modules/crypto-js/cipher-core.js +880 -0
- package/claw/node_modules/crypto-js/core.js +760 -0
- package/claw/node_modules/crypto-js/crypto-js.js +5988 -0
- package/claw/node_modules/crypto-js/docs/QuickStartGuide.wiki +470 -0
- package/claw/node_modules/crypto-js/enc-base64.js +135 -0
- package/claw/node_modules/crypto-js/enc-hex.js +18 -0
- package/claw/node_modules/crypto-js/enc-latin1.js +18 -0
- package/claw/node_modules/crypto-js/enc-utf16.js +149 -0
- package/claw/node_modules/crypto-js/enc-utf8.js +18 -0
- package/claw/node_modules/crypto-js/evpkdf.js +132 -0
- package/claw/node_modules/crypto-js/format-hex.js +66 -0
- package/claw/node_modules/crypto-js/format-openssl.js +18 -0
- package/claw/node_modules/crypto-js/hmac-md5.js +18 -0
- package/claw/node_modules/crypto-js/hmac-ripemd160.js +18 -0
- package/claw/node_modules/crypto-js/hmac-sha1.js +18 -0
- package/claw/node_modules/crypto-js/hmac-sha224.js +18 -0
- package/claw/node_modules/crypto-js/hmac-sha256.js +18 -0
- package/claw/node_modules/crypto-js/hmac-sha3.js +18 -0
- package/claw/node_modules/crypto-js/hmac-sha384.js +18 -0
- package/claw/node_modules/crypto-js/hmac-sha512.js +18 -0
- package/claw/node_modules/crypto-js/hmac.js +143 -0
- package/claw/node_modules/crypto-js/index.js +18 -0
- package/claw/node_modules/crypto-js/lib-typedarrays.js +76 -0
- package/claw/node_modules/crypto-js/md5.js +268 -0
- package/claw/node_modules/crypto-js/mode-cfb.js +78 -0
- package/claw/node_modules/crypto-js/mode-ctr-gladman.js +116 -0
- package/claw/node_modules/crypto-js/mode-ctr.js +58 -0
- package/claw/node_modules/crypto-js/mode-ecb.js +40 -0
- package/claw/node_modules/crypto-js/mode-ofb.js +54 -0
- package/claw/node_modules/crypto-js/package.json +38 -0
- package/claw/node_modules/crypto-js/pad-ansix923.js +49 -0
- package/claw/node_modules/crypto-js/pad-iso10126.js +44 -0
- package/claw/node_modules/crypto-js/pad-iso97971.js +40 -0
- package/claw/node_modules/crypto-js/pad-nopadding.js +30 -0
- package/claw/node_modules/crypto-js/pad-pkcs7.js +18 -0
- package/claw/node_modules/crypto-js/pad-zeropadding.js +45 -0
- package/claw/node_modules/crypto-js/pbkdf2.js +145 -0
- package/claw/node_modules/crypto-js/rabbit-legacy.js +190 -0
- package/claw/node_modules/crypto-js/rabbit.js +192 -0
- package/claw/node_modules/crypto-js/rc4.js +139 -0
- package/claw/node_modules/crypto-js/ripemd160.js +267 -0
- package/claw/node_modules/crypto-js/sha1.js +150 -0
- package/claw/node_modules/crypto-js/sha224.js +80 -0
- package/claw/node_modules/crypto-js/sha256.js +199 -0
- package/claw/node_modules/crypto-js/sha3.js +323 -0
- package/claw/node_modules/crypto-js/sha384.js +83 -0
- package/claw/node_modules/crypto-js/sha512.js +323 -0
- package/claw/node_modules/crypto-js/tripledes.js +770 -0
- package/claw/node_modules/crypto-js/x64-core.js +304 -0
- package/claw/node_modules/deep-equal/.editorconfig +20 -0
- package/claw/node_modules/deep-equal/.eslintrc +28 -0
- package/claw/node_modules/deep-equal/.nycrc +17 -0
- package/claw/node_modules/deep-equal/.travis.yml +12 -0
- package/claw/node_modules/deep-equal/CHANGELOG.md +320 -0
- package/claw/node_modules/deep-equal/LICENSE +21 -0
- package/claw/node_modules/deep-equal/assert.js +3 -0
- package/claw/node_modules/deep-equal/example/cmp.js +11 -0
- package/claw/node_modules/deep-equal/index.js +112 -0
- package/claw/node_modules/deep-equal/lib/is_arguments.js +1 -0
- package/claw/node_modules/deep-equal/lib/keys.js +1 -0
- package/claw/node_modules/deep-equal/package.json +109 -0
- package/claw/node_modules/deep-equal/readme.markdown +73 -0
- package/claw/node_modules/deep-equal/test/_tape.js +42 -0
- package/claw/node_modules/deep-equal/test/cmp.js +1343 -0
- package/claw/node_modules/define-data-property/.eslintrc +24 -0
- package/claw/node_modules/define-data-property/.github/FUNDING.yml +12 -0
- package/claw/node_modules/define-data-property/.nycrc +13 -0
- package/claw/node_modules/define-data-property/CHANGELOG.md +70 -0
- package/claw/node_modules/define-data-property/LICENSE +21 -0
- package/claw/node_modules/define-data-property/README.md +67 -0
- package/claw/node_modules/define-data-property/index.d.ts +12 -0
- package/claw/node_modules/define-data-property/index.js +56 -0
- package/claw/node_modules/define-data-property/package.json +106 -0
- package/claw/node_modules/define-data-property/test/index.js +392 -0
- package/claw/node_modules/define-data-property/tsconfig.json +59 -0
- package/claw/node_modules/define-properties/.editorconfig +13 -0
- package/claw/node_modules/define-properties/.eslintrc +19 -0
- package/claw/node_modules/define-properties/.github/FUNDING.yml +12 -0
- package/claw/node_modules/define-properties/.nycrc +9 -0
- package/claw/node_modules/define-properties/CHANGELOG.md +91 -0
- package/claw/node_modules/define-properties/LICENSE +21 -0
- package/claw/node_modules/define-properties/README.md +84 -0
- package/claw/node_modules/define-properties/index.js +47 -0
- package/claw/node_modules/define-properties/package.json +88 -0
- package/claw/node_modules/dunder-proto/.eslintrc +5 -0
- package/claw/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
- package/claw/node_modules/dunder-proto/.nycrc +13 -0
- package/claw/node_modules/dunder-proto/CHANGELOG.md +24 -0
- package/claw/node_modules/dunder-proto/LICENSE +21 -0
- package/claw/node_modules/dunder-proto/README.md +54 -0
- package/claw/node_modules/dunder-proto/get.d.ts +5 -0
- package/claw/node_modules/dunder-proto/get.js +30 -0
- package/claw/node_modules/dunder-proto/package.json +76 -0
- package/claw/node_modules/dunder-proto/set.d.ts +5 -0
- package/claw/node_modules/dunder-proto/set.js +35 -0
- package/claw/node_modules/dunder-proto/test/get.js +34 -0
- package/claw/node_modules/dunder-proto/test/index.js +4 -0
- package/claw/node_modules/dunder-proto/test/set.js +50 -0
- package/claw/node_modules/dunder-proto/tsconfig.json +9 -0
- package/claw/node_modules/ecurve/.min-wd +7 -0
- package/claw/node_modules/ecurve/.travis.yml +14 -0
- package/claw/node_modules/ecurve/CHANGELOG.md +154 -0
- package/claw/node_modules/ecurve/README.md +11 -0
- package/claw/node_modules/ecurve/lib/curve.js +77 -0
- package/claw/node_modules/ecurve/lib/curves.json +65 -0
- package/claw/node_modules/ecurve/lib/index.js +10 -0
- package/claw/node_modules/ecurve/lib/names.js +21 -0
- package/claw/node_modules/ecurve/lib/point.js +244 -0
- package/claw/node_modules/ecurve/package.json +32 -0
- package/claw/node_modules/es-define-property/.eslintrc +13 -0
- package/claw/node_modules/es-define-property/.github/FUNDING.yml +12 -0
- package/claw/node_modules/es-define-property/.nycrc +9 -0
- package/claw/node_modules/es-define-property/CHANGELOG.md +29 -0
- package/claw/node_modules/es-define-property/LICENSE +21 -0
- package/claw/node_modules/es-define-property/README.md +49 -0
- package/claw/node_modules/es-define-property/index.d.ts +3 -0
- package/claw/node_modules/es-define-property/index.js +14 -0
- package/claw/node_modules/es-define-property/package.json +81 -0
- package/claw/node_modules/es-define-property/test/index.js +56 -0
- package/claw/node_modules/es-define-property/tsconfig.json +10 -0
- package/claw/node_modules/es-errors/.eslintrc +5 -0
- package/claw/node_modules/es-errors/.github/FUNDING.yml +12 -0
- package/claw/node_modules/es-errors/CHANGELOG.md +40 -0
- package/claw/node_modules/es-errors/LICENSE +21 -0
- package/claw/node_modules/es-errors/README.md +55 -0
- package/claw/node_modules/es-errors/eval.d.ts +3 -0
- package/claw/node_modules/es-errors/eval.js +4 -0
- package/claw/node_modules/es-errors/index.d.ts +3 -0
- package/claw/node_modules/es-errors/index.js +4 -0
- package/claw/node_modules/es-errors/package.json +80 -0
- package/claw/node_modules/es-errors/range.d.ts +3 -0
- package/claw/node_modules/es-errors/range.js +4 -0
- package/claw/node_modules/es-errors/ref.d.ts +3 -0
- package/claw/node_modules/es-errors/ref.js +4 -0
- package/claw/node_modules/es-errors/syntax.d.ts +3 -0
- package/claw/node_modules/es-errors/syntax.js +4 -0
- package/claw/node_modules/es-errors/test/index.js +19 -0
- package/claw/node_modules/es-errors/tsconfig.json +49 -0
- package/claw/node_modules/es-errors/type.d.ts +3 -0
- package/claw/node_modules/es-errors/type.js +4 -0
- package/claw/node_modules/es-errors/uri.d.ts +3 -0
- package/claw/node_modules/es-errors/uri.js +4 -0
- package/claw/node_modules/es-object-atoms/.eslintrc +16 -0
- package/claw/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
- package/claw/node_modules/es-object-atoms/CHANGELOG.md +37 -0
- package/claw/node_modules/es-object-atoms/LICENSE +21 -0
- package/claw/node_modules/es-object-atoms/README.md +63 -0
- package/claw/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
- package/claw/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
- package/claw/node_modules/es-object-atoms/ToObject.d.ts +7 -0
- package/claw/node_modules/es-object-atoms/ToObject.js +10 -0
- package/claw/node_modules/es-object-atoms/index.d.ts +3 -0
- package/claw/node_modules/es-object-atoms/index.js +4 -0
- package/claw/node_modules/es-object-atoms/isObject.d.ts +3 -0
- package/claw/node_modules/es-object-atoms/isObject.js +6 -0
- package/claw/node_modules/es-object-atoms/package.json +80 -0
- package/claw/node_modules/es-object-atoms/test/index.js +38 -0
- package/claw/node_modules/es-object-atoms/tsconfig.json +6 -0
- package/claw/node_modules/for-each/.editorconfig +20 -0
- package/claw/node_modules/for-each/.eslintrc +30 -0
- package/claw/node_modules/for-each/.github/FUNDING.yml +12 -0
- package/claw/node_modules/for-each/.github/SECURITY.md +3 -0
- package/claw/node_modules/for-each/.nycrc +8 -0
- package/claw/node_modules/for-each/CHANGELOG.md +107 -0
- package/claw/node_modules/for-each/LICENSE +22 -0
- package/claw/node_modules/for-each/README.md +39 -0
- package/claw/node_modules/for-each/index.d.ts +35 -0
- package/claw/node_modules/for-each/index.js +69 -0
- package/claw/node_modules/for-each/package.json +76 -0
- package/claw/node_modules/for-each/test/test.js +224 -0
- package/claw/node_modules/for-each/tsconfig.json +8 -0
- package/claw/node_modules/function-bind/.eslintrc +21 -0
- package/claw/node_modules/function-bind/.github/FUNDING.yml +12 -0
- package/claw/node_modules/function-bind/.github/SECURITY.md +3 -0
- package/claw/node_modules/function-bind/.nycrc +13 -0
- package/claw/node_modules/function-bind/CHANGELOG.md +136 -0
- package/claw/node_modules/function-bind/LICENSE +20 -0
- package/claw/node_modules/function-bind/README.md +46 -0
- package/claw/node_modules/function-bind/implementation.js +84 -0
- package/claw/node_modules/function-bind/index.js +5 -0
- package/claw/node_modules/function-bind/package.json +87 -0
- package/claw/node_modules/function-bind/test/.eslintrc +9 -0
- package/claw/node_modules/function-bind/test/index.js +252 -0
- package/claw/node_modules/functions-have-names/.editorconfig +20 -0
- package/claw/node_modules/functions-have-names/.eslintrc +19 -0
- package/claw/node_modules/functions-have-names/.github/FUNDING.yml +12 -0
- package/claw/node_modules/functions-have-names/.nycrc +9 -0
- package/claw/node_modules/functions-have-names/CHANGELOG.md +89 -0
- package/claw/node_modules/functions-have-names/LICENSE +21 -0
- package/claw/node_modules/functions-have-names/README.md +40 -0
- package/claw/node_modules/functions-have-names/index.js +31 -0
- package/claw/node_modules/functions-have-names/package.json +55 -0
- package/claw/node_modules/functions-have-names/test/index.js +65 -0
- package/claw/node_modules/get-intrinsic/.eslintrc +42 -0
- package/claw/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
- package/claw/node_modules/get-intrinsic/.nycrc +9 -0
- package/claw/node_modules/get-intrinsic/CHANGELOG.md +186 -0
- package/claw/node_modules/get-intrinsic/LICENSE +21 -0
- package/claw/node_modules/get-intrinsic/README.md +71 -0
- package/claw/node_modules/get-intrinsic/index.js +378 -0
- package/claw/node_modules/get-intrinsic/package.json +97 -0
- package/claw/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
- package/claw/node_modules/get-proto/.eslintrc +10 -0
- package/claw/node_modules/get-proto/.github/FUNDING.yml +12 -0
- package/claw/node_modules/get-proto/.nycrc +9 -0
- package/claw/node_modules/get-proto/CHANGELOG.md +21 -0
- package/claw/node_modules/get-proto/LICENSE +21 -0
- package/claw/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
- package/claw/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- package/claw/node_modules/get-proto/README.md +50 -0
- package/claw/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
- package/claw/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- package/claw/node_modules/get-proto/index.d.ts +5 -0
- package/claw/node_modules/get-proto/index.js +27 -0
- package/claw/node_modules/get-proto/package.json +81 -0
- package/claw/node_modules/get-proto/test/index.js +68 -0
- package/claw/node_modules/get-proto/tsconfig.json +9 -0
- package/claw/node_modules/gopd/.eslintrc +16 -0
- package/claw/node_modules/gopd/.github/FUNDING.yml +12 -0
- package/claw/node_modules/gopd/CHANGELOG.md +45 -0
- package/claw/node_modules/gopd/LICENSE +21 -0
- package/claw/node_modules/gopd/README.md +40 -0
- package/claw/node_modules/gopd/gOPD.d.ts +1 -0
- package/claw/node_modules/gopd/gOPD.js +4 -0
- package/claw/node_modules/gopd/index.d.ts +5 -0
- package/claw/node_modules/gopd/index.js +15 -0
- package/claw/node_modules/gopd/package.json +77 -0
- package/claw/node_modules/gopd/test/index.js +36 -0
- package/claw/node_modules/gopd/tsconfig.json +9 -0
- package/claw/node_modules/has-property-descriptors/.eslintrc +13 -0
- package/claw/node_modules/has-property-descriptors/.github/FUNDING.yml +12 -0
- package/claw/node_modules/has-property-descriptors/.nycrc +9 -0
- package/claw/node_modules/has-property-descriptors/CHANGELOG.md +35 -0
- package/claw/node_modules/has-property-descriptors/LICENSE +21 -0
- package/claw/node_modules/has-property-descriptors/README.md +43 -0
- package/claw/node_modules/has-property-descriptors/index.js +22 -0
- package/claw/node_modules/has-property-descriptors/package.json +77 -0
- package/claw/node_modules/has-property-descriptors/test/index.js +57 -0
- package/claw/node_modules/has-symbols/.eslintrc +11 -0
- package/claw/node_modules/has-symbols/.github/FUNDING.yml +12 -0
- package/claw/node_modules/has-symbols/.nycrc +9 -0
- package/claw/node_modules/has-symbols/CHANGELOG.md +91 -0
- package/claw/node_modules/has-symbols/LICENSE +21 -0
- package/claw/node_modules/has-symbols/README.md +46 -0
- package/claw/node_modules/has-symbols/index.d.ts +3 -0
- package/claw/node_modules/has-symbols/index.js +14 -0
- package/claw/node_modules/has-symbols/package.json +111 -0
- package/claw/node_modules/has-symbols/shams.d.ts +3 -0
- package/claw/node_modules/has-symbols/shams.js +45 -0
- package/claw/node_modules/has-symbols/test/index.js +22 -0
- package/claw/node_modules/has-symbols/test/shams/core-js.js +29 -0
- package/claw/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
- package/claw/node_modules/has-symbols/test/tests.js +58 -0
- package/claw/node_modules/has-symbols/tsconfig.json +10 -0
- package/claw/node_modules/has-tostringtag/.eslintrc +5 -0
- package/claw/node_modules/has-tostringtag/.github/FUNDING.yml +12 -0
- package/claw/node_modules/has-tostringtag/.nycrc +13 -0
- package/claw/node_modules/has-tostringtag/CHANGELOG.md +42 -0
- package/claw/node_modules/has-tostringtag/LICENSE +21 -0
- package/claw/node_modules/has-tostringtag/README.md +46 -0
- package/claw/node_modules/has-tostringtag/index.d.ts +3 -0
- package/claw/node_modules/has-tostringtag/index.js +8 -0
- package/claw/node_modules/has-tostringtag/package.json +108 -0
- package/claw/node_modules/has-tostringtag/shams.d.ts +3 -0
- package/claw/node_modules/has-tostringtag/shams.js +8 -0
- package/claw/node_modules/has-tostringtag/test/index.js +21 -0
- package/claw/node_modules/has-tostringtag/test/shams/core-js.js +31 -0
- package/claw/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +30 -0
- package/claw/node_modules/has-tostringtag/test/tests.js +15 -0
- package/claw/node_modules/has-tostringtag/tsconfig.json +49 -0
- package/claw/node_modules/hash-base/.github/FUNDING.yml +12 -0
- package/claw/node_modules/hash-base/CHANGELOG.md +166 -0
- package/claw/node_modules/hash-base/LICENSE +21 -0
- package/claw/node_modules/hash-base/README.md +48 -0
- package/claw/node_modules/hash-base/index.js +109 -0
- package/claw/node_modules/hash-base/package.json +64 -0
- package/claw/node_modules/hash-base/to-buffer.js +20 -0
- package/claw/node_modules/hasown/.eslintrc +5 -0
- package/claw/node_modules/hasown/.github/FUNDING.yml +12 -0
- package/claw/node_modules/hasown/.nycrc +13 -0
- package/claw/node_modules/hasown/CHANGELOG.md +40 -0
- package/claw/node_modules/hasown/LICENSE +21 -0
- package/claw/node_modules/hasown/README.md +40 -0
- package/claw/node_modules/hasown/index.d.ts +3 -0
- package/claw/node_modules/hasown/index.js +8 -0
- package/claw/node_modules/hasown/package.json +92 -0
- package/claw/node_modules/hasown/tsconfig.json +6 -0
- package/claw/node_modules/inherits/LICENSE +16 -0
- package/claw/node_modules/inherits/README.md +42 -0
- package/claw/node_modules/inherits/inherits.js +9 -0
- package/claw/node_modules/inherits/inherits_browser.js +27 -0
- package/claw/node_modules/inherits/package.json +29 -0
- package/claw/node_modules/is-arguments/.editorconfig +20 -0
- package/claw/node_modules/is-arguments/.eslintrc +9 -0
- package/claw/node_modules/is-arguments/.github/FUNDING.yml +12 -0
- package/claw/node_modules/is-arguments/.nycrc +9 -0
- package/claw/node_modules/is-arguments/CHANGELOG.md +201 -0
- package/claw/node_modules/is-arguments/LICENSE +20 -0
- package/claw/node_modules/is-arguments/README.md +47 -0
- package/claw/node_modules/is-arguments/index.d.ts +6 -0
- package/claw/node_modules/is-arguments/index.js +44 -0
- package/claw/node_modules/is-arguments/package.json +105 -0
- package/claw/node_modules/is-arguments/test/index.js +47 -0
- package/claw/node_modules/is-arguments/tsconfig.json +9 -0
- package/claw/node_modules/is-callable/.editorconfig +31 -0
- package/claw/node_modules/is-callable/.eslintrc +10 -0
- package/claw/node_modules/is-callable/.github/FUNDING.yml +12 -0
- package/claw/node_modules/is-callable/.nycrc +9 -0
- package/claw/node_modules/is-callable/CHANGELOG.md +158 -0
- package/claw/node_modules/is-callable/LICENSE +22 -0
- package/claw/node_modules/is-callable/README.md +83 -0
- package/claw/node_modules/is-callable/index.js +101 -0
- package/claw/node_modules/is-callable/package.json +106 -0
- package/claw/node_modules/is-callable/test/index.js +244 -0
- package/claw/node_modules/is-date-object/.editorconfig +20 -0
- package/claw/node_modules/is-date-object/.eslintrc +9 -0
- package/claw/node_modules/is-date-object/.github/FUNDING.yml +12 -0
- package/claw/node_modules/is-date-object/.nycrc +10 -0
- package/claw/node_modules/is-date-object/CHANGELOG.md +134 -0
- package/claw/node_modules/is-date-object/LICENSE +22 -0
- package/claw/node_modules/is-date-object/README.md +52 -0
- package/claw/node_modules/is-date-object/index.d.ts +3 -0
- package/claw/node_modules/is-date-object/index.js +27 -0
- package/claw/node_modules/is-date-object/package.json +99 -0
- package/claw/node_modules/is-date-object/test/index.js +38 -0
- package/claw/node_modules/is-date-object/tsconfig.json +6 -0
- package/claw/node_modules/is-regex/.editorconfig +23 -0
- package/claw/node_modules/is-regex/.eslintrc +10 -0
- package/claw/node_modules/is-regex/.nycrc +10 -0
- package/claw/node_modules/is-regex/CHANGELOG.md +233 -0
- package/claw/node_modules/is-regex/LICENSE +20 -0
- package/claw/node_modules/is-regex/README.md +52 -0
- package/claw/node_modules/is-regex/index.d.ts +3 -0
- package/claw/node_modules/is-regex/index.js +69 -0
- package/claw/node_modules/is-regex/package.json +104 -0
- package/claw/node_modules/is-regex/test/index.js +121 -0
- package/claw/node_modules/is-regex/tsconfig.json +9 -0
- package/claw/node_modules/is-typed-array/.editorconfig +20 -0
- package/claw/node_modules/is-typed-array/.eslintrc +13 -0
- package/claw/node_modules/is-typed-array/.github/FUNDING.yml +12 -0
- package/claw/node_modules/is-typed-array/.nycrc +9 -0
- package/claw/node_modules/is-typed-array/CHANGELOG.md +166 -0
- package/claw/node_modules/is-typed-array/LICENSE +22 -0
- package/claw/node_modules/is-typed-array/README.md +70 -0
- package/claw/node_modules/is-typed-array/index.d.ts +9 -0
- package/claw/node_modules/is-typed-array/index.js +8 -0
- package/claw/node_modules/is-typed-array/package.json +129 -0
- package/claw/node_modules/is-typed-array/test/index.js +111 -0
- package/claw/node_modules/is-typed-array/tsconfig.json +6 -0
- package/claw/node_modules/isarray/.travis.yml +4 -0
- package/claw/node_modules/isarray/Makefile +6 -0
- package/claw/node_modules/isarray/README.md +60 -0
- package/claw/node_modules/isarray/component.json +19 -0
- package/claw/node_modules/isarray/index.js +5 -0
- package/claw/node_modules/isarray/package.json +45 -0
- package/claw/node_modules/isarray/test.js +20 -0
- package/claw/node_modules/isomorphic-ws/LICENSE +21 -0
- package/claw/node_modules/isomorphic-ws/README.md +58 -0
- package/claw/node_modules/isomorphic-ws/browser.js +17 -0
- package/claw/node_modules/isomorphic-ws/index.d.ts +8 -0
- package/claw/node_modules/isomorphic-ws/node.js +3 -0
- package/claw/node_modules/isomorphic-ws/package.json +34 -0
- package/claw/node_modules/long/.travis.yml +5 -0
- package/claw/node_modules/long/LICENSE +202 -0
- package/claw/node_modules/long/README.md +513 -0
- package/claw/node_modules/long/bower.json +9 -0
- package/claw/node_modules/long/dist/README.md +16 -0
- package/claw/node_modules/long/dist/long.js +1209 -0
- package/claw/node_modules/long/dist/long.min.js +20 -0
- package/claw/node_modules/long/dist/long.min.js.gz +0 -0
- package/claw/node_modules/long/dist/long.min.map +8 -0
- package/claw/node_modules/long/doco/INDEX.md +6 -0
- package/claw/node_modules/long/doco/Long.md +473 -0
- package/claw/node_modules/long/donate.png +0 -0
- package/claw/node_modules/long/externs/long.js +416 -0
- package/claw/node_modules/long/index.js +1 -0
- package/claw/node_modules/long/jsdoc.json +13 -0
- package/claw/node_modules/long/long.png +0 -0
- package/claw/node_modules/long/package.json +33 -0
- package/claw/node_modules/long/scripts/build.js +28 -0
- package/claw/node_modules/long/src/bower.json +9 -0
- package/claw/node_modules/long/src/long.js +1172 -0
- package/claw/node_modules/long/src/wrap.js +38 -0
- package/claw/node_modules/long/tests/goog.math.long.js +807 -0
- package/claw/node_modules/long/tests/suite.js +195 -0
- package/claw/node_modules/lzma/.travis.yml +9 -0
- package/claw/node_modules/lzma/LICENSE +20 -0
- package/claw/node_modules/lzma/THANKS +7 -0
- package/claw/node_modules/lzma/bin/lzma.js +362 -0
- package/claw/node_modules/lzma/index.js +19 -0
- package/claw/node_modules/lzma/package.json +30 -0
- package/claw/node_modules/lzma/readme.md +149 -0
- package/claw/node_modules/lzma/src/lzma-c-min.js +1 -0
- package/claw/node_modules/lzma/src/lzma-c.js +2021 -0
- package/claw/node_modules/lzma/src/lzma-d-min.js +1 -0
- package/claw/node_modules/lzma/src/lzma-d.js +878 -0
- package/claw/node_modules/lzma/src/lzma-min.js +2 -0
- package/claw/node_modules/lzma/src/lzma.js +153 -0
- package/claw/node_modules/lzma/src/lzma_worker-min.js +2 -0
- package/claw/node_modules/lzma/src/lzma_worker.js +2668 -0
- package/claw/node_modules/math-intrinsics/.eslintrc +16 -0
- package/claw/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
- package/claw/node_modules/math-intrinsics/CHANGELOG.md +24 -0
- package/claw/node_modules/math-intrinsics/LICENSE +21 -0
- package/claw/node_modules/math-intrinsics/README.md +50 -0
- package/claw/node_modules/math-intrinsics/abs.d.ts +1 -0
- package/claw/node_modules/math-intrinsics/abs.js +4 -0
- package/claw/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
- package/claw/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
- package/claw/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
- package/claw/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
- package/claw/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
- package/claw/node_modules/math-intrinsics/constants/maxValue.js +5 -0
- package/claw/node_modules/math-intrinsics/floor.d.ts +1 -0
- package/claw/node_modules/math-intrinsics/floor.js +4 -0
- package/claw/node_modules/math-intrinsics/isFinite.d.ts +3 -0
- package/claw/node_modules/math-intrinsics/isFinite.js +12 -0
- package/claw/node_modules/math-intrinsics/isInteger.d.ts +3 -0
- package/claw/node_modules/math-intrinsics/isInteger.js +16 -0
- package/claw/node_modules/math-intrinsics/isNaN.d.ts +1 -0
- package/claw/node_modules/math-intrinsics/isNaN.js +6 -0
- package/claw/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
- package/claw/node_modules/math-intrinsics/isNegativeZero.js +6 -0
- package/claw/node_modules/math-intrinsics/max.d.ts +1 -0
- package/claw/node_modules/math-intrinsics/max.js +4 -0
- package/claw/node_modules/math-intrinsics/min.d.ts +1 -0
- package/claw/node_modules/math-intrinsics/min.js +4 -0
- package/claw/node_modules/math-intrinsics/mod.d.ts +3 -0
- package/claw/node_modules/math-intrinsics/mod.js +9 -0
- package/claw/node_modules/math-intrinsics/package.json +86 -0
- package/claw/node_modules/math-intrinsics/pow.d.ts +1 -0
- package/claw/node_modules/math-intrinsics/pow.js +4 -0
- package/claw/node_modules/math-intrinsics/round.d.ts +1 -0
- package/claw/node_modules/math-intrinsics/round.js +4 -0
- package/claw/node_modules/math-intrinsics/sign.d.ts +3 -0
- package/claw/node_modules/math-intrinsics/sign.js +11 -0
- package/claw/node_modules/math-intrinsics/test/index.js +192 -0
- package/claw/node_modules/math-intrinsics/tsconfig.json +3 -0
- package/claw/node_modules/md5.js/LICENSE +21 -0
- package/claw/node_modules/md5.js/README.md +29 -0
- package/claw/node_modules/md5.js/index.js +146 -0
- package/claw/node_modules/md5.js/package.json +38 -0
- package/claw/node_modules/object-is/.eslintrc +5 -0
- package/claw/node_modules/object-is/.nycrc +9 -0
- package/claw/node_modules/object-is/CHANGELOG.md +175 -0
- package/claw/node_modules/object-is/LICENSE +20 -0
- package/claw/node_modules/object-is/README.md +60 -0
- package/claw/node_modules/object-is/auto.js +3 -0
- package/claw/node_modules/object-is/implementation.js +19 -0
- package/claw/node_modules/object-is/index.js +18 -0
- package/claw/node_modules/object-is/package.json +96 -0
- package/claw/node_modules/object-is/polyfill.js +7 -0
- package/claw/node_modules/object-is/shim.js +14 -0
- package/claw/node_modules/object-is/test/implementation.js +12 -0
- package/claw/node_modules/object-is/test/index.js +12 -0
- package/claw/node_modules/object-is/test/shimmed.js +28 -0
- package/claw/node_modules/object-is/test/tests.js +57 -0
- package/claw/node_modules/object-keys/.editorconfig +13 -0
- package/claw/node_modules/object-keys/.eslintrc +17 -0
- package/claw/node_modules/object-keys/.travis.yml +277 -0
- package/claw/node_modules/object-keys/CHANGELOG.md +232 -0
- package/claw/node_modules/object-keys/LICENSE +21 -0
- package/claw/node_modules/object-keys/README.md +76 -0
- package/claw/node_modules/object-keys/implementation.js +122 -0
- package/claw/node_modules/object-keys/index.js +32 -0
- package/claw/node_modules/object-keys/isArguments.js +17 -0
- package/claw/node_modules/object-keys/package.json +88 -0
- package/claw/node_modules/object-keys/test/index.js +5 -0
- package/claw/node_modules/object.assign/.editorconfig +20 -0
- package/claw/node_modules/object.assign/.eslintrc +28 -0
- package/claw/node_modules/object.assign/.github/FUNDING.yml +12 -0
- package/claw/node_modules/object.assign/.nycrc +9 -0
- package/claw/node_modules/object.assign/CHANGELOG.md +246 -0
- package/claw/node_modules/object.assign/LICENSE +21 -0
- package/claw/node_modules/object.assign/README.md +136 -0
- package/claw/node_modules/object.assign/auto.js +3 -0
- package/claw/node_modules/object.assign/dist/browser.js +1304 -0
- package/claw/node_modules/object.assign/hasSymbols.js +43 -0
- package/claw/node_modules/object.assign/implementation.js +46 -0
- package/claw/node_modules/object.assign/index.js +22 -0
- package/claw/node_modules/object.assign/package.json +96 -0
- package/claw/node_modules/object.assign/polyfill.js +55 -0
- package/claw/node_modules/object.assign/shim.js +14 -0
- package/claw/node_modules/object.assign/test/implementation.js +19 -0
- package/claw/node_modules/object.assign/test/index.js +17 -0
- package/claw/node_modules/object.assign/test/native.js +49 -0
- package/claw/node_modules/object.assign/test/ses-compat.js +12 -0
- package/claw/node_modules/object.assign/test/shimmed.js +52 -0
- package/claw/node_modules/object.assign/test/tests.js +232 -0
- package/claw/node_modules/possible-typed-array-names/.eslintrc +5 -0
- package/claw/node_modules/possible-typed-array-names/.github/FUNDING.yml +12 -0
- package/claw/node_modules/possible-typed-array-names/CHANGELOG.md +29 -0
- package/claw/node_modules/possible-typed-array-names/LICENSE +21 -0
- package/claw/node_modules/possible-typed-array-names/README.md +50 -0
- package/claw/node_modules/possible-typed-array-names/index.d.ts +16 -0
- package/claw/node_modules/possible-typed-array-names/index.js +17 -0
- package/claw/node_modules/possible-typed-array-names/package.json +84 -0
- package/claw/node_modules/possible-typed-array-names/test/index.js +19 -0
- package/claw/node_modules/possible-typed-array-names/tsconfig.json +9 -0
- package/claw/node_modules/process-nextick-args/index.js +45 -0
- package/claw/node_modules/process-nextick-args/license.md +19 -0
- package/claw/node_modules/process-nextick-args/package.json +25 -0
- package/claw/node_modules/process-nextick-args/readme.md +18 -0
- package/claw/node_modules/readable-stream/.travis.yml +34 -0
- package/claw/node_modules/readable-stream/CONTRIBUTING.md +38 -0
- package/claw/node_modules/readable-stream/GOVERNANCE.md +136 -0
- package/claw/node_modules/readable-stream/LICENSE +47 -0
- package/claw/node_modules/readable-stream/README.md +58 -0
- package/claw/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
- package/claw/node_modules/readable-stream/duplex-browser.js +1 -0
- package/claw/node_modules/readable-stream/duplex.js +1 -0
- package/claw/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
- package/claw/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
- package/claw/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
- package/claw/node_modules/readable-stream/lib/_stream_transform.js +214 -0
- package/claw/node_modules/readable-stream/lib/_stream_writable.js +685 -0
- package/claw/node_modules/readable-stream/lib/internal/streams/BufferList.js +78 -0
- package/claw/node_modules/readable-stream/lib/internal/streams/destroy.js +84 -0
- package/claw/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
- package/claw/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
- package/claw/node_modules/readable-stream/node_modules/safe-buffer/LICENSE +21 -0
- package/claw/node_modules/readable-stream/node_modules/safe-buffer/README.md +584 -0
- package/claw/node_modules/readable-stream/node_modules/safe-buffer/index.d.ts +187 -0
- package/claw/node_modules/readable-stream/node_modules/safe-buffer/index.js +62 -0
- package/claw/node_modules/readable-stream/node_modules/safe-buffer/package.json +37 -0
- package/claw/node_modules/readable-stream/package.json +52 -0
- package/claw/node_modules/readable-stream/passthrough.js +1 -0
- package/claw/node_modules/readable-stream/readable-browser.js +7 -0
- package/claw/node_modules/readable-stream/readable.js +19 -0
- package/claw/node_modules/readable-stream/transform.js +1 -0
- package/claw/node_modules/readable-stream/writable-browser.js +1 -0
- package/claw/node_modules/readable-stream/writable.js +8 -0
- package/claw/node_modules/regexp.prototype.flags/.editorconfig +13 -0
- package/claw/node_modules/regexp.prototype.flags/.eslintrc +20 -0
- package/claw/node_modules/regexp.prototype.flags/.nycrc +9 -0
- package/claw/node_modules/regexp.prototype.flags/CHANGELOG.md +249 -0
- package/claw/node_modules/regexp.prototype.flags/LICENSE +22 -0
- package/claw/node_modules/regexp.prototype.flags/README.md +55 -0
- package/claw/node_modules/regexp.prototype.flags/auto.js +3 -0
- package/claw/node_modules/regexp.prototype.flags/implementation.js +39 -0
- package/claw/node_modules/regexp.prototype.flags/index.js +18 -0
- package/claw/node_modules/regexp.prototype.flags/package.json +105 -0
- package/claw/node_modules/regexp.prototype.flags/polyfill.js +39 -0
- package/claw/node_modules/regexp.prototype.flags/shim.js +26 -0
- package/claw/node_modules/regexp.prototype.flags/test/builtin.js +46 -0
- package/claw/node_modules/regexp.prototype.flags/test/implementation.js +20 -0
- package/claw/node_modules/regexp.prototype.flags/test/index.js +17 -0
- package/claw/node_modules/regexp.prototype.flags/test/shimmed.js +48 -0
- package/claw/node_modules/regexp.prototype.flags/test/tests.js +143 -0
- package/claw/node_modules/ripemd160/.github/FUNDING.yml +12 -0
- package/claw/node_modules/ripemd160/CHANGELOG.md +109 -0
- package/claw/node_modules/ripemd160/LICENSE +21 -0
- package/claw/node_modules/ripemd160/README.md +27 -0
- package/claw/node_modules/ripemd160/index.js +167 -0
- package/claw/node_modules/ripemd160/package.json +64 -0
- package/claw/node_modules/safe-buffer/LICENSE +21 -0
- package/claw/node_modules/safe-buffer/README.md +584 -0
- package/claw/node_modules/safe-buffer/index.d.ts +187 -0
- package/claw/node_modules/safe-buffer/index.js +65 -0
- package/claw/node_modules/safe-buffer/package.json +51 -0
- package/claw/node_modules/secure-random/CHANGELOG.md +51 -0
- package/claw/node_modules/secure-random/Makefile +8 -0
- package/claw/node_modules/secure-random/README.md +133 -0
- package/claw/node_modules/secure-random/lib/secure-random.js +83 -0
- package/claw/node_modules/secure-random/package.json +45 -0
- package/claw/node_modules/set-function-length/.eslintrc +27 -0
- package/claw/node_modules/set-function-length/.github/FUNDING.yml +12 -0
- package/claw/node_modules/set-function-length/.nycrc +13 -0
- package/claw/node_modules/set-function-length/CHANGELOG.md +70 -0
- package/claw/node_modules/set-function-length/LICENSE +21 -0
- package/claw/node_modules/set-function-length/README.md +56 -0
- package/claw/node_modules/set-function-length/env.d.ts +9 -0
- package/claw/node_modules/set-function-length/env.js +25 -0
- package/claw/node_modules/set-function-length/index.d.ts +7 -0
- package/claw/node_modules/set-function-length/index.js +42 -0
- package/claw/node_modules/set-function-length/package.json +102 -0
- package/claw/node_modules/set-function-length/tsconfig.json +9 -0
- package/claw/node_modules/set-function-name/.eslintrc +21 -0
- package/claw/node_modules/set-function-name/.github/FUNDING.yml +12 -0
- package/claw/node_modules/set-function-name/CHANGELOG.md +48 -0
- package/claw/node_modules/set-function-name/LICENSE +21 -0
- package/claw/node_modules/set-function-name/README.md +61 -0
- package/claw/node_modules/set-function-name/index.d.ts +5 -0
- package/claw/node_modules/set-function-name/index.js +23 -0
- package/claw/node_modules/set-function-name/package.json +99 -0
- package/claw/node_modules/set-function-name/tsconfig.json +59 -0
- package/claw/node_modules/sha.js/.eslintrc +76 -0
- package/claw/node_modules/sha.js/CHANGELOG.md +423 -0
- package/claw/node_modules/sha.js/LICENSE +49 -0
- package/claw/node_modules/sha.js/README.md +44 -0
- package/claw/node_modules/sha.js/bin.js +44 -0
- package/claw/node_modules/sha.js/hash.js +84 -0
- package/claw/node_modules/sha.js/index.js +19 -0
- package/claw/node_modules/sha.js/package.json +58 -0
- package/claw/node_modules/sha.js/sha.js +104 -0
- package/claw/node_modules/sha.js/sha1.js +109 -0
- package/claw/node_modules/sha.js/sha224.js +55 -0
- package/claw/node_modules/sha.js/sha256.js +189 -0
- package/claw/node_modules/sha.js/sha384.js +59 -0
- package/claw/node_modules/sha.js/sha512.js +382 -0
- package/claw/node_modules/sha.js/test/hash.js +80 -0
- package/claw/node_modules/sha.js/test/test.js +138 -0
- package/claw/node_modules/sha.js/test/vectors.js +72 -0
- package/claw/node_modules/string_decoder/.travis.yml +50 -0
- package/claw/node_modules/string_decoder/LICENSE +48 -0
- package/claw/node_modules/string_decoder/README.md +47 -0
- package/claw/node_modules/string_decoder/lib/string_decoder.js +296 -0
- package/claw/node_modules/string_decoder/node_modules/safe-buffer/LICENSE +21 -0
- package/claw/node_modules/string_decoder/node_modules/safe-buffer/README.md +584 -0
- package/claw/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts +187 -0
- package/claw/node_modules/string_decoder/node_modules/safe-buffer/index.js +62 -0
- package/claw/node_modules/string_decoder/node_modules/safe-buffer/package.json +37 -0
- package/claw/node_modules/string_decoder/package.json +31 -0
- package/claw/node_modules/to-buffer/.github/FUNDING.yml +12 -0
- package/claw/node_modules/to-buffer/CHANGELOG.md +81 -0
- package/claw/node_modules/to-buffer/LICENSE +21 -0
- package/claw/node_modules/to-buffer/README.md +44 -0
- package/claw/node_modules/to-buffer/index.js +109 -0
- package/claw/node_modules/to-buffer/node_modules/isarray/LICENSE +21 -0
- package/claw/node_modules/to-buffer/node_modules/isarray/README.md +38 -0
- package/claw/node_modules/to-buffer/node_modules/isarray/index.js +5 -0
- package/claw/node_modules/to-buffer/node_modules/isarray/package.json +48 -0
- package/claw/node_modules/to-buffer/package.json +62 -0
- package/claw/node_modules/typed-array-buffer/.eslintrc +13 -0
- package/claw/node_modules/typed-array-buffer/.github/FUNDING.yml +12 -0
- package/claw/node_modules/typed-array-buffer/.nycrc +13 -0
- package/claw/node_modules/typed-array-buffer/CHANGELOG.md +50 -0
- package/claw/node_modules/typed-array-buffer/LICENSE +21 -0
- package/claw/node_modules/typed-array-buffer/README.md +42 -0
- package/claw/node_modules/typed-array-buffer/index.d.ts +9 -0
- package/claw/node_modules/typed-array-buffer/index.js +19 -0
- package/claw/node_modules/typed-array-buffer/package.json +82 -0
- package/claw/node_modules/typed-array-buffer/test/index.js +23 -0
- package/claw/node_modules/typed-array-buffer/tsconfig.json +9 -0
- package/claw/node_modules/util/LICENSE +18 -0
- package/claw/node_modules/util/README.md +15 -0
- package/claw/node_modules/util/node_modules/inherits/LICENSE +16 -0
- package/claw/node_modules/util/node_modules/inherits/README.md +42 -0
- package/claw/node_modules/util/node_modules/inherits/inherits.js +7 -0
- package/claw/node_modules/util/node_modules/inherits/inherits_browser.js +23 -0
- package/claw/node_modules/util/node_modules/inherits/package.json +29 -0
- package/claw/node_modules/util/package.json +35 -0
- package/claw/node_modules/util/support/isBuffer.js +3 -0
- package/claw/node_modules/util/support/isBufferBrowser.js +6 -0
- package/claw/node_modules/util/util.js +586 -0
- package/claw/node_modules/util-deprecate/History.md +16 -0
- package/claw/node_modules/util-deprecate/LICENSE +24 -0
- package/claw/node_modules/util-deprecate/README.md +53 -0
- package/claw/node_modules/util-deprecate/browser.js +67 -0
- package/claw/node_modules/util-deprecate/node.js +6 -0
- package/claw/node_modules/util-deprecate/package.json +27 -0
- package/claw/node_modules/which-typed-array/.editorconfig +20 -0
- package/claw/node_modules/which-typed-array/.eslintrc +10 -0
- package/claw/node_modules/which-typed-array/.github/FUNDING.yml +12 -0
- package/claw/node_modules/which-typed-array/.nycrc +13 -0
- package/claw/node_modules/which-typed-array/CHANGELOG.md +269 -0
- package/claw/node_modules/which-typed-array/LICENSE +22 -0
- package/claw/node_modules/which-typed-array/README.md +70 -0
- package/claw/node_modules/which-typed-array/index.d.ts +66 -0
- package/claw/node_modules/which-typed-array/index.js +122 -0
- package/claw/node_modules/which-typed-array/package.json +130 -0
- package/claw/node_modules/which-typed-array/test/index.js +105 -0
- package/claw/node_modules/which-typed-array/tsconfig.json +9 -0
- package/claw/node_modules/ws/LICENSE +21 -0
- package/claw/node_modules/ws/README.md +449 -0
- package/claw/node_modules/ws/browser.js +8 -0
- package/claw/node_modules/ws/index.js +9 -0
- package/claw/node_modules/ws/lib/buffer-util.js +144 -0
- package/claw/node_modules/ws/lib/constants.js +10 -0
- package/claw/node_modules/ws/lib/event-target.js +170 -0
- package/claw/node_modules/ws/lib/extension.js +222 -0
- package/claw/node_modules/ws/lib/permessage-deflate.js +502 -0
- package/claw/node_modules/ws/lib/receiver.js +492 -0
- package/claw/node_modules/ws/lib/sender.js +358 -0
- package/claw/node_modules/ws/lib/validation.js +30 -0
- package/claw/node_modules/ws/lib/websocket-server.js +415 -0
- package/claw/node_modules/ws/lib/websocket.js +895 -0
- package/claw/node_modules/ws/package.json +45 -0
- package/claw/openclaw.plugin.json +13 -0
- package/claw/package.json +58 -0
- package/claw/runtimes/openclaw-plugin/index.ts +38 -0
- package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +14 -0
- package/claw/runtimes/openclaw-plugin/package.json +7 -0
- package/claw/runtimes/openclaw-plugin/plugin-entry.d.ts +10 -0
- package/claw/runtimes/openclaw-plugin/skills/bitshares-claw/SKILL.md +20 -0
- package/claw/scripts/claw_bridge.ts +139 -0
- package/claw/scripts/claw_mcp_server.ts +133 -0
- package/claw/scripts/claw_skill_md.ts +92 -0
- package/claw/scripts/honest_assets_report.ts +405 -0
- package/claw/scripts/memu_mcp_server.ts +438 -0
- package/claw/tests/package.json +3 -0
- package/claw/tests/test_claw_bridge.ts +542 -0
- package/claw/tests/test_claw_catalog_and_credentials.ts +152 -0
- package/claw/tests/test_claw_chain_layer.ts +719 -0
- package/claw/tests/test_claw_data_flow.ts +515 -0
- package/claw/tests/test_claw_domain_logic.ts +465 -0
- package/claw/tests/test_claw_manifest_and_matrix.ts +202 -0
- package/claw/tests/test_claw_mcp_transport.ts +238 -0
- package/claw/tests/test_claw_regressions.ts +580 -0
- package/claw/tests/test_claw_skill_generation.ts +103 -0
- package/claw/tests/test_claw_state_store.ts +44 -0
- package/claw/tests/test_dexbot_profiles.ts +572 -0
- package/claw/tests/test_memu_bridge.ts +189 -0
- package/claw/tests/test_nullclaw_tmp_integration.ts +58 -0
- package/claw/tests/test_position_health.ts +419 -0
- package/claw/tests/test_position_manager.ts +427 -0
- package/claw/tests/test_position_manager_watch_health.ts +104 -0
- package/claw/tests/test_short_mpa_strategy.ts +229 -0
- package/claw/tsconfig.json +35 -0
- package/dist/analysis/chart_utils.d.ts.map +1 -1
- package/dist/analysis/chart_utils.js +9 -18
- package/dist/analysis/chart_utils.js.map +1 -1
- package/dist/analysis/math_utils.d.ts.map +1 -1
- package/dist/analysis/math_utils.js +6 -16
- package/dist/analysis/math_utils.js.map +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +31 -38
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -1
- package/dist/analysis/trend_detection/hurst_analyzer.js +7 -10
- package/dist/analysis/trend_detection/hurst_analyzer.js.map +1 -1
- package/dist/analysis/trend_detection/kalman_trend_analyzer.js +10 -14
- package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +1 -1
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.js +10 -15
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +1 -1
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.js +7 -10
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +1 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +4 -12
- package/dist/bot.js.map +1 -1
- package/dist/credential-daemon.d.ts +1 -2
- package/dist/credential-daemon.d.ts.map +1 -1
- package/dist/credential-daemon.js +4 -124
- package/dist/credential-daemon.js.map +1 -1
- package/dist/dexbot.d.ts +0 -87
- package/dist/dexbot.d.ts.map +1 -1
- package/dist/dexbot.js +20 -23
- package/dist/dexbot.js.map +1 -1
- package/dist/market_adapter/ama_signal_runner.js +8 -9
- package/dist/market_adapter/ama_signal_runner.js.map +1 -1
- package/dist/market_adapter/candle_utils.js +1 -7
- package/dist/market_adapter/candle_utils.js.map +1 -1
- package/dist/market_adapter/core/asymmetric_bounds.js +1 -4
- package/dist/market_adapter/core/asymmetric_bounds.js.map +1 -1
- package/dist/market_adapter/core/config_normalizers.js +5 -9
- package/dist/market_adapter/core/config_normalizers.js.map +1 -1
- package/dist/market_adapter/core/kibana_candles.js +8 -15
- package/dist/market_adapter/core/kibana_candles.js.map +1 -1
- package/dist/market_adapter/core/kibana_client.js +7 -13
- package/dist/market_adapter/core/kibana_client.js.map +1 -1
- package/dist/market_adapter/core/kibana_market_candles.js +6 -12
- package/dist/market_adapter/core/kibana_market_candles.js.map +1 -1
- package/dist/market_adapter/core/market_adapter_service.js +92 -102
- package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
- package/dist/market_adapter/core/strategies/ama.js +5 -10
- package/dist/market_adapter/core/strategies/ama.js.map +1 -1
- package/dist/market_adapter/core/strategies/ama_slope_model.js +21 -24
- package/dist/market_adapter/core/strategies/ama_slope_model.js.map +1 -1
- package/dist/market_adapter/core/strategies/atr/calculator.js +3 -5
- package/dist/market_adapter/core/strategies/atr/calculator.js.map +1 -1
- package/dist/market_adapter/core/strategies/collateral_manager.js +4 -6
- package/dist/market_adapter/core/strategies/collateral_manager.js.map +1 -1
- package/dist/market_adapter/core/strategies/regime_gate.js +15 -22
- package/dist/market_adapter/core/strategies/regime_gate.js.map +1 -1
- package/dist/market_adapter/index.d.ts +23 -23
- package/dist/market_adapter/index.d.ts.map +1 -1
- package/dist/market_adapter/index.js +24 -82
- package/dist/market_adapter/index.js.map +1 -1
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +2 -1
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js.map +1 -1
- package/dist/market_adapter/inputs/fetch_lp_data.d.ts.map +1 -1
- package/dist/market_adapter/inputs/fetch_lp_data.js +59 -98
- package/dist/market_adapter/inputs/fetch_lp_data.js.map +1 -1
- package/dist/market_adapter/inputs/kibana_source.js +11 -17
- package/dist/market_adapter/inputs/kibana_source.js.map +1 -1
- package/dist/market_adapter/interval_utils.js +1 -2
- package/dist/market_adapter/interval_utils.js.map +1 -1
- package/dist/market_adapter/log_format.js +1 -7
- package/dist/market_adapter/log_format.js.map +1 -1
- package/dist/market_adapter/lp_chart_core.js +20 -22
- package/dist/market_adapter/lp_chart_core.js.map +1 -1
- package/dist/market_adapter/lp_chart_runner.d.ts +1 -1
- package/dist/market_adapter/lp_chart_runner.d.ts.map +1 -1
- package/dist/market_adapter/lp_chart_runner.js +41 -57
- package/dist/market_adapter/lp_chart_runner.js.map +1 -1
- package/dist/market_adapter/lp_chart_strategy_loader.js +30 -34
- package/dist/market_adapter/lp_chart_strategy_loader.js.map +1 -1
- package/dist/market_adapter/market_adapter.d.ts +2 -2
- package/dist/market_adapter/market_adapter.d.ts.map +1 -1
- package/dist/market_adapter/market_adapter.js +157 -221
- package/dist/market_adapter/market_adapter.js.map +1 -1
- package/dist/market_adapter/merge_lp_data.js +17 -18
- package/dist/market_adapter/merge_lp_data.js.map +1 -1
- package/dist/market_adapter/test_helpers.js +3 -14
- package/dist/market_adapter/test_helpers.js.map +1 -1
- package/dist/market_adapter/utils/adapter_client.js +7 -16
- package/dist/market_adapter/utils/adapter_client.js.map +1 -1
- package/dist/market_adapter/utils/atomic_write.js +3 -5
- package/dist/market_adapter/utils/atomic_write.js.map +1 -1
- package/dist/market_adapter/utils/chain.d.ts.map +1 -1
- package/dist/market_adapter/utils/chain.js +9 -17
- package/dist/market_adapter/utils/chain.js.map +1 -1
- package/dist/market_adapter/utils/data_discovery.js +8 -10
- package/dist/market_adapter/utils/data_discovery.js.map +1 -1
- package/dist/market_adapter/utils/dynamic_grid_snapshot.d.ts.map +1 -1
- package/dist/market_adapter/utils/dynamic_grid_snapshot.js +11 -14
- package/dist/market_adapter/utils/dynamic_grid_snapshot.js.map +1 -1
- package/dist/market_adapter/utils/file_lock.js +14 -19
- package/dist/market_adapter/utils/file_lock.js.map +1 -1
- package/dist/market_adapter/utils/native_history.js +8 -14
- package/dist/market_adapter/utils/native_history.js.map +1 -1
- package/dist/market_adapter/utils/paths.js +3 -6
- package/dist/market_adapter/utils/paths.js.map +1 -1
- package/dist/modules/account_bots.d.ts +1 -1
- package/dist/modules/account_bots.d.ts.map +1 -1
- package/dist/modules/account_bots.js +90 -97
- package/dist/modules/account_bots.js.map +1 -1
- package/dist/modules/account_orders.d.ts +0 -9
- package/dist/modules/account_orders.d.ts.map +1 -1
- package/dist/modules/account_orders.js +26 -121
- package/dist/modules/account_orders.js.map +1 -1
- package/dist/modules/authority_resolver.js +12 -18
- package/dist/modules/authority_resolver.js.map +1 -1
- package/dist/modules/bitshares-native/chain_client.js +16 -21
- package/dist/modules/bitshares-native/chain_client.js.map +1 -1
- package/dist/modules/bitshares-native/crypto/ecc.browser.js +12 -72
- package/dist/modules/bitshares-native/crypto/ecc.browser.js.map +1 -1
- package/dist/modules/bitshares-native/crypto/ecc.js +13 -40
- package/dist/modules/bitshares-native/crypto/ecc.js.map +1 -1
- package/dist/modules/bitshares-native/crypto/ecc_selector.d.ts.map +1 -1
- package/dist/modules/bitshares-native/crypto/ecc_selector.js +5 -6
- package/dist/modules/bitshares-native/crypto/ecc_selector.js.map +1 -1
- package/dist/modules/bitshares-native/index.d.ts +8 -8
- package/dist/modules/bitshares-native/index.d.ts.map +1 -1
- package/dist/modules/bitshares-native/index.js +11 -68
- package/dist/modules/bitshares-native/index.js.map +1 -1
- package/dist/modules/bitshares-native/lru_cache.js +3 -6
- package/dist/modules/bitshares-native/lru_cache.js.map +1 -1
- package/dist/modules/bitshares-native/resolvers.js +9 -11
- package/dist/modules/bitshares-native/resolvers.js.map +1 -1
- package/dist/modules/bitshares-native/serial/chain_constants.js +3 -28
- package/dist/modules/bitshares-native/serial/chain_constants.js.map +1 -1
- package/dist/modules/bitshares-native/serial/index.d.ts +4 -4
- package/dist/modules/bitshares-native/serial/index.d.ts.map +1 -1
- package/dist/modules/bitshares-native/serial/index.js +5 -46
- package/dist/modules/bitshares-native/serial/index.js.map +1 -1
- package/dist/modules/bitshares-native/serial/operations.d.ts +98 -98
- package/dist/modules/bitshares-native/serial/operations.d.ts.map +1 -1
- package/dist/modules/bitshares-native/serial/operations.js +372 -473
- package/dist/modules/bitshares-native/serial/operations.js.map +1 -1
- package/dist/modules/bitshares-native/serial/serializer.js +3 -8
- package/dist/modules/bitshares-native/serial/serializer.js.map +1 -1
- package/dist/modules/bitshares-native/serial/types.js +9 -74
- package/dist/modules/bitshares-native/serial/types.js.map +1 -1
- package/dist/modules/bitshares-native/signing_client.d.ts.map +1 -1
- package/dist/modules/bitshares-native/signing_client.js +11 -48
- package/dist/modules/bitshares-native/signing_client.js.map +1 -1
- package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -1
- package/dist/modules/bitshares-native/subscriptions.js +24 -27
- package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
- package/dist/modules/bitshares-native/transport.d.ts.map +1 -1
- package/dist/modules/bitshares-native/transport.js +14 -26
- package/dist/modules/bitshares-native/transport.js.map +1 -1
- package/dist/modules/bitshares-native/tx/builder.js +29 -72
- package/dist/modules/bitshares-native/tx/builder.js.map +1 -1
- package/dist/modules/bitshares-native/tx/tx_cache.js +12 -21
- package/dist/modules/bitshares-native/tx/tx_cache.js.map +1 -1
- package/dist/modules/bitshares_client.d.ts +21 -0
- package/dist/modules/bitshares_client.d.ts.map +1 -1
- package/dist/modules/bitshares_client.js +32 -86
- package/dist/modules/bitshares_client.js.map +1 -1
- package/dist/modules/bot_settings.d.ts.map +1 -1
- package/dist/modules/bot_settings.js +30 -49
- package/dist/modules/bot_settings.js.map +1 -1
- package/dist/modules/bots_file_lock.d.ts.map +1 -1
- package/dist/modules/bots_file_lock.js +5 -13
- package/dist/modules/bots_file_lock.js.map +1 -1
- package/dist/modules/broadcast_failure.js +1 -3
- package/dist/modules/broadcast_failure.js.map +1 -1
- package/dist/modules/chain_keys.d.ts +4 -9
- package/dist/modules/chain_keys.d.ts.map +1 -1
- package/dist/modules/chain_keys.js +77 -182
- package/dist/modules/chain_keys.js.map +1 -1
- package/dist/modules/chain_orders.d.ts +2 -2
- package/dist/modules/chain_orders.d.ts.map +1 -1
- package/dist/modules/chain_orders.js +81 -144
- package/dist/modules/chain_orders.js.map +1 -1
- package/dist/modules/config.d.ts.map +1 -1
- package/dist/modules/config.js +23 -28
- package/dist/modules/config.js.map +1 -1
- package/dist/modules/constants.d.ts +2 -9
- package/dist/modules/constants.d.ts.map +1 -1
- package/dist/modules/constants.js +39 -74
- package/dist/modules/constants.js.map +1 -1
- package/dist/modules/cr_planner.js +15 -26
- package/dist/modules/cr_planner.js.map +1 -1
- package/dist/modules/credential_policy.d.ts +3 -6
- package/dist/modules/credential_policy.d.ts.map +1 -1
- package/dist/modules/credential_policy.js +62 -153
- package/dist/modules/credential_policy.js.map +1 -1
- package/dist/modules/credential_runtime.d.ts +1 -1
- package/dist/modules/credential_runtime.d.ts.map +1 -1
- package/dist/modules/credential_runtime.js +34 -41
- package/dist/modules/credential_runtime.js.map +1 -1
- package/dist/modules/credential_session_cache.d.ts +1 -1
- package/dist/modules/credential_session_cache.d.ts.map +1 -1
- package/dist/modules/credential_session_cache.js +5 -42
- package/dist/modules/credential_session_cache.js.map +1 -1
- package/dist/modules/credit_runtime.d.ts.map +1 -1
- package/dist/modules/credit_runtime.js +126 -162
- package/dist/modules/credit_runtime.js.map +1 -1
- package/dist/modules/crypto/browser_provider.d.ts +1 -1
- package/dist/modules/crypto/browser_provider.d.ts.map +1 -1
- package/dist/modules/crypto/browser_provider.js +7 -11
- package/dist/modules/crypto/browser_provider.js.map +1 -1
- package/dist/modules/crypto/index.d.ts +6 -6
- package/dist/modules/crypto/index.d.ts.map +1 -1
- package/dist/modules/crypto/index.js +12 -30
- package/dist/modules/crypto/index.js.map +1 -1
- package/dist/modules/crypto/node_provider.d.ts +1 -1
- package/dist/modules/crypto/node_provider.d.ts.map +1 -1
- package/dist/modules/crypto/node_provider.js +3 -5
- package/dist/modules/crypto/node_provider.js.map +1 -1
- package/dist/modules/crypto/provider.js +1 -2
- package/dist/modules/crypto/pure_ripemd160.js +1 -3
- package/dist/modules/crypto/pure_ripemd160.js.map +1 -1
- package/dist/modules/crypto/pure_scrypt.js +1 -4
- package/dist/modules/crypto/pure_scrypt.js.map +1 -1
- package/dist/modules/crypto/pure_secp256k1.d.ts +1 -1
- package/dist/modules/crypto/pure_secp256k1.d.ts.map +1 -1
- package/dist/modules/crypto/pure_secp256k1.js +1 -16
- package/dist/modules/crypto/pure_secp256k1.js.map +1 -1
- package/dist/modules/crypto/sync.d.ts.map +1 -1
- package/dist/modules/crypto/sync.js +16 -17
- package/dist/modules/crypto/sync.js.map +1 -1
- package/dist/modules/daemon_node_health.js +14 -16
- package/dist/modules/daemon_node_health.js.map +1 -1
- package/dist/modules/dexbot_class.d.ts +38 -15
- package/dist/modules/dexbot_class.d.ts.map +1 -1
- package/dist/modules/dexbot_class.js +134 -164
- package/dist/modules/dexbot_class.js.map +1 -1
- package/dist/modules/dexbot_cow_runtime.d.ts +46 -28
- package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_cow_runtime.js +127 -52
- package/dist/modules/dexbot_cow_runtime.js.map +1 -1
- package/dist/modules/dexbot_credential_client.d.ts +6 -2
- package/dist/modules/dexbot_credential_client.d.ts.map +1 -1
- package/dist/modules/dexbot_credential_client.js +21 -31
- package/dist/modules/dexbot_credential_client.js.map +1 -1
- package/dist/modules/dexbot_fill_runtime.d.ts +23 -23
- package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_fill_runtime.js +119 -77
- package/dist/modules/dexbot_fill_runtime.js.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.d.ts +52 -38
- package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.js +107 -86
- package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
- package/dist/modules/dexbot_startup_runtime.d.ts +3 -3
- package/dist/modules/dexbot_startup_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_startup_runtime.js +43 -81
- package/dist/modules/dexbot_startup_runtime.js.map +1 -1
- package/dist/modules/dexbot_state_recovery.d.ts +11 -11
- package/dist/modules/dexbot_state_recovery.js +32 -78
- package/dist/modules/dexbot_state_recovery.js.map +1 -1
- package/dist/modules/env.js +3 -7
- package/dist/modules/env.js.map +1 -1
- package/dist/modules/fund_registry.d.ts.map +1 -1
- package/dist/modules/fund_registry.js +12 -24
- package/dist/modules/fund_registry.js.map +1 -1
- package/dist/modules/general_settings.js +10 -16
- package/dist/modules/general_settings.js.map +1 -1
- package/dist/modules/graceful_shutdown.d.ts.map +1 -1
- package/dist/modules/graceful_shutdown.js +12 -19
- package/dist/modules/graceful_shutdown.js.map +1 -1
- package/dist/modules/key_store.d.ts.map +1 -1
- package/dist/modules/key_store.js +27 -65
- package/dist/modules/key_store.js.map +1 -1
- package/dist/modules/launcher/bot_supervisor.d.ts +1 -1
- package/dist/modules/launcher/bot_supervisor.d.ts.map +1 -1
- package/dist/modules/launcher/bot_supervisor.js +89 -118
- package/dist/modules/launcher/bot_supervisor.js.map +1 -1
- package/dist/modules/launcher/child_env.js +1 -5
- package/dist/modules/launcher/child_env.js.map +1 -1
- package/dist/modules/launcher/credential_bootstrap.js +22 -31
- package/dist/modules/launcher/credential_bootstrap.js.map +1 -1
- package/dist/modules/launcher/credential_daemon.js +37 -75
- package/dist/modules/launcher/credential_daemon.js.map +1 -1
- package/dist/modules/launcher/credential_secret.js +2 -37
- package/dist/modules/launcher/credential_secret.js.map +1 -1
- package/dist/modules/launcher/foreign_cred_daemon.d.ts +1 -1
- package/dist/modules/launcher/foreign_cred_daemon.js +26 -32
- package/dist/modules/launcher/foreign_cred_daemon.js.map +1 -1
- package/dist/modules/launcher/headless_password.js +10 -12
- package/dist/modules/launcher/headless_password.js.map +1 -1
- package/dist/modules/launcher/launch_modes.js +3 -9
- package/dist/modules/launcher/launch_modes.js.map +1 -1
- package/dist/modules/launcher/market_adapter_runtime.d.ts +1 -1
- package/dist/modules/launcher/market_adapter_runtime.d.ts.map +1 -1
- package/dist/modules/launcher/market_adapter_runtime.js +25 -35
- package/dist/modules/launcher/market_adapter_runtime.js.map +1 -1
- package/dist/modules/launcher/market_adapter_watchdog.d.ts.map +1 -1
- package/dist/modules/launcher/market_adapter_watchdog.js +42 -45
- package/dist/modules/launcher/market_adapter_watchdog.js.map +1 -1
- package/dist/modules/launcher/monolithic_runtime.d.ts +1 -1
- package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -1
- package/dist/modules/launcher/monolithic_runtime.js +67 -138
- package/dist/modules/launcher/monolithic_runtime.js.map +1 -1
- package/dist/modules/launcher/runtime_entry.d.ts +1 -11
- package/dist/modules/launcher/runtime_entry.d.ts.map +1 -1
- package/dist/modules/launcher/runtime_entry.js +12 -15
- package/dist/modules/launcher/runtime_entry.js.map +1 -1
- package/dist/modules/launcher/status_reporting.d.ts +1 -1
- package/dist/modules/launcher/status_reporting.d.ts.map +1 -1
- package/dist/modules/launcher/status_reporting.js +15 -36
- package/dist/modules/launcher/status_reporting.js.map +1 -1
- package/dist/modules/launcher/supervisor_control.js +5 -10
- package/dist/modules/launcher/supervisor_control.js.map +1 -1
- package/dist/modules/logger.d.ts +1 -1
- package/dist/modules/logger.d.ts.map +1 -1
- package/dist/modules/logger.js +3 -38
- package/dist/modules/logger.js.map +1 -1
- package/dist/modules/market_adapter_whitelist.js +9 -18
- package/dist/modules/market_adapter_whitelist.js.map +1 -1
- package/dist/modules/node_failure_ledger.js +1 -3
- package/dist/modules/node_failure_ledger.js.map +1 -1
- package/dist/modules/node_health_cache.d.ts.map +1 -1
- package/dist/modules/node_health_cache.js +15 -25
- package/dist/modules/node_health_cache.js.map +1 -1
- package/dist/modules/node_manager.d.ts +1 -1
- package/dist/modules/node_manager.d.ts.map +1 -1
- package/dist/modules/node_manager.js +44 -43
- package/dist/modules/node_manager.js.map +1 -1
- package/dist/modules/order/accounting.d.ts.map +1 -1
- package/dist/modules/order/accounting.js +102 -118
- package/dist/modules/order/accounting.js.map +1 -1
- package/dist/modules/order/async_lock.d.ts +28 -16
- package/dist/modules/order/async_lock.d.ts.map +1 -1
- package/dist/modules/order/async_lock.js +73 -32
- package/dist/modules/order/async_lock.js.map +1 -1
- package/dist/modules/order/export.js +34 -75
- package/dist/modules/order/export.js.map +1 -1
- package/dist/modules/order/format.d.ts +1 -3
- package/dist/modules/order/format.d.ts.map +1 -1
- package/dist/modules/order/format.js +4 -24
- package/dist/modules/order/format.js.map +1 -1
- package/dist/modules/order/grid.d.ts +3 -3
- package/dist/modules/order/grid.d.ts.map +1 -1
- package/dist/modules/order/grid.js +206 -262
- package/dist/modules/order/grid.js.map +1 -1
- package/dist/modules/order/grid_reconcile.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile.js +77 -94
- package/dist/modules/order/grid_reconcile.js.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.js +117 -149
- package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
- package/dist/modules/order/index.d.ts.map +1 -1
- package/dist/modules/order/index.js +11 -45
- package/dist/modules/order/index.js.map +1 -1
- package/dist/modules/order/logger.js +28 -69
- package/dist/modules/order/logger.js.map +1 -1
- package/dist/modules/order/logger_state.d.ts.map +1 -1
- package/dist/modules/order/logger_state.js +3 -4
- package/dist/modules/order/logger_state.js.map +1 -1
- package/dist/modules/order/manager.d.ts +10 -0
- package/dist/modules/order/manager.d.ts.map +1 -1
- package/dist/modules/order/manager.js +131 -151
- package/dist/modules/order/manager.js.map +1 -1
- package/dist/modules/order/processed_fill_store.js +2 -7
- package/dist/modules/order/processed_fill_store.js.map +1 -1
- package/dist/modules/order/strategy.js +23 -25
- package/dist/modules/order/strategy.js.map +1 -1
- package/dist/modules/order/sync_engine.d.ts +27 -0
- package/dist/modules/order/sync_engine.d.ts.map +1 -1
- package/dist/modules/order/sync_engine.js +232 -181
- package/dist/modules/order/sync_engine.js.map +1 -1
- package/dist/modules/order/utils/math.d.ts +1 -25
- package/dist/modules/order/utils/math.d.ts.map +1 -1
- package/dist/modules/order/utils/math.js +49 -172
- package/dist/modules/order/utils/math.js.map +1 -1
- package/dist/modules/order/utils/order.d.ts +46 -2
- package/dist/modules/order/utils/order.d.ts.map +1 -1
- package/dist/modules/order/utils/order.js +165 -143
- package/dist/modules/order/utils/order.js.map +1 -1
- package/dist/modules/order/utils/system.d.ts +3 -1
- package/dist/modules/order/utils/system.d.ts.map +1 -1
- package/dist/modules/order/utils/system.js +152 -211
- package/dist/modules/order/utils/system.js.map +1 -1
- package/dist/modules/order/utils/timeout.js +1 -4
- package/dist/modules/order/utils/timeout.js.map +1 -1
- package/dist/modules/order/utils/validate.js +91 -142
- package/dist/modules/order/utils/validate.js.map +1 -1
- package/dist/modules/order/utils/withPoolRef.js +21 -61
- package/dist/modules/order/utils/withPoolRef.js.map +1 -1
- package/dist/modules/order/working_grid.js +6 -9
- package/dist/modules/order/working_grid.js.map +1 -1
- package/dist/modules/path_api.d.ts.map +1 -1
- package/dist/modules/path_api.js +8 -11
- package/dist/modules/path_api.js.map +1 -1
- package/dist/modules/paths.d.ts.map +1 -1
- package/dist/modules/paths.js +61 -67
- package/dist/modules/paths.js.map +1 -1
- package/dist/modules/process_discovery.js +13 -21
- package/dist/modules/process_discovery.js.map +1 -1
- package/dist/modules/runtime.js +7 -11
- package/dist/modules/runtime.js.map +1 -1
- package/dist/modules/runtime_settings.d.ts.map +1 -1
- package/dist/modules/runtime_settings.js +14 -16
- package/dist/modules/runtime_settings.js.map +1 -1
- package/dist/modules/settings_merge.js +1 -3
- package/dist/modules/settings_merge.js.map +1 -1
- package/dist/modules/socket_json_client.js +3 -5
- package/dist/modules/socket_json_client.js.map +1 -1
- package/dist/modules/storage/browser_adapter.js +1 -4
- package/dist/modules/storage/browser_adapter.js.map +1 -1
- package/dist/modules/storage/index.d.ts +3 -2
- package/dist/modules/storage/index.d.ts.map +1 -1
- package/dist/modules/storage/index.js +5 -8
- package/dist/modules/storage/index.js.map +1 -1
- package/dist/modules/storage/node_adapter.d.ts +3 -4
- package/dist/modules/storage/node_adapter.d.ts.map +1 -1
- package/dist/modules/storage/node_adapter.js +12 -16
- package/dist/modules/storage/node_adapter.js.map +1 -1
- package/dist/modules/storage/types.js +1 -2
- package/dist/modules/types.d.ts +0 -6
- package/dist/modules/types.d.ts.map +1 -1
- package/dist/modules/types.js +1 -2
- package/dist/modules/types.js.map +1 -1
- package/dist/modules/utils/base58check.js +8 -15
- package/dist/modules/utils/base58check.js.map +1 -1
- package/dist/modules/utils/build_dir.js +3 -7
- package/dist/modules/utils/build_dir.js.map +1 -1
- package/dist/modules/utils/errors.js +1 -5
- package/dist/modules/utils/errors.js.map +1 -1
- package/dist/modules/utils/math_utils.d.ts +1 -1
- package/dist/modules/utils/math_utils.d.ts.map +1 -1
- package/dist/modules/utils/math_utils.js +2 -7
- package/dist/modules/utils/math_utils.js.map +1 -1
- package/dist/modules/validate_profiles.d.ts.map +1 -1
- package/dist/modules/validate_profiles.js +18 -25
- package/dist/modules/validate_profiles.js.map +1 -1
- package/dist/pm2.d.ts +4 -70
- package/dist/pm2.d.ts.map +1 -1
- package/dist/pm2.js +106 -132
- package/dist/pm2.js.map +1 -1
- package/dist/scripts/analyze-git.js +13 -17
- package/dist/scripts/analyze-git.js.map +1 -1
- package/dist/scripts/analyze-orders.d.ts.map +1 -1
- package/dist/scripts/analyze-orders.js +48 -63
- package/dist/scripts/analyze-orders.js.map +1 -1
- package/dist/scripts/diagnose-kibana-candles.d.ts.map +1 -1
- package/dist/scripts/diagnose-kibana-candles.js +2 -1
- package/dist/scripts/diagnose-kibana-candles.js.map +1 -1
- package/dist/scripts/diagnose-pool-history.d.ts.map +1 -1
- package/dist/scripts/diagnose-pool-history.js +2 -1
- package/dist/scripts/diagnose-pool-history.js.map +1 -1
- package/dist/scripts/divergence-calc.d.ts.map +1 -1
- package/dist/scripts/divergence-calc.js +2 -2
- package/dist/scripts/divergence-calc.js.map +1 -1
- package/dist/scripts/fix-err-message.js +17 -22
- package/dist/scripts/fix-err-message.js.map +1 -1
- package/dist/scripts/generate_lp_chart.d.ts.map +1 -1
- package/dist/scripts/generate_lp_chart.js +7 -15
- package/dist/scripts/generate_lp_chart.js.map +1 -1
- package/dist/scripts/generate_mainnet_corpus_report.d.ts.map +1 -1
- package/dist/scripts/generate_mainnet_corpus_report.js +3 -2
- package/dist/scripts/generate_mainnet_corpus_report.js.map +1 -1
- package/dist/scripts/generate_market_adapter_whitelist.d.ts.map +1 -1
- package/dist/scripts/generate_market_adapter_whitelist.js +18 -24
- package/dist/scripts/generate_market_adapter_whitelist.js.map +1 -1
- package/dist/scripts/native_release_gates.js +15 -19
- package/dist/scripts/native_release_gates.js.map +1 -1
- package/dist/scripts/print_grid.d.ts.map +1 -1
- package/dist/scripts/print_grid.js +2 -2
- package/dist/scripts/print_grid.js.map +1 -1
- package/dist/scripts/run-tests.js +12 -17
- package/dist/scripts/run-tests.js.map +1 -1
- package/dist/scripts/runner.d.ts.map +1 -1
- package/dist/scripts/runner.js +18 -20
- package/dist/scripts/runner.js.map +1 -1
- package/dist/scripts/sync-version.js +2 -2
- package/dist/scripts/sync-version.js.map +1 -1
- package/dist/scripts/test-credit-renewal.d.ts.map +1 -1
- package/dist/scripts/test-credit-renewal.js +4 -3
- package/dist/scripts/test-credit-renewal.js.map +1 -1
- package/dist/scripts/update.js +82 -94
- package/dist/scripts/update.js.map +1 -1
- package/dist/scripts/validate_bots.d.ts.map +1 -1
- package/dist/scripts/validate_bots.js +2 -2
- package/dist/scripts/validate_bots.js.map +1 -1
- package/dist/scripts/verify-browser-bundle.js +12 -17
- package/dist/scripts/verify-browser-bundle.js.map +1 -1
- package/dist/unlock.d.ts +0 -30
- package/dist/unlock.d.ts.map +1 -1
- package/dist/unlock.js +110 -157
- package/dist/unlock.js.map +1 -1
- package/package.json +18 -10
- package/scripts/README.md +1 -1
- package/scripts/create-bot-symlinks.sh +2 -2
- package/scripts/postinstall.js +1 -1
- package/dist/modules/utils/fs_utils.d.ts +0 -18
- package/dist/modules/utils/fs_utils.d.ts.map +0 -1
- package/dist/modules/utils/fs_utils.js +0 -32
- package/dist/modules/utils/fs_utils.js.map +0 -1
- package/dist/scripts/migrate_bot_keys.d.ts +0 -3
- package/dist/scripts/migrate_bot_keys.d.ts.map +0 -1
- package/dist/scripts/migrate_bot_keys.js +0 -225
- package/dist/scripts/migrate_bot_keys.js.map +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* modules/order/grid.ts - Grid Engine
|
|
4
3
|
*
|
|
@@ -94,67 +93,12 @@
|
|
|
94
93
|
*
|
|
95
94
|
* ===============================================================================
|
|
96
95
|
*/
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
Object.defineProperty(o, k2, desc);
|
|
104
|
-
}) : (function(o, m, k, k2) {
|
|
105
|
-
if (k2 === undefined) k2 = k;
|
|
106
|
-
o[k2] = m[k];
|
|
107
|
-
}));
|
|
108
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
109
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
110
|
-
}) : function(o, v) {
|
|
111
|
-
o["default"] = v;
|
|
112
|
-
});
|
|
113
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
114
|
-
var ownKeys = function(o) {
|
|
115
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
116
|
-
var ar = [];
|
|
117
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
118
|
-
return ar;
|
|
119
|
-
};
|
|
120
|
-
return ownKeys(o);
|
|
121
|
-
};
|
|
122
|
-
return function (mod) {
|
|
123
|
-
if (mod && mod.__esModule) return mod;
|
|
124
|
-
var result = {};
|
|
125
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
126
|
-
__setModuleDefault(result, mod);
|
|
127
|
-
return result;
|
|
128
|
-
};
|
|
129
|
-
})();
|
|
130
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
131
|
-
exports.calculateGapSlots = calculateGapSlots;
|
|
132
|
-
exports.isGridBloated = isGridBloated;
|
|
133
|
-
exports.isGridBloatGraceActive = isGridBloatGraceActive;
|
|
134
|
-
exports.clearGridBloatFlag = clearGridBloatFlag;
|
|
135
|
-
exports.getSizingContext = getSizingContext;
|
|
136
|
-
exports._getSizingContext = _getSizingContext;
|
|
137
|
-
exports.createOrderGrid = createOrderGrid;
|
|
138
|
-
exports.loadGrid = loadGrid;
|
|
139
|
-
exports.initializeGrid = initializeGrid;
|
|
140
|
-
exports.recalculateGrid = recalculateGrid;
|
|
141
|
-
exports.checkAndUpdateGridIfNeeded = checkAndUpdateGridIfNeeded;
|
|
142
|
-
exports._recalculateGridOrderSizesFromBlockchain = _recalculateGridOrderSizesFromBlockchain;
|
|
143
|
-
exports.updateGridFromBlockchainSnapshot = updateGridFromBlockchainSnapshot;
|
|
144
|
-
exports.compareGrids = compareGrids;
|
|
145
|
-
exports.monitorDivergence = monitorDivergence;
|
|
146
|
-
exports.calculateCurrentSpread = calculateCurrentSpread;
|
|
147
|
-
exports.checkSpreadCondition = checkSpreadCondition;
|
|
148
|
-
exports.checkGridHealth = checkGridHealth;
|
|
149
|
-
exports.checkWindowDust = checkWindowDust;
|
|
150
|
-
exports.hasAnyDust = hasAnyDust;
|
|
151
|
-
exports.getDustOrders = getDustOrders;
|
|
152
|
-
exports.determineOrderSideByFunds = determineOrderSideByFunds;
|
|
153
|
-
exports.prepareSpreadCorrectionOrders = prepareSpreadCorrectionOrders;
|
|
154
|
-
const constants_1 = require("../constants");
|
|
155
|
-
const { GRID_COMPARISON } = constants_1.GRID_LIMITS;
|
|
156
|
-
const Format = __importStar(require("./format"));
|
|
157
|
-
const asymmetric_bounds_1 = require("../../market_adapter/core/asymmetric_bounds");
|
|
96
|
+
import { createRequire } from 'node:module';
|
|
97
|
+
const require = createRequire(import.meta.url);
|
|
98
|
+
import { ORDER_TYPES, ORDER_STATES, COW_ACTIONS, DEFAULT_CONFIG, GRID_LIMITS, TIMING, PIPELINE_TIMING, MARKET_ADAPTER, INCREMENT_BOUNDS } from '../constants.js';
|
|
99
|
+
const { GRID_COMPARISON } = GRID_LIMITS;
|
|
100
|
+
import * as Format from './format.js';
|
|
101
|
+
import { resolveMaxAsymmetryFactor, applyAsymmetricBounds, } from '../../market_adapter/core/asymmetric_bounds.js';
|
|
158
102
|
// FIX: Extract magic numbers to named constants for maintainability
|
|
159
103
|
const GRID_CONSTANTS = {
|
|
160
104
|
RMS_PERCENTAGE_SCALE: 100, // Convert RMS percentage threshold from percent to decimal
|
|
@@ -167,16 +111,16 @@ function _snapshotFundState(manager) {
|
|
|
167
111
|
sellLocked: Number(manager.accountTotals?.sellLocked || 0),
|
|
168
112
|
};
|
|
169
113
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
function calculateGapSlots(incrementPercent, targetSpreadPercent, gridLimitsOverride) {
|
|
177
|
-
return (
|
|
114
|
+
import { floatToBlockchainInt, getPrecisionByOrderType, getPrecisionsForManager, calculateOrderCreationFees, calculateOrderSizes, calculateRotationOrderSizes, calculateAvailableFundsValue, calculateGridSideDivergenceMetric, getPrecisionSlack, getMinAbsoluteOrderSize, getSingleDustThreshold, getGridBestPrices, calculateSpreadFromOrders, allocateFundsByWeights, calculateGapSlots as _mathGapSlots, findPriceCollision, getBtsSide, getSellStartIdx, resolveGapBand, countGapBandSpread, adjustBudgetForBtsFees, } from './utils/math.js';
|
|
115
|
+
import { filterOrdersByType, checkSizesBeforeMinimum, checkSizeThreshold, resolveConfiguredPriceBound, shouldFlagOutOfSpread, isOrderHealthy, isPhantomOrder, isSlotAvailable, isOrderOnChain, isOrderPlaced, hasOnChainId, isEmptyGridSlot, parseSlotIndex, calculateIdealBoundary, assignGridRoles, resolveOnChainRetypeType } from './utils/order.js';
|
|
116
|
+
import { loadAmaCenterPrice, loadAmaCenterSnapshot, withBlockchainRetry } from './utils/system.js';
|
|
117
|
+
import { derivePriceWithPoolRef } from './utils/withPoolRef.js';
|
|
118
|
+
import { getWhitelistFlags } from '../market_adapter_whitelist.js';
|
|
119
|
+
import { getErrorMessage } from '../utils/errors.js';
|
|
120
|
+
export function calculateGapSlots(incrementPercent, targetSpreadPercent, gridLimitsOverride) {
|
|
121
|
+
return _mathGapSlots(incrementPercent, targetSpreadPercent, gridLimitsOverride ?? GRID_LIMITS);
|
|
178
122
|
}
|
|
179
|
-
function isGridBloated(manager, orders) {
|
|
123
|
+
export function isGridBloated(manager, orders) {
|
|
180
124
|
const gridSize = Array.isArray(orders) ? orders.length : orders.size;
|
|
181
125
|
if (!gridSize || !manager?.config)
|
|
182
126
|
return { bloated: false };
|
|
@@ -186,11 +130,11 @@ function isGridBloated(manager, orders) {
|
|
|
186
130
|
return { bloated: false };
|
|
187
131
|
const targetSpreadPct = config.targetSpreadPercent || incPct * 2;
|
|
188
132
|
const orderList = Array.isArray(orders) ? orders : Array.from(orders.values());
|
|
189
|
-
const numBuyActive = orderList.filter((o) => o.type ===
|
|
190
|
-
(o.state ===
|
|
133
|
+
const numBuyActive = orderList.filter((o) => o.type === ORDER_TYPES.BUY &&
|
|
134
|
+
(o.state === ORDER_STATES.ACTIVE || o.state === ORDER_STATES.PARTIAL) &&
|
|
191
135
|
o.orderId).length;
|
|
192
|
-
const numSellActive = orderList.filter((o) => o.type ===
|
|
193
|
-
(o.state ===
|
|
136
|
+
const numSellActive = orderList.filter((o) => o.type === ORDER_TYPES.SELL &&
|
|
137
|
+
(o.state === ORDER_STATES.ACTIVE || o.state === ORDER_STATES.PARTIAL) &&
|
|
194
138
|
o.orderId).length;
|
|
195
139
|
const placedCount = numBuyActive + numSellActive;
|
|
196
140
|
if (!placedCount)
|
|
@@ -221,7 +165,7 @@ function isGridBloated(manager, orders) {
|
|
|
221
165
|
}
|
|
222
166
|
}
|
|
223
167
|
const railEstimate = Math.max(expectedTotal, placedCount);
|
|
224
|
-
const buffer = (config.gridLimits?.MIN_SPREAD_ORDERS ??
|
|
168
|
+
const buffer = (config.gridLimits?.MIN_SPREAD_ORDERS ?? GRID_LIMITS.MIN_SPREAD_ORDERS);
|
|
225
169
|
const maxAllowed = railEstimate + gapSlots + buffer;
|
|
226
170
|
return {
|
|
227
171
|
bloated: gridSize > maxAllowed,
|
|
@@ -241,8 +185,8 @@ function isGridBloated(manager, orders) {
|
|
|
241
185
|
* @param {Object} manager - OrderManager instance.
|
|
242
186
|
* @returns {{active: boolean, elapsed: number, graceMs: number}}
|
|
243
187
|
*/
|
|
244
|
-
function isGridBloatGraceActive(manager) {
|
|
245
|
-
const graceMs = Number(
|
|
188
|
+
export function isGridBloatGraceActive(manager) {
|
|
189
|
+
const graceMs = Number(TIMING?.GRID_BLOAT_RESYNC_GRACE_MS) || TIMING.GRID_BLOAT_RESYNC_GRACE_MS;
|
|
246
190
|
if (!manager._gridBloatDetectedAt) {
|
|
247
191
|
return { active: false, elapsed: 0, graceMs };
|
|
248
192
|
}
|
|
@@ -254,7 +198,7 @@ function isGridBloatGraceActive(manager) {
|
|
|
254
198
|
* returned to normal. Shared so both call sites use the same key.
|
|
255
199
|
* @param {Object} manager - OrderManager instance.
|
|
256
200
|
*/
|
|
257
|
-
function clearGridBloatFlag(manager) {
|
|
201
|
+
export function clearGridBloatFlag(manager) {
|
|
258
202
|
delete manager._gridBloatDetectedAt;
|
|
259
203
|
}
|
|
260
204
|
/**
|
|
@@ -265,7 +209,7 @@ function clearGridBloatFlag(manager) {
|
|
|
265
209
|
* @param {'buy'|'sell'} side
|
|
266
210
|
* @returns {Promise<import('./types').SizingContext|null>}
|
|
267
211
|
*/
|
|
268
|
-
async function getSizingContext(manager, side) {
|
|
212
|
+
export async function getSizingContext(manager, side) {
|
|
269
213
|
return await _getSizingContext(manager, side);
|
|
270
214
|
}
|
|
271
215
|
/**
|
|
@@ -277,7 +221,7 @@ async function getSizingContext(manager, side) {
|
|
|
277
221
|
* @returns {Promise<import('./types').SizingContext|null>}
|
|
278
222
|
* @private
|
|
279
223
|
*/
|
|
280
|
-
async function _getSizingContext(manager, side, { skipRecalc = false } = {}) {
|
|
224
|
+
export async function _getSizingContext(manager, side, { skipRecalc = false } = {}) {
|
|
281
225
|
if (!manager || !manager.assets)
|
|
282
226
|
return null;
|
|
283
227
|
// 1. Ensure fund state is fresh before sizing
|
|
@@ -286,7 +230,7 @@ async function _getSizingContext(manager, side, { skipRecalc = false } = {}) {
|
|
|
286
230
|
}
|
|
287
231
|
const snap = manager.getChainFundsSnapshot ? manager.getChainFundsSnapshot() : {};
|
|
288
232
|
const isBuy = side === 'buy';
|
|
289
|
-
const type = isBuy ?
|
|
233
|
+
const type = isBuy ? ORDER_TYPES.BUY : ORDER_TYPES.SELL;
|
|
290
234
|
// 2. Determine base budget: Always use ALLOCATED funds (respects botFunds %)
|
|
291
235
|
// This ensures the bot only "thinks" about the capital it is allowed to use.
|
|
292
236
|
let budget = isBuy ? (snap.allocatedBuy || 0) : (snap.allocatedSell || 0);
|
|
@@ -297,15 +241,15 @@ async function _getSizingContext(manager, side, { skipRecalc = false } = {}) {
|
|
|
297
241
|
const targetBuy = Math.max(0, manager.config.activeOrders?.buy ?? 1);
|
|
298
242
|
const targetSell = Math.max(0, manager.config.activeOrders?.sell ?? 1);
|
|
299
243
|
const totalTarget = targetBuy + targetSell;
|
|
300
|
-
const btsOrderType =
|
|
301
|
-
const isBtsSide = isBuy ? (btsOrderType ===
|
|
302
|
-
const formulaBudget =
|
|
303
|
-
budget =
|
|
244
|
+
const btsOrderType = getBtsSide(manager.config?.assetA, manager.config?.assetB);
|
|
245
|
+
const isBtsSide = isBuy ? (btsOrderType === ORDER_TYPES.BUY) : (btsOrderType === ORDER_TYPES.SELL);
|
|
246
|
+
const formulaBudget = calculateOrderCreationFees(manager.config.assetA, manager.config.assetB, totalTarget, manager.config?.feeParams?.BTS_RESERVATION_MULTIPLIER);
|
|
247
|
+
budget = adjustBudgetForBtsFees(budget, isBtsSide, formulaBudget, manager.config.min_BTS_value || 0, Format.toFiniteNumber(manager.funds?.btsBalance?.free, 0), Format.toFiniteNumber(isBuy ? (snap.allocatedBuy || 0) : (snap.allocatedSell || 0)), Format.toFiniteNumber(snap.allocatedBuy || 0)
|
|
304
248
|
+ Format.toFiniteNumber(snap.allocatedSell || 0));
|
|
305
249
|
}
|
|
306
250
|
return {
|
|
307
251
|
budget,
|
|
308
|
-
precision:
|
|
252
|
+
precision: getPrecisionByOrderType(manager.assets, type),
|
|
309
253
|
config: manager.config
|
|
310
254
|
};
|
|
311
255
|
}
|
|
@@ -358,7 +302,7 @@ async function _getSizingContext(manager, side, { skipRecalc = false } = {}) {
|
|
|
358
302
|
* @param {import('./types').GridConfig} config - Grid configuration
|
|
359
303
|
* @returns {import('./types').GridCreationResult}
|
|
360
304
|
*/
|
|
361
|
-
function createOrderGrid(config) {
|
|
305
|
+
export function createOrderGrid(config) {
|
|
362
306
|
const { startPrice, minPrice, maxPrice, incrementPercent } = config;
|
|
363
307
|
// FIX: Add comprehensive input validation to prevent silent grid creation failures
|
|
364
308
|
if (!Number.isFinite(startPrice)) {
|
|
@@ -388,7 +332,7 @@ function createOrderGrid(config) {
|
|
|
388
332
|
// Fall back to the canonical INCREMENT_BOUNDS when the config omits
|
|
389
333
|
// incrementBounds. Without this, a non-positive incrementPercent (e.g. 0)
|
|
390
334
|
// silently passes validation and the geometric loop below spins forever.
|
|
391
|
-
const incrementBounds = config.incrementBounds ||
|
|
335
|
+
const incrementBounds = config.incrementBounds || INCREMENT_BOUNDS;
|
|
392
336
|
const minPercent = incrementBounds.MIN_PERCENT;
|
|
393
337
|
const maxPercent = incrementBounds.MAX_PERCENT;
|
|
394
338
|
if (incrementPercent <= 0 || incrementPercent < minPercent || incrementPercent > maxPercent) {
|
|
@@ -439,7 +383,7 @@ function createOrderGrid(config) {
|
|
|
439
383
|
// Determine the boundary and assign roles (BUY/SPREAD/SELL) to each slot.
|
|
440
384
|
//
|
|
441
385
|
// STRATEGY: Center the spread gap around startPrice
|
|
442
|
-
const boundaryIdx =
|
|
386
|
+
const boundaryIdx = calculateIdealBoundary(priceLevels.map((p) => ({ price: p })), startPrice, gapSlots);
|
|
443
387
|
// ================================================================================
|
|
444
388
|
// STEP 4: CREATE ORDER OBJECTS
|
|
445
389
|
// ================================================================================
|
|
@@ -448,12 +392,12 @@ function createOrderGrid(config) {
|
|
|
448
392
|
id: `slot-${i}`,
|
|
449
393
|
price,
|
|
450
394
|
type: null, // assigned below
|
|
451
|
-
state:
|
|
395
|
+
state: ORDER_STATES.VIRTUAL,
|
|
452
396
|
size: 0
|
|
453
397
|
}));
|
|
454
|
-
const updatedOrders =
|
|
455
|
-
const buyCount = updatedOrders.filter((o) => o.type ===
|
|
456
|
-
const sellCount = updatedOrders.filter((o) => o.type ===
|
|
398
|
+
const updatedOrders = assignGridRoles(orders, boundaryIdx, gapSlots, ORDER_TYPES, ORDER_STATES);
|
|
399
|
+
const buyCount = updatedOrders.filter((o) => o.type === ORDER_TYPES.BUY).length;
|
|
400
|
+
const sellCount = updatedOrders.filter((o) => o.type === ORDER_TYPES.SELL).length;
|
|
457
401
|
if (buyCount === 0 || sellCount === 0) {
|
|
458
402
|
throw new Error(`Grid generation produced an imbalanced rail (buy=${buyCount}, sell=${sellCount}) for ` +
|
|
459
403
|
`startPrice=${startPrice}, bounds=[${minPrice}, ${maxPrice}], incrementPercent=${incrementPercent}, ` +
|
|
@@ -503,15 +447,15 @@ function _clearOrderCachesLogic(manager) {
|
|
|
503
447
|
* @param {number|null} [boundaryIdx=null] - The master boundary index.
|
|
504
448
|
* @returns {Promise<void>}
|
|
505
449
|
*/
|
|
506
|
-
async function loadGrid(manager, grid, boundaryIdx = null) {
|
|
450
|
+
export async function loadGrid(manager, grid, boundaryIdx = null) {
|
|
507
451
|
if (!Array.isArray(grid))
|
|
508
452
|
return;
|
|
509
453
|
return await manager._gridLock.acquire(async () => {
|
|
510
454
|
try {
|
|
511
|
-
await
|
|
455
|
+
await withBlockchainRetry(() => manager._initializeAssets(), 'initializeAssets', { logger: manager.logger });
|
|
512
456
|
}
|
|
513
457
|
catch (e) {
|
|
514
|
-
manager.logger?.log?.(`Asset initialization failed during grid load: ${
|
|
458
|
+
manager.logger?.log?.(`Asset initialization failed during grid load: ${getErrorMessage(e)}`, 'warn');
|
|
515
459
|
}
|
|
516
460
|
// RC-2: Use logic helper
|
|
517
461
|
_clearOrderCachesLogic(manager);
|
|
@@ -540,14 +484,14 @@ async function loadGrid(manager, grid, boundaryIdx = null) {
|
|
|
540
484
|
const gapSlots = calculateGapSlots(manager.config?.incrementPercent, manager.config?.targetSpreadPercent, manager.config?.gridLimits);
|
|
541
485
|
manager._gapSlots = gapSlots;
|
|
542
486
|
const buyEndIdx = boundaryIdx;
|
|
543
|
-
const sellStartIdx =
|
|
487
|
+
const sellStartIdx = getSellStartIdx(boundaryIdx, gapSlots);
|
|
544
488
|
let reassignCount = 0;
|
|
545
489
|
grid = grid.map((slot, i) => {
|
|
546
490
|
const correctType = (i <= buyEndIdx)
|
|
547
|
-
?
|
|
491
|
+
? ORDER_TYPES.BUY
|
|
548
492
|
: (i >= sellStartIdx)
|
|
549
|
-
?
|
|
550
|
-
:
|
|
493
|
+
? ORDER_TYPES.SELL
|
|
494
|
+
: ORDER_TYPES.SPREAD;
|
|
551
495
|
// DEFENSIVE BACKSTOP: a VIRTUAL slot with no orderId and
|
|
552
496
|
// zero size is side-neutral — it is a reusable placeholder
|
|
553
497
|
// that may be activated on either rail. Storing a stale
|
|
@@ -562,10 +506,10 @@ async function loadGrid(manager, grid, boundaryIdx = null) {
|
|
|
562
506
|
// boundary-shift and strategy re-plan paths use
|
|
563
507
|
// assignGridRoles (order.ts) with assignOnChain, where
|
|
564
508
|
// geometry-based typing wins.
|
|
565
|
-
if (
|
|
566
|
-
if (slot.type !==
|
|
509
|
+
if (isEmptyGridSlot(slot, slot, { allowNullType: true })) {
|
|
510
|
+
if (slot.type !== ORDER_TYPES.SPREAD)
|
|
567
511
|
reassignCount++;
|
|
568
|
-
return { ...slot, type:
|
|
512
|
+
return { ...slot, type: ORDER_TYPES.SPREAD };
|
|
569
513
|
}
|
|
570
514
|
if (slot.type !== correctType) {
|
|
571
515
|
let newType = correctType;
|
|
@@ -583,8 +527,8 @@ async function loadGrid(manager, grid, boundaryIdx = null) {
|
|
|
583
527
|
// to a number by initializeGrid), which makes every
|
|
584
528
|
// comparison false and wrongly resolves below-center
|
|
585
529
|
// slots to SELL.
|
|
586
|
-
if (newType ===
|
|
587
|
-
newType =
|
|
530
|
+
if (newType === ORDER_TYPES.SPREAD && isOrderOnChain(slot)) {
|
|
531
|
+
newType = resolveOnChainRetypeType(slot, i, buyEndIdx, ORDER_TYPES);
|
|
588
532
|
}
|
|
589
533
|
reassignCount++;
|
|
590
534
|
return { ...slot, type: newType };
|
|
@@ -612,7 +556,7 @@ async function loadGrid(manager, grid, boundaryIdx = null) {
|
|
|
612
556
|
manager._gridBloatDetectedAt = Date.now();
|
|
613
557
|
if (typeof manager.requestStructuralGridResync === 'function') {
|
|
614
558
|
manager.requestStructuralGridResync('grid-bloat-detected', { reason: `Grid size ${d.gridSize} exceeds maximum ${d.maxAllowed}` }).catch((err) => {
|
|
615
|
-
manager.logger?.log?.(`[GRID-BLOAT] Structural resync request failed: ${
|
|
559
|
+
manager.logger?.log?.(`[GRID-BLOAT] Structural resync request failed: ${getErrorMessage(err)}`, 'error');
|
|
616
560
|
});
|
|
617
561
|
}
|
|
618
562
|
}
|
|
@@ -623,9 +567,9 @@ async function loadGrid(manager, grid, boundaryIdx = null) {
|
|
|
623
567
|
// RC-2: Use applyOrderUpdate (PRIVATE/UNLOCKED)
|
|
624
568
|
for (const order of grid) {
|
|
625
569
|
let currentOrder = order;
|
|
626
|
-
if (
|
|
570
|
+
if (isPhantomOrder(order)) {
|
|
627
571
|
manager.logger?.log?.(`Sanitizing corrupted order ${order.id}: ACTIVE/PARTIAL without orderId -> VIRTUAL`, 'warn');
|
|
628
|
-
currentOrder = { ...order, state:
|
|
572
|
+
currentOrder = { ...order, state: ORDER_STATES.VIRTUAL };
|
|
629
573
|
}
|
|
630
574
|
await manager._applyOrderUpdate(currentOrder, 'grid-load', { skipAccounting: true });
|
|
631
575
|
}
|
|
@@ -638,8 +582,8 @@ async function loadGrid(manager, grid, boundaryIdx = null) {
|
|
|
638
582
|
// at creation) so the count is order-independent, matching the
|
|
639
583
|
// accountant (accounting.ts). Fall back to array position only
|
|
640
584
|
// for ids that are not grid slot ids.
|
|
641
|
-
const spreadCount =
|
|
642
|
-
const idx =
|
|
585
|
+
const spreadCount = countGapBandSpread(manager, grid, (o, i) => {
|
|
586
|
+
const idx = parseSlotIndex(o?.id);
|
|
643
587
|
return idx === null ? i : idx;
|
|
644
588
|
});
|
|
645
589
|
manager.initialSpreadCount = spreadCount;
|
|
@@ -659,7 +603,7 @@ function resolveMinScaleSlots(primary, secondary) {
|
|
|
659
603
|
const s = Number(secondary);
|
|
660
604
|
if (Number.isFinite(s))
|
|
661
605
|
return Math.max(0, Math.floor(s));
|
|
662
|
-
return
|
|
606
|
+
return MARKET_ADAPTER.ASYMMETRIC_BOUNDS_MIN_SCALE_SLOTS;
|
|
663
607
|
}
|
|
664
608
|
/**
|
|
665
609
|
* Initialize and orchestrate the order grid.
|
|
@@ -667,14 +611,14 @@ function resolveMinScaleSlots(primary, secondary) {
|
|
|
667
611
|
* @return {Promise<void>}
|
|
668
612
|
* @throws {Error} If initialization fails or account totals are missing.
|
|
669
613
|
*/
|
|
670
|
-
async function initializeGrid(manager) {
|
|
614
|
+
export async function initializeGrid(manager) {
|
|
671
615
|
if (!manager)
|
|
672
616
|
throw new Error('initializeGrid requires a manager instance');
|
|
673
617
|
try {
|
|
674
|
-
await
|
|
618
|
+
await withBlockchainRetry(() => manager._initializeAssets(), 'initializeAssets', { logger: manager.logger });
|
|
675
619
|
}
|
|
676
620
|
catch (e) {
|
|
677
|
-
manager.logger?.log?.(`Asset initialization failed during grid init: ${
|
|
621
|
+
manager.logger?.log?.(`Asset initialization failed during grid init: ${getErrorMessage(e)}`, 'warn');
|
|
678
622
|
}
|
|
679
623
|
// FIX: Add explicit state validation to prevent cryptic errors later
|
|
680
624
|
if (!manager.assets || !manager.assets.assetA || !manager.assets.assetB) {
|
|
@@ -689,7 +633,7 @@ async function initializeGrid(manager) {
|
|
|
689
633
|
if (typeof mpRaw !== 'number' || isNaN(mpRaw)) {
|
|
690
634
|
try {
|
|
691
635
|
const { BitShares } = require('../bitshares_client');
|
|
692
|
-
const derived = await
|
|
636
|
+
const derived = await derivePriceWithPoolRef(BitShares, manager.config.assetA, manager.config.assetB, manager.config.priceMode || 'auto', manager.config.poolRef);
|
|
693
637
|
if (derived) {
|
|
694
638
|
manager.logger?.log?.(`[DIAGNOSTIC] initializeGrid: Derived new startPrice=${derived.toFixed(8)} (mode=${manager.config.priceMode || 'auto'})`, 'info');
|
|
695
639
|
manager.config.startPrice = Number(derived);
|
|
@@ -699,7 +643,7 @@ async function initializeGrid(manager) {
|
|
|
699
643
|
}
|
|
700
644
|
}
|
|
701
645
|
catch (err) {
|
|
702
|
-
manager.logger?.log?.(`Failed to derive market price: ${
|
|
646
|
+
manager.logger?.log?.(`Failed to derive market price: ${getErrorMessage(err)}`, 'warn');
|
|
703
647
|
throw err; // Re-throw to prevent "pool" string reaching numeric math
|
|
704
648
|
}
|
|
705
649
|
}
|
|
@@ -715,7 +659,7 @@ async function initializeGrid(manager) {
|
|
|
715
659
|
let gp = mp;
|
|
716
660
|
let gpSource = 'startPrice';
|
|
717
661
|
let amaSnapshot = null;
|
|
718
|
-
const whitelistFlags =
|
|
662
|
+
const whitelistFlags = getWhitelistFlags(manager.config.botKey);
|
|
719
663
|
const isGridRangeScalingWhitelisted = whitelistFlags.asymmetricBounds === true;
|
|
720
664
|
let gridPriceOffsetPct = 0;
|
|
721
665
|
const gpRaw = manager.config.gridPrice;
|
|
@@ -728,7 +672,7 @@ async function initializeGrid(manager) {
|
|
|
728
672
|
else if (gpMode === 'pool' || gpMode === 'book') {
|
|
729
673
|
try {
|
|
730
674
|
const { BitShares } = require('../bitshares_client');
|
|
731
|
-
const derived = await
|
|
675
|
+
const derived = await derivePriceWithPoolRef(BitShares, manager.config.assetA, manager.config.assetB, gpMode, manager.config.poolRef);
|
|
732
676
|
if (derived) {
|
|
733
677
|
gp = Number(derived);
|
|
734
678
|
gpSource = gpMode;
|
|
@@ -739,12 +683,12 @@ async function initializeGrid(manager) {
|
|
|
739
683
|
}
|
|
740
684
|
}
|
|
741
685
|
catch (err) {
|
|
742
|
-
manager.logger?.log?.(`initializeGrid: ${gpMode} gridPrice derivation failed: ${
|
|
686
|
+
manager.logger?.log?.(`initializeGrid: ${gpMode} gridPrice derivation failed: ${getErrorMessage(err)}`, 'warn');
|
|
743
687
|
}
|
|
744
688
|
}
|
|
745
689
|
else if (/^ama(?:[1-4])?$/.test(gpMode || '')) {
|
|
746
|
-
amaSnapshot =
|
|
747
|
-
const amaCenter = amaSnapshot?.gridCenterPrice ??
|
|
690
|
+
amaSnapshot = loadAmaCenterSnapshot(manager.config.botKey);
|
|
691
|
+
const amaCenter = amaSnapshot?.gridCenterPrice ?? loadAmaCenterPrice(manager.config.botKey);
|
|
748
692
|
if (Number.isFinite(amaCenter) && amaCenter > 0) {
|
|
749
693
|
gp = amaCenter;
|
|
750
694
|
gpSource = 'ama';
|
|
@@ -759,8 +703,8 @@ async function initializeGrid(manager) {
|
|
|
759
703
|
manager.logger?.log?.(`initializeGrid: AMA center unavailable for gridPrice, falling back to startPrice`, 'warn');
|
|
760
704
|
}
|
|
761
705
|
}
|
|
762
|
-
const minP =
|
|
763
|
-
const maxP =
|
|
706
|
+
const minP = resolveConfiguredPriceBound(manager.config.minPrice, DEFAULT_CONFIG.minPrice, gp, 'min');
|
|
707
|
+
const maxP = resolveConfiguredPriceBound(manager.config.maxPrice, DEFAULT_CONFIG.maxPrice, gp, 'max');
|
|
764
708
|
// Asymmetric bound adjustment: widen the bound in the AMA trend direction
|
|
765
709
|
// and tighten the opposite side, giving the grid more room when the center
|
|
766
710
|
// trails price. Uses slope data from the dynamicgrid.json snapshot.
|
|
@@ -779,8 +723,8 @@ async function initializeGrid(manager) {
|
|
|
779
723
|
? amaSnapshot.asymmetricBounds
|
|
780
724
|
: null;
|
|
781
725
|
if (dw) {
|
|
782
|
-
const maxAsymmetryFactor =
|
|
783
|
-
const adjustment =
|
|
726
|
+
const maxAsymmetryFactor = resolveMaxAsymmetryFactor(manager.config.asymmetricBounds?.maxAsymmetryFactor, dw?.maxAsymmetryFactor, MARKET_ADAPTER.ASYMMETRIC_BOUNDS_MAX_ASYMMETRY_FACTOR);
|
|
727
|
+
const adjustment = applyAsymmetricBounds({
|
|
784
728
|
centerPrice: gp,
|
|
785
729
|
minPrice: minP,
|
|
786
730
|
maxPrice: maxP,
|
|
@@ -889,14 +833,14 @@ async function initializeGrid(manager) {
|
|
|
889
833
|
// Ensure percentage-based funds are resolved before sizing
|
|
890
834
|
try {
|
|
891
835
|
if (manager.accountId && !manager.accountTotals) {
|
|
892
|
-
await manager.waitForAccountTotals(
|
|
836
|
+
await manager.waitForAccountTotals(TIMING.ACCOUNT_TOTALS_TIMEOUT_MS);
|
|
893
837
|
}
|
|
894
838
|
}
|
|
895
839
|
catch (e) {
|
|
896
|
-
manager.logger?.log?.(`Failed to load account totals: ${
|
|
840
|
+
manager.logger?.log?.(`Failed to load account totals: ${getErrorMessage(e)}`, 'warn');
|
|
897
841
|
// FIX: Add error handling - cannot proceed with grid initialization without account totals
|
|
898
842
|
// Continuing would create grid with 0 fund allocation, rendering it non-functional
|
|
899
|
-
throw new Error(`Cannot initialize grid without account totals: ${
|
|
843
|
+
throw new Error(`Cannot initialize grid without account totals: ${getErrorMessage(e)}`);
|
|
900
844
|
}
|
|
901
845
|
const { orders, boundaryIdx, initialSpreadCount, gapSlots } = createOrderGrid({
|
|
902
846
|
...manager.config,
|
|
@@ -915,13 +859,13 @@ async function initializeGrid(manager) {
|
|
|
915
859
|
manager.notifyBoundaryUpdate(boundaryIdx);
|
|
916
860
|
}
|
|
917
861
|
catch (err) {
|
|
918
|
-
manager.logger?.log?.(`Error notifying boundary update: ${
|
|
862
|
+
manager.logger?.log?.(`Error notifying boundary update: ${getErrorMessage(err)}`, 'warn');
|
|
919
863
|
}
|
|
920
864
|
}
|
|
921
865
|
}
|
|
922
|
-
const minSellSize =
|
|
923
|
-
const minBuySize =
|
|
924
|
-
const { A: precA, B: precB } =
|
|
866
|
+
const minSellSize = getMinAbsoluteOrderSize(ORDER_TYPES.SELL, manager.assets);
|
|
867
|
+
const minBuySize = getMinAbsoluteOrderSize(ORDER_TYPES.BUY, manager.assets);
|
|
868
|
+
const { A: precA, B: precB } = getPrecisionsForManager(manager.assets);
|
|
925
869
|
// Use centralized sizing context for both sides.
|
|
926
870
|
// Resolve funds once upfront so both contexts share the same snapshot,
|
|
927
871
|
// avoiding a redundant recalculateFunds inside the second _getSizingContext call.
|
|
@@ -930,17 +874,17 @@ async function initializeGrid(manager) {
|
|
|
930
874
|
const buyCtx = await _getSizingContext(manager, 'buy', { skipRecalc: true });
|
|
931
875
|
if (!sellCtx || !buyCtx)
|
|
932
876
|
throw new Error('Failed to retrieve sizing context for grid initialization');
|
|
933
|
-
let sizedOrders =
|
|
877
|
+
let sizedOrders = calculateOrderSizes(orders, manager.config, sellCtx.budget, buyCtx.budget, minSellSize, minBuySize, precA, precB);
|
|
934
878
|
// Verification of sizes
|
|
935
|
-
const sells =
|
|
936
|
-
const buys =
|
|
937
|
-
if (
|
|
879
|
+
const sells = filterOrdersByType(sizedOrders, ORDER_TYPES.SELL).map((o) => Number(o.size || 0));
|
|
880
|
+
const buys = filterOrdersByType(sizedOrders, ORDER_TYPES.BUY).map((o) => Number(o.size || 0));
|
|
881
|
+
if (checkSizesBeforeMinimum(sells, minSellSize, precA) || checkSizesBeforeMinimum(buys, minBuySize, precB)) {
|
|
938
882
|
throw new Error('Calculated orders fall below minimum allowable size.');
|
|
939
883
|
}
|
|
940
884
|
// Check for warning if orders are near minimal size (regression fix)
|
|
941
|
-
const warningSellSize = minSellSize > 0 ?
|
|
942
|
-
const warningBuySize = minBuySize > 0 ?
|
|
943
|
-
if (
|
|
885
|
+
const warningSellSize = minSellSize > 0 ? getMinAbsoluteOrderSize(ORDER_TYPES.SELL, manager.assets, 100) : 0;
|
|
886
|
+
const warningBuySize = minBuySize > 0 ? getMinAbsoluteOrderSize(ORDER_TYPES.BUY, manager.assets, 100) : 0;
|
|
887
|
+
if (checkSizeThreshold(sells, warningSellSize, precA, false) || checkSizeThreshold(buys, warningBuySize, precB, false)) {
|
|
944
888
|
manager.logger?.log?.("WARNING: Order grid contains orders near minimum size. To ensure the bot runs properly, consider increasing the funds of your bot.", "warn");
|
|
945
889
|
}
|
|
946
890
|
// RC-2: Wrap atomic changes in grid lock
|
|
@@ -985,13 +929,13 @@ async function initializeGrid(manager) {
|
|
|
985
929
|
* @param {string} opts.privateKey - Private key.
|
|
986
930
|
* @returns {Promise<void>}
|
|
987
931
|
*/
|
|
988
|
-
async function recalculateGrid(manager, opts) {
|
|
932
|
+
export async function recalculateGrid(manager, opts) {
|
|
989
933
|
const { readOpenOrdersFn, chainOrders, account, privateKey } = opts;
|
|
990
934
|
// Suppress invariant warnings during full resync
|
|
991
935
|
manager.startBootstrap();
|
|
992
936
|
// Total timeout across all steps — prevents indefinite hang even if
|
|
993
937
|
// an individual withBlockchainRetry step pins the event loop.
|
|
994
|
-
const totalTimeoutMs =
|
|
938
|
+
const totalTimeoutMs = PIPELINE_TIMING.TIMEOUT_MS * 2; // 10 min
|
|
995
939
|
let _resyncAborted = false;
|
|
996
940
|
const work = (async () => {
|
|
997
941
|
try {
|
|
@@ -1000,24 +944,24 @@ async function recalculateGrid(manager, opts) {
|
|
|
1000
944
|
return;
|
|
1001
945
|
// #1: Initialize assets with timeout + retry + node failover
|
|
1002
946
|
try {
|
|
1003
|
-
await
|
|
947
|
+
await withBlockchainRetry(() => manager._initializeAssets(), 'initializeAssets', { logger: manager.logger });
|
|
1004
948
|
}
|
|
1005
949
|
catch (e) {
|
|
1006
|
-
manager.logger?.log?.(`Asset initialization failed during resync: ${
|
|
950
|
+
manager.logger?.log?.(`Asset initialization failed during resync: ${getErrorMessage(e)}`, 'warn');
|
|
1007
951
|
}
|
|
1008
952
|
if (_resyncAborted)
|
|
1009
953
|
return;
|
|
1010
954
|
// #2: Fetch account totals with timeout + retry + node failover
|
|
1011
|
-
await
|
|
955
|
+
await withBlockchainRetry(() => manager.fetchAccountTotals(), 'fetchAccountTotals', { logger: manager.logger });
|
|
1012
956
|
if (_resyncAborted)
|
|
1013
957
|
return;
|
|
1014
958
|
// #3: Read open orders with timeout + retry + node failover
|
|
1015
|
-
const chainOpenOrders = await
|
|
959
|
+
const chainOpenOrders = await withBlockchainRetry(() => readOpenOrdersFn(), 'readOpenOrders', { logger: manager.logger });
|
|
1016
960
|
if (_resyncAborted)
|
|
1017
961
|
return;
|
|
1018
962
|
if (!Array.isArray(chainOpenOrders))
|
|
1019
963
|
return;
|
|
1020
|
-
await
|
|
964
|
+
await withBlockchainRetry(() => manager.syncFromOpenOrders(chainOpenOrders, { skipAccounting: true }), 'syncFromOpenOrders', { logger: manager.logger });
|
|
1021
965
|
if (_resyncAborted)
|
|
1022
966
|
return;
|
|
1023
967
|
// resetFunds under _fundLock + snapshot; persistGrid outside lock to
|
|
@@ -1057,8 +1001,8 @@ async function recalculateGrid(manager, opts) {
|
|
|
1057
1001
|
await reconcileGridOrders({ manager, config: manager.config, account, privateKey, chainOrders, chainOpenOrders });
|
|
1058
1002
|
}
|
|
1059
1003
|
catch (err) {
|
|
1060
|
-
manager.logger?.log?.(`Error during startup order reconciliation: ${
|
|
1061
|
-
throw new Error(`Grid recalculation failed during order reconciliation: ${
|
|
1004
|
+
manager.logger?.log?.(`Error during startup order reconciliation: ${getErrorMessage(err)}`, 'error');
|
|
1005
|
+
throw new Error(`Grid recalculation failed during order reconciliation: ${getErrorMessage(err)}`);
|
|
1062
1006
|
}
|
|
1063
1007
|
if (_resyncAborted)
|
|
1064
1008
|
return;
|
|
@@ -1089,20 +1033,20 @@ async function recalculateGrid(manager, opts) {
|
|
|
1089
1033
|
* @param {import('./types').OrderManager} manager - Manager instance with order state
|
|
1090
1034
|
* @returns {import('./types').SideUpdateFlags}
|
|
1091
1035
|
*/
|
|
1092
|
-
function checkAndUpdateGridIfNeeded(manager) {
|
|
1036
|
+
export function checkAndUpdateGridIfNeeded(manager) {
|
|
1093
1037
|
const threshold = manager.config?.gridLimits?.GRID_REGENERATION_PERCENTAGE;
|
|
1094
1038
|
const chainSnap = manager.getChainFundsSnapshot();
|
|
1095
1039
|
const gridBuy = Number(manager.funds?.total?.grid?.buy || 0);
|
|
1096
1040
|
const gridSell = Number(manager.funds?.total?.grid?.sell || 0);
|
|
1097
1041
|
const result = { buyUpdated: false, sellUpdated: false };
|
|
1098
1042
|
const sides = [
|
|
1099
|
-
{ name: 'buy', grid: gridBuy, orderType:
|
|
1100
|
-
{ name: 'sell', grid: gridSell, orderType:
|
|
1043
|
+
{ name: 'buy', grid: gridBuy, orderType: ORDER_TYPES.BUY },
|
|
1044
|
+
{ name: 'sell', grid: gridSell, orderType: ORDER_TYPES.SELL }
|
|
1101
1045
|
];
|
|
1102
1046
|
for (const s of sides) {
|
|
1103
1047
|
if (s.grid <= 0)
|
|
1104
1048
|
continue;
|
|
1105
|
-
const availableFunds =
|
|
1049
|
+
const availableFunds = calculateAvailableFundsValue(s.name, manager.accountTotals, manager.funds, manager.config.assetA, manager.config.assetB, manager.config.activeOrders, manager.config.min_BTS_value, manager.config.feeParams ?? null);
|
|
1106
1050
|
// Denominator: side's allocated capital (or chain total fallback).
|
|
1107
1051
|
const allocated = s.name === 'buy' ? chainSnap.allocatedBuy : chainSnap.allocatedSell;
|
|
1108
1052
|
const denominator = (allocated > 0) ? allocated : (s.grid + availableFunds);
|
|
@@ -1172,16 +1116,16 @@ function checkAndUpdateGridIfNeeded(manager) {
|
|
|
1172
1116
|
* @param {import('./types').OrderManager} manager - OrderManager instance
|
|
1173
1117
|
* @param {string} orderType - ORDER_TYPES.BUY or ORDER_TYPES.SELL
|
|
1174
1118
|
* @param {Object} [options] - Options object
|
|
1175
|
-
* @param {import('./working_grid')} [options.workingGrid] - Working grid for COW pattern
|
|
1119
|
+
* @param {import('./working_grid.js')} [options.workingGrid] - Working grid for COW pattern
|
|
1176
1120
|
* @returns {Promise<{actions: Array, changed: boolean}|undefined>} - COW result or undefined
|
|
1177
1121
|
* @private
|
|
1178
1122
|
*/
|
|
1179
|
-
async function _recalculateGridOrderSizesFromBlockchain(manager, orderType, options = {}) {
|
|
1123
|
+
export async function _recalculateGridOrderSizesFromBlockchain(manager, orderType, options = {}) {
|
|
1180
1124
|
if (!manager.assets)
|
|
1181
1125
|
return options?.workingGrid ? { actions: [], changed: false } : undefined;
|
|
1182
1126
|
const workingGrid = options?.workingGrid || null;
|
|
1183
1127
|
const collectActions = !!workingGrid;
|
|
1184
|
-
const isBuy = orderType ===
|
|
1128
|
+
const isBuy = orderType === ORDER_TYPES.BUY;
|
|
1185
1129
|
const sideName = isBuy ? 'buy' : 'sell';
|
|
1186
1130
|
// Use centralized sizing context (respects botFunds % allocation)
|
|
1187
1131
|
const ctx = await _getSizingContext(manager, sideName);
|
|
@@ -1217,7 +1161,7 @@ async function _recalculateGridOrderSizesFromBlockchain(manager, orderType, opti
|
|
|
1217
1161
|
if (allSideSlots.length === 0)
|
|
1218
1162
|
return collectActions ? { actions: [], changed: false } : undefined;
|
|
1219
1163
|
// Calculate geometric sizes for the ENTIRE rail
|
|
1220
|
-
const newSizes =
|
|
1164
|
+
const newSizes = calculateRotationOrderSizes(ctx.budget, 0, allSideSlots.length, orderType, manager.config, 0, ctx.precision);
|
|
1221
1165
|
const actions = [];
|
|
1222
1166
|
let changed = false;
|
|
1223
1167
|
const freeKey = isBuy ? 'buyFree' : 'sellFree';
|
|
@@ -1236,7 +1180,7 @@ async function _recalculateGridOrderSizesFromBlockchain(manager, orderType, opti
|
|
|
1236
1180
|
// NOTE: BTS update fees are paid from BTS balance (separate from asset balance),
|
|
1237
1181
|
// so they don't affect this asset-side size cap. Fee budgets are tracked in
|
|
1238
1182
|
// funds.btsFeesOwed and reserved separately via btsFeesReservation.
|
|
1239
|
-
const isCommitted =
|
|
1183
|
+
const isCommitted = isOrderOnChain(slot);
|
|
1240
1184
|
if (isCommitted) {
|
|
1241
1185
|
const currentSize = Number(slot.size || 0);
|
|
1242
1186
|
const delta = newSize - currentSize;
|
|
@@ -1256,8 +1200,8 @@ async function _recalculateGridOrderSizesFromBlockchain(manager, orderType, opti
|
|
|
1256
1200
|
}
|
|
1257
1201
|
}
|
|
1258
1202
|
// Use integer comparison to avoid redundant updates from float noise
|
|
1259
|
-
const currentSizeInt =
|
|
1260
|
-
const newSizeInt =
|
|
1203
|
+
const currentSizeInt = floatToBlockchainInt(slot.size || 0, ctx.precision);
|
|
1204
|
+
const newSizeInt = floatToBlockchainInt(newSize, ctx.precision);
|
|
1261
1205
|
if (slot.size === undefined || currentSizeInt !== newSizeInt) {
|
|
1262
1206
|
changed = true;
|
|
1263
1207
|
if (collectActions) {
|
|
@@ -1265,9 +1209,9 @@ async function _recalculateGridOrderSizesFromBlockchain(manager, orderType, opti
|
|
|
1265
1209
|
...slot,
|
|
1266
1210
|
size: newSize
|
|
1267
1211
|
});
|
|
1268
|
-
if (isCommitted &&
|
|
1212
|
+
if (isCommitted && hasOnChainId(slot)) {
|
|
1269
1213
|
actions.push({
|
|
1270
|
-
type:
|
|
1214
|
+
type: COW_ACTIONS.UPDATE,
|
|
1271
1215
|
id: slot.id,
|
|
1272
1216
|
orderId: slot.orderId,
|
|
1273
1217
|
newGridId: slot.id,
|
|
@@ -1313,9 +1257,9 @@ async function _recalculateGridOrderSizesFromBlockchain(manager, orderType, opti
|
|
|
1313
1257
|
* @param {string} orderType - 'buy', 'sell', or 'both' - which sides to update
|
|
1314
1258
|
* @param {boolean} [fromBlockchainTimer=false] - If true, skip refetch of account totals (already current)
|
|
1315
1259
|
* @param {number|null} [overrideBoundaryIdx=null] - Optional override for boundary index
|
|
1316
|
-
* @returns {Promise<{actions: Array, workingGrid: import('./working_grid'), workingIndexes: Object, workingBoundary: number, hasWorkingChanges: boolean, aborted: boolean}|null>}
|
|
1260
|
+
* @returns {Promise<{actions: Array, workingGrid: import('./working_grid.js'), workingIndexes: Object, workingBoundary: number, hasWorkingChanges: boolean, aborted: boolean}|null>}
|
|
1317
1261
|
*/
|
|
1318
|
-
async function updateGridFromBlockchainSnapshot(manager, orderType = 'both', fromBlockchainTimer = false, overrideBoundaryIdx = null) {
|
|
1262
|
+
export async function updateGridFromBlockchainSnapshot(manager, orderType = 'both', fromBlockchainTimer = false, overrideBoundaryIdx = null) {
|
|
1319
1263
|
if (!fromBlockchainTimer && manager.config?.accountId) {
|
|
1320
1264
|
await manager.fetchAccountTotals(manager.config.accountId);
|
|
1321
1265
|
}
|
|
@@ -1341,7 +1285,7 @@ async function updateGridFromBlockchainSnapshot(manager, orderType = 'both', fro
|
|
|
1341
1285
|
const allSlots = Array.from(workingGrid.values())
|
|
1342
1286
|
.filter((s) => s.price != null)
|
|
1343
1287
|
.sort((a, b) => a.price - b.price);
|
|
1344
|
-
const updatedSlots =
|
|
1288
|
+
const updatedSlots = assignGridRoles(allSlots, newBoundary, gapSlots, ORDER_TYPES, ORDER_STATES, { assignOnChain: true });
|
|
1345
1289
|
for (const slot of updatedSlots) {
|
|
1346
1290
|
workingGrid.set(slot.id, slot);
|
|
1347
1291
|
}
|
|
@@ -1350,13 +1294,13 @@ async function updateGridFromBlockchainSnapshot(manager, orderType = 'both', fro
|
|
|
1350
1294
|
// Calculate size updates for each side (via existing sizing function in COW mode).
|
|
1351
1295
|
// _recalculateGridOrderSizesFromBlockchain reads types from the working grid when
|
|
1352
1296
|
// one is passed, so boundary-crossing slots are now correctly classified.
|
|
1353
|
-
if (orderType ===
|
|
1354
|
-
const buyResult = await _recalculateGridOrderSizesFromBlockchain(manager,
|
|
1297
|
+
if (orderType === ORDER_TYPES.BUY || orderType === 'both') {
|
|
1298
|
+
const buyResult = await _recalculateGridOrderSizesFromBlockchain(manager, ORDER_TYPES.BUY, { workingGrid });
|
|
1355
1299
|
allActions.push(...buyResult.actions);
|
|
1356
1300
|
hasWorkingChanges = hasWorkingChanges || buyResult.changed;
|
|
1357
1301
|
}
|
|
1358
|
-
if (orderType ===
|
|
1359
|
-
const sellResult = await _recalculateGridOrderSizesFromBlockchain(manager,
|
|
1302
|
+
if (orderType === ORDER_TYPES.SELL || orderType === 'both') {
|
|
1303
|
+
const sellResult = await _recalculateGridOrderSizesFromBlockchain(manager, ORDER_TYPES.SELL, { workingGrid });
|
|
1360
1304
|
allActions.push(...sellResult.actions);
|
|
1361
1305
|
hasWorkingChanges = hasWorkingChanges || sellResult.changed;
|
|
1362
1306
|
}
|
|
@@ -1402,7 +1346,7 @@ async function updateGridFromBlockchainSnapshot(manager, orderType = 'both', fro
|
|
|
1402
1346
|
* @param {import('./types').OrderManager|null} [manager=null] - Manager instance (for grid lock access)
|
|
1403
1347
|
* @returns {Promise<import('./types').GridComparisonResult>}
|
|
1404
1348
|
*/
|
|
1405
|
-
async function compareGrids(calculatedGrid, persistedGrid, manager = null) {
|
|
1349
|
+
export async function compareGrids(calculatedGrid, persistedGrid, manager = null) {
|
|
1406
1350
|
if (!Array.isArray(calculatedGrid) || !Array.isArray(persistedGrid)) {
|
|
1407
1351
|
return { buy: { metric: 0, updated: false }, sell: { metric: 0, updated: false } };
|
|
1408
1352
|
}
|
|
@@ -1425,14 +1369,14 @@ async function compareGrids(calculatedGrid, persistedGrid, manager = null) {
|
|
|
1425
1369
|
// they are instead handled by the available-funds ratio check or follow-up correction.
|
|
1426
1370
|
// Must be sorted ASC for calculateRotationOrderSizes to match geometric weight distribution
|
|
1427
1371
|
const filterForRms = (orders, type) => {
|
|
1428
|
-
const result = Array.isArray(orders) ? orders.filter((o) => o && o.type === type && o.state ===
|
|
1372
|
+
const result = Array.isArray(orders) ? orders.filter((o) => o && o.type === type && o.state === ORDER_STATES.ACTIVE) : [];
|
|
1429
1373
|
return result
|
|
1430
1374
|
.sort((a, b) => (a.price ?? 0) - (b.price ?? 0));
|
|
1431
1375
|
};
|
|
1432
|
-
const calculatedBuys = filterForRms(calculatedSnap,
|
|
1433
|
-
const calculatedSells = filterForRms(calculatedSnap,
|
|
1434
|
-
const persistedBuys = filterForRms(persistedSnap,
|
|
1435
|
-
const persistedSells = filterForRms(persistedSnap,
|
|
1376
|
+
const calculatedBuys = filterForRms(calculatedSnap, ORDER_TYPES.BUY);
|
|
1377
|
+
const calculatedSells = filterForRms(calculatedSnap, ORDER_TYPES.SELL);
|
|
1378
|
+
const persistedBuys = filterForRms(persistedSnap, ORDER_TYPES.BUY);
|
|
1379
|
+
const persistedSells = filterForRms(persistedSnap, ORDER_TYPES.SELL);
|
|
1436
1380
|
// Calculate ideal sizes for each order based on current available budget.
|
|
1437
1381
|
// The sizing context (which includes recalculateFunds) is resolved once per side up front
|
|
1438
1382
|
// so both buy and sell metrics share a single fund snapshot. This avoids the previous
|
|
@@ -1455,7 +1399,7 @@ async function compareGrids(calculatedGrid, persistedGrid, manager = null) {
|
|
|
1455
1399
|
return activeOrders;
|
|
1456
1400
|
// Calculate geometric ideals for the ENTIRE side (all slots)
|
|
1457
1401
|
try {
|
|
1458
|
-
const allIdealSizes =
|
|
1402
|
+
const allIdealSizes = calculateRotationOrderSizes(ctx.budget, 0, sideSlots.length, type, manager.config, 0, ctx.precision);
|
|
1459
1403
|
// Map Ideal sizes to IDs for quick lookup
|
|
1460
1404
|
const idealMap = new Map();
|
|
1461
1405
|
sideSlots.forEach((slot, i) => idealMap.set(slot.id, allIdealSizes[i]));
|
|
@@ -1477,11 +1421,11 @@ async function compareGrids(calculatedGrid, persistedGrid, manager = null) {
|
|
|
1477
1421
|
const sellCtx = needsSell
|
|
1478
1422
|
? await _getSizingContext(manager, 'sell', { skipRecalc: true })
|
|
1479
1423
|
: null;
|
|
1480
|
-
const buyIdeals = computeSideIdeals(calculatedBuys,
|
|
1481
|
-
const sellIdeals = computeSideIdeals(calculatedSells,
|
|
1424
|
+
const buyIdeals = computeSideIdeals(calculatedBuys, ORDER_TYPES.BUY, buyCtx);
|
|
1425
|
+
const sellIdeals = computeSideIdeals(calculatedSells, ORDER_TYPES.SELL, sellCtx);
|
|
1482
1426
|
// Calculate RMS divergence metric for each side
|
|
1483
|
-
const buyMetric =
|
|
1484
|
-
const sellMetric =
|
|
1427
|
+
const buyMetric = calculateGridSideDivergenceMetric(buyIdeals, persistedBuys, 'buy');
|
|
1428
|
+
const sellMetric = calculateGridSideDivergenceMetric(sellIdeals, persistedSells, 'sell');
|
|
1485
1429
|
// Check if metrics exceed threshold and flag sides for regeneration
|
|
1486
1430
|
// Set RMS_PERCENTAGE to 0 to disable RMS divergence checks
|
|
1487
1431
|
let buyUpdated = false, sellUpdated = false;
|
|
@@ -1491,14 +1435,14 @@ async function compareGrids(calculatedGrid, persistedGrid, manager = null) {
|
|
|
1491
1435
|
// RC-3: Use Set for automatic duplicate prevention
|
|
1492
1436
|
if (!(manager._gridSidesUpdated instanceof Set))
|
|
1493
1437
|
manager._gridSidesUpdated = new Set();
|
|
1494
|
-
manager._gridSidesUpdated.add(
|
|
1438
|
+
manager._gridSidesUpdated.add(ORDER_TYPES.BUY);
|
|
1495
1439
|
buyUpdated = true;
|
|
1496
1440
|
}
|
|
1497
1441
|
if (sellMetric > limit) {
|
|
1498
1442
|
// RC-3: Use Set for automatic duplicate prevention
|
|
1499
1443
|
if (!(manager._gridSidesUpdated instanceof Set))
|
|
1500
1444
|
manager._gridSidesUpdated = new Set();
|
|
1501
|
-
manager._gridSidesUpdated.add(
|
|
1445
|
+
manager._gridSidesUpdated.add(ORDER_TYPES.SELL);
|
|
1502
1446
|
sellUpdated = true;
|
|
1503
1447
|
}
|
|
1504
1448
|
}
|
|
@@ -1517,7 +1461,7 @@ async function compareGrids(calculatedGrid, persistedGrid, manager = null) {
|
|
|
1517
1461
|
* @param {Array<import('./types').GridOrderSlot>} persistedGrid - Current/persisted grid
|
|
1518
1462
|
* @returns {Promise<import('./types').DivergenceResult>}
|
|
1519
1463
|
*/
|
|
1520
|
-
async function monitorDivergence(manager, calculatedGrid, persistedGrid) {
|
|
1464
|
+
export async function monitorDivergence(manager, calculatedGrid, persistedGrid) {
|
|
1521
1465
|
// 1. Check ratio-based divergence (available funds vs allocated)
|
|
1522
1466
|
const ratioResult = checkAndUpdateGridIfNeeded(manager);
|
|
1523
1467
|
if (ratioResult.buyUpdated || ratioResult.sellUpdated) {
|
|
@@ -1549,12 +1493,12 @@ async function monitorDivergence(manager, calculatedGrid, persistedGrid) {
|
|
|
1549
1493
|
*/
|
|
1550
1494
|
function _getOnChainOrders(manager) {
|
|
1551
1495
|
const onChainBuys = [
|
|
1552
|
-
...manager.getOrdersByTypeAndState(
|
|
1553
|
-
...manager.getOrdersByTypeAndState(
|
|
1496
|
+
...manager.getOrdersByTypeAndState(ORDER_TYPES.BUY, ORDER_STATES.ACTIVE),
|
|
1497
|
+
...manager.getOrdersByTypeAndState(ORDER_TYPES.BUY, ORDER_STATES.PARTIAL)
|
|
1554
1498
|
].filter((o) => o?.orderId && Number(o?.size || 0) > 0);
|
|
1555
1499
|
const onChainSells = [
|
|
1556
|
-
...manager.getOrdersByTypeAndState(
|
|
1557
|
-
...manager.getOrdersByTypeAndState(
|
|
1500
|
+
...manager.getOrdersByTypeAndState(ORDER_TYPES.SELL, ORDER_STATES.ACTIVE),
|
|
1501
|
+
...manager.getOrdersByTypeAndState(ORDER_TYPES.SELL, ORDER_STATES.PARTIAL)
|
|
1558
1502
|
].filter((o) => o?.orderId && Number(o?.size || 0) > 0);
|
|
1559
1503
|
return { onChainBuys, onChainSells };
|
|
1560
1504
|
}
|
|
@@ -1563,9 +1507,9 @@ function _getOnChainOrders(manager) {
|
|
|
1563
1507
|
* @param {import('./types').OrderManager} manager - The manager instance.
|
|
1564
1508
|
* @returns {number} The calculated spread percentage.
|
|
1565
1509
|
*/
|
|
1566
|
-
function calculateCurrentSpread(manager) {
|
|
1510
|
+
export function calculateCurrentSpread(manager) {
|
|
1567
1511
|
const { onChainBuys, onChainSells } = _getOnChainOrders(manager);
|
|
1568
|
-
return
|
|
1512
|
+
return calculateSpreadFromOrders(onChainBuys, onChainSells);
|
|
1569
1513
|
}
|
|
1570
1514
|
/**
|
|
1571
1515
|
* Proactive spread correction check.
|
|
@@ -1590,7 +1534,7 @@ function calculateCurrentSpread(manager) {
|
|
|
1590
1534
|
* @param {Function|null} [updateOrdersOnChainBatch=null] - Optional batch update function
|
|
1591
1535
|
* @returns {Promise<import('./types').SpreadCheckResult>}
|
|
1592
1536
|
*/
|
|
1593
|
-
async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatch = null) {
|
|
1537
|
+
export async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatch = null) {
|
|
1594
1538
|
// CRITICAL: Acquire corrections lock to serialize spread correction operations
|
|
1595
1539
|
// This prevents concurrent fill processing from modifying funds while we're making decisions
|
|
1596
1540
|
let correction = null;
|
|
@@ -1604,7 +1548,7 @@ async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatc
|
|
|
1604
1548
|
// Mid between best bid and best ask is the most current price the bot has.
|
|
1605
1549
|
// Falls back to config.startPrice when either side is empty (e.g. at startup).
|
|
1606
1550
|
const { onChainBuys, onChainSells } = _getOnChainOrders(manager);
|
|
1607
|
-
const { bestBuy, bestSell } =
|
|
1551
|
+
const { bestBuy, bestSell } = getGridBestPrices(onChainBuys, onChainSells);
|
|
1608
1552
|
const lastPrice = (bestBuy !== null && bestSell !== null)
|
|
1609
1553
|
? (bestBuy + bestSell) / 2
|
|
1610
1554
|
: Number(manager.config.startPrice) || 0;
|
|
@@ -1622,18 +1566,18 @@ async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatc
|
|
|
1622
1566
|
const currentSpread = calculateCurrentSpread(manager);
|
|
1623
1567
|
// Nominal spread is the configured target spread percentage.
|
|
1624
1568
|
// Keep this fixed: doubled-side flags are fill/replacement mechanics only.
|
|
1625
|
-
const nominalSpread = manager.config.targetSpreadPercent ??
|
|
1569
|
+
const nominalSpread = manager.config.targetSpreadPercent ?? DEFAULT_CONFIG.targetSpreadPercent;
|
|
1626
1570
|
// Fixed tolerance: 0.5 steps = half increment (tighter spread check).
|
|
1627
1571
|
const toleranceSteps = 0.5;
|
|
1628
|
-
const buyCount = manager.getOrdersByTypeAndState(
|
|
1629
|
-
.concat(manager.getOrdersByTypeAndState(
|
|
1572
|
+
const buyCount = manager.getOrdersByTypeAndState(ORDER_TYPES.BUY, ORDER_STATES.ACTIVE)
|
|
1573
|
+
.concat(manager.getOrdersByTypeAndState(ORDER_TYPES.BUY, ORDER_STATES.PARTIAL))
|
|
1630
1574
|
.filter((o) => o?.orderId && Number(o?.size || 0) > 0)
|
|
1631
1575
|
.length;
|
|
1632
|
-
const sellCount = manager.getOrdersByTypeAndState(
|
|
1633
|
-
.concat(manager.getOrdersByTypeAndState(
|
|
1576
|
+
const sellCount = manager.getOrdersByTypeAndState(ORDER_TYPES.SELL, ORDER_STATES.ACTIVE)
|
|
1577
|
+
.concat(manager.getOrdersByTypeAndState(ORDER_TYPES.SELL, ORDER_STATES.PARTIAL))
|
|
1634
1578
|
.filter((o) => o?.orderId && Number(o?.size || 0) > 0)
|
|
1635
1579
|
.length;
|
|
1636
|
-
manager.outOfSpread =
|
|
1580
|
+
manager.outOfSpread = shouldFlagOutOfSpread(currentSpread, nominalSpread, toleranceSteps, buyCount, sellCount, manager.config.incrementPercent);
|
|
1637
1581
|
if (manager.outOfSpread === 0)
|
|
1638
1582
|
return false;
|
|
1639
1583
|
// Check whether the empty side is caused by boundary-at-rail-edge.
|
|
@@ -1649,7 +1593,7 @@ async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatc
|
|
|
1649
1593
|
const gapSlots = manager._gapSlots ?? calculateGapSlots(manager.config.incrementPercent, manager.config.targetSpreadPercent, manager.config.gridLimits);
|
|
1650
1594
|
const railLen = allSlots.length;
|
|
1651
1595
|
const buyEndIdx = manager.boundaryIdx;
|
|
1652
|
-
const sellStartIdx =
|
|
1596
|
+
const sellStartIdx = getSellStartIdx(manager.boundaryIdx, gapSlots);
|
|
1653
1597
|
const buySideCount = Math.max(0, Math.min(railLen, buyEndIdx + 1));
|
|
1654
1598
|
const sellSideCount = Math.max(0, railLen - sellStartIdx);
|
|
1655
1599
|
// Structural resync: both sides have room but one is empty.
|
|
@@ -1663,7 +1607,7 @@ async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatc
|
|
|
1663
1607
|
`Requesting structural grid resync to re-center.`, 'warn');
|
|
1664
1608
|
if (typeof manager.requestStructuralGridResync === 'function') {
|
|
1665
1609
|
manager.requestStructuralGridResync('boundary-at-rail-edge', { reason: `Boundary ${manager.boundaryIdx} leaves ${buySideCount} buy / ${sellSideCount} sell slots` }).catch((err) => {
|
|
1666
|
-
manager.logger?.log?.(`[SPREAD] Structural resync request failed: ${
|
|
1610
|
+
manager.logger?.log?.(`[SPREAD] Structural resync request failed: ${getErrorMessage(err)}`, 'error');
|
|
1667
1611
|
});
|
|
1668
1612
|
}
|
|
1669
1613
|
}
|
|
@@ -1683,7 +1627,7 @@ async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatc
|
|
|
1683
1627
|
// STARVATION FALLBACK: If the selected side has no correctable slots (e.g.
|
|
1684
1628
|
// all SPREAD slots already filled or misaligned), try the opposite side.
|
|
1685
1629
|
if ((placeCount + updateCount) === 0) {
|
|
1686
|
-
const oppositeSide = decision.side ===
|
|
1630
|
+
const oppositeSide = decision.side === ORDER_TYPES.BUY ? ORDER_TYPES.SELL : ORDER_TYPES.BUY;
|
|
1687
1631
|
manager.logger?.log?.(`[SPREAD] Side ${decision.side} produced zero candidates; ` +
|
|
1688
1632
|
`trying opposite side ${oppositeSide}.`, 'debug');
|
|
1689
1633
|
const oppositeCorrection = await prepareSpreadCorrectionOrders(manager, oppositeSide, manager.outOfSpread);
|
|
@@ -1701,7 +1645,7 @@ async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatc
|
|
|
1701
1645
|
shouldApplyCorrection = await manager._gridLock.acquire(executeSpreadCheck);
|
|
1702
1646
|
}
|
|
1703
1647
|
catch (err) {
|
|
1704
|
-
manager.logger?.log?.(`Error checking spread condition: ${
|
|
1648
|
+
manager.logger?.log?.(`Error checking spread condition: ${getErrorMessage(err)}`, 'error');
|
|
1705
1649
|
// Track failure in recovery state for external monitoring.
|
|
1706
1650
|
// Do NOT throw — the startup runtime path lacks a try/catch and
|
|
1707
1651
|
// a throw would crash startup. The error is symptom of a deeper
|
|
@@ -1732,7 +1676,7 @@ async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatc
|
|
|
1732
1676
|
// Refresh lastPrice from current grid state — the grid may
|
|
1733
1677
|
// have changed since function entry (TOCTOU).
|
|
1734
1678
|
const freshOnChain = _getOnChainOrders(manager);
|
|
1735
|
-
const freshBest =
|
|
1679
|
+
const freshBest = getGridBestPrices(freshOnChain.onChainBuys, freshOnChain.onChainSells);
|
|
1736
1680
|
const freshPrice = (freshBest.bestBuy !== null && freshBest.bestSell !== null)
|
|
1737
1681
|
? (freshBest.bestBuy + freshBest.bestSell) / 2
|
|
1738
1682
|
: Number(manager.config.startPrice) || 0;
|
|
@@ -1766,7 +1710,7 @@ async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatc
|
|
|
1766
1710
|
return { ordersPlaced: placed + updated, partialsMoved: updated };
|
|
1767
1711
|
}
|
|
1768
1712
|
catch (err) {
|
|
1769
|
-
manager.logger?.log?.(`Error applying spread correction on-chain: ${
|
|
1713
|
+
manager.logger?.log?.(`Error applying spread correction on-chain: ${getErrorMessage(err)}`, 'warn');
|
|
1770
1714
|
return { ordersPlaced: 0, partialsMoved: 0 };
|
|
1771
1715
|
}
|
|
1772
1716
|
}
|
|
@@ -1785,7 +1729,7 @@ async function checkSpreadCondition(manager, _BitShares, updateOrdersOnChainBatc
|
|
|
1785
1729
|
* @param {Function|null} [updateOrdersOnChainBatch=null] - Optional batch update function.
|
|
1786
1730
|
* @returns {Promise<import('./types').DustCheckResult>}
|
|
1787
1731
|
*/
|
|
1788
|
-
async function checkGridHealth(manager, _updateOrdersOnChainBatch = null) {
|
|
1732
|
+
export async function checkGridHealth(manager, _updateOrdersOnChainBatch = null) {
|
|
1789
1733
|
if (!manager)
|
|
1790
1734
|
return { buyDust: false, sellDust: false, buyDustOrders: [], sellDustOrders: [] };
|
|
1791
1735
|
// Skip health checks during bootstrap to prevent spamming warnings
|
|
@@ -1811,25 +1755,25 @@ async function checkGridHealth(manager, _updateOrdersOnChainBatch = null) {
|
|
|
1811
1755
|
* the sibling active order already covers that price level.
|
|
1812
1756
|
*
|
|
1813
1757
|
* Returns boolean flags plus the actual dust order objects so callers can act
|
|
1814
|
-
* on individual orders (
|
|
1758
|
+
* on individual orders (dust is cancelled immediately on detection).
|
|
1815
1759
|
*
|
|
1816
1760
|
* @param {import('./types').OrderManager} manager
|
|
1817
1761
|
* @returns {Promise<import('./types').DustCheckResult>}
|
|
1818
1762
|
*/
|
|
1819
|
-
async function checkWindowDust(manager) {
|
|
1763
|
+
export async function checkWindowDust(manager) {
|
|
1820
1764
|
if (!manager)
|
|
1821
1765
|
return { buyDust: false, sellDust: false, buyDustOrders: [], sellDustOrders: [] };
|
|
1822
1766
|
const allOrders = Array.from(manager.orders.values());
|
|
1823
1767
|
const isLiveOrder = (order) => order &&
|
|
1824
1768
|
order.orderId &&
|
|
1825
1769
|
order.price != null &&
|
|
1826
|
-
(order.state ===
|
|
1770
|
+
(order.state === ORDER_STATES.ACTIVE || order.state === ORDER_STATES.PARTIAL);
|
|
1827
1771
|
// Identify top-of-window orders (closest to market per side).
|
|
1828
1772
|
const topBuyOrder = allOrders
|
|
1829
|
-
.filter((o) => o.type ===
|
|
1773
|
+
.filter((o) => o.type === ORDER_TYPES.BUY && isLiveOrder(o))
|
|
1830
1774
|
.sort((a, b) => b.price - a.price)[0];
|
|
1831
1775
|
const topSellOrder = allOrders
|
|
1832
|
-
.filter((o) => o.type ===
|
|
1776
|
+
.filter((o) => o.type === ORDER_TYPES.SELL && isLiveOrder(o))
|
|
1833
1777
|
.sort((a, b) => a.price - b.price)[0];
|
|
1834
1778
|
// Check if an order has a duplicate price level — an active sibling at the
|
|
1835
1779
|
// same price within tolerance. If so, cancelling won't create a grid gap.
|
|
@@ -1837,17 +1781,17 @@ async function checkWindowDust(manager) {
|
|
|
1837
1781
|
// sibling, neither qualifies and the gap is left to the rebalancer.
|
|
1838
1782
|
// Uses the LARGER size of the two orders for tolerance calculation to prevent
|
|
1839
1783
|
// a tiny dust order from inflating the tolerance window.
|
|
1840
|
-
const hasDuplicatePriceLevel = (order, assets) =>
|
|
1784
|
+
const hasDuplicatePriceLevel = (order, assets) => findPriceCollision(allOrders, order.id, order.price, order.size, order.type, assets, (o) => o.type === order.type && o.state === ORDER_STATES.ACTIVE && !!o.orderId && o.price != null) != null;
|
|
1841
1785
|
const assets = manager.assets;
|
|
1842
|
-
const allPartials = allOrders.filter((o) => isLiveOrder(o) && o.state ===
|
|
1786
|
+
const allPartials = allOrders.filter((o) => isLiveOrder(o) && o.state === ORDER_STATES.PARTIAL);
|
|
1843
1787
|
const isTopBuy = (o) => topBuyOrder && o.id === topBuyOrder.id;
|
|
1844
1788
|
const isTopSell = (o) => topSellOrder && o.id === topSellOrder.id;
|
|
1845
1789
|
// Safety filter: top-of-window partials always qualify; interior partials
|
|
1846
1790
|
// only qualify if they have a duplicate price level (no gap risk).
|
|
1847
|
-
const eligibleBuyPartials = allPartials.filter((o) => o.type ===
|
|
1848
|
-
const eligibleSellPartials = allPartials.filter((o) => o.type ===
|
|
1849
|
-
const buyDustOrders = await _getDustOrders(manager, eligibleBuyPartials,
|
|
1850
|
-
const sellDustOrders = await _getDustOrders(manager, eligibleSellPartials,
|
|
1791
|
+
const eligibleBuyPartials = allPartials.filter((o) => o.type === ORDER_TYPES.BUY && (isTopBuy(o) || hasDuplicatePriceLevel(o, assets)));
|
|
1792
|
+
const eligibleSellPartials = allPartials.filter((o) => o.type === ORDER_TYPES.SELL && (isTopSell(o) || hasDuplicatePriceLevel(o, assets)));
|
|
1793
|
+
const buyDustOrders = await _getDustOrders(manager, eligibleBuyPartials, ORDER_TYPES.BUY);
|
|
1794
|
+
const sellDustOrders = await _getDustOrders(manager, eligibleSellPartials, ORDER_TYPES.SELL);
|
|
1851
1795
|
return {
|
|
1852
1796
|
buyDust: buyDustOrders.length > 0,
|
|
1853
1797
|
sellDust: sellDustOrders.length > 0,
|
|
@@ -1868,7 +1812,7 @@ async function checkWindowDust(manager) {
|
|
|
1868
1812
|
async function _getDustOrders(manager, partials, type) {
|
|
1869
1813
|
if (!partials || partials.length === 0)
|
|
1870
1814
|
return [];
|
|
1871
|
-
const side = type ===
|
|
1815
|
+
const side = type === ORDER_TYPES.BUY ? 'buy' : 'sell';
|
|
1872
1816
|
const ctx = await _getSizingContext(manager, side);
|
|
1873
1817
|
const dustThresholdPercent = manager.config?.gridLimits?.PARTIAL_DUST_THRESHOLD_PERCENTAGE;
|
|
1874
1818
|
const sideSlots = Array.from(manager.orders.values())
|
|
@@ -1877,7 +1821,7 @@ async function _getDustOrders(manager, partials, type) {
|
|
|
1877
1821
|
if (sideSlots.length === 0)
|
|
1878
1822
|
return [];
|
|
1879
1823
|
const idealSizes = ctx && ctx.budget > 0
|
|
1880
|
-
?
|
|
1824
|
+
? allocateFundsByWeights(ctx.budget, sideSlots.length, manager.config.weightDistribution[side], manager.config.incrementPercent / 100, type === ORDER_TYPES.BUY, 0, ctx.precision)
|
|
1881
1825
|
: [];
|
|
1882
1826
|
// When no budget is available, idealSizes becomes [] so every
|
|
1883
1827
|
// partial's threshold collapses to 0 — no order qualifies as dust.
|
|
@@ -1888,7 +1832,7 @@ async function _getDustOrders(manager, partials, type) {
|
|
|
1888
1832
|
if (idx === -1)
|
|
1889
1833
|
return false;
|
|
1890
1834
|
const threshold = idealSizes.length > idx && idealSizes[idx] > 0
|
|
1891
|
-
?
|
|
1835
|
+
? getSingleDustThreshold(idealSizes[idx], dustThresholdPercent)
|
|
1892
1836
|
: 0;
|
|
1893
1837
|
return p.size < threshold;
|
|
1894
1838
|
});
|
|
@@ -1911,8 +1855,8 @@ async function _hasAnyDust(manager, partials, type) {
|
|
|
1911
1855
|
* @param {'buy'|'sell'} side
|
|
1912
1856
|
* @returns {Promise<boolean>}
|
|
1913
1857
|
*/
|
|
1914
|
-
async function hasAnyDust(manager, partials, side) {
|
|
1915
|
-
const type = side === 'buy' ?
|
|
1858
|
+
export async function hasAnyDust(manager, partials, side) {
|
|
1859
|
+
const type = side === 'buy' ? ORDER_TYPES.BUY : side === 'sell' ? ORDER_TYPES.SELL : null;
|
|
1916
1860
|
if (!type)
|
|
1917
1861
|
return false;
|
|
1918
1862
|
return await _hasAnyDust(manager, partials, type);
|
|
@@ -1925,8 +1869,8 @@ async function hasAnyDust(manager, partials, side) {
|
|
|
1925
1869
|
* @param {'buy'|'sell'} side
|
|
1926
1870
|
* @returns {Promise<Array<import('./types').GridOrderSlot>>}
|
|
1927
1871
|
*/
|
|
1928
|
-
async function getDustOrders(manager, partials, side) {
|
|
1929
|
-
const type = side === 'buy' ?
|
|
1872
|
+
export async function getDustOrders(manager, partials, side) {
|
|
1873
|
+
const type = side === 'buy' ? ORDER_TYPES.BUY : side === 'sell' ? ORDER_TYPES.SELL : null;
|
|
1930
1874
|
if (!type)
|
|
1931
1875
|
return [];
|
|
1932
1876
|
return await _getDustOrders(manager, partials, type);
|
|
@@ -1938,7 +1882,7 @@ async function getDustOrders(manager, partials, side) {
|
|
|
1938
1882
|
* normalize sell-side funds into buy-side units for a fair cross-asset comparison.
|
|
1939
1883
|
* @returns {{ side: import('./types').OrderType|null, reason: string }} The side to correct on, or null if insufficient funds.
|
|
1940
1884
|
*/
|
|
1941
|
-
function determineOrderSideByFunds(manager, currentMarketPrice) {
|
|
1885
|
+
export function determineOrderSideByFunds(manager, currentMarketPrice) {
|
|
1942
1886
|
const buyAvailable = Math.min(Number(manager.funds?.available?.buy || 0), Number(manager.accountTotals?.buyFree || 0));
|
|
1943
1887
|
const sellAvailable = Math.min(Number(manager.funds?.available?.sell || 0), Number(manager.accountTotals?.sellFree || 0));
|
|
1944
1888
|
// Need at least some funds on a side to justify correction
|
|
@@ -1960,13 +1904,13 @@ function determineOrderSideByFunds(manager, currentMarketPrice) {
|
|
|
1960
1904
|
const sellInBuyUnits = (Number.isFinite(marketPrice) && marketPrice > 0)
|
|
1961
1905
|
? sellAvailable * marketPrice
|
|
1962
1906
|
: sellAvailable;
|
|
1963
|
-
side = buyAvailable >= sellInBuyUnits ?
|
|
1907
|
+
side = buyAvailable >= sellInBuyUnits ? ORDER_TYPES.BUY : ORDER_TYPES.SELL;
|
|
1964
1908
|
}
|
|
1965
1909
|
else if (buyViable) {
|
|
1966
|
-
side =
|
|
1910
|
+
side = ORDER_TYPES.BUY;
|
|
1967
1911
|
}
|
|
1968
1912
|
else if (sellViable) {
|
|
1969
|
-
side =
|
|
1913
|
+
side = ORDER_TYPES.SELL;
|
|
1970
1914
|
}
|
|
1971
1915
|
if (!side) {
|
|
1972
1916
|
const committedBuy = Math.max(0, Number(manager.funds?.committed?.chain?.buy || 0));
|
|
@@ -1977,17 +1921,17 @@ function determineOrderSideByFunds(manager, currentMarketPrice) {
|
|
|
1977
1921
|
if (hasValidPrice) {
|
|
1978
1922
|
const buyComparable = committedBuy;
|
|
1979
1923
|
const sellComparable = committedSell * marketPrice;
|
|
1980
|
-
side = buyComparable >= sellComparable ?
|
|
1924
|
+
side = buyComparable >= sellComparable ? ORDER_TYPES.BUY : ORDER_TYPES.SELL;
|
|
1981
1925
|
}
|
|
1982
1926
|
else if (committedBuy > buyMinUnit && committedSell <= sellMinUnit) {
|
|
1983
|
-
side =
|
|
1927
|
+
side = ORDER_TYPES.BUY;
|
|
1984
1928
|
}
|
|
1985
1929
|
else if (committedSell > sellMinUnit && committedBuy <= buyMinUnit) {
|
|
1986
|
-
side =
|
|
1930
|
+
side = ORDER_TYPES.SELL;
|
|
1987
1931
|
}
|
|
1988
1932
|
else {
|
|
1989
1933
|
// Deterministic fallback when both sides hold inventory but market valuation is unavailable.
|
|
1990
|
-
side =
|
|
1934
|
+
side = ORDER_TYPES.BUY;
|
|
1991
1935
|
}
|
|
1992
1936
|
manager.logger?.log?.(`Spread correction using redistribution fallback on ${side} ` +
|
|
1993
1937
|
`(free buy=${Format.formatAmount8(buyAvailable)}, free sell=${Format.formatAmount8(sellAvailable)}, ` +
|
|
@@ -2014,7 +1958,7 @@ function determineOrderSideByFunds(manager, currentMarketPrice) {
|
|
|
2014
1958
|
// the band, so this cap only binds when the opposite rail is smaller than the
|
|
2015
1959
|
// band — i.e. an empty opposite rail (cap 0) blocks promotion entirely.
|
|
2016
1960
|
function _collectPromotableBoundarySlots(allSlotsByPrice, railType, buyEndIdx, sellStartIdx, quota) {
|
|
2017
|
-
const isBuy = railType ===
|
|
1961
|
+
const isBuy = railType === ORDER_TYPES.BUY;
|
|
2018
1962
|
const maxIdx = allSlotsByPrice.length - 1;
|
|
2019
1963
|
const maxPromotable = isBuy
|
|
2020
1964
|
? Math.max(0, maxIdx + 1 - sellStartIdx)
|
|
@@ -2024,7 +1968,7 @@ function _collectPromotableBoundarySlots(allSlotsByPrice, railType, buyEndIdx, s
|
|
|
2024
1968
|
const step = isBuy ? 1 : -1;
|
|
2025
1969
|
for (let idx = isBuy ? buyEndIdx + 1 : sellStartIdx - 1; promoted.length < promotionQuota && (isBuy ? idx < sellStartIdx : idx > buyEndIdx); idx += step) {
|
|
2026
1970
|
const slot = allSlotsByPrice[idx];
|
|
2027
|
-
if (!slot || !
|
|
1971
|
+
if (!slot || !isSlotAvailable(slot))
|
|
2028
1972
|
break;
|
|
2029
1973
|
promoted.push(slot);
|
|
2030
1974
|
}
|
|
@@ -2037,15 +1981,15 @@ function _collectPromotableBoundarySlots(allSlotsByPrice, railType, buyEndIdx, s
|
|
|
2037
1981
|
* @returns {Promise<import('./types').SpreadCorrectionResult>}
|
|
2038
1982
|
* @throws {Error} If preferredSide is invalid.
|
|
2039
1983
|
*/
|
|
2040
|
-
async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread = 0) {
|
|
1984
|
+
export async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread = 0) {
|
|
2041
1985
|
// FIX: Validate preferredSide parameter to prevent silent logic errors
|
|
2042
|
-
if (preferredSide !==
|
|
2043
|
-
throw new Error(`Invalid preferredSide: ${preferredSide}. Must be '${
|
|
1986
|
+
if (preferredSide !== ORDER_TYPES.BUY && preferredSide !== ORDER_TYPES.SELL) {
|
|
1987
|
+
throw new Error(`Invalid preferredSide: ${preferredSide}. Must be '${ORDER_TYPES.BUY}' or '${ORDER_TYPES.SELL}'.`);
|
|
2044
1988
|
}
|
|
2045
1989
|
const ordersToPlace = [];
|
|
2046
1990
|
const ordersToUpdate = [];
|
|
2047
1991
|
const railType = preferredSide;
|
|
2048
|
-
const sideName = railType ===
|
|
1992
|
+
const sideName = railType === ORDER_TYPES.BUY ? 'buy' : 'sell';
|
|
2049
1993
|
const configuredMissingSlots = Number(outOfSpread || 0);
|
|
2050
1994
|
const missingSlots = configuredMissingSlots > 0
|
|
2051
1995
|
? Math.floor(configuredMissingSlots)
|
|
@@ -2074,7 +2018,7 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2074
2018
|
// spread correction cycle will re-classify with the updated committed value.
|
|
2075
2019
|
// This prevents TOCTOU-style inconsistency where slot types are chosen
|
|
2076
2020
|
// against a boundary that was never atomically committed to manager.orders.
|
|
2077
|
-
const resolved =
|
|
2021
|
+
const resolved = resolveGapBand(manager);
|
|
2078
2022
|
const gapSlots = resolved.gapSlots;
|
|
2079
2023
|
const boundaryKnown = resolved.boundaryIdx !== null && resolved.sellStartIdx !== null;
|
|
2080
2024
|
// NOTE: `?? 0` keeps the legacy classification fallback (boundary not
|
|
@@ -2083,22 +2027,22 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2083
2027
|
// `boundaryKnown` below: deriving a new boundary from a fabricated 0 would
|
|
2084
2028
|
// silently commit a boundary that was never real.
|
|
2085
2029
|
const buyEndIdx = resolved.boundaryIdx ?? 0;
|
|
2086
|
-
const sellStartIdx = resolved.sellStartIdx ??
|
|
2030
|
+
const sellStartIdx = resolved.sellStartIdx ?? getSellStartIdx(buyEndIdx, gapSlots);
|
|
2087
2031
|
const getSlotCorrectType = (slot) => {
|
|
2088
2032
|
const idx = slotIndexMap.get(slot.id);
|
|
2089
2033
|
if (idx === undefined)
|
|
2090
2034
|
return slot.type;
|
|
2091
2035
|
if (idx <= buyEndIdx)
|
|
2092
|
-
return
|
|
2036
|
+
return ORDER_TYPES.BUY;
|
|
2093
2037
|
if (idx >= sellStartIdx)
|
|
2094
|
-
return
|
|
2095
|
-
return
|
|
2038
|
+
return ORDER_TYPES.SELL;
|
|
2039
|
+
return ORDER_TYPES.SPREAD;
|
|
2096
2040
|
};
|
|
2097
2041
|
let edgePartial = null;
|
|
2098
2042
|
const partials = allOrders
|
|
2099
2043
|
.filter((o) => getSlotCorrectType(o) === railType
|
|
2100
|
-
&& o.state ===
|
|
2101
|
-
.sort((a, b) => railType ===
|
|
2044
|
+
&& o.state === ORDER_STATES.PARTIAL)
|
|
2045
|
+
.sort((a, b) => railType === ORDER_TYPES.BUY ? b.price - a.price : a.price - b.price);
|
|
2102
2046
|
if (partials.length > 0) {
|
|
2103
2047
|
edgePartial = partials[0];
|
|
2104
2048
|
manager.logger?.log?.(`[SPREAD-CORRECTION] Identified partial order at ${edgePartial.price} for update`, 'debug');
|
|
@@ -2108,10 +2052,10 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2108
2052
|
// in the BUY or SELL zone is excluded — it would otherwise be placed on the
|
|
2109
2053
|
// correction side at a price the grid already considers the opposite side.
|
|
2110
2054
|
const typedSpreadCandidates = allOrders
|
|
2111
|
-
.filter((o) => o.type ===
|
|
2112
|
-
&&
|
|
2055
|
+
.filter((o) => o.type === ORDER_TYPES.SPREAD
|
|
2056
|
+
&& isSlotAvailable(o)
|
|
2113
2057
|
&& getSlotCorrectType(o) === railType)
|
|
2114
|
-
.sort((a, b) => railType ===
|
|
2058
|
+
.sort((a, b) => railType === ORDER_TYPES.BUY ? a.price - b.price : b.price - a.price)
|
|
2115
2059
|
.slice(0, missingSlots);
|
|
2116
2060
|
// Secondary candidates: orphaned virtual slots that have lost their
|
|
2117
2061
|
// order (e.g. stale-cleaned after a race condition during a crash).
|
|
@@ -2126,12 +2070,12 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2126
2070
|
// NOT re-activated on the stale side — doing so would compound inventory
|
|
2127
2071
|
// at prices where the bot already traded.
|
|
2128
2072
|
const orphanedVirtualCandidates = allOrders
|
|
2129
|
-
.filter((o) => (o.type === railType || o.type ===
|
|
2130
|
-
&& o.state ===
|
|
2073
|
+
.filter((o) => (o.type === railType || o.type === ORDER_TYPES.SPREAD)
|
|
2074
|
+
&& o.state === ORDER_STATES.VIRTUAL
|
|
2131
2075
|
&& !o.orderId
|
|
2132
2076
|
&& Number(o.size || 0) === 0
|
|
2133
2077
|
&& getSlotCorrectType(o) === railType)
|
|
2134
|
-
.sort((a, b) => railType ===
|
|
2078
|
+
.sort((a, b) => railType === ORDER_TYPES.BUY ? b.price - a.price : a.price - b.price)
|
|
2135
2079
|
.slice(0, missingSlots);
|
|
2136
2080
|
// If the funded rail is full, the spread itself may be stale: the
|
|
2137
2081
|
// nearest empty slots are still in the gap band. Promote contiguous
|
|
@@ -2185,8 +2129,8 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2185
2129
|
return false;
|
|
2186
2130
|
// Resolve candidate size: if zero/missing, use minimum so tolerance
|
|
2187
2131
|
// doesn't collapse to zero (calculatePriceTolerance returns null for size <= 0).
|
|
2188
|
-
const cs = (c.size && c.size > 0) ? c.size :
|
|
2189
|
-
return !
|
|
2132
|
+
const cs = (c.size && c.size > 0) ? c.size : getMinAbsoluteOrderSize(railType, manager.assets);
|
|
2133
|
+
return !findPriceCollision(allOrders, c.id, c.price, cs, railType, manager.assets, (o) => isOrderPlaced(o) && o.price != null);
|
|
2190
2134
|
});
|
|
2191
2135
|
const filteredCount = preFilter - spreadCandidates.length;
|
|
2192
2136
|
if (filteredCount > 0) {
|
|
@@ -2212,14 +2156,14 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2212
2156
|
if (!ctx || ctx.budget <= 0 || syntheticSideSlots.length === 0) {
|
|
2213
2157
|
return { ordersToPlace: [], ordersToUpdate: [] };
|
|
2214
2158
|
}
|
|
2215
|
-
const precisionEpsilon =
|
|
2216
|
-
const idealSizes =
|
|
2159
|
+
const precisionEpsilon = getPrecisionSlack(ctx.precision, 1);
|
|
2160
|
+
const idealSizes = allocateFundsByWeights(ctx.budget, syntheticSideSlots.length, manager.config.weightDistribution[sideName], manager.config.incrementPercent / 100, railType === ORDER_TYPES.BUY, 0, ctx.precision);
|
|
2217
2161
|
const idealById = new Map();
|
|
2218
2162
|
syntheticSideSlots.forEach((slot, idx) => {
|
|
2219
2163
|
idealById.set(slot.id, Number(idealSizes[idx] || 0));
|
|
2220
2164
|
});
|
|
2221
2165
|
const availableFund = Math.max(0, Math.min(Number(manager.funds?.available?.[sideName] || 0), Number(sideName === 'buy' ? manager.accountTotals?.buyFree : manager.accountTotals?.sellFree) || 0));
|
|
2222
|
-
const minAbsoluteSize =
|
|
2166
|
+
const minAbsoluteSize = getMinAbsoluteOrderSize(railType, manager.assets);
|
|
2223
2167
|
const prioritizedTargets = [];
|
|
2224
2168
|
if (edgePartial && edgePartial.id) {
|
|
2225
2169
|
const ideal = Number(idealById.get(edgePartial.id) || 0);
|
|
@@ -2255,9 +2199,9 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2255
2199
|
if (totalNeeded > availableFund + precisionEpsilon) {
|
|
2256
2200
|
let shortfall = totalNeeded - availableFund;
|
|
2257
2201
|
const donors = sideSlots
|
|
2258
|
-
.filter((o) =>
|
|
2202
|
+
.filter((o) => hasOnChainId(o) && (o.state === ORDER_STATES.ACTIVE || o.state === ORDER_STATES.PARTIAL))
|
|
2259
2203
|
.filter((o) => !edgePartial || o.id !== edgePartial.id)
|
|
2260
|
-
.sort((a, b) => railType ===
|
|
2204
|
+
.sort((a, b) => railType === ORDER_TYPES.BUY ? a.price - b.price : b.price - a.price);
|
|
2261
2205
|
for (const donor of donors) {
|
|
2262
2206
|
if (shortfall <= precisionEpsilon)
|
|
2263
2207
|
break;
|
|
@@ -2271,7 +2215,7 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2271
2215
|
const donorNext = donorCurrent - reduction;
|
|
2272
2216
|
if (donorNext <= precisionEpsilon)
|
|
2273
2217
|
continue;
|
|
2274
|
-
if (!
|
|
2218
|
+
if (!isOrderHealthy(donorNext, railType, manager.assets, donorIdeal || donorNext))
|
|
2275
2219
|
continue;
|
|
2276
2220
|
redistributionUpdates.push({ partialOrder: { ...donor }, newSize: donorNext });
|
|
2277
2221
|
recoveredBudget += reduction;
|
|
@@ -2288,7 +2232,7 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2288
2232
|
if (target.kind === 'partial-topup') {
|
|
2289
2233
|
const topUp = Math.min(target.needed, remainingBudget);
|
|
2290
2234
|
const newSize = target.current + topUp;
|
|
2291
|
-
if (newSize > target.current + precisionEpsilon &&
|
|
2235
|
+
if (newSize > target.current + precisionEpsilon && isOrderHealthy(newSize, railType, manager.assets, target.ideal)) {
|
|
2292
2236
|
ordersToUpdate.push({ partialOrder: { ...target.order }, newSize });
|
|
2293
2237
|
remainingBudget -= topUp;
|
|
2294
2238
|
}
|
|
@@ -2297,13 +2241,13 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2297
2241
|
const createSize = Math.min(target.ideal, remainingBudget);
|
|
2298
2242
|
if (createSize <= precisionEpsilon)
|
|
2299
2243
|
continue;
|
|
2300
|
-
if (!
|
|
2244
|
+
if (!isOrderHealthy(createSize, railType, manager.assets, target.ideal))
|
|
2301
2245
|
continue;
|
|
2302
2246
|
ordersToPlace.push({
|
|
2303
2247
|
...target.order,
|
|
2304
2248
|
type: railType,
|
|
2305
2249
|
size: createSize,
|
|
2306
|
-
state:
|
|
2250
|
+
state: ORDER_STATES.VIRTUAL
|
|
2307
2251
|
});
|
|
2308
2252
|
remainingBudget -= createSize;
|
|
2309
2253
|
}
|
|
@@ -2320,14 +2264,14 @@ async function prepareSpreadCorrectionOrders(manager, preferredSide, outOfSpread
|
|
|
2320
2264
|
const idx = slotIndexMap.get(id);
|
|
2321
2265
|
if (idx === undefined)
|
|
2322
2266
|
continue;
|
|
2323
|
-
const dist = railType ===
|
|
2267
|
+
const dist = railType === ORDER_TYPES.BUY
|
|
2324
2268
|
? idx - buyEndIdx
|
|
2325
2269
|
: sellStartIdx - idx;
|
|
2326
2270
|
if (dist > maxDist)
|
|
2327
2271
|
maxDist = dist;
|
|
2328
2272
|
}
|
|
2329
2273
|
if (maxDist > 0) {
|
|
2330
|
-
boundaryIdx = railType ===
|
|
2274
|
+
boundaryIdx = railType === ORDER_TYPES.BUY
|
|
2331
2275
|
? buyEndIdx + maxDist
|
|
2332
2276
|
: buyEndIdx - maxDist;
|
|
2333
2277
|
const maxIdx = allSlotsByPrice.length - 1;
|