@mojaloop/central-ledger 19.13.1 → 19.14.0-snapshot.2
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/.grype.yaml +74 -12
- package/CHANGELOG.md +25 -0
- package/Dockerfile +1 -1
- package/audit-ci.jsonc +1 -4
- package/config/default-settlement.json +160 -0
- package/docker/ml-api-adapter/default.json +28 -0
- package/docker-compose.yml +6 -0
- package/package.json +41 -23
- package/{sbom-v19.13.0.csv → sbom-v19.14.0.csv} +260 -301
- package/scripts/_wait4_all.js +5 -5
- package/src/api/index.js +7 -2
- package/src/api/routes.js +7 -6
- package/src/cryptoConditions/index.js +24 -3
- package/src/handlers/transfers/handler.js +17 -1
- package/src/handlers/transfers/validator.js +1 -2
- package/src/settlement/api/handlerRoutes.js +40 -0
- package/src/settlement/api/handlers/settlementWindows/{id}.js +103 -0
- package/src/settlement/api/handlers/settlementWindows.js +77 -0
- package/src/settlement/api/handlers/settlements/{id}.js +133 -0
- package/src/settlement/api/handlers/settlements/{sid}/participants/{pid}/accounts/{aid}.js +127 -0
- package/src/settlement/api/handlers/settlements/{sid}/participants/{pid}.js +127 -0
- package/src/settlement/api/handlers/settlements.js +114 -0
- package/src/settlement/api/routes.js +40 -0
- package/src/settlement/domain/rules/index.js +46 -0
- package/src/settlement/domain/settlement/index.js +405 -0
- package/src/settlement/domain/settlementWindow/index.js +117 -0
- package/src/settlement/domain/transactions/index.js +83 -0
- package/src/settlement/domain/transferSettlement/index.js +57 -0
- package/src/settlement/handlers/deferredSettlement/handler.js +180 -0
- package/src/settlement/handlers/grossSettlement/handler.js +180 -0
- package/src/settlement/handlers/index.js +101 -0
- package/src/settlement/handlers/register.js +92 -0
- package/src/settlement/handlers/rules/handler.js +164 -0
- package/src/settlement/interface/swagger-handler.json +37 -0
- package/src/settlement/interface/swagger.json +1280 -0
- package/src/settlement/lib/config.js +51 -0
- package/src/settlement/lib/db.js +32 -0
- package/src/settlement/lib/kafka/index.js +41 -0
- package/src/settlement/lib/kafka/producer.js +142 -0
- package/src/settlement/lib/scriptEngine.js +99 -0
- package/src/settlement/lib/scriptsLoader.js +175 -0
- package/src/settlement/lib/utility.js +243 -0
- package/src/settlement/models/ilpPackets/ilpPacket.js +42 -0
- package/src/settlement/models/lib/enums.js +192 -0
- package/src/settlement/models/misc/migrationLock.js +53 -0
- package/src/settlement/models/settlement/facade.js +1652 -0
- package/src/settlement/models/settlement/index.js +55 -0
- package/src/settlement/models/settlement/participantCurrency.js +48 -0
- package/src/settlement/models/settlement/settlement.js +49 -0
- package/src/settlement/models/settlement/settlementModel.js +44 -0
- package/src/settlement/models/settlement/settlementParticipantCurrency.js +61 -0
- package/src/settlement/models/settlement/settlementStateChange.js +44 -0
- package/src/settlement/models/settlement/settlementTransferParticipant.js +46 -0
- package/src/settlement/models/settlementWindow/facade.js +345 -0
- package/src/settlement/models/settlementWindow/index.js +47 -0
- package/src/settlement/models/settlementWindow/settlementWindowStateChange.js +55 -0
- package/src/settlement/models/settlementWindowContent/facade.js +79 -0
- package/src/settlement/models/settlementWindowContent/index.js +40 -0
- package/src/settlement/models/settlementWindowContent/settlementWindowContentStateChange.js +53 -0
- package/src/settlement/models/transferSettlement/facade.js +363 -0
- package/src/settlement/models/transferSettlement/index.js +42 -0
- package/src/settlement/shared/logger/index.js +7 -0
- package/src/settlement/shared/plugins.js +88 -0
- package/src/settlement/shared/setup.js +229 -0
- package/src/settlement/utils/truthyProperty.js +37 -0
package/.grype.yaml
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
scan-type: source
|
|
2
2
|
ignore:
|
|
3
|
-
# Ignore cross-spawn vulnerabilities by CVE ID due to false positive
|
|
4
|
-
# as grype looks at package-lock.json where it shows versions with
|
|
5
|
-
# vulnerabilities, npm ls shows only 7.0.6 verion is used
|
|
6
|
-
|
|
7
|
-
# Ignore OpenSSL vulnerabilities in Alpine libcrypto3 and libssl3
|
|
8
3
|
- vulnerability: GHSA-3ppc-4f35-3m26
|
|
9
4
|
reason: minimatch upgrade breaks some dev tools so adding this to ignore list
|
|
10
5
|
- vulnerability: CVE-2025-60876
|
|
@@ -19,14 +14,81 @@ ignore:
|
|
|
19
14
|
include-aliases: true
|
|
20
15
|
- vulnerability: GHSA-r6q2-hw4h-h46w
|
|
21
16
|
include-aliases: true
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
- vulnerability: CVE-2025-15467
|
|
18
|
+
include-aliases: true
|
|
19
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (critical severity)"
|
|
20
|
+
- vulnerability: CVE-2025-69420
|
|
21
|
+
include-aliases: true
|
|
22
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (high severity)"
|
|
23
|
+
- vulnerability: CVE-2025-59465
|
|
24
|
+
include-aliases: true
|
|
25
|
+
reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (high severity)"
|
|
26
|
+
- vulnerability: CVE-2025-69421
|
|
27
|
+
include-aliases: true
|
|
28
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (high severity)"
|
|
29
|
+
- vulnerability: CVE-2025-69419
|
|
30
|
+
include-aliases: true
|
|
31
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (high severity)"
|
|
32
|
+
- vulnerability: CVE-2026-22796
|
|
33
|
+
include-aliases: true
|
|
34
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
|
|
35
|
+
- vulnerability: CVE-2025-66199
|
|
36
|
+
include-aliases: true
|
|
37
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
|
|
38
|
+
- vulnerability: CVE-2025-15468
|
|
39
|
+
include-aliases: true
|
|
40
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
|
|
41
|
+
- vulnerability: CVE-2026-21637
|
|
42
|
+
include-aliases: true
|
|
43
|
+
reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (high severity)"
|
|
44
|
+
- vulnerability: CVE-2025-55131
|
|
45
|
+
include-aliases: true
|
|
46
|
+
reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (high severity)"
|
|
47
|
+
- vulnerability: CVE-2025-59466
|
|
48
|
+
include-aliases: true
|
|
49
|
+
reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (high severity)"
|
|
50
|
+
- vulnerability: CVE-2025-55130
|
|
51
|
+
include-aliases: true
|
|
52
|
+
reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (critical severity)"
|
|
53
|
+
- vulnerability: CVE-2026-22795
|
|
54
|
+
include-aliases: true
|
|
55
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
|
|
56
|
+
- vulnerability: CVE-2025-68160
|
|
57
|
+
include-aliases: true
|
|
58
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
|
|
59
|
+
- vulnerability: CVE-2025-11187
|
|
60
|
+
include-aliases: true
|
|
61
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
|
|
62
|
+
- vulnerability: GHSA-73rr-hh4g-fpgx
|
|
63
|
+
include-aliases: true
|
|
64
|
+
reason: >-
|
|
65
|
+
Base image npm package: diff - bundled in Node.js base image, not fixable via application dependencies as of
|
|
66
|
+
2026-02-23 (low severity)
|
|
67
|
+
- vulnerability: CVE-2025-55132
|
|
68
|
+
include-aliases: true
|
|
69
|
+
reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-23 (moderate severity)"
|
|
70
|
+
- vulnerability: CVE-2026-27171
|
|
71
|
+
include-aliases: true
|
|
72
|
+
reason: "Alpine base image package (apk): zlib - no npm fix available as of 2026-02-23 (moderate severity)"
|
|
73
|
+
- vulnerability: CVE-2025-15469
|
|
74
|
+
include-aliases: true
|
|
75
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
|
|
76
|
+
- vulnerability: CVE-2025-69418
|
|
77
|
+
include-aliases: true
|
|
78
|
+
reason: "Alpine base image package (apk): libcrypto3 - no npm fix available as of 2026-02-23 (moderate severity)"
|
|
79
|
+
- vulnerability: GHSA-87r5-mp6g-5w5j
|
|
80
|
+
include-aliases: true
|
|
81
|
+
reason: "Unfixable npm transitive vulnerability: jsonpath (high severity) as of 2026-02-23"
|
|
82
|
+
- vulnerability: GHSA-378v-28hj-76wf
|
|
83
|
+
include-aliases: true
|
|
84
|
+
reason: "Unfixable npm transitive vulnerability: bn.js (moderate severity) as of 2026-02-23"
|
|
85
|
+
- vulnerability: GHSA-2g4f-4pwh-qvx6
|
|
86
|
+
include-aliases: true
|
|
87
|
+
reason: "Unfixable npm transitive vulnerability: ajv (moderate severity) as of 2026-02-23"
|
|
24
88
|
output:
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
# Modify your CircleCI job to check critical count
|
|
89
|
+
- table
|
|
90
|
+
- json
|
|
29
91
|
search:
|
|
30
|
-
scope:
|
|
92
|
+
scope: squashed
|
|
31
93
|
quiet: false
|
|
32
94
|
check-for-app-update: false
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [19.14.0](https://github.com/mojaloop/central-ledger/compare/v19.13.2...v19.14.0) (2026-03-19)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* vendor the condition check from five-bells-condition into cryptoConditions ([#1264](https://github.com/mojaloop/central-ledger/issues/1264)) ([4d7c4d2](https://github.com/mojaloop/central-ledger/commit/4d7c4d27f5d24fc818c7663a966ca8bf8f855b65))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* undefined fulfilment error not thrown ([#1281](https://github.com/mojaloop/central-ledger/issues/1281)) ([a9361d4](https://github.com/mojaloop/central-ledger/commit/a9361d4ee5d3fb44ca0cc0ceca893c0d2ff35b84))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Chore
|
|
19
|
+
|
|
20
|
+
* **sbom:** update sbom [skip ci] ([21ce9d4](https://github.com/mojaloop/central-ledger/commit/21ce9d455e89568af3e6618b1528425afbbb7b2c))
|
|
21
|
+
|
|
22
|
+
### [19.13.2](https://github.com/mojaloop/central-ledger/compare/v19.13.1...v19.13.2) (2026-02-27)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Chore
|
|
26
|
+
|
|
27
|
+
* maintenance updates ([#1260](https://github.com/mojaloop/central-ledger/issues/1260)) ([464c50c](https://github.com/mojaloop/central-ledger/commit/464c50cda674ee63b23e94e2b9ff19ce4cd807f0))
|
|
28
|
+
* **sbom:** update sbom [skip ci] ([2df7c77](https://github.com/mojaloop/central-ledger/commit/2df7c7731a9722d1ace56919ebbdef076ef1295c))
|
|
29
|
+
|
|
5
30
|
### [19.13.1](https://github.com/mojaloop/central-ledger/compare/v19.13.0...v19.13.1) (2026-02-26)
|
|
6
31
|
|
|
7
32
|
|
package/Dockerfile
CHANGED
package/audit-ci.jsonc
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://github.com/IBM/audit-ci/raw/main/docs/schema.json",
|
|
3
3
|
// audit-ci supports reading JSON, JSONC, and JSON5 config files.
|
|
4
|
-
// Only check production dependencies (devDependencies ignored)
|
|
5
|
-
"skip-dev": true,
|
|
6
4
|
// Only use one of ["low": true, "moderate": true, "high": true, "critical": true]
|
|
7
5
|
"moderate": true,
|
|
8
|
-
"allowlist": [
|
|
9
|
-
"GHSA-3ppc-4f35-3m26"
|
|
6
|
+
"allowlist": [ // NOTE: Please add as much information as possible to any items added to the allowList
|
|
10
7
|
]
|
|
11
8
|
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
{
|
|
2
|
+
"PORT": 3007,
|
|
3
|
+
"HOSTNAME": "http://central-settlement",
|
|
4
|
+
"DATABASE": {
|
|
5
|
+
"DIALECT": "mysql",
|
|
6
|
+
"HOST": "localhost",
|
|
7
|
+
"PORT": 3306,
|
|
8
|
+
"USER": "central_ledger",
|
|
9
|
+
"PASSWORD": "password",
|
|
10
|
+
"SCHEMA": "central_ledger",
|
|
11
|
+
"POOL_MIN_SIZE": 10,
|
|
12
|
+
"POOL_MAX_SIZE": 10,
|
|
13
|
+
"ACQUIRE_TIMEOUT_MILLIS": 30000,
|
|
14
|
+
"CREATE_TIMEOUT_MILLIS": 30000,
|
|
15
|
+
"DESTROY_TIMEOUT_MILLIS": 5000,
|
|
16
|
+
"IDLE_TIMEOUT_MILLIS": 30000,
|
|
17
|
+
"REAP_INTERVAL_MILLIS": 1000,
|
|
18
|
+
"CREATE_RETRY_INTERVAL_MILLIS": 200,
|
|
19
|
+
"DEBUG": false
|
|
20
|
+
},
|
|
21
|
+
"WINDOW_AGGREGATION": {
|
|
22
|
+
"RETRY_COUNT": 3,
|
|
23
|
+
"RETRY_INTERVAL": 3000
|
|
24
|
+
},
|
|
25
|
+
"TRANSFER_VALIDITY_SECONDS": "432000",
|
|
26
|
+
"HUB_PARTICIPANT": {
|
|
27
|
+
"ID": 1,
|
|
28
|
+
"NAME": "Hub"
|
|
29
|
+
},
|
|
30
|
+
"HANDLERS": {
|
|
31
|
+
"DISABLED": false,
|
|
32
|
+
"API": {
|
|
33
|
+
"DISABLED": false
|
|
34
|
+
},
|
|
35
|
+
"SETTINGS": {
|
|
36
|
+
"RULES": {
|
|
37
|
+
"SCRIPTS_FOLDER": "./scripts/transferSettlementTemp",
|
|
38
|
+
"SCRIPT_TIMEOUT": 100,
|
|
39
|
+
"CONSUMER_COMMIT": true,
|
|
40
|
+
"FROM_SWITCH": true
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"API_DOC_ENDPOINTS_ENABLED": true,
|
|
45
|
+
"SWITCH_ENDPOINT": "http://localhost:3001",
|
|
46
|
+
"AMOUNT": {
|
|
47
|
+
"PRECISION": 18,
|
|
48
|
+
"SCALE": 4
|
|
49
|
+
},
|
|
50
|
+
"KAFKA": {
|
|
51
|
+
"TOPIC_TEMPLATES": {
|
|
52
|
+
"GENERAL_TOPIC_TEMPLATE": {
|
|
53
|
+
"TEMPLATE": "topic-{{functionality}}-{{action}}",
|
|
54
|
+
"REGEX": "topic-(.*)-(.*)"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"CONSUMER": {
|
|
58
|
+
"DEFERREDSETTLEMENT": {
|
|
59
|
+
"CLOSE": {
|
|
60
|
+
"config": {
|
|
61
|
+
"options": {
|
|
62
|
+
"mode": 2,
|
|
63
|
+
"batchSize": 1,
|
|
64
|
+
"pollFrequency": 10,
|
|
65
|
+
"recursiveTimeout": 100,
|
|
66
|
+
"messageCharset": "utf8",
|
|
67
|
+
"messageAsJSON": true,
|
|
68
|
+
"sync": true,
|
|
69
|
+
"consumeTimeout": 1000
|
|
70
|
+
},
|
|
71
|
+
"rdkafkaConf": {
|
|
72
|
+
"client.id": "cs-con-deferredsettlement-close",
|
|
73
|
+
"group.id": "cs-group-deferredsettlement-close",
|
|
74
|
+
"metadata.broker.list": "localhost:9092",
|
|
75
|
+
"socket.keepalive.enable": true,
|
|
76
|
+
"allow.auto.create.topics": true
|
|
77
|
+
},
|
|
78
|
+
"topicConf": {
|
|
79
|
+
"auto.offset.reset": "earliest"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"NOTIFICATION": {
|
|
85
|
+
"EVENT": {
|
|
86
|
+
"config": {
|
|
87
|
+
"options": {
|
|
88
|
+
"mode": 2,
|
|
89
|
+
"batchSize": 1,
|
|
90
|
+
"pollFrequency": 10,
|
|
91
|
+
"recursiveTimeout": 100,
|
|
92
|
+
"messageCharset": "utf8",
|
|
93
|
+
"messageAsJSON": true,
|
|
94
|
+
"sync": true,
|
|
95
|
+
"consumeTimeout": 1000
|
|
96
|
+
},
|
|
97
|
+
"rdkafkaConf": {
|
|
98
|
+
"client.id": "cs-con-notification-event",
|
|
99
|
+
"group.id": "cs-group-notification-event",
|
|
100
|
+
"metadata.broker.list": "localhost:9092",
|
|
101
|
+
"socket.keepalive.enable": true,
|
|
102
|
+
"allow.auto.create.topics": true
|
|
103
|
+
},
|
|
104
|
+
"topicConf": {
|
|
105
|
+
"auto.offset.reset": "earliest"
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"PRODUCER": {
|
|
112
|
+
"NOTIFICATION": {
|
|
113
|
+
"EVENT": {
|
|
114
|
+
"config": {
|
|
115
|
+
"options": {
|
|
116
|
+
"messageCharset": "utf8"
|
|
117
|
+
},
|
|
118
|
+
"rdkafkaConf": {
|
|
119
|
+
"debug": "all",
|
|
120
|
+
"metadata.broker.list": "localhost:9092",
|
|
121
|
+
"client.id": "cs-prod-notification-event",
|
|
122
|
+
"event_cb": true,
|
|
123
|
+
"compression.codec": "none",
|
|
124
|
+
"retry.backoff.ms": 100,
|
|
125
|
+
"message.send.max.retries": 2,
|
|
126
|
+
"socket.keepalive.enable": true,
|
|
127
|
+
"queue.buffering.max.messages": 10000000,
|
|
128
|
+
"batch.num.messages": 100,
|
|
129
|
+
"dr_cb": true,
|
|
130
|
+
"socket.blocking.max.ms": 1,
|
|
131
|
+
"queue.buffering.max.ms": 1,
|
|
132
|
+
"broker.version.fallback": "0.10.1.0",
|
|
133
|
+
"api.version.request": true
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"DEFERREDSETTLEMENT": {
|
|
139
|
+
"CLOSE": {
|
|
140
|
+
"config": {
|
|
141
|
+
"options": {
|
|
142
|
+
"messageCharset": "utf8"
|
|
143
|
+
},
|
|
144
|
+
"rdkafkaConf": {
|
|
145
|
+
"metadata.broker.list": "localhost:9092",
|
|
146
|
+
"client.id": "cs-prod-deferredsettlement-close",
|
|
147
|
+
"event_cb": true,
|
|
148
|
+
"dr_cb": true,
|
|
149
|
+
"socket.keepalive.enable": true,
|
|
150
|
+
"queue.buffering.max.messages": 10000000
|
|
151
|
+
},
|
|
152
|
+
"topicConf": {
|
|
153
|
+
"request.required.acks": "all"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
@@ -7,6 +7,34 @@
|
|
|
7
7
|
"HOSTNAME": "http://ml-api-adapter",
|
|
8
8
|
"ENDPOINT_SOURCE_URL": "http://host.docker.internal:3001",
|
|
9
9
|
"ENDPOINT_HEALTH_URL": "http://host.docker.internal:3001/health",
|
|
10
|
+
"PROXY_CACHE": {
|
|
11
|
+
"enabled": false,
|
|
12
|
+
"type": "redis-cluster",
|
|
13
|
+
"proxyConfig": {
|
|
14
|
+
"cluster": [
|
|
15
|
+
{ "host": "redis-node-0", "port": 6379 }
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"PROTOCOL_VERSIONS": {
|
|
20
|
+
"CONTENT": {
|
|
21
|
+
"DEFAULT": "2.0",
|
|
22
|
+
"VALIDATELIST": ["1.0", "1.1", "2.0"]
|
|
23
|
+
},
|
|
24
|
+
"ACCEPT": {
|
|
25
|
+
"DEFAULT": "2",
|
|
26
|
+
"VALIDATELIST": ["1", "1.0", "1.1", "2", "2.0"]
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"PAYLOAD_CACHE": {
|
|
30
|
+
"enabled": false,
|
|
31
|
+
"type": "redis-cluster",
|
|
32
|
+
"connectionConfig": {
|
|
33
|
+
"cluster": [
|
|
34
|
+
{ "host": "localhost", "port": 6379 }
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
},
|
|
10
38
|
"ENDPOINT_CACHE_CONFIG": {
|
|
11
39
|
"expiresIn": 180000,
|
|
12
40
|
"generateTimeout": 30000
|
package/docker-compose.yml
CHANGED
|
@@ -73,6 +73,9 @@ services:
|
|
|
73
73
|
- ./docker/wait-for:/opt/wait-for
|
|
74
74
|
environment:
|
|
75
75
|
- LOG_LEVEL=info
|
|
76
|
+
extra_hosts:
|
|
77
|
+
- "host.docker.internal:host-gateway"
|
|
78
|
+
- "simulator:host-gateway"
|
|
76
79
|
networks:
|
|
77
80
|
- cl-mojaloop-net
|
|
78
81
|
depends_on:
|
|
@@ -272,6 +275,9 @@ services:
|
|
|
272
275
|
replicas: 1
|
|
273
276
|
ports:
|
|
274
277
|
- "8444:8444"
|
|
278
|
+
extra_hosts:
|
|
279
|
+
- "host.docker.internal:host-gateway"
|
|
280
|
+
- "simulator:host-gateway"
|
|
275
281
|
environment:
|
|
276
282
|
- LOG_LEVEL=info
|
|
277
283
|
- TRANSFERS_ENDPOINT=http://host.docker.internal:3000
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mojaloop/central-ledger",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.14.0-snapshot.2",
|
|
4
4
|
"description": "Central ledger hosted by a scheme to record and settle transfers",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "ModusBox",
|
|
@@ -44,14 +44,14 @@
|
|
|
44
44
|
"lint": "npx standard",
|
|
45
45
|
"lint:fix": "npx standard --fix",
|
|
46
46
|
"test": "npm run test:unit:spec",
|
|
47
|
-
"test:unit": "tape 'test/unit/**/*.test.js'",
|
|
47
|
+
"test:unit": "tape 'test/unit/**/*.test.js' 'test/settlement/unit/**/*.test.js'",
|
|
48
48
|
"test:unit:spec": "npm run test:unit | tap-spec",
|
|
49
49
|
"test:unit:distLock": "npx tape 'test/unit/lib/distLock/**/*.test.js'",
|
|
50
50
|
"test:unit:participants-routes": "npx tape test/unit/api/participants/routes.test.js",
|
|
51
51
|
"test:xunit": "npm run test:unit | tap-xunit > ./test/results/xunit.xml",
|
|
52
|
-
"test:coverage": "npx nyc --reporter=lcov --reporter=text-summary tapes -- 'test/unit/**/**.test.js'",
|
|
52
|
+
"test:coverage": "npx nyc --reporter=lcov --reporter=text-summary tapes -- 'test/unit/**/**.test.js' 'test/settlement/unit/**/**.test.js'",
|
|
53
53
|
"test:coverage-check": "npm run test:coverage && nyc check-coverage",
|
|
54
|
-
"test:int": "npx tape 'test/integration/**/*.test.js' ",
|
|
54
|
+
"test:int": "npx tape 'test/integration/**/*.test.js' 'test/settlement/integration/**/*.test.js' ",
|
|
55
55
|
"test:int-override": "npx tape 'test/integration-override/**/*.test.js'",
|
|
56
56
|
"test:int:spec": "npm run test:int | npx tap-spec",
|
|
57
57
|
"test:xint": "npm run test:int | tee /dev/tty | tap-xunit > ./test/results/xunit-integration.xml",
|
|
@@ -87,37 +87,38 @@
|
|
|
87
87
|
"@hapi/catbox": "12.1.1",
|
|
88
88
|
"@hapi/catbox-memory": "6.0.2",
|
|
89
89
|
"@hapi/good": "9.0.1",
|
|
90
|
-
"@hapi/hapi": "21.4.
|
|
90
|
+
"@hapi/hapi": "21.4.8",
|
|
91
91
|
"@hapi/inert": "7.1.0",
|
|
92
92
|
"@hapi/vision": "7.0.3",
|
|
93
93
|
"@mojaloop/central-services-error-handling": "13.1.6",
|
|
94
94
|
"@mojaloop/central-services-health": "15.2.2",
|
|
95
95
|
"@mojaloop/central-services-logger": "11.10.4",
|
|
96
96
|
"@mojaloop/central-services-metrics": "12.8.5",
|
|
97
|
-
"@mojaloop/central-services-shared": "18.35.
|
|
97
|
+
"@mojaloop/central-services-shared": "18.35.7",
|
|
98
98
|
"@mojaloop/central-services-stream": "11.9.1",
|
|
99
99
|
"@mojaloop/database-lib": "11.3.7",
|
|
100
100
|
"@mojaloop/event-sdk": "14.8.3",
|
|
101
|
-
"@mojaloop/inter-scheme-proxy-cache-lib": "2.
|
|
101
|
+
"@mojaloop/inter-scheme-proxy-cache-lib": "2.10.0",
|
|
102
102
|
"@mojaloop/ml-number": "11.4.3",
|
|
103
103
|
"@mojaloop/object-store-lib": "12.2.3",
|
|
104
104
|
"@now-ims/hapi-now-auth": "2.1.0",
|
|
105
105
|
"ajv": "8.18.0",
|
|
106
106
|
"ajv-keywords": "5.1.0",
|
|
107
107
|
"base64url": "3.0.1",
|
|
108
|
+
"bignumber.js": "11.0.0",
|
|
108
109
|
"blipp": "4.0.2",
|
|
109
110
|
"commander": "14.0.3",
|
|
110
111
|
"cron": "4.4.0",
|
|
111
112
|
"decimal.js": "10.6.0",
|
|
112
113
|
"docdash": "2.0.2",
|
|
113
114
|
"event-stream": "4.0.1",
|
|
114
|
-
"five-bells-condition": "5.0.1",
|
|
115
115
|
"hapi-auth-bearer-token": "8.0.0",
|
|
116
|
+
"hapi-openapi": "3.0.0",
|
|
116
117
|
"hapi-swagger": "17.3.2",
|
|
117
118
|
"ilp-packet": "2.2.0",
|
|
118
119
|
"joi": "18.0.1",
|
|
119
|
-
"knex": "3.
|
|
120
|
-
"lodash": "4.
|
|
120
|
+
"knex": "3.2.9",
|
|
121
|
+
"lodash": "4.18.1",
|
|
121
122
|
"moment": "2.30.1",
|
|
122
123
|
"mongo-uri-builder": "^4.0.0",
|
|
123
124
|
"parse-strings-in-object": "2.0.0",
|
|
@@ -128,45 +129,51 @@
|
|
|
128
129
|
"mysql": "2.18.1"
|
|
129
130
|
},
|
|
130
131
|
"devDependencies": {
|
|
131
|
-
"@
|
|
132
|
-
"@opentelemetry/
|
|
132
|
+
"@hapi/joi": "17.1.1",
|
|
133
|
+
"@opentelemetry/api": "1.9.1",
|
|
134
|
+
"@opentelemetry/auto-instrumentations-node": "0.73.0",
|
|
133
135
|
"@types/mock-knex": "0.4.8",
|
|
134
136
|
"async-retry": "1.3.3",
|
|
135
137
|
"audit-ci": "^7.1.0",
|
|
136
138
|
"get-port": "5.1.1",
|
|
137
139
|
"jsdoc": "4.0.5",
|
|
138
|
-
"jsonpath": "1.
|
|
140
|
+
"jsonpath": "1.3.0",
|
|
139
141
|
"mock-knex": "0.4.13",
|
|
140
142
|
"nodemon": "3.1.14",
|
|
141
|
-
"npm-check-updates": "
|
|
143
|
+
"npm-check-updates": "21.0.3",
|
|
142
144
|
"nyc": "18.0.0",
|
|
143
145
|
"pre-commit": "1.2.2",
|
|
144
146
|
"proxyquire": "2.1.3",
|
|
145
147
|
"replace": "^1.2.2",
|
|
148
|
+
"rewire": "^9.0.1",
|
|
146
149
|
"sinon": "17.0.0",
|
|
147
150
|
"standard": "17.1.2",
|
|
148
151
|
"standard-version": "^9.5.0",
|
|
152
|
+
"swagmock": "1.0.0",
|
|
149
153
|
"tap-spec": "^5.0.0",
|
|
150
154
|
"tap-xunit": "2.4.1",
|
|
151
155
|
"tape": "4.17.0",
|
|
152
156
|
"tapes": "4.1.0"
|
|
153
157
|
},
|
|
154
158
|
"overrides": {
|
|
159
|
+
"protobufjs": "8.0.1",
|
|
160
|
+
"handlebars": "4.7.9",
|
|
155
161
|
"ajv": "8.18.0",
|
|
156
162
|
"eslint": {
|
|
157
|
-
"ajv": "6.
|
|
163
|
+
"ajv": "6.14.0"
|
|
158
164
|
},
|
|
159
165
|
"eslint@9.39.2": {
|
|
160
|
-
"ajv": "6.
|
|
166
|
+
"ajv": "6.14.0"
|
|
161
167
|
},
|
|
162
168
|
"@eslint/eslintrc": {
|
|
163
|
-
"ajv": "6.
|
|
169
|
+
"ajv": "6.14.0"
|
|
164
170
|
},
|
|
165
|
-
"axios": "1.
|
|
166
|
-
"brace-expansion": "2.0.
|
|
167
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
171
|
+
"axios": "1.15.0",
|
|
172
|
+
"brace-expansion": "2.0.3",
|
|
173
|
+
"convict": "6.2.5",
|
|
174
|
+
"form-data": "4.0.5",
|
|
175
|
+
"lodash": "4.18.1",
|
|
176
|
+
"undici": "6.24.0",
|
|
170
177
|
"shins": {
|
|
171
178
|
"ajv": "8.18.0",
|
|
172
179
|
"ejs": "3.1.10",
|
|
@@ -183,13 +190,24 @@
|
|
|
183
190
|
"hapi-swagger": {
|
|
184
191
|
"joi": "18.0.1"
|
|
185
192
|
},
|
|
193
|
+
"immutable": "5.1.5",
|
|
186
194
|
"jsonwebtoken": "9.0.0",
|
|
187
195
|
"jsonpointer": "5.0.0",
|
|
188
196
|
"on-headers": "1.1.0",
|
|
197
|
+
"path-to-regexp": "0.1.13",
|
|
189
198
|
"trim": "0.0.3",
|
|
190
199
|
"cross-spawn": "7.0.6",
|
|
200
|
+
"yaml": "1.10.3",
|
|
201
|
+
"validator": "13.15.22",
|
|
191
202
|
"yargs-parser": "21.1.1",
|
|
192
|
-
"fast-xml-parser": "5.
|
|
203
|
+
"fast-xml-parser": "5.5.7",
|
|
204
|
+
"minimatch@<=3.1.3": "3.1.5",
|
|
205
|
+
"minimatch@5.1.7": "5.1.9",
|
|
206
|
+
"minimatch@9.0.6": "9.0.9",
|
|
207
|
+
"replace": {
|
|
208
|
+
"minimatch": "3.1.5"
|
|
209
|
+
},
|
|
210
|
+
"underscore": "1.13.8"
|
|
193
211
|
},
|
|
194
212
|
"config": {
|
|
195
213
|
"knex": "--knexfile ./config/knexfile.js",
|