@openora/core 0.4.1-canary.49 → 0.4.1-canary.51

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 (225) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/admin-console/contract/index.d.ts +12 -0
  3. package/dist/admin-console/contract/index.d.ts.map +1 -1
  4. package/dist/admin-console/router/index.d.ts +6 -0
  5. package/dist/admin-console/router/index.d.ts.map +1 -1
  6. package/dist/audit/plugin.d.ts.map +1 -1
  7. package/dist/audit/plugin.js +19 -4
  8. package/dist/audit/plugin.js.map +1 -1
  9. package/dist/audit/service/audit.service.d.ts +1 -0
  10. package/dist/audit/service/audit.service.d.ts.map +1 -1
  11. package/dist/audit/service/audit.service.js +11 -6
  12. package/dist/audit/service/audit.service.js.map +1 -1
  13. package/dist/casino/gaming/__tests__/gaming.service.test.js +2 -2
  14. package/dist/casino/gaming/__tests__/gaming.service.test.js.map +1 -1
  15. package/dist/casino/gaming/admin-reporting.d.ts +2 -1
  16. package/dist/casino/gaming/admin-reporting.d.ts.map +1 -1
  17. package/dist/casino/gaming/admin-reporting.js +14 -0
  18. package/dist/casino/gaming/admin-reporting.js.map +1 -1
  19. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.test.js +3 -0
  20. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.test.js.map +1 -1
  21. package/dist/compliance/drizzle/migrations/0004_military_silk_fever.sql +1 -1
  22. package/dist/contracts/adapters/admin-game-reporting.d.ts +5 -0
  23. package/dist/contracts/adapters/admin-game-reporting.d.ts.map +1 -1
  24. package/dist/contracts/adapters/admin-game-reporting.js.map +1 -1
  25. package/dist/contracts/adapters/admin-user-directory.d.ts +6 -1
  26. package/dist/contracts/adapters/admin-user-directory.d.ts.map +1 -1
  27. package/dist/contracts/adapters/admin-user-directory.js.map +1 -1
  28. package/dist/contracts/adapters/audit.d.ts +10 -0
  29. package/dist/contracts/adapters/audit.d.ts.map +1 -1
  30. package/dist/contracts/adapters/audit.js.map +1 -1
  31. package/dist/contracts/adapters/cache.d.ts +3 -0
  32. package/dist/contracts/adapters/cache.d.ts.map +1 -1
  33. package/dist/contracts/adapters/cache.js.map +1 -1
  34. package/dist/contracts/adapters/chat-block-writer.d.ts +8 -0
  35. package/dist/contracts/adapters/chat-block-writer.d.ts.map +1 -0
  36. package/dist/contracts/adapters/chat-block-writer.js +3 -0
  37. package/dist/contracts/adapters/chat-block-writer.js.map +1 -0
  38. package/dist/contracts/adapters/chat-room-access.d.ts +6 -0
  39. package/dist/contracts/adapters/chat-room-access.d.ts.map +1 -0
  40. package/dist/contracts/adapters/chat-room-access.js +3 -0
  41. package/dist/contracts/adapters/chat-room-access.js.map +1 -0
  42. package/dist/contracts/adapters/chat-system-writer.d.ts +12 -0
  43. package/dist/contracts/adapters/chat-system-writer.d.ts.map +1 -0
  44. package/dist/contracts/adapters/chat-system-writer.js +3 -0
  45. package/dist/contracts/adapters/chat-system-writer.js.map +1 -0
  46. package/dist/contracts/adapters/index.d.ts +8 -2
  47. package/dist/contracts/adapters/index.d.ts.map +1 -1
  48. package/dist/contracts/adapters/index.js +4 -1
  49. package/dist/contracts/adapters/index.js.map +1 -1
  50. package/dist/contracts/adapters/realtime.d.ts +3 -0
  51. package/dist/contracts/adapters/realtime.d.ts.map +1 -1
  52. package/dist/contracts/adapters/realtime.js +14 -0
  53. package/dist/contracts/adapters/realtime.js.map +1 -1
  54. package/dist/contracts/adapters/wallet-commands.d.ts +2 -0
  55. package/dist/contracts/adapters/wallet-commands.d.ts.map +1 -1
  56. package/dist/contracts/adapters/wallet-commands.js.map +1 -1
  57. package/dist/contracts/schemas/chat-command-metadata.d.ts +47 -0
  58. package/dist/contracts/schemas/chat-command-metadata.d.ts.map +1 -0
  59. package/dist/contracts/schemas/chat-command-metadata.js +42 -0
  60. package/dist/contracts/schemas/chat-command-metadata.js.map +1 -0
  61. package/dist/contracts/schemas/chat-command.d.ts +87 -0
  62. package/dist/contracts/schemas/chat-command.d.ts.map +1 -0
  63. package/dist/contracts/schemas/chat-command.js +26 -0
  64. package/dist/contracts/schemas/chat-command.js.map +1 -0
  65. package/dist/contracts/schemas/events.d.ts +59 -0
  66. package/dist/contracts/schemas/events.d.ts.map +1 -1
  67. package/dist/contracts/schemas/events.js +52 -2
  68. package/dist/contracts/schemas/events.js.map +1 -1
  69. package/dist/contracts/schemas/index.d.ts +2 -0
  70. package/dist/contracts/schemas/index.d.ts.map +1 -1
  71. package/dist/contracts/schemas/index.js +2 -0
  72. package/dist/contracts/schemas/index.js.map +1 -1
  73. package/dist/contracts/schemas/wallet-tx.d.ts +3 -1
  74. package/dist/contracts/schemas/wallet-tx.d.ts.map +1 -1
  75. package/dist/contracts/schemas/wallet-tx.js +2 -0
  76. package/dist/contracts/schemas/wallet-tx.js.map +1 -1
  77. package/dist/engagement/chat/__tests__/chat.service.test.js +138 -10
  78. package/dist/engagement/chat/__tests__/chat.service.test.js.map +1 -1
  79. package/dist/engagement/chat/contract/index.d.ts +285 -0
  80. package/dist/engagement/chat/contract/index.d.ts.map +1 -1
  81. package/dist/engagement/chat/contract/index.js +23 -1
  82. package/dist/engagement/chat/contract/index.js.map +1 -1
  83. package/dist/engagement/chat/drizzle/migrations/0002_steep_zodiak.sql +3 -0
  84. package/dist/engagement/chat/drizzle/migrations/0003_stormy_king_bedlam.sql +9 -0
  85. package/dist/engagement/chat/drizzle/migrations/meta/0002_snapshot.json +576 -0
  86. package/dist/engagement/chat/drizzle/migrations/meta/0003_snapshot.json +652 -0
  87. package/dist/engagement/chat/drizzle/migrations/meta/_journal.json +14 -0
  88. package/dist/engagement/chat/plugin.d.ts.map +1 -1
  89. package/dist/engagement/chat/plugin.js +15 -3
  90. package/dist/engagement/chat/plugin.js.map +1 -1
  91. package/dist/engagement/chat/router/index.d.ts +242 -0
  92. package/dist/engagement/chat/router/index.d.ts.map +1 -1
  93. package/dist/engagement/chat/router/index.js +14 -2
  94. package/dist/engagement/chat/router/index.js.map +1 -1
  95. package/dist/engagement/chat/schema/index.d.ts +179 -0
  96. package/dist/engagement/chat/schema/index.d.ts.map +1 -1
  97. package/dist/engagement/chat/schema/index.js +17 -1
  98. package/dist/engagement/chat/schema/index.js.map +1 -1
  99. package/dist/engagement/chat/service/chat.service.d.ts +176 -8
  100. package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
  101. package/dist/engagement/chat/service/chat.service.js +129 -13
  102. package/dist/engagement/chat/service/chat.service.js.map +1 -1
  103. package/dist/engagement/chat-commands/contract/index.d.ts +252 -0
  104. package/dist/engagement/chat-commands/contract/index.d.ts.map +1 -0
  105. package/dist/engagement/chat-commands/contract/index.js +138 -0
  106. package/dist/engagement/chat-commands/contract/index.js.map +1 -0
  107. package/dist/engagement/chat-commands/drizzle/migrations/0000_daffy_lady_bullseye.sql +24 -0
  108. package/dist/engagement/chat-commands/drizzle/migrations/meta/0000_snapshot.json +164 -0
  109. package/dist/engagement/chat-commands/drizzle/migrations/meta/_journal.json +13 -0
  110. package/dist/engagement/chat-commands/drizzle.config.d.ts +4 -0
  111. package/dist/engagement/chat-commands/drizzle.config.d.ts.map +1 -0
  112. package/dist/engagement/chat-commands/drizzle.config.js +21 -0
  113. package/dist/engagement/chat-commands/drizzle.config.js.map +1 -0
  114. package/dist/engagement/chat-commands/migrate.d.ts +3 -0
  115. package/dist/engagement/chat-commands/migrate.d.ts.map +1 -0
  116. package/dist/engagement/chat-commands/migrate.js +15 -0
  117. package/dist/engagement/chat-commands/migrate.js.map +1 -0
  118. package/dist/engagement/chat-commands/plugin.d.ts +3 -0
  119. package/dist/engagement/chat-commands/plugin.d.ts.map +1 -0
  120. package/dist/engagement/chat-commands/plugin.js +15 -0
  121. package/dist/engagement/chat-commands/plugin.js.map +1 -0
  122. package/dist/engagement/chat-commands/router/index.d.ts +173 -0
  123. package/dist/engagement/chat-commands/router/index.d.ts.map +1 -0
  124. package/dist/engagement/chat-commands/router/index.js +61 -0
  125. package/dist/engagement/chat-commands/router/index.js.map +1 -0
  126. package/dist/engagement/chat-commands/schema/index.d.ts +337 -0
  127. package/dist/engagement/chat-commands/schema/index.d.ts.map +1 -0
  128. package/dist/engagement/chat-commands/schema/index.js +29 -0
  129. package/dist/engagement/chat-commands/schema/index.js.map +1 -0
  130. package/dist/engagement/chat-commands/seed/index.d.ts +3 -0
  131. package/dist/engagement/chat-commands/seed/index.d.ts.map +1 -0
  132. package/dist/engagement/chat-commands/seed/index.js +54 -0
  133. package/dist/engagement/chat-commands/seed/index.js.map +1 -0
  134. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.d.ts +2 -0
  135. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.d.ts.map +1 -0
  136. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js +888 -0
  137. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js.map +1 -0
  138. package/dist/engagement/chat-commands/service/chat-commands.service.d.ts +90 -0
  139. package/dist/engagement/chat-commands/service/chat-commands.service.d.ts.map +1 -0
  140. package/dist/engagement/chat-commands/service/chat-commands.service.js +641 -0
  141. package/dist/engagement/chat-commands/service/chat-commands.service.js.map +1 -0
  142. package/dist/engagement/contracts.d.ts +1 -0
  143. package/dist/engagement/contracts.d.ts.map +1 -1
  144. package/dist/engagement/contracts.js +1 -0
  145. package/dist/engagement/contracts.js.map +1 -1
  146. package/dist/engagement/index.d.ts +1 -0
  147. package/dist/engagement/index.d.ts.map +1 -1
  148. package/dist/engagement/index.js +1 -0
  149. package/dist/engagement/index.js.map +1 -1
  150. package/dist/engagement/server.d.ts +1 -0
  151. package/dist/engagement/server.d.ts.map +1 -1
  152. package/dist/engagement/server.js +1 -0
  153. package/dist/engagement/server.js.map +1 -1
  154. package/dist/iam/service/iam.service.d.ts +1 -1
  155. package/dist/pam/identity/__tests__/admin-user-directory.test.js +24 -0
  156. package/dist/pam/identity/__tests__/admin-user-directory.test.js.map +1 -1
  157. package/dist/pam/identity/admin-user-directory.d.ts +16 -1
  158. package/dist/pam/identity/admin-user-directory.d.ts.map +1 -1
  159. package/dist/pam/identity/admin-user-directory.js +39 -6
  160. package/dist/pam/identity/admin-user-directory.js.map +1 -1
  161. package/dist/react/hooks/__tests__/use-event-stream.test.d.ts +2 -0
  162. package/dist/react/hooks/__tests__/use-event-stream.test.d.ts.map +1 -0
  163. package/dist/react/hooks/__tests__/use-event-stream.test.js +153 -0
  164. package/dist/react/hooks/__tests__/use-event-stream.test.js.map +1 -0
  165. package/dist/react/hooks/use-event-stream.d.ts +3 -3
  166. package/dist/react/hooks/use-event-stream.d.ts.map +1 -1
  167. package/dist/react/hooks/use-event-stream.js +60 -28
  168. package/dist/react/hooks/use-event-stream.js.map +1 -1
  169. package/dist/server/kernel/__tests__/cache.test.js +1 -0
  170. package/dist/server/kernel/__tests__/cache.test.js.map +1 -1
  171. package/dist/server/kernel/__tests__/realtime-transport.test.js +11 -0
  172. package/dist/server/kernel/__tests__/realtime-transport.test.js.map +1 -1
  173. package/dist/server/kernel/realtime-transport.d.ts +2 -0
  174. package/dist/server/kernel/realtime-transport.d.ts.map +1 -1
  175. package/dist/server/kernel/realtime-transport.js +13 -1
  176. package/dist/server/kernel/realtime-transport.js.map +1 -1
  177. package/dist/server/kernel/redis-cache.d.ts +3 -0
  178. package/dist/server/kernel/redis-cache.d.ts.map +1 -1
  179. package/dist/server/kernel/redis-cache.js +10 -0
  180. package/dist/server/kernel/redis-cache.js.map +1 -1
  181. package/dist/server/runtime/create-app.d.ts.map +1 -1
  182. package/dist/server/runtime/create-app.js +2 -4
  183. package/dist/server/runtime/create-app.js.map +1 -1
  184. package/dist/testing/index.d.ts +1 -0
  185. package/dist/testing/index.d.ts.map +1 -1
  186. package/dist/testing/index.js +1 -0
  187. package/dist/testing/index.js.map +1 -1
  188. package/dist/testing/mock.d.ts +1 -0
  189. package/dist/testing/mock.d.ts.map +1 -1
  190. package/dist/testing/mock.js +7 -2
  191. package/dist/testing/mock.js.map +1 -1
  192. package/dist/testing/realtime-transport-conformance.d.ts +35 -0
  193. package/dist/testing/realtime-transport-conformance.d.ts.map +1 -0
  194. package/dist/testing/realtime-transport-conformance.js +77 -0
  195. package/dist/testing/realtime-transport-conformance.js.map +1 -0
  196. package/dist/wallet/__tests__/wallet-commands.service.test.js +36 -6
  197. package/dist/wallet/__tests__/wallet-commands.service.test.js.map +1 -1
  198. package/dist/wallet/admin-reporting.d.ts +2 -2
  199. package/dist/wallet/contract/index.d.ts +6 -0
  200. package/dist/wallet/contract/index.d.ts.map +1 -1
  201. package/dist/wallet/drizzle/migrations/0004_reflective_shriek.sql +2 -0
  202. package/dist/wallet/drizzle/migrations/meta/0004_snapshot.json +567 -0
  203. package/dist/wallet/drizzle/migrations/meta/_journal.json +7 -0
  204. package/dist/wallet/router/index.d.ts +4 -0
  205. package/dist/wallet/router/index.d.ts.map +1 -1
  206. package/dist/wallet/schema/index.d.ts +3 -3
  207. package/dist/wallet/schema/index.d.ts.map +1 -1
  208. package/dist/wallet/service/wallet-commands.service.d.ts +1 -1
  209. package/dist/wallet/service/wallet-commands.service.d.ts.map +1 -1
  210. package/dist/wallet/service/wallet-commands.service.js +6 -3
  211. package/dist/wallet/service/wallet-commands.service.js.map +1 -1
  212. package/dist/wallet/service/wallet.service.d.ts +1 -1
  213. package/package.json +30 -7
  214. package/dist/engagement/chat/react/use-chat-stream.d.ts +0 -26
  215. package/dist/engagement/chat/react/use-chat-stream.d.ts.map +0 -1
  216. package/dist/engagement/chat/react/use-chat-stream.js +0 -54
  217. package/dist/engagement/chat/react/use-chat-stream.js.map +0 -1
  218. package/dist/engagement/chat/react/use-join-room.d.ts +0 -13
  219. package/dist/engagement/chat/react/use-join-room.d.ts.map +0 -1
  220. package/dist/engagement/chat/react/use-join-room.js +0 -25
  221. package/dist/engagement/chat/react/use-join-room.js.map +0 -1
  222. package/dist/engagement/react.d.ts +0 -3
  223. package/dist/engagement/react.d.ts.map +0 -1
  224. package/dist/engagement/react.js +0 -4
  225. package/dist/engagement/react.js.map +0 -1
@@ -0,0 +1,567 @@
1
+ {
2
+ "id": "004d59f7-7a59-4271-9518-0a856c6b62c7",
3
+ "prevId": "dc212a38-53e8-4ed3-9b0b-4e6eb50d9477",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.auto_withdrawal_rule": {
8
+ "name": "auto_withdrawal_rule",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "gen_random_uuid()"
17
+ },
18
+ "user_id": {
19
+ "name": "user_id",
20
+ "type": "uuid",
21
+ "primaryKey": false,
22
+ "notNull": true
23
+ },
24
+ "threshold": {
25
+ "name": "threshold",
26
+ "type": "numeric(18, 8)",
27
+ "primaryKey": false,
28
+ "notNull": true
29
+ },
30
+ "reason": {
31
+ "name": "reason",
32
+ "type": "text",
33
+ "primaryKey": false,
34
+ "notNull": true
35
+ },
36
+ "created_by": {
37
+ "name": "created_by",
38
+ "type": "uuid",
39
+ "primaryKey": false,
40
+ "notNull": true
41
+ },
42
+ "created_at": {
43
+ "name": "created_at",
44
+ "type": "timestamp with time zone",
45
+ "primaryKey": false,
46
+ "notNull": true,
47
+ "default": "now()"
48
+ },
49
+ "updated_at": {
50
+ "name": "updated_at",
51
+ "type": "timestamp with time zone",
52
+ "primaryKey": false,
53
+ "notNull": true
54
+ }
55
+ },
56
+ "indexes": {},
57
+ "foreignKeys": {},
58
+ "compositePrimaryKeys": {},
59
+ "uniqueConstraints": {
60
+ "auto_withdrawal_rule_user_id_unique": {
61
+ "name": "auto_withdrawal_rule_user_id_unique",
62
+ "nullsNotDistinct": false,
63
+ "columns": ["user_id"]
64
+ }
65
+ },
66
+ "policies": {},
67
+ "checkConstraints": {},
68
+ "isRLSEnabled": false
69
+ },
70
+ "public.wallet": {
71
+ "name": "wallet",
72
+ "schema": "",
73
+ "columns": {
74
+ "id": {
75
+ "name": "id",
76
+ "type": "uuid",
77
+ "primaryKey": true,
78
+ "notNull": true,
79
+ "default": "gen_random_uuid()"
80
+ },
81
+ "user_id": {
82
+ "name": "user_id",
83
+ "type": "uuid",
84
+ "primaryKey": false,
85
+ "notNull": true
86
+ },
87
+ "balance": {
88
+ "name": "balance",
89
+ "type": "numeric(18, 8)",
90
+ "primaryKey": false,
91
+ "notNull": true,
92
+ "default": "'0'"
93
+ },
94
+ "currency": {
95
+ "name": "currency",
96
+ "type": "text",
97
+ "primaryKey": false,
98
+ "notNull": true,
99
+ "default": "'USD'"
100
+ },
101
+ "updated_at": {
102
+ "name": "updated_at",
103
+ "type": "timestamp with time zone",
104
+ "primaryKey": false,
105
+ "notNull": true
106
+ }
107
+ },
108
+ "indexes": {},
109
+ "foreignKeys": {},
110
+ "compositePrimaryKeys": {},
111
+ "uniqueConstraints": {
112
+ "wallet_user_id_unique": {
113
+ "name": "wallet_user_id_unique",
114
+ "nullsNotDistinct": false,
115
+ "columns": ["user_id"]
116
+ }
117
+ },
118
+ "policies": {},
119
+ "checkConstraints": {},
120
+ "isRLSEnabled": false
121
+ },
122
+ "public.wallet_deposit_address": {
123
+ "name": "wallet_deposit_address",
124
+ "schema": "",
125
+ "columns": {
126
+ "id": {
127
+ "name": "id",
128
+ "type": "uuid",
129
+ "primaryKey": true,
130
+ "notNull": true,
131
+ "default": "gen_random_uuid()"
132
+ },
133
+ "user_id": {
134
+ "name": "user_id",
135
+ "type": "uuid",
136
+ "primaryKey": false,
137
+ "notNull": true
138
+ },
139
+ "currency": {
140
+ "name": "currency",
141
+ "type": "text",
142
+ "primaryKey": false,
143
+ "notNull": true
144
+ },
145
+ "address": {
146
+ "name": "address",
147
+ "type": "text",
148
+ "primaryKey": false,
149
+ "notNull": true
150
+ },
151
+ "provider_name": {
152
+ "name": "provider_name",
153
+ "type": "text",
154
+ "primaryKey": false,
155
+ "notNull": true
156
+ },
157
+ "created_at": {
158
+ "name": "created_at",
159
+ "type": "timestamp with time zone",
160
+ "primaryKey": false,
161
+ "notNull": true,
162
+ "default": "now()"
163
+ }
164
+ },
165
+ "indexes": {
166
+ "wallet_deposit_address_user_id_currency_idx": {
167
+ "name": "wallet_deposit_address_user_id_currency_idx",
168
+ "columns": [
169
+ {
170
+ "expression": "user_id",
171
+ "isExpression": false,
172
+ "asc": true,
173
+ "nulls": "last"
174
+ },
175
+ {
176
+ "expression": "currency",
177
+ "isExpression": false,
178
+ "asc": true,
179
+ "nulls": "last"
180
+ }
181
+ ],
182
+ "isUnique": true,
183
+ "concurrently": false,
184
+ "method": "btree",
185
+ "with": {}
186
+ },
187
+ "wallet_deposit_address_address_idx": {
188
+ "name": "wallet_deposit_address_address_idx",
189
+ "columns": [
190
+ {
191
+ "expression": "address",
192
+ "isExpression": false,
193
+ "asc": true,
194
+ "nulls": "last"
195
+ }
196
+ ],
197
+ "isUnique": false,
198
+ "concurrently": false,
199
+ "method": "btree",
200
+ "with": {}
201
+ }
202
+ },
203
+ "foreignKeys": {},
204
+ "compositePrimaryKeys": {},
205
+ "uniqueConstraints": {},
206
+ "policies": {},
207
+ "checkConstraints": {},
208
+ "isRLSEnabled": false
209
+ },
210
+ "public.wallet_transaction": {
211
+ "name": "wallet_transaction",
212
+ "schema": "",
213
+ "columns": {
214
+ "id": {
215
+ "name": "id",
216
+ "type": "uuid",
217
+ "primaryKey": true,
218
+ "notNull": true,
219
+ "default": "gen_random_uuid()"
220
+ },
221
+ "wallet_id": {
222
+ "name": "wallet_id",
223
+ "type": "uuid",
224
+ "primaryKey": false,
225
+ "notNull": true
226
+ },
227
+ "type": {
228
+ "name": "type",
229
+ "type": "wallet_transaction_type",
230
+ "typeSchema": "public",
231
+ "primaryKey": false,
232
+ "notNull": true
233
+ },
234
+ "amount": {
235
+ "name": "amount",
236
+ "type": "numeric(18, 8)",
237
+ "primaryKey": false,
238
+ "notNull": true
239
+ },
240
+ "currency": {
241
+ "name": "currency",
242
+ "type": "text",
243
+ "primaryKey": false,
244
+ "notNull": true
245
+ },
246
+ "status": {
247
+ "name": "status",
248
+ "type": "wallet_transaction_status",
249
+ "typeSchema": "public",
250
+ "primaryKey": false,
251
+ "notNull": true,
252
+ "default": "'pending'"
253
+ },
254
+ "rail": {
255
+ "name": "rail",
256
+ "type": "wallet_rail",
257
+ "typeSchema": "public",
258
+ "primaryKey": false,
259
+ "notNull": false
260
+ },
261
+ "reviewed_by": {
262
+ "name": "reviewed_by",
263
+ "type": "uuid",
264
+ "primaryKey": false,
265
+ "notNull": false
266
+ },
267
+ "reviewed_at": {
268
+ "name": "reviewed_at",
269
+ "type": "timestamp with time zone",
270
+ "primaryKey": false,
271
+ "notNull": false
272
+ },
273
+ "review_reason": {
274
+ "name": "review_reason",
275
+ "type": "text",
276
+ "primaryKey": false,
277
+ "notNull": false
278
+ },
279
+ "provider_name": {
280
+ "name": "provider_name",
281
+ "type": "text",
282
+ "primaryKey": false,
283
+ "notNull": false
284
+ },
285
+ "provider_ref_id": {
286
+ "name": "provider_ref_id",
287
+ "type": "text",
288
+ "primaryKey": false,
289
+ "notNull": false
290
+ },
291
+ "destination_address": {
292
+ "name": "destination_address",
293
+ "type": "text",
294
+ "primaryKey": false,
295
+ "notNull": false
296
+ },
297
+ "tx_hash": {
298
+ "name": "tx_hash",
299
+ "type": "text",
300
+ "primaryKey": false,
301
+ "notNull": false
302
+ },
303
+ "metadata": {
304
+ "name": "metadata",
305
+ "type": "text",
306
+ "primaryKey": false,
307
+ "notNull": false
308
+ },
309
+ "idempotency_key": {
310
+ "name": "idempotency_key",
311
+ "type": "uuid",
312
+ "primaryKey": false,
313
+ "notNull": false
314
+ },
315
+ "created_at": {
316
+ "name": "created_at",
317
+ "type": "timestamp with time zone",
318
+ "primaryKey": false,
319
+ "notNull": true,
320
+ "default": "now()"
321
+ }
322
+ },
323
+ "indexes": {
324
+ "wallet_transaction_wallet_id_idx": {
325
+ "name": "wallet_transaction_wallet_id_idx",
326
+ "columns": [
327
+ {
328
+ "expression": "wallet_id",
329
+ "isExpression": false,
330
+ "asc": true,
331
+ "nulls": "last"
332
+ }
333
+ ],
334
+ "isUnique": false,
335
+ "concurrently": false,
336
+ "method": "btree",
337
+ "with": {}
338
+ },
339
+ "wallet_transaction_created_at_idx": {
340
+ "name": "wallet_transaction_created_at_idx",
341
+ "columns": [
342
+ {
343
+ "expression": "created_at",
344
+ "isExpression": false,
345
+ "asc": true,
346
+ "nulls": "last"
347
+ }
348
+ ],
349
+ "isUnique": false,
350
+ "concurrently": false,
351
+ "method": "btree",
352
+ "with": {}
353
+ },
354
+ "wallet_transaction_type_idx": {
355
+ "name": "wallet_transaction_type_idx",
356
+ "columns": [
357
+ {
358
+ "expression": "type",
359
+ "isExpression": false,
360
+ "asc": true,
361
+ "nulls": "last"
362
+ }
363
+ ],
364
+ "isUnique": false,
365
+ "concurrently": false,
366
+ "method": "btree",
367
+ "with": {}
368
+ },
369
+ "wallet_transaction_status_idx": {
370
+ "name": "wallet_transaction_status_idx",
371
+ "columns": [
372
+ {
373
+ "expression": "status",
374
+ "isExpression": false,
375
+ "asc": true,
376
+ "nulls": "last"
377
+ }
378
+ ],
379
+ "isUnique": false,
380
+ "concurrently": false,
381
+ "method": "btree",
382
+ "with": {}
383
+ },
384
+ "wallet_transaction_rail_idx": {
385
+ "name": "wallet_transaction_rail_idx",
386
+ "columns": [
387
+ {
388
+ "expression": "rail",
389
+ "isExpression": false,
390
+ "asc": true,
391
+ "nulls": "last"
392
+ }
393
+ ],
394
+ "isUnique": false,
395
+ "concurrently": false,
396
+ "method": "btree",
397
+ "with": {}
398
+ },
399
+ "wallet_transaction_currency_idx": {
400
+ "name": "wallet_transaction_currency_idx",
401
+ "columns": [
402
+ {
403
+ "expression": "currency",
404
+ "isExpression": false,
405
+ "asc": true,
406
+ "nulls": "last"
407
+ }
408
+ ],
409
+ "isUnique": false,
410
+ "concurrently": false,
411
+ "method": "btree",
412
+ "with": {}
413
+ },
414
+ "wallet_transaction_tx_hash_idx": {
415
+ "name": "wallet_transaction_tx_hash_idx",
416
+ "columns": [
417
+ {
418
+ "expression": "tx_hash",
419
+ "isExpression": false,
420
+ "asc": true,
421
+ "nulls": "last"
422
+ }
423
+ ],
424
+ "isUnique": false,
425
+ "concurrently": false,
426
+ "method": "btree",
427
+ "with": {}
428
+ },
429
+ "wallet_transaction_status_type_created_at_idx": {
430
+ "name": "wallet_transaction_status_type_created_at_idx",
431
+ "columns": [
432
+ {
433
+ "expression": "status",
434
+ "isExpression": false,
435
+ "asc": true,
436
+ "nulls": "last"
437
+ },
438
+ {
439
+ "expression": "type",
440
+ "isExpression": false,
441
+ "asc": true,
442
+ "nulls": "last"
443
+ },
444
+ {
445
+ "expression": "created_at",
446
+ "isExpression": false,
447
+ "asc": true,
448
+ "nulls": "last"
449
+ }
450
+ ],
451
+ "isUnique": false,
452
+ "concurrently": false,
453
+ "method": "btree",
454
+ "with": {}
455
+ },
456
+ "wallet_transaction_wallet_id_type_status_idx": {
457
+ "name": "wallet_transaction_wallet_id_type_status_idx",
458
+ "columns": [
459
+ {
460
+ "expression": "wallet_id",
461
+ "isExpression": false,
462
+ "asc": true,
463
+ "nulls": "last"
464
+ },
465
+ {
466
+ "expression": "type",
467
+ "isExpression": false,
468
+ "asc": true,
469
+ "nulls": "last"
470
+ },
471
+ {
472
+ "expression": "status",
473
+ "isExpression": false,
474
+ "asc": true,
475
+ "nulls": "last"
476
+ }
477
+ ],
478
+ "isUnique": false,
479
+ "concurrently": false,
480
+ "method": "btree",
481
+ "with": {}
482
+ },
483
+ "wallet_transaction_provider_ref_id_idx": {
484
+ "name": "wallet_transaction_provider_ref_id_idx",
485
+ "columns": [
486
+ {
487
+ "expression": "provider_ref_id",
488
+ "isExpression": false,
489
+ "asc": true,
490
+ "nulls": "last"
491
+ }
492
+ ],
493
+ "isUnique": true,
494
+ "where": "\"wallet_transaction\".\"provider_ref_id\" IS NOT NULL",
495
+ "concurrently": false,
496
+ "method": "btree",
497
+ "with": {}
498
+ },
499
+ "wallet_transaction_wallet_id_idempotency_key_idx": {
500
+ "name": "wallet_transaction_wallet_id_idempotency_key_idx",
501
+ "columns": [
502
+ {
503
+ "expression": "wallet_id",
504
+ "isExpression": false,
505
+ "asc": true,
506
+ "nulls": "last"
507
+ },
508
+ {
509
+ "expression": "idempotency_key",
510
+ "isExpression": false,
511
+ "asc": true,
512
+ "nulls": "last"
513
+ }
514
+ ],
515
+ "isUnique": true,
516
+ "where": "\"wallet_transaction\".\"idempotency_key\" IS NOT NULL",
517
+ "concurrently": false,
518
+ "method": "btree",
519
+ "with": {}
520
+ }
521
+ },
522
+ "foreignKeys": {
523
+ "wallet_transaction_wallet_id_wallet_id_fk": {
524
+ "name": "wallet_transaction_wallet_id_wallet_id_fk",
525
+ "tableFrom": "wallet_transaction",
526
+ "tableTo": "wallet",
527
+ "columnsFrom": ["wallet_id"],
528
+ "columnsTo": ["id"],
529
+ "onDelete": "no action",
530
+ "onUpdate": "no action"
531
+ }
532
+ },
533
+ "compositePrimaryKeys": {},
534
+ "uniqueConstraints": {},
535
+ "policies": {},
536
+ "checkConstraints": {},
537
+ "isRLSEnabled": false
538
+ }
539
+ },
540
+ "enums": {
541
+ "public.wallet_rail": {
542
+ "name": "wallet_rail",
543
+ "schema": "public",
544
+ "values": ["crypto", "fiat"]
545
+ },
546
+ "public.wallet_transaction_status": {
547
+ "name": "wallet_transaction_status",
548
+ "schema": "public",
549
+ "values": ["pending", "processing", "completed", "failed", "rejected", "on_hold", "cancelled"]
550
+ },
551
+ "public.wallet_transaction_type": {
552
+ "name": "wallet_transaction_type",
553
+ "schema": "public",
554
+ "values": ["deposit", "withdrawal", "bet", "win", "loss", "bonus", "tip", "gift", "rain"]
555
+ }
556
+ },
557
+ "schemas": {},
558
+ "sequences": {},
559
+ "roles": {},
560
+ "policies": {},
561
+ "views": {},
562
+ "_meta": {
563
+ "columns": {},
564
+ "schemas": {},
565
+ "tables": {}
566
+ }
567
+ }
@@ -29,6 +29,13 @@
29
29
  "when": 1785015620531,
30
30
  "tag": "0003_certain_ogun",
31
31
  "breakpoints": true
32
+ },
33
+ {
34
+ "idx": 4,
35
+ "version": "7",
36
+ "when": 1785142636143,
37
+ "tag": "0004_reflective_shriek",
38
+ "breakpoints": true
32
39
  }
33
40
  ]
34
41
  }
@@ -68,6 +68,8 @@ export declare function createWalletRouter(wallet: WalletService, adminGuard: Ad
68
68
  win: "win";
69
69
  bonus: "bonus";
70
70
  tip: "tip";
71
+ gift: "gift";
72
+ rain: "rain";
71
73
  }>;
72
74
  amount: import("zod").ZodString;
73
75
  currency: import("zod").ZodString;
@@ -114,6 +116,8 @@ export declare function createWalletRouter(wallet: WalletService, adminGuard: Ad
114
116
  win: "win";
115
117
  bonus: "bonus";
116
118
  tip: "tip";
119
+ gift: "gift";
120
+ rain: "rain";
117
121
  }>;
118
122
  amount: import("zod").ZodString;
119
123
  currency: import("zod").ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,aAAa,EAUd,MAAM,8BAA8B,CAAC;AAEtC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6KxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,aAAa,EAUd,MAAM,8BAA8B,CAAC;AAEtC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6KxC"}
@@ -1,4 +1,4 @@
1
- export declare const walletTransactionTypeEnum: import("drizzle-orm/pg-core").PgEnum<["deposit", "withdrawal", "bet", "win", "loss", "bonus", "tip"]>;
1
+ export declare const walletTransactionTypeEnum: import("drizzle-orm/pg-core").PgEnum<["deposit", "withdrawal", "bet", "win", "loss", "bonus", "tip", "gift", "rain"]>;
2
2
  export declare const walletTransactionStatusEnum: import("drizzle-orm/pg-core").PgEnum<["pending", "processing", "completed", "failed", "rejected", "on_hold", "cancelled"]>;
3
3
  export declare const walletRailEnum: import("drizzle-orm/pg-core").PgEnum<["crypto", "fiat"]>;
4
4
  export declare const wallet: import("drizzle-orm/pg-core").PgTableWithColumns<{
@@ -136,14 +136,14 @@ export declare const walletTransaction: import("drizzle-orm/pg-core").PgTableWit
136
136
  tableName: "wallet_transaction";
137
137
  dataType: "string";
138
138
  columnType: "PgEnumColumn";
139
- data: "deposit" | "loss" | "withdrawal" | "bet" | "win" | "bonus" | "tip";
139
+ data: "deposit" | "loss" | "withdrawal" | "bet" | "win" | "bonus" | "tip" | "gift" | "rain";
140
140
  driverParam: string;
141
141
  notNull: true;
142
142
  hasDefault: false;
143
143
  isPrimaryKey: false;
144
144
  isAutoincrement: false;
145
145
  hasRuntimeDefault: false;
146
- enumValues: ["deposit", "withdrawal", "bet", "win", "loss", "bonus", "tip"];
146
+ enumValues: ["deposit", "withdrawal", "bet", "win", "loss", "bonus", "tip", "gift", "rain"];
147
147
  baseColumn: never;
148
148
  identity: undefined;
149
149
  generated: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/schema/index.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,yBAAyB,uGAGrC,CAAC;AAEF,eAAO,MAAM,2BAA2B,4HAGvC,CAAC;AAEF,eAAO,MAAM,cAAc,0DAAsC,CAAC;AAElE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoD7B,CAAC;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,YAAY,CAAC;AAChD,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,YAAY,CAAC;AACxE,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/schema/index.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,yBAAyB,uHAGrC,CAAC;AAEF,eAAO,MAAM,2BAA2B,4HAGvC,CAAC;AAEF,eAAO,MAAM,cAAc,0DAAsC,CAAC;AAElE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoD7B,CAAC;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,YAAY,CAAC;AAChD,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,YAAY,CAAC;AACxE,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,YAAY,CAAC"}
@@ -6,6 +6,6 @@ export declare class WalletCommandsService implements WalletCommands {
6
6
  constructor(playEligibility: PlayEligibilityPort);
7
7
  private writeLedgerRow;
8
8
  debit(tx: unknown, { userId, amount, type }: WalletDebitArgs): Promise<WalletDebitOutcome>;
9
- credit(tx: unknown, { userId, amount, type }: WalletCreditArgs): Promise<WalletCreditOutcome>;
9
+ credit(tx: unknown, { userId, amount, currency, type }: WalletCreditArgs): Promise<WalletCreditOutcome>;
10
10
  }
11
11
  //# sourceMappingURL=wallet-commands.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-commands.service.d.ts","sourceRoot":"","sources":["../../../src/wallet/service/wallet-commands.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EAEpB,MAAM,yBAAyB,CAAC;AAMjC,eAAO,MAAM,wBAAwB,kDAGpC,CAAC;AASF,eAAO,MAAM,uBAAuB,iBAGnC,CAAC;AAEF,qBAAa,qBAAsB,YAAW,cAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,mBAAmB;IAGjE,OAAO,CAAC,cAAc;IAgBhB,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwC1F,MAAM,CACV,EAAE,EAAE,OAAO,EACX,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,gBAAgB,GACzC,OAAO,CAAC,mBAAmB,CAAC;CA0BhC"}
1
+ {"version":3,"file":"wallet-commands.service.d.ts","sourceRoot":"","sources":["../../../src/wallet/service/wallet-commands.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EAEpB,MAAM,yBAAyB,CAAC;AAMjC,eAAO,MAAM,wBAAwB,kDAGpC,CAAC;AASF,eAAO,MAAM,uBAAuB,iBAGnC,CAAC;AAEF,qBAAa,qBAAsB,YAAW,cAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,mBAAmB;IAGjE,OAAO,CAAC,cAAc;IAgBhB,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwC1F,MAAM,CACV,EAAE,EAAE,OAAO,EACX,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,gBAAgB,GACnD,OAAO,CAAC,mBAAmB,CAAC;CA6BhC"}
@@ -43,7 +43,7 @@ export class WalletCommandsService {
43
43
  const available = row.balance;
44
44
  if (type === 'loss') {
45
45
  await this.writeLedgerRow(txn, row, 'loss', '0');
46
- return { ok: true, newBalance: available };
46
+ return { ok: true, newBalance: available, currency: row.currency };
47
47
  }
48
48
  // The UPDATE ... RETURNING gives the new balance straight from Postgres numeric
49
49
  // arithmetic - no JS float math on either side of the debit.
@@ -57,9 +57,9 @@ export class WalletCommandsService {
57
57
  return { ok: false, available };
58
58
  }
59
59
  await this.writeLedgerRow(txn, row, type, amount);
60
- return { ok: true, newBalance };
60
+ return { ok: true, newBalance, currency: row.currency };
61
61
  }
62
- async credit(tx, { userId, amount, type }) {
62
+ async credit(tx, { userId, amount, currency, type }) {
63
63
  const txn = tx;
64
64
  if (Number(amount) <= 0) {
65
65
  throw new WalletCommandAmountError('credit', amount);
@@ -69,6 +69,9 @@ export class WalletCommandsService {
69
69
  if (!row) {
70
70
  return { ok: false, reason: 'wallet not found' };
71
71
  }
72
+ if (row.currency !== currency) {
73
+ return { ok: false, reason: 'currency mismatch' };
74
+ }
72
75
  const [credited] = await txn
73
76
  .update(wallet)
74
77
  .set({ balance: sql `${wallet.balance} + ${amount}::numeric` })