@nucypher/taco 0.7.0-alpha.2 → 0.7.0-dev.viem

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 (297) hide show
  1. package/README.md +149 -0
  2. package/dist/cjs/access-client/client.d.ts +237 -0
  3. package/dist/cjs/access-client/client.js +196 -0
  4. package/dist/cjs/access-client/client.js.map +1 -0
  5. package/dist/cjs/access-client/config-validator.d.ts +92 -0
  6. package/dist/cjs/access-client/config-validator.js +204 -0
  7. package/dist/cjs/access-client/config-validator.js.map +1 -0
  8. package/dist/cjs/access-client/config.d.ts +50 -0
  9. package/dist/cjs/access-client/config.js +27 -0
  10. package/dist/cjs/access-client/config.js.map +1 -0
  11. package/dist/cjs/access-client/index.d.ts +2 -0
  12. package/dist/cjs/access-client/index.js +19 -0
  13. package/dist/cjs/access-client/index.js.map +1 -0
  14. package/dist/cjs/conditions/base/contract.d.ts +4 -4
  15. package/dist/cjs/conditions/base/contract.js +8 -8
  16. package/dist/cjs/conditions/base/contract.js.map +1 -1
  17. package/dist/cjs/conditions/base/index.d.ts +6 -9
  18. package/dist/cjs/conditions/base/index.js +7 -10
  19. package/dist/cjs/conditions/base/index.js.map +1 -1
  20. package/dist/cjs/conditions/base/json-api.d.ts +4 -4
  21. package/dist/cjs/conditions/base/json-api.js +8 -8
  22. package/dist/cjs/conditions/base/json-api.js.map +1 -1
  23. package/dist/cjs/conditions/base/json-rpc.d.ts +4 -4
  24. package/dist/cjs/conditions/base/json-rpc.js +8 -8
  25. package/dist/cjs/conditions/base/json-rpc.js.map +1 -1
  26. package/dist/cjs/conditions/base/jwt.d.ts +4 -4
  27. package/dist/cjs/conditions/base/jwt.js +9 -9
  28. package/dist/cjs/conditions/base/jwt.js.map +1 -1
  29. package/dist/cjs/conditions/base/rpc.d.ts +4 -4
  30. package/dist/cjs/conditions/base/rpc.js +8 -8
  31. package/dist/cjs/conditions/base/rpc.js.map +1 -1
  32. package/dist/cjs/conditions/base/time.d.ts +4 -4
  33. package/dist/cjs/conditions/base/time.js +9 -9
  34. package/dist/cjs/conditions/base/time.js.map +1 -1
  35. package/dist/cjs/conditions/compound-condition.d.ts +4 -4
  36. package/dist/cjs/conditions/compound-condition.js +9 -9
  37. package/dist/cjs/conditions/compound-condition.js.map +1 -1
  38. package/dist/cjs/conditions/condition-expr.d.ts +1 -1
  39. package/dist/cjs/conditions/condition-expr.js +7 -7
  40. package/dist/cjs/conditions/condition-expr.js.map +1 -1
  41. package/dist/cjs/conditions/condition-factory.d.ts +1 -1
  42. package/dist/cjs/conditions/condition-factory.js +27 -38
  43. package/dist/cjs/conditions/condition-factory.js.map +1 -1
  44. package/dist/cjs/conditions/condition.d.ts +1 -1
  45. package/dist/cjs/conditions/condition.js +6 -6
  46. package/dist/cjs/conditions/condition.js.map +1 -1
  47. package/dist/cjs/conditions/context/context.d.ts +2 -6
  48. package/dist/cjs/conditions/context/context.js +16 -41
  49. package/dist/cjs/conditions/context/context.js.map +1 -1
  50. package/dist/cjs/conditions/context/index.d.ts +1 -1
  51. package/dist/cjs/conditions/context/index.js +2 -2
  52. package/dist/cjs/conditions/context/index.js.map +1 -1
  53. package/dist/cjs/conditions/if-then-else-condition.d.ts +4 -4
  54. package/dist/cjs/conditions/if-then-else-condition.js +8 -8
  55. package/dist/cjs/conditions/if-then-else-condition.js.map +1 -1
  56. package/dist/cjs/conditions/index.d.ts +9 -9
  57. package/dist/cjs/conditions/index.js +10 -10
  58. package/dist/cjs/conditions/index.js.map +1 -1
  59. package/dist/cjs/conditions/multi-condition.d.ts +1 -1
  60. package/dist/cjs/conditions/multi-condition.js +8 -8
  61. package/dist/cjs/conditions/multi-condition.js.map +1 -1
  62. package/dist/cjs/conditions/predefined/erc20.d.ts +1 -1
  63. package/dist/cjs/conditions/predefined/erc20.js +3 -3
  64. package/dist/cjs/conditions/predefined/erc20.js.map +1 -1
  65. package/dist/cjs/conditions/predefined/erc721.d.ts +1 -1
  66. package/dist/cjs/conditions/predefined/erc721.js +5 -5
  67. package/dist/cjs/conditions/predefined/erc721.js.map +1 -1
  68. package/dist/cjs/conditions/predefined/index.d.ts +2 -2
  69. package/dist/cjs/conditions/predefined/index.js +2 -2
  70. package/dist/cjs/conditions/predefined/index.js.map +1 -1
  71. package/dist/cjs/conditions/schemas/common.d.ts +0 -2
  72. package/dist/cjs/conditions/schemas/common.js +8 -25
  73. package/dist/cjs/conditions/schemas/common.js.map +1 -1
  74. package/dist/cjs/conditions/schemas/compound.js +6 -6
  75. package/dist/cjs/conditions/schemas/compound.js.map +1 -1
  76. package/dist/cjs/conditions/schemas/context.js +5 -5
  77. package/dist/cjs/conditions/schemas/context.js.map +1 -1
  78. package/dist/cjs/conditions/schemas/contract.d.ts +30 -33
  79. package/dist/cjs/conditions/schemas/contract.js +4 -4
  80. package/dist/cjs/conditions/schemas/contract.js.map +1 -1
  81. package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.d.ts +13 -16
  82. package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.js +13 -17
  83. package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.js.map +1 -1
  84. package/dist/cjs/conditions/schemas/if-then-else.js +10 -10
  85. package/dist/cjs/conditions/schemas/if-then-else.js.map +1 -1
  86. package/dist/cjs/conditions/schemas/json-api.d.ts +14 -47
  87. package/dist/cjs/conditions/schemas/json-api.js +9 -23
  88. package/dist/cjs/conditions/schemas/json-api.js.map +1 -1
  89. package/dist/cjs/conditions/schemas/json-rpc.d.ts +13 -48
  90. package/dist/cjs/conditions/schemas/json-rpc.js +9 -23
  91. package/dist/cjs/conditions/schemas/json-rpc.js.map +1 -1
  92. package/dist/cjs/conditions/schemas/jwt.d.ts +4 -2
  93. package/dist/cjs/conditions/schemas/jwt.js +4 -4
  94. package/dist/cjs/conditions/schemas/jwt.js.map +1 -1
  95. package/dist/cjs/conditions/schemas/return-value-test.d.ts +12 -28
  96. package/dist/cjs/conditions/schemas/return-value-test.js +8 -22
  97. package/dist/cjs/conditions/schemas/return-value-test.js.map +1 -1
  98. package/dist/cjs/conditions/schemas/rpc.d.ts +16 -22
  99. package/dist/cjs/conditions/schemas/rpc.js +8 -8
  100. package/dist/cjs/conditions/schemas/rpc.js.map +1 -1
  101. package/dist/cjs/conditions/schemas/sequential.js +18 -38
  102. package/dist/cjs/conditions/schemas/sequential.js.map +1 -1
  103. package/dist/cjs/conditions/schemas/time.d.ts +10 -18
  104. package/dist/cjs/conditions/schemas/time.js +2 -2
  105. package/dist/cjs/conditions/schemas/time.js.map +1 -1
  106. package/dist/cjs/conditions/schemas/utils.js +18 -25
  107. package/dist/cjs/conditions/schemas/utils.js.map +1 -1
  108. package/dist/cjs/conditions/sequential.d.ts +4 -4
  109. package/dist/cjs/conditions/sequential.js +8 -8
  110. package/dist/cjs/conditions/sequential.js.map +1 -1
  111. package/dist/cjs/conditions/shared.d.ts +2 -2
  112. package/dist/cjs/conditions/shared.js +6 -6
  113. package/dist/cjs/conditions/shared.js.map +1 -1
  114. package/dist/cjs/index.d.ts +3 -3
  115. package/dist/cjs/index.js +8 -9
  116. package/dist/cjs/index.js.map +1 -1
  117. package/dist/cjs/taco.d.ts +82 -43
  118. package/dist/cjs/taco.js +28 -86
  119. package/dist/cjs/taco.js.map +1 -1
  120. package/dist/cjs/tdec.d.ts +2 -2
  121. package/dist/cjs/tdec.js +7 -7
  122. package/dist/cjs/tdec.js.map +1 -1
  123. package/dist/cjs/types.d.ts +0 -1
  124. package/dist/es/access-client/client.d.ts +237 -0
  125. package/dist/es/access-client/client.js +192 -0
  126. package/dist/es/access-client/client.js.map +1 -0
  127. package/dist/es/access-client/config-validator.d.ts +92 -0
  128. package/dist/es/access-client/config-validator.js +200 -0
  129. package/dist/es/access-client/config-validator.js.map +1 -0
  130. package/dist/es/access-client/config.d.ts +50 -0
  131. package/dist/es/access-client/config.js +23 -0
  132. package/dist/es/access-client/config.js.map +1 -0
  133. package/dist/es/access-client/index.d.ts +2 -0
  134. package/dist/es/access-client/index.js +3 -0
  135. package/dist/es/access-client/index.js.map +1 -0
  136. package/dist/es/conditions/base/contract.d.ts +4 -4
  137. package/dist/es/conditions/base/contract.js +3 -3
  138. package/dist/es/conditions/base/contract.js.map +1 -1
  139. package/dist/es/conditions/base/index.d.ts +6 -9
  140. package/dist/es/conditions/base/index.js +6 -9
  141. package/dist/es/conditions/base/index.js.map +1 -1
  142. package/dist/es/conditions/base/json-api.d.ts +4 -4
  143. package/dist/es/conditions/base/json-api.js +3 -3
  144. package/dist/es/conditions/base/json-api.js.map +1 -1
  145. package/dist/es/conditions/base/json-rpc.d.ts +4 -4
  146. package/dist/es/conditions/base/json-rpc.js +3 -3
  147. package/dist/es/conditions/base/json-rpc.js.map +1 -1
  148. package/dist/es/conditions/base/jwt.d.ts +4 -4
  149. package/dist/es/conditions/base/jwt.js +3 -3
  150. package/dist/es/conditions/base/jwt.js.map +1 -1
  151. package/dist/es/conditions/base/rpc.d.ts +4 -4
  152. package/dist/es/conditions/base/rpc.js +3 -3
  153. package/dist/es/conditions/base/rpc.js.map +1 -1
  154. package/dist/es/conditions/base/time.d.ts +4 -4
  155. package/dist/es/conditions/base/time.js +3 -3
  156. package/dist/es/conditions/base/time.js.map +1 -1
  157. package/dist/es/conditions/compound-condition.d.ts +4 -4
  158. package/dist/es/conditions/compound-condition.js +3 -3
  159. package/dist/es/conditions/compound-condition.js.map +1 -1
  160. package/dist/es/conditions/condition-expr.d.ts +1 -1
  161. package/dist/es/conditions/condition-expr.js +2 -2
  162. package/dist/es/conditions/condition-expr.js.map +1 -1
  163. package/dist/es/conditions/condition-factory.d.ts +1 -1
  164. package/dist/es/conditions/condition-factory.js +9 -20
  165. package/dist/es/conditions/condition-factory.js.map +1 -1
  166. package/dist/es/conditions/condition.d.ts +1 -1
  167. package/dist/es/conditions/condition.js +3 -3
  168. package/dist/es/conditions/condition.js.map +1 -1
  169. package/dist/es/conditions/context/context.d.ts +2 -6
  170. package/dist/es/conditions/context/context.js +6 -31
  171. package/dist/es/conditions/context/context.js.map +1 -1
  172. package/dist/es/conditions/context/index.d.ts +1 -1
  173. package/dist/es/conditions/context/index.js +1 -1
  174. package/dist/es/conditions/context/index.js.map +1 -1
  175. package/dist/es/conditions/if-then-else-condition.d.ts +4 -4
  176. package/dist/es/conditions/if-then-else-condition.js +3 -3
  177. package/dist/es/conditions/if-then-else-condition.js.map +1 -1
  178. package/dist/es/conditions/index.d.ts +9 -9
  179. package/dist/es/conditions/index.js +9 -9
  180. package/dist/es/conditions/index.js.map +1 -1
  181. package/dist/es/conditions/multi-condition.d.ts +1 -1
  182. package/dist/es/conditions/multi-condition.js +3 -3
  183. package/dist/es/conditions/multi-condition.js.map +1 -1
  184. package/dist/es/conditions/predefined/erc20.d.ts +1 -1
  185. package/dist/es/conditions/predefined/erc20.js +1 -1
  186. package/dist/es/conditions/predefined/erc20.js.map +1 -1
  187. package/dist/es/conditions/predefined/erc721.d.ts +1 -1
  188. package/dist/es/conditions/predefined/erc721.js +1 -1
  189. package/dist/es/conditions/predefined/erc721.js.map +1 -1
  190. package/dist/es/conditions/predefined/index.d.ts +2 -2
  191. package/dist/es/conditions/predefined/index.js +2 -2
  192. package/dist/es/conditions/predefined/index.js.map +1 -1
  193. package/dist/es/conditions/schemas/common.d.ts +0 -2
  194. package/dist/es/conditions/schemas/common.js +3 -20
  195. package/dist/es/conditions/schemas/common.js.map +1 -1
  196. package/dist/es/conditions/schemas/compound.js +3 -3
  197. package/dist/es/conditions/schemas/compound.js.map +1 -1
  198. package/dist/es/conditions/schemas/context.js +2 -2
  199. package/dist/es/conditions/schemas/context.js.map +1 -1
  200. package/dist/es/conditions/schemas/contract.d.ts +30 -33
  201. package/dist/es/conditions/schemas/contract.js +2 -2
  202. package/dist/es/conditions/schemas/contract.js.map +1 -1
  203. package/dist/es/conditions/schemas/export-for-zod-doc-gen.d.ts +13 -16
  204. package/dist/es/conditions/schemas/export-for-zod-doc-gen.js +13 -17
  205. package/dist/es/conditions/schemas/export-for-zod-doc-gen.js.map +1 -1
  206. package/dist/es/conditions/schemas/if-then-else.js +3 -3
  207. package/dist/es/conditions/schemas/if-then-else.js.map +1 -1
  208. package/dist/es/conditions/schemas/json-api.d.ts +14 -47
  209. package/dist/es/conditions/schemas/json-api.js +5 -19
  210. package/dist/es/conditions/schemas/json-api.js.map +1 -1
  211. package/dist/es/conditions/schemas/json-rpc.d.ts +13 -48
  212. package/dist/es/conditions/schemas/json-rpc.js +5 -19
  213. package/dist/es/conditions/schemas/json-rpc.js.map +1 -1
  214. package/dist/es/conditions/schemas/jwt.d.ts +4 -2
  215. package/dist/es/conditions/schemas/jwt.js +2 -2
  216. package/dist/es/conditions/schemas/jwt.js.map +1 -1
  217. package/dist/es/conditions/schemas/return-value-test.d.ts +12 -28
  218. package/dist/es/conditions/schemas/return-value-test.js +6 -20
  219. package/dist/es/conditions/schemas/return-value-test.js.map +1 -1
  220. package/dist/es/conditions/schemas/rpc.d.ts +16 -22
  221. package/dist/es/conditions/schemas/rpc.js +3 -3
  222. package/dist/es/conditions/schemas/rpc.js.map +1 -1
  223. package/dist/es/conditions/schemas/sequential.js +14 -34
  224. package/dist/es/conditions/schemas/sequential.js.map +1 -1
  225. package/dist/es/conditions/schemas/time.d.ts +10 -18
  226. package/dist/es/conditions/schemas/time.js +1 -1
  227. package/dist/es/conditions/schemas/time.js.map +1 -1
  228. package/dist/es/conditions/schemas/utils.js +10 -17
  229. package/dist/es/conditions/schemas/utils.js.map +1 -1
  230. package/dist/es/conditions/sequential.d.ts +4 -4
  231. package/dist/es/conditions/sequential.js +3 -3
  232. package/dist/es/conditions/sequential.js.map +1 -1
  233. package/dist/es/conditions/shared.d.ts +2 -2
  234. package/dist/es/conditions/shared.js +2 -2
  235. package/dist/es/conditions/shared.js.map +1 -1
  236. package/dist/es/index.d.ts +3 -3
  237. package/dist/es/index.js +3 -3
  238. package/dist/es/index.js.map +1 -1
  239. package/dist/es/package.json +3 -0
  240. package/dist/es/taco.d.ts +82 -43
  241. package/dist/es/taco.js +25 -82
  242. package/dist/es/taco.js.map +1 -1
  243. package/dist/es/tdec.d.ts +2 -2
  244. package/dist/es/tdec.js +5 -5
  245. package/dist/es/tdec.js.map +1 -1
  246. package/dist/es/types.d.ts +0 -1
  247. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  248. package/dist/tsconfig.es.tsbuildinfo +1 -1
  249. package/package.json +12 -8
  250. package/dist/cjs/conditions/base/address-allowlist.d.ts +0 -10
  251. package/dist/cjs/conditions/base/address-allowlist.js +0 -19
  252. package/dist/cjs/conditions/base/address-allowlist.js.map +0 -1
  253. package/dist/cjs/conditions/base/ecdsa.d.ts +0 -7
  254. package/dist/cjs/conditions/base/ecdsa.js +0 -21
  255. package/dist/cjs/conditions/base/ecdsa.js.map +0 -1
  256. package/dist/cjs/conditions/base/signing.d.ts +0 -10
  257. package/dist/cjs/conditions/base/signing.js +0 -32
  258. package/dist/cjs/conditions/base/signing.js.map +0 -1
  259. package/dist/cjs/conditions/schemas/address-allowlist.d.ts +0 -16
  260. package/dist/cjs/conditions/schemas/address-allowlist.js +0 -20
  261. package/dist/cjs/conditions/schemas/address-allowlist.js.map +0 -1
  262. package/dist/cjs/conditions/schemas/ecdsa.d.ts +0 -38
  263. package/dist/cjs/conditions/schemas/ecdsa.js +0 -40
  264. package/dist/cjs/conditions/schemas/ecdsa.js.map +0 -1
  265. package/dist/cjs/conditions/schemas/signing.d.ts +0 -12
  266. package/dist/cjs/conditions/schemas/signing.js +0 -204
  267. package/dist/cjs/conditions/schemas/signing.js.map +0 -1
  268. package/dist/cjs/conditions/zod.d.ts +0 -3
  269. package/dist/cjs/conditions/zod.js +0 -19
  270. package/dist/cjs/conditions/zod.js.map +0 -1
  271. package/dist/cjs/sign.d.ts +0 -26
  272. package/dist/cjs/sign.js +0 -99
  273. package/dist/cjs/sign.js.map +0 -1
  274. package/dist/es/conditions/base/address-allowlist.d.ts +0 -10
  275. package/dist/es/conditions/base/address-allowlist.js +0 -15
  276. package/dist/es/conditions/base/address-allowlist.js.map +0 -1
  277. package/dist/es/conditions/base/ecdsa.d.ts +0 -7
  278. package/dist/es/conditions/base/ecdsa.js +0 -12
  279. package/dist/es/conditions/base/ecdsa.js.map +0 -1
  280. package/dist/es/conditions/base/signing.d.ts +0 -10
  281. package/dist/es/conditions/base/signing.js +0 -20
  282. package/dist/es/conditions/base/signing.js.map +0 -1
  283. package/dist/es/conditions/schemas/address-allowlist.d.ts +0 -16
  284. package/dist/es/conditions/schemas/address-allowlist.js +0 -17
  285. package/dist/es/conditions/schemas/address-allowlist.js.map +0 -1
  286. package/dist/es/conditions/schemas/ecdsa.d.ts +0 -38
  287. package/dist/es/conditions/schemas/ecdsa.js +0 -37
  288. package/dist/es/conditions/schemas/ecdsa.js.map +0 -1
  289. package/dist/es/conditions/schemas/signing.d.ts +0 -12
  290. package/dist/es/conditions/schemas/signing.js +0 -201
  291. package/dist/es/conditions/schemas/signing.js.map +0 -1
  292. package/dist/es/conditions/zod.d.ts +0 -3
  293. package/dist/es/conditions/zod.js +0 -17
  294. package/dist/es/conditions/zod.js.map +0 -1
  295. package/dist/es/sign.d.ts +0 -26
  296. package/dist/es/sign.js +0 -95
  297. package/dist/es/sign.js.map +0 -1
package/dist/cjs/sign.js DELETED
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signUserOp = signUserOp;
4
- exports.setSigningCohortConditions = setSigningCohortConditions;
5
- const shared_1 = require("@nucypher/shared");
6
- const ethers_1 = require("ethers");
7
- const condition_expr_1 = require("./conditions/condition-expr");
8
- const ERR_INSUFFICIENT_SIGNATURES = (errors) => `Threshold of signatures not met; TACo signing failed with errors: ${JSON.stringify(errors)}`;
9
- const ERR_MISMATCHED_HASHES = (hashToSignatures) => `Threshold of signatures not met; multiple mismatched hashes found: ${JSON.stringify(Object.fromEntries(hashToSignatures.entries()))}`;
10
- function aggregateSignatures(signaturesByAddress, threshold) {
11
- // Aggregate hex signatures by concatenating them; being careful to remove the '0x' prefix from each signature except the first one.
12
- const signatures = Object.values(signaturesByAddress)
13
- .map((sig) => sig.signature)
14
- .slice(0, threshold);
15
- if (signatures.length === 1) {
16
- return signatures[0];
17
- }
18
- // Concatenate signatures
19
- const allBytes = signatures.flatMap((hex) => Array.from((0, shared_1.fromHexString)(hex)));
20
- return `0x${(0, shared_1.toHexString)(new Uint8Array(allBytes))}`;
21
- }
22
- /**
23
- * Signs a UserOperation.
24
- * @param provider - The Ethereum provider to use for signing.
25
- * @param domain - The TACo domain being used.
26
- * @param cohortId - The cohort ID that identifies the signing cohort.
27
- * @param chainId - The chain ID for the signing operation.
28
- * @param userOp - The UserOperation to be signed.
29
- * @param aaVersion - The AA version of the account abstraction to use for signing.
30
- * @param context - Optional condition context for the context variable resolution.
31
- * @param porterUris - Optional URIs for the Porter service. If not provided, will fetch the default URIs from the domain.
32
- * @returns A promise that resolves to a SignResult containing the message hash, aggregated signature, and signing results from the Porter service.
33
- * @throws An error if the signing process fails due to insufficient signatures or mismatched hashes.
34
- */
35
- async function signUserOp(provider, domain, cohortId, chainId, userOp, aaVersion, context, porterUris) {
36
- const porterUrisFull = porterUris
37
- ? porterUris
38
- : await (0, shared_1.getPorterUris)(domain);
39
- const porter = new shared_1.PorterClient(porterUrisFull);
40
- const signers = await shared_1.SigningCoordinatorAgent.getParticipants(provider, domain, cohortId);
41
- const threshold = await shared_1.SigningCoordinatorAgent.getThreshold(provider, domain, cohortId);
42
- const pythonUserOp = (0, shared_1.convertUserOperationToPython)(userOp);
43
- const signingRequest = new shared_1.UserOperationSignatureRequest(pythonUserOp, aaVersion, cohortId, chainId, context || {}, 'userop');
44
- const signingRequests = Object.fromEntries(signers.map((signer) => [
45
- signer.provider,
46
- (0, shared_1.toBase64)(signingRequest.toBytes()),
47
- ]));
48
- // Build signing request for the user operation
49
- const porterSignResult = await porter.signUserOp(signingRequests, threshold);
50
- const hashToSignatures = new Map();
51
- // Single pass: decode signatures and populate signingResults
52
- for (const [ursulaAddress, signature] of Object.entries(porterSignResult.signingResults)) {
53
- // For non-optimistic: track hashes and group signatures for aggregation
54
- const hash = signature.messageHash;
55
- if (!hashToSignatures.has(hash)) {
56
- hashToSignatures.set(hash, {});
57
- }
58
- hashToSignatures.get(hash)[ursulaAddress] = signature;
59
- }
60
- let messageHash = undefined;
61
- let signaturesToAggregate = undefined;
62
- for (const [hash, signatures] of hashToSignatures.entries()) {
63
- if (Object.keys(signatures).length >= threshold) {
64
- signaturesToAggregate = signatures;
65
- messageHash = hash;
66
- break;
67
- }
68
- }
69
- // Insufficient signatures for a message hash to meet the threshold
70
- if (!messageHash || !signaturesToAggregate) {
71
- if (hashToSignatures.size > 1 &&
72
- Object.keys(porterSignResult.errors).length < signers.length - threshold) {
73
- // Two things are true:
74
- // 1. we have multiple hashes, which means we have mismatched hashes from different nodes
75
- // we don't really expect this to happen (other than some malicious nodes)
76
- // 2. number of errors still could have allowed for a threshold of signatures
77
- console.error('Porter returned mismatched message hashes:', hashToSignatures);
78
- throw new Error(ERR_MISMATCHED_HASHES(hashToSignatures));
79
- }
80
- else {
81
- throw new Error(ERR_INSUFFICIENT_SIGNATURES(porterSignResult.errors));
82
- }
83
- }
84
- const aggregatedSignature = aggregateSignatures(signaturesToAggregate, threshold);
85
- return {
86
- messageHash,
87
- aggregatedSignature,
88
- signingResults: porterSignResult.signingResults,
89
- };
90
- }
91
- async function setSigningCohortConditions(provider, domain, conditions, cohortId, chainId, signer) {
92
- // Convert Condition to ConditionExpression, then to JSON, then to bytes
93
- const conditionExpression = new condition_expr_1.ConditionExpression(conditions);
94
- const conditionsJson = conditionExpression.toJson();
95
- const conditionsBytes = ethers_1.ethers.utils.toUtf8Bytes(conditionsJson);
96
- // Set conditions on the SigningCoordinator contract
97
- return await shared_1.SigningCoordinatorAgent.setSigningCohortConditions(provider, domain, cohortId, chainId, conditionsBytes, signer);
98
- }
99
- //# sourceMappingURL=sign.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/sign.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { Condition } from '../condition';
2
- import { AddressAllowlistConditionProps, AddressAllowlistConditionType } from '../schemas/address-allowlist';
3
- import { OmitConditionType } from '../shared';
4
- export { AddressAllowlistConditionProps, AddressAllowlistConditionType };
5
- /**
6
- * A condition that checks if a wallet address is in a list of allowed addresses.
7
- */
8
- export declare class AddressAllowlistCondition extends Condition {
9
- constructor(value: OmitConditionType<AddressAllowlistConditionProps>);
10
- }
@@ -1,15 +0,0 @@
1
- import { Condition } from '../condition';
2
- import { addressAllowlistConditionSchema, AddressAllowlistConditionType, } from '../schemas/address-allowlist';
3
- export { AddressAllowlistConditionType };
4
- /**
5
- * A condition that checks if a wallet address is in a list of allowed addresses.
6
- */
7
- export class AddressAllowlistCondition extends Condition {
8
- constructor(value) {
9
- super(addressAllowlistConditionSchema, {
10
- conditionType: AddressAllowlistConditionType,
11
- ...value,
12
- });
13
- }
14
- }
15
- //# sourceMappingURL=address-allowlist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"address-allowlist.js","sourceRoot":"","sources":["../../../../src/conditions/base/address-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAEL,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAkC,6BAA6B,EAAE,CAAC;AAEzE;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,SAAS;IACtD,YAAY,KAAwD;QAClE,KAAK,CAAC,+BAA+B,EAAE;YACrC,aAAa,EAAE,6BAA6B;YAC5C,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,7 +0,0 @@
1
- import { Condition } from '../condition';
2
- import { ECDSAConditionProps } from '../schemas/ecdsa';
3
- import { OmitConditionType } from '../shared';
4
- export { ECDSA_MESSAGE_PARAM_DEFAULT, ECDSA_SIGNATURE_PARAM_DEFAULT, ECDSAConditionProps, ecdsaConditionSchema, ECDSAConditionType, ECDSACurve, SUPPORTED_ECDSA_CURVES, } from '../schemas/ecdsa';
5
- export declare class ECDSACondition extends Condition {
6
- constructor(value: OmitConditionType<ECDSAConditionProps>);
7
- }
@@ -1,12 +0,0 @@
1
- import { Condition } from '../condition';
2
- import { ecdsaConditionSchema, ECDSAConditionType, } from '../schemas/ecdsa';
3
- export { ECDSA_MESSAGE_PARAM_DEFAULT, ECDSA_SIGNATURE_PARAM_DEFAULT, ecdsaConditionSchema, ECDSAConditionType, SUPPORTED_ECDSA_CURVES, } from '../schemas/ecdsa';
4
- export class ECDSACondition extends Condition {
5
- constructor(value) {
6
- super(ecdsaConditionSchema, {
7
- conditionType: ECDSAConditionType,
8
- ...value,
9
- });
10
- }
11
- }
12
- //# sourceMappingURL=ecdsa.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../../../src/conditions/base/ecdsa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAEL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAE7B,oBAAoB,EACpB,kBAAkB,EAElB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC3C,YAAY,KAA6C;QACvD,KAAK,CAAC,oBAAoB,EAAE;YAC1B,aAAa,EAAE,kBAAkB;YACjC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,10 +0,0 @@
1
- import { Condition } from '../condition';
2
- import { SigningObjectAbiAttributeConditionProps, SigningObjectAttributeConditionProps } from '../schemas/signing';
3
- import { OmitConditionType } from '../shared';
4
- export { AbiCallValidationProps, abiCallValidationSchema, AbiParameterValidationProps, abiParameterValidationSchema, SIGNING_CONDITION_OBJECT_CONTEXT_VAR, SigningObjectAbiAttributeConditionProps, signingObjectAbiAttributeConditionSchema, SigningObjectAbiAttributeConditionType, SigningObjectAttributeConditionProps, signingObjectAttributeConditionSchema, SigningObjectAttributeConditionType, } from '../schemas/signing';
5
- export declare class SigningObjectAttributeCondition extends Condition {
6
- constructor(value: OmitConditionType<SigningObjectAttributeConditionProps>);
7
- }
8
- export declare class SigningObjectAbiAttributeCondition extends Condition {
9
- constructor(value: OmitConditionType<SigningObjectAbiAttributeConditionProps>);
10
- }
@@ -1,20 +0,0 @@
1
- import { Condition } from '../condition';
2
- import { signingObjectAbiAttributeConditionSchema, SigningObjectAbiAttributeConditionType, signingObjectAttributeConditionSchema, SigningObjectAttributeConditionType, } from '../schemas/signing';
3
- export { abiCallValidationSchema, abiParameterValidationSchema, SIGNING_CONDITION_OBJECT_CONTEXT_VAR, signingObjectAbiAttributeConditionSchema, SigningObjectAbiAttributeConditionType, signingObjectAttributeConditionSchema, SigningObjectAttributeConditionType, } from '../schemas/signing';
4
- export class SigningObjectAttributeCondition extends Condition {
5
- constructor(value) {
6
- super(signingObjectAttributeConditionSchema, {
7
- conditionType: SigningObjectAttributeConditionType,
8
- ...value,
9
- });
10
- }
11
- }
12
- export class SigningObjectAbiAttributeCondition extends Condition {
13
- constructor(value) {
14
- super(signingObjectAbiAttributeConditionSchema, {
15
- conditionType: SigningObjectAbiAttributeConditionType,
16
- ...value,
17
- });
18
- }
19
- }
20
- //# sourceMappingURL=signing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../../../src/conditions/base/signing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAEL,wCAAwC,EACxC,sCAAsC,EAEtC,qCAAqC,EACrC,mCAAmC,GACpC,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEL,uBAAuB,EAEvB,4BAA4B,EAC5B,oCAAoC,EAEpC,wCAAwC,EACxC,sCAAsC,EAEtC,qCAAqC,EACrC,mCAAmC,GACpC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,OAAO,+BAAgC,SAAQ,SAAS;IAC5D,YAAY,KAA8D;QACxE,KAAK,CAAC,qCAAqC,EAAE;YAC3C,aAAa,EAAE,mCAAmC;YAClD,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,kCAAmC,SAAQ,SAAS;IAC/D,YACE,KAAiE;QAEjE,KAAK,CAAC,wCAAwC,EAAE;YAC9C,aAAa,EAAE,sCAAsC;YACrD,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,16 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const AddressAllowlistConditionType = "address-allowlist";
3
- export declare const addressAllowlistConditionSchema: z.ZodObject<{} & {
4
- conditionType: z.ZodLiteral<"address-allowlist">;
5
- userAddress: z.ZodLiteral<":userAddress">;
6
- addresses: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
7
- }, "strict", z.ZodTypeAny, {
8
- conditionType: "address-allowlist";
9
- userAddress: ":userAddress";
10
- addresses: string[];
11
- }, {
12
- conditionType: "address-allowlist";
13
- userAddress: ":userAddress";
14
- addresses: string[];
15
- }>;
16
- export type AddressAllowlistConditionProps = z.infer<typeof addressAllowlistConditionSchema>;
@@ -1,17 +0,0 @@
1
- import { EthAddressSchemaStrict } from '@nucypher/shared';
2
- import { z } from 'zod';
3
- import { baseConditionSchema, UserAddressSchema } from './common';
4
- export const AddressAllowlistConditionType = 'address-allowlist';
5
- export const addressAllowlistConditionSchema = baseConditionSchema
6
- .extend({
7
- conditionType: z.literal(AddressAllowlistConditionType),
8
- userAddress: UserAddressSchema,
9
- addresses: z
10
- .array(EthAddressSchemaStrict)
11
- .min(1, 'At least one address must be provided')
12
- .max(25, 'A maximum of 25 addresses is allowed')
13
- .describe('List of wallet addresses allowed to decrypt. Addresses should be provided in checksummed form.'),
14
- })
15
- .strict()
16
- .describe('Address Allowlist Condition for allowing decryption for specific wallet addresses. It is very handy when combined with other conditions.');
17
- //# sourceMappingURL=address-allowlist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"address-allowlist.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/address-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElE,MAAM,CAAC,MAAM,6BAA6B,GAAG,mBAAmB,CAAC;AAEjE,MAAM,CAAC,MAAM,+BAA+B,GAAG,mBAAmB;KAC/D,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACvD,WAAW,EAAE,iBAAiB;IAC9B,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,sBAAsB,CAAC;SAC7B,GAAG,CAAC,CAAC,EAAE,uCAAuC,CAAC;SAC/C,GAAG,CAAC,EAAE,EAAE,sCAAsC,CAAC;SAC/C,QAAQ,CACP,gGAAgG,CACjG;CACJ,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,CACP,0IAA0I,CAC3I,CAAC"}
@@ -1,38 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const ECDSA_MESSAGE_PARAM_DEFAULT = ":message";
3
- export declare const ECDSA_SIGNATURE_PARAM_DEFAULT = ":signature";
4
- export declare const ECDSAConditionType = "ecdsa";
5
- export declare const SUPPORTED_ECDSA_CURVES: readonly ["SECP256k1", "NIST256p", "NIST384p", "NIST521p", "Ed25519", "BRAINPOOLP256r1"];
6
- export type ECDSACurve = (typeof SUPPORTED_ECDSA_CURVES)[number];
7
- export declare const ecdsaConditionSchema: z.ZodEffects<z.ZodObject<{} & {
8
- conditionType: z.ZodDefault<z.ZodLiteral<"ecdsa">>;
9
- message: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodString]>>;
10
- signature: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodString]>>;
11
- verifyingKey: z.ZodString;
12
- curve: z.ZodEnum<["SECP256k1", "NIST256p", "NIST384p", "NIST521p", "Ed25519", "BRAINPOOLP256r1"]>;
13
- }, "strip", z.ZodTypeAny, {
14
- message: string;
15
- conditionType: "ecdsa";
16
- signature: string;
17
- verifyingKey: string;
18
- curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
19
- }, {
20
- verifyingKey: string;
21
- curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
22
- message?: string | undefined;
23
- conditionType?: "ecdsa" | undefined;
24
- signature?: string | undefined;
25
- }>, {
26
- message: string;
27
- conditionType: "ecdsa";
28
- signature: string;
29
- verifyingKey: string;
30
- curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
31
- }, {
32
- verifyingKey: string;
33
- curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
34
- message?: string | undefined;
35
- conditionType?: "ecdsa" | undefined;
36
- signature?: string | undefined;
37
- }>;
38
- export type ECDSAConditionProps = z.infer<typeof ecdsaConditionSchema>;
@@ -1,37 +0,0 @@
1
- import { z } from 'zod';
2
- import { baseConditionSchema, hexStringSchema } from './common';
3
- import { contextParamSchema } from './context';
4
- export const ECDSA_MESSAGE_PARAM_DEFAULT = ':message';
5
- export const ECDSA_SIGNATURE_PARAM_DEFAULT = ':signature';
6
- export const ECDSAConditionType = 'ecdsa';
7
- export const SUPPORTED_ECDSA_CURVES = [
8
- 'SECP256k1',
9
- 'NIST256p',
10
- 'NIST384p',
11
- 'NIST521p',
12
- 'Ed25519',
13
- 'BRAINPOOLP256r1',
14
- ];
15
- export const ecdsaConditionSchema = baseConditionSchema
16
- .extend({
17
- conditionType: z.literal(ECDSAConditionType).default(ECDSAConditionType),
18
- message: z
19
- .union([z.string(), contextParamSchema])
20
- .default(ECDSA_MESSAGE_PARAM_DEFAULT),
21
- signature: z
22
- .union([hexStringSchema, contextParamSchema])
23
- .default(ECDSA_SIGNATURE_PARAM_DEFAULT),
24
- verifyingKey: hexStringSchema,
25
- curve: z.enum(SUPPORTED_ECDSA_CURVES),
26
- })
27
- .refine((data) => {
28
- // ensure that if message starts with 0x that it is valid hex
29
- if (data.message.startsWith('0x'))
30
- return hexStringSchema.safeParse(data.message.slice(2)).success;
31
- return true;
32
- }, {
33
- message: 'Message must be a valid hex string if it starts with "0x"',
34
- path: ['message'],
35
- })
36
- .describe('ECDSA Condition for verifying the authenticity of a message using ECDSA signatures.');
37
- //# sourceMappingURL=ecdsa.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/ecdsa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAC;AACtD,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,iBAAiB;CACT,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB;KACpD,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACxE,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC;SACvC,OAAO,CAAC,2BAA2B,CAAC;IACvC,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;SAC5C,OAAO,CAAC,6BAA6B,CAAC;IACzC,YAAY,EAAE,eAAe;IAC7B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;CACtC,CAAC;KACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;IACP,6DAA6D;IAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAC/B,OAAO,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,OAAO,EAAE,2DAA2D;IACpE,IAAI,EAAE,CAAC,SAAS,CAAC;CAClB,CACF;KACA,QAAQ,CACP,qFAAqF,CACtF,CAAC"}
@@ -1,12 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const SIGNING_CONDITION_OBJECT_CONTEXT_VAR = ":signingConditionObject";
3
- export declare const SigningObjectAttributeConditionType = "signing-attribute";
4
- export declare const signingObjectAttributeConditionSchema: z.ZodSchema;
5
- export type SigningObjectAttributeConditionProps = z.infer<typeof signingObjectAttributeConditionSchema>;
6
- export declare const abiParameterValidationSchema: z.ZodSchema;
7
- export type AbiParameterValidationProps = z.infer<typeof abiParameterValidationSchema>;
8
- export declare const abiCallValidationSchema: z.ZodSchema;
9
- export type AbiCallValidationProps = z.infer<typeof abiCallValidationSchema>;
10
- export declare const SigningObjectAbiAttributeConditionType = "signing-abi-attribute";
11
- export declare const signingObjectAbiAttributeConditionSchema: z.ZodSchema;
12
- export type SigningObjectAbiAttributeConditionProps = z.infer<typeof signingObjectAbiAttributeConditionSchema>;
@@ -1,201 +0,0 @@
1
- import { FunctionFragment } from 'ethers/lib/utils';
2
- import { z } from 'zod';
3
- import { baseConditionSchema } from './common';
4
- import { blockchainReturnValueTestSchema } from './return-value-test';
5
- export const SIGNING_CONDITION_OBJECT_CONTEXT_VAR = ':signingConditionObject';
6
- const signingConditionSchema = baseConditionSchema.extend({
7
- signingObjectContextVar: z
8
- .literal(SIGNING_CONDITION_OBJECT_CONTEXT_VAR)
9
- .default(SIGNING_CONDITION_OBJECT_CONTEXT_VAR)
10
- .describe('The context variable that will be replaced with the signing object at signing'),
11
- });
12
- const baseSigningObjectAttributeConditionSchema = signingConditionSchema.extend({
13
- attributeName: z
14
- .string()
15
- .min(1)
16
- .describe('The name of the attribute to check'),
17
- });
18
- export const SigningObjectAttributeConditionType = 'signing-attribute';
19
- export const signingObjectAttributeConditionSchema = baseSigningObjectAttributeConditionSchema.extend({
20
- conditionType: z
21
- .literal(SigningObjectAttributeConditionType)
22
- .default(SigningObjectAttributeConditionType),
23
- returnValueTest: blockchainReturnValueTestSchema,
24
- });
25
- export const abiParameterValidationSchema = z
26
- .object({
27
- parameterIndex: z
28
- .number()
29
- .int()
30
- .nonnegative()
31
- .describe('Index of parameter to check within abi calldata.'),
32
- indexWithinTuple: z
33
- .number()
34
- .int()
35
- .nonnegative()
36
- .optional()
37
- .describe('Index of value within tuple value at parameter index to check'),
38
- returnValueTest: blockchainReturnValueTestSchema
39
- .optional()
40
- .describe('Comparison check for value within calldata'),
41
- nestedAbiValidation: z
42
- .lazy(() => abiCallValidationSchema)
43
- .optional()
44
- .describe('Additional checks for nested abi calldata'),
45
- })
46
- .refine(
47
- // An XOR check to see if either 'returnValueTest' or 'nestedAbiValidation' is set
48
- (parameterValidation) => Boolean(parameterValidation.returnValueTest) !==
49
- Boolean(parameterValidation.nestedAbiValidation), {
50
- message: "At most one of the fields 'returnValueTest' and 'nestedAbiValidation' must be defined",
51
- path: ['returnValueTest'],
52
- });
53
- // TODO: is there something already built out there to validate Solidity types?
54
- function generateSolidityBaseTypeRegExp() {
55
- // Generate a regex pattern for Solidity base types
56
- // Generate int/uint sizes (8, 16, ..., 256)
57
- const intSizes = Array.from({ length: 32 }, (_, i) => (i + 1) * 8); // [8, 16, ..., 256]
58
- const intSizePattern = intSizes.join('|');
59
- // Generate bytes sizes (1, 2, ..., 32)
60
- const bytesSizes = Array.from({ length: 32 }, (_, i) => i + 1); // [1, 2, ..., 32]
61
- const bytesSizePattern = bytesSizes.join('|');
62
- // Build the regex string
63
- const baseTypes = [
64
- `u?int(${intSizePattern})?`, // uint8, uint16, ..., uint256, int8, int16, ..., int256
65
- `bytes(${bytesSizePattern})?`, // bytes1, bytes2, ..., bytes32
66
- 'string',
67
- 'address',
68
- 'bool',
69
- ].join('|');
70
- return new RegExp(`^(${baseTypes})$`);
71
- }
72
- // YIKES!
73
- const solidityBaseTypePattern = generateSolidityBaseTypeRegExp();
74
- const isValidSolidityType = (param) => {
75
- // Recursive check for valid Solidity types
76
- if (!param.baseType || !param.baseType.trim()) {
77
- return false; // empty type is not valid
78
- }
79
- // Check for arrays and tuples
80
- if (param.baseType === 'tuple') {
81
- if (!param.components || param.components.length === 0) {
82
- return false; // tuples must have components defined
83
- }
84
- return param.components.every(isValidSolidityType);
85
- }
86
- else if (param.baseType === 'array') {
87
- if (!param.arrayChildren) {
88
- return false; // arrays must have children type defined
89
- }
90
- return isValidSolidityType(param.arrayChildren);
91
- }
92
- else {
93
- return solidityBaseTypePattern.test(param.baseType);
94
- }
95
- };
96
- // TODO; find a better way to validate the param type - incomplete best effort for now
97
- const isValidHumanAbiCallSignature = (signature) => {
98
- try {
99
- // TODO: verify this works properly
100
- const fragment = FunctionFragment.from(signature);
101
- for (const parameter of fragment.inputs) {
102
- if (!isValidSolidityType(parameter)) {
103
- return false; // invalid Solidity type
104
- }
105
- }
106
- // ensure the same sighash format was provided
107
- return fragment.format() === signature;
108
- }
109
- catch {
110
- return false;
111
- }
112
- };
113
- const humanAbiCallSignatureSchema = z
114
- .string()
115
- .refine(isValidHumanAbiCallSignature, {
116
- message: 'Invalid human readable ABI signature provided',
117
- })
118
- .describe('A human readable ABI signature, e.g. "transfer(address,uint256)"');
119
- /**
120
- * Validates the allowed ABI calls against the provided signature and validations.
121
- * This function is used in the superRefine method of the abiCallValidationSchema.
122
- *
123
- * @param ctx - The Zod refinement context.
124
- * @param signature - The ABI signature to validate against.
125
- * @param validations - The array of validations for the ABI parameters.
126
- */
127
- function validateAllowedAbiCall(ctx, signature, validations) {
128
- try {
129
- const fragment = FunctionFragment.from(signature);
130
- for (const [index, validation] of validations.entries()) {
131
- if (validation.parameterIndex >= fragment.inputs.length) {
132
- // invalid parameter index
133
- ctx.addIssue({
134
- code: z.ZodIssueCode.custom,
135
- message: `Parameter index, "${validation.parameterIndex}", is out of range`,
136
- path: ['allowedAbiCalls', signature, index, 'parameterIndex'],
137
- });
138
- }
139
- if (validation.indexWithinTuple !== undefined) {
140
- const paramType = fragment.inputs[validation.parameterIndex];
141
- if (paramType.baseType !== 'tuple') {
142
- // type at parameter index is not a tuple
143
- ctx.addIssue({
144
- code: z.ZodIssueCode.custom,
145
- message: `Type at parameter index, "${validation.parameterIndex}", is not a tuple`,
146
- path: ['allowedAbiCalls', signature, index, 'parameterIndex'],
147
- });
148
- }
149
- else if (validation.indexWithinTuple >= paramType.components.length) {
150
- // invalid index within tuple
151
- ctx.addIssue({
152
- code: z.ZodIssueCode.custom,
153
- message: `Index within tuple, "${validation.indexWithinTuple}", is out of range`,
154
- path: ['allowedAbiCalls', signature, index, 'indexWithinTuple'],
155
- });
156
- }
157
- }
158
- if (validation.nestedAbiValidation) {
159
- // if there is nested ABI validation, the type must be bytes
160
- let paramType = fragment.inputs[validation.parameterIndex];
161
- if (validation.indexWithinTuple !== undefined) {
162
- // if there is an index within tuple, get the type of the component at that index
163
- paramType = paramType.components[validation.indexWithinTuple];
164
- }
165
- if (paramType.baseType !== 'bytes') {
166
- ctx.addIssue({
167
- code: z.ZodIssueCode.custom,
168
- message: `Invalid type for nested ABI validation, "${paramType.baseType}"; expected bytes`,
169
- path: ['allowedAbiCalls', signature, index],
170
- });
171
- }
172
- }
173
- }
174
- }
175
- catch {
176
- // even though abi signatures are already validated by nested schema - zod uses “greedy” (continuable) validation so all validations are run
177
- // ignore invalid ABI signature
178
- }
179
- }
180
- export const abiCallValidationSchema = z
181
- .object({
182
- allowedAbiCalls: z.record(humanAbiCallSignatureSchema, z.array(abiParameterValidationSchema)),
183
- })
184
- .refine((abiCallValidation) => Object.keys(abiCallValidation.allowedAbiCalls).length > 0, {
185
- message: 'At least one allowed ABI call must be defined',
186
- path: ['allowedAbiCalls'],
187
- })
188
- .superRefine((data, ctx) => {
189
- for (const [signature, validations] of Object.entries(data.allowedAbiCalls)) {
190
- validateAllowedAbiCall(ctx, signature, validations);
191
- }
192
- })
193
- .describe('A map of allowed ABI calls with their respective parameter validations.');
194
- export const SigningObjectAbiAttributeConditionType = 'signing-abi-attribute';
195
- export const signingObjectAbiAttributeConditionSchema = baseSigningObjectAttributeConditionSchema.extend({
196
- conditionType: z
197
- .literal(SigningObjectAbiAttributeConditionType)
198
- .default(SigningObjectAbiAttributeConditionType),
199
- abiValidation: abiCallValidationSchema,
200
- });
201
- //# sourceMappingURL=signing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/signing.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Primitive, z } from 'zod';
2
- declare function createUnionSchema<T extends readonly Primitive[]>(values: T): z.ZodNever | z.ZodLiteral<Primitive> | z.ZodUnion<[z.ZodLiteral<Primitive>, z.ZodLiteral<Primitive>, ...z.ZodLiteral<Primitive>[]]>;
3
- export default createUnionSchema;
@@ -1,17 +0,0 @@
1
- import { z } from 'zod';
2
- // Source: https://github.com/colinhacks/zod/issues/831#issuecomment-1063481764
3
- const createUnion = (values) => {
4
- const zodLiterals = values.map((value) => z.literal(value));
5
- return z.union(zodLiterals);
6
- };
7
- function createUnionSchema(values) {
8
- if (values.length === 0) {
9
- return z.never();
10
- }
11
- if (values.length === 1) {
12
- return z.literal(values[0]);
13
- }
14
- return createUnion(values);
15
- }
16
- export default createUnionSchema;
17
- //# sourceMappingURL=zod.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../src/conditions/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,CAAC,EAAc,MAAM,KAAK,CAAC;AAE/C,+EAA+E;AAC/E,MAAM,WAAW,GAAG,CAGlB,MAAS,EACT,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAIzD,CAAC;IACF,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,SAAS,iBAAiB,CAAiC,MAAS;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,WAAW,CAChB,MAAqE,CACtE,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
package/dist/es/sign.d.ts DELETED
@@ -1,26 +0,0 @@
1
- import { Domain, TacoSignature, UserOperation } from '@nucypher/shared';
2
- import { ethers } from 'ethers';
3
- import { Condition } from './conditions/condition';
4
- import { ConditionContext } from './conditions/context';
5
- export type SignResult = {
6
- messageHash: string;
7
- aggregatedSignature: string;
8
- signingResults: {
9
- [ursulaAddress: string]: TacoSignature;
10
- };
11
- };
12
- /**
13
- * Signs a UserOperation.
14
- * @param provider - The Ethereum provider to use for signing.
15
- * @param domain - The TACo domain being used.
16
- * @param cohortId - The cohort ID that identifies the signing cohort.
17
- * @param chainId - The chain ID for the signing operation.
18
- * @param userOp - The UserOperation to be signed.
19
- * @param aaVersion - The AA version of the account abstraction to use for signing.
20
- * @param context - Optional condition context for the context variable resolution.
21
- * @param porterUris - Optional URIs for the Porter service. If not provided, will fetch the default URIs from the domain.
22
- * @returns A promise that resolves to a SignResult containing the message hash, aggregated signature, and signing results from the Porter service.
23
- * @throws An error if the signing process fails due to insufficient signatures or mismatched hashes.
24
- */
25
- export declare function signUserOp(provider: ethers.providers.Provider, domain: Domain, cohortId: number, chainId: number, userOp: UserOperation, aaVersion: 'mdt' | '0.8.0' | string, context?: ConditionContext, porterUris?: string[]): Promise<SignResult>;
26
- export declare function setSigningCohortConditions(provider: ethers.providers.JsonRpcProvider, domain: Domain, conditions: Condition, cohortId: number, chainId: number, signer: ethers.Signer): Promise<ethers.ContractTransaction>;