@mojaloop/central-ledger 9.2.2 → 15.1.3-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.
Files changed (256) hide show
  1. package/.circleci/config.yml +625 -204
  2. package/.env +3 -2
  3. package/.ncurc.yaml +9 -0
  4. package/.nvmrc +1 -1
  5. package/.versionrc +15 -0
  6. package/CHANGELOG.md +353 -0
  7. package/CODEOWNERS +31 -0
  8. package/Dockerfile +20 -14
  9. package/LICENSE.md +4 -4
  10. package/Onboarding.md +0 -7
  11. package/README.md +99 -22
  12. package/audit-resolve.json +136 -1
  13. package/config/default.json +82 -27
  14. package/docker/central-ledger/default.json +68 -21
  15. package/docker/ml-api-adapter/default.json +10 -1
  16. package/docker/wait-for/wait-for-objstore.sh +1 -6
  17. package/docker/wait-for/wait-for.env +1 -1
  18. package/docker-compose.integration.yml +8 -5
  19. package/docker-compose.yml +73 -16
  20. package/migrations/310203_transferParticipant-indexes.js +38 -0
  21. package/migrations/310503_participantLimit-indexes-composite.js +38 -0
  22. package/migrations/{400401_settlementWindowStateChange-indexes.js → 400401_settlmentWindowStateChange-indexes.js} +0 -0
  23. package/migrations/401301_settlementModel-indexes.js +2 -0
  24. package/migrations/500401_quote-hotfix-2719.js +58 -0
  25. package/migrations/500501_feature-fixSubIdRef.js +53 -0
  26. package/migrations/500601_party-2480.js +63 -0
  27. package/migrations/501001_quoteExtension-quote-service-174.js +46 -0
  28. package/migrations/501002_quoteExtension-2522.js +61 -0
  29. package/migrations/800101_feature-fixSubIdRef.js +90 -0
  30. package/migrations/910102_hotfix954.js +4 -1
  31. package/migrations/940100_quotePartyIdInfoExtension.js +52 -0
  32. package/migrations/940101_quotePartyIdInfoExtension-2522.js +64 -0
  33. package/migrations/950100_settlementContentAggregation-decimal184.js +40 -0
  34. package/migrations/950101_transferParticipantStateChange.js +46 -0
  35. package/migrations/950102_settlementModel-adjustPosition.js +42 -0
  36. package/migrations/950103_dropTransferParticipantStateChange.js +47 -0
  37. package/migrations/950104_settlementModel-settlementAccountTypeId.js +79 -0
  38. package/migrations/950106_unique_settlement_model_ledger_account_currency.js +38 -0
  39. package/migrations/950107_settlementWindowContent_foreign_settlementModel.js +60 -0
  40. package/package.json +99 -81
  41. package/scripts/_wait4_all.js +146 -0
  42. package/seeds/amountType.js +4 -6
  43. package/seeds/balanceOfPayments.js +4 -6
  44. package/seeds/bulkProcessingState.js +4 -6
  45. package/seeds/bulkTransferState.js +4 -6
  46. package/seeds/currency.js +4 -6
  47. package/seeds/endpointType.js +128 -7
  48. package/seeds/ledgerAccountType.js +11 -10
  49. package/seeds/ledgerEntryType.js +5 -7
  50. package/seeds/participant.js +4 -6
  51. package/seeds/participantLimitType.js +4 -6
  52. package/seeds/partyIdentifierType.js +4 -6
  53. package/seeds/partyType.js +4 -6
  54. package/seeds/settlementDelay.js +4 -6
  55. package/seeds/settlementGranularity.js +4 -6
  56. package/seeds/settlementInterchange.js +4 -6
  57. package/seeds/settlementState.js +4 -6
  58. package/seeds/settlementWindow1State.js +4 -6
  59. package/seeds/transactionInitiator.js +4 -6
  60. package/seeds/transactionInitiatorType.js +4 -6
  61. package/seeds/transactionScenario.js +4 -6
  62. package/seeds/transferParticipantRoleType.js +4 -6
  63. package/seeds/transferState.js +9 -6
  64. package/src/api/interface/swagger.json +728 -948
  65. package/src/api/ledgerAccountTypes/handler.js +55 -0
  66. package/src/api/ledgerAccountTypes/routes.js +63 -0
  67. package/src/api/metrics/handler.js +2 -2
  68. package/src/api/metrics/routes.js +1 -1
  69. package/src/api/participants/handler.js +43 -35
  70. package/src/api/participants/routes.js +13 -13
  71. package/src/api/root/routes.js +2 -2
  72. package/src/api/settlementModels/handler.js +9 -26
  73. package/src/api/settlementModels/routes.js +4 -4
  74. package/src/api/transactions/handler.js +46 -0
  75. package/src/api/transactions/routes.js +45 -0
  76. package/src/domain/bulkTransfer/index.js +6 -5
  77. package/src/domain/ledgerAccountTypes/index.js +58 -0
  78. package/src/domain/participant/index.js +55 -4
  79. package/src/domain/position/index.js +18 -2
  80. package/src/domain/settlement/index.js +39 -6
  81. package/src/domain/transactions/index.js +61 -0
  82. package/src/domain/transfer/index.js +22 -2
  83. package/src/domain/transfer/transform.js +3 -3
  84. package/src/handlers/admin/handler.js +24 -32
  85. package/src/handlers/bulk/fulfil/handler.js +89 -56
  86. package/src/handlers/bulk/get/handler.js +203 -0
  87. package/src/handlers/bulk/index.js +4 -1
  88. package/src/handlers/bulk/prepare/handler.js +30 -29
  89. package/src/handlers/bulk/processing/handler.js +61 -32
  90. package/src/handlers/bulk/shared/validator.js +13 -1
  91. package/src/handlers/index.js +18 -9
  92. package/src/handlers/positions/handler.js +67 -46
  93. package/src/handlers/register.js +7 -7
  94. package/src/handlers/timeouts/handler.js +9 -4
  95. package/src/handlers/transfers/handler.js +408 -182
  96. package/src/handlers/transfers/validator.js +41 -11
  97. package/src/lib/cache.js +8 -34
  98. package/src/lib/config.js +5 -7
  99. package/src/lib/enum.js +22 -22
  100. package/src/lib/enumCached.js +76 -0
  101. package/src/lib/healthCheck/subServiceHealth.js +2 -2
  102. package/src/lib/requestLogger.js +9 -9
  103. package/src/lib/urlParser.js +1 -1
  104. package/src/models/bulkTransfer/bulkTransfer.js +6 -6
  105. package/src/models/bulkTransfer/bulkTransferAssociation.js +3 -3
  106. package/src/models/bulkTransfer/bulkTransferDuplicateCheck.js +4 -4
  107. package/src/models/bulkTransfer/bulkTransferExtension.js +2 -2
  108. package/src/models/bulkTransfer/bulkTransferFulfilmentDuplicateCheck.js +4 -4
  109. package/src/models/bulkTransfer/bulkTransferStateChange.js +7 -7
  110. package/src/models/bulkTransfer/facade.js +54 -3
  111. package/src/models/bulkTransfer/individualTransfer.js +2 -2
  112. package/src/models/ilpPackets/ilpPacket.js +36 -0
  113. package/src/models/ledgerAccountType/ledgerAccountType.js +139 -3
  114. package/src/models/misc/migrationLock.js +1 -1
  115. package/src/models/misc/segment.js +1 -1
  116. package/src/models/participant/facade.js +226 -76
  117. package/src/models/participant/participant.js +6 -5
  118. package/src/models/participant/participantCached.js +8 -0
  119. package/src/models/participant/participantCurrency.js +7 -7
  120. package/src/models/participant/participantCurrencyCached.js +11 -1
  121. package/src/models/participant/participantLimit.js +13 -13
  122. package/src/models/participant/participantLimitCached.js +124 -0
  123. package/src/models/participant/participantPosition.js +34 -5
  124. package/src/models/participant/participantPositionChange.js +10 -2
  125. package/src/models/position/facade.js +112 -18
  126. package/src/models/position/participantPosition.js +6 -6
  127. package/src/models/settlement/settlementModel.js +92 -17
  128. package/src/models/settlement/settlementModelCached.js +139 -0
  129. package/src/models/transfer/facade.js +97 -32
  130. package/src/models/transfer/ilpPacket.js +4 -4
  131. package/src/models/transfer/transfer.js +7 -7
  132. package/src/models/transfer/transferDuplicateCheck.js +21 -5
  133. package/src/models/transfer/transferError.js +5 -5
  134. package/src/models/transfer/transferErrorDuplicateCheck.js +4 -4
  135. package/src/models/transfer/transferExtension.js +4 -4
  136. package/src/models/transfer/transferFulfilment.js +5 -5
  137. package/src/models/transfer/transferFulfilmentDuplicateCheck.js +4 -4
  138. package/src/models/transfer/transferParticipant.js +3 -3
  139. package/src/models/transfer/transferStateChange.js +11 -11
  140. package/src/models/transfer/transferTimeout.js +5 -5
  141. package/src/schema/bulkTransfer.js +4 -4
  142. package/src/shared/plugins.js +10 -9
  143. package/src/shared/setup.js +69 -46
  144. package/test/integration/domain/participant/index.test.js +2 -0
  145. package/test/integration/handlers/handlers.test.js +605 -166
  146. package/test/integration/handlers/root.test.js +1 -1
  147. package/test/integration/helpers/hubAccounts.js +62 -0
  148. package/test/integration/helpers/ilpPacket.js +1 -1
  149. package/test/integration/helpers/participantFundsInOut.js +80 -0
  150. package/test/integration/helpers/participantLimit.js +6 -1
  151. package/test/integration/helpers/settlementModels.js +88 -0
  152. package/test/integration/helpers/testConsumer.js +163 -0
  153. package/test/integration/helpers/testProducer.js +0 -1
  154. package/test/integration/helpers/transferDuplicateCheck.js +1 -1
  155. package/test/integration/helpers/transferStateChange.js +1 -1
  156. package/test/integration/helpers/transferTestHelper.js +3 -5
  157. package/test/integration/models/transfer/transferStateChange.test.js +6 -0
  158. package/test/unit/api/ledgerAccountTypes/handler.test.js +126 -0
  159. package/test/unit/api/ledgerAccountTypes/routes.test.js +52 -0
  160. package/test/unit/api/participants/handler.test.js +75 -33
  161. package/test/unit/api/root/handler.test.js +1 -1
  162. package/test/unit/api/root/routes.test.js +2 -2
  163. package/test/unit/api/settlementModels/handler.test.js +21 -57
  164. package/test/unit/api/transactions/handler.test.js +108 -0
  165. package/test/unit/api/transactions/routes.test.js +38 -0
  166. package/test/unit/domain/ledgerAccountTypes/index.test.js +197 -0
  167. package/test/unit/domain/participant/index.test.js +115 -2
  168. package/test/unit/domain/settlement/index.test.js +199 -29
  169. package/test/unit/domain/transactions/index.test.js +128 -0
  170. package/test/unit/domain/transfer/index.test.js +1 -0
  171. package/test/unit/domain/transfer/transform.test.js +2 -0
  172. package/test/unit/handlers/admin/handler.test.js +5 -5
  173. package/test/unit/handlers/bulk/get/handler.test.js +401 -0
  174. package/test/unit/handlers/index.test.js +6 -0
  175. package/test/unit/handlers/positions/handler.test.js +26 -0
  176. package/test/unit/handlers/register.test.js +2 -0
  177. package/test/unit/handlers/transfers/handler.test.js +491 -36
  178. package/test/unit/handlers/transfers/validator.test.js +31 -31
  179. package/test/unit/lib/cache.test.js +0 -64
  180. package/test/unit/lib/cachingOfEnums.test.js +121 -0
  181. package/test/unit/lib/config.test.js +34 -0
  182. package/test/unit/lib/enum.test.js +6 -1
  183. package/test/unit/lib/enumCached.test.js +82 -0
  184. package/test/unit/lib/healthCheck/subServiceHealth.test.js +2 -0
  185. package/test/unit/lib/requestLogger.test.js +14 -12
  186. package/test/unit/models/ilpPackets/ilpPacket.test.js +89 -0
  187. package/test/unit/models/ledgerAccountType/ledgerAccountType.test.js +255 -6
  188. package/test/unit/models/misc/migrationLock.test.js +4 -0
  189. package/test/unit/models/misc/segment.test.js +5 -0
  190. package/test/unit/models/participant/facade.test.js +493 -54
  191. package/test/unit/models/participant/participant.test.js +4 -0
  192. package/test/unit/models/participant/participantCurrency.test.js +22 -9
  193. package/test/unit/models/participant/participantCurrencyCached.test.js +1 -1
  194. package/test/unit/models/participant/participantLimit.test.js +97 -0
  195. package/test/unit/models/participant/participantLimitCached.test.js +232 -0
  196. package/test/unit/models/participant/participantPosition.test.js +217 -0
  197. package/test/unit/models/participant/participantPositionChange.test.js +3 -0
  198. package/test/unit/models/position/facade.test.js +318 -29
  199. package/test/unit/models/position/participantPosition.test.js +22 -7
  200. package/test/unit/models/settlement/settlementModel.test.js +18 -37
  201. package/test/unit/models/settlement/settlementModelCached.test.js +171 -0
  202. package/test/unit/models/transfer/facade.test.js +115 -0
  203. package/test/unit/models/transfer/ilpPacket.test.js +28 -11
  204. package/test/unit/models/transfer/transfer.test.js +13 -4
  205. package/test/unit/models/transfer/transferDuplicateCheck.test.js +4 -0
  206. package/test/unit/models/transfer/transferError.test.js +5 -1
  207. package/test/unit/models/transfer/transferErrorDuplicateCheck.test.js +4 -0
  208. package/test/unit/models/transfer/transferExtension.test.js +26 -9
  209. package/test/unit/models/transfer/transferFulfilment.test.js +14 -5
  210. package/test/unit/models/transfer/transferFulfilmentDuplicateCheck.test.js +4 -0
  211. package/test/unit/models/transfer/transferParticipant.test.js +14 -5
  212. package/test/unit/models/transfer/transferStateChange.test.js +3 -0
  213. package/test/unit/models/transfer/transferTimeout.test.js +6 -0
  214. package/test/unit/seeds/amountType.test.js +6 -22
  215. package/test/unit/seeds/balanceOfPayments.test.js +6 -22
  216. package/test/unit/seeds/bulkProcessingState.test.js +84 -0
  217. package/test/unit/{lib/sidecar/nullClient.test.js → seeds/bulkTransferState.test.js} +36 -39
  218. package/test/unit/seeds/currency.test.js +6 -22
  219. package/test/unit/seeds/endpointType.test.js +6 -22
  220. package/test/unit/seeds/ledgerAccountType.test.js +5 -22
  221. package/test/unit/seeds/ledgerEntryType.test.js +6 -22
  222. package/test/unit/seeds/participant.test.js +5 -22
  223. package/test/unit/seeds/participantLimitType.test.js +6 -22
  224. package/test/unit/seeds/partyIdentifierType.test.js +6 -22
  225. package/test/unit/seeds/partyType.test.js +6 -22
  226. package/test/unit/seeds/settlementState.test.js +5 -22
  227. package/test/unit/seeds/settlementWindow1State.test.js +5 -22
  228. package/test/unit/seeds/transactionInitiator.test.js +6 -22
  229. package/test/unit/seeds/transactionInitiatorType.test.js +6 -22
  230. package/test/unit/seeds/transactionScenario.test.js +6 -22
  231. package/test/unit/seeds/transferParticipantRoleType.test.js +6 -22
  232. package/test/unit/seeds/transferState.test.js +6 -22
  233. package/test/unit/shared/plugins.test.js +31 -1
  234. package/test/unit/shared/setup.test.js +25 -36
  235. package/test/util/helpers.js +37 -2
  236. package/test/util/randomTransfers.js +1 -1
  237. package/test/util/scripts/env.sh +6 -5
  238. package/test/util/scripts/populateTestData.sh +204 -181
  239. package/test/util/scripts/populateTestDataForLegacySimulator.sh +261 -0
  240. package/test/util/scripts/restartObjStore.sh +1 -1
  241. package/test-integration.Dockerfile +15 -15
  242. package/test.Dockerfile +12 -12
  243. package/.circleci/_set_up_deploy_envs.sh +0 -47
  244. package/.dockerignore +0 -17
  245. package/.ncurc.json +0 -3
  246. package/server.sh +0 -4
  247. package/sonar-project.properties +0 -17
  248. package/src/lib/sidecar/index.js +0 -47
  249. package/src/lib/sidecar/nullClient.js +0 -18
  250. package/test/.env +0 -8
  251. package/test/integration-config.json +0 -367
  252. package/test/integration-runner.env +0 -31
  253. package/test/integration-runner.sh +0 -264
  254. package/test/spec-runner.sh +0 -132
  255. package/test/unit/lib/sidecar/index.test.js +0 -148
  256. package/test/unit/models/position/participantLimit.test.js +0 -135
@@ -0,0 +1,261 @@
1
+ #!/usr/bin/env bash
2
+ echo "---------------------------------------------------------------------"
3
+ echo "Starting script to populate test data.."
4
+ echo "---------------------------------------------------------------------"
5
+ echo
6
+
7
+ CWD="${0%/*}"
8
+
9
+ if [[ "$CWD" =~ ^(.*)\.sh$ ]];
10
+ then
11
+ CWD="."
12
+ fi
13
+
14
+ echo "Loading env vars..."
15
+ source $CWD/env.sh
16
+
17
+ echo
18
+ echo "---------------------------------------------------------------------"
19
+ echo " Creating TestData for $FSPList"
20
+ echo "---------------------------------------------------------------------"
21
+
22
+ echo "---------------------------------------------------------------------"
23
+ echo "Creating Hub Reconciliation account for the Scheme so that participant accounts in that currency can be created."
24
+ echo "---------------------------------------------------------------------"
25
+ curl -X POST \
26
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/Hub/accounts \
27
+ -H 'Cache-Control: no-cache' \
28
+ -H 'Content-Type: application/json' \
29
+ -H 'cache-control: no-cache' \
30
+ -d '{
31
+ "currency": "USD",
32
+ "type": "HUB_RECONCILIATION"
33
+ }'
34
+
35
+ echo "---------------------------------------------------------------------"
36
+ echo "Creating Hub Multilateral Net Settlement account for the Scheme so that participant accounts in that currency can be created."
37
+ echo "---------------------------------------------------------------------"
38
+ curl -X POST \
39
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/Hub/accounts \
40
+ -H 'Cache-Control: no-cache' \
41
+ -H 'Content-Type: application/json' \
42
+ -H 'cache-control: no-cache' \
43
+ -d '{
44
+ "currency": "USD",
45
+ "type": "HUB_MULTILATERAL_SETTLEMENT"
46
+ }'
47
+
48
+ echo
49
+ echo "---------------------------------------------------------------------"
50
+ echo " Creating TestData for $FSPList"
51
+ echo "---------------------------------------------------------------------"
52
+ echo " Prerequisites for Central-Ledger:"
53
+ echo " 1. Ensure you run 'npm run migrate'"
54
+ echo " 2. The below requests only work for the 'ADMIN' API"
55
+
56
+ for FSP in "${FSPList[@]}"
57
+ do
58
+ echo ''
59
+ echo "*********************************************************************"
60
+ echo ''
61
+ echo
62
+ echo "Creating participants '$FSP'"
63
+ echo "---------------------------------------------------------------------"
64
+ sh -c "curl -i -X POST \
65
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants \
66
+ -H 'Cache-Control: no-cache' \
67
+ -H 'Content-Type: application/json' \
68
+ -d '{
69
+ \"name\": \"$FSP\",
70
+ \"currency\":\"USD\"
71
+ }'"
72
+
73
+ echo
74
+ echo "Setting limits and initial position for '$FSP'"
75
+ echo "---------------------------------------------------------------------"
76
+ sh -c "curl -i -X POST \
77
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/initialPositionAndLimits \
78
+ -H 'Cache-Control: no-cache' \
79
+ -H 'Content-Type: application/json' \
80
+ -d '{
81
+ \"currency\": \"USD\",
82
+ \"limit\": {
83
+ \"type\": \"NET_DEBIT_CAP\",
84
+ \"value\": ${DEFAULT_NET_DEBIT_CAP}
85
+ },
86
+ \"initialPosition\": 0
87
+ }'"
88
+
89
+ echo
90
+ echo "Retrieving limits for '$FSP'"
91
+ echo "---------------------------------------------------------------------"
92
+ curl -X GET \
93
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/limits \
94
+ -H 'Cache-Control: no-cache'
95
+
96
+ echo
97
+ echo "Set callback URIs for each FSP '$FSP'"
98
+ echo "---------------------------------------------------------------------"
99
+ sh -c "curl -X POST \
100
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
101
+ -H 'Cache-Control: no-cache' \
102
+ -H 'Content-Type: application/json' \
103
+ -d '{
104
+ \"type\": \"FSPIOP_CALLBACK_URL_TRANSFER_POST\",
105
+ \"value\": \"http://localhost:8444/${FSP}/transfers\"
106
+ }'"
107
+
108
+ sh -c "curl -X POST \
109
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
110
+ -H 'Cache-Control: no-cache' \
111
+ -H 'Content-Type: application/json' \
112
+ -d '{
113
+ \"type\": \"FSPIOP_CALLBACK_URL_PARTICIPANT_PUT\",
114
+ \"value\": \"http://localhost:8444/${FSP}/participants/{{partyIdType}}/{{partyIdentifier}}\"
115
+ }'"
116
+
117
+ sh -c "curl -X POST \
118
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
119
+ -H 'Cache-Control: no-cache' \
120
+ -H 'Content-Type: application/json' \
121
+ -d '{
122
+ \"type\": \"FSPIOP_CALLBACK_URL_PARTIES_GET\",
123
+ \"value\": \"http://localhost:8444/${FSP}/parties/{{partyIdType}}/{{partyIdentifier}}\"
124
+ }'"
125
+
126
+ sh -c "curl -X POST \
127
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
128
+ -H 'Cache-Control: no-cache' \
129
+ -H 'Content-Type: application/json' \
130
+ -d '{
131
+ \"type\": \"FSPIOP_CALLBACK_URL_PARTICIPANT_PUT_ERROR\",
132
+ \"value\": \"http://localhost:8444/${FSP}/participants/{{partyIdType}}/{{partyIdentifier}}/error\"
133
+ }'"
134
+
135
+ sh -c "curl -X POST \
136
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
137
+ -H 'Cache-Control: no-cache' \
138
+ -H 'Content-Type: application/json' \
139
+ -d '{
140
+ \"type\": \"FSPIOP_CALLBACK_URL_PARTICIPANT_BATCH_PUT\",
141
+ \"value\": \"http://localhost:8444/${FSP}/participants/{{requestId}}\"
142
+ }'"
143
+
144
+ sh -c "curl -X POST \
145
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
146
+ -H 'Cache-Control: no-cache' \
147
+ -H 'Content-Type: application/json' \
148
+ -d '{
149
+ \"type\": \"FSPIOP_CALLBACK_URL_PARTICIPANT_BATCH_PUT_ERROR\",
150
+ \"value\": \"http://localhost:8444/${FSP}\/participants/{{requestId}}/error\"
151
+ }'"
152
+
153
+ sh -c "curl -X POST \
154
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
155
+ -H 'Cache-Control: no-cache' \
156
+ -H 'Content-Type: application/json' \
157
+ -d '{
158
+ \"type\": \"FSPIOP_CALLBACK_URL_PARTIES_PUT\",
159
+ \"value\": \"http://localhost:8444/${FSP}/parties/{{partyIdType}}/{{partyIdentifier}}\"
160
+ }'"
161
+
162
+ sh -c "curl -X POST \
163
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
164
+ -H 'Cache-Control: no-cache' \
165
+ -H 'Content-Type: application/json' \
166
+ -d '{
167
+ \"type\": \"FSPIOP_CALLBACK_URL_PARTIES_PUT_ERROR\",
168
+ \"value\": \"http://localhost:8444/${FSP}/parties/{{partyIdType}}/{{partyIdentifier}}\"
169
+ }'"
170
+
171
+ sh -c "curl -X POST \
172
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
173
+ -H 'Cache-Control: no-cache' \
174
+ -H 'Content-Type: application/json' \
175
+ -d '{
176
+ \"type\": \"FSPIOP_CALLBACK_URL_TRANSFER_PUT\",
177
+ \"value\": \"http://localhost:8444/${FSP}/transfers/{{transferId}}\"
178
+ }'"
179
+
180
+ sh -c "curl -X POST \
181
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
182
+ -H 'Cache-Control: no-cache' \
183
+ -H 'Content-Type: application/json' \
184
+ -d '{
185
+ \"type\": \"FSPIOP_CALLBACK_URL_TRANSFER_ERROR\",
186
+ \"value\": \"http://localhost:8444/${FSP}/transfers/{{transferId}}/error\"
187
+ }'"
188
+
189
+ sh -c "curl -X POST \
190
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
191
+ -H 'Cache-Control: no-cache' \
192
+ -H 'Content-Type: application/json' \
193
+ -d '{
194
+ \"type\": \"FSPIOP_CALLBACK_URL_BULK_TRANSFER_POST\",
195
+ \"value\": \"http://localhost:8444/${FSP}/bulkTransfers\"
196
+ }'"
197
+
198
+ sh -c "curl -X POST \
199
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
200
+ -H 'Cache-Control: no-cache' \
201
+ -H 'Content-Type: application/json' \
202
+ -d '{
203
+ \"type\": \"FSPIOP_CALLBACK_URL_BULK_TRANSFER_PUT\",
204
+ \"value\": \"http://localhost:8444/${FSP}/bulkTransfers/{{id}}\"
205
+ }'"
206
+
207
+ sh -c "curl -X POST \
208
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
209
+ -H 'Cache-Control: no-cache' \
210
+ -H 'Content-Type: application/json' \
211
+ -d '{
212
+ \"type\": \"FSPIOP_CALLBACK_URL_BULK_TRANSFER_ERROR\",
213
+ \"value\": \"http://localhost:8444/${FSP}/bulkTransfers/{{id}}/error\"
214
+ }'"
215
+
216
+ sh -c "curl -X POST \
217
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
218
+ -H 'Cache-Control: no-cache' \
219
+ -H 'Content-Type: application/json' \
220
+ -d '{
221
+ \"type\": \"FSPIOP_CALLBACK_URL_QUOTES\",
222
+ \"value\": \"http://localhost:8444/${FSP}\"
223
+ }'"
224
+
225
+ sh -c "curl -X POST \
226
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
227
+ -H 'Cache-Control: no-cache' \
228
+ -H 'Content-Type: application/json' \
229
+ -d '{
230
+ \"type\": \"FSPIOP_CALLBACK_URL_AUTHORIZATIONS\",
231
+ \"value\": \"http://localhost:8444/${FSP}\"
232
+ }'"
233
+
234
+ sh -c "curl -X POST \
235
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
236
+ -H 'Cache-Control: no-cache' \
237
+ -H 'Content-Type: application/json' \
238
+ -d '{
239
+ \"type\": \"FSPIOP_CALLBACK_URL_TRX_REQ_SERVICE\",
240
+ \"value\": \"http://localhost:8444/${FSP}\"
241
+ }'"
242
+
243
+ sh -c "curl -X POST \
244
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
245
+ -H 'Cache-Control: no-cache' \
246
+ -H 'Content-Type: application/json' \
247
+ -d '{
248
+ \"type\": \"FSPIOP_CALLBACK_URL_BULK_QUOTES\",
249
+ \"value\": \"http://localhost:8444\"
250
+ }'"
251
+
252
+ echo
253
+ echo "Retrieving EndPoints for '$FSP'"
254
+ echo "---------------------------------------------------------------------"
255
+ curl -X GET \
256
+ ${CENTRAL_LEDGER_ADMIN_URI_PREFIX}://${CENTRAL_LEDGER_ADMIN_HOST}:${CENTRAL_LEDGER_ADMIN_PORT}${CENTRAL_LEDGER_ADMIN_BASE}participants/${FSP}/endpoints \
257
+ -H 'Cache-Control: no-cache'
258
+
259
+ done
260
+
261
+ echo
@@ -25,7 +25,7 @@ docker rm $OBJ_ID
25
25
  docker volume rm ${OBJ_ID}data
26
26
 
27
27
  echo "Starting Docker ${OBJ_ID}"
28
- docker run --name ${OBJ_ID} -p 27017:27017 -v ${DB_ID}data:/etc/mongo -d mongo:latest
28
+ docker run --name ${OBJ_ID} -p 27017:27017 -v ${OBJ_ID}data:/etc/mongo -d mongo:latest
29
29
 
30
30
  sleep $DB_SLEEPTIME;
31
31
 
@@ -1,27 +1,27 @@
1
- FROM node:12.16.0-alpine
1
+ FROM node:16.15.0-alpine
2
2
  USER root
3
3
 
4
- WORKDIR /opt/central-ledger
4
+ WORKDIR /opt/app
5
5
 
6
- RUN apk add --no-cache -t build-dependencies make gcc g++ python libtool autoconf automake \
7
- && cd $(npm root -g)/npm \
8
- && npm config set unsafe-perm true \
9
- && npm install -g node-gyp tape tap-xunit \
10
- && apk --no-cache add git
6
+ RUN apk --no-cache add git
7
+ RUN apk add --no-cache -t build-dependencies make gcc g++ python3 libtool libressl-dev openssl-dev autoconf automake \
8
+ && cd $(npm root -g)/npm \
9
+ && npm config set unsafe-perm true \
10
+ && npm install -g node-gyp
11
11
 
12
- COPY package.json package-lock.json* /opt/central-ledger/
12
+ COPY package.json package-lock.json* /opt/app/
13
13
  RUN npm install
14
14
 
15
15
  RUN apk del build-dependencies
16
16
 
17
- COPY src /opt/central-ledger/src
18
- COPY config /opt/central-ledger/config
19
- COPY migrations /opt/central-ledger/migrations
20
- COPY seeds /opt/central-ledger/seeds
21
- COPY test /opt/central-ledger/test
17
+ COPY src /opt/app/src
18
+ COPY config /opt/app/config
19
+ COPY migrations /opt/app/migrations
20
+ COPY seeds /opt/app/seeds
21
+ COPY test /opt/app/test
22
22
 
23
23
  # overwrite default.json with integration environment specific config
24
- RUN cp -f /opt/central-ledger/test/integration-config.json /opt/central-ledger/config/default.json
24
+ RUN cp -f /opt/app/test/integration-config.json /opt/app/config/default.json
25
25
 
26
26
  EXPOSE 3001
27
- CMD ["/opt/central-ledger/server.sh"]
27
+ CMD ["npm", "start"]
package/test.Dockerfile CHANGED
@@ -1,24 +1,24 @@
1
- FROM node:12.16.0-alpine
1
+ FROM node:16.15.0-alpine
2
2
  USER root
3
3
 
4
- WORKDIR /opt/central-ledger
4
+ WORKDIR /opt/app
5
5
 
6
- RUN apk add --no-cache -t build-dependencies git make gcc g++ python libtool autoconf automake \
6
+ RUN apk --no-cache add git
7
+ RUN apk add --no-cache -t build-dependencies make gcc g++ python3 libtool libressl-dev openssl-dev autoconf automake \
7
8
  && cd $(npm root -g)/npm \
8
9
  && npm config set unsafe-perm true \
9
- && npm install -g node-gyp tape tap-xunit \
10
- && apk --no-cache add git
10
+ && npm install -g node-gyp tape tap-xunit
11
11
 
12
- COPY package.json package-lock.json* /opt/central-ledger/
12
+ COPY package.json package-lock.json* /opt/app/
13
13
  RUN npm install
14
14
 
15
15
  RUN apk del build-dependencies
16
16
 
17
- COPY src /opt/central-ledger/src
18
- COPY config /opt/central-ledger/config
19
- COPY migrations /opt/central-ledger/migrations
20
- COPY seeds /opt/central-ledger/seeds
21
- COPY test /opt/central-ledger/test
17
+ COPY src /opt/app/src
18
+ COPY config /opt/app/config
19
+ COPY migrations /opt/app/migrations
20
+ COPY seeds /opt/app/seeds
21
+ COPY test /opt/app/test
22
22
 
23
23
  EXPOSE 3001
24
- CMD ["/opt/central-ledger/server.sh"]
24
+ CMD ["npm", "start"]
@@ -1,47 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -o nounset
3
-
4
-
5
- if [[ ${CIRCLE_TAG} =~ v[0-9]+(\.[0-9]+)*(\-snapshot) ]]; then
6
- echo "Setting snap shot env vars for ${CIRCLE_TAG}"
7
-
8
- echo 'export RELEASE_TAG=$RELEASE_TAG_SNAPSHOT' >> $BASH_ENV
9
- echo 'export HELM_VALUE_FILENAME=$K8_HELM_VALUE_FILENAME_SNAPSHOT' >> $BASH_ENV
10
- echo 'export K8_CLUSTER_SERVER=$K8_CLUSTER_SERVER_SNAPSHOT' >> $BASH_ENV
11
- echo 'export K8_RELEASE_NAME=$K8_RELEASE_NAME_SNAPSHOT' >> $BASH_ENV
12
- echo 'export K8_NAMESPACE=$K8_NAMESPACE_SNAPSHOT' >> $BASH_ENV
13
- echo 'export K8_USER_NAME=$K8_USER_NAME_SNAPSHOT' >> $BASH_ENV
14
- echo 'export K8_USER_TOKEN=$K8_USER_TOKEN_SNAPSHOT' >> $BASH_ENV
15
- echo 'export K8_HELM_CHART_NAME=$K8_HELM_CHART_NAME_SNAPSHOT' >> $BASH_ENV
16
- echo 'export K8_HELM_CHART_VERSION=$K8_HELM_CHART_VERSION_SNAPSHOT' >> $BASH_ENV
17
- echo 'export HELM_VALUE_SET_VALUES="--set central.centralhub.centralledger.containers.api.image.repository=$DOCKER_ORG/$CIRCLE_PROJECT_REPONAME --set central.centralhub.centralledger.containers.api.image.tag=$CIRCLE_TAG --set central.centralhub.centralledger.containers.admin.image.repository=$DOCKER_ORG/$CIRCLE_PROJECT_REPONAME --set central.centralhub.centralledger.containers.admin.image.tag=$CIRCLE_TAG"' >> $BASH_ENV
18
-
19
- exit 0
20
- fi
21
-
22
- if [[ ${CIRCLE_TAG} =~ v[0-9]+(\.[0-9]+)*(\-hotfix) ]]; then
23
- echo "Setting hotfix env vars for ${CIRCLE_TAG}"
24
-
25
- echo 'export RELEASE_TAG=$RELEASE_TAG_PROD' >> $BASH_ENV
26
- exit 0
27
- fi
28
-
29
- if [[ ${CIRCLE_TAG} =~ v[0-9]+(\.[0-9]+)* ]]; then
30
- echo "Setting prod env vars for ${CIRCLE_TAG}"
31
-
32
- echo 'export RELEASE_TAG=$RELEASE_TAG_PROD' >> $BASH_ENV
33
- echo 'export HELM_VALUE_FILENAME=$K8_HELM_VALUE_FILENAME_PROD' >> $BASH_ENV
34
- echo 'export K8_CLUSTER_SERVER=$K8_CLUSTER_SERVER_PROD' >> $BASH_ENV
35
- echo 'export K8_RELEASE_NAME=$K8_RELEASE_NAME_PROD' >> $BASH_ENV
36
- echo 'export K8_NAMESPACE=$K8_NAMESPACE_PROD' >> $BASH_ENV
37
- echo 'export K8_USER_NAME=$K8_USER_NAME_PROD' >> $BASH_ENV
38
- echo 'export K8_USER_TOKEN=$K8_USER_TOKEN_PROD' >> $BASH_ENV
39
- echo 'export K8_HELM_CHART_NAME=$K8_HELM_CHART_NAME_PROD' >> $BASH_ENV
40
- echo 'export K8_HELM_CHART_VERSION=$K8_HELM_CHART_VERSION_PROD' >> $BASH_ENV
41
- echo 'export HELM_VALUE_SET_VALUES="--set central.centralhub.centralledger.containers.api.image.repository=$DOCKER_ORG/$CIRCLE_PROJECT_REPONAME --set central.centralhub.centralledger.containers.api.image.tag=$CIRCLE_TAG --set central.centralhub.centralledger.containers.admin.image.repository=$DOCKER_ORG/$CIRCLE_PROJECT_REPONAME --set central.centralhub.centralledger.containers.admin.image.tag=$CIRCLE_TAG"' >> $BASH_ENV
42
-
43
- exit 0
44
- fi
45
-
46
- echo "No valid match found for CIRCLE_TAG: ${CIRCLE_TAG}"
47
- exit 1
package/.dockerignore DELETED
@@ -1,17 +0,0 @@
1
- deploy/
2
- coverage/
3
- node_modules/
4
- .dockerignore
5
- .editorconfig
6
- .git/
7
- .gitignore
8
- .istanbul.yml
9
- circle.yml
10
- docker-compose.circle.yml
11
- docker-compose.dev.yml
12
- docker-compose.functional.yml
13
- docker-compose.yml
14
- Dockerfile
15
- LICENSE
16
- README.md
17
- sonar-project.properties
package/.ncurc.json DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "reject": []
3
- }
package/server.sh DELETED
@@ -1,4 +0,0 @@
1
- #!/bin/sh
2
-
3
- cd /opt/central-ledger/
4
- node src/api/index.js
@@ -1,17 +0,0 @@
1
- # Required metadata
2
- sonar.projectKey=central-ledger
3
- sonar.projectName=central-ledger
4
- sonar.projectVersion=1.0
5
-
6
- # Comma-separated paths to directories with sources (required)
7
- sonar.sources=src,test
8
-
9
- # Language
10
- sonar.language=js
11
-
12
- # Encoding of the source files
13
- sonar.sourceEncoding=UTF-8
14
- sonar.exclusions=migrations
15
-
16
- # To import the LCOV report
17
- sonar.javascript.lcov.reportPath=lcov.info
@@ -1,47 +0,0 @@
1
- 'use strict'
2
-
3
- const Client = require('@mojaloop/forensic-logging-client')
4
- const NullClient = require('./nullClient')
5
- const Config = require('../config')
6
- const Moment = require('moment')
7
- const ErrorHandler = require('@mojaloop/central-services-error-handling')
8
-
9
- const sidecar = createClient()
10
-
11
- function createClient () {
12
- if (Config.SIDECAR_DISABLED) {
13
- return NullClient.create()
14
- }
15
-
16
- const sc = Client.create({
17
- host: Config.SIDECAR.HOST,
18
- port: Config.SIDECAR.PORT,
19
- connectTimeout: Config.SIDECAR.CONNECT_TIMEOUT,
20
- reconnectInterval: Config.SIDECAR.RECONNECT_INTERVAL
21
- })
22
-
23
- sc.on('close', () => {
24
- throw ErrorHandler.Factory.createFSPIOPError(ErrorHandler.Enums.FSPIOPErrorCodes.INTERNAL_SERVER_ERROR, 'Sidecar connection closed')
25
- })
26
-
27
- return sc
28
- }
29
-
30
- exports.connect = () => {
31
- return sidecar.connect()
32
- }
33
-
34
- exports.write = (msg) => {
35
- return sidecar.write(msg)
36
- }
37
-
38
- exports.logRequest = (request) => {
39
- const msg = {
40
- method: request.method,
41
- timestamp: Moment.utc().toISOString(),
42
- url: request.url.path,
43
- body: request.body,
44
- auth: request.auth
45
- }
46
- return sidecar.write(JSON.stringify(msg))
47
- }
@@ -1,18 +0,0 @@
1
- 'use strict'
2
-
3
- const Logger = require('@mojaloop/central-services-logger')
4
-
5
- class NullClient {
6
- connect () {
7
- Logger.debug('Sidecar disabled: connecting in NullClient')
8
- return Promise.resolve(this)
9
- }
10
-
11
- write (msg) {
12
- Logger.debug(`Sidecar disabled: writing message ${msg} in NullClient`)
13
- }
14
- }
15
-
16
- exports.create = () => {
17
- return new NullClient()
18
- }
package/test/.env DELETED
@@ -1,8 +0,0 @@
1
- SIDE_SERVICE=central-ledger
2
- SIDE_POSTGRES_PARTY=sidecar
3
- SIDE_POSTGRES_PASSWORD=6dauAWcoeJuyRTFXH9
4
- DB_HOST=$DB_HOST
5
- DB_PORT=$DB_PORT
6
- DB_USER=$DB_USER
7
- DB_PASSWORD=$DB_PASSWORD
8
- DB_NAME=$DB_NAME