@invisi-labs/sdk 1.1.7 → 1.2.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.
Files changed (118) hide show
  1. package/README.md +5 -0
  2. package/dist/broadcaster-3KTB4JO2.cjs +21 -0
  3. package/dist/broadcaster-3KTB4JO2.cjs.map +1 -0
  4. package/dist/broadcaster-7ZKKSTZQ.js +21 -0
  5. package/dist/broadcaster-preparation-PJ263WBL.cjs +15 -0
  6. package/dist/broadcaster-preparation-PJ263WBL.cjs.map +1 -0
  7. package/dist/broadcaster-preparation-ZQAPZAUG.js +15 -0
  8. package/dist/broadcaster-preparation-ZQAPZAUG.js.map +1 -0
  9. package/dist/{chunk-LOU7AP2B.cjs → chunk-2URICDPW.cjs} +72 -33
  10. package/dist/chunk-2URICDPW.cjs.map +1 -0
  11. package/dist/chunk-3D24ABYR.js +86 -0
  12. package/dist/chunk-3D24ABYR.js.map +1 -0
  13. package/dist/chunk-3KTQQZOW.cjs +71 -0
  14. package/dist/chunk-3KTQQZOW.cjs.map +1 -0
  15. package/dist/chunk-4SDP53YQ.cjs +765 -0
  16. package/dist/chunk-4SDP53YQ.cjs.map +1 -0
  17. package/dist/{chunk-XHKQ2BO2.js → chunk-4VI6LYGH.js} +25 -2
  18. package/dist/chunk-4VI6LYGH.js.map +1 -0
  19. package/dist/chunk-BBSRP4MH.cjs +287 -0
  20. package/dist/chunk-BBSRP4MH.cjs.map +1 -0
  21. package/dist/chunk-DGMVGFKM.js +41 -0
  22. package/dist/chunk-DGMVGFKM.js.map +1 -0
  23. package/dist/chunk-DHQEB6JR.cjs +1616 -0
  24. package/dist/chunk-DHQEB6JR.cjs.map +1 -0
  25. package/dist/chunk-FKF67XE6.js +1616 -0
  26. package/dist/chunk-FKF67XE6.js.map +1 -0
  27. package/dist/chunk-GUD3LAUO.js +765 -0
  28. package/dist/chunk-GUD3LAUO.js.map +1 -0
  29. package/dist/chunk-HCB7RQ3S.cjs +79 -0
  30. package/dist/chunk-HCB7RQ3S.cjs.map +1 -0
  31. package/dist/{chunk-GTPUYPQL.js → chunk-HKGJXQVN.js} +69 -30
  32. package/dist/chunk-HKGJXQVN.js.map +1 -0
  33. package/dist/chunk-HLH5JZD4.js +287 -0
  34. package/dist/chunk-HLH5JZD4.js.map +1 -0
  35. package/dist/chunk-J6TZZVAM.cjs +230 -0
  36. package/dist/chunk-J6TZZVAM.cjs.map +1 -0
  37. package/dist/{chunk-7F7ZZW3L.cjs → chunk-LOR6PYH5.cjs} +25 -2
  38. package/dist/chunk-LOR6PYH5.cjs.map +1 -0
  39. package/dist/chunk-MA2QZEF5.cjs +399 -0
  40. package/dist/chunk-MA2QZEF5.cjs.map +1 -0
  41. package/dist/chunk-MI4IP4ZD.cjs +86 -0
  42. package/dist/chunk-MI4IP4ZD.cjs.map +1 -0
  43. package/dist/chunk-OCZLJKIA.cjs +41 -0
  44. package/dist/chunk-OCZLJKIA.cjs.map +1 -0
  45. package/dist/chunk-R5YAOJKB.js +71 -0
  46. package/dist/chunk-R5YAOJKB.js.map +1 -0
  47. package/dist/chunk-RY4M2CIQ.js +399 -0
  48. package/dist/chunk-RY4M2CIQ.js.map +1 -0
  49. package/dist/chunk-THMD5QO2.js +79 -0
  50. package/dist/chunk-THMD5QO2.js.map +1 -0
  51. package/dist/chunk-ZD2652WH.js +230 -0
  52. package/dist/chunk-ZD2652WH.js.map +1 -0
  53. package/dist/credit.cjs +1 -0
  54. package/dist/credit.cjs.map +1 -0
  55. package/dist/credit.d.cts +12 -0
  56. package/dist/credit.d.ts +12 -0
  57. package/dist/credit.js +1 -0
  58. package/dist/credit.js.map +1 -0
  59. package/dist/ethers.cjs +2 -2
  60. package/dist/ethers.cjs.map +1 -1
  61. package/dist/ethers.d.cts +15 -4
  62. package/dist/ethers.d.ts +15 -4
  63. package/dist/ethers.js +1 -1
  64. package/dist/index-CLhGwLxZ.d.cts +42 -0
  65. package/dist/index-Crp-ZFiM.d.ts +42 -0
  66. package/dist/index.cjs +69 -38
  67. package/dist/index.cjs.map +1 -1
  68. package/dist/index.d.cts +21 -14
  69. package/dist/index.d.ts +21 -14
  70. package/dist/index.js +64 -33
  71. package/dist/index.js.map +1 -1
  72. package/dist/note.cjs +11 -0
  73. package/dist/note.cjs.map +1 -0
  74. package/dist/note.d.cts +29 -0
  75. package/dist/note.d.ts +29 -0
  76. package/dist/note.js +11 -0
  77. package/dist/note.js.map +1 -0
  78. package/dist/{broadcaster-preparation-DMxxZ_1Q.d.cts → operation-bridge-CoECSxfi.d.cts} +130 -245
  79. package/dist/{broadcaster-preparation-DMxxZ_1Q.d.ts → operation-bridge-CoECSxfi.d.ts} +130 -245
  80. package/dist/preparation-HUBTVCZE.js +404 -0
  81. package/dist/preparation-HUBTVCZE.js.map +1 -0
  82. package/dist/preparation-QD3ZSYV5.cjs +404 -0
  83. package/dist/preparation-QD3ZSYV5.cjs.map +1 -0
  84. package/dist/provenance-preparation-43DN2WK7.cjs +16 -0
  85. package/dist/provenance-preparation-43DN2WK7.cjs.map +1 -0
  86. package/dist/provenance-preparation-HEZE4L5H.js +16 -0
  87. package/dist/provenance-preparation-HEZE4L5H.js.map +1 -0
  88. package/dist/provenance.cjs +59 -0
  89. package/dist/provenance.cjs.map +1 -0
  90. package/dist/provenance.d.cts +34 -0
  91. package/dist/provenance.d.ts +34 -0
  92. package/dist/provenance.js +59 -0
  93. package/dist/provenance.js.map +1 -0
  94. package/dist/{receipt-logs-m0-bhaxW.d.ts → receipt-logs-DQRJK0l8.d.cts} +84 -78
  95. package/dist/{receipt-logs-CvC951p7.d.cts → receipt-logs-fMR6Bwql.d.ts} +84 -78
  96. package/dist/session-support.cjs +28 -7
  97. package/dist/session-support.cjs.map +1 -1
  98. package/dist/session-support.d.cts +71 -39
  99. package/dist/session-support.d.ts +71 -39
  100. package/dist/session-support.js +58 -37
  101. package/dist/session-support.js.map +1 -1
  102. package/package.json +22 -6
  103. package/dist/broadcaster-preparation-RMWQFYNL.js +0 -11
  104. package/dist/broadcaster-preparation-UGOTO4SX.cjs +0 -11
  105. package/dist/broadcaster-preparation-UGOTO4SX.cjs.map +0 -1
  106. package/dist/chunk-7F7ZZW3L.cjs.map +0 -1
  107. package/dist/chunk-EHP5TBC6.js +0 -3565
  108. package/dist/chunk-EHP5TBC6.js.map +0 -1
  109. package/dist/chunk-GTPUYPQL.js.map +0 -1
  110. package/dist/chunk-ITTGBIG2.js +0 -1877
  111. package/dist/chunk-ITTGBIG2.js.map +0 -1
  112. package/dist/chunk-J2JH6HIG.cjs +0 -1877
  113. package/dist/chunk-J2JH6HIG.cjs.map +0 -1
  114. package/dist/chunk-LOU7AP2B.cjs.map +0 -1
  115. package/dist/chunk-RHNIHI4P.cjs +0 -3565
  116. package/dist/chunk-RHNIHI4P.cjs.map +0 -1
  117. package/dist/chunk-XHKQ2BO2.js.map +0 -1
  118. /package/dist/{broadcaster-preparation-RMWQFYNL.js.map → broadcaster-7ZKKSTZQ.js.map} +0 -0
@@ -1,62 +1,79 @@
1
1
  import {
2
- BroadcasterClient,
3
- BroadcasterRpcError,
2
+ prepareBroadcasterPlan,
3
+ prepareIntent
4
+ } from "./chunk-HKGJXQVN.js";
5
+ import {
6
+ prepareProvenance,
7
+ provePreparedProvenance,
8
+ validateBroadcastEnvelope,
9
+ validatePreparedBroadcast
10
+ } from "./chunk-ZD2652WH.js";
11
+ import "./chunk-3D24ABYR.js";
12
+ import {
4
13
  Invisi,
5
- TransactionOutput,
6
14
  acceptFundingSignature,
15
+ acceptRevocationSignature,
7
16
  acceptWalletSignature,
8
- authorizeOperation,
9
- broadcasterQuoteDomain,
10
- broadcasterQuoteTypes,
11
- broadcasterRequestHash,
12
- broadcasterTransactInterface,
13
17
  configureTransactionInfrastructure,
14
- copyGasBenchmarks,
15
18
  creditReservationKey,
16
- decodeBroadcasterIntent,
17
19
  decodeProtocolEvent,
18
20
  decryptCandidates,
19
- defineGasBenchmarks,
20
21
  encodeOperation,
21
- estimateBenchmarkGas,
22
- estimateGasReference,
23
- estimateShapeGas,
24
22
  extractDeliveryCandidates,
25
23
  fundingSigningRequest,
26
24
  fundingTypedData,
25
+ getDocumentedGasReference,
26
+ getOperationGasReference,
27
27
  inputFacts,
28
28
  operationPreview,
29
29
  operationSources,
30
30
  proveOperation,
31
31
  publicProof,
32
32
  readProtocolLogs,
33
+ revocationSigningRequest,
33
34
  sameStatement,
34
35
  signOperationFunding,
35
36
  validateTransactionInfrastructure,
36
- verifyBroadcasterQuote,
37
37
  walletSigningRequest,
38
38
  witnessFor
39
- } from "./chunk-EHP5TBC6.js";
40
- import {
41
- prepareBroadcasterPlan,
42
- prepareIntent
43
- } from "./chunk-GTPUYPQL.js";
39
+ } from "./chunk-FKF67XE6.js";
44
40
  import {
45
- InvisiError,
46
- NoteOutput,
47
41
  TransactionPreparation,
42
+ exportBroadcasterIntent
43
+ } from "./chunk-HLH5JZD4.js";
44
+ import {
48
45
  authorizationRequest,
46
+ operationExpired,
47
+ requiresAuthorization,
48
+ statement
49
+ } from "./chunk-THMD5QO2.js";
50
+ import {
51
+ TransactionOutput
52
+ } from "./chunk-DGMVGFKM.js";
53
+ import {
54
+ BroadcasterClient,
55
+ BroadcasterRpcError,
56
+ bindBroadcasterOperation,
57
+ broadcasterQuoteDomain,
58
+ broadcasterQuoteTypes,
59
+ broadcasterRequestHash,
60
+ broadcasterTransactInterface,
61
+ decodeBroadcasterIntent,
62
+ verifyBroadcasterQuote
63
+ } from "./chunk-R5YAOJKB.js";
64
+ import {
65
+ assertCreditUpdatePlan,
49
66
  configureRecipientInfrastructure,
50
67
  creditLeaf,
51
- exportBroadcasterIntent,
52
- operationExpired,
53
- prepareWithErrors,
54
68
  recipientLookup,
55
- requiresAuthorization,
56
- statement,
57
69
  verifyMembership
58
- } from "./chunk-ITTGBIG2.js";
59
- import "./chunk-XHKQ2BO2.js";
70
+ } from "./chunk-RY4M2CIQ.js";
71
+ import {
72
+ InvisiError,
73
+ NoteOutput,
74
+ prepareWithErrors
75
+ } from "./chunk-GUD3LAUO.js";
76
+ import "./chunk-4VI6LYGH.js";
60
77
 
61
78
  // src/transactions/proving/aggregate-receipt.ts
62
79
  import { Interface } from "ethers";
@@ -76,7 +93,7 @@ function matchesAggregateTransaction(saved, transaction) {
76
93
  (source) => source.toObject(true)
77
94
  );
78
95
  member.params.nullifiers = request.params.nullifiers.toArray(true);
79
- member.params.outputCommitments = request.params.outputCommitments.toArray(true);
96
+ member.params.noteCommitments = request.params.noteCommitments.toArray(true);
80
97
  member.deliveries = request.deliveries.map(
81
98
  (delivery) => delivery.toObject(true)
82
99
  );
@@ -87,7 +104,7 @@ function matchesAggregateTransaction(saved, transaction) {
87
104
  funding: member.funding
88
105
  };
89
106
  });
90
- if (decoded.name !== "transact" || !Array.isArray(requests) || ![4, 8, 12].includes(requests.length))
107
+ if (decoded.name !== "transact" || !Array.isArray(requests) || ![1, 2, 3, 4, 5].includes(requests.length))
91
108
  return false;
92
109
  const canonical = (request) => buildTransactCalldata({
93
110
  context: { ...plan.context, tokenAddress: request.params.token },
@@ -119,30 +136,29 @@ export {
119
136
  TransactionOutput,
120
137
  TransactionPreparation,
121
138
  acceptFundingSignature,
139
+ acceptRevocationSignature,
122
140
  acceptWalletSignature,
141
+ assertCreditUpdatePlan,
123
142
  authorizationRequest,
124
- authorizeOperation,
143
+ bindBroadcasterOperation,
125
144
  broadcasterQuoteDomain,
126
145
  broadcasterQuoteTypes,
127
146
  broadcasterRequestHash,
128
147
  broadcasterTransactInterface,
129
148
  configureRecipientInfrastructure,
130
149
  configureTransactionInfrastructure,
131
- copyGasBenchmarks,
132
150
  creditLeaf,
133
151
  creditReservationKey,
134
152
  decodeBroadcasterIntent,
135
153
  decodeProtocolEvent,
136
154
  decryptCandidates,
137
- defineGasBenchmarks,
138
155
  encodeOperation,
139
- estimateBenchmarkGas,
140
- estimateGasReference,
141
- estimateShapeGas,
142
156
  exportBroadcasterIntent,
143
157
  extractDeliveryCandidates,
144
158
  fundingSigningRequest,
145
159
  fundingTypedData,
160
+ getDocumentedGasReference,
161
+ getOperationGasReference,
146
162
  inputFacts,
147
163
  matchesAggregateTransaction,
148
164
  operationExpired,
@@ -150,15 +166,20 @@ export {
150
166
  operationSources,
151
167
  prepareBroadcasterPlan,
152
168
  prepareIntent,
169
+ prepareProvenance,
153
170
  prepareWithErrors,
154
171
  proveOperation,
172
+ provePreparedProvenance,
155
173
  publicProof,
156
174
  readProtocolLogs,
157
175
  recipientLookup,
158
176
  requiresAuthorization,
177
+ revocationSigningRequest,
159
178
  sameStatement,
160
179
  signOperationFunding,
161
180
  statement,
181
+ validateBroadcastEnvelope,
182
+ validatePreparedBroadcast,
162
183
  validateTransactionInfrastructure,
163
184
  verifyBroadcasterQuote,
164
185
  verifyMembership,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/transactions/proving/aggregate-receipt.ts"],"sourcesContent":["import type { Address } from \"@invisi-labs/protocol/contracts\";\nimport { Interface, type Result } from \"ethers\";\n\nimport { buildTransactCalldata, type TransactionCall } from \"@invisi-labs/protocol\";\nimport { invisiProtocolAbi, type TransactRequest } from \"@invisi-labs/protocol/contracts\";\nimport type { SavedOperation } from \"../operation-types\";\nconst aggregateAbi = invisiProtocolAbi.filter(\n (item) =>\n item.type === \"function\" &&\n item.name === \"transact\" &&\n item.inputs.length === 2 &&\n item.inputs[1]?.type === \"tuple[]\"\n);\n/** Match the whole frozen member, including funding nonce, signature and permit, in one successful aggregate. */\nexport function matchesAggregateTransaction(\n saved: SavedOperation,\n transaction: TransactionCall & { from: Address }\n): boolean {\n const plan = saved.plan;\n if (\n plan.statement?.target !== \"noir-recursive\" ||\n !plan.params ||\n !saved.externalized ||\n transaction.to.toLowerCase() !== plan.context.protocolAddress.toLowerCase() ||\n transaction.value !== 0n\n )\n return false;\n try {\n const decoded = new Interface(aggregateAbi).parseTransaction({ data: transaction.data })!,\n requests = (decoded.args[1] as Result[]).map((request) => {\n const member = request.toObject(true);\n member.params.sources = request.params.sources.map((source: Result) =>\n source.toObject(true)\n );\n member.params.nullifiers = request.params.nullifiers.toArray(true);\n member.params.outputCommitments = request.params.outputCommitments.toArray(true);\n member.deliveries = request.deliveries.map((delivery: Result) =>\n delivery.toObject(true)\n );\n member.funding.permit.v = Number(member.funding.permit.v);\n return {\n params: member.params,\n deliveries: member.deliveries,\n funding: member.funding,\n };\n }) as readonly TransactRequest[];\n if (\n decoded.name !== \"transact\" ||\n !Array.isArray(requests) ||\n ![4, 8, 12].includes(requests.length)\n )\n return false;\n const canonical = (request: TransactRequest) =>\n buildTransactCalldata({\n context: { ...plan.context, tokenAddress: request.params.token },\n proof: \"0x00\",\n params: request.params,\n deliveries: request.deliveries,\n funding: request.funding,\n caller: transaction.from,\n }).data.toLowerCase();\n const expected = buildTransactCalldata({\n context: plan.context,\n proof: \"0x00\",\n params: plan.params,\n deliveries: plan.outputs.map((output) => output.delivery),\n funding: plan.funding,\n caller: transaction.from,\n }).data.toLowerCase();\n return requests.filter((request) => canonical(request) === expected).length === 1;\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,iBAA8B;AAEvC,SAAS,6BAAmD;AAC5D,SAAS,yBAA+C;AAExD,IAAM,eAAe,kBAAkB;AAAA,EACnC,CAAC,SACG,KAAK,SAAS,cACd,KAAK,SAAS,cACd,KAAK,OAAO,WAAW,KACvB,KAAK,OAAO,CAAC,GAAG,SAAS;AACjC;AAEO,SAAS,4BACZ,OACA,aACO;AACP,QAAM,OAAO,MAAM;AACnB,MACI,KAAK,WAAW,WAAW,oBAC3B,CAAC,KAAK,UACN,CAAC,MAAM,gBACP,YAAY,GAAG,YAAY,MAAM,KAAK,QAAQ,gBAAgB,YAAY,KAC1E,YAAY,UAAU;AAEtB,WAAO;AACX,MAAI;AACA,UAAM,UAAU,IAAI,UAAU,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,KAAK,CAAC,GACnF,WAAY,QAAQ,KAAK,CAAC,EAAe,IAAI,CAAC,YAAY;AACtD,YAAM,SAAS,QAAQ,SAAS,IAAI;AACpC,aAAO,OAAO,UAAU,QAAQ,OAAO,QAAQ;AAAA,QAAI,CAAC,WAChD,OAAO,SAAS,IAAI;AAAA,MACxB;AACA,aAAO,OAAO,aAAa,QAAQ,OAAO,WAAW,QAAQ,IAAI;AACjE,aAAO,OAAO,oBAAoB,QAAQ,OAAO,kBAAkB,QAAQ,IAAI;AAC/E,aAAO,aAAa,QAAQ,WAAW;AAAA,QAAI,CAAC,aACxC,SAAS,SAAS,IAAI;AAAA,MAC1B;AACA,aAAO,QAAQ,OAAO,IAAI,OAAO,OAAO,QAAQ,OAAO,CAAC;AACxD,aAAO;AAAA,QACH,QAAQ,OAAO;AAAA,QACf,YAAY,OAAO;AAAA,QACnB,SAAS,OAAO;AAAA,MACpB;AAAA,IACJ,CAAC;AACL,QACI,QAAQ,SAAS,cACjB,CAAC,MAAM,QAAQ,QAAQ,KACvB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,SAAS,SAAS,MAAM;AAEpC,aAAO;AACX,UAAM,YAAY,CAAC,YACf,sBAAsB;AAAA,MAClB,SAAS,EAAE,GAAG,KAAK,SAAS,cAAc,QAAQ,OAAO,MAAM;AAAA,MAC/D,OAAO;AAAA,MACP,QAAQ,QAAQ;AAAA,MAChB,YAAY,QAAQ;AAAA,MACpB,SAAS,QAAQ;AAAA,MACjB,QAAQ,YAAY;AAAA,IACxB,CAAC,EAAE,KAAK,YAAY;AACxB,UAAM,WAAW,sBAAsB;AAAA,MACnC,SAAS,KAAK;AAAA,MACd,OAAO;AAAA,MACP,QAAQ,KAAK;AAAA,MACb,YAAY,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,QAAQ;AAAA,MACxD,SAAS,KAAK;AAAA,MACd,QAAQ,YAAY;AAAA,IACxB,CAAC,EAAE,KAAK,YAAY;AACpB,WAAO,SAAS,OAAO,CAAC,YAAY,UAAU,OAAO,MAAM,QAAQ,EAAE,WAAW;AAAA,EACpF,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../src/transactions/proving/aggregate-receipt.ts"],"sourcesContent":["import type { Address } from \"@invisi-labs/protocol/contracts\";\nimport { Interface, type Result } from \"ethers\";\n\nimport { buildTransactCalldata, type TransactionCall } from \"@invisi-labs/protocol\";\nimport { invisiProtocolAbi, type TransactRequest } from \"@invisi-labs/protocol/contracts\";\nimport type { SavedOperation } from \"../operation-types\";\nconst aggregateAbi = invisiProtocolAbi.filter(\n (item) =>\n item.type === \"function\" &&\n item.name === \"transact\" &&\n item.inputs.length === 2 &&\n item.inputs[1]?.type === \"tuple[]\"\n);\n/** Match the whole frozen member, including funding nonce, signature and permit, in one successful aggregate. */\nexport function matchesAggregateTransaction(\n saved: SavedOperation,\n transaction: TransactionCall & { from: Address }\n): boolean {\n const plan = saved.plan;\n if (\n plan.statement?.target !== \"noir-recursive\" ||\n !plan.params ||\n !saved.externalized ||\n transaction.to.toLowerCase() !== plan.context.protocolAddress.toLowerCase() ||\n transaction.value !== 0n\n )\n return false;\n try {\n const decoded = new Interface(aggregateAbi).parseTransaction({ data: transaction.data })!,\n requests = (decoded.args[1] as Result[]).map((request) => {\n const member = request.toObject(true);\n member.params.sources = request.params.sources.map((source: Result) =>\n source.toObject(true)\n );\n member.params.nullifiers = request.params.nullifiers.toArray(true);\n member.params.noteCommitments = request.params.noteCommitments.toArray(true);\n member.deliveries = request.deliveries.map((delivery: Result) =>\n delivery.toObject(true)\n );\n member.funding.permit.v = Number(member.funding.permit.v);\n return {\n params: member.params,\n deliveries: member.deliveries,\n funding: member.funding,\n };\n }) as readonly TransactRequest[];\n if (\n decoded.name !== \"transact\" ||\n !Array.isArray(requests) ||\n ![1, 2, 3, 4, 5].includes(requests.length)\n )\n return false;\n const canonical = (request: TransactRequest) =>\n buildTransactCalldata({\n context: { ...plan.context, tokenAddress: request.params.token },\n proof: \"0x00\",\n params: request.params,\n deliveries: request.deliveries,\n funding: request.funding,\n caller: transaction.from,\n }).data.toLowerCase();\n const expected = buildTransactCalldata({\n context: plan.context,\n proof: \"0x00\",\n params: plan.params,\n deliveries: plan.outputs.map((output) => output.delivery),\n funding: plan.funding,\n caller: transaction.from,\n }).data.toLowerCase();\n return requests.filter((request) => canonical(request) === expected).length === 1;\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,iBAA8B;AAEvC,SAAS,6BAAmD;AAC5D,SAAS,yBAA+C;AAExD,IAAM,eAAe,kBAAkB;AAAA,EACnC,CAAC,SACG,KAAK,SAAS,cACd,KAAK,SAAS,cACd,KAAK,OAAO,WAAW,KACvB,KAAK,OAAO,CAAC,GAAG,SAAS;AACjC;AAEO,SAAS,4BACZ,OACA,aACO;AACP,QAAM,OAAO,MAAM;AACnB,MACI,KAAK,WAAW,WAAW,oBAC3B,CAAC,KAAK,UACN,CAAC,MAAM,gBACP,YAAY,GAAG,YAAY,MAAM,KAAK,QAAQ,gBAAgB,YAAY,KAC1E,YAAY,UAAU;AAEtB,WAAO;AACX,MAAI;AACA,UAAM,UAAU,IAAI,UAAU,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,KAAK,CAAC,GACnF,WAAY,QAAQ,KAAK,CAAC,EAAe,IAAI,CAAC,YAAY;AACtD,YAAM,SAAS,QAAQ,SAAS,IAAI;AACpC,aAAO,OAAO,UAAU,QAAQ,OAAO,QAAQ;AAAA,QAAI,CAAC,WAChD,OAAO,SAAS,IAAI;AAAA,MACxB;AACA,aAAO,OAAO,aAAa,QAAQ,OAAO,WAAW,QAAQ,IAAI;AACjE,aAAO,OAAO,kBAAkB,QAAQ,OAAO,gBAAgB,QAAQ,IAAI;AAC3E,aAAO,aAAa,QAAQ,WAAW;AAAA,QAAI,CAAC,aACxC,SAAS,SAAS,IAAI;AAAA,MAC1B;AACA,aAAO,QAAQ,OAAO,IAAI,OAAO,OAAO,QAAQ,OAAO,CAAC;AACxD,aAAO;AAAA,QACH,QAAQ,OAAO;AAAA,QACf,YAAY,OAAO;AAAA,QACnB,SAAS,OAAO;AAAA,MACpB;AAAA,IACJ,CAAC;AACL,QACI,QAAQ,SAAS,cACjB,CAAC,MAAM,QAAQ,QAAQ,KACvB,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,SAAS,SAAS,MAAM;AAEzC,aAAO;AACX,UAAM,YAAY,CAAC,YACf,sBAAsB;AAAA,MAClB,SAAS,EAAE,GAAG,KAAK,SAAS,cAAc,QAAQ,OAAO,MAAM;AAAA,MAC/D,OAAO;AAAA,MACP,QAAQ,QAAQ;AAAA,MAChB,YAAY,QAAQ;AAAA,MACpB,SAAS,QAAQ;AAAA,MACjB,QAAQ,YAAY;AAAA,IACxB,CAAC,EAAE,KAAK,YAAY;AACxB,UAAM,WAAW,sBAAsB;AAAA,MACnC,SAAS,KAAK;AAAA,MACd,OAAO;AAAA,MACP,QAAQ,KAAK;AAAA,MACb,YAAY,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,QAAQ;AAAA,MACxD,SAAS,KAAK;AAAA,MACd,QAAQ,YAAY;AAAA,IACxB,CAAC,EAAE,KAAK,YAAY;AACpB,WAAO,SAAS,OAAO,CAAC,YAAY,UAAU,OAAO,MAAM,QAAQ,EAAE,WAAW;AAAA,EACpF,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invisi-labs/sdk",
3
- "version": "1.1.7",
3
+ "version": "1.2.1",
4
4
  "description": "Stateless Invisi transaction preparation, signing requests and protocol integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -21,21 +21,37 @@
21
21
  "types": "./dist/session-support.d.ts",
22
22
  "import": "./dist/session-support.js",
23
23
  "require": "./dist/session-support.cjs"
24
+ },
25
+ "./note": {
26
+ "types": "./dist/note.d.ts",
27
+ "import": "./dist/note.js",
28
+ "require": "./dist/note.cjs"
29
+ },
30
+ "./credit": {
31
+ "types": "./dist/credit.d.ts",
32
+ "import": "./dist/credit.js",
33
+ "require": "./dist/credit.cjs"
34
+ },
35
+ "./provenance": {
36
+ "types": "./dist/provenance.d.ts",
37
+ "import": "./dist/provenance.js",
38
+ "require": "./dist/provenance.cjs"
24
39
  }
25
40
  },
26
41
  "dependencies": {
27
42
  "ethers": "^6.17.0",
28
43
  "@noble/hashes": "1.8.0",
29
- "@invisi-labs/core": "1.1.7",
30
- "@invisi-labs/prover": "1.1.7",
31
- "@invisi-labs/protocol": "1.1.7",
32
- "@invisi-labs/rpc": "1.1.7"
44
+ "@invisi-labs/primitives": "1.2.1",
45
+ "@invisi-labs/protocol": "1.2.1",
46
+ "@invisi-labs/prover": "1.2.1",
47
+ "@invisi-labs/rpc": "1.2.1"
33
48
  },
34
49
  "devDependencies": {
35
50
  "tsup": "^8.0.0",
36
51
  "typescript": "^5.4.0",
37
52
  "vitest": "^1.6.0",
38
- "@types/node": "^20.0.0"
53
+ "@types/node": "^20.0.0",
54
+ "@noble/curves": "1.9.1"
39
55
  },
40
56
  "files": [
41
57
  "dist"
@@ -1,11 +0,0 @@
1
- import {
2
- prepareBroadcasterPlan,
3
- prepareIntent
4
- } from "./chunk-GTPUYPQL.js";
5
- import "./chunk-ITTGBIG2.js";
6
- import "./chunk-XHKQ2BO2.js";
7
- export {
8
- prepareBroadcasterPlan,
9
- prepareIntent
10
- };
11
- //# sourceMappingURL=broadcaster-preparation-RMWQFYNL.js.map
@@ -1,11 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
- var _chunkLOU7AP2Bcjs = require('./chunk-LOU7AP2B.cjs');
5
- require('./chunk-J2JH6HIG.cjs');
6
- require('./chunk-7F7ZZW3L.cjs');
7
-
8
-
9
-
10
- exports.prepareBroadcasterPlan = _chunkLOU7AP2Bcjs.prepareBroadcasterPlan; exports.prepareIntent = _chunkLOU7AP2Bcjs.prepareIntent;
11
- //# sourceMappingURL=broadcaster-preparation-UGOTO4SX.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/invisi-sdk-ts/invisi-sdk-ts/packages/sdk/dist/broadcaster-preparation-UGOTO4SX.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,mIAAC","file":"/home/runner/work/invisi-sdk-ts/invisi-sdk-ts/packages/sdk/dist/broadcaster-preparation-UGOTO4SX.cjs"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/invisi-sdk-ts/invisi-sdk-ts/packages/sdk/dist/chunk-7F7ZZW3L.cjs","../src/integrations/ethers.ts"],"names":[],"mappings":"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","file":"/home/runner/work/invisi-sdk-ts/invisi-sdk-ts/packages/sdk/dist/chunk-7F7ZZW3L.cjs","sourcesContent":[null,"import { ReceivingAddress, type ReceivingKeyLookup } from \"@invisi-labs/core/address\";\nimport type {\n CanonicalBlock,\n CanonicalReceipt,\n ChainReader,\n DeploymentContext,\n FactoryReader,\n RegistryContext,\n RegistryReader,\n} from \"@invisi-labs/protocol\";\nimport type { Address, Hex } from \"@invisi-labs/protocol/contracts\";\nimport {\n invisiAddressRegistryAbi,\n invisiFactoryAbi,\n invisiProtocolAbi,\n} from \"@invisi-labs/protocol/contracts\";\nimport {\n Contract,\n getAddress as ethersAddress,\n getBytes,\n Interface,\n isError,\n keccak256,\n TypedDataEncoder,\n verifyTypedData,\n zeroPadValue,\n type Provider,\n type Signer,\n} from \"ethers\";\nimport type {\n FundingAuthorizationVerifier,\n FundingSigner,\n FundingTypedData,\n} from \"../transactions/operation-types\";\nconst getAddress = (value: string): Address => ethersAddress(value) as Address;\n\nconst erc1271Abi = [\n \"function isValidSignature(bytes32 hash, bytes signature) view returns (bytes4)\",\n];\nfunction fundingTypes(data: FundingTypedData) {\n const types = Object.fromEntries(\n Object.entries(data.types).map(([name, fields]) => [name, [...fields]])\n );\n check(\n TypedDataEncoder.from(types).primaryType === data.primaryType,\n \"funding typed-data primary type mismatch\"\n );\n return types;\n}\n\nfunction check(value: unknown, message: string): asserts value {\n if (!value) {\n throw new Error(message);\n }\n}\n\nasync function chain(client: Provider, expected: bigint): Promise<void> {\n check((await client.getNetwork()).chainId === expected, \"EVM client chain mismatch\");\n}\n\nfunction number(value: unknown): bigint {\n check(typeof value === \"bigint\" && value >= 0n, \"invalid chain integer\");\n return value;\n}\n\nfunction boolean(value: unknown): boolean {\n check(typeof value === \"boolean\", \"invalid chain boolean\");\n return value;\n}\n\nfunction word(value: unknown): Hex {\n check(typeof value === \"string\" && /^0x[0-9a-fA-F]{64}$/.test(value), \"invalid chain word\");\n return value.toLowerCase() as Hex;\n}\n\nfunction ownerWord(value: Hex): Hex {\n // Public owners use canonical EVM addresses; registry slots remain bytes32.\n const identity = ReceivingAddress.fromIdentity(value).ownerAddress;\n return zeroPadValue(identity, 32) as Hex;\n}\n\n/** Reads exact block numbers; higher layers additionally enforce post-read snapshot barriers. */\nexport class EthersChainReader implements ChainReader, RegistryReader, FactoryReader {\n constructor(readonly client: Provider) {}\n\n async getChainId() {\n return (await this.client.getNetwork()).chainId;\n }\n\n async isValidRegistrationSignature(\n owner: Address,\n digest: Hex,\n signature: Hex\n ): Promise<boolean> {\n try {\n const result = await this.client.call({\n to: getAddress(owner),\n data: new Interface(erc1271Abi).encodeFunctionData(\"isValidSignature\", [\n digest,\n signature,\n ]),\n });\n // SignatureChecker compares the complete first return word, including padding.\n return (\n result.length >= 66 &&\n result.slice(0, 66).toLowerCase() === \"0x1626ba7e\" + \"00\".repeat(28)\n );\n } catch (error) {\n if (isError(error, \"CALL_EXCEPTION\")) return false;\n throw error;\n }\n }\n\n async getProtocolAddressRegistry(address: Address): Promise<Address> {\n return getAddress(\n await new Contract(getAddress(address), invisiProtocolAbi, this.client).getFunction(\n \"addressRegistry\"\n )()\n );\n }\n\n async getProtocolVersion(address: Address): Promise<bigint> {\n return BigInt(\n await new Contract(getAddress(address), invisiProtocolAbi, this.client).getFunction(\n \"VERSION\"\n )()\n );\n }\n\n async getCode(address: Address): Promise<Hex> {\n return (await this.client.getCode(getAddress(address))) as Hex;\n }\n\n async getFactoryInstanceAddress(factory: Address, salt: Hex): Promise<Address> {\n return getAddress(\n await new Contract(factory, invisiFactoryAbi, this.client).getFunction(\n \"getInstanceAddress\"\n )(salt)\n );\n }\n async isFactoryInstance(factory: Address, instance: Address): Promise<boolean> {\n return boolean(\n await new Contract(factory, invisiFactoryAbi, this.client).getFunction(\"isInstance\")(\n instance\n )\n );\n }\n async getInstanceFactory(instance: Address): Promise<Address> {\n return getAddress(\n await new Contract(instance, invisiProtocolAbi, this.client).getFunction(\"factory\")()\n );\n }\n async getLatestBlockNumber() {\n return BigInt(await this.client.getBlockNumber());\n }\n\n async getBlock(blockNumber: bigint): Promise<CanonicalBlock> {\n const block = await this.client.getBlock(blockNumber);\n check(\n block && BigInt(block.number) === blockNumber && block.hash && block.parentHash,\n \"invalid canonical block\"\n );\n return {\n number: BigInt(block.number),\n hash: word(block.hash),\n parentHash: word(block.parentHash),\n timestamp: number(BigInt(block.timestamp)),\n };\n }\n\n private async read(\n context: { chainId: bigint },\n address: Address,\n abi: ConstructorParameters<typeof Interface>[0],\n functionName: string,\n args: readonly unknown[],\n block?: CanonicalBlock\n ): Promise<unknown> {\n await chain(this.client, context.chainId);\n if (block) {\n check(\n (await this.getBlock(block.number)).hash === block.hash,\n \"canonical read block mismatch\"\n );\n }\n return new Contract(getAddress(address), abi, this.client).getFunction(functionName)(\n ...args,\n ...(block ? [{ blockTag: block.number }] : [])\n );\n }\n\n async getFundingNonce(context: DeploymentContext, payer: Address, block: CanonicalBlock) {\n return number(\n await this.read(\n context,\n context.protocolAddress,\n invisiProtocolAbi,\n \"nonces\",\n [getAddress(payer)],\n block\n )\n );\n }\n\n async getRegistryNonce(context: RegistryContext, ownerAddress: Hex, block: CanonicalBlock) {\n return number(\n await this.read(\n context,\n context.registryAddress,\n invisiAddressRegistryAbi,\n \"nonceOf\",\n [ownerWord(ownerAddress)],\n block\n )\n );\n }\n\n async isKnownRoot(\n context: DeploymentContext,\n treeId: bigint,\n root: Hex,\n block: CanonicalBlock\n ) {\n return boolean(\n await this.read(\n context,\n context.protocolAddress,\n invisiProtocolAbi,\n \"rootHistory\",\n [number(treeId), word(root)],\n block\n )\n );\n }\n\n async isSpent(context: DeploymentContext, nullifiers: readonly Hex[], block: CanonicalBlock) {\n const copied = nullifiers.map(word);\n const result: boolean[] = [];\n for (let offset = 0; offset < copied.length; offset += 32) {\n result.push(\n ...(await Promise.all(\n copied\n .slice(offset, offset + 32)\n .map((nf) =>\n this.read(\n context,\n context.protocolAddress,\n invisiProtocolAbi,\n \"isNullifierSpent\",\n [nf],\n block\n ).then(boolean)\n )\n ))\n );\n }\n return result;\n }\n\n async getTransaction(hash: Hex) {\n try {\n const tx = await this.client.getTransaction(word(hash));\n if (!tx?.to) {\n return null;\n }\n return {\n transactionHash: word(tx.hash),\n to: getAddress(tx.to),\n from: getAddress(tx.from),\n nonce: number(BigInt(tx.nonce)),\n data: tx.data as Hex,\n value: number(tx.value),\n };\n } catch (error) {\n if (error instanceof Error && error.name === \"TransactionNotFoundError\") {\n return null;\n }\n throw error;\n }\n }\n\n async getReceipt(hash: Hex): Promise<CanonicalReceipt | null> {\n try {\n const receipt = await this.client.getTransactionReceipt(word(hash));\n if (!receipt) return null;\n const block = await this.getBlock(BigInt(receipt.blockNumber));\n check(block.hash === receipt.blockHash, \"receipt block is no longer canonical\");\n return {\n block,\n transactionHash: word(receipt.hash),\n status: receipt.status === 1 ? \"success\" : \"reverted\",\n logs: receipt.logs.map((log) => {\n check(\n !log.removed && log.transactionHash === receipt.hash && log.index !== null,\n \"invalid receipt log\"\n );\n return {\n address: getAddress(log.address),\n data: log.data as Hex,\n topics: [...log.topics] as Hex[],\n transactionHash: word(log.transactionHash),\n logIndex: log.index,\n };\n }),\n };\n } catch (error) {\n if (error instanceof Error && error.name === \"TransactionReceiptNotFoundError\") {\n return null;\n }\n throw error;\n }\n }\n}\n\n/** Resolves only the explicitly selected registry. Validates canonical public key encodings. */\nexport class EthersAddressResolver {\n readonly #context: Readonly<RegistryContext>;\n\n constructor(\n readonly client: Provider,\n context: RegistryContext,\n readonly expectedRuntimeCodeHash?: Hex\n ) {\n this.#context = Object.freeze({\n ...context,\n registryAddress: getAddress(context.registryAddress),\n });\n check(BigInt(context.registryAddress) !== 0n, \"invalid registry address\");\n }\n\n readonly lookup: ReceivingKeyLookup = async (ownerAddress) => {\n await chain(this.client, this.#context.chainId);\n if (this.expectedRuntimeCodeHash) {\n const code = await this.client.getCode(this.#context.registryAddress);\n check(\n code !== \"0x\" && keccak256(code) === this.expectedRuntimeCodeHash,\n \"registry runtime profile mismatch\"\n );\n }\n const block = await this.client.getBlock(\"latest\");\n check(block && block.hash, \"invalid registry block\");\n const contract = new Contract(\n this.#context.registryAddress,\n invisiAddressRegistryAbi,\n this.client\n );\n const registered = await contract.getFunction(\"isRegistered\")(ownerWord(ownerAddress), {\n blockTag: block.number,\n });\n if (!registered) return null;\n const [keys] = await contract.getFunction(\"receivingKeysOf\")(ownerWord(ownerAddress), {\n blockTag: block.number,\n });\n check(\n (await this.client.getBlock(block.number))?.hash === block.hash,\n \"canonical registry read changed\"\n );\n return ReceivingAddress.from({\n ownerAddress,\n viewingPublicKey: getBytes(keys.viewingPublicKey),\n clueKey: getBytes(keys.clueKey),\n }).getReceivingKeys();\n };\n}\n\nexport class EthersFundingSigner implements FundingSigner {\n readonly address: Address;\n constructor(\n readonly signer: Signer,\n readonly chainId: bigint,\n address: Address\n ) {\n this.address = getAddress(address);\n }\n static async create(signer: Signer, chainId: bigint): Promise<EthersFundingSigner> {\n return new EthersFundingSigner(signer, chainId, getAddress(await signer.getAddress()));\n }\n async signTypedData(data: FundingTypedData): Promise<Hex> {\n const copied = structuredClone(data);\n check(\n BigInt(copied.domain.chainId as bigint) === this.chainId,\n \"funding typed-data chain mismatch\"\n );\n check(\n getAddress(await this.signer.getAddress()) === this.address,\n \"funding signer address mismatch\"\n );\n if (this.signer.provider) await chain(this.signer.provider, this.chainId);\n return (await this.signer.signTypedData(\n copied.domain,\n fundingTypes(copied),\n copied.message\n )) as Hex;\n }\n}\n\nexport class EthersFundingVerifier implements FundingAuthorizationVerifier {\n constructor(\n readonly client: Provider,\n readonly chainId: bigint\n ) {}\n async verifyTypedData(\n data: FundingTypedData & { address: Address; signature: Hex }\n ): Promise<boolean> {\n const copied = structuredClone(data);\n check(\n BigInt(copied.domain.chainId as bigint) === this.chainId,\n \"funding typed-data chain mismatch\"\n );\n await chain(this.client, this.chainId);\n const address = getAddress(copied.address);\n if ((await this.client.getCode(address)) === \"0x\") {\n try {\n return (\n getAddress(\n verifyTypedData(\n copied.domain,\n fundingTypes(copied),\n copied.message,\n copied.signature\n )\n ) === address\n );\n } catch {\n return false;\n }\n }\n try {\n return (\n (await new Contract(address, erc1271Abi, this.client).getFunction(\n \"isValidSignature\"\n )(\n TypedDataEncoder.hash(copied.domain, fundingTypes(copied), copied.message),\n copied.signature\n )) === \"0x1626ba7e\"\n );\n } catch (error) {\n if (isError(error, \"CALL_EXCEPTION\")) return false;\n throw error;\n }\n }\n}\n"]}