@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,58 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+ import type { Logger } from '@xylabs/logger'
3
+ import { isDefined, isString } from '@xylabs/typeof'
4
+ import { boot } from '@xyo-network/bios'
5
+ import type { BiosExternalInterface } from '@xyo-network/bios-model'
6
+ import type { NodeInstance } from '@xyo-network/node-model'
7
+ import { HDWallet } from '@xyo-network/wallet'
8
+ import { type Config } from '@xyo-network/xl1-protocol-sdk'
9
+
10
+ import { getNode } from '../manifest/index.ts'
11
+ import { getApp } from './app.ts'
12
+
13
+ const hostname = '::'
14
+ // const hostname = '0.0.0.0'
15
+
16
+ // TODO: Make nodejs version of bios support round tripping mnemonic between boots
17
+ const getSeedPhrase = async (bios: BiosExternalInterface, config: Config, logger?: Logger): Promise<string> => {
18
+ const storedSeedPhrase = await bios.seedPhraseStore.get('os')
19
+ logger?.debug(`[Bridge] Stored mnemonic: ${storedSeedPhrase}`)
20
+ const { mnemonic } = config.api
21
+ if (isString(storedSeedPhrase) && isString(mnemonic)) {
22
+ logger?.warn('[Bridge] Stored mnemonic does not match supplied. Updating stored mnemonic to supplied.')
23
+ await bios.seedPhraseStore.set('os', mnemonic)
24
+ } else {
25
+ let seedPhrase: string
26
+ if (isString(mnemonic)) {
27
+ seedPhrase = mnemonic
28
+ } else {
29
+ seedPhrase = HDWallet.generateMnemonic()
30
+ logger?.log('[Bridge] No mnemonic provided, using random mnemonic. This is not recommended for production use.')
31
+ logger?.log(`[Bridge] Mnemonic: ${seedPhrase}`)
32
+ }
33
+ await bios.seedPhraseStore.set('os', seedPhrase)
34
+ }
35
+ return assertEx(await bios.seedPhraseStore.get('os'), () => 'Unable to acquire mnemonic from bios')
36
+ }
37
+
38
+ interface GetServerContext {
39
+ config: Config
40
+ logger?: Logger
41
+ node?: NodeInstance
42
+ }
43
+
44
+ export const getServer = async (context: GetServerContext) => {
45
+ const { logger, config } = context
46
+ const { port, mnemonic } = config.rewardRedemptionApi
47
+ const bios = await boot()
48
+ const seedPhrase = isDefined(mnemonic) ? mnemonic : await getSeedPhrase(bios, config, logger)
49
+ const wallet = await HDWallet.fromPhrase(seedPhrase)
50
+ const nodeContext = {
51
+ wallet, logger, config,
52
+ }
53
+ const node = context.node ?? await getNode(nodeContext)
54
+ const app = getApp(node)
55
+ const server = app.listen(port, hostname, () => logger?.log(`[Bridge] Server listening at http://${hostname}:${port}`))
56
+ server.setTimeout(20_000)
57
+ return server
58
+ }