@xyo-network/chain-reward-redemption 1.15.10

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 (120) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +96 -0
  3. package/dist/node/index.d.ts +2 -0
  4. package/dist/node/index.d.ts.map +1 -0
  5. package/dist/node/index.mjs +461 -0
  6. package/dist/node/index.mjs.map +1 -0
  7. package/dist/node/manifest/getLocator.d.ts +14 -0
  8. package/dist/node/manifest/getLocator.d.ts.map +1 -0
  9. package/dist/node/manifest/getNode.d.ts +15 -0
  10. package/dist/node/manifest/getNode.d.ts.map +1 -0
  11. package/dist/node/manifest/index.d.ts +6 -0
  12. package/dist/node/manifest/index.d.ts.map +1 -0
  13. package/dist/node/manifest/nodeManifest.d.ts +6 -0
  14. package/dist/node/manifest/nodeManifest.d.ts.map +1 -0
  15. package/dist/node/manifest/private/index.d.ts +5 -0
  16. package/dist/node/manifest/private/index.d.ts.map +1 -0
  17. package/dist/node/manifest/public/index.d.ts +6 -0
  18. package/dist/node/manifest/public/index.d.ts.map +1 -0
  19. package/dist/node/server/app.d.ts +4 -0
  20. package/dist/node/server/app.d.ts.map +1 -0
  21. package/dist/node/server/index.d.ts +11 -0
  22. package/dist/node/server/index.d.ts.map +1 -0
  23. package/dist/node/server/instrumentation.d.ts +9 -0
  24. package/dist/node/server/instrumentation.d.ts.map +1 -0
  25. package/dist/node/server/routes/addRoutes.d.ts +3 -0
  26. package/dist/node/server/routes/addRoutes.d.ts.map +1 -0
  27. package/dist/node/server/routes/address/AddressPathParams.d.ts +4 -0
  28. package/dist/node/server/routes/address/AddressPathParams.d.ts.map +1 -0
  29. package/dist/node/server/routes/address/addNodeRoutes.d.ts +3 -0
  30. package/dist/node/server/routes/address/addNodeRoutes.d.ts.map +1 -0
  31. package/dist/node/server/routes/address/get/get.d.ts +4 -0
  32. package/dist/node/server/routes/address/get/get.d.ts.map +1 -0
  33. package/dist/node/server/routes/address/get/index.d.ts +2 -0
  34. package/dist/node/server/routes/address/get/index.d.ts.map +1 -0
  35. package/dist/node/server/routes/address/index.d.ts +2 -0
  36. package/dist/node/server/routes/address/index.d.ts.map +1 -0
  37. package/dist/node/server/routes/address/post/getQueryConfig.d.ts +6 -0
  38. package/dist/node/server/routes/address/post/getQueryConfig.d.ts.map +1 -0
  39. package/dist/node/server/routes/address/post/index.d.ts +2 -0
  40. package/dist/node/server/routes/address/post/index.d.ts.map +1 -0
  41. package/dist/node/server/routes/address/post/post.d.ts +8 -0
  42. package/dist/node/server/routes/address/post/post.d.ts.map +1 -0
  43. package/dist/node/server/routes/dataLake/addDataLakeRoutes.d.ts +3 -0
  44. package/dist/node/server/routes/dataLake/addDataLakeRoutes.d.ts.map +1 -0
  45. package/dist/node/server/routes/dataLake/archivistMiddleware.d.ts +10 -0
  46. package/dist/node/server/routes/dataLake/archivistMiddleware.d.ts.map +1 -0
  47. package/dist/node/server/routes/dataLake/index.d.ts +2 -0
  48. package/dist/node/server/routes/dataLake/index.d.ts.map +1 -0
  49. package/dist/node/server/routes/healthz/get.d.ts +4 -0
  50. package/dist/node/server/routes/healthz/get.d.ts.map +1 -0
  51. package/dist/node/server/routes/healthz/index.d.ts +2 -0
  52. package/dist/node/server/routes/healthz/index.d.ts.map +1 -0
  53. package/dist/node/server/routes/index.d.ts +4 -0
  54. package/dist/node/server/routes/index.d.ts.map +1 -0
  55. package/dist/node/server/routes/rewardRedemption/addRewardRoutes.d.ts +3 -0
  56. package/dist/node/server/routes/rewardRedemption/addRewardRoutes.d.ts.map +1 -0
  57. package/dist/node/server/routes/rewardRedemption/index.d.ts +2 -0
  58. package/dist/node/server/routes/rewardRedemption/index.d.ts.map +1 -0
  59. package/dist/node/server/routes/rewardRedemption/middleware/index.d.ts +2 -0
  60. package/dist/node/server/routes/rewardRedemption/middleware/index.d.ts.map +1 -0
  61. package/dist/node/server/routes/rewardRedemption/middleware/requestHandlerValidator.d.ts +32 -0
  62. package/dist/node/server/routes/rewardRedemption/middleware/requestHandlerValidator.d.ts.map +1 -0
  63. package/dist/node/server/routes/rewardRedemption/routeDefinitions/getRouteDefinitions.d.ts +3 -0
  64. package/dist/node/server/routes/rewardRedemption/routeDefinitions/getRouteDefinitions.d.ts.map +1 -0
  65. package/dist/node/server/routes/rewardRedemption/routeDefinitions/index.d.ts +2 -0
  66. package/dist/node/server/routes/rewardRedemption/routeDefinitions/index.d.ts.map +1 -0
  67. package/dist/node/server/routes/rewardRedemption/routeDefinitions/pathParams/AddressPathParam.d.ts +2 -0
  68. package/dist/node/server/routes/rewardRedemption/routeDefinitions/pathParams/AddressPathParam.d.ts.map +1 -0
  69. package/dist/node/server/routes/rewardRedemption/routeDefinitions/pathParams/index.d.ts +2 -0
  70. package/dist/node/server/routes/rewardRedemption/routeDefinitions/pathParams/index.d.ts.map +1 -0
  71. package/dist/node/server/routes/rewardRedemption/routeDefinitions/routeDefinition.d.ts +8 -0
  72. package/dist/node/server/routes/rewardRedemption/routeDefinitions/routeDefinition.d.ts.map +1 -0
  73. package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/claim.d.ts +3 -0
  74. package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/claim.d.ts.map +1 -0
  75. package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/index.d.ts +3 -0
  76. package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/index.d.ts.map +1 -0
  77. package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/redeem.d.ts +3 -0
  78. package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/redeem.d.ts.map +1 -0
  79. package/dist/node/server/server.d.ts +11 -0
  80. package/dist/node/server/server.d.ts.map +1 -0
  81. package/package.json +137 -0
  82. package/src/index.ts +1 -0
  83. package/src/manifest/getLocator.ts +75 -0
  84. package/src/manifest/getNode.ts +32 -0
  85. package/src/manifest/index.ts +5 -0
  86. package/src/manifest/node.json +32 -0
  87. package/src/manifest/nodeManifest.ts +8 -0
  88. package/src/manifest/private/index.ts +4 -0
  89. package/src/manifest/public/index.ts +6 -0
  90. package/src/server/app.ts +30 -0
  91. package/src/server/index.ts +13 -0
  92. package/src/server/instrumentation.ts +15 -0
  93. package/src/server/routes/addRoutes.ts +9 -0
  94. package/src/server/routes/address/AddressPathParams.ts +3 -0
  95. package/src/server/routes/address/addNodeRoutes.ts +21 -0
  96. package/src/server/routes/address/get/get.ts +33 -0
  97. package/src/server/routes/address/get/index.ts +1 -0
  98. package/src/server/routes/address/index.ts +1 -0
  99. package/src/server/routes/address/post/getQueryConfig.ts +23 -0
  100. package/src/server/routes/address/post/index.ts +1 -0
  101. package/src/server/routes/address/post/post.ts +77 -0
  102. package/src/server/routes/dataLake/addDataLakeRoutes.ts +9 -0
  103. package/src/server/routes/dataLake/archivistMiddleware.ts +86 -0
  104. package/src/server/routes/dataLake/index.ts +1 -0
  105. package/src/server/routes/healthz/get.ts +20 -0
  106. package/src/server/routes/healthz/index.ts +1 -0
  107. package/src/server/routes/index.ts +3 -0
  108. package/src/server/routes/rewardRedemption/addRewardRoutes.ts +10 -0
  109. package/src/server/routes/rewardRedemption/index.ts +1 -0
  110. package/src/server/routes/rewardRedemption/middleware/index.ts +1 -0
  111. package/src/server/routes/rewardRedemption/middleware/requestHandlerValidator.ts +120 -0
  112. package/src/server/routes/rewardRedemption/routeDefinitions/getRouteDefinitions.ts +9 -0
  113. package/src/server/routes/rewardRedemption/routeDefinitions/index.ts +1 -0
  114. package/src/server/routes/rewardRedemption/routeDefinitions/pathParams/AddressPathParam.ts +1 -0
  115. package/src/server/routes/rewardRedemption/routeDefinitions/pathParams/index.ts +1 -0
  116. package/src/server/routes/rewardRedemption/routeDefinitions/routeDefinition.ts +18 -0
  117. package/src/server/routes/rewardRedemption/routeDefinitions/routes/claim.ts +31 -0
  118. package/src/server/routes/rewardRedemption/routeDefinitions/routes/index.ts +2 -0
  119. package/src/server/routes/rewardRedemption/routeDefinitions/routes/redeem.ts +26 -0
  120. package/src/server/server.ts +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,OAAO,CAAC;QAChB,UAAU,WAAW;YACnB,IAAI,EAAE,YAAY,CAAA;SACnB;KACF;CACF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Registers OpenTelemetry instrumentations for HTTP and Express.
3
+ * This function is used to set up the necessary instrumentations for monitoring
4
+ * HTTP requests and Express applications. Since it monkey patches the Express
5
+ * router & middleware system, it should be called before any Express applications
6
+ * are defined.
7
+ */
8
+ export declare const addInstrumentation: () => void;
9
+ //# sourceMappingURL=instrumentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/server/instrumentation.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,YAG9B,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Express } from 'express';
2
+ export declare const addRoutes: (app: Express) => void;
3
+ //# sourceMappingURL=addRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addRoutes.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/addRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAKtC,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,SAGrC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export type AddressPathParams = {
2
+ address: string;
3
+ };
4
+ //# sourceMappingURL=AddressPathParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddressPathParams.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/address/AddressPathParams.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Express } from 'express';
2
+ export declare const addNodeRoutes: (app: Express) => void;
3
+ //# sourceMappingURL=addNodeRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addNodeRoutes.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/address/addNodeRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAMtC,eAAO,MAAM,aAAa,GAAI,KAAK,OAAO,SAczC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Payload } from '@xyo-network/payload-model';
2
+ import type { AddressPathParams } from '../AddressPathParams.ts';
3
+ export declare const getAddress: (req: import("express").Request<AddressPathParams, Payload[], any, import("qs").ParsedQs, Record<string, any>>, res: import("express").Response<Payload[], Record<string, any>>, next: import("express").NextFunction) => Promise<unknown>;
4
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/address/get/get.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAwBhE,eAAO,MAAM,UAAU,4OAAwB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './get.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/address/get/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './addNodeRoutes.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/address/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { QueryBoundWitness } from '@xyo-network/boundwitness-model';
2
+ import type { ModuleConfig, ModuleInstance } from '@xyo-network/module-model';
3
+ import type { Payload } from '@xyo-network/payload-model';
4
+ import type { Request } from 'express';
5
+ export declare const getQueryConfig: (mod: ModuleInstance, req: Request, bw: QueryBoundWitness, payloads?: Payload[]) => ModuleConfig | undefined;
6
+ //# sourceMappingURL=getQueryConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getQueryConfig.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/address/post/getQueryConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,eAAO,MAAM,cAAc,GAAI,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,IAAI,iBAAiB,EAAE,WAAW,OAAO,EAAE,KAAG,YAAY,GAAG,SAa9H,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './post.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/address/post/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { type QueryBoundWitness } from '@xyo-network/boundwitness-model';
2
+ import type { ModuleQueryResult } from '@xyo-network/module-model';
3
+ import type { ModuleError, Payload } from '@xyo-network/payload-model';
4
+ import type { AddressPathParams } from '../AddressPathParams.ts';
5
+ type PostAddressRequestBody = [QueryBoundWitness, undefined | Payload[]];
6
+ export declare const postAddress: (req: import("express").Request<AddressPathParams, ModuleError | ModuleQueryResult, PostAddressRequestBody, import("qs").ParsedQs, Record<string, any>>, res: import("express").Response<ModuleError | ModuleQueryResult, Record<string, any>>, next: import("express").NextFunction) => Promise<unknown>;
7
+ export {};
8
+ //# sourceMappingURL=post.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/address/post/post.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAE7F,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAItE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAGhE,KAAK,sBAAsB,GAAG,CAAC,iBAAiB,EAAE,SAAS,GAAG,OAAO,EAAE,CAAC,CAAA;AA2DxE,eAAO,MAAM,WAAW,2SAAwB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Express } from 'express';
2
+ export declare const addDataLakeRoutes: (app: Express) => void;
3
+ //# sourceMappingURL=addDataLakeRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addDataLakeRoutes.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/dataLake/addDataLakeRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,eAAO,MAAM,iBAAiB,GAAI,KAAK,OAAO,SAI7C,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { ModuleIdentifier } from '@xyo-network/module-model';
2
+ import type { NodeInstance } from '@xyo-network/node-model';
3
+ import type { Router } from 'express';
4
+ type ArchivistMiddlewareOptions = {
5
+ archivistModuleIdentifier: ModuleIdentifier;
6
+ node: NodeInstance;
7
+ };
8
+ export declare const archivistMiddleware: (options: ArchivistMiddlewareOptions) => Router;
9
+ export {};
10
+ //# sourceMappingURL=archivistMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archivistMiddleware.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/dataLake/archivistMiddleware.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAI3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAiBrC,KAAK,0BAA0B,GAAG;IAChC,yBAAyB,EAAE,gBAAgB,CAAA;IAC3C,IAAI,EAAE,YAAY,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS,0BAA0B,KAAG,MAkDzE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './addDataLakeRoutes.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/dataLake/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { NoReqParams } from '@xylabs/express';
2
+ import type { RequestHandler } from 'express';
3
+ export declare const getHealthz: RequestHandler<NoReqParams>;
4
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/healthz/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAiB7C,eAAO,MAAM,UAAU,EAAE,cAAc,CAAC,WAAW,CAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './get.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/healthz/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './address/index.ts';
2
+ export * from './addRoutes.ts';
3
+ export * from './healthz/index.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Express } from 'express';
2
+ export declare const addRewardRedemptionRoutes: (app: Express) => void;
3
+ //# sourceMappingURL=addRewardRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addRewardRoutes.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/rewardRedemption/addRewardRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,eAAO,MAAM,yBAAyB,GAAI,KAAK,OAAO,SAKrD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './addRewardRoutes.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/rewardRedemption/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './requestHandlerValidator.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/rewardRedemption/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA"}
@@ -0,0 +1,32 @@
1
+ import type { NextFunction, Request, RequestHandler, Response } from 'express';
2
+ import type { ZodType } from 'zod';
3
+ import { z } from 'zod';
4
+ /**
5
+ * Empty Zod schema for requests with no parameters.
6
+ */
7
+ export declare const EmptyParamsZod: z.ZodObject<{}, z.core.$catchall<z.ZodString>>;
8
+ /**
9
+ * Empty Zod schema for requests with no query parameters.
10
+ */
11
+ export declare const EmptyQueryParamsZod: z.ZodObject<{}, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
12
+ /**
13
+ * Default validation schemas for request handler validator.
14
+ */
15
+ export declare const ValidateRequestDefaults: {
16
+ params: z.ZodObject<{}, z.core.$catchall<z.ZodString>>;
17
+ query: z.ZodObject<{}, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
18
+ body: z.ZodJSONSchema;
19
+ response: z.ZodJSONSchema;
20
+ };
21
+ /**
22
+ * Factory for Express middleware that validates request and response objects using Zod schemas.
23
+ * @param schemas The Zod schemas to use for validation.
24
+ * @returns A middleware function for validating requests and responses.
25
+ */
26
+ export declare function requestHandlerValidator<TParams extends typeof EmptyQueryParamsZod | ZodType<Record<string, string>> = typeof EmptyQueryParamsZod, TQuery extends typeof EmptyQueryParamsZod | ZodType<Record<string, string | string[]>> = typeof EmptyQueryParamsZod, TBody extends ZodType<unknown> = ZodType<unknown>, TResponse extends ZodType<unknown> = ZodType<unknown>>(schemas?: Partial<{
27
+ body: TBody;
28
+ params: TParams;
29
+ query: TQuery;
30
+ response: TResponse;
31
+ }>): (handler: (req: Request<z.core.output<TParams>, z.core.output<TResponse>, z.core.output<TBody>, z.core.output<TQuery>>, res: Response<z.core.output<TResponse>>, next: NextFunction) => unknown) => RequestHandler;
32
+ //# sourceMappingURL=requestHandlerValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestHandlerValidator.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/rewardRedemption/middleware/requestHandlerValidator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAChD,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;GAEG;AACH,eAAO,MAAM,cAAc,gDAAoC,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,mBAAmB,gGAAoE,CAAA;AAEpG;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;CAKnC,CAAA;AAID;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,OAAO,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,mBAAmB,EACzG,MAAM,SAAS,OAAO,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,mBAAmB,EACnH,KAAK,SAAS,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,EACjD,SAAS,SAAS,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,EACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAC,IAOQ,SAAS,CAAC,GAAG,EAAE,OAAO,+FAA0B,EAAE,GAAG,EAAE,QAAQ,0BAAK,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,KAAG,cAAc,CAiE9H"}
@@ -0,0 +1,3 @@
1
+ import type { RouteDefinition } from './routeDefinition.ts';
2
+ export declare const getRouteDefinitions: () => RouteDefinition[];
3
+ //# sourceMappingURL=getRouteDefinitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRouteDefinitions.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/rewardRedemption/routeDefinitions/getRouteDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAG3D,eAAO,MAAM,mBAAmB,QAAO,eAAe,EAKrD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './getRouteDefinitions.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/rewardRedemption/routeDefinitions/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { EthAddressFromStringZod as AddressPathParam } from '@xylabs/hex';
2
+ //# sourceMappingURL=AddressPathParam.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddressPathParam.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/rewardRedemption/routeDefinitions/pathParams/AddressPathParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './AddressPathParam.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/rewardRedemption/routeDefinitions/pathParams/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { RequestHandler } from 'express';
2
+ export type HttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete' | 'options' | 'head';
3
+ export interface RouteDefinition<H extends RequestHandler = RequestHandler> {
4
+ handlers: H[] | H;
5
+ method: HttpMethod;
6
+ path: string | RegExp;
7
+ }
8
+ //# sourceMappingURL=routeDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeDefinition.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/rewardRedemption/routeDefinitions/routeDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,MAAM,MAAM,UAAU,GAChB,KAAK,GACL,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,CAAA;AAEZ,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,cAAc,GAAG,cAAc;IAEzC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IACjB,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB"}
@@ -0,0 +1,3 @@
1
+ import type { RouteDefinition } from '../routeDefinition.ts';
2
+ export declare const postClaim: RouteDefinition;
3
+ //# sourceMappingURL=claim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/rewardRedemption/routeDefinitions/routes/claim.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAa5D,eAAO,MAAM,SAAS,EAAE,eAYvB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './claim.ts';
2
+ export * from './redeem.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/rewardRedemption/routeDefinitions/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { RouteDefinition } from '../routeDefinition.ts';
2
+ export declare const postRedeem: RouteDefinition;
3
+ //# sourceMappingURL=redeem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redeem.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/rewardRedemption/routeDefinitions/routes/redeem.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAW5D,eAAO,MAAM,UAAU,EAAE,eASxB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { Logger } from '@xylabs/logger';
2
+ import type { NodeInstance } from '@xyo-network/node-model';
3
+ import { type Config } from '@xyo-network/xl1-protocol-sdk';
4
+ interface GetServerContext {
5
+ config: Config;
6
+ logger?: Logger;
7
+ node?: NodeInstance;
8
+ }
9
+ export declare const getServer: (context: GetServerContext) => Promise<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>>;
10
+ export {};
11
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAI5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAA;AA8B3D,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,eAAO,MAAM,SAAS,GAAU,SAAS,gBAAgB,gHAcxD,CAAA"}
package/package.json ADDED
@@ -0,0 +1,137 @@
1
+ {
2
+ "name": "@xyo-network/chain-reward-redemption",
3
+ "version": "1.15.10",
4
+ "description": "XYO Layer One Rewards",
5
+ "homepage": "https://xylabs.com",
6
+ "bugs": {
7
+ "url": "git+https://github.com/xylabs/xyo-chain/issues",
8
+ "email": "support@xylabs.com"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/xylabs/xyo-chain.git"
13
+ },
14
+ "license": "LGPL-3.0-only",
15
+ "author": {
16
+ "name": "XY Labs Development Team",
17
+ "email": "support@xylabs.com",
18
+ "url": "https://xylabs.com"
19
+ },
20
+ "sideEffects": false,
21
+ "type": "module",
22
+ "exports": {
23
+ ".": {
24
+ "types": "./dist/node/index.d.ts",
25
+ "source": "./src/index.ts",
26
+ "default": "./dist/node/index.mjs"
27
+ },
28
+ "./package.json": "./package.json",
29
+ "./README.md": "./README.md"
30
+ },
31
+ "module": "./dist/node/index.mjs",
32
+ "source": "./src/index.ts",
33
+ "types": "./dist/node/index.d.ts",
34
+ "files": [
35
+ "dist",
36
+ "src"
37
+ ],
38
+ "scripts": {
39
+ "build-tests": "tsc --noEmit --lib dom,esnext",
40
+ "deploy": "echo Deploy not allowed!",
41
+ "deploy3": "echo Deploy3 not allowed!",
42
+ "start": "nodemon",
43
+ "start-esm": "node ./dist/node/index.mjs",
44
+ "test": "vitest run",
45
+ "test:ci": "vitest run",
46
+ "types": "tsc --noEmit -p tsconfig.test.json"
47
+ },
48
+ "dependencies": {
49
+ "@opentelemetry/instrumentation": "~0.207.0",
50
+ "@opentelemetry/instrumentation-express": "~0.56.0",
51
+ "@opentelemetry/instrumentation-http": "~0.207.0",
52
+ "@xylabs/assert": "~5.0.12",
53
+ "@xylabs/creatable": "~5.0.12",
54
+ "@xylabs/express": "~5.0.12",
55
+ "@xylabs/hex": "~5.0.12",
56
+ "@xylabs/logger": "~5.0.12",
57
+ "@xylabs/mongo": "~5.0.12",
58
+ "@xylabs/typeof": "~5.0.12",
59
+ "@xyo-network/archivist-memory": "~5.1.6",
60
+ "@xyo-network/archivist-model": "~5.1.6",
61
+ "@xyo-network/archivist-mongodb": "~5.1.6",
62
+ "@xyo-network/archivist-view": "~5.1.6",
63
+ "@xyo-network/bios": "~7.1.1",
64
+ "@xyo-network/boundwitness-model": "~5.1.6",
65
+ "@xyo-network/chain-modules": "~1.15.10",
66
+ "@xyo-network/chain-protocol": "~1.15.10",
67
+ "@xyo-network/chain-telemetry": "~1.15.10",
68
+ "@xyo-network/manifest-model": "~5.1.6",
69
+ "@xyo-network/manifest-wrapper": "~5.1.6",
70
+ "@xyo-network/module-abstract": "~5.1.6",
71
+ "@xyo-network/module-factory-locator": "~5.1.6",
72
+ "@xyo-network/module-model": "~5.1.6",
73
+ "@xyo-network/node-model": "~5.1.6",
74
+ "@xyo-network/payload-builder": "~5.1.6",
75
+ "@xyo-network/payload-model": "~5.1.6",
76
+ "@xyo-network/sentinel-memory": "~5.1.6",
77
+ "@xyo-network/typechain": "~4.0.10",
78
+ "@xyo-network/wallet": "~5.1.6",
79
+ "@xyo-network/wallet-model": "~5.1.6",
80
+ "@xyo-network/xl1-protocol": "~1.12.81",
81
+ "@xyo-network/xl1-protocol-sdk": "~1.15.10",
82
+ "compression": "~1.8.1",
83
+ "cors": "~2.8.5",
84
+ "express": "~5.1.0",
85
+ "http-status-codes": "~2.3.0",
86
+ "mongodb": "~6.20.0",
87
+ "rxjs": "~7.8.2",
88
+ "uuid": "~13.0.0",
89
+ "zod": "~4.1.12"
90
+ },
91
+ "devDependencies": {
92
+ "@types/compression": "~1.8.1",
93
+ "@types/cors": "~2.8.19",
94
+ "@types/express": "5.0.3",
95
+ "@types/express-serve-static-core": "~5.1.0",
96
+ "@types/node": "~24.9.1",
97
+ "@xylabs/base": "~5.0.12",
98
+ "@xylabs/delay": "~5.0.12",
99
+ "@xylabs/object": "~5.0.12",
100
+ "@xylabs/promise": "~5.0.12",
101
+ "@xylabs/ts-scripts-yarn3": "~7.1.8",
102
+ "@xylabs/tsconfig": "~7.1.8",
103
+ "@xyo-network/account": "~5.1.6",
104
+ "@xyo-network/account-model": "~5.1.6",
105
+ "@xyo-network/archivist-abstract": "~5.1.6",
106
+ "@xyo-network/archivist-memory": "~5.1.6",
107
+ "@xyo-network/archivist-mongodb": "~5.1.6",
108
+ "@xyo-network/bios-model": "~7.1.1",
109
+ "@xyo-network/boundwitness-builder": "~5.1.6",
110
+ "@xyo-network/chain-protocol": "~1.15.10",
111
+ "@xyo-network/chain-services": "~1.15.10",
112
+ "@xyo-network/manifest-wrapper": "~5.1.6",
113
+ "@xyo-network/module-abstract": "~5.1.6",
114
+ "@xyo-network/module-abstract-mongodb": "~5.1.6",
115
+ "@xyo-network/module-model-mongodb": "~5.1.6",
116
+ "@xyo-network/node-memory": "~5.1.6",
117
+ "@xyo-network/payload-builder": "~5.1.6",
118
+ "@xyo-network/sentinel-memory": "~5.1.6",
119
+ "@xyo-network/xl1-protocol": "~1.12.81",
120
+ "dotenv": "~17.2.3",
121
+ "eslint": "^9.38.0",
122
+ "ethers": "~6.15.0",
123
+ "http-status-codes": "~2.3.0",
124
+ "nodemon": "~3.1.10",
125
+ "tslib": "~2.8.1",
126
+ "typescript": "~5.9.3",
127
+ "vitest": "~3.2.4",
128
+ "vitest-mock-extended": "~3.1.0"
129
+ },
130
+ "engines": {
131
+ "node": ">=22.3 <23"
132
+ },
133
+ "engineStrict": true,
134
+ "publishConfig": {
135
+ "access": "restricted"
136
+ }
137
+ }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './server/index.ts'
@@ -0,0 +1,75 @@
1
+ import type { Logger } from '@xylabs/logger'
2
+ import { type BaseMongoSdkPrivateConfig } from '@xylabs/mongo'
3
+ import { isDefined } from '@xylabs/typeof'
4
+ import { MemoryArchivist } from '@xyo-network/archivist-memory'
5
+ import { MongoDBArchivistV2 } from '@xyo-network/archivist-mongodb'
6
+ import { ViewArchivist } from '@xyo-network/archivist-view'
7
+ import { ArchivistSyncDiviner } from '@xyo-network/chain-modules'
8
+ import { initTelemetry } from '@xyo-network/chain-telemetry'
9
+ import { AbstractModule, LoggerModuleStatusReporter } from '@xyo-network/module-abstract'
10
+ import { ModuleFactoryLocator } from '@xyo-network/module-factory-locator'
11
+ import type { MongoDBModuleParamsV2 } from '@xyo-network/module-model-mongodb'
12
+ import { MemorySentinel } from '@xyo-network/sentinel-memory'
13
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
14
+ import { hasMongoConfig } from '@xyo-network/xl1-protocol-sdk'
15
+
16
+ export interface GetLocatorContext {
17
+ config: Config
18
+ logger?: Logger
19
+ }
20
+
21
+ /**
22
+ * Used for retrieving a locator with the necessary modules registered for testing
23
+ * operation of the node (entirely in memory)
24
+ * @returns A locator with the necessary modules registered
25
+ */
26
+ export const getLocator = async (context: GetLocatorContext) => {
27
+ const { config, logger } = context
28
+ const { otlpEndpoint } = config.telemetry?.otel ?? {}
29
+ const { traceProvider, meterProvider } = await initTelemetry({
30
+ attributes: {
31
+ serviceName: 'xl1-rewards',
32
+ serviceVersion: '1.0.0',
33
+ },
34
+ otlpEndpoint,
35
+ metricsConfig: {
36
+ endpoint: '/metrics',
37
+ port: 9465,
38
+ },
39
+ })
40
+
41
+ if (isDefined(logger)) AbstractModule.defaultLogger = logger
42
+ const statusReporter = logger ? new LoggerModuleStatusReporter(logger) : undefined
43
+
44
+ const locator = new ModuleFactoryLocator()
45
+ // If there's a MongoDB configuration
46
+ const mongoConfig = config.storage?.mongo
47
+ if (hasMongoConfig(mongoConfig)) {
48
+ // Create the MongoDB SDK from the configuration
49
+ const {
50
+ connectionString: dbConnectionString, database: dbName, domain: dbDomain, password: dbPassword, username: dbUserName,
51
+ } = mongoConfig
52
+ const payloadSdkConfig: BaseMongoSdkPrivateConfig = {
53
+ dbConnectionString, dbDomain, dbName, dbPassword, dbUserName,
54
+ }
55
+ const params: Partial<MongoDBModuleParamsV2> = {
56
+ meterProvider, payloadSdkConfig, statusReporter, traceProvider,
57
+ }
58
+ // Register the MongoDB Archivist as the default
59
+ locator.register(MongoDBArchivistV2.factory(params), undefined, true)
60
+ }
61
+
62
+ locator.register(MemoryArchivist.factory({
63
+ traceProvider, meterProvider, statusReporter,
64
+ }))
65
+ locator.register(MemorySentinel.factory({
66
+ traceProvider, meterProvider, statusReporter,
67
+ }))
68
+ locator.register(ViewArchivist.factory({
69
+ traceProvider, meterProvider, statusReporter,
70
+ }))
71
+ locator.register(ArchivistSyncDiviner.factory({
72
+ traceProvider, meterProvider, statusReporter,
73
+ }))
74
+ return locator
75
+ }
@@ -0,0 +1,32 @@
1
+ import type { Logger } from '@xylabs/logger'
2
+ import { ManifestWrapper } from '@xyo-network/manifest-wrapper'
3
+ import type { WalletInstance } from '@xyo-network/wallet-model'
4
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
5
+
6
+ import { getLocator } from './getLocator.ts'
7
+ import { NodeManifest } from './nodeManifest.ts'
8
+ import { PrivateChildManifests } from './private/index.ts'
9
+ import { PublicChildManifests } from './public/index.ts'
10
+
11
+ export interface GetNodeContext {
12
+ config: Config
13
+ logger?: Logger
14
+ wallet: WalletInstance
15
+ }
16
+
17
+ /**
18
+ * Creates a node with the xyo-chain modules registered
19
+ * @param context The context to use for the node
20
+ * @returns A node with the xyo-chain modules registered
21
+ */
22
+ export const getNode = async (context: GetNodeContext) => {
23
+ const { wallet } = context
24
+ const locator = await getLocator(context)
25
+ const wrapper = new ManifestWrapper(NodeManifest, wallet, locator, PublicChildManifests, PrivateChildManifests)
26
+ const [node, ...childNodes] = await wrapper.loadNodes()
27
+ if (childNodes?.length > 0) {
28
+ await Promise.all(childNodes.map(childNode => node.register(childNode)))
29
+ await Promise.all(childNodes.map(childNode => node.attach(childNode.address, true)))
30
+ }
31
+ return node
32
+ }
@@ -0,0 +1,5 @@
1
+ export * from './getLocator.ts'
2
+ export * from './getNode.ts'
3
+ export * from './nodeManifest.ts'
4
+ export * from './private/index.ts'
5
+ export * from './public/index.ts'
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
3
+ "nodes": [
4
+ {
5
+ "config": {
6
+ "accountPath": "44'/60'/1",
7
+ "name": "XYORewardRedemptionNode",
8
+ "schema": "network.xyo.node.config"
9
+ },
10
+ "modules": {
11
+ "private": [],
12
+ "public": [
13
+ {
14
+ "config": {
15
+ "accountPath": "1/1/1",
16
+ "name": "Data",
17
+ "getCache": {
18
+ "enabled": true,
19
+ "maxEntries": 5000
20
+ },
21
+ "payloadSdkConfig": {
22
+ "collection": "reward_redemption_api_datalake"
23
+ },
24
+ "schema": "network.xyo.archivist.config"
25
+ }
26
+ }
27
+ ]
28
+ }
29
+ }
30
+ ],
31
+ "schema": "network.xyo.manifest"
32
+ }