@lemmaoracle/x402 0.1.2 → 0.1.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"lemma-server.d.ts","sourceRoot":"","sources":["../src/lemma-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,kBAAkB,IAAI,kBAAkB,EACzC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA8DrD;;;;;;;;GAQG;AACH,cAAM,mBAAoB,SAAQ,kBAAkB;gBAEhD,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,EAC3D,WAAW,CAAC,EAAE,WAAW;CAqD5B;AAED,OAAO,EAAE,mBAAmB,IAAI,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"lemma-server.d.ts","sourceRoot":"","sources":["../src/lemma-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,kBAAkB,IAAI,kBAAkB,EACzC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA+DrD;;;;;;;;GAQG;AACH,cAAM,mBAAoB,SAAQ,kBAAkB;gBAEhD,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,EAC3D,WAAW,CAAC,EAAE,WAAW;CA6G5B;AAED,OAAO,EAAE,mBAAmB,IAAI,kBAAkB,EAAE,CAAC"}
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { x402ResourceServer as BaseResourceServer, } from "@x402/core/server";
15
15
  import { createLemmaSubmissionHandler } from "./lemma-submission.js";
16
+ import { poseidon6 } from "poseidon-lite";
16
17
  /**
17
18
  * Resolve LemmaConfig from available sources.
18
19
  *
@@ -80,40 +81,88 @@ class LemmaResourceServer extends BaseResourceServer {
80
81
  if (!config)
81
82
  return;
82
83
  const submissionHandler = createLemmaSubmissionHandler(config);
83
- // Auto-attach the Lemma submission hook via onAfterSettle
84
- const lemmaAfterSettle = async (context) => {
85
- try {
86
- const settlementResult = context.result;
87
- // Build submission context from settlement data
88
- const docHash = context.requirements.extra?.docHash ??
89
- settlementResult.transaction ??
90
- "unknown";
91
- const schema = context.requirements.extra?.schema ??
92
- "default";
93
- // Extract payment details for proof witness
94
- const witness = {
95
- amount: context.requirements.amount ?? "1000",
96
- docHash,
97
- transaction: settlementResult.transaction,
98
- };
99
- await submissionHandler({
100
- docHash,
101
- schema: String(schema),
102
- issuerId: "lemma-x402",
103
- witness,
104
- metadata: {
105
- payer: settlementResult.payer,
106
- transaction: settlementResult.transaction,
107
- network: settlementResult.network,
108
- },
109
- });
110
- }
111
- catch (err) {
112
- // Submission errors are non-fatal -- the settlement succeeded.
113
- console.error("[Lemma] Submission handler error:", err);
114
- }
115
- };
116
- this.onAfterSettle(lemmaAfterSettle);
84
+ // Register Lemma extension to enrich settlement response with proof data.
85
+ // enrichSettlementResponse runs BEFORE createSettlementHeaders, so
86
+ // extensions.lemma is included in the PAYMENT-RESPONSE header.
87
+ this.registerExtension({
88
+ key: "lemma",
89
+ enrichSettlementResponse: async (_declaration, context) => {
90
+ try {
91
+ const settlementResult = context.result;
92
+ // Build submission context from settlement data
93
+ const docHash = context.requirements.extra?.docHash ??
94
+ settlementResult.transaction ??
95
+ "unknown";
96
+ const schema = context.requirements.extra?.schema ??
97
+ "default";
98
+ // Extract payment details for proof witness
99
+ // The circuit expects specific inputs matching X402Payment circuit
100
+ const txHash = (settlementResult.transaction ?? "").replace(/^0x/, "");
101
+ const bn128Prime = BigInt("21888242871839275222246405745257275088548364400416034343698204186575808495617");
102
+ // Split 256-bit tx hash into 2 field elements (128-bit each)
103
+ const txHashLow = txHash.length >= 32
104
+ ? (BigInt(`0x${txHash.slice(-32)}`) % bn128Prime).toString()
105
+ : "0";
106
+ const txHashHigh = txHash.length >= 64
107
+ ? (BigInt(`0x${txHash.slice(0, -32)}`) % bn128Prime).toString()
108
+ : (BigInt(`0x${txHash}`) % bn128Prime).toString();
109
+ // Recipient address (payTo) - split into low/high
110
+ const payTo = (context.requirements.payTo ?? "").replace(/^0x/, "").padStart(40, "0");
111
+ const recipientLow = (BigInt(`0x${payTo.slice(-16)}`) % bn128Prime).toString();
112
+ const recipientHigh = (BigInt(`0x${payTo.slice(0, -16) || "0"}`) % bn128Prime).toString();
113
+ // Amount (USDC has 6 decimals, x402 uses smallest unit)
114
+ const amount = context.requirements.amount ?? "1000";
115
+ // Timestamp - use current time for freshness
116
+ const timestamp = Math.floor(Date.now() / 1000).toString();
117
+ const timestampMax = (parseInt(timestamp) + 3600).toString();
118
+ // Min amount
119
+ const minAmount = amount;
120
+ // Commitment = Poseidon6(txHashPacked[0], txHashPacked[1], recipientLow, amount, timestamp, minAmount)
121
+ const commitment = poseidon6([
122
+ BigInt(txHashLow),
123
+ BigInt(txHashHigh),
124
+ BigInt(recipientLow),
125
+ BigInt(amount),
126
+ BigInt(timestamp),
127
+ BigInt(minAmount),
128
+ ]).toString();
129
+ const witness = {
130
+ txHashPacked: [txHashLow, txHashHigh],
131
+ recipientLow,
132
+ recipientHigh,
133
+ amount,
134
+ timestamp,
135
+ minAmount,
136
+ commitment,
137
+ minAmountPublic: minAmount,
138
+ timestampMax,
139
+ };
140
+ const proofOutput = await submissionHandler({
141
+ docHash: txHash,
142
+ schema: String(schema),
143
+ issuerId: "lemma-x402",
144
+ witness,
145
+ metadata: {
146
+ payer: settlementResult.payer,
147
+ transaction: settlementResult.transaction,
148
+ network: settlementResult.network,
149
+ },
150
+ });
151
+ const extData = {
152
+ proof: proofOutput.proof,
153
+ inputs: proofOutput.inputs,
154
+ circuitId: config.circuitId,
155
+ generatedAt: Date.now(),
156
+ };
157
+ return extData;
158
+ }
159
+ catch (err) {
160
+ // Non-fatal -- settlement succeeded even if proof submission fails.
161
+ console.error("[Lemma] enrichSettlementResponse error:", err);
162
+ return undefined;
163
+ }
164
+ },
165
+ });
117
166
  }
118
167
  }
119
168
  export { LemmaResourceServer as x402ResourceServer };
@@ -1 +1 @@
1
- {"version":3,"file":"lemma-server.js","sourceRoot":"","sources":["../src/lemma-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lemma-server.js","sourceRoot":"","sources":["../src/lemma-server.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,10 @@ type SubmissionContext = Readonly<{
35
35
  * to avoid pulling snarkjs/ffjavascript into the Workers bundle.
36
36
  * prover.prove is delegated to the Relay (Node.js server).
37
37
  */
38
- declare const createLemmaSubmissionHandler: (config: LemmaConfig, lemmaClientOverride?: LemmaClient) => ((ctx: SubmissionContext) => Promise<void>);
38
+ declare const createLemmaSubmissionHandler: (config: LemmaConfig, lemmaClientOverride?: LemmaClient) => ((ctx: SubmissionContext) => Promise<{
39
+ proof: string;
40
+ inputs: ReadonlyArray<string>;
41
+ }>);
39
42
  export type { SubmissionContext };
40
43
  export { createLemmaSubmissionHandler };
41
44
  //# sourceMappingURL=lemma-submission.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lemma-submission.d.ts","sourceRoot":"","sources":["../src/lemma-submission.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,mEAAmE;AACnE,KAAK,iBAAiB,GAAG,QAAQ,CAAC;IAChC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,2CAA2C;IAC3C,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC9C,CAAC,CAAC;AA6BH;;;;;;GAMG;AACH,QAAA,MAAM,4BAA4B,GAChC,QAAQ,WAAW,EACnB,sBAAsB,WAAW,KAChC,CAAC,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CA+C5C,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"lemma-submission.d.ts","sourceRoot":"","sources":["../src/lemma-submission.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,mEAAmE;AACnE,KAAK,iBAAiB,GAAG,QAAQ,CAAC;IAChC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,2CAA2C;IAC3C,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC9C,CAAC,CAAC;AA6BH;;;;;;GAMG;AACH,QAAA,MAAM,4BAA4B,GAChC,QAAQ,WAAW,EACnB,sBAAsB,WAAW,KAChC,CAAC,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAiDxF,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -45,7 +45,7 @@ const createLemmaSubmissionHandler = (config, lemmaClientOverride) => {
45
45
  apiBase: config.apiBase,
46
46
  apiKey: config.apiKey,
47
47
  });
48
- const relayUrl = config.relayUrl ?? "https://p01--lemma-relay-api--svxwx5rc5jzx.code.run/";
48
+ const relayUrl = config.relayUrl ?? "https://p01--lemma-relay-api--svxwx5jzx.code.run/";
49
49
  return async (ctx) => {
50
50
  // Step 1: Register document (pure HTTP — Workers-safe via sub-path import)
51
51
  const _docResult = await register(client, {
@@ -74,6 +74,7 @@ const createLemmaSubmissionHandler = (config, lemmaClientOverride) => {
74
74
  proof: proofOutput.proof,
75
75
  inputs: proofOutput.inputs,
76
76
  });
77
+ return proofOutput;
77
78
  };
78
79
  };
79
80
  export { createLemmaSubmissionHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"lemma-submission.js","sourceRoot":"","sources":["../src/lemma-submission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lemma-submission.js","sourceRoot":"","sources":["../src/lemma-submission.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemmaoracle/x402",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Drop-in replacement for @x402/* with automatic Lemma discovery and proof submission",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,7 +24,7 @@
24
24
  "build:circuit": "bash scripts/build.sh",
25
25
  "dev": "tsc --watch",
26
26
  "type-check": "tsc --noEmit",
27
- "test": "vitest run && bash -c 'if [ ! -f \"build/payment_js/payment.wasm\" ]; then echo \"🔧 Circuit not built. Building circuit first...\" && npm run build:circuit; fi && node circuits/payment.test.mjs'",
27
+ "test": "bash -c 'if [ ! -f \"build/payment_js/payment.wasm\" ]; then echo \"🔧 Circuit not built. Building circuit first...\" && npm run build:circuit; fi && node circuits/payment.test.mjs'",
28
28
  "test:vitest": "vitest run",
29
29
  "test:watch": "vitest",
30
30
  "test:circuit": "node circuits/payment.test.mjs",
@@ -35,14 +35,14 @@
35
35
  "@x402/core": "^2.9.0",
36
36
  "@x402/evm": "^2.9.0",
37
37
  "@x402/hono": "^2.9.0",
38
- "hono": "^4.6.14"
38
+ "hono": "^4.6.14",
39
+ "poseidon-lite": "^0.3.0"
39
40
  },
40
41
  "devDependencies": {
41
42
  "@cloudflare/workers-types": "^4.20241230.0",
42
43
  "circom2": "^0.2.22",
43
44
  "circomlib": "^2.0.5",
44
45
  "dotenv": "^16.4.7",
45
- "poseidon-lite": "^0.3.0",
46
46
  "snarkjs": "^0.7.5",
47
47
  "tsx": "^4.19.0",
48
48
  "typescript": "^5.7.3",
@@ -50,6 +50,6 @@
50
50
  "wrangler": "^3.101.0"
51
51
  },
52
52
  "peerDependencies": {
53
- "@lemmaoracle/sdk": "^0.0.18"
53
+ "@lemmaoracle/sdk": "^0.0.19"
54
54
  }
55
55
  }