@openora/core 0.4.1-canary.143 → 0.4.1-canary.146

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 (37) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/schemas/iam.d.ts +1 -0
  3. package/dist/contracts/schemas/iam.d.ts.map +1 -1
  4. package/dist/contracts/schemas/iam.js +1 -0
  5. package/dist/contracts/schemas/iam.js.map +1 -1
  6. package/dist/contracts/schemas/platform-config.d.ts +2 -0
  7. package/dist/contracts/schemas/platform-config.d.ts.map +1 -1
  8. package/dist/contracts/schemas/platform-config.js +6 -1
  9. package/dist/contracts/schemas/platform-config.js.map +1 -1
  10. package/dist/fx/exchange-rate/plugin.d.ts.map +1 -1
  11. package/dist/fx/exchange-rate/plugin.js +3 -7
  12. package/dist/fx/exchange-rate/plugin.js.map +1 -1
  13. package/dist/iam/seed/data/default-admin-roles.d.ts.map +1 -1
  14. package/dist/iam/seed/data/default-admin-roles.js +1 -0
  15. package/dist/iam/seed/data/default-admin-roles.js.map +1 -1
  16. package/dist/iam/service/iam.service.d.ts +1 -1
  17. package/dist/server/auth/permissions.d.ts +12 -0
  18. package/dist/server/auth/permissions.d.ts.map +1 -1
  19. package/dist/server/auth/permissions.js +1 -0
  20. package/dist/server/auth/permissions.js.map +1 -1
  21. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js +132 -7
  22. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js.map +1 -1
  23. package/dist/wallet/drizzle/migrations/0020_salty_infant_terrible.sql +1 -0
  24. package/dist/wallet/drizzle/migrations/meta/0020_snapshot.json +1979 -0
  25. package/dist/wallet/drizzle/migrations/meta/_journal.json +7 -0
  26. package/dist/wallet/plugin.d.ts.map +1 -1
  27. package/dist/wallet/plugin.js +2 -1
  28. package/dist/wallet/plugin.js.map +1 -1
  29. package/dist/wallet/schema/index.d.ts +17 -0
  30. package/dist/wallet/schema/index.d.ts.map +1 -1
  31. package/dist/wallet/schema/index.js +4 -0
  32. package/dist/wallet/schema/index.js.map +1 -1
  33. package/dist/wallet/service/wallet.service.d.ts +5 -2
  34. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  35. package/dist/wallet/service/wallet.service.js +49 -21
  36. package/dist/wallet/service/wallet.service.js.map +1 -1
  37. package/package.json +1 -1
@@ -44,6 +44,7 @@ export declare const adminStatement: {
44
44
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
45
45
  readonly 'wallet-custody': readonly ["view", "run"];
46
46
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
47
+ readonly 'swap-config': readonly ["view", "update"];
47
48
  readonly 'chat-command': readonly ["view", "update"];
48
49
  readonly 'chat-moderation': readonly ["view", "moderate"];
49
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"iam.d.ts","sourceRoot":"","sources":["../../../src/contracts/schemas/iam.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,eAAO,MAAM,gBAAgB,8CAA+C,CAAC;AAC7E,eAAO,MAAM,qBAAqB;;;;EAA2B,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB,6CAA8C,CAAC;AAC9E,eAAO,MAAM,sBAAsB;;;;EAA6B,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,SAAS,8BAA+B,CAAC;AACtD,eAAO,MAAM,cAAc;;;EAAoB,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAOtD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BjB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,cAAc,CAAC;AACxD,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"iam.d.ts","sourceRoot":"","sources":["../../../src/contracts/schemas/iam.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,eAAO,MAAM,gBAAgB,8CAA+C,CAAC;AAC7E,eAAO,MAAM,qBAAqB;;;;EAA2B,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB,6CAA8C,CAAC;AAC9E,eAAO,MAAM,sBAAsB;;;;EAA6B,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,SAAS,8BAA+B,CAAC;AACtD,eAAO,MAAM,cAAc;;;EAAoB,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAOtD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BjB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,cAAc,CAAC;AACxD,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -37,6 +37,7 @@ export const adminStatement = {
37
37
  'wallet-asset': ['view', 'create', 'update', 'delete'],
38
38
  'wallet-custody': ['view', 'run'],
39
39
  'wallet-reconciliation': ['view', 'resolve', 'run'],
40
+ 'swap-config': ['view', 'update'],
40
41
  'chat-command': ['view', 'update'],
41
42
  'chat-moderation': ['view', 'moderate'],
42
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"iam.js","sourceRoot":"","sources":["../../../src/contracts/schemas/iam.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAU,CAAC;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAG9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAGjE,8EAA8E;AAC9E,yFAAyF;AACzF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAGhD,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,gFAAgF;AAChF,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU;IAC1C,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACxC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAU;IAC5C,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAU;IAC3D,UAAU,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,WAAW,CAAU;IAC5D,MAAM,EAAE,CAAC,MAAM,CAAU;IACzB,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAU;IACvE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAU;IAC/D,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IAClC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAU;IACjE,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAU;IACtD,SAAS,EAAE,CAAC,MAAM,CAAU;IAC5B,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAU;IACrD,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACtC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACrC,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IAC1C,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACvC,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAU;IAC1C,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU;IAC5D,wBAAwB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACrD,uBAAuB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACpD,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU;IAC/D,gBAAgB,EAAE,CAAC,MAAM,EAAE,KAAK,CAAU;IAC1C,uBAAuB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAU;IAC5D,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IAC3C,iBAAiB,EAAE,CAAC,MAAM,EAAE,UAAU,CAAU;CACxC,CAAC"}
1
+ {"version":3,"file":"iam.js","sourceRoot":"","sources":["../../../src/contracts/schemas/iam.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAU,CAAC;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAG9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAGjE,8EAA8E;AAC9E,yFAAyF;AACzF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAGhD,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,gFAAgF;AAChF,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU;IAC1C,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACxC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAU;IAC5C,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAU;IAC3D,UAAU,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,WAAW,CAAU;IAC5D,MAAM,EAAE,CAAC,MAAM,CAAU;IACzB,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAU;IACvE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAU;IAC/D,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IAClC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAU;IACjE,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAU;IACtD,SAAS,EAAE,CAAC,MAAM,CAAU;IAC5B,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAU;IACrD,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACtC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACrC,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IAC1C,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACvC,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAU;IAC1C,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU;IAC5D,wBAAwB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACrD,uBAAuB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IACpD,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU;IAC/D,gBAAgB,EAAE,CAAC,MAAM,EAAE,KAAK,CAAU;IAC1C,uBAAuB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAU;IAC5D,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IAC1C,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAU;IAC3C,iBAAiB,EAAE,CAAC,MAAM,EAAE,UAAU,CAAU;CACxC,CAAC"}
@@ -59,6 +59,8 @@ export declare const ExchangeRateConfigSchema: z.ZodObject<{
59
59
  providerTimeoutMs: z.ZodDefault<z.ZodNumber>;
60
60
  }, z.core.$strict>;
61
61
  export type ExchangeRateConfig = z.infer<typeof ExchangeRateConfigSchema>;
62
+ /** The pivot every fx conversion targets. One resolver, so no module converts against another. */
63
+ export declare function resolveExchangeRatePivot(config: ExchangeRateConfig | undefined): string;
62
64
  export declare const NotificationsConfigSchema: z.ZodObject<{
63
65
  retention: z.ZodOptional<z.ZodObject<{
64
66
  days: z.ZodDefault<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"platform-config.d.ts","sourceRoot":"","sources":["../../../src/contracts/schemas/platform-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,kBAAkB,wCAAoC,CAAC;AAEpE,eAAO,MAAM,WAAW;;;;;kBAUb,CAAC;AAEZ,eAAO,MAAM,eAAe;;;;;kBAcjB,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;kBAQ5B,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;kBAkEpB,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,wBAAwB;;;;;kBAY1B,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,yBAAyB;;;;;kBAc3B,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,wBAAwB;;;kBAU1B,CAAC;AAEZ;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,aAK9B,CAAC;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,uBAAuB,CAAC;AAExE,eAAO,MAAM,wBAAwB,wDAuBa,CAAC;AAEnD,eAAO,MAAM,gBAAgB;;;;;kBAiBlB,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;kBAwC3B,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,eAAe;;kBAKjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+D7B,CAAC;AAEL,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAShF;AAED,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,cAAyC,CAAC;AAE9E,+EAA+E;AAC/E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAiD,CAAC"}
1
+ {"version":3,"file":"platform-config.d.ts","sourceRoot":"","sources":["../../../src/contracts/schemas/platform-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,kBAAkB,wCAAoC,CAAC;AAEpE,eAAO,MAAM,WAAW;;;;;kBAUb,CAAC;AAEZ,eAAO,MAAM,eAAe;;;;;kBAcjB,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;kBAQ5B,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;kBAkEpB,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,eAAO,MAAM,wBAAwB;;;;;kBAY1B,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,kGAAkG;AAClG,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAEvF;AAED,eAAO,MAAM,yBAAyB;;;;;kBAc3B,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,wBAAwB;;;kBAU1B,CAAC;AAEZ;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,aAK9B,CAAC;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,uBAAuB,CAAC;AAExE,eAAO,MAAM,wBAAwB,wDAuBa,CAAC;AAEnD,eAAO,MAAM,gBAAgB;;;;;kBAiBlB,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;kBAwC3B,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,eAAe;;kBAKjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+D7B,CAAC;AAEL,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAShF;AAED,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,cAAyC,CAAC;AAE9E,+EAA+E;AAC/E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAiD,CAAC"}
@@ -118,10 +118,11 @@ export const WalletConfigSchema = z
118
118
  .optional(),
119
119
  })
120
120
  .strict();
121
+ const DEFAULT_EXCHANGE_RATE_PIVOT = 'USD';
121
122
  export const ExchangeRateConfigSchema = z
122
123
  .object({
123
124
  /** Comparison currency the fx module derives a cross rate against. Absent = 'USD'. */
124
- pivot: CurrencyCodeSchema.default('USD'),
125
+ pivot: CurrencyCodeSchema.default(DEFAULT_EXCHANGE_RATE_PIVOT),
125
126
  freshTtlMs: z.number().int().positive().default(60_000),
126
127
  hardMaxAgeMs: z
127
128
  .number()
@@ -131,6 +132,10 @@ export const ExchangeRateConfigSchema = z
131
132
  providerTimeoutMs: z.number().int().positive().default(2_000),
132
133
  })
133
134
  .strict();
135
+ /** The pivot every fx conversion targets. One resolver, so no module converts against another. */
136
+ export function resolveExchangeRatePivot(config) {
137
+ return (config?.pivot ?? DEFAULT_EXCHANGE_RATE_PIVOT).toUpperCase();
138
+ }
134
139
  export const NotificationsConfigSchema = z
135
140
  .object({
136
141
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"platform-config.js","sourceRoot":"","sources":["../../../src/contracts/schemas/platform-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-config.js","sourceRoot":"","sources":["../../../src/contracts/schemas/platform-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/fx/exchange-rate/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,wBAmC8C"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/fx/exchange-rate/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,wBAmC8C"}
@@ -1,15 +1,11 @@
1
1
  import { DRIZZLE } from '@openora/core/server';
2
- import { CRYPTO_EXCHANGE_RATE_PROVIDER, FIAT_EXCHANGE_RATE_PROVIDER, EXCHANGE_RATE_READER, PLATFORM_CONFIG, resolveDisplayCurrencies, } from '@openora/core/contracts';
2
+ import { CRYPTO_EXCHANGE_RATE_PROVIDER, FIAT_EXCHANGE_RATE_PROVIDER, EXCHANGE_RATE_READER, PLATFORM_CONFIG, resolveDisplayCurrencies, resolveExchangeRatePivot, } from '@openora/core/contracts';
3
3
  import { ExchangeRateService } from './service/exchange-rate.service.js';
4
4
  import { createExchangeRateRouter } from './router/index.js';
5
5
  import { ExchangeRateReaderService } from './adapters/exchange-rate-reader.service.js';
6
- const DEFAULT_PIVOT = 'USD';
7
6
  const DEFAULT_FRESH_TTL_MS = 60_000;
8
7
  const DEFAULT_HARD_MAX_AGE_MS = 15 * 60_000;
9
8
  const DEFAULT_PROVIDER_TIMEOUT_MS = 2_000;
10
- function resolvePivot(platformConfig) {
11
- return (platformConfig.exchangeRate?.pivot ?? DEFAULT_PIVOT).toUpperCase();
12
- }
13
9
  export default {
14
10
  id: 'exchange-rate',
15
11
  register(ctx) {
@@ -18,7 +14,7 @@ export default {
18
14
  const exchangeRateConfig = platformConfig.exchangeRate;
19
15
  return new ExchangeRateReaderService({
20
16
  drizzle: c.get(DRIZZLE),
21
- pivot: resolvePivot(platformConfig),
17
+ pivot: resolveExchangeRatePivot(exchangeRateConfig),
22
18
  cryptoProvider: c.has(CRYPTO_EXCHANGE_RATE_PROVIDER)
23
19
  ? c.get(CRYPTO_EXCHANGE_RATE_PROVIDER)
24
20
  : undefined,
@@ -37,7 +33,7 @@ export default {
37
33
  // every cross rate is computed through it, so a quote against it is always legitimate.
38
34
  const supported = [
39
35
  ...resolveDisplayCurrencies(platformConfig.displayCurrencies),
40
- resolvePivot(platformConfig),
36
+ resolveExchangeRatePivot(platformConfig.exchangeRate),
41
37
  ];
42
38
  return createExchangeRateRouter(new ExchangeRateService(c.get(EXCHANGE_RATE_READER), supported));
43
39
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/fx/exchange-rate/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACpB,eAAe,EACf,wBAAwB,GAEzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAEvF,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,uBAAuB,GAAG,EAAE,GAAG,MAAM,CAAC;AAC5C,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,SAAS,YAAY,CAAC,cAA8B;IAClD,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7E,CAAC;AAED,eAAe;IACb,EAAE,EAAE,eAAe;IACnB,QAAQ,CAAC,GAAG;QACV,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAmC,EAAE,EAAE;YACxE,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,kBAAkB,GAAG,cAAc,CAAC,YAAY,CAAC;YACvD,OAAO,IAAI,yBAAyB,CAAC;gBACnC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvB,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC;gBACnC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC;oBAClD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC;oBACtC,CAAC,CAAC,SAAS;gBACb,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC;oBAC9C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC;oBACpC,CAAC,CAAC,SAAS;gBACb,gBAAgB,EAAE,cAAc,CAAC,MAAM,EAAE,gBAAgB;gBACzD,UAAU,EAAE,kBAAkB,EAAE,UAAU,IAAI,oBAAoB;gBAClE,YAAY,EAAE,kBAAkB,EAAE,YAAY,IAAI,uBAAuB;gBACzE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,IAAI,2BAA2B;aACxF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;YACpC,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC9C,iFAAiF;YACjF,uFAAuF;YACvF,MAAM,SAAS,GAAG;gBAChB,GAAG,wBAAwB,CAAC,cAAc,CAAC,iBAAiB,CAAC;gBAC7D,YAAY,CAAC,cAAc,CAAC;aAC7B,CAAC;YACF,OAAO,wBAAwB,CAC7B,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CAC0C,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/fx/exchange-rate/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAEvF,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,uBAAuB,GAAG,EAAE,GAAG,MAAM,CAAC;AAC5C,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,eAAe;IACb,EAAE,EAAE,eAAe;IACnB,QAAQ,CAAC,GAAG;QACV,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAmC,EAAE,EAAE;YACxE,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,kBAAkB,GAAG,cAAc,CAAC,YAAY,CAAC;YACvD,OAAO,IAAI,yBAAyB,CAAC;gBACnC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvB,KAAK,EAAE,wBAAwB,CAAC,kBAAkB,CAAC;gBACnD,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC;oBAClD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC;oBACtC,CAAC,CAAC,SAAS;gBACb,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC;oBAC9C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC;oBACpC,CAAC,CAAC,SAAS;gBACb,gBAAgB,EAAE,cAAc,CAAC,MAAM,EAAE,gBAAgB;gBACzD,UAAU,EAAE,kBAAkB,EAAE,UAAU,IAAI,oBAAoB;gBAClE,YAAY,EAAE,kBAAkB,EAAE,YAAY,IAAI,uBAAuB;gBACzE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,IAAI,2BAA2B;aACxF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;YACpC,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC9C,iFAAiF;YACjF,uFAAuF;YACvF,MAAM,SAAS,GAAG;gBAChB,GAAG,wBAAwB,CAAC,cAAc,CAAC,iBAAiB,CAAC;gBAC7D,wBAAwB,CAAC,cAAc,CAAC,YAAY,CAAC;aACtD,CAAC;YACF,OAAO,wBAAwB,CAC7B,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CAC0C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"default-admin-roles.d.ts","sourceRoot":"","sources":["../../../../src/iam/seed/data/default-admin-roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI1F,KAAK,SAAS,GAAG,YAAY,CAAC;AAE9B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;CACrD,CAAC;AASF,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAiO1D,CAAC"}
1
+ {"version":3,"file":"default-admin-roles.d.ts","sourceRoot":"","sources":["../../../../src/iam/seed/data/default-admin-roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI1F,KAAK,SAAS,GAAG,YAAY,CAAC;AAE9B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;CACrD,CAAC;AASF,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAkO1D,CAAC"}
@@ -181,6 +181,7 @@ export const DEFAULT_ADMIN_ROLES = [
181
181
  audit: R,
182
182
  analytics: R,
183
183
  'wallet-asset': RW,
184
+ 'swap-config': RW,
184
185
  },
185
186
  },
186
187
  {
@@ -1 +1 @@
1
- {"version":3,"file":"default-admin-roles.js","sourceRoot":"","sources":["../../../../src/iam/seed/data/default-admin-roles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-admin-roles.js","sourceRoot":"","sources":["../../../../src/iam/seed/data/default-admin-roles.ts"],"names":[],"mappings":"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"}
@@ -64,7 +64,7 @@ export declare class IamService {
64
64
  private emitDenied;
65
65
  listCatalog(): {
66
66
  modules: {
67
- resource: "admin" | "player" | "transaction" | "game" | "content" | "compliance" | "report" | "withdrawal" | "bonus" | "audit" | "game-config" | "analytics" | "sportsbook" | "affiliate" | "sessions" | "player-note" | "tag-rule" | "tag" | "chat-room" | "auto-withdrawal-config" | "bonus-rollover-config" | "wallet-asset" | "wallet-custody" | "wallet-reconciliation" | "chat-command" | "chat-moderation";
67
+ resource: "admin" | "player" | "transaction" | "game" | "content" | "compliance" | "report" | "withdrawal" | "bonus" | "audit" | "game-config" | "analytics" | "sportsbook" | "affiliate" | "sessions" | "player-note" | "tag-rule" | "tag" | "chat-room" | "auto-withdrawal-config" | "bonus-rollover-config" | "wallet-asset" | "wallet-custody" | "wallet-reconciliation" | "swap-config" | "chat-command" | "chat-moderation";
68
68
  actions: string[];
69
69
  readActions: string[];
70
70
  }[];
@@ -23,6 +23,7 @@ export declare const statement: {
23
23
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
24
24
  readonly 'wallet-custody': readonly ["view", "run"];
25
25
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
26
+ readonly 'swap-config': readonly ["view", "update"];
26
27
  readonly 'chat-command': readonly ["view", "update"];
27
28
  readonly 'chat-moderation': readonly ["view", "moderate"];
28
29
  };
@@ -52,6 +53,7 @@ export declare const ac: {
52
53
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
53
54
  readonly 'wallet-custody': readonly ["view", "run"];
54
55
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
56
+ readonly 'swap-config': readonly ["view", "update"];
55
57
  readonly 'chat-command': readonly ["view", "update"];
56
58
  readonly 'chat-moderation': readonly ["view", "moderate"];
57
59
  }, TRoleStatements>): import("better-auth/plugins/access").Role<import("better-auth/plugins/access").ExactRoleStatements<TRoleStatements>, {
@@ -79,6 +81,7 @@ export declare const ac: {
79
81
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
80
82
  readonly 'wallet-custody': readonly ["view", "run"];
81
83
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
84
+ readonly 'swap-config': readonly ["view", "update"];
82
85
  readonly 'chat-command': readonly ["view", "update"];
83
86
  readonly 'chat-moderation': readonly ["view", "moderate"];
84
87
  }>;
@@ -107,6 +110,7 @@ export declare const ac: {
107
110
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
108
111
  readonly 'wallet-custody': readonly ["view", "run"];
109
112
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
113
+ readonly 'swap-config': readonly ["view", "update"];
110
114
  readonly 'chat-command': readonly ["view", "update"];
111
115
  readonly 'chat-moderation': readonly ["view", "moderate"];
112
116
  };
@@ -136,6 +140,7 @@ export declare const adminRole: import("better-auth/plugins/access").Role<import
136
140
  readonly 'wallet-asset': ["view", "create", "update", "delete"];
137
141
  readonly 'wallet-custody': ["view", "run"];
138
142
  readonly 'wallet-reconciliation': ["view", "resolve", "run"];
143
+ readonly 'swap-config': ["view", "update"];
139
144
  readonly 'chat-command': ["view", "update"];
140
145
  readonly 'chat-moderation': ["view", "moderate"];
141
146
  }>, {
@@ -163,6 +168,7 @@ export declare const adminRole: import("better-auth/plugins/access").Role<import
163
168
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
164
169
  readonly 'wallet-custody': readonly ["view", "run"];
165
170
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
171
+ readonly 'swap-config': readonly ["view", "update"];
166
172
  readonly 'chat-command': readonly ["view", "update"];
167
173
  readonly 'chat-moderation': readonly ["view", "moderate"];
168
174
  }>;
@@ -197,6 +203,7 @@ export declare const supportRole: import("better-auth/plugins/access").Role<impo
197
203
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
198
204
  readonly 'wallet-custody': readonly ["view", "run"];
199
205
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
206
+ readonly 'swap-config': readonly ["view", "update"];
200
207
  readonly 'chat-command': readonly ["view", "update"];
201
208
  readonly 'chat-moderation': readonly ["view", "moderate"];
202
209
  }>;
@@ -228,6 +235,7 @@ export declare const contentManagerRole: import("better-auth/plugins/access").Ro
228
235
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
229
236
  readonly 'wallet-custody': readonly ["view", "run"];
230
237
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
238
+ readonly 'swap-config': readonly ["view", "update"];
231
239
  readonly 'chat-command': readonly ["view", "update"];
232
240
  readonly 'chat-moderation': readonly ["view", "moderate"];
233
241
  }>;
@@ -257,6 +265,7 @@ export declare const roles: {
257
265
  readonly 'wallet-asset': ["view", "create", "update", "delete"];
258
266
  readonly 'wallet-custody': ["view", "run"];
259
267
  readonly 'wallet-reconciliation': ["view", "resolve", "run"];
268
+ readonly 'swap-config': ["view", "update"];
260
269
  readonly 'chat-command': ["view", "update"];
261
270
  readonly 'chat-moderation': ["view", "moderate"];
262
271
  }>, {
@@ -284,6 +293,7 @@ export declare const roles: {
284
293
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
285
294
  readonly 'wallet-custody': readonly ["view", "run"];
286
295
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
296
+ readonly 'swap-config': readonly ["view", "update"];
287
297
  readonly 'chat-command': readonly ["view", "update"];
288
298
  readonly 'chat-moderation': readonly ["view", "moderate"];
289
299
  }>;
@@ -318,6 +328,7 @@ export declare const roles: {
318
328
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
319
329
  readonly 'wallet-custody': readonly ["view", "run"];
320
330
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
331
+ readonly 'swap-config': readonly ["view", "update"];
321
332
  readonly 'chat-command': readonly ["view", "update"];
322
333
  readonly 'chat-moderation': readonly ["view", "moderate"];
323
334
  }>;
@@ -349,6 +360,7 @@ export declare const roles: {
349
360
  readonly 'wallet-asset': readonly ["view", "create", "update", "delete"];
350
361
  readonly 'wallet-custody': readonly ["view", "run"];
351
362
  readonly 'wallet-reconciliation': readonly ["view", "resolve", "run"];
363
+ readonly 'swap-config': readonly ["view", "update"];
352
364
  readonly 'chat-command': readonly ["view", "update"];
353
365
  readonly 'chat-moderation': readonly ["view", "moderate"];
354
366
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/server/auth/permissions.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiB,CAAC;AAExC,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiC,CAAC;AAEjD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BpB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMtB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIR,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,KAAK,CAAC;AAG1C,YAAY,EACV,aAAa,IAAI,YAAY,EAC7B,aAAa,IAAI,QAAQ,GAC1B,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/server/auth/permissions.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiB,CAAC;AAExC,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiC,CAAC;AAEjD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BpB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMtB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIR,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,KAAK,CAAC;AAG1C,YAAY,EACV,aAAa,IAAI,YAAY,EAC7B,aAAa,IAAI,QAAQ,GAC1B,MAAM,yBAAyB,CAAC"}
@@ -29,6 +29,7 @@ export const adminRole = ac.newRole({
29
29
  'wallet-asset': ['view', 'create', 'update', 'delete'],
30
30
  'wallet-custody': ['view', 'run'],
31
31
  'wallet-reconciliation': ['view', 'resolve', 'run'],
32
+ 'swap-config': ['view', 'update'],
32
33
  'chat-command': ['view', 'update'],
33
34
  'chat-moderation': ['view', 'moderate'],
34
35
  });
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/server/auth/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/server/auth/permissions.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect, vi, beforeAll, afterAll, beforeEach } from 'vitest';
2
- import { findOneOrThrow } from '@openora/core/server';
2
+ import { findOneOrThrow, moneyScaleBy } from '@openora/core/server';
3
3
  import { randomUUID } from 'node:crypto';
4
4
  import { eq, sql } from 'drizzle-orm';
5
5
  import { DEFAULT_PAYMENT_PROVIDER, } from '@openora/core/contracts';
@@ -20,7 +20,21 @@ const MIGRATION_DEFAULT_EXCLUDE_RISK_FLAGS = [
20
20
  'withdrawal_review',
21
21
  'multi_account',
22
22
  ];
23
- async function makeService({ autoWithdrawal, fiatThreshold, cryptoThreshold, excludeRiskFlags, skipConfigSeed = false, kycStatus = 'verified', directoryThrows = false, riskTags = [], } = {}) {
23
+ // USD per unit. One BTC at 1000 keeps a one-coin withdrawal under the 5000 large-amount
24
+ // heuristic, so the crypto cases below exercise the threshold rather than the heuristic.
25
+ const USD_PER_UNIT = { BTC: '1000', USDT: '1' };
26
+ function fixedRates() {
27
+ return mock({
28
+ convert: vi.fn(async (amount, from, to) => {
29
+ const perUnit = USD_PER_UNIT[from];
30
+ if (from === to) {
31
+ return amount;
32
+ }
33
+ return perUnit && to === 'USD' ? moneyScaleBy(amount, perUnit) : null;
34
+ }),
35
+ });
36
+ }
37
+ async function makeService({ autoWithdrawal, rates = fixedRates(), fiatThreshold, cryptoThreshold, excludeRiskFlags, skipConfigSeed = false, kycStatus = 'verified', directoryThrows = false, riskTags = [], } = {}) {
24
38
  if (autoWithdrawal && !skipConfigSeed) {
25
39
  await db.drizzle.db.insert(walletAutoWithdrawalConfig).values({
26
40
  singletonKey: 'global',
@@ -57,6 +71,7 @@ async function makeService({ autoWithdrawal, fiatThreshold, cryptoThreshold, exc
57
71
  identityReader: makeIdentityReader(),
58
72
  directory,
59
73
  platformConfig,
74
+ ...(rates === 'unbound' ? {} : { rates }),
60
75
  ...(riskTags === 'unbound'
61
76
  ? {}
62
77
  : {
@@ -110,6 +125,7 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
110
125
  reviewedBy: null,
111
126
  reviewReason: 'auto-approved',
112
127
  providerName: DEFAULT_PAYMENT_PROVIDER,
128
+ autoApprovalPivotAmount: '40.000000000000000000',
113
129
  });
114
130
  expect(events.emit.mock.calls.map(([topic]) => topic)).toEqual([
115
131
  'wallet.withdrawal.requested',
@@ -124,6 +140,8 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
124
140
  threshold: '1000.000000000000000000',
125
141
  thresholdSource: 'global',
126
142
  kycStatus: 'verified',
143
+ pivotAmount: '40',
144
+ pivotCurrency: 'USD',
127
145
  cumulativeCountUsed: 0,
128
146
  }),
129
147
  }));
@@ -458,6 +476,21 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
458
476
  });
459
477
  expect(result.status).toBe('completed');
460
478
  });
479
+ it('auto-approves a withdrawal already in the pivot without the fx module', async () => {
480
+ const { svc } = await makeService({
481
+ autoWithdrawal: {},
482
+ fiatThreshold: '1000',
483
+ rates: 'unbound',
484
+ });
485
+ const w = await seedWallet();
486
+ const result = await svc.withdraw({
487
+ userId: w.userId,
488
+ amount: '40',
489
+ currency: 'USD',
490
+ ...NO_CLIENT_META,
491
+ });
492
+ expect(result.status).toBe('completed');
493
+ });
461
494
  it('stays pending when a configured daily count cap would be exceeded', async () => {
462
495
  const { svc } = await makeService({
463
496
  autoWithdrawal: { dailyCapCount: 1 },
@@ -493,6 +526,29 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
493
526
  currency: 'USD',
494
527
  status: 'completed',
495
528
  reviewReason: 'auto-approved',
529
+ autoApprovalPivotAmount: '20',
530
+ });
531
+ const result = await svc.withdraw({
532
+ userId: w.userId,
533
+ amount: '40',
534
+ currency: 'USD',
535
+ ...NO_CLIENT_META,
536
+ });
537
+ expect(result.status).toBe('pending');
538
+ });
539
+ it('stays pending when a trailing auto-approval has no stored pivot value to sum', async () => {
540
+ const { svc } = await makeService({
541
+ autoWithdrawal: { dailyCapAmount: '1000' },
542
+ fiatThreshold: '1000',
543
+ });
544
+ const w = await seedWallet();
545
+ await db.drizzle.db.insert(walletTransaction).values({
546
+ walletId: w.id,
547
+ type: 'withdrawal',
548
+ amount: '1',
549
+ currency: 'USD',
550
+ status: 'completed',
551
+ reviewReason: 'auto-approved',
496
552
  });
497
553
  const result = await svc.withdraw({
498
554
  userId: w.userId,
@@ -552,7 +608,7 @@ describe('WalletService.withdraw auto-approval - crypto rail (real PG)', () => {
552
608
  expect(result.status).toBe('pending');
553
609
  });
554
610
  it('auto-approves once an operator configures a positive cryptoThreshold', async () => {
555
- const { svc } = await makeService({ autoWithdrawal: {}, cryptoThreshold: '2' });
611
+ const { svc } = await makeService({ autoWithdrawal: {}, cryptoThreshold: '2000' });
556
612
  const w = await seedWallet({ currency: 'BTC', balance: '10' });
557
613
  const result = await svc.withdraw({
558
614
  userId: w.userId,
@@ -569,7 +625,35 @@ describe('WalletService.withdraw auto-approval - crypto rail (real PG)', () => {
569
625
  });
570
626
  });
571
627
  it('stays pending when the crypto amount exceeds cryptoThreshold', async () => {
572
- const { svc } = await makeService({ autoWithdrawal: {}, cryptoThreshold: '0.5' });
628
+ const { svc } = await makeService({ autoWithdrawal: {}, cryptoThreshold: '500' });
629
+ const w = await seedWallet({ currency: 'BTC', balance: '10' });
630
+ const result = await svc.withdraw({
631
+ userId: w.userId,
632
+ amount: '1',
633
+ currency: 'BTC',
634
+ destinationAddress: 'bc1qexample',
635
+ ...NO_CLIENT_META,
636
+ });
637
+ expect(result.status).toBe('pending');
638
+ });
639
+ it('judges a crypto withdrawal by its pivot value, not its raw amount', async () => {
640
+ const { svc } = await makeService({ autoWithdrawal: {}, cryptoThreshold: '1000' });
641
+ const w = await seedWallet({ currency: 'BTC', balance: '10' });
642
+ const result = await svc.withdraw({
643
+ userId: w.userId,
644
+ amount: '2',
645
+ currency: 'BTC',
646
+ destinationAddress: 'bc1qexample',
647
+ ...NO_CLIENT_META,
648
+ });
649
+ expect(result.status).toBe('pending');
650
+ });
651
+ it('stays pending when there is no rate to value the withdrawal in the pivot', async () => {
652
+ const { svc } = await makeService({
653
+ autoWithdrawal: {},
654
+ cryptoThreshold: '100000',
655
+ rates: 'unbound',
656
+ });
573
657
  const w = await seedWallet({ currency: 'BTC', balance: '10' });
574
658
  const result = await svc.withdraw({
575
659
  userId: w.userId,
@@ -580,10 +664,51 @@ describe('WalletService.withdraw auto-approval - crypto rail (real PG)', () => {
580
664
  });
581
665
  expect(result.status).toBe('pending');
582
666
  });
667
+ it('stays pending when the bound reader has no rate for the currency', async () => {
668
+ const { svc } = await makeService({
669
+ autoWithdrawal: {},
670
+ fiatThreshold: '100000',
671
+ cryptoThreshold: '100000',
672
+ });
673
+ const w = await seedWallet({ currency: 'ETH', balance: '10' });
674
+ const result = await svc.withdraw({
675
+ userId: w.userId,
676
+ amount: '1',
677
+ currency: 'ETH',
678
+ destinationAddress: '0xexample',
679
+ ...NO_CLIENT_META,
680
+ });
681
+ expect(result.status).toBe('pending');
682
+ });
683
+ it('caps on the pivot value a past payout was approved at, not its value at the current rate', async () => {
684
+ const { svc } = await makeService({
685
+ autoWithdrawal: { dailyCapAmount: '1500' },
686
+ cryptoThreshold: '2000',
687
+ });
688
+ const w = await seedWallet({ currency: 'BTC', balance: '10' });
689
+ // Approved when BTC was 1400; at today's 1000 the same payout would leave room for 0.2 BTC.
690
+ await db.drizzle.db.insert(walletTransaction).values({
691
+ walletId: w.id,
692
+ type: 'withdrawal',
693
+ amount: '1',
694
+ currency: 'BTC',
695
+ status: 'completed',
696
+ reviewReason: 'auto-approved',
697
+ autoApprovalPivotAmount: '1400',
698
+ });
699
+ const result = await svc.withdraw({
700
+ userId: w.userId,
701
+ amount: '0.2',
702
+ currency: 'BTC',
703
+ destinationAddress: 'bc1qexample',
704
+ ...NO_CLIENT_META,
705
+ });
706
+ expect(result.status).toBe('pending');
707
+ });
583
708
  it('applies the same KYC guard as the fiat rail', async () => {
584
709
  const { svc } = await makeService({
585
710
  autoWithdrawal: {},
586
- cryptoThreshold: '2',
711
+ cryptoThreshold: '2000',
587
712
  kycStatus: 'rejected',
588
713
  });
589
714
  const w = await seedWallet({ currency: 'BTC', balance: '10' });
@@ -657,11 +782,11 @@ describe('WalletService auto-approval threshold resolution (real PG)', () => {
657
782
  expect(result.status).toBe('pending');
658
783
  });
659
784
  it('a per-player rule overrides the crypto threshold too', async () => {
660
- const { svc } = await makeService({ autoWithdrawal: {}, cryptoThreshold: '0.5' });
785
+ const { svc } = await makeService({ autoWithdrawal: {}, cryptoThreshold: '500' });
661
786
  const w = await seedWallet({ currency: 'BTC', balance: '10' });
662
787
  await svc.setAutoWithdrawalRule({
663
788
  userId: w.userId,
664
- threshold: '5',
789
+ threshold: '2000',
665
790
  reason: 'trusted',
666
791
  createdBy: randomUUID(),
667
792
  });