@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.
- package/LICENSE +165 -0
- package/README.md +96 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.mjs +461 -0
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/manifest/getLocator.d.ts +14 -0
- package/dist/node/manifest/getLocator.d.ts.map +1 -0
- package/dist/node/manifest/getNode.d.ts +15 -0
- package/dist/node/manifest/getNode.d.ts.map +1 -0
- package/dist/node/manifest/index.d.ts +6 -0
- package/dist/node/manifest/index.d.ts.map +1 -0
- package/dist/node/manifest/nodeManifest.d.ts +6 -0
- package/dist/node/manifest/nodeManifest.d.ts.map +1 -0
- package/dist/node/manifest/private/index.d.ts +5 -0
- package/dist/node/manifest/private/index.d.ts.map +1 -0
- package/dist/node/manifest/public/index.d.ts +6 -0
- package/dist/node/manifest/public/index.d.ts.map +1 -0
- package/dist/node/server/app.d.ts +4 -0
- package/dist/node/server/app.d.ts.map +1 -0
- package/dist/node/server/index.d.ts +11 -0
- package/dist/node/server/index.d.ts.map +1 -0
- package/dist/node/server/instrumentation.d.ts +9 -0
- package/dist/node/server/instrumentation.d.ts.map +1 -0
- package/dist/node/server/routes/addRoutes.d.ts +3 -0
- package/dist/node/server/routes/addRoutes.d.ts.map +1 -0
- package/dist/node/server/routes/address/AddressPathParams.d.ts +4 -0
- package/dist/node/server/routes/address/AddressPathParams.d.ts.map +1 -0
- package/dist/node/server/routes/address/addNodeRoutes.d.ts +3 -0
- package/dist/node/server/routes/address/addNodeRoutes.d.ts.map +1 -0
- package/dist/node/server/routes/address/get/get.d.ts +4 -0
- package/dist/node/server/routes/address/get/get.d.ts.map +1 -0
- package/dist/node/server/routes/address/get/index.d.ts +2 -0
- package/dist/node/server/routes/address/get/index.d.ts.map +1 -0
- package/dist/node/server/routes/address/index.d.ts +2 -0
- package/dist/node/server/routes/address/index.d.ts.map +1 -0
- package/dist/node/server/routes/address/post/getQueryConfig.d.ts +6 -0
- package/dist/node/server/routes/address/post/getQueryConfig.d.ts.map +1 -0
- package/dist/node/server/routes/address/post/index.d.ts +2 -0
- package/dist/node/server/routes/address/post/index.d.ts.map +1 -0
- package/dist/node/server/routes/address/post/post.d.ts +8 -0
- package/dist/node/server/routes/address/post/post.d.ts.map +1 -0
- package/dist/node/server/routes/dataLake/addDataLakeRoutes.d.ts +3 -0
- package/dist/node/server/routes/dataLake/addDataLakeRoutes.d.ts.map +1 -0
- package/dist/node/server/routes/dataLake/archivistMiddleware.d.ts +10 -0
- package/dist/node/server/routes/dataLake/archivistMiddleware.d.ts.map +1 -0
- package/dist/node/server/routes/dataLake/index.d.ts +2 -0
- package/dist/node/server/routes/dataLake/index.d.ts.map +1 -0
- package/dist/node/server/routes/healthz/get.d.ts +4 -0
- package/dist/node/server/routes/healthz/get.d.ts.map +1 -0
- package/dist/node/server/routes/healthz/index.d.ts +2 -0
- package/dist/node/server/routes/healthz/index.d.ts.map +1 -0
- package/dist/node/server/routes/index.d.ts +4 -0
- package/dist/node/server/routes/index.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/addRewardRoutes.d.ts +3 -0
- package/dist/node/server/routes/rewardRedemption/addRewardRoutes.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/index.d.ts +2 -0
- package/dist/node/server/routes/rewardRedemption/index.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/middleware/index.d.ts +2 -0
- package/dist/node/server/routes/rewardRedemption/middleware/index.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/middleware/requestHandlerValidator.d.ts +32 -0
- package/dist/node/server/routes/rewardRedemption/middleware/requestHandlerValidator.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/getRouteDefinitions.d.ts +3 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/getRouteDefinitions.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/index.d.ts +2 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/index.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/pathParams/AddressPathParam.d.ts +2 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/pathParams/AddressPathParam.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/pathParams/index.d.ts +2 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/pathParams/index.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/routeDefinition.d.ts +8 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/routeDefinition.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/claim.d.ts +3 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/claim.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/index.d.ts +3 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/index.d.ts.map +1 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/redeem.d.ts +3 -0
- package/dist/node/server/routes/rewardRedemption/routeDefinitions/routes/redeem.d.ts.map +1 -0
- package/dist/node/server/server.d.ts +11 -0
- package/dist/node/server/server.d.ts.map +1 -0
- package/package.json +137 -0
- package/src/index.ts +1 -0
- package/src/manifest/getLocator.ts +75 -0
- package/src/manifest/getNode.ts +32 -0
- package/src/manifest/index.ts +5 -0
- package/src/manifest/node.json +32 -0
- package/src/manifest/nodeManifest.ts +8 -0
- package/src/manifest/private/index.ts +4 -0
- package/src/manifest/public/index.ts +6 -0
- package/src/server/app.ts +30 -0
- package/src/server/index.ts +13 -0
- package/src/server/instrumentation.ts +15 -0
- package/src/server/routes/addRoutes.ts +9 -0
- package/src/server/routes/address/AddressPathParams.ts +3 -0
- package/src/server/routes/address/addNodeRoutes.ts +21 -0
- package/src/server/routes/address/get/get.ts +33 -0
- package/src/server/routes/address/get/index.ts +1 -0
- package/src/server/routes/address/index.ts +1 -0
- package/src/server/routes/address/post/getQueryConfig.ts +23 -0
- package/src/server/routes/address/post/index.ts +1 -0
- package/src/server/routes/address/post/post.ts +77 -0
- package/src/server/routes/dataLake/addDataLakeRoutes.ts +9 -0
- package/src/server/routes/dataLake/archivistMiddleware.ts +86 -0
- package/src/server/routes/dataLake/index.ts +1 -0
- package/src/server/routes/healthz/get.ts +20 -0
- package/src/server/routes/healthz/index.ts +1 -0
- package/src/server/routes/index.ts +3 -0
- package/src/server/routes/rewardRedemption/addRewardRoutes.ts +10 -0
- package/src/server/routes/rewardRedemption/index.ts +1 -0
- package/src/server/routes/rewardRedemption/middleware/index.ts +1 -0
- package/src/server/routes/rewardRedemption/middleware/requestHandlerValidator.ts +120 -0
- package/src/server/routes/rewardRedemption/routeDefinitions/getRouteDefinitions.ts +9 -0
- package/src/server/routes/rewardRedemption/routeDefinitions/index.ts +1 -0
- package/src/server/routes/rewardRedemption/routeDefinitions/pathParams/AddressPathParam.ts +1 -0
- package/src/server/routes/rewardRedemption/routeDefinitions/pathParams/index.ts +1 -0
- package/src/server/routes/rewardRedemption/routeDefinitions/routeDefinition.ts +18 -0
- package/src/server/routes/rewardRedemption/routeDefinitions/routes/claim.ts +31 -0
- package/src/server/routes/rewardRedemption/routeDefinitions/routes/index.ts +2 -0
- package/src/server/routes/rewardRedemption/routeDefinitions/routes/redeem.ts +26 -0
- 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
|
+
}
|