@mojaloop/central-ledger 17.7.8 → 17.8.0-orb.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.
Files changed (147) hide show
  1. package/.ncurc.yaml +3 -1
  2. package/.nvmrc +1 -1
  3. package/.nycrc.yml +16 -1
  4. package/Dockerfile +9 -10
  5. package/README.md +39 -9
  6. package/audit-ci.jsonc +15 -2
  7. package/config/default.json +17 -1
  8. package/docker/central-ledger/default.json +9 -0
  9. package/docker/config-modifier/configs/central-ledger.js +25 -0
  10. package/docker/env.sh +15 -0
  11. package/docker/kafka/scripts/provision.sh +4 -1
  12. package/docker/ml-api-adapter/default.json +4 -1
  13. package/docker-compose.yml +90 -2
  14. package/documentation/db/erd-transfer-timeout.png +0 -0
  15. package/documentation/db/erd-transfer-timeout.txt +81 -0
  16. package/documentation/fx-implementation/README.md +48 -0
  17. package/documentation/fx-implementation/assets/fx-position-movements.drawio.svg +4 -0
  18. package/documentation/fx-implementation/assets/test-scenario.drawio.svg +4 -0
  19. package/documentation/sequence-diagrams/Handler - FX timeout.plantuml +123 -0
  20. package/documentation/sequence-diagrams/Handler - FX timeout.png +0 -0
  21. package/documentation/sequence-diagrams/Handler - timeout.plantuml +81 -0
  22. package/documentation/sequence-diagrams/Handler - timeout.png +0 -0
  23. package/documentation/state-diagrams/transfer-ML-spec-states-diagram.png +0 -0
  24. package/documentation/state-diagrams/transfer-internal-states-diagram.png +0 -0
  25. package/documentation/state-diagrams/transfer-internal-states.plantuml +75 -0
  26. package/documentation/state-diagrams/transfer-states.plantuml +13 -0
  27. package/migrations/310204_transferParticipant-participantId.js +52 -0
  28. package/migrations/310403_participantPositionChange-participantCurrencyId.js +47 -0
  29. package/migrations/310404_participantPositionChange-change.js +46 -0
  30. package/migrations/600010_fxTransferType.js +43 -0
  31. package/migrations/600011_fxTransferType-indexes.js +38 -0
  32. package/migrations/600012_fxParticipantCurrencyType.js +43 -0
  33. package/migrations/600013_fxParticipantCurrencyType-indexes.js +38 -0
  34. package/migrations/600100_fxTransferDuplicateCheck.js +42 -0
  35. package/migrations/600110_fxTransferErrorDuplicateCheck.js.js +17 -0
  36. package/migrations/600200_fxTransfer.js +51 -0
  37. package/migrations/600201_fxTransfer-indexes.js +40 -0
  38. package/migrations/600400_fxTransferStateChange.js +46 -0
  39. package/migrations/600401_fxTransferStateChange-indexes.js +40 -0
  40. package/migrations/600501_fxWatchList.js +46 -0
  41. package/migrations/600502_fxWatchList-indexes.js +40 -0
  42. package/migrations/600600_fxTransferFulfilmentDuplicateCheck.js +43 -0
  43. package/migrations/600601_fxTransferFulfilmentDuplicateCheck-indexes.js +38 -0
  44. package/migrations/600700_fxTransferFulfilment.js +47 -0
  45. package/migrations/600701_fxTransferFulfilment-indexes.js +43 -0
  46. package/migrations/600800_fxTransferExtension.js +47 -0
  47. package/migrations/601400_fxTransferTimeout.js +43 -0
  48. package/migrations/601401_fxTransferTimeout-indexes.js +37 -0
  49. package/migrations/601500_fxTransferError.js +44 -0
  50. package/migrations/601501_fxTransferError-indexes.js +37 -0
  51. package/migrations/610200_fxTransferParticipant.js +52 -0
  52. package/migrations/610201_fxTransferParticipant-indexes.js +44 -0
  53. package/migrations/610202_fxTransferParticipant-participantId.js +52 -0
  54. package/migrations/610403_participantPositionChange-fxTransfer.js +46 -0
  55. package/migrations/910101_feature904DataMigration.js +46 -52
  56. package/migrations/910102_feature949DataMigration.js +219 -225
  57. package/migrations/950104_settlementModel-settlementAccountTypeId.js +15 -20
  58. package/migrations/950108_participantProxy.js +18 -0
  59. package/migrations/950109_fxQuote.js +19 -0
  60. package/migrations/950110_fxQuoteResponse.js +25 -0
  61. package/migrations/950111_fxQuoteError.js +23 -0
  62. package/migrations/950113_fxQuoteDuplicateCheck.js +18 -0
  63. package/migrations/950114_fxQuoteResponseDuplicateCheck.js +21 -0
  64. package/migrations/950115_fxQuoteConversionTerms.js +36 -0
  65. package/migrations/950116_fxQuoteConversionTermsExtension.js +21 -0
  66. package/migrations/950117_fxQuoteResponseConversionTerms.js +39 -0
  67. package/migrations/950118_fxQuoteResponseConversionTermsExtension.js +21 -0
  68. package/migrations/950119_fxCharge.js +27 -0
  69. package/migrations/960100_create_externalParticipant.js +47 -0
  70. package/migrations/960110_alter_transferParticipant__addFiled_externalParticipantId.js +50 -0
  71. package/migrations/960111_alter_fxTransferParticipant__addFiled_externalParticipantId.js +50 -0
  72. package/package.json +27 -20
  73. package/seeds/endpointType.js +18 -0
  74. package/seeds/fxParticipantCurrencyType.js +45 -0
  75. package/seeds/fxTransferType.js +45 -0
  76. package/seeds/participant.js +2 -1
  77. package/seeds/transferParticipantRoleType.js +9 -0
  78. package/seeds/transferState.js +10 -0
  79. package/src/api/interface/swagger.json +23 -30
  80. package/src/api/participants/handler.js +6 -2
  81. package/src/api/participants/routes.js +8 -7
  82. package/src/api/root/handler.js +15 -5
  83. package/src/domain/fx/cyril.js +466 -0
  84. package/src/domain/fx/index.js +107 -0
  85. package/src/domain/participant/index.js +108 -1
  86. package/src/domain/position/abort.js +215 -0
  87. package/src/domain/position/binProcessor.js +361 -99
  88. package/src/domain/position/fulfil.js +252 -111
  89. package/src/domain/position/fx-fulfil.js +138 -0
  90. package/src/domain/position/fx-prepare.js +280 -0
  91. package/src/domain/position/fx-timeout-reserved.js +159 -0
  92. package/src/domain/position/index.js +1 -0
  93. package/src/domain/position/prepare.js +69 -49
  94. package/src/domain/position/timeout-reserved.js +162 -0
  95. package/src/domain/timeout/index.js +26 -2
  96. package/src/domain/transfer/index.js +22 -5
  97. package/src/domain/transfer/transform.js +19 -6
  98. package/src/handlers/admin/handler.js +0 -2
  99. package/src/handlers/bulk/fulfil/handler.js +5 -5
  100. package/src/handlers/bulk/get/handler.js +5 -5
  101. package/src/handlers/bulk/prepare/handler.js +9 -9
  102. package/src/handlers/bulk/processing/handler.js +8 -7
  103. package/src/handlers/bulk/shared/validator.js +1 -1
  104. package/src/handlers/positions/handler.js +23 -10
  105. package/src/handlers/positions/handlerBatch.js +54 -26
  106. package/src/handlers/register.js +2 -1
  107. package/src/handlers/timeouts/handler.js +212 -68
  108. package/src/handlers/transfers/FxFulfilService.js +387 -0
  109. package/src/handlers/transfers/createRemittanceEntity.js +106 -0
  110. package/src/handlers/transfers/dto.js +53 -0
  111. package/src/handlers/transfers/handler.js +609 -571
  112. package/src/handlers/transfers/prepare.js +572 -0
  113. package/src/handlers/transfers/validator.js +75 -14
  114. package/src/lib/cache.js +1 -1
  115. package/src/lib/config.js +6 -3
  116. package/src/lib/healthCheck/subServiceHealth.js +12 -2
  117. package/src/lib/proxyCache.js +131 -0
  118. package/src/models/bulkTransfer/facade.js +58 -82
  119. package/src/models/fxTransfer/duplicateCheck.js +153 -0
  120. package/src/models/fxTransfer/fxTransfer.js +578 -0
  121. package/src/models/fxTransfer/fxTransferError.js +53 -0
  122. package/src/models/fxTransfer/fxTransferExtension.js +41 -0
  123. package/src/models/fxTransfer/fxTransferTimeout.js +68 -0
  124. package/src/models/fxTransfer/index.js +15 -0
  125. package/src/models/fxTransfer/stateChange.js +47 -0
  126. package/src/models/fxTransfer/watchList.js +49 -0
  127. package/src/models/ledgerAccountType/ledgerAccountType.js +8 -32
  128. package/src/models/misc/segment.js +0 -1
  129. package/src/models/participant/externalParticipant.js +96 -0
  130. package/src/models/participant/externalParticipantCached.js +148 -0
  131. package/src/models/participant/facade.js +192 -123
  132. package/src/models/participant/participant.js +2 -1
  133. package/src/models/participant/participantCurrency.js +1 -1
  134. package/src/models/participant/participantPosition.js +2 -8
  135. package/src/models/position/batch.js +90 -1
  136. package/src/models/position/facade.js +5 -5
  137. package/src/models/position/participantPositionChanges.js +68 -0
  138. package/src/models/settlement/settlementModel.js +5 -23
  139. package/src/models/transfer/facade.js +806 -447
  140. package/src/shared/constants.js +52 -0
  141. package/src/shared/fspiopErrorFactory.js +131 -0
  142. package/src/shared/logger/index.js +8 -0
  143. package/src/shared/loggingPlugin.js +43 -0
  144. package/src/shared/plugins.js +6 -0
  145. package/src/shared/setup.js +10 -0
  146. package/test-integration.Dockerfile +1 -1
  147. package/test.Dockerfile +1 -1
@@ -41,232 +41,226 @@ const RUN_DATA_MIGRATIONS = Config.DB_RUN_DATA_MIGRATIONS
41
41
  */
42
42
  const migrateData = async (knex) => {
43
43
  return knex.transaction(async trx => {
44
- try {
45
- await knex.raw('update currency set scale = \'2\' where currencyId = \'AED\'').transacting(trx)
46
- await knex.raw('update currency set scale = \'4\' where currencyId = \'AFA\'').transacting(trx)
47
- await knex.raw('update currency set scale = \'2\' where currencyId = \'AFN\'').transacting(trx)
48
- await knex.raw('update currency set scale = \'2\' where currencyId = \'ALL\'').transacting(trx)
49
- await knex.raw('update currency set scale = \'2\' where currencyId = \'AMD\'').transacting(trx)
50
- await knex.raw('update currency set scale = \'2\' where currencyId = \'ANG\'').transacting(trx)
51
- await knex.raw('update currency set scale = \'2\' where currencyId = \'AOA\'').transacting(trx)
52
- await knex.raw('update currency set scale = \'4\' where currencyId = \'AOR\'').transacting(trx)
53
- await knex.raw('update currency set scale = \'2\' where currencyId = \'ARS\'').transacting(trx)
54
- await knex.raw('update currency set scale = \'2\' where currencyId = \'AUD\'').transacting(trx)
55
- await knex.raw('update currency set scale = \'2\' where currencyId = \'AWG\'').transacting(trx)
56
- await knex.raw('update currency set scale = \'2\' where currencyId = \'AZN\'').transacting(trx)
57
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BAM\'').transacting(trx)
58
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BBD\'').transacting(trx)
59
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BDT\'').transacting(trx)
60
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BGN\'').transacting(trx)
61
- await knex.raw('update currency set scale = \'3\' where currencyId = \'BHD\'').transacting(trx)
62
- await knex.raw('update currency set scale = \'0\' where currencyId = \'BIF\'').transacting(trx)
63
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BMD\'').transacting(trx)
64
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BND\'').transacting(trx)
65
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BOB\'').transacting(trx)
66
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BRL\'').transacting(trx)
67
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BSD\'').transacting(trx)
68
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BTN\'').transacting(trx)
69
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BWP\'').transacting(trx)
70
- await knex.raw('update currency set scale = \'4\' where currencyId = \'BYN\'').transacting(trx)
71
- await knex.raw('update currency set scale = \'2\' where currencyId = \'BZD\'').transacting(trx)
72
- await knex.raw('update currency set scale = \'2\' where currencyId = \'CAD\'').transacting(trx)
73
- await knex.raw('update currency set scale = \'2\' where currencyId = \'CDF\'').transacting(trx)
74
- await knex.raw('update currency set scale = \'2\' where currencyId = \'CHF\'').transacting(trx)
75
- await knex.raw('update currency set scale = \'0\' where currencyId = \'CLP\'').transacting(trx)
76
- await knex.raw('update currency set scale = \'2\' where currencyId = \'CNY\'').transacting(trx)
77
- await knex.raw('update currency set scale = \'2\' where currencyId = \'COP\'').transacting(trx)
78
- await knex.raw('update currency set scale = \'2\' where currencyId = \'CRC\'').transacting(trx)
79
- await knex.raw('update currency set scale = \'2\' where currencyId = \'CUC\'').transacting(trx)
80
- await knex.raw('update currency set scale = \'2\' where currencyId = \'CUP\'').transacting(trx)
81
- await knex.raw('update currency set scale = \'2\' where currencyId = \'CVE\'').transacting(trx)
82
- await knex.raw('update currency set scale = \'2\' where currencyId = \'CZK\'').transacting(trx)
83
- await knex.raw('update currency set scale = \'0\' where currencyId = \'DJF\'').transacting(trx)
84
- await knex.raw('update currency set scale = \'2\' where currencyId = \'DKK\'').transacting(trx)
85
- await knex.raw('update currency set scale = \'2\' where currencyId = \'DOP\'').transacting(trx)
86
- await knex.raw('update currency set scale = \'2\' where currencyId = \'DZD\'').transacting(trx)
87
- await knex.raw('update currency set scale = \'4\' where currencyId = \'EEK\'').transacting(trx)
88
- await knex.raw('update currency set scale = \'2\' where currencyId = \'EGP\'').transacting(trx)
89
- await knex.raw('update currency set scale = \'2\' where currencyId = \'ERN\'').transacting(trx)
90
- await knex.raw('update currency set scale = \'2\' where currencyId = \'ETB\'').transacting(trx)
91
- await knex.raw('update currency set scale = \'2\' where currencyId = \'EUR\'').transacting(trx)
92
- await knex.raw('update currency set scale = \'2\' where currencyId = \'FJD\'').transacting(trx)
93
- await knex.raw('update currency set scale = \'2\' where currencyId = \'FKP\'').transacting(trx)
94
- await knex.raw('update currency set scale = \'2\' where currencyId = \'GBP\'').transacting(trx)
95
- await knex.raw('update currency set scale = \'2\' where currencyId = \'GEL\'').transacting(trx)
96
- await knex.raw('update currency set scale = \'4\' where currencyId = \'GGP\'').transacting(trx)
97
- await knex.raw('update currency set scale = \'2\' where currencyId = \'GHS\'').transacting(trx)
98
- await knex.raw('update currency set scale = \'2\' where currencyId = \'GIP\'').transacting(trx)
99
- await knex.raw('update currency set scale = \'2\' where currencyId = \'GMD\'').transacting(trx)
100
- await knex.raw('update currency set scale = \'0\' where currencyId = \'GNF\'').transacting(trx)
101
- await knex.raw('update currency set scale = \'2\' where currencyId = \'GTQ\'').transacting(trx)
102
- await knex.raw('update currency set scale = \'2\' where currencyId = \'GYD\'').transacting(trx)
103
- await knex.raw('update currency set scale = \'2\' where currencyId = \'HKD\'').transacting(trx)
104
- await knex.raw('update currency set scale = \'2\' where currencyId = \'HNL\'').transacting(trx)
105
- await knex.raw('update currency set scale = \'2\' where currencyId = \'HRK\'').transacting(trx)
106
- await knex.raw('update currency set scale = \'2\' where currencyId = \'HTG\'').transacting(trx)
107
- await knex.raw('update currency set scale = \'2\' where currencyId = \'HUF\'').transacting(trx)
108
- await knex.raw('update currency set scale = \'2\' where currencyId = \'IDR\'').transacting(trx)
109
- await knex.raw('update currency set scale = \'2\' where currencyId = \'ILS\'').transacting(trx)
110
- await knex.raw('update currency set scale = \'4\' where currencyId = \'IMP\'').transacting(trx)
111
- await knex.raw('update currency set scale = \'2\' where currencyId = \'INR\'').transacting(trx)
112
- await knex.raw('update currency set scale = \'3\' where currencyId = \'IQD\'').transacting(trx)
113
- await knex.raw('update currency set scale = \'2\' where currencyId = \'IRR\'').transacting(trx)
114
- await knex.raw('update currency set scale = \'0\' where currencyId = \'ISK\'').transacting(trx)
115
- await knex.raw('update currency set scale = \'4\' where currencyId = \'JEP\'').transacting(trx)
116
- await knex.raw('update currency set scale = \'2\' where currencyId = \'JMD\'').transacting(trx)
117
- await knex.raw('update currency set scale = \'3\' where currencyId = \'JOD\'').transacting(trx)
118
- await knex.raw('update currency set scale = \'0\' where currencyId = \'JPY\'').transacting(trx)
119
- await knex.raw('update currency set scale = \'2\' where currencyId = \'KES\'').transacting(trx)
120
- await knex.raw('update currency set scale = \'2\' where currencyId = \'KGS\'').transacting(trx)
121
- await knex.raw('update currency set scale = \'2\' where currencyId = \'KHR\'').transacting(trx)
122
- await knex.raw('update currency set scale = \'0\' where currencyId = \'KMF\'').transacting(trx)
123
- await knex.raw('update currency set scale = \'2\' where currencyId = \'KPW\'').transacting(trx)
124
- await knex.raw('update currency set scale = \'0\' where currencyId = \'KRW\'').transacting(trx)
125
- await knex.raw('update currency set scale = \'3\' where currencyId = \'KWD\'').transacting(trx)
126
- await knex.raw('update currency set scale = \'2\' where currencyId = \'KYD\'').transacting(trx)
127
- await knex.raw('update currency set scale = \'2\' where currencyId = \'KZT\'').transacting(trx)
128
- await knex.raw('update currency set scale = \'2\' where currencyId = \'LAK\'').transacting(trx)
129
- await knex.raw('update currency set scale = \'2\' where currencyId = \'LBP\'').transacting(trx)
130
- await knex.raw('update currency set scale = \'2\' where currencyId = \'LKR\'').transacting(trx)
131
- await knex.raw('update currency set scale = \'2\' where currencyId = \'LRD\'').transacting(trx)
132
- await knex.raw('update currency set scale = \'2\' where currencyId = \'LSL\'').transacting(trx)
133
- await knex.raw('update currency set scale = \'4\' where currencyId = \'LTL\'').transacting(trx)
134
- await knex.raw('update currency set scale = \'4\' where currencyId = \'LVL\'').transacting(trx)
135
- await knex.raw('update currency set scale = \'3\' where currencyId = \'LYD\'').transacting(trx)
136
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MAD\'').transacting(trx)
137
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MDL\'').transacting(trx)
138
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MGA\'').transacting(trx)
139
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MKD\'').transacting(trx)
140
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MMK\'').transacting(trx)
141
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MNT\'').transacting(trx)
142
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MOP\'').transacting(trx)
143
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MRO\'').transacting(trx)
144
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MUR\'').transacting(trx)
145
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MVR\'').transacting(trx)
146
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MWK\'').transacting(trx)
147
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MXN\'').transacting(trx)
148
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MYR\'').transacting(trx)
149
- await knex.raw('update currency set scale = \'2\' where currencyId = \'MZN\'').transacting(trx)
150
- await knex.raw('update currency set scale = \'2\' where currencyId = \'NAD\'').transacting(trx)
151
- await knex.raw('update currency set scale = \'2\' where currencyId = \'NGN\'').transacting(trx)
152
- await knex.raw('update currency set scale = \'2\' where currencyId = \'NIO\'').transacting(trx)
153
- await knex.raw('update currency set scale = \'2\' where currencyId = \'NOK\'').transacting(trx)
154
- await knex.raw('update currency set scale = \'2\' where currencyId = \'NPR\'').transacting(trx)
155
- await knex.raw('update currency set scale = \'2\' where currencyId = \'NZD\'').transacting(trx)
156
- await knex.raw('update currency set scale = \'3\' where currencyId = \'OMR\'').transacting(trx)
157
- await knex.raw('update currency set scale = \'2\' where currencyId = \'PAB\'').transacting(trx)
158
- await knex.raw('update currency set scale = \'2\' where currencyId = \'PEN\'').transacting(trx)
159
- await knex.raw('update currency set scale = \'2\' where currencyId = \'PGK\'').transacting(trx)
160
- await knex.raw('update currency set scale = \'2\' where currencyId = \'PHP\'').transacting(trx)
161
- await knex.raw('update currency set scale = \'2\' where currencyId = \'PKR\'').transacting(trx)
162
- await knex.raw('update currency set scale = \'2\' where currencyId = \'PLN\'').transacting(trx)
163
- await knex.raw('update currency set scale = \'0\' where currencyId = \'PYG\'').transacting(trx)
164
- await knex.raw('update currency set scale = \'2\' where currencyId = \'QAR\'').transacting(trx)
165
- await knex.raw('update currency set scale = \'2\' where currencyId = \'RON\'').transacting(trx)
166
- await knex.raw('update currency set scale = \'2\' where currencyId = \'RSD\'').transacting(trx)
167
- await knex.raw('update currency set scale = \'2\' where currencyId = \'RUB\'').transacting(trx)
168
- await knex.raw('update currency set scale = \'0\' where currencyId = \'RWF\'').transacting(trx)
169
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SAR\'').transacting(trx)
170
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SBD\'').transacting(trx)
171
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SCR\'').transacting(trx)
172
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SDG\'').transacting(trx)
173
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SEK\'').transacting(trx)
174
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SGD\'').transacting(trx)
175
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SHP\'').transacting(trx)
176
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SLL\'').transacting(trx)
177
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SOS\'').transacting(trx)
178
- await knex.raw('update currency set scale = \'4\' where currencyId = \'SPL\'').transacting(trx)
179
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SRD\'').transacting(trx)
180
- await knex.raw('update currency set scale = \'2\' where currencyId = \'STD\'').transacting(trx)
181
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SVC\'').transacting(trx)
182
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SYP\'').transacting(trx)
183
- await knex.raw('update currency set scale = \'2\' where currencyId = \'SZL\'').transacting(trx)
184
- await knex.raw('update currency set scale = \'2\' where currencyId = \'THB\'').transacting(trx)
185
- await knex.raw('update currency set scale = \'2\' where currencyId = \'TJS\'').transacting(trx)
186
- await knex.raw('update currency set scale = \'2\' where currencyId = \'TMT\'').transacting(trx)
187
- await knex.raw('update currency set scale = \'3\' where currencyId = \'TND\'').transacting(trx)
188
- await knex.raw('update currency set scale = \'2\' where currencyId = \'TOP\'').transacting(trx)
189
- await knex.raw('update currency set scale = \'2\' where currencyId = \'TRY\'').transacting(trx)
190
- await knex.raw('update currency set scale = \'2\' where currencyId = \'TTD\'').transacting(trx)
191
- await knex.raw('update currency set scale = \'4\' where currencyId = \'TVD\'').transacting(trx)
192
- await knex.raw('update currency set scale = \'2\' where currencyId = \'TWD\'').transacting(trx)
193
- await knex.raw('update currency set scale = \'2\' where currencyId = \'TZS\'').transacting(trx)
194
- await knex.raw('update currency set scale = \'2\' where currencyId = \'UAH\'').transacting(trx)
195
- await knex.raw('update currency set scale = \'0\' where currencyId = \'UGX\'').transacting(trx)
196
- await knex.raw('update currency set scale = \'2\' where currencyId = \'USD\'').transacting(trx)
197
- await knex.raw('update currency set scale = \'2\' where currencyId = \'UYU\'').transacting(trx)
198
- await knex.raw('update currency set scale = \'2\' where currencyId = \'UZS\'').transacting(trx)
199
- await knex.raw('update currency set scale = \'2\' where currencyId = \'VEF\'').transacting(trx)
200
- await knex.raw('update currency set scale = \'0\' where currencyId = \'VND\'').transacting(trx)
201
- await knex.raw('update currency set scale = \'0\' where currencyId = \'VUV\'').transacting(trx)
202
- await knex.raw('update currency set scale = \'2\' where currencyId = \'WST\'').transacting(trx)
203
- await knex.raw('update currency set scale = \'0\' where currencyId = \'XAF\'').transacting(trx)
204
- await knex.raw('update currency set scale = \'4\' where currencyId = \'XAG\'').transacting(trx)
205
- await knex.raw('update currency set scale = \'4\' where currencyId = \'XAU\'').transacting(trx)
206
- await knex.raw('update currency set scale = \'2\' where currencyId = \'XCD\'').transacting(trx)
207
- await knex.raw('update currency set scale = \'4\' where currencyId = \'XDR\'').transacting(trx)
208
- await knex.raw('update currency set scale = \'4\' where currencyId = \'XFO\'').transacting(trx)
209
- await knex.raw('update currency set scale = \'4\' where currencyId = \'XFU\'').transacting(trx)
210
- await knex.raw('update currency set scale = \'0\' where currencyId = \'XOF\'').transacting(trx)
211
- await knex.raw('update currency set scale = \'4\' where currencyId = \'XPD\'').transacting(trx)
212
- await knex.raw('update currency set scale = \'0\' where currencyId = \'XPF\'').transacting(trx)
213
- await knex.raw('update currency set scale = \'4\' where currencyId = \'XPT\'').transacting(trx)
214
- await knex.raw('update currency set scale = \'2\' where currencyId = \'YER\'').transacting(trx)
215
- await knex.raw('update currency set scale = \'2\' where currencyId = \'ZAR\'').transacting(trx)
216
- await knex.raw('update currency set scale = \'4\' where currencyId = \'ZMK\'').transacting(trx)
217
- await knex.raw('update currency set scale = \'2\' where currencyId = \'ZMW\'').transacting(trx)
218
- await knex.raw('update currency set scale = \'4\' where currencyId = \'ZWD\'').transacting(trx)
219
- await knex.raw('update currency set scale = \'2\' where currencyId = \'ZWL\'').transacting(trx)
220
- await knex.raw('update currency set scale = \'4\' where currencyId = \'ZWN\'').transacting(trx)
221
- await knex.raw('update currency set scale = \'4\' where currencyId = \'ZWR\'').transacting(trx)
44
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'AED\'').transacting(trx)
45
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'AFA\'').transacting(trx)
46
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'AFN\'').transacting(trx)
47
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'ALL\'').transacting(trx)
48
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'AMD\'').transacting(trx)
49
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'ANG\'').transacting(trx)
50
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'AOA\'').transacting(trx)
51
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'AOR\'').transacting(trx)
52
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'ARS\'').transacting(trx)
53
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'AUD\'').transacting(trx)
54
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'AWG\'').transacting(trx)
55
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'AZN\'').transacting(trx)
56
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BAM\'').transacting(trx)
57
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BBD\'').transacting(trx)
58
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BDT\'').transacting(trx)
59
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BGN\'').transacting(trx)
60
+ await knex.raw('update currency set scale = \'3\' where currencyId = \'BHD\'').transacting(trx)
61
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'BIF\'').transacting(trx)
62
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BMD\'').transacting(trx)
63
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BND\'').transacting(trx)
64
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BOB\'').transacting(trx)
65
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BRL\'').transacting(trx)
66
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BSD\'').transacting(trx)
67
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BTN\'').transacting(trx)
68
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BWP\'').transacting(trx)
69
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'BYN\'').transacting(trx)
70
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'BZD\'').transacting(trx)
71
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'CAD\'').transacting(trx)
72
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'CDF\'').transacting(trx)
73
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'CHF\'').transacting(trx)
74
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'CLP\'').transacting(trx)
75
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'CNY\'').transacting(trx)
76
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'COP\'').transacting(trx)
77
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'CRC\'').transacting(trx)
78
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'CUC\'').transacting(trx)
79
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'CUP\'').transacting(trx)
80
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'CVE\'').transacting(trx)
81
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'CZK\'').transacting(trx)
82
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'DJF\'').transacting(trx)
83
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'DKK\'').transacting(trx)
84
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'DOP\'').transacting(trx)
85
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'DZD\'').transacting(trx)
86
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'EEK\'').transacting(trx)
87
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'EGP\'').transacting(trx)
88
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'ERN\'').transacting(trx)
89
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'ETB\'').transacting(trx)
90
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'EUR\'').transacting(trx)
91
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'FJD\'').transacting(trx)
92
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'FKP\'').transacting(trx)
93
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'GBP\'').transacting(trx)
94
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'GEL\'').transacting(trx)
95
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'GGP\'').transacting(trx)
96
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'GHS\'').transacting(trx)
97
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'GIP\'').transacting(trx)
98
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'GMD\'').transacting(trx)
99
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'GNF\'').transacting(trx)
100
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'GTQ\'').transacting(trx)
101
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'GYD\'').transacting(trx)
102
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'HKD\'').transacting(trx)
103
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'HNL\'').transacting(trx)
104
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'HRK\'').transacting(trx)
105
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'HTG\'').transacting(trx)
106
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'HUF\'').transacting(trx)
107
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'IDR\'').transacting(trx)
108
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'ILS\'').transacting(trx)
109
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'IMP\'').transacting(trx)
110
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'INR\'').transacting(trx)
111
+ await knex.raw('update currency set scale = \'3\' where currencyId = \'IQD\'').transacting(trx)
112
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'IRR\'').transacting(trx)
113
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'ISK\'').transacting(trx)
114
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'JEP\'').transacting(trx)
115
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'JMD\'').transacting(trx)
116
+ await knex.raw('update currency set scale = \'3\' where currencyId = \'JOD\'').transacting(trx)
117
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'JPY\'').transacting(trx)
118
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'KES\'').transacting(trx)
119
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'KGS\'').transacting(trx)
120
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'KHR\'').transacting(trx)
121
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'KMF\'').transacting(trx)
122
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'KPW\'').transacting(trx)
123
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'KRW\'').transacting(trx)
124
+ await knex.raw('update currency set scale = \'3\' where currencyId = \'KWD\'').transacting(trx)
125
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'KYD\'').transacting(trx)
126
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'KZT\'').transacting(trx)
127
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'LAK\'').transacting(trx)
128
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'LBP\'').transacting(trx)
129
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'LKR\'').transacting(trx)
130
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'LRD\'').transacting(trx)
131
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'LSL\'').transacting(trx)
132
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'LTL\'').transacting(trx)
133
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'LVL\'').transacting(trx)
134
+ await knex.raw('update currency set scale = \'3\' where currencyId = \'LYD\'').transacting(trx)
135
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MAD\'').transacting(trx)
136
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MDL\'').transacting(trx)
137
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MGA\'').transacting(trx)
138
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MKD\'').transacting(trx)
139
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MMK\'').transacting(trx)
140
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MNT\'').transacting(trx)
141
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MOP\'').transacting(trx)
142
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MRO\'').transacting(trx)
143
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MUR\'').transacting(trx)
144
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MVR\'').transacting(trx)
145
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MWK\'').transacting(trx)
146
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MXN\'').transacting(trx)
147
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MYR\'').transacting(trx)
148
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'MZN\'').transacting(trx)
149
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'NAD\'').transacting(trx)
150
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'NGN\'').transacting(trx)
151
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'NIO\'').transacting(trx)
152
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'NOK\'').transacting(trx)
153
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'NPR\'').transacting(trx)
154
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'NZD\'').transacting(trx)
155
+ await knex.raw('update currency set scale = \'3\' where currencyId = \'OMR\'').transacting(trx)
156
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'PAB\'').transacting(trx)
157
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'PEN\'').transacting(trx)
158
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'PGK\'').transacting(trx)
159
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'PHP\'').transacting(trx)
160
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'PKR\'').transacting(trx)
161
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'PLN\'').transacting(trx)
162
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'PYG\'').transacting(trx)
163
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'QAR\'').transacting(trx)
164
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'RON\'').transacting(trx)
165
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'RSD\'').transacting(trx)
166
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'RUB\'').transacting(trx)
167
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'RWF\'').transacting(trx)
168
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SAR\'').transacting(trx)
169
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SBD\'').transacting(trx)
170
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SCR\'').transacting(trx)
171
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SDG\'').transacting(trx)
172
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SEK\'').transacting(trx)
173
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SGD\'').transacting(trx)
174
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SHP\'').transacting(trx)
175
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SLL\'').transacting(trx)
176
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SOS\'').transacting(trx)
177
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'SPL\'').transacting(trx)
178
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SRD\'').transacting(trx)
179
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'STD\'').transacting(trx)
180
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SVC\'').transacting(trx)
181
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SYP\'').transacting(trx)
182
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'SZL\'').transacting(trx)
183
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'THB\'').transacting(trx)
184
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'TJS\'').transacting(trx)
185
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'TMT\'').transacting(trx)
186
+ await knex.raw('update currency set scale = \'3\' where currencyId = \'TND\'').transacting(trx)
187
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'TOP\'').transacting(trx)
188
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'TRY\'').transacting(trx)
189
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'TTD\'').transacting(trx)
190
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'TVD\'').transacting(trx)
191
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'TWD\'').transacting(trx)
192
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'TZS\'').transacting(trx)
193
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'UAH\'').transacting(trx)
194
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'UGX\'').transacting(trx)
195
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'USD\'').transacting(trx)
196
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'UYU\'').transacting(trx)
197
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'UZS\'').transacting(trx)
198
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'VEF\'').transacting(trx)
199
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'VND\'').transacting(trx)
200
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'VUV\'').transacting(trx)
201
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'WST\'').transacting(trx)
202
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'XAF\'').transacting(trx)
203
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'XAG\'').transacting(trx)
204
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'XAU\'').transacting(trx)
205
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'XCD\'').transacting(trx)
206
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'XDR\'').transacting(trx)
207
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'XFO\'').transacting(trx)
208
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'XFU\'').transacting(trx)
209
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'XOF\'').transacting(trx)
210
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'XPD\'').transacting(trx)
211
+ await knex.raw('update currency set scale = \'0\' where currencyId = \'XPF\'').transacting(trx)
212
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'XPT\'').transacting(trx)
213
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'YER\'').transacting(trx)
214
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'ZAR\'').transacting(trx)
215
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'ZMK\'').transacting(trx)
216
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'ZMW\'').transacting(trx)
217
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'ZWD\'').transacting(trx)
218
+ await knex.raw('update currency set scale = \'2\' where currencyId = \'ZWL\'').transacting(trx)
219
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'ZWN\'').transacting(trx)
220
+ await knex.raw('update currency set scale = \'4\' where currencyId = \'ZWR\'').transacting(trx)
222
221
 
223
- try {
224
- await knex.raw('insert into currency (currencyId, name, scale) values (\'BOV\', \'Bolivia Mvdol\', 2)').transacting(trx)
225
- } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'BOV\'').transacting(trx) }
226
- try {
227
- await knex.raw('insert into currency (currencyId, name, scale) values (\'BYR\', \'Belarussian Ruble\', 0)').transacting(trx)
228
- } catch (e) { await knex.raw('update currency set scale = \'0\' where currencyId = \'BYR\'').transacting(trx) }
229
- try {
230
- await knex.raw('insert into currency (currencyId, name, scale) values (\'CHE\', \'Switzerland WIR Euro\', 2)').transacting(trx)
231
- } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'CHE\'').transacting(trx) }
232
- try {
233
- await knex.raw('insert into currency (currencyId, name, scale) values (\'CHW\', \'Switzerland WIR Franc\', 2)').transacting(trx)
234
- } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'CHW\'').transacting(trx) }
235
- try {
236
- await knex.raw('insert into currency (currencyId, name, scale) values (\'CLF\', \'Unidad de Fomento\', 4)').transacting(trx)
237
- } catch (e) { await knex.raw('update currency set scale = \'4\' where currencyId = \'CLF\'').transacting(trx) }
238
- try {
239
- await knex.raw('insert into currency (currencyId, name, scale) values (\'COU\', \'Unidad de Valor Real\', 2)').transacting(trx)
240
- } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'COU\'').transacting(trx) }
241
- try {
242
- await knex.raw('insert into currency (currencyId, name, scale) values (\'MXV\', \'Mexican Unidad de Inversion (UDI)\', 2)').transacting(trx)
243
- } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'MXV\'').transacting(trx) }
244
- try {
245
- await knex.raw('insert into currency (currencyId, name, scale) values (\'SSP\', \'South Sudanese Pound\', 2)').transacting(trx)
246
- } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'SSP\'').transacting(trx) }
247
- try {
248
- await knex.raw('insert into currency (currencyId, name, scale) values (\'USN\', \'US Dollar (Next day)\', 2)').transacting(trx)
249
- } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'USN\'').transacting(trx) }
250
- try {
251
- await knex.raw('insert into currency (currencyId, name, scale) values (\'UYI\', \'Uruguay Peso en Unidades Indexadas (URUIURUI)\', 0)').transacting(trx)
252
- } catch (e) { await knex.raw('update currency set scale = \'0\' where currencyId = \'UYI\'').transacting(trx) }
253
- try {
254
- await knex.raw('insert into currency (currencyId, name, scale) values (\'XSU\', \'Sucre\', 4)').transacting(trx)
255
- } catch (e) { await knex.raw('update currency set scale = \'4\' where currencyId = \'XSU\'').transacting(trx) }
256
- try {
257
- await knex.raw('insert into currency (currencyId, name, scale) values (\'XTS\', \'Reserved for testing purposes\', 4)').transacting(trx)
258
- } catch (e) { await knex.raw('update currency set scale = \'4\' where currencyId = \'XTS\'').transacting(trx) }
259
- try {
260
- await knex.raw('insert into currency (currencyId, name, scale) values (\'XUA\', \'African Development Bank (ADB) Unit of Account\', 4)').transacting(trx)
261
- } catch (e) { await knex.raw('update currency set scale = \'4\' where currencyId = \'XUA\'').transacting(trx) }
262
- try {
263
- await knex.raw('insert into currency (currencyId, name, scale) values (\'XXX\', \'Assigned for transactions where no currency is involved\', 4)').transacting(trx)
264
- } catch (e) { await knex.raw('update currency set scale = \'4\' where currencyId = \'XXX\'').transacting(trx) }
265
- await trx.commit
266
- } catch (err) {
267
- await trx.rollback
268
- throw err
269
- }
222
+ try {
223
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'BOV\', \'Bolivia Mvdol\', 2)').transacting(trx)
224
+ } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'BOV\'').transacting(trx) }
225
+ try {
226
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'BYR\', \'Belarussian Ruble\', 0)').transacting(trx)
227
+ } catch (e) { await knex.raw('update currency set scale = \'0\' where currencyId = \'BYR\'').transacting(trx) }
228
+ try {
229
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'CHE\', \'Switzerland WIR Euro\', 2)').transacting(trx)
230
+ } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'CHE\'').transacting(trx) }
231
+ try {
232
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'CHW\', \'Switzerland WIR Franc\', 2)').transacting(trx)
233
+ } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'CHW\'').transacting(trx) }
234
+ try {
235
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'CLF\', \'Unidad de Fomento\', 4)').transacting(trx)
236
+ } catch (e) { await knex.raw('update currency set scale = \'4\' where currencyId = \'CLF\'').transacting(trx) }
237
+ try {
238
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'COU\', \'Unidad de Valor Real\', 2)').transacting(trx)
239
+ } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'COU\'').transacting(trx) }
240
+ try {
241
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'MXV\', \'Mexican Unidad de Inversion (UDI)\', 2)').transacting(trx)
242
+ } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'MXV\'').transacting(trx) }
243
+ try {
244
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'SSP\', \'South Sudanese Pound\', 2)').transacting(trx)
245
+ } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'SSP\'').transacting(trx) }
246
+ try {
247
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'USN\', \'US Dollar (Next day)\', 2)').transacting(trx)
248
+ } catch (e) { await knex.raw('update currency set scale = \'2\' where currencyId = \'USN\'').transacting(trx) }
249
+ try {
250
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'UYI\', \'Uruguay Peso en Unidades Indexadas (URUIURUI)\', 0)').transacting(trx)
251
+ } catch (e) { await knex.raw('update currency set scale = \'0\' where currencyId = \'UYI\'').transacting(trx) }
252
+ try {
253
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'XSU\', \'Sucre\', 4)').transacting(trx)
254
+ } catch (e) { await knex.raw('update currency set scale = \'4\' where currencyId = \'XSU\'').transacting(trx) }
255
+ try {
256
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'XTS\', \'Reserved for testing purposes\', 4)').transacting(trx)
257
+ } catch (e) { await knex.raw('update currency set scale = \'4\' where currencyId = \'XTS\'').transacting(trx) }
258
+ try {
259
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'XUA\', \'African Development Bank (ADB) Unit of Account\', 4)').transacting(trx)
260
+ } catch (e) { await knex.raw('update currency set scale = \'4\' where currencyId = \'XUA\'').transacting(trx) }
261
+ try {
262
+ await knex.raw('insert into currency (currencyId, name, scale) values (\'XXX\', \'Assigned for transactions where no currency is involved\', 4)').transacting(trx)
263
+ } catch (e) { await knex.raw('update currency set scale = \'4\' where currencyId = \'XXX\'').transacting(trx) }
270
264
  })
271
265
  }
272
266
 
@@ -41,27 +41,22 @@ exports.up = async (knex) => {
41
41
  t.integer('settlementAccountTypeId').unsigned().defaultTo(null)
42
42
  })
43
43
  await knex.transaction(async (trx) => {
44
- try {
45
- await knex.select('s.settlementModelId', 's.name', 'lat.name AS latName')
46
- .from('settlementModel AS s')
47
- .transacting(trx)
48
- .innerJoin('ledgerAccountType as lat', 's.ledgerAccountTypeId', 'lat.ledgerAccountTypeId')
49
- .then(async (models) => {
50
- for (const model of models) {
51
- let settlementAccountName
52
- if (model.latName === 'POSITION') {
53
- settlementAccountName = 'SETTLEMENT'
54
- } else {
55
- settlementAccountName = model.latName + '_SETTLEMENT'
56
- }
57
- await knex('settlementModel').transacting(trx).update({ settlementAccountTypeId: knex('ledgerAccountType').select('ledgerAccountTypeId').where('name', settlementAccountName) })
58
- .where('settlementModelId', model.settlementModelId)
44
+ await knex.select('s.settlementModelId', 's.name', 'lat.name AS latName')
45
+ .from('settlementModel AS s')
46
+ .transacting(trx)
47
+ .innerJoin('ledgerAccountType as lat', 's.ledgerAccountTypeId', 'lat.ledgerAccountTypeId')
48
+ .then(async (models) => {
49
+ for (const model of models) {
50
+ let settlementAccountName
51
+ if (model.latName === 'POSITION') {
52
+ settlementAccountName = 'SETTLEMENT'
53
+ } else {
54
+ settlementAccountName = model.latName + '_SETTLEMENT'
59
55
  }
60
- })
61
- await trx.commit
62
- } catch (e) {
63
- await trx.rollback
64
- }
56
+ await knex('settlementModel').transacting(trx).update({ settlementAccountTypeId: knex('ledgerAccountType').select('ledgerAccountTypeId').where('name', settlementAccountName) })
57
+ .where('settlementModelId', model.settlementModelId)
58
+ }
59
+ })
65
60
  })
66
61
  await knex.schema.alterTable('settlementModel', (t) => {
67
62
  t.integer('settlementAccountTypeId').alter().notNullable()
@@ -0,0 +1,18 @@
1
+ 'use strict'
2
+
3
+ exports.up = async (knex) => {
4
+ return await knex.schema.hasTable('participant').then(function(exists) {
5
+ if (exists) {
6
+ return knex.schema.alterTable('participant', (t) => {
7
+ t.boolean('isProxy').defaultTo(false).notNullable()
8
+
9
+ })
10
+ }
11
+ })
12
+ }
13
+
14
+ exports.down = function (knex) {
15
+ return knex.schema.alterTable('participant', (t) => {
16
+ t.dropColumn('isProxy')
17
+ })
18
+ }
@@ -0,0 +1,19 @@
1
+ // Notes: these changes are required for the quoting-service and are not used by central-ledger
2
+ 'use strict'
3
+
4
+ exports.up = (knex) => {
5
+ return knex.schema.hasTable('fxQuote').then((exists) => {
6
+ if (!exists) {
7
+ return knex.schema.createTable('fxQuote', (t) => {
8
+ t.string('conversionRequestId', 36).primary().notNullable()
9
+
10
+ // time keeping
11
+ t.dateTime('createdDate').defaultTo(knex.fn.now()).notNullable().comment('System dateTime stamp pertaining to the inserted record')
12
+ })
13
+ }
14
+ })
15
+ }
16
+
17
+ exports.down = (knex) => {
18
+ return knex.schema.dropTableIfExists('fxQuote')
19
+ }