project-cpu-mcp 0.9.1 → 0.11.1
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 +134 -40
- package/dist/api/authentication-required.error.d.ts +6 -0
- package/dist/api/authentication-required.error.d.ts.map +1 -0
- package/dist/api/authentication-required.error.js +9 -0
- package/dist/api/authentication-required.error.js.map +1 -0
- package/dist/api/client.d.ts +7 -5
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +29 -14
- package/dist/api/client.js.map +1 -1
- package/dist/api/constants.d.ts +2 -0
- package/dist/api/constants.d.ts.map +1 -1
- package/dist/api/constants.js +6 -0
- package/dist/api/constants.js.map +1 -1
- package/dist/api/types.d.ts +1539 -299
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js +160 -60
- package/dist/api/types.js.map +1 -1
- package/dist/config/boolean-env.utils.d.ts +2 -0
- package/dist/config/boolean-env.utils.d.ts.map +1 -0
- package/dist/config/boolean-env.utils.js +15 -0
- package/dist/config/boolean-env.utils.js.map +1 -0
- package/dist/config/constants.d.ts +12 -2
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +12 -2
- package/dist/config/constants.js.map +1 -1
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +3 -0
- package/dist/config/env.js.map +1 -1
- package/dist/config/network.types.d.ts +8 -0
- package/dist/config/network.types.d.ts.map +1 -0
- package/dist/config/network.types.js +10 -0
- package/dist/config/network.types.js.map +1 -0
- package/dist/config/types.d.ts +11 -12
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +5 -12
- package/dist/config/types.js.map +1 -1
- package/dist/contracts/cell.abi.d.ts +74 -2
- package/dist/contracts/cell.abi.d.ts.map +1 -1
- package/dist/contracts/cell.abi.js +35 -2
- package/dist/contracts/cell.abi.js.map +1 -1
- package/dist/contracts/erc20.abi.d.ts.map +1 -1
- package/dist/contracts/erc20.abi.js +1 -2
- package/dist/contracts/erc20.abi.js.map +1 -1
- package/dist/contracts/trade.abi.d.ts +346 -0
- package/dist/contracts/trade.abi.d.ts.map +1 -1
- package/dist/contracts/trade.abi.js +164 -0
- package/dist/contracts/trade.abi.js.map +1 -1
- package/dist/contracts/trade.types.d.ts +14 -0
- package/dist/contracts/trade.types.d.ts.map +1 -0
- package/dist/contracts/trade.types.js +15 -0
- package/dist/contracts/trade.types.js.map +1 -0
- package/dist/contracts/transport.abi.d.ts +14 -0
- package/dist/contracts/transport.abi.d.ts.map +1 -1
- package/dist/contracts/transport.abi.js +3 -0
- package/dist/contracts/transport.abi.js.map +1 -1
- package/dist/geometry/adjacency.data.d.ts +1 -1
- package/dist/geometry/adjacency.data.d.ts.map +1 -1
- package/dist/geometry/adjacency.data.js +115 -193
- package/dist/geometry/adjacency.data.js.map +1 -1
- package/dist/geometry/constants.d.ts +1 -1
- package/dist/geometry/constants.js +1 -1
- package/dist/index.js +47 -4
- package/dist/index.js.map +1 -1
- package/dist/logger/constants.d.ts +7 -0
- package/dist/logger/constants.d.ts.map +1 -1
- package/dist/logger/constants.js +11 -0
- package/dist/logger/constants.js.map +1 -1
- package/dist/logger/file-log.utils.d.ts +4 -0
- package/dist/logger/file-log.utils.d.ts.map +1 -0
- package/dist/logger/file-log.utils.js +23 -0
- package/dist/logger/file-log.utils.js.map +1 -0
- package/dist/logger/index.d.ts +1 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +7 -4
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/logger.d.ts +4 -0
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +48 -3
- package/dist/logger/logger.js.map +1 -1
- package/dist/logger/redact.utils.d.ts.map +1 -1
- package/dist/logger/redact.utils.js +7 -2
- package/dist/logger/redact.utils.js.map +1 -1
- package/dist/logger/types.d.ts +8 -0
- package/dist/logger/types.d.ts.map +1 -1
- package/dist/map/attention.utils.d.ts +2 -3
- package/dist/map/attention.utils.d.ts.map +1 -1
- package/dist/map/attention.utils.js +30 -14
- package/dist/map/attention.utils.js.map +1 -1
- package/dist/map/cell-view.utils.d.ts.map +1 -1
- package/dist/map/cell-view.utils.js +24 -20
- package/dist/map/cell-view.utils.js.map +1 -1
- package/dist/map/constants.d.ts +0 -1
- package/dist/map/constants.d.ts.map +1 -1
- package/dist/map/constants.js +0 -1
- package/dist/map/constants.js.map +1 -1
- package/dist/map/map.utils.d.ts +8 -3
- package/dist/map/map.utils.d.ts.map +1 -1
- package/dist/map/map.utils.js.map +1 -1
- package/dist/map/process-projection.utils.d.ts +4 -0
- package/dist/map/process-projection.utils.d.ts.map +1 -0
- package/dist/map/process-projection.utils.js +144 -0
- package/dist/map/process-projection.utils.js.map +1 -0
- package/dist/map/reader.d.ts +2 -2
- package/dist/map/reader.d.ts.map +1 -1
- package/dist/map/reader.js +12 -4
- package/dist/map/reader.js.map +1 -1
- package/dist/map/reader.utils.d.ts +4 -4
- package/dist/map/reader.utils.d.ts.map +1 -1
- package/dist/map/reader.utils.js +16 -9
- package/dist/map/reader.utils.js.map +1 -1
- package/dist/map/socket.d.ts.map +1 -1
- package/dist/map/socket.js +1 -0
- package/dist/map/socket.js.map +1 -1
- package/dist/map/storage.utils.d.ts +3 -6
- package/dist/map/storage.utils.d.ts.map +1 -1
- package/dist/map/storage.utils.js +12 -40
- package/dist/map/storage.utils.js.map +1 -1
- package/dist/map/store.d.ts +7 -0
- package/dist/map/store.d.ts.map +1 -1
- package/dist/map/store.js +28 -0
- package/dist/map/store.js.map +1 -1
- package/dist/map/sync.d.ts +4 -0
- package/dist/map/sync.d.ts.map +1 -1
- package/dist/map/sync.js +42 -2
- package/dist/map/sync.js.map +1 -1
- package/dist/map/types.d.ts +144 -28
- package/dist/map/types.d.ts.map +1 -1
- package/dist/map/types.js +9 -1
- package/dist/map/types.js.map +1 -1
- package/dist/paybox/auth/authority.d.ts +46 -0
- package/dist/paybox/auth/authority.d.ts.map +1 -0
- package/dist/paybox/auth/authority.js +410 -0
- package/dist/paybox/auth/authority.js.map +1 -0
- package/dist/paybox/auth/browser-opener.d.ts +8 -0
- package/dist/paybox/auth/browser-opener.d.ts.map +1 -0
- package/dist/paybox/auth/browser-opener.js +22 -0
- package/dist/paybox/auth/browser-opener.js.map +1 -0
- package/dist/paybox/auth/browser-opener.utils.d.ts +2 -0
- package/dist/paybox/auth/browser-opener.utils.d.ts.map +1 -0
- package/dist/paybox/auth/browser-opener.utils.js +10 -0
- package/dist/paybox/auth/browser-opener.utils.js.map +1 -0
- package/dist/paybox/auth/constants.d.ts +16 -0
- package/dist/paybox/auth/constants.d.ts.map +1 -0
- package/dist/paybox/auth/constants.js +16 -0
- package/dist/paybox/auth/constants.js.map +1 -0
- package/dist/paybox/auth/coordinator.d.ts +21 -0
- package/dist/paybox/auth/coordinator.d.ts.map +1 -0
- package/dist/paybox/auth/coordinator.factory.d.ts +5 -0
- package/dist/paybox/auth/coordinator.factory.d.ts.map +1 -0
- package/dist/paybox/auth/coordinator.factory.js +5 -0
- package/dist/paybox/auth/coordinator.factory.js.map +1 -0
- package/dist/paybox/auth/coordinator.js +87 -0
- package/dist/paybox/auth/coordinator.js.map +1 -0
- package/dist/paybox/auth/coordinator.utils.d.ts +4 -0
- package/dist/paybox/auth/coordinator.utils.d.ts.map +1 -0
- package/dist/paybox/auth/coordinator.utils.js +8 -0
- package/dist/paybox/auth/coordinator.utils.js.map +1 -0
- package/dist/paybox/auth/flow-session.d.ts +24 -0
- package/dist/paybox/auth/flow-session.d.ts.map +1 -0
- package/dist/paybox/auth/flow-session.js +155 -0
- package/dist/paybox/auth/flow-session.js.map +1 -0
- package/dist/paybox/auth/loopback-flow.d.ts +49 -0
- package/dist/paybox/auth/loopback-flow.d.ts.map +1 -0
- package/dist/paybox/auth/loopback-flow.js +381 -0
- package/dist/paybox/auth/loopback-flow.js.map +1 -0
- package/dist/paybox/auth/loopback-flow.utils.d.ts +7 -0
- package/dist/paybox/auth/loopback-flow.utils.d.ts.map +1 -0
- package/dist/paybox/auth/loopback-flow.utils.js +47 -0
- package/dist/paybox/auth/loopback-flow.utils.js.map +1 -0
- package/dist/paybox/auth/loopback-page-fonts.constants.d.ts +3 -0
- package/dist/paybox/auth/loopback-page-fonts.constants.d.ts.map +1 -0
- package/dist/paybox/auth/loopback-page-fonts.constants.js +228 -0
- package/dist/paybox/auth/loopback-page-fonts.constants.js.map +1 -0
- package/dist/paybox/auth/loopback-page.utils.d.ts +4 -0
- package/dist/paybox/auth/loopback-page.utils.d.ts.map +1 -0
- package/dist/paybox/auth/loopback-page.utils.js +261 -0
- package/dist/paybox/auth/loopback-page.utils.js.map +1 -0
- package/dist/paybox/auth/provisioning.utils.d.ts +3 -0
- package/dist/paybox/auth/provisioning.utils.d.ts.map +1 -0
- package/dist/paybox/auth/provisioning.utils.js +27 -0
- package/dist/paybox/auth/provisioning.utils.js.map +1 -0
- package/dist/paybox/auth/signing-key.utils.d.ts +2 -0
- package/dist/paybox/auth/signing-key.utils.d.ts.map +1 -0
- package/dist/paybox/auth/signing-key.utils.js +14 -0
- package/dist/paybox/auth/signing-key.utils.js.map +1 -0
- package/dist/paybox/auth/types.d.ts +18 -0
- package/dist/paybox/auth/types.d.ts.map +1 -0
- package/dist/paybox/auth/types.js +6 -0
- package/dist/paybox/auth/types.js.map +1 -0
- package/dist/paybox/auth/utils.d.ts +5 -0
- package/dist/paybox/auth/utils.d.ts.map +1 -0
- package/dist/paybox/auth/utils.js +17 -0
- package/dist/paybox/auth/utils.js.map +1 -0
- package/dist/paybox/constants.d.ts +11 -0
- package/dist/paybox/constants.d.ts.map +1 -0
- package/dist/paybox/constants.js +11 -0
- package/dist/paybox/constants.js.map +1 -0
- package/dist/paybox/errors.d.ts +43 -0
- package/dist/paybox/errors.d.ts.map +1 -0
- package/dist/paybox/errors.js +141 -0
- package/dist/paybox/errors.js.map +1 -0
- package/dist/paybox/sdk/adapter.d.ts +16 -0
- package/dist/paybox/sdk/adapter.d.ts.map +1 -0
- package/dist/paybox/sdk/adapter.js +104 -0
- package/dist/paybox/sdk/adapter.js.map +1 -0
- package/dist/paybox/sdk/constants.d.ts +19 -0
- package/dist/paybox/sdk/constants.d.ts.map +1 -0
- package/dist/paybox/sdk/constants.js +28 -0
- package/dist/paybox/sdk/constants.js.map +1 -0
- package/dist/paybox/sdk/factory.d.ts +4 -0
- package/dist/paybox/sdk/factory.d.ts.map +1 -0
- package/dist/paybox/sdk/factory.js +24 -0
- package/dist/paybox/sdk/factory.js.map +1 -0
- package/dist/paybox/sdk/logging.utils.d.ts +4 -0
- package/dist/paybox/sdk/logging.utils.d.ts.map +1 -0
- package/dist/paybox/sdk/logging.utils.js +19 -0
- package/dist/paybox/sdk/logging.utils.js.map +1 -0
- package/dist/paybox/sdk/utils.d.ts +9 -0
- package/dist/paybox/sdk/utils.d.ts.map +1 -0
- package/dist/paybox/sdk/utils.js +238 -0
- package/dist/paybox/sdk/utils.js.map +1 -0
- package/dist/paybox/storage.d.ts +17 -0
- package/dist/paybox/storage.d.ts.map +1 -0
- package/dist/paybox/storage.js +87 -0
- package/dist/paybox/storage.js.map +1 -0
- package/dist/paybox/types.d.ts +487 -0
- package/dist/paybox/types.d.ts.map +1 -0
- package/dist/paybox/types.js +144 -0
- package/dist/paybox/types.js.map +1 -0
- package/dist/paybox/wallet/manager.d.ts +22 -0
- package/dist/paybox/wallet/manager.d.ts.map +1 -0
- package/dist/paybox/wallet/manager.js +111 -0
- package/dist/paybox/wallet/manager.js.map +1 -0
- package/dist/paybox/wallet/rpc.client.d.ts +16 -0
- package/dist/paybox/wallet/rpc.client.d.ts.map +1 -0
- package/dist/paybox/wallet/rpc.client.js +53 -0
- package/dist/paybox/wallet/rpc.client.js.map +1 -0
- package/dist/paybox/wallet/utils.d.ts +5 -0
- package/dist/paybox/wallet/utils.d.ts.map +1 -0
- package/dist/paybox/wallet/utils.js +62 -0
- package/dist/paybox/wallet/utils.js.map +1 -0
- package/dist/server.constants.d.ts +3 -0
- package/dist/server.constants.d.ts.map +1 -0
- package/dist/server.constants.js +27 -0
- package/dist/server.constants.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +38 -78
- package/dist/server.js.map +1 -1
- package/dist/services/app-config.service.d.ts.map +1 -1
- package/dist/services/app-config.service.js +3 -48
- package/dist/services/app-config.service.js.map +1 -1
- package/dist/services/app-config.utils.d.ts +2 -12
- package/dist/services/app-config.utils.d.ts.map +1 -1
- package/dist/services/app-config.utils.js +70 -18
- package/dist/services/app-config.utils.js.map +1 -1
- package/dist/services/auth.service.d.ts +3 -5
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +20 -77
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/build.service.d.ts +0 -3
- package/dist/services/build.service.d.ts.map +1 -1
- package/dist/services/build.service.js +15 -35
- package/dist/services/build.service.js.map +1 -1
- package/dist/services/cell.client.d.ts.map +1 -1
- package/dist/services/cell.client.js +22 -9
- package/dist/services/cell.client.js.map +1 -1
- package/dist/services/craft-quote.constants.d.ts +2 -0
- package/dist/services/craft-quote.constants.d.ts.map +1 -0
- package/dist/services/craft-quote.constants.js +2 -0
- package/dist/services/craft-quote.constants.js.map +1 -0
- package/dist/services/craft-quote.utils.d.ts +4 -0
- package/dist/services/craft-quote.utils.d.ts.map +1 -0
- package/dist/services/craft-quote.utils.js +12 -0
- package/dist/services/craft-quote.utils.js.map +1 -0
- package/dist/services/craft.service.d.ts +1 -7
- package/dist/services/craft.service.d.ts.map +1 -1
- package/dist/services/craft.service.js +60 -90
- package/dist/services/craft.service.js.map +1 -1
- package/dist/services/lot-return.constants.d.ts +3 -0
- package/dist/services/lot-return.constants.d.ts.map +1 -0
- package/dist/services/lot-return.constants.js +35 -0
- package/dist/services/lot-return.constants.js.map +1 -0
- package/dist/services/lot-return.service.d.ts +25 -0
- package/dist/services/lot-return.service.d.ts.map +1 -0
- package/dist/services/lot-return.service.js +151 -0
- package/dist/services/lot-return.service.js.map +1 -0
- package/dist/services/lot-return.types.d.ts +19 -0
- package/dist/services/lot-return.types.d.ts.map +1 -0
- package/dist/services/lot-return.types.js +2 -0
- package/dist/services/lot-return.types.js.map +1 -0
- package/dist/services/lot-return.utils.d.ts +33 -0
- package/dist/services/lot-return.utils.d.ts.map +1 -0
- package/dist/services/lot-return.utils.js +128 -0
- package/dist/services/lot-return.utils.js.map +1 -0
- package/dist/services/lot-terms.constants.d.ts +4 -0
- package/dist/services/lot-terms.constants.d.ts.map +1 -0
- package/dist/services/lot-terms.constants.js +5 -0
- package/dist/services/lot-terms.constants.js.map +1 -0
- package/dist/services/lot-terms.helpers.d.ts +11 -0
- package/dist/services/lot-terms.helpers.d.ts.map +1 -0
- package/dist/services/lot-terms.helpers.js +45 -0
- package/dist/services/lot-terms.helpers.js.map +1 -0
- package/dist/services/lot-terms.service.d.ts +20 -0
- package/dist/services/lot-terms.service.d.ts.map +1 -0
- package/dist/services/lot-terms.service.js +119 -0
- package/dist/services/lot-terms.service.js.map +1 -0
- package/dist/services/lot-terms.types.d.ts +25 -0
- package/dist/services/lot-terms.types.d.ts.map +1 -0
- package/dist/services/lot-terms.types.js +2 -0
- package/dist/services/lot-terms.types.js.map +1 -0
- package/dist/services/mining.service.d.ts +1 -4
- package/dist/services/mining.service.d.ts.map +1 -1
- package/dist/services/mining.service.js +41 -72
- package/dist/services/mining.service.js.map +1 -1
- package/dist/services/mint.constants.d.ts +1 -0
- package/dist/services/mint.constants.d.ts.map +1 -1
- package/dist/services/mint.constants.js +3 -0
- package/dist/services/mint.constants.js.map +1 -1
- package/dist/services/mint.service.d.ts +0 -1
- package/dist/services/mint.service.d.ts.map +1 -1
- package/dist/services/mint.service.js +10 -17
- package/dist/services/mint.service.js.map +1 -1
- package/dist/services/mode-switch.d.ts +9 -0
- package/dist/services/mode-switch.d.ts.map +1 -0
- package/dist/services/mode-switch.js +71 -0
- package/dist/services/mode-switch.js.map +1 -0
- package/dist/services/mode-switch.types.d.ts +60 -0
- package/dist/services/mode-switch.types.d.ts.map +1 -0
- package/dist/services/mode-switch.types.js +6 -0
- package/dist/services/mode-switch.types.js.map +1 -0
- package/dist/services/paid-action.constants.d.ts +3 -0
- package/dist/services/paid-action.constants.d.ts.map +1 -0
- package/dist/services/paid-action.constants.js +11 -0
- package/dist/services/paid-action.constants.js.map +1 -0
- package/dist/services/paid-action.d.ts +3 -0
- package/dist/services/paid-action.d.ts.map +1 -0
- package/dist/services/paid-action.js +23 -0
- package/dist/services/paid-action.js.map +1 -0
- package/dist/services/paid-action.types.d.ts +22 -0
- package/dist/services/paid-action.types.d.ts.map +1 -0
- package/dist/services/paid-action.types.js +11 -0
- package/dist/services/paid-action.types.js.map +1 -0
- package/dist/services/reveal-fulfilment.service.d.ts.map +1 -1
- package/dist/services/reveal-fulfilment.service.js +2 -5
- package/dist/services/reveal-fulfilment.service.js.map +1 -1
- package/dist/services/reveal-revert.utils.d.ts +1 -0
- package/dist/services/reveal-revert.utils.d.ts.map +1 -1
- package/dist/services/reveal-revert.utils.js +20 -0
- package/dist/services/reveal-revert.utils.js.map +1 -1
- package/dist/services/reveal.constants.d.ts +1 -1
- package/dist/services/reveal.constants.d.ts.map +1 -1
- package/dist/services/reveal.constants.js +1 -1
- package/dist/services/reveal.constants.js.map +1 -1
- package/dist/services/reveal.service.d.ts +4 -3
- package/dist/services/reveal.service.d.ts.map +1 -1
- package/dist/services/reveal.service.js +40 -19
- package/dist/services/reveal.service.js.map +1 -1
- package/dist/services/reveal.utils.d.ts +7 -8
- package/dist/services/reveal.utils.d.ts.map +1 -1
- package/dist/services/reveal.utils.js +15 -8
- package/dist/services/reveal.utils.js.map +1 -1
- package/dist/services/route.artifact.d.ts +4 -0
- package/dist/services/route.artifact.d.ts.map +1 -0
- package/dist/services/route.artifact.js +18 -0
- package/dist/services/route.artifact.js.map +1 -0
- package/dist/services/route.constants.d.ts +26 -1
- package/dist/services/route.constants.d.ts.map +1 -1
- package/dist/services/route.constants.js +135 -8
- package/dist/services/route.constants.js.map +1 -1
- package/dist/services/route.lots.d.ts +18 -0
- package/dist/services/route.lots.d.ts.map +1 -0
- package/dist/services/route.lots.js +33 -0
- package/dist/services/route.lots.js.map +1 -0
- package/dist/services/route.service.d.ts +17 -4
- package/dist/services/route.service.d.ts.map +1 -1
- package/dist/services/route.service.js +195 -92
- package/dist/services/route.service.js.map +1 -1
- package/dist/services/route.types.d.ts +76 -0
- package/dist/services/route.types.d.ts.map +1 -0
- package/dist/services/route.types.js +8 -0
- package/dist/services/route.types.js.map +1 -0
- package/dist/services/route.utils.d.ts +115 -5
- package/dist/services/route.utils.d.ts.map +1 -1
- package/dist/services/route.utils.js +231 -37
- package/dist/services/route.utils.js.map +1 -1
- package/dist/services/swap.service.d.ts +0 -1
- package/dist/services/swap.service.d.ts.map +1 -1
- package/dist/services/swap.service.js +11 -17
- package/dist/services/swap.service.js.map +1 -1
- package/dist/services/syndicate.constants.d.ts +3 -0
- package/dist/services/syndicate.constants.d.ts.map +1 -0
- package/dist/services/syndicate.constants.js +3 -0
- package/dist/services/syndicate.constants.js.map +1 -0
- package/dist/services/syndicate.helpers.d.ts.map +1 -1
- package/dist/services/syndicate.helpers.js +0 -2
- package/dist/services/syndicate.helpers.js.map +1 -1
- package/dist/services/syndicate.service.d.ts +3 -3
- package/dist/services/syndicate.service.d.ts.map +1 -1
- package/dist/services/syndicate.service.js +27 -32
- package/dist/services/syndicate.service.js.map +1 -1
- package/dist/services/trade-eviction.constants.d.ts +12 -0
- package/dist/services/trade-eviction.constants.d.ts.map +1 -0
- package/dist/services/trade-eviction.constants.js +25 -0
- package/dist/services/trade-eviction.constants.js.map +1 -0
- package/dist/services/trade-eviction.service.d.ts +22 -0
- package/dist/services/trade-eviction.service.d.ts.map +1 -0
- package/dist/services/trade-eviction.service.js +101 -0
- package/dist/services/trade-eviction.service.js.map +1 -0
- package/dist/services/trade-eviction.types.d.ts +30 -0
- package/dist/services/trade-eviction.types.d.ts.map +1 -0
- package/dist/services/trade-eviction.types.js +2 -0
- package/dist/services/trade-eviction.types.js.map +1 -0
- package/dist/services/trade-eviction.utils.d.ts +9 -0
- package/dist/services/trade-eviction.utils.d.ts.map +1 -0
- package/dist/services/trade-eviction.utils.js +38 -0
- package/dist/services/trade-eviction.utils.js.map +1 -0
- package/dist/services/trade-rules.service.d.ts +15 -0
- package/dist/services/trade-rules.service.d.ts.map +1 -0
- package/dist/services/trade-rules.service.js +45 -0
- package/dist/services/trade-rules.service.js.map +1 -0
- package/dist/services/trade.client.d.ts +11 -1
- package/dist/services/trade.client.d.ts.map +1 -1
- package/dist/services/trade.client.js +87 -0
- package/dist/services/trade.client.js.map +1 -1
- package/dist/services/trade.constants.d.ts +9 -0
- package/dist/services/trade.constants.d.ts.map +1 -0
- package/dist/services/trade.constants.js +28 -0
- package/dist/services/trade.constants.js.map +1 -0
- package/dist/services/trade.helpers.d.ts +9 -1
- package/dist/services/trade.helpers.d.ts.map +1 -1
- package/dist/services/trade.helpers.js +40 -27
- package/dist/services/trade.helpers.js.map +1 -1
- package/dist/services/trade.service.d.ts +0 -3
- package/dist/services/trade.service.d.ts.map +1 -1
- package/dist/services/trade.service.js +27 -47
- package/dist/services/trade.service.js.map +1 -1
- package/dist/services/transport-revert.utils.d.ts +3 -0
- package/dist/services/transport-revert.utils.d.ts.map +1 -0
- package/dist/services/transport-revert.utils.js +15 -0
- package/dist/services/transport-revert.utils.js.map +1 -0
- package/dist/services/transport.client.d.ts.map +1 -1
- package/dist/services/transport.client.js +14 -6
- package/dist/services/transport.client.js.map +1 -1
- package/dist/services/transport.service.d.ts +0 -2
- package/dist/services/transport.service.d.ts.map +1 -1
- package/dist/services/transport.service.js +16 -33
- package/dist/services/transport.service.js.map +1 -1
- package/dist/services/types.d.ts +337 -65
- package/dist/services/types.d.ts.map +1 -1
- package/dist/services/types.js +25 -0
- package/dist/services/types.js.map +1 -1
- package/dist/services/warehouse.utils.d.ts +8 -0
- package/dist/services/warehouse.utils.d.ts.map +1 -1
- package/dist/services/warehouse.utils.js +25 -0
- package/dist/services/warehouse.utils.js.map +1 -1
- package/dist/services/withdraw.service.d.ts +0 -2
- package/dist/services/withdraw.service.d.ts.map +1 -1
- package/dist/services/withdraw.service.js +6 -17
- package/dist/services/withdraw.service.js.map +1 -1
- package/dist/session/manager.d.ts +1 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +13 -0
- package/dist/session/manager.js.map +1 -1
- package/dist/session/storage.d.ts +0 -3
- package/dist/session/storage.d.ts.map +1 -1
- package/dist/session/storage.js +6 -43
- package/dist/session/storage.js.map +1 -1
- package/dist/session/types.d.ts +4 -98
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js +0 -15
- package/dist/session/types.js.map +1 -1
- package/dist/tools/authenticate.d.ts +1 -1
- package/dist/tools/authenticate.d.ts.map +1 -1
- package/dist/tools/authenticate.js +21 -45
- package/dist/tools/authenticate.js.map +1 -1
- package/dist/tools/build/build.d.ts +1 -1
- package/dist/tools/build/build.d.ts.map +1 -1
- package/dist/tools/build/build.js +10 -35
- package/dist/tools/build/build.js.map +1 -1
- package/dist/tools/build/constants.d.ts +36 -0
- package/dist/tools/build/constants.d.ts.map +1 -1
- package/dist/tools/build/constants.js +36 -0
- package/dist/tools/build/constants.js.map +1 -1
- package/dist/tools/build/demolish.d.ts +1 -1
- package/dist/tools/build/demolish.d.ts.map +1 -1
- package/dist/tools/build/demolish.js +5 -1
- package/dist/tools/build/demolish.js.map +1 -1
- package/dist/tools/build/panel.utils.d.ts +4 -0
- package/dist/tools/build/panel.utils.d.ts.map +1 -0
- package/dist/tools/build/panel.utils.js +103 -0
- package/dist/tools/build/panel.utils.js.map +1 -0
- package/dist/tools/build/types.d.ts +9 -0
- package/dist/tools/build/types.d.ts.map +1 -1
- package/dist/tools/build/types.js.map +1 -1
- package/dist/tools/build/upgrade.d.ts +1 -1
- package/dist/tools/build/upgrade.d.ts.map +1 -1
- package/dist/tools/build/upgrade.js +10 -22
- package/dist/tools/build/upgrade.js.map +1 -1
- package/dist/tools/config/building-card/building-card.d.ts +4 -0
- package/dist/tools/config/building-card/building-card.d.ts.map +1 -0
- package/dist/tools/config/building-card/building-card.js +20 -0
- package/dist/tools/config/building-card/building-card.js.map +1 -0
- package/dist/tools/config/building-card/building-card.utils.d.ts +10 -0
- package/dist/tools/config/building-card/building-card.utils.d.ts.map +1 -0
- package/dist/tools/config/building-card/building-card.utils.js +206 -0
- package/dist/tools/config/building-card/building-card.utils.js.map +1 -0
- package/dist/tools/config/building-card/constants.d.ts +39 -0
- package/dist/tools/config/building-card/constants.d.ts.map +1 -0
- package/dist/tools/config/building-card/constants.js +43 -0
- package/dist/tools/config/building-card/constants.js.map +1 -0
- package/dist/tools/config/building-card/types.d.ts +63 -0
- package/dist/tools/config/building-card/types.d.ts.map +1 -0
- package/dist/tools/config/building-card/types.js +8 -0
- package/dist/tools/config/building-card/types.js.map +1 -0
- package/dist/tools/config/find-buildings/constants.d.ts +9 -0
- package/dist/tools/config/find-buildings/constants.d.ts.map +1 -0
- package/dist/tools/config/find-buildings/constants.js +19 -0
- package/dist/tools/config/find-buildings/constants.js.map +1 -0
- package/dist/tools/config/find-buildings/find-buildings.d.ts +4 -0
- package/dist/tools/config/find-buildings/find-buildings.d.ts.map +1 -0
- package/dist/tools/config/find-buildings/find-buildings.js +31 -0
- package/dist/tools/config/find-buildings/find-buildings.js.map +1 -0
- package/dist/tools/config/find-buildings/find-buildings.utils.d.ts +14 -0
- package/dist/tools/config/find-buildings/find-buildings.utils.d.ts.map +1 -0
- package/dist/tools/config/find-buildings/find-buildings.utils.js +85 -0
- package/dist/tools/config/find-buildings/find-buildings.utils.js.map +1 -0
- package/dist/tools/config/find-buildings/types.d.ts +36 -0
- package/dist/tools/config/find-buildings/types.d.ts.map +1 -0
- package/dist/tools/config/find-buildings/types.js +40 -0
- package/dist/tools/config/find-buildings/types.js.map +1 -0
- package/dist/tools/config/get-game-config/constants.d.ts +22 -7
- package/dist/tools/config/get-game-config/constants.d.ts.map +1 -1
- package/dist/tools/config/get-game-config/constants.js +60 -16
- package/dist/tools/config/get-game-config/constants.js.map +1 -1
- package/dist/tools/config/get-game-config/get-game-config.d.ts.map +1 -1
- package/dist/tools/config/get-game-config/get-game-config.js +8 -44
- package/dist/tools/config/get-game-config/get-game-config.js.map +1 -1
- package/dist/tools/config/get-game-config/get-game-config.utils.d.ts +9 -5
- package/dist/tools/config/get-game-config/get-game-config.utils.d.ts.map +1 -1
- package/dist/tools/config/get-game-config/get-game-config.utils.js +92 -79
- package/dist/tools/config/get-game-config/get-game-config.utils.js.map +1 -1
- package/dist/tools/config/get-game-config/types.d.ts +40 -0
- package/dist/tools/config/get-game-config/types.d.ts.map +1 -0
- package/dist/tools/config/get-game-config/types.js +2 -0
- package/dist/tools/config/get-game-config/types.js.map +1 -0
- package/dist/tools/config/resource-lens/constants.d.ts +24 -0
- package/dist/tools/config/resource-lens/constants.d.ts.map +1 -0
- package/dist/tools/config/resource-lens/constants.js +36 -0
- package/dist/tools/config/resource-lens/constants.js.map +1 -0
- package/dist/tools/config/resource-lens/resource-lens.d.ts +4 -0
- package/dist/tools/config/resource-lens/resource-lens.d.ts.map +1 -0
- package/dist/tools/config/resource-lens/resource-lens.js +16 -0
- package/dist/tools/config/resource-lens/resource-lens.js.map +1 -0
- package/dist/tools/config/resource-lens/resource-lens.utils.d.ts +6 -0
- package/dist/tools/config/resource-lens/resource-lens.utils.d.ts.map +1 -0
- package/dist/tools/config/resource-lens/resource-lens.utils.js +109 -0
- package/dist/tools/config/resource-lens/resource-lens.utils.js.map +1 -0
- package/dist/tools/config/resource-lens/types.d.ts +34 -0
- package/dist/tools/config/resource-lens/types.d.ts.map +1 -0
- package/dist/tools/config/resource-lens/types.js +8 -0
- package/dist/tools/config/resource-lens/types.js.map +1 -0
- package/dist/tools/craft/claim/claim-craft.d.ts +1 -1
- package/dist/tools/craft/claim/claim-craft.d.ts.map +1 -1
- package/dist/tools/craft/claim/claim-craft.js +5 -1
- package/dist/tools/craft/claim/claim-craft.js.map +1 -1
- package/dist/tools/craft/craft.d.ts +1 -1
- package/dist/tools/craft/craft.d.ts.map +1 -1
- package/dist/tools/craft/craft.js +5 -1
- package/dist/tools/craft/craft.js.map +1 -1
- package/dist/tools/map/attention/attention.d.ts.map +1 -1
- package/dist/tools/map/attention/attention.js +28 -11
- package/dist/tools/map/attention/attention.js.map +1 -1
- package/dist/tools/map/attention/constants.d.ts +25 -0
- package/dist/tools/map/attention/constants.d.ts.map +1 -1
- package/dist/tools/map/attention/constants.js +38 -2
- package/dist/tools/map/attention/constants.js.map +1 -1
- package/dist/tools/map/attention/evicted.service.d.ts +19 -0
- package/dist/tools/map/attention/evicted.service.d.ts.map +1 -0
- package/dist/tools/map/attention/evicted.service.js +73 -0
- package/dist/tools/map/attention/evicted.service.js.map +1 -0
- package/dist/tools/map/attention/evicted.utils.d.ts +16 -0
- package/dist/tools/map/attention/evicted.utils.d.ts.map +1 -0
- package/dist/tools/map/attention/evicted.utils.js +72 -0
- package/dist/tools/map/attention/evicted.utils.js.map +1 -0
- package/dist/tools/map/attention/panel.utils.d.ts +3 -0
- package/dist/tools/map/attention/panel.utils.d.ts.map +1 -0
- package/dist/tools/map/attention/panel.utils.js +58 -0
- package/dist/tools/map/attention/panel.utils.js.map +1 -0
- package/dist/tools/map/attention/types.d.ts +29 -1
- package/dist/tools/map/attention/types.d.ts.map +1 -1
- package/dist/tools/map/attention/types.js.map +1 -1
- package/dist/tools/map/get-cell/constants.d.ts +20 -0
- package/dist/tools/map/get-cell/constants.d.ts.map +1 -1
- package/dist/tools/map/get-cell/constants.js +20 -0
- package/dist/tools/map/get-cell/constants.js.map +1 -1
- package/dist/tools/map/get-cell/demolish.utils.d.ts +1 -1
- package/dist/tools/map/get-cell/demolish.utils.d.ts.map +1 -1
- package/dist/tools/map/get-cell/demolish.utils.js +3 -5
- package/dist/tools/map/get-cell/demolish.utils.js.map +1 -1
- package/dist/tools/map/get-cell/get-cell.d.ts.map +1 -1
- package/dist/tools/map/get-cell/get-cell.js +12 -5
- package/dist/tools/map/get-cell/get-cell.js.map +1 -1
- package/dist/tools/map/get-cell/panel.utils.d.ts +3 -0
- package/dist/tools/map/get-cell/panel.utils.d.ts.map +1 -0
- package/dist/tools/map/get-cell/panel.utils.js +65 -0
- package/dist/tools/map/get-cell/panel.utils.js.map +1 -0
- package/dist/tools/map/get-cell/types.d.ts +9 -0
- package/dist/tools/map/get-cell/types.d.ts.map +1 -1
- package/dist/tools/map/get-cell/types.js.map +1 -1
- package/dist/tools/map/get-changes/constants.d.ts +31 -0
- package/dist/tools/map/get-changes/constants.d.ts.map +1 -1
- package/dist/tools/map/get-changes/constants.js +47 -0
- package/dist/tools/map/get-changes/constants.js.map +1 -1
- package/dist/tools/map/get-changes/get-changes.d.ts.map +1 -1
- package/dist/tools/map/get-changes/get-changes.js +9 -3
- package/dist/tools/map/get-changes/get-changes.js.map +1 -1
- package/dist/tools/map/get-changes/panel.utils.d.ts +3 -0
- package/dist/tools/map/get-changes/panel.utils.d.ts.map +1 -0
- package/dist/tools/map/get-changes/panel.utils.js +46 -0
- package/dist/tools/map/get-changes/panel.utils.js.map +1 -0
- package/dist/tools/map/get-changes/types.d.ts +9 -0
- package/dist/tools/map/get-changes/types.d.ts.map +1 -1
- package/dist/tools/map/get-changes/types.js.map +1 -1
- package/dist/tools/map/get-map/constants.d.ts.map +1 -1
- package/dist/tools/map/get-map/constants.js +5 -3
- package/dist/tools/map/get-map/constants.js.map +1 -1
- package/dist/tools/map/label.utils.d.ts +1 -0
- package/dist/tools/map/label.utils.d.ts.map +1 -1
- package/dist/tools/mining/claim/claim-mining.d.ts +1 -1
- package/dist/tools/mining/claim/claim-mining.d.ts.map +1 -1
- package/dist/tools/mining/claim/claim-mining.js +5 -1
- package/dist/tools/mining/claim/claim-mining.js.map +1 -1
- package/dist/tools/mining/start/start-mining.d.ts +1 -1
- package/dist/tools/mining/start/start-mining.d.ts.map +1 -1
- package/dist/tools/mining/start/start-mining.js +5 -1
- package/dist/tools/mining/start/start-mining.js.map +1 -1
- package/dist/tools/mint/constants.d.ts.map +1 -1
- package/dist/tools/mint/constants.js +10 -9
- package/dist/tools/mint/constants.js.map +1 -1
- package/dist/tools/mint/format.utils.js +4 -4
- package/dist/tools/mint/format.utils.js.map +1 -1
- package/dist/tools/mint/mint-cell.d.ts +1 -1
- package/dist/tools/mint/mint-cell.d.ts.map +1 -1
- package/dist/tools/mint/mint-cell.js +2 -1
- package/dist/tools/mint/mint-cell.js.map +1 -1
- package/dist/tools/persona/constants.d.ts +12 -0
- package/dist/tools/persona/constants.d.ts.map +1 -0
- package/dist/tools/persona/constants.js +144 -0
- package/dist/tools/persona/constants.js.map +1 -0
- package/dist/tools/persona/persona.d.ts +4 -0
- package/dist/tools/persona/persona.d.ts.map +1 -0
- package/dist/tools/persona/persona.gate.d.ts +5 -0
- package/dist/tools/persona/persona.gate.d.ts.map +1 -0
- package/dist/tools/persona/persona.gate.js +21 -0
- package/dist/tools/persona/persona.gate.js.map +1 -0
- package/dist/tools/persona/persona.js +9 -0
- package/dist/tools/persona/persona.js.map +1 -0
- package/dist/tools/persona/persona.utils.d.ts +2 -0
- package/dist/tools/persona/persona.utils.d.ts.map +1 -0
- package/dist/tools/persona/persona.utils.js +17 -0
- package/dist/tools/persona/persona.utils.js.map +1 -0
- package/dist/tools/persona/types.d.ts +14 -0
- package/dist/tools/persona/types.d.ts.map +1 -0
- package/dist/tools/persona/types.js +11 -0
- package/dist/tools/persona/types.js.map +1 -0
- package/dist/tools/reveal/constants.d.ts.map +1 -1
- package/dist/tools/reveal/constants.js +3 -1
- package/dist/tools/reveal/constants.js.map +1 -1
- package/dist/tools/reveal/fulfill-reveal.d.ts +1 -1
- package/dist/tools/reveal/fulfill-reveal.d.ts.map +1 -1
- package/dist/tools/reveal/fulfill-reveal.js +11 -1
- package/dist/tools/reveal/fulfill-reveal.js.map +1 -1
- package/dist/tools/reveal/reveal.d.ts +1 -1
- package/dist/tools/reveal/reveal.d.ts.map +1 -1
- package/dist/tools/reveal/reveal.js +11 -1
- package/dist/tools/reveal/reveal.js.map +1 -1
- package/dist/tools/swap/swap.d.ts +1 -1
- package/dist/tools/swap/swap.d.ts.map +1 -1
- package/dist/tools/swap/swap.js +2 -1
- package/dist/tools/swap/swap.js.map +1 -1
- package/dist/tools/syndicate/create/create-syndicate.d.ts.map +1 -1
- package/dist/tools/syndicate/create/create-syndicate.js +6 -9
- package/dist/tools/syndicate/create/create-syndicate.js.map +1 -1
- package/dist/tools/syndicate/format.utils.d.ts.map +1 -1
- package/dist/tools/syndicate/format.utils.js +7 -9
- package/dist/tools/syndicate/format.utils.js.map +1 -1
- package/dist/tools/syndicate/get/constants.d.ts.map +1 -1
- package/dist/tools/syndicate/get/constants.js +3 -2
- package/dist/tools/syndicate/get/constants.js.map +1 -1
- package/dist/tools/syndicate/get/get-syndicate.d.ts.map +1 -1
- package/dist/tools/syndicate/get/get-syndicate.js +6 -9
- package/dist/tools/syndicate/get/get-syndicate.js.map +1 -1
- package/dist/tools/syndicate/join/constants.d.ts.map +1 -1
- package/dist/tools/syndicate/join/constants.js +2 -1
- package/dist/tools/syndicate/join/constants.js.map +1 -1
- package/dist/tools/syndicate/join/join-syndicate.d.ts.map +1 -1
- package/dist/tools/syndicate/join/join-syndicate.js +6 -9
- package/dist/tools/syndicate/join/join-syndicate.js.map +1 -1
- package/dist/tools/syndicate/leave/leave-syndicate.d.ts.map +1 -1
- package/dist/tools/syndicate/leave/leave-syndicate.js +6 -9
- package/dist/tools/syndicate/leave/leave-syndicate.js.map +1 -1
- package/dist/tools/syndicate/list/constants.d.ts.map +1 -1
- package/dist/tools/syndicate/list/constants.js +3 -2
- package/dist/tools/syndicate/list/constants.js.map +1 -1
- package/dist/tools/syndicate/list/list-syndicates.d.ts.map +1 -1
- package/dist/tools/syndicate/list/list-syndicates.js +6 -9
- package/dist/tools/syndicate/list/list-syndicates.js.map +1 -1
- package/dist/tools/syndicate/membership/constants.js +2 -2
- package/dist/tools/syndicate/membership/constants.js.map +1 -1
- package/dist/tools/syndicate/membership/get-membership.d.ts.map +1 -1
- package/dist/tools/syndicate/membership/get-membership.js +6 -9
- package/dist/tools/syndicate/membership/get-membership.js.map +1 -1
- package/dist/tools/syndicate/player-content/constants.d.ts +3 -0
- package/dist/tools/syndicate/player-content/constants.d.ts.map +1 -0
- package/dist/tools/syndicate/player-content/constants.js +13 -0
- package/dist/tools/syndicate/player-content/constants.js.map +1 -0
- package/dist/tools/syndicate/player-content/get-syndicate-player-content.d.ts +4 -0
- package/dist/tools/syndicate/player-content/get-syndicate-player-content.d.ts.map +1 -0
- package/dist/tools/syndicate/player-content/get-syndicate-player-content.js +13 -0
- package/dist/tools/syndicate/player-content/get-syndicate-player-content.js.map +1 -0
- package/dist/tools/syndicate/player-content/presentation.utils.d.ts +21 -0
- package/dist/tools/syndicate/player-content/presentation.utils.d.ts.map +1 -0
- package/dist/tools/syndicate/player-content/presentation.utils.js +22 -0
- package/dist/tools/syndicate/player-content/presentation.utils.js.map +1 -0
- package/dist/tools/syndicate/player-content/types.d.ts +71 -0
- package/dist/tools/syndicate/player-content/types.d.ts.map +1 -0
- package/dist/tools/syndicate/player-content/types.js +30 -0
- package/dist/tools/syndicate/player-content/types.js.map +1 -0
- package/dist/tools/syndicate/presentation.utils.d.ts +8 -0
- package/dist/tools/syndicate/presentation.utils.d.ts.map +1 -0
- package/dist/tools/syndicate/presentation.utils.js +121 -0
- package/dist/tools/syndicate/presentation.utils.js.map +1 -0
- package/dist/tools/syndicate/set-params/constants.d.ts.map +1 -1
- package/dist/tools/syndicate/set-params/constants.js +4 -2
- package/dist/tools/syndicate/set-params/constants.js.map +1 -1
- package/dist/tools/syndicate/set-params/set-syndicate-params.d.ts.map +1 -1
- package/dist/tools/syndicate/set-params/set-syndicate-params.js +6 -9
- package/dist/tools/syndicate/set-params/set-syndicate-params.js.map +1 -1
- package/dist/tools/syndicate/transfer-manager/transfer-syndicate-manager.d.ts.map +1 -1
- package/dist/tools/syndicate/transfer-manager/transfer-syndicate-manager.js +6 -9
- package/dist/tools/syndicate/transfer-manager/transfer-syndicate-manager.js.map +1 -1
- package/dist/tools/syndicate/types.d.ts +36 -0
- package/dist/tools/syndicate/types.d.ts.map +1 -1
- package/dist/tools/syndicate/types.js +11 -0
- package/dist/tools/syndicate/types.js.map +1 -1
- package/dist/tools/trade/buy-lot/buy-lot.d.ts +1 -1
- package/dist/tools/trade/buy-lot/buy-lot.d.ts.map +1 -1
- package/dist/tools/trade/buy-lot/buy-lot.js +4 -1
- package/dist/tools/trade/buy-lot/buy-lot.js.map +1 -1
- package/dist/tools/trade/buy-lot/constants.d.ts.map +1 -1
- package/dist/tools/trade/buy-lot/constants.js +2 -0
- package/dist/tools/trade/buy-lot/constants.js.map +1 -1
- package/dist/tools/trade/buyer-guard/constants.d.ts +4 -0
- package/dist/tools/trade/buyer-guard/constants.d.ts.map +1 -0
- package/dist/tools/trade/buyer-guard/constants.js +11 -0
- package/dist/tools/trade/buyer-guard/constants.js.map +1 -0
- package/dist/tools/trade/buyer-guard/lot-open.guard.d.ts +9 -0
- package/dist/tools/trade/buyer-guard/lot-open.guard.d.ts.map +1 -0
- package/dist/tools/trade/buyer-guard/lot-open.guard.js +15 -0
- package/dist/tools/trade/buyer-guard/lot-open.guard.js.map +1 -0
- package/dist/tools/trade/buyer-guard/types.d.ts +6 -0
- package/dist/tools/trade/buyer-guard/types.d.ts.map +1 -0
- package/dist/tools/trade/buyer-guard/types.js +2 -0
- package/dist/tools/trade/buyer-guard/types.js.map +1 -0
- package/dist/tools/trade/constants.d.ts +5 -0
- package/dist/tools/trade/constants.d.ts.map +1 -0
- package/dist/tools/trade/constants.js +14 -0
- package/dist/tools/trade/constants.js.map +1 -0
- package/dist/tools/trade/create-lot/constants.d.ts.map +1 -1
- package/dist/tools/trade/create-lot/constants.js +4 -1
- package/dist/tools/trade/create-lot/constants.js.map +1 -1
- package/dist/tools/trade/create-lot/create-lot.d.ts +3 -2
- package/dist/tools/trade/create-lot/create-lot.d.ts.map +1 -1
- package/dist/tools/trade/create-lot/create-lot.js +17 -2
- package/dist/tools/trade/create-lot/create-lot.js.map +1 -1
- package/dist/tools/trade/evict-lot/constants.d.ts +4 -0
- package/dist/tools/trade/evict-lot/constants.d.ts.map +1 -0
- package/dist/tools/trade/evict-lot/constants.js +13 -0
- package/dist/tools/trade/evict-lot/constants.js.map +1 -0
- package/dist/tools/trade/evict-lot/evict-lot.d.ts +6 -0
- package/dist/tools/trade/evict-lot/evict-lot.d.ts.map +1 -0
- package/dist/tools/trade/evict-lot/evict-lot.js +35 -0
- package/dist/tools/trade/evict-lot/evict-lot.js.map +1 -0
- package/dist/tools/trade/evict-lot/format.utils.d.ts +5 -0
- package/dist/tools/trade/evict-lot/format.utils.d.ts.map +1 -0
- package/dist/tools/trade/evict-lot/format.utils.js +10 -0
- package/dist/tools/trade/evict-lot/format.utils.js.map +1 -0
- package/dist/tools/trade/evict-lot/types.d.ts +5 -0
- package/dist/tools/trade/evict-lot/types.d.ts.map +1 -0
- package/dist/tools/trade/evict-lot/types.js +8 -0
- package/dist/tools/trade/evict-lot/types.js.map +1 -0
- package/dist/tools/trade/format.utils.d.ts +2 -4
- package/dist/tools/trade/format.utils.d.ts.map +1 -1
- package/dist/tools/trade/format.utils.js +11 -13
- package/dist/tools/trade/format.utils.js.map +1 -1
- package/dist/tools/trade/get-lot/constants.d.ts.map +1 -1
- package/dist/tools/trade/get-lot/constants.js +2 -1
- package/dist/tools/trade/get-lot/constants.js.map +1 -1
- package/dist/tools/trade/list-lots/constants.d.ts +2 -0
- package/dist/tools/trade/list-lots/constants.d.ts.map +1 -1
- package/dist/tools/trade/list-lots/constants.js +5 -1
- package/dist/tools/trade/list-lots/constants.js.map +1 -1
- package/dist/tools/trade/list-lots/list-lots.d.ts.map +1 -1
- package/dist/tools/trade/list-lots/list-lots.js +2 -1
- package/dist/tools/trade/list-lots/list-lots.js.map +1 -1
- package/dist/tools/trade/list-lots/list-lots.utils.d.ts +8 -0
- package/dist/tools/trade/list-lots/list-lots.utils.d.ts.map +1 -0
- package/dist/tools/trade/list-lots/list-lots.utils.js +10 -0
- package/dist/tools/trade/list-lots/list-lots.utils.js.map +1 -0
- package/dist/tools/trade/list-mine/constants.d.ts.map +1 -1
- package/dist/tools/trade/list-mine/constants.js +3 -1
- package/dist/tools/trade/list-mine/constants.js.map +1 -1
- package/dist/tools/trade/lot-terms/constants.d.ts +5 -0
- package/dist/tools/trade/lot-terms/constants.d.ts.map +1 -0
- package/dist/tools/trade/lot-terms/constants.js +13 -0
- package/dist/tools/trade/lot-terms/constants.js.map +1 -0
- package/dist/tools/trade/lot-terms/factory.d.ts +4 -0
- package/dist/tools/trade/lot-terms/factory.d.ts.map +1 -0
- package/dist/tools/trade/lot-terms/factory.js +14 -0
- package/dist/tools/trade/lot-terms/factory.js.map +1 -0
- package/dist/tools/trade/lot-terms/format.utils.d.ts +4 -0
- package/dist/tools/trade/lot-terms/format.utils.d.ts.map +1 -0
- package/dist/tools/trade/lot-terms/format.utils.js +30 -0
- package/dist/tools/trade/lot-terms/format.utils.js.map +1 -0
- package/dist/tools/trade/lot-terms/lot-terms.d.ts +5 -0
- package/dist/tools/trade/lot-terms/lot-terms.d.ts.map +1 -0
- package/dist/tools/trade/lot-terms/lot-terms.js +23 -0
- package/dist/tools/trade/lot-terms/lot-terms.js.map +1 -0
- package/dist/tools/trade/lot-terms/types.d.ts +6 -0
- package/dist/tools/trade/lot-terms/types.d.ts.map +1 -0
- package/dist/tools/trade/lot-terms/types.js +7 -0
- package/dist/tools/trade/lot-terms/types.js.map +1 -0
- package/dist/tools/trade/market-index/constants.d.ts.map +1 -1
- package/dist/tools/trade/market-index/constants.js +2 -0
- package/dist/tools/trade/market-index/constants.js.map +1 -1
- package/dist/tools/trade/markets/constants.d.ts.map +1 -1
- package/dist/tools/trade/markets/constants.js +2 -1
- package/dist/tools/trade/markets/constants.js.map +1 -1
- package/dist/tools/trade/quote-buy/constants.d.ts.map +1 -1
- package/dist/tools/trade/quote-buy/constants.js +4 -2
- package/dist/tools/trade/quote-buy/constants.js.map +1 -1
- package/dist/tools/trade/quote-buy/quote-buy.d.ts.map +1 -1
- package/dist/tools/trade/quote-buy/quote-buy.js +2 -0
- package/dist/tools/trade/quote-buy/quote-buy.js.map +1 -1
- package/dist/tools/trade/quote-lot-return/constants.d.ts +2 -0
- package/dist/tools/trade/quote-lot-return/constants.d.ts.map +1 -0
- package/dist/tools/trade/quote-lot-return/constants.js +11 -0
- package/dist/tools/trade/quote-lot-return/constants.js.map +1 -0
- package/dist/tools/trade/quote-lot-return/quote-lot-return.d.ts +5 -0
- package/dist/tools/trade/quote-lot-return/quote-lot-return.d.ts.map +1 -0
- package/dist/tools/trade/quote-lot-return/quote-lot-return.js +20 -0
- package/dist/tools/trade/quote-lot-return/quote-lot-return.js.map +1 -0
- package/dist/tools/trade/return-lot/constants.d.ts +5 -0
- package/dist/tools/trade/return-lot/constants.d.ts.map +1 -0
- package/dist/tools/trade/return-lot/constants.js +26 -0
- package/dist/tools/trade/return-lot/constants.js.map +1 -0
- package/dist/tools/trade/return-lot/factory.d.ts +4 -0
- package/dist/tools/trade/return-lot/factory.d.ts.map +1 -0
- package/dist/tools/trade/return-lot/factory.js +18 -0
- package/dist/tools/trade/return-lot/factory.js.map +1 -0
- package/dist/tools/trade/return-lot/format.utils.d.ts +5 -0
- package/dist/tools/trade/return-lot/format.utils.d.ts.map +1 -0
- package/dist/tools/trade/return-lot/format.utils.js +39 -0
- package/dist/tools/trade/return-lot/format.utils.js.map +1 -0
- package/dist/tools/trade/return-lot/return-lot.d.ts +5 -0
- package/dist/tools/trade/return-lot/return-lot.d.ts.map +1 -0
- package/dist/tools/trade/return-lot/return-lot.js +25 -0
- package/dist/tools/trade/return-lot/return-lot.js.map +1 -0
- package/dist/tools/trade/return-lot/types.d.ts +11 -0
- package/dist/tools/trade/return-lot/types.d.ts.map +1 -0
- package/dist/tools/trade/return-lot/types.js +21 -0
- package/dist/tools/trade/return-lot/types.js.map +1 -0
- package/dist/tools/trade/set-sale-fee/set-sale-fee.d.ts +1 -1
- package/dist/tools/trade/set-sale-fee/set-sale-fee.d.ts.map +1 -1
- package/dist/tools/trade/set-sale-fee/set-sale-fee.js +2 -1
- package/dist/tools/trade/set-sale-fee/set-sale-fee.js.map +1 -1
- package/dist/tools/trade/types.d.ts +0 -4
- package/dist/tools/trade/types.d.ts.map +1 -1
- package/dist/tools/trade/types.js +4 -12
- package/dist/tools/trade/types.js.map +1 -1
- package/dist/tools/transport/constants.d.ts.map +1 -1
- package/dist/tools/transport/constants.js +54 -29
- package/dist/tools/transport/constants.js.map +1 -1
- package/dist/tools/transport/finalize/finalize-delivery.d.ts +1 -1
- package/dist/tools/transport/finalize/finalize-delivery.d.ts.map +1 -1
- package/dist/tools/transport/finalize/finalize-delivery.js +2 -1
- package/dist/tools/transport/finalize/finalize-delivery.js.map +1 -1
- package/dist/tools/transport/network/constants.d.ts +18 -0
- package/dist/tools/transport/network/constants.d.ts.map +1 -1
- package/dist/tools/transport/network/constants.js +18 -0
- package/dist/tools/transport/network/constants.js.map +1 -1
- package/dist/tools/transport/network/panel.utils.d.ts +3 -0
- package/dist/tools/transport/network/panel.utils.d.ts.map +1 -0
- package/dist/tools/transport/network/panel.utils.js +52 -0
- package/dist/tools/transport/network/panel.utils.js.map +1 -0
- package/dist/tools/transport/network/route-network.d.ts.map +1 -1
- package/dist/tools/transport/network/route-network.js +4 -21
- package/dist/tools/transport/network/route-network.js.map +1 -1
- package/dist/tools/transport/next-hops/constants.d.ts +1 -0
- package/dist/tools/transport/next-hops/constants.d.ts.map +1 -1
- package/dist/tools/transport/next-hops/constants.js +2 -0
- package/dist/tools/transport/next-hops/constants.js.map +1 -1
- package/dist/tools/transport/next-hops/next-hops.d.ts.map +1 -1
- package/dist/tools/transport/next-hops/next-hops.js +33 -12
- package/dist/tools/transport/next-hops/next-hops.js.map +1 -1
- package/dist/tools/transport/quote/constants.d.ts.map +1 -1
- package/dist/tools/transport/quote/constants.js +10 -3
- package/dist/tools/transport/quote/constants.js.map +1 -1
- package/dist/tools/transport/transport.d.ts +1 -1
- package/dist/tools/transport/transport.d.ts.map +1 -1
- package/dist/tools/transport/transport.js +2 -1
- package/dist/tools/transport/transport.js.map +1 -1
- package/dist/tools/transport/types.d.ts +5 -2
- package/dist/tools/transport/types.d.ts.map +1 -1
- package/dist/tools/transport/types.js +37 -14
- package/dist/tools/transport/types.js.map +1 -1
- package/dist/tools/types.d.ts +31 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +41 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/withdraw/withdraw.d.ts +1 -1
- package/dist/tools/withdraw/withdraw.d.ts.map +1 -1
- package/dist/tools/withdraw/withdraw.js +2 -1
- package/dist/tools/withdraw/withdraw.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/panel.constants.d.ts +18 -0
- package/dist/utils/panel.constants.d.ts.map +1 -0
- package/dist/utils/panel.constants.js +24 -0
- package/dist/utils/panel.constants.js.map +1 -0
- package/dist/utils/panel.types.d.ts +10 -0
- package/dist/utils/panel.types.d.ts.map +1 -0
- package/dist/utils/panel.types.js +2 -0
- package/dist/utils/panel.types.js.map +1 -0
- package/dist/utils/panel.utils.d.ts +4 -0
- package/dist/utils/panel.utils.d.ts.map +1 -0
- package/dist/utils/panel.utils.js +117 -0
- package/dist/utils/panel.utils.js.map +1 -0
- package/dist/utils/safe-json.constants.d.ts +2 -0
- package/dist/utils/safe-json.constants.d.ts.map +1 -0
- package/dist/utils/safe-json.constants.js +20 -0
- package/dist/utils/safe-json.constants.js.map +1 -0
- package/dist/utils/safe-json.utils.d.ts +3 -0
- package/dist/utils/safe-json.utils.d.ts.map +1 -0
- package/dist/utils/safe-json.utils.js +44 -0
- package/dist/utils/safe-json.utils.js.map +1 -0
- package/dist/utils/wei.constants.d.ts +6 -0
- package/dist/utils/wei.constants.d.ts.map +1 -0
- package/dist/utils/wei.constants.js +6 -0
- package/dist/utils/wei.constants.js.map +1 -0
- package/dist/version/tool-guard.d.ts +1 -1
- package/dist/version/tool-guard.d.ts.map +1 -1
- package/dist/version/tool-guard.js +3 -3
- package/dist/version/tool-guard.js.map +1 -1
- package/dist/version/types.d.ts +1 -1
- package/dist/version/types.d.ts.map +1 -1
- package/dist/wallet/index.d.ts.map +1 -1
- package/dist/wallet/index.js +2 -3
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/types.d.ts +0 -9
- package/dist/wallet/types.d.ts.map +1 -1
- package/dist/wallet/types.js.map +1 -1
- package/package.json +2 -2
- package/dist/map/process.utils.d.ts +0 -32
- package/dist/map/process.utils.d.ts.map +0 -1
- package/dist/map/process.utils.js +0 -30
- package/dist/map/process.utils.js.map +0 -1
- package/dist/map/settle.utils.d.ts +0 -20
- package/dist/map/settle.utils.d.ts.map +0 -1
- package/dist/map/settle.utils.js +0 -77
- package/dist/map/settle.utils.js.map +0 -1
- package/dist/tools/trade/cancel-lot/cancel-lot.d.ts +0 -4
- package/dist/tools/trade/cancel-lot/cancel-lot.d.ts.map +0 -1
- package/dist/tools/trade/cancel-lot/cancel-lot.js +0 -19
- package/dist/tools/trade/cancel-lot/cancel-lot.js.map +0 -1
- package/dist/tools/trade/cancel-lot/constants.d.ts +0 -2
- package/dist/tools/trade/cancel-lot/constants.d.ts.map +0 -1
- package/dist/tools/trade/cancel-lot/constants.js +0 -8
- package/dist/tools/trade/cancel-lot/constants.js.map +0 -1
- package/dist/wallet/agw.manager.d.ts +0 -20
- package/dist/wallet/agw.manager.d.ts.map +0 -1
- package/dist/wallet/agw.manager.js +0 -90
- package/dist/wallet/agw.manager.js.map +0 -1
- package/dist/wallet/agw.provider.d.ts +0 -14
- package/dist/wallet/agw.provider.d.ts.map +0 -1
- package/dist/wallet/agw.provider.js +0 -48
- package/dist/wallet/agw.provider.js.map +0 -1
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { decodeDeliveryScheduled, settleTransitFees } from './delivery.helpers.js';
|
|
2
|
+
import { assertFeeWithinCeiling, assertReturnRoute, assertReturnableLot, assertRouteStartsAtHub, assertWholeRemainder, decodeReturnedUnits, describeCapacityRefusal, describeLotReturnRevert, parseFeeCeilingWei, returnBranchOf, } from './lot-return.utils.js';
|
|
3
|
+
import { preparePaidAction } from './paid-action.js';
|
|
4
|
+
import { AppContract } from './paid-action.types.js';
|
|
5
|
+
import { LotReturnBranch, } from './types.js';
|
|
6
|
+
import { assessDestinationCapacity } from './warehouse.utils.js';
|
|
7
|
+
import { toProjectionConfig } from '../map/reader.utils.js';
|
|
8
|
+
import { configuredStorageCap, usesHubShelf } from '../map/storage.utils.js';
|
|
9
|
+
import { cpuFromWei } from '../utils/format.utils.js';
|
|
10
|
+
/**
|
|
11
|
+
* One seller intent — send a lot's whole unsold remainder home — over the two contract branches that can
|
|
12
|
+
* carry it: `cancel` for an Open lot, `reclaim` for an Evicted one. Both are priced by `Trade.quoteReturn`
|
|
13
|
+
* and both carry the ceiling the seller passes in, never a figure this service picked for them: the route is
|
|
14
|
+
* re-priced on-chain to decide, and a fee that outgrew the seller's ceiling refuses before anything is spent.
|
|
15
|
+
*/
|
|
16
|
+
export class LotReturnService {
|
|
17
|
+
wallet;
|
|
18
|
+
appConfig;
|
|
19
|
+
allowance;
|
|
20
|
+
contracts;
|
|
21
|
+
tradeClient;
|
|
22
|
+
mapReader;
|
|
23
|
+
logger;
|
|
24
|
+
constructor(options) {
|
|
25
|
+
this.wallet = options.wallet;
|
|
26
|
+
this.appConfig = options.appConfig;
|
|
27
|
+
this.allowance = options.allowance;
|
|
28
|
+
this.contracts = options.contracts;
|
|
29
|
+
this.tradeClient = options.tradeClient;
|
|
30
|
+
this.mapReader = options.mapReader;
|
|
31
|
+
this.logger = options.logger;
|
|
32
|
+
}
|
|
33
|
+
async quoteReturn(input) {
|
|
34
|
+
const prepared = await this.prepare(input);
|
|
35
|
+
const quote = await this.quoteOnChain(prepared);
|
|
36
|
+
const capacity = await this.assessDestination(prepared, quote.amount);
|
|
37
|
+
return this.toQuoteView(prepared, quote, capacity);
|
|
38
|
+
}
|
|
39
|
+
async returnLot(input) {
|
|
40
|
+
const maxFee = parseFeeCeilingWei(input.maxTransitFeeWei, input.lotId);
|
|
41
|
+
const prepared = await this.prepare(input);
|
|
42
|
+
const { action, trade, lot, state, lotId, returnTokenIds } = prepared;
|
|
43
|
+
const transport = action.requireContract(AppContract.Transport, 'cannot route goods');
|
|
44
|
+
const quote = await this.quoteOnChain(prepared);
|
|
45
|
+
assertWholeRemainder(quote.amount, lot.remaining, input.lotId);
|
|
46
|
+
assertFeeWithinCeiling(quote.transitFee, maxFee, input.lotId);
|
|
47
|
+
const capacity = await this.assessDestination(prepared, quote.amount);
|
|
48
|
+
if (!capacity.fits) {
|
|
49
|
+
throw new Error(describeCapacityRefusal(capacity, prepared.destinationTokenId, input.lotId));
|
|
50
|
+
}
|
|
51
|
+
const branch = returnBranchOf(state);
|
|
52
|
+
// The price decides whether an allowance is needed at all; the ceiling only decides how much it caps.
|
|
53
|
+
// Keying this on the ceiling would send an unbounded approve for a route that costs nothing.
|
|
54
|
+
const approveTxHash = quote.transitFee === 0n
|
|
55
|
+
? null
|
|
56
|
+
: await this.allowance.ensureAllowance(action.requireContract(AppContract.CpuToken, 'cannot pay for transit'), transport, maxFee);
|
|
57
|
+
this.logger.info('returning lot', {
|
|
58
|
+
lotId: input.lotId,
|
|
59
|
+
branch,
|
|
60
|
+
maxFeeWei: maxFee.toString(),
|
|
61
|
+
quotedFeeWei: quote.transitFee.toString(),
|
|
62
|
+
amount: quote.amount.toString(),
|
|
63
|
+
});
|
|
64
|
+
let confirmed;
|
|
65
|
+
try {
|
|
66
|
+
const txHash = branch === LotReturnBranch.Reclaimed
|
|
67
|
+
? await this.tradeClient.reclaim({ trade, lotId, returnTokenIds, maxFee })
|
|
68
|
+
: await this.tradeClient.cancel({ trade, lotId, returnTokenIds, maxFee });
|
|
69
|
+
confirmed = await this.contracts.confirm(txHash, `Return lot ${input.lotId}`);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
throw describeLotReturnRevert(error, branch);
|
|
73
|
+
}
|
|
74
|
+
const scheduled = decodeDeliveryScheduled(confirmed.logs, transport);
|
|
75
|
+
const transit = settleTransitFees(confirmed.logs, transport, quote.transitFee);
|
|
76
|
+
const returned = decodeReturnedUnits(confirmed.logs, trade, quote.amount, this.logger);
|
|
77
|
+
return {
|
|
78
|
+
lotId: input.lotId,
|
|
79
|
+
originalState: state,
|
|
80
|
+
branch,
|
|
81
|
+
hubTokenId: lot.hub.toString(),
|
|
82
|
+
resourceId: lot.resource,
|
|
83
|
+
returned: returned.toString(),
|
|
84
|
+
transitPaid: cpuFromWei(transit.transitPaid.toString()),
|
|
85
|
+
transitDiscount: cpuFromWei(transit.transitDiscount.toString()),
|
|
86
|
+
destinationTokenId: scheduled.targetId.toString(),
|
|
87
|
+
deliveryId: scheduled.deliveryId.toString(),
|
|
88
|
+
arrivalAt: Number(scheduled.arrivalAt),
|
|
89
|
+
approveTxHash,
|
|
90
|
+
txHash: confirmed.txHash,
|
|
91
|
+
status: confirmed.status,
|
|
92
|
+
blockNumber: confirmed.blockNumber,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
async prepare(input) {
|
|
96
|
+
const action = await preparePaidAction({ appConfig: this.appConfig, wallet: this.wallet });
|
|
97
|
+
const trade = action.requireContract(AppContract.Trade, 'cannot return a lot');
|
|
98
|
+
assertReturnRoute(input.chain);
|
|
99
|
+
const seller = action.wallet.getAddress();
|
|
100
|
+
const lotId = BigInt(input.lotId);
|
|
101
|
+
const lot = await this.tradeClient.getLot({ trade, lotId });
|
|
102
|
+
const state = assertReturnableLot(lot, seller, input.lotId);
|
|
103
|
+
assertRouteStartsAtHub(input.chain, lot.hub, input.lotId);
|
|
104
|
+
return {
|
|
105
|
+
action,
|
|
106
|
+
trade,
|
|
107
|
+
lot,
|
|
108
|
+
state,
|
|
109
|
+
seller,
|
|
110
|
+
lotId,
|
|
111
|
+
returnTokenIds: input.chain.map((tokenId) => BigInt(tokenId)),
|
|
112
|
+
destinationTokenId: String(input.chain[input.chain.length - 1]),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
async quoteOnChain(prepared) {
|
|
116
|
+
return this.tradeClient.quoteReturn({
|
|
117
|
+
trade: prepared.trade,
|
|
118
|
+
lotId: prepared.lotId,
|
|
119
|
+
returnTokenIds: prepared.returnTokenIds,
|
|
120
|
+
seller: prepared.seller,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
async assessDestination(prepared, required) {
|
|
124
|
+
await this.mapReader.refresh();
|
|
125
|
+
const cell = await this.mapReader.readRevealCell(prepared.destinationTokenId);
|
|
126
|
+
if (cell === null) {
|
|
127
|
+
throw new Error(`Cell ${prepared.destinationTokenId} is not in the world map, so the room it has for the ` +
|
|
128
|
+
`remainder cannot be checked. Nothing was sent — retry shortly, or route the return to a ` +
|
|
129
|
+
`revealed cell of your own.`);
|
|
130
|
+
}
|
|
131
|
+
const projection = toProjectionConfig(prepared.action.config);
|
|
132
|
+
const emptyStorageCap = configuredStorageCap(prepared.lot.resource, usesHubShelf(cell.building, cell.ready, projection), projection);
|
|
133
|
+
return assessDestinationCapacity(cell, prepared.lot.resource, required, emptyStorageCap);
|
|
134
|
+
}
|
|
135
|
+
toQuoteView(prepared, quote, capacity) {
|
|
136
|
+
return {
|
|
137
|
+
lotId: prepared.lotId.toString(),
|
|
138
|
+
hubTokenId: prepared.lot.hub.toString(),
|
|
139
|
+
resourceId: prepared.lot.resource,
|
|
140
|
+
amount: quote.amount.toString(),
|
|
141
|
+
destinationTokenId: prepared.destinationTokenId,
|
|
142
|
+
maxTransitFee: cpuFromWei(quote.transitFee.toString()),
|
|
143
|
+
maxTransitFeeWei: quote.transitFee.toString(),
|
|
144
|
+
transitDiscount: cpuFromWei(quote.transitDiscount.toString()),
|
|
145
|
+
totalDistance: Number(quote.totalDistance),
|
|
146
|
+
arrivalAt: Number(quote.arrivalAt),
|
|
147
|
+
capacity,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=lot-return.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-return.service.js","sourceRoot":"","sources":["../../src/services/lot-return.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IAllowanceService, IAppConfig, ITradeClient, LotReturnInput, LotReturnQuote, LotReturnQuoteInput, LotReturnResult } from './types.js';
|
|
2
|
+
import type { ILogger } from '../logger/types.js';
|
|
3
|
+
import type { RevealCellReader } from '../map/types.js';
|
|
4
|
+
import type { IContractClient, WalletProvider } from '../wallet/types.js';
|
|
5
|
+
export interface LotReturnServiceOptions {
|
|
6
|
+
wallet: WalletProvider;
|
|
7
|
+
appConfig: IAppConfig;
|
|
8
|
+
allowance: IAllowanceService;
|
|
9
|
+
contracts: IContractClient;
|
|
10
|
+
tradeClient: ITradeClient;
|
|
11
|
+
mapReader: RevealCellReader;
|
|
12
|
+
logger: ILogger;
|
|
13
|
+
}
|
|
14
|
+
/** One player intent — send a lot's whole remainder home — quoted and then settled. */
|
|
15
|
+
export interface ILotReturnService {
|
|
16
|
+
quoteReturn(input: LotReturnQuoteInput): Promise<LotReturnQuote>;
|
|
17
|
+
returnLot(input: LotReturnInput): Promise<LotReturnResult>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=lot-return.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-return.types.d.ts","sourceRoot":"","sources":["../../src/services/lot-return.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,eAAe,CAAC;IAC3B,WAAW,EAAE,YAAY,CAAC;IAC1B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAC9B,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-return.types.js","sourceRoot":"","sources":["../../src/services/lot-return.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Address, type Log } from 'viem';
|
|
2
|
+
import { LotReturnBranch, type DestinationCapacityView, type OnChainLot } from './types.js';
|
|
3
|
+
import { LotState } from '../api/types.js';
|
|
4
|
+
import type { ILogger } from '../logger/types.js';
|
|
5
|
+
export declare function assertReturnRoute(chain: Array<number>): void;
|
|
6
|
+
/**
|
|
7
|
+
* The chain is the arbiter of what a lot is: the projection can lag an eviction or a sell-out by a block,
|
|
8
|
+
* and a return sent against a stale state is a spend that reverts.
|
|
9
|
+
*/
|
|
10
|
+
export declare function assertReturnableLot(lot: OnChainLot, seller: Address, lotId: string): LotState;
|
|
11
|
+
export declare function assertRouteStartsAtHub(chain: Array<number>, hub: bigint, lotId: string): void;
|
|
12
|
+
/** A lot return is all-or-nothing; a quote for anything but the current remainder is a partial return. */
|
|
13
|
+
export declare function assertWholeRemainder(quoted: bigint, remaining: bigint, lotId: string): void;
|
|
14
|
+
/** The ceiling travels as wei precisely so nothing rounds it; a figure that is not whole wei is not a ceiling. */
|
|
15
|
+
export declare function parseFeeCeilingWei(maxTransitFeeWei: string, lotId: string): bigint;
|
|
16
|
+
/**
|
|
17
|
+
* The client half of the fee promise. Only the source hub's rate is pinned on-chain, at the figure recorded
|
|
18
|
+
* when the lot was listed, so any later waypoint can raise its own between the quote and this call. The
|
|
19
|
+
* ceiling itself does travel with the transaction and caps the whole route total there, but that backstop
|
|
20
|
+
* only fires once gas is committed: refusing here — before the allowance, before the transaction — is what
|
|
21
|
+
* makes a stale ceiling cost a re-quote instead of a reverted spend.
|
|
22
|
+
*/
|
|
23
|
+
export declare function assertFeeWithinCeiling(quotedWei: bigint, ceilingWei: bigint, lotId: string): void;
|
|
24
|
+
export declare function returnBranchOf(state: LotState): LotReturnBranch;
|
|
25
|
+
export declare function describeCapacityRefusal(capacity: DestinationCapacityView, destinationTokenId: string, lotId: string): string;
|
|
26
|
+
export declare function describeLotReturnRevert(error: unknown, branch: LotReturnBranch): unknown;
|
|
27
|
+
/**
|
|
28
|
+
* Both branches close the lot with the same lifecycle event. When a receipt carries none — a contract that
|
|
29
|
+
* settles a reclaim silently — the quote the contract itself just priced is the only honest figure left, and
|
|
30
|
+
* refusing to answer would report a settled return as a failure.
|
|
31
|
+
*/
|
|
32
|
+
export declare function decodeReturnedUnits(logs: Array<Log>, trade: Address, quoted: bigint, logger: ILogger): bigint;
|
|
33
|
+
//# sourceMappingURL=lot-return.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-return.utils.d.ts","sourceRoot":"","sources":["../../src/services/lot-return.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAKpF,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAMlD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAc5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAiB7F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQ7F;AAED,0GAA0G;AAC1G,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQ3F;AAED,kHAAkH;AAClH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAoBlF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAWjG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,CAE/D;AAED,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,uBAAuB,EACjC,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,MAAM,GACd,MAAM,CAQR;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAWxF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAU7G"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { maxUint256, parseEventLogs } from 'viem';
|
|
2
|
+
import { LOT_RETURN_REVERT_NAMES, LOT_RETURN_REVERT_REASONS } from './lot-return.constants.js';
|
|
3
|
+
import { decodeKnownRevert } from './revert-decode.utils.js';
|
|
4
|
+
import { lotStateFromChain } from './trade.helpers.js';
|
|
5
|
+
import { LotReturnBranch } from './types.js';
|
|
6
|
+
import { LotState } from '../api/types.js';
|
|
7
|
+
import { TRADE_ABI } from '../contracts/trade.abi.js';
|
|
8
|
+
import { TRANSPORT_ABI } from '../contracts/transport.abi.js';
|
|
9
|
+
import { cpuFromWei } from '../utils/format.utils.js';
|
|
10
|
+
import { WEI_STRING_PATTERN } from '../utils/wei.constants.js';
|
|
11
|
+
const RETURN_ERROR_ABI = [...TRADE_ABI, ...TRANSPORT_ABI];
|
|
12
|
+
export function assertReturnRoute(chain) {
|
|
13
|
+
if (chain.length < 2) {
|
|
14
|
+
throw new Error('A lot return needs the full route home: [hub, ...waypoints, your destination cell]. ' +
|
|
15
|
+
'Give at least the hub and one cell of your own.');
|
|
16
|
+
}
|
|
17
|
+
const seen = new Set();
|
|
18
|
+
for (const tokenId of chain) {
|
|
19
|
+
if (seen.has(tokenId)) {
|
|
20
|
+
throw new Error(`The route visits cell ${tokenId} twice; a lot return travels each cell once.`);
|
|
21
|
+
}
|
|
22
|
+
seen.add(tokenId);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The chain is the arbiter of what a lot is: the projection can lag an eviction or a sell-out by a block,
|
|
27
|
+
* and a return sent against a stale state is a spend that reverts.
|
|
28
|
+
*/
|
|
29
|
+
export function assertReturnableLot(lot, seller, lotId) {
|
|
30
|
+
const state = lotStateFromChain(lot.state);
|
|
31
|
+
if (state === null) {
|
|
32
|
+
throw new Error(`Lot ${lotId} is closed: it was sold out, already returned, or never existed. Nothing is left to send home.`);
|
|
33
|
+
}
|
|
34
|
+
if (lot.seller.toLowerCase() !== seller.toLowerCase()) {
|
|
35
|
+
throw new Error(`Lot ${lotId} is not yours — it belongs to ${lot.seller}. Only its seller can return it.`);
|
|
36
|
+
}
|
|
37
|
+
if (state !== LotState.Open && state !== LotState.Evicted) {
|
|
38
|
+
throw new Error(`Lot ${lotId} is ${state}: its escrow is still delivering to the hub. Finalize that delivery first — ` +
|
|
39
|
+
`only an open or an evicted lot can be sent home.`);
|
|
40
|
+
}
|
|
41
|
+
return state;
|
|
42
|
+
}
|
|
43
|
+
export function assertRouteStartsAtHub(chain, hub, lotId) {
|
|
44
|
+
const start = chain[0];
|
|
45
|
+
if (BigInt(start) !== hub) {
|
|
46
|
+
throw new Error(`The route must start at the lot's hub: lot ${lotId} sits on cell ${hub.toString()}, but the route ` +
|
|
47
|
+
`starts at ${String(start)}.`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** A lot return is all-or-nothing; a quote for anything but the current remainder is a partial return. */
|
|
51
|
+
export function assertWholeRemainder(quoted, remaining, lotId) {
|
|
52
|
+
if (quoted !== remaining) {
|
|
53
|
+
throw new Error(`The return quote for lot ${lotId} covers ${quoted.toString()} units but the lot holds ` +
|
|
54
|
+
`${remaining.toString()}. A lot return always moves the whole remainder, so nothing was sent — ` +
|
|
55
|
+
`re-read the lot and quote it again.`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** The ceiling travels as wei precisely so nothing rounds it; a figure that is not whole wei is not a ceiling. */
|
|
59
|
+
export function parseFeeCeilingWei(maxTransitFeeWei, lotId) {
|
|
60
|
+
if (!WEI_STRING_PATTERN.test(maxTransitFeeWei)) {
|
|
61
|
+
throw new Error(`The fee ceiling for lot ${lotId} must be a whole number of wei, but it reads ` +
|
|
62
|
+
`"${maxTransitFeeWei}". Quote the return with cpu_quote_lot_return and pass the ` +
|
|
63
|
+
`maxTransitFeeWei it answers with, unchanged — that field is already wei, not $CPU.`);
|
|
64
|
+
}
|
|
65
|
+
const ceiling = BigInt(maxTransitFeeWei);
|
|
66
|
+
// A padded ceiling is the way an agent tries to switch the guard off, and it cannot be encoded as the
|
|
67
|
+
// uint256 the contract takes: refusing it here keeps that failure off the allowance and off the chain.
|
|
68
|
+
if (ceiling > maxUint256) {
|
|
69
|
+
throw new Error(`The fee ceiling for lot ${lotId} reads ${maxTransitFeeWei} wei, past the uint256 maximum the ` +
|
|
70
|
+
`contract can hold, so nothing was approved and nothing was sent. The ceiling is a guard, not ` +
|
|
71
|
+
`a switch to turn off — quote the return with cpu_quote_lot_return and pass the ` +
|
|
72
|
+
`maxTransitFeeWei it answers with, unchanged.`);
|
|
73
|
+
}
|
|
74
|
+
return ceiling;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The client half of the fee promise. Only the source hub's rate is pinned on-chain, at the figure recorded
|
|
78
|
+
* when the lot was listed, so any later waypoint can raise its own between the quote and this call. The
|
|
79
|
+
* ceiling itself does travel with the transaction and caps the whole route total there, but that backstop
|
|
80
|
+
* only fires once gas is committed: refusing here — before the allowance, before the transaction — is what
|
|
81
|
+
* makes a stale ceiling cost a re-quote instead of a reverted spend.
|
|
82
|
+
*/
|
|
83
|
+
export function assertFeeWithinCeiling(quotedWei, ceilingWei, lotId) {
|
|
84
|
+
if (quotedWei <= ceilingWei) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
throw new Error(`Returning lot ${lotId} now costs ${cpuFromWei(quotedWei.toString())} $CPU in transit ` +
|
|
88
|
+
`(${quotedWei.toString()} wei), above the ${cpuFromWei(ceilingWei.toString())} $CPU ceiling you ` +
|
|
89
|
+
`passed (${ceilingWei.toString()} wei): a fee on the route moved since that quote. Nothing was ` +
|
|
90
|
+
`approved and nothing was sent. Quote the return again with cpu_quote_lot_return and send it ` +
|
|
91
|
+
`straight away with the maxTransitFeeWei it answers with, or route around the cell that raised its rate.`);
|
|
92
|
+
}
|
|
93
|
+
export function returnBranchOf(state) {
|
|
94
|
+
return state === LotState.Evicted ? LotReturnBranch.Reclaimed : LotReturnBranch.Cancelled;
|
|
95
|
+
}
|
|
96
|
+
export function describeCapacityRefusal(capacity, destinationTokenId, lotId) {
|
|
97
|
+
const free = capacity.free ?? '0';
|
|
98
|
+
return (`Cell ${destinationTokenId} cannot take the whole remainder of lot ${lotId}: it needs room for ` +
|
|
99
|
+
`${capacity.required} units and only ${free} are free (what it already holds and everything reserved on ` +
|
|
100
|
+
`it are counted). Nothing was approved and nothing was sent. Free the space, or pick another destination ` +
|
|
101
|
+
`you own, then quote the return again.`);
|
|
102
|
+
}
|
|
103
|
+
export function describeLotReturnRevert(error, branch) {
|
|
104
|
+
const decoded = decodeKnownRevert(error, RETURN_ERROR_ABI, LOT_RETURN_REVERT_NAMES);
|
|
105
|
+
if (decoded === null) {
|
|
106
|
+
return error;
|
|
107
|
+
}
|
|
108
|
+
return new Error(`This lot return did not go through: ${LOT_RETURN_REVERT_REASONS[decoded.name]}. ` +
|
|
109
|
+
`The ${branch === LotReturnBranch.Reclaimed ? 'reclaim' : 'cancel'} was refused on-chain, so the lot ` +
|
|
110
|
+
`and its units are untouched.`, { cause: error });
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Both branches close the lot with the same lifecycle event. When a receipt carries none — a contract that
|
|
114
|
+
* settles a reclaim silently — the quote the contract itself just priced is the only honest figure left, and
|
|
115
|
+
* refusing to answer would report a settled return as a failure.
|
|
116
|
+
*/
|
|
117
|
+
export function decodeReturnedUnits(logs, trade, quoted, logger) {
|
|
118
|
+
const events = parseEventLogs({ abi: TRADE_ABI, eventName: 'LotCancelled', logs });
|
|
119
|
+
const event = events.find((e) => e.address.toLowerCase() === trade.toLowerCase());
|
|
120
|
+
if (event === undefined) {
|
|
121
|
+
logger.warn('lot return confirmed without a lifecycle event; reporting the quoted remainder', {
|
|
122
|
+
quoted: quoted.toString(),
|
|
123
|
+
});
|
|
124
|
+
return quoted;
|
|
125
|
+
}
|
|
126
|
+
return event.args.returned;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=lot-return.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-return.utils.js","sourceRoot":"","sources":["../../src/services/lot-return.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-terms.constants.d.ts","sourceRoot":"","sources":["../../src/services/lot-terms.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,QAAU,CAAC;AAE3C,eAAO,MAAM,mBAAmB,gDAAgD,CAAC;AAEjF,eAAO,MAAM,kBAAkB,QAEqC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const WHOLE_UNITS_PATTERN = /^\d+$/;
|
|
2
|
+
export const LIVE_LOT_COUNT_NOTE = 'delivering, open and evicted lots all count';
|
|
3
|
+
export const EVICTED_BLOCK_NOTE = 'an evicted lot keeps its per-seller slot until its remainder is on the way home, and it blocks every ' +
|
|
4
|
+
'resource on that hub while it waits; other hubs are unaffected';
|
|
5
|
+
//# sourceMappingURL=lot-terms.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-terms.constants.js","sourceRoot":"","sources":["../../src/services/lot-terms.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,6CAA6C,CAAC;AAEjF,MAAM,CAAC,MAAM,kBAAkB,GAC3B,uGAAuG;IACvG,gEAAgE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function parseListedValue(value: string): bigint | null;
|
|
2
|
+
export declare function evictedPendingMessage(count: number, hubTokenId: string): string;
|
|
3
|
+
export declare function invalidValueMessage(value: string): string;
|
|
4
|
+
export declare function invalidPriceMessage(pricePerUnit: string): string;
|
|
5
|
+
export declare function priceBelowFloorMessage(pricePerUnit: string, floor: string): string;
|
|
6
|
+
export declare function emptyWindowMessage(hubTokenId: string, resourceId: number, min: string, max: string): string;
|
|
7
|
+
export declare function belowMinimumMessage(value: string, min: string, hubTokenId: string, resourceId: number): string;
|
|
8
|
+
export declare function aboveMaximumMessage(value: string, max: string, hubTokenId: string, resourceId: number): string;
|
|
9
|
+
export declare function sellerLotLimitMessage(count: number, limit: number, hubTokenId: string, resourceId: number): string;
|
|
10
|
+
export declare function saleFeeToleranceMessage(livePercent: number, tolerancePercent: number, hubTokenId: string): string;
|
|
11
|
+
//# sourceMappingURL=lot-terms.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-terms.helpers.d.ts","sourceRoot":"","sources":["../../src/services/lot-terms.helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM7D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAM/E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAM3G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAK9G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAK9G;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKlH;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKjH"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EVICTED_BLOCK_NOTE, LIVE_LOT_COUNT_NOTE, WHOLE_UNITS_PATTERN } from './lot-terms.constants.js';
|
|
2
|
+
export function parseListedValue(value) {
|
|
3
|
+
if (!WHOLE_UNITS_PATTERN.test(value)) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
const units = BigInt(value);
|
|
7
|
+
return units > 0n ? units : null;
|
|
8
|
+
}
|
|
9
|
+
export function evictedPendingMessage(count, hubTokenId) {
|
|
10
|
+
return (`You still owe ${count} evicted lot return${count === 1 ? '' : 's'} on hub ${hubTokenId}, so this hub ` +
|
|
11
|
+
`refuses every new lot of yours. Schedule the return of each evicted remainder there — ` +
|
|
12
|
+
`${EVICTED_BLOCK_NOTE}.`);
|
|
13
|
+
}
|
|
14
|
+
export function invalidValueMessage(value) {
|
|
15
|
+
return `A lot needs a positive whole number of units; "${value}" is not one.`;
|
|
16
|
+
}
|
|
17
|
+
export function invalidPriceMessage(pricePerUnit) {
|
|
18
|
+
return `An asking price must be a positive $CPU amount per unit; "${pricePerUnit}" is not one.`;
|
|
19
|
+
}
|
|
20
|
+
export function priceBelowFloorMessage(pricePerUnit, floor) {
|
|
21
|
+
return (`Asking ${pricePerUnit} $CPU per unit is below the live floor of ${floor} $CPU per unit. ` +
|
|
22
|
+
`Ask ${floor} or more.`);
|
|
23
|
+
}
|
|
24
|
+
export function emptyWindowMessage(hubTokenId, resourceId, min, max) {
|
|
25
|
+
return (`Hub ${hubTokenId} has no listing window for resource #${resourceId} right now: its live minimum is ` +
|
|
26
|
+
`${min} units and its live maximum is ${max} units, so no amount fits. List on another hub, or wait ` +
|
|
27
|
+
`for this hub's storage for that resource to change.`);
|
|
28
|
+
}
|
|
29
|
+
export function belowMinimumMessage(value, min, hubTokenId, resourceId) {
|
|
30
|
+
return (`A lot of ${value} units is below the live minimum of ${min} units for resource #${resourceId} on hub ` +
|
|
31
|
+
`${hubTokenId}. List at least ${min} units, or pick a hub with a lower minimum.`);
|
|
32
|
+
}
|
|
33
|
+
export function aboveMaximumMessage(value, max, hubTokenId, resourceId) {
|
|
34
|
+
return (`A lot of ${value} units is above the live maximum of ${max} units for resource #${resourceId} on hub ` +
|
|
35
|
+
`${hubTokenId}. List at most ${max} units, and sell the rest in a later lot or on another hub.`);
|
|
36
|
+
}
|
|
37
|
+
export function sellerLotLimitMessage(count, limit, hubTokenId, resourceId) {
|
|
38
|
+
return (`You already hold ${count} of ${limit} live lots for resource #${resourceId} on hub ${hubTokenId} — ` +
|
|
39
|
+
`${LIVE_LOT_COUNT_NOTE}. Wait for one to sell out, or return one remainder home, before listing another.`);
|
|
40
|
+
}
|
|
41
|
+
export function saleFeeToleranceMessage(livePercent, tolerancePercent, hubTokenId) {
|
|
42
|
+
return (`Hub ${hubTokenId} charges ${livePercent}% sale fee, above your tolerance of ${tolerancePercent}%. ` +
|
|
43
|
+
`Raise maxSaleFeePercent to ${livePercent} or more, or list on a cheaper hub.`);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=lot-terms.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-terms.helpers.js","sourceRoot":"","sources":["../../src/services/lot-terms.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAExG,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,UAAkB;IACnE,OAAO,CACH,iBAAiB,KAAK,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,UAAU,gBAAgB;QACvG,wFAAwF;QACxF,GAAG,kBAAkB,GAAG,CAC3B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC7C,OAAO,kDAAkD,KAAK,eAAe,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACpD,OAAO,6DAA6D,YAAY,eAAe,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,YAAoB,EAAE,KAAa;IACtE,OAAO,CACH,UAAU,YAAY,6CAA6C,KAAK,kBAAkB;QAC1F,OAAO,KAAK,WAAW,CAC1B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,UAAkB,EAAE,GAAW,EAAE,GAAW;IAC/F,OAAO,CACH,OAAO,UAAU,wCAAwC,UAAU,kCAAkC;QACrG,GAAG,GAAG,kCAAkC,GAAG,0DAA0D;QACrG,qDAAqD,CACxD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAW,EAAE,UAAkB,EAAE,UAAkB;IAClG,OAAO,CACH,YAAY,KAAK,uCAAuC,GAAG,wBAAwB,UAAU,UAAU;QACvG,GAAG,UAAU,mBAAmB,GAAG,6CAA6C,CACnF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAW,EAAE,UAAkB,EAAE,UAAkB;IAClG,OAAO,CACH,YAAY,KAAK,uCAAuC,GAAG,wBAAwB,UAAU,UAAU;QACvG,GAAG,UAAU,kBAAkB,GAAG,6DAA6D,CAClG,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,KAAa,EAAE,UAAkB,EAAE,UAAkB;IACtG,OAAO,CACH,oBAAoB,KAAK,OAAO,KAAK,4BAA4B,UAAU,WAAW,UAAU,KAAK;QACrG,GAAG,mBAAmB,mFAAmF,CAC5G,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAmB,EAAE,gBAAwB,EAAE,UAAkB;IACrG,OAAO,CACH,OAAO,UAAU,YAAY,WAAW,uCAAuC,gBAAgB,KAAK;QACpG,8BAA8B,WAAW,qCAAqC,CACjF,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ILotTerms, ListingPreflightInput, LotTermsServiceOptions } from './lot-terms.types.js';
|
|
2
|
+
import { type LotTermsInput, type LotTermsResult } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The listing terms of one hub and resource, and the gate `cpu_create_lot` passes through. The window is
|
|
5
|
+
* read from the contract's own bound views and never worked out from the configured shares, and every
|
|
6
|
+
* deterministic refusal happens here — before the allowance and before the transaction — so a listing the
|
|
7
|
+
* contract already refuses never costs the seller an approval or gas.
|
|
8
|
+
*/
|
|
9
|
+
export declare class LotTermsService implements ILotTerms {
|
|
10
|
+
private readonly appConfig;
|
|
11
|
+
private readonly wallet;
|
|
12
|
+
private readonly tradeClient;
|
|
13
|
+
private readonly logger;
|
|
14
|
+
constructor(options: LotTermsServiceOptions);
|
|
15
|
+
getLotTerms(input: LotTermsInput): Promise<LotTermsResult>;
|
|
16
|
+
assertListingAllowed(input: ListingPreflightInput): Promise<LotTermsResult>;
|
|
17
|
+
private readLiveTerms;
|
|
18
|
+
private parsePrice;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=lot-terms.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-terms.service.d.ts","sourceRoot":"","sources":["../../src/services/lot-terms.service.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGrG,OAAO,EAIH,KAAK,aAAa,EAClB,KAAK,cAAc,EAEtB,MAAM,YAAY,CAAC;AAYpB;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,OAAO,EAAE,sBAAsB;IAOrC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAI1D,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;YA2CnE,aAAa;IAkD3B,OAAO,CAAC,UAAU;CAQrB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { formatEther, parseEther } from 'viem';
|
|
2
|
+
import { aboveMaximumMessage, belowMinimumMessage, emptyWindowMessage, evictedPendingMessage, invalidPriceMessage, invalidValueMessage, parseListedValue, priceBelowFloorMessage, saleFeeToleranceMessage, sellerLotLimitMessage, } from './lot-terms.helpers.js';
|
|
3
|
+
import { preparePaidAction } from './paid-action.js';
|
|
4
|
+
import { AppContract } from './paid-action.types.js';
|
|
5
|
+
import { LotListingBlocker, } from './types.js';
|
|
6
|
+
import { bpToPercent } from '../utils/format.utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* The listing terms of one hub and resource, and the gate `cpu_create_lot` passes through. The window is
|
|
9
|
+
* read from the contract's own bound views and never worked out from the configured shares, and every
|
|
10
|
+
* deterministic refusal happens here — before the allowance and before the transaction — so a listing the
|
|
11
|
+
* contract already refuses never costs the seller an approval or gas.
|
|
12
|
+
*/
|
|
13
|
+
export class LotTermsService {
|
|
14
|
+
appConfig;
|
|
15
|
+
wallet;
|
|
16
|
+
tradeClient;
|
|
17
|
+
logger;
|
|
18
|
+
constructor(options) {
|
|
19
|
+
this.appConfig = options.appConfig;
|
|
20
|
+
this.wallet = options.wallet;
|
|
21
|
+
this.tradeClient = options.tradeClient;
|
|
22
|
+
this.logger = options.logger;
|
|
23
|
+
}
|
|
24
|
+
async getLotTerms(input) {
|
|
25
|
+
return (await this.readLiveTerms(input.hubTokenId, input.resourceId)).terms;
|
|
26
|
+
}
|
|
27
|
+
async assertListingAllowed(input) {
|
|
28
|
+
const { terms, config, trade, hub } = await this.readLiveTerms(input.hubTokenId, input.resourceId);
|
|
29
|
+
const { hubTokenId, resourceId } = input;
|
|
30
|
+
if (terms.outstandingEvictedCount > 0) {
|
|
31
|
+
throw new Error(evictedPendingMessage(terms.outstandingEvictedCount, hubTokenId));
|
|
32
|
+
}
|
|
33
|
+
const value = parseListedValue(input.value);
|
|
34
|
+
if (value === null) {
|
|
35
|
+
throw new Error(invalidValueMessage(input.value));
|
|
36
|
+
}
|
|
37
|
+
const price = this.parsePrice(input.pricePerUnit);
|
|
38
|
+
if (price === null) {
|
|
39
|
+
throw new Error(invalidPriceMessage(input.pricePerUnit));
|
|
40
|
+
}
|
|
41
|
+
if (price < config.minPricePerUnit) {
|
|
42
|
+
throw new Error(priceBelowFloorMessage(input.pricePerUnit, formatEther(config.minPricePerUnit)));
|
|
43
|
+
}
|
|
44
|
+
if (terms.blockers.includes(LotListingBlocker.EmptyWindow)) {
|
|
45
|
+
throw new Error(emptyWindowMessage(hubTokenId, resourceId, terms.effectiveMin, terms.effectiveMax));
|
|
46
|
+
}
|
|
47
|
+
if (value < BigInt(terms.effectiveMin)) {
|
|
48
|
+
throw new Error(belowMinimumMessage(input.value, terms.effectiveMin, hubTokenId, resourceId));
|
|
49
|
+
}
|
|
50
|
+
if (value > BigInt(terms.effectiveMax)) {
|
|
51
|
+
throw new Error(aboveMaximumMessage(input.value, terms.effectiveMax, hubTokenId, resourceId));
|
|
52
|
+
}
|
|
53
|
+
if (terms.blockers.includes(LotListingBlocker.SellerLotLimit)) {
|
|
54
|
+
throw new Error(sellerLotLimitMessage(terms.sellerLotCount, terms.sellerLotLimit, hubTokenId, resourceId));
|
|
55
|
+
}
|
|
56
|
+
if (input.maxSaleFeePercent !== null) {
|
|
57
|
+
const livePercent = bpToPercent(await this.tradeClient.getSaleFee({ trade, hub, res: resourceId }));
|
|
58
|
+
if (livePercent > input.maxSaleFeePercent) {
|
|
59
|
+
throw new Error(saleFeeToleranceMessage(livePercent, input.maxSaleFeePercent, hubTokenId));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return terms;
|
|
63
|
+
}
|
|
64
|
+
async readLiveTerms(hubTokenId, resourceId) {
|
|
65
|
+
const action = await preparePaidAction({ appConfig: this.appConfig, wallet: this.wallet });
|
|
66
|
+
const trade = action.requireContract(AppContract.Trade, 'cannot read the lot listing terms');
|
|
67
|
+
const seller = action.wallet.getAddress();
|
|
68
|
+
const hub = BigInt(hubTokenId);
|
|
69
|
+
const evicted = await this.tradeClient.getSellerEvictedCount({ trade, seller, hub });
|
|
70
|
+
const config = await this.tradeClient.getConfig({ trade });
|
|
71
|
+
const min = await this.tradeClient.getMinLotValue({ trade, hub, res: resourceId });
|
|
72
|
+
const max = await this.tradeClient.getMaxLotValue({ trade, hub, res: resourceId });
|
|
73
|
+
const lotCount = await this.tradeClient.getSellerLotCount({ trade, seller, hub, res: resourceId });
|
|
74
|
+
const blockers = [];
|
|
75
|
+
if (evicted > 0n) {
|
|
76
|
+
blockers.push(LotListingBlocker.EvictedPending);
|
|
77
|
+
}
|
|
78
|
+
if (max === 0n || min > max) {
|
|
79
|
+
blockers.push(LotListingBlocker.EmptyWindow);
|
|
80
|
+
}
|
|
81
|
+
if (lotCount >= BigInt(config.maxLotsPerSellerResource)) {
|
|
82
|
+
blockers.push(LotListingBlocker.SellerLotLimit);
|
|
83
|
+
}
|
|
84
|
+
this.logger.info('read lot terms', {
|
|
85
|
+
hubTokenId,
|
|
86
|
+
resourceId,
|
|
87
|
+
effectiveMin: min.toString(),
|
|
88
|
+
effectiveMax: max.toString(),
|
|
89
|
+
blockers,
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
trade,
|
|
93
|
+
hub,
|
|
94
|
+
config,
|
|
95
|
+
terms: {
|
|
96
|
+
hubTokenId,
|
|
97
|
+
resourceId,
|
|
98
|
+
sellerAddress: seller,
|
|
99
|
+
effectiveMin: min.toString(),
|
|
100
|
+
effectiveMax: max.toString(),
|
|
101
|
+
sellerLotCount: Number(lotCount),
|
|
102
|
+
sellerLotLimit: config.maxLotsPerSellerResource,
|
|
103
|
+
outstandingEvictedCount: Number(evicted),
|
|
104
|
+
canList: blockers.length === 0,
|
|
105
|
+
blockers,
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
parsePrice(pricePerUnit) {
|
|
110
|
+
try {
|
|
111
|
+
const wei = parseEther(pricePerUnit);
|
|
112
|
+
return wei > 0n ? wei : null;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=lot-terms.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-terms.service.js","sourceRoot":"","sources":["../../src/services/lot-terms.service.ts"],"names":[],"mappings":"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"}
|