@moneypot/hub 1.13.1 → 1.14.1

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/README.md CHANGED
@@ -76,6 +76,10 @@ insert into hub.api_key default values returning key;
76
76
 
77
77
  ## Changelog
78
78
 
79
+ ### 1.14.x
80
+
81
+ - Added `preimageHash` field to `HubHashChain` to expose the preimage hash for a hash chain if it's revealed.
82
+
79
83
  ### 1.13.x
80
84
 
81
85
  - Added `hubRevealHashChain` mutation to generate a preimage hash for the chain and mark it as inactive.
@@ -42,7 +42,8 @@ export async function getPreimageHash({ hashChainId, }) {
42
42
  return getHash(HASH_HERALD_OPTIONS, req).then(resultFromGetHashResponse);
43
43
  }
44
44
  export async function getTerminalHash({ hashChainId, }) {
45
- const iterations = 1_000;
45
+ const iterations = config.HASHCHAINSERVER_MAX_ITERATIONS;
46
+ console.log(`generating terminal hash with ${iterations} iterations`);
46
47
  const req = {
47
48
  hashchainId: hashChainId,
48
49
  iterations,
@@ -0,0 +1 @@
1
+ export declare const HubPreimageHashFieldPlugin: GraphileConfig.Plugin;
@@ -0,0 +1,37 @@
1
+ import { withPgClient } from "postgraphile/@dataplan/pg";
2
+ import { inhibitOnNull, object } from "postgraphile/grafast";
3
+ import { gql, makeExtendSchemaPlugin } from "postgraphile/utils";
4
+ import { maybeOneRow } from "../../db/util.js";
5
+ export const HubPreimageHashFieldPlugin = makeExtendSchemaPlugin((build) => {
6
+ const hashTable = build.input.pgRegistry.pgResources.hub_hash;
7
+ return {
8
+ typeDefs: gql `
9
+ extend type HubHashChain {
10
+ preimageHash: HubHash
11
+ }
12
+ `,
13
+ objects: {
14
+ HubHashChain: {
15
+ plans: {
16
+ preimageHash: ($record) => {
17
+ const $preimageHashId = withPgClient(hashTable.executor, object({ hashChainId: $record.get("id") }), async (pgClient, { hashChainId }) => {
18
+ const hash = await pgClient
19
+ .query({
20
+ text: `
21
+ select id
22
+ from hub.hash
23
+ where hash_chain_id = $1
24
+ and kind = 'PREIMAGE'
25
+ `,
26
+ values: [hashChainId],
27
+ })
28
+ .then(maybeOneRow);
29
+ return hash?.id ?? null;
30
+ });
31
+ return hashTable.get({ id: inhibitOnNull($preimageHashId) });
32
+ },
33
+ },
34
+ },
35
+ },
36
+ };
37
+ });
@@ -24,6 +24,7 @@ import { HubUserActiveHashChainPlugin } from "../hash-chain/plugins/hub-user-act
24
24
  import { HubOutcomeInputNonNullFieldsPlugin } from "../plugins/hub-outcome-input-non-null-fields.js";
25
25
  import { HubPutAlertPlugin } from "../plugins/hub-put-alert.js";
26
26
  import { HubRevealHashChainPlugin } from "../hash-chain/plugins/hub-reveal-hash-chain.js";
27
+ import { HubPreimageHashFieldPlugin } from "../hash-chain/plugins/hub-preimage-hash-field.js";
27
28
  export const requiredPlugins = [
28
29
  SmartTagsPlugin,
29
30
  IdToNodeIdPlugin,
@@ -44,6 +45,7 @@ export const defaultPlugins = [
44
45
  HubCreateHashChainPlugin,
45
46
  HubUserActiveHashChainPlugin,
46
47
  HubRevealHashChainPlugin,
48
+ HubPreimageHashFieldPlugin,
47
49
  customPgOmitArchivedPlugin("deleted"),
48
50
  ];
49
51
  export function createPreset({ plugins, exportSchemaSDLPath, extraPgSchemas, abortSignal, context, }) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneypot/hub",
3
- "version": "1.13.1",
3
+ "version": "1.14.1",
4
4
  "author": "moneypot.com",
5
5
  "homepage": "https://moneypot.com/hub",
6
6
  "keywords": [