@intent-engine/core 0.1.41 → 0.1.43

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 (178) hide show
  1. package/dist/generated/client/accounts/claimBoard.d.ts +4 -0
  2. package/dist/generated/client/accounts/claimBoard.js +5 -1
  3. package/dist/generated/client/accounts/claimBoard.js.map +1 -1
  4. package/dist/generated/client/accounts/config.d.ts +4 -0
  5. package/dist/generated/client/accounts/config.js +5 -1
  6. package/dist/generated/client/accounts/config.js.map +1 -1
  7. package/dist/generated/client/accounts/index.d.ts +1 -0
  8. package/dist/generated/client/accounts/index.js +1 -0
  9. package/dist/generated/client/accounts/index.js.map +1 -1
  10. package/dist/generated/client/accounts/intent.d.ts +6 -2
  11. package/dist/generated/client/accounts/intent.js +8 -4
  12. package/dist/generated/client/accounts/intent.js.map +1 -1
  13. package/dist/generated/client/accounts/mintCap.d.ts +6 -0
  14. package/dist/generated/client/accounts/mintCap.js +8 -2
  15. package/dist/generated/client/accounts/mintCap.js.map +1 -1
  16. package/dist/generated/client/accounts/profile.d.ts +2 -2
  17. package/dist/generated/client/accounts/profile.js +2 -2
  18. package/dist/generated/client/accounts/profile.js.map +1 -1
  19. package/dist/generated/client/accounts/standby.d.ts +42 -0
  20. package/dist/generated/client/accounts/standby.js +69 -0
  21. package/dist/generated/client/accounts/standby.js.map +1 -0
  22. package/dist/generated/client/errors/intentEngine.d.ts +33 -1
  23. package/dist/generated/client/errors/intentEngine.js +48 -0
  24. package/dist/generated/client/errors/intentEngine.js.map +1 -1
  25. package/dist/generated/client/events/accountMigrated.d.ts +38 -0
  26. package/dist/generated/client/events/accountMigrated.js +50 -0
  27. package/dist/generated/client/events/accountMigrated.js.map +1 -0
  28. package/dist/generated/client/events/committeeFloorSet.d.ts +26 -0
  29. package/dist/generated/client/events/committeeFloorSet.js +38 -0
  30. package/dist/generated/client/events/committeeFloorSet.js.map +1 -0
  31. package/dist/generated/client/events/index.d.ts +5 -0
  32. package/dist/generated/client/events/index.js +5 -0
  33. package/dist/generated/client/events/index.js.map +1 -1
  34. package/dist/generated/client/events/legacyClosed.d.ts +30 -0
  35. package/dist/generated/client/events/legacyClosed.js +42 -0
  36. package/dist/generated/client/events/legacyClosed.js.map +1 -0
  37. package/dist/generated/client/events/lineLeft.d.ts +30 -0
  38. package/dist/generated/client/events/lineLeft.js +42 -0
  39. package/dist/generated/client/events/lineLeft.js.map +1 -0
  40. package/dist/generated/client/events/mintCapSet.d.ts +4 -0
  41. package/dist/generated/client/events/mintCapSet.js +4 -0
  42. package/dist/generated/client/events/mintCapSet.js.map +1 -1
  43. package/dist/generated/client/events/profileSet.d.ts +1 -0
  44. package/dist/generated/client/events/profileSet.js +2 -0
  45. package/dist/generated/client/events/profileSet.js.map +1 -1
  46. package/dist/generated/client/events/stoodBy.d.ts +32 -0
  47. package/dist/generated/client/events/stoodBy.js +46 -0
  48. package/dist/generated/client/events/stoodBy.js.map +1 -0
  49. package/dist/generated/client/instructions/advance.d.ts +79 -0
  50. package/dist/generated/client/instructions/advance.js +167 -0
  51. package/dist/generated/client/instructions/advance.js.map +1 -0
  52. package/dist/generated/client/instructions/beginFill.d.ts +13 -9
  53. package/dist/generated/client/instructions/beginFill.js +15 -2
  54. package/dist/generated/client/instructions/beginFill.js.map +1 -1
  55. package/dist/generated/client/instructions/cancelIntent.d.ts +13 -9
  56. package/dist/generated/client/instructions/cancelIntent.js +15 -2
  57. package/dist/generated/client/instructions/cancelIntent.js.map +1 -1
  58. package/dist/generated/client/instructions/claimJob.d.ts +13 -9
  59. package/dist/generated/client/instructions/claimJob.js +15 -2
  60. package/dist/generated/client/instructions/claimJob.js.map +1 -1
  61. package/dist/generated/client/instructions/closeIntent.d.ts +13 -9
  62. package/dist/generated/client/instructions/closeIntent.js +21 -2
  63. package/dist/generated/client/instructions/closeIntent.js.map +1 -1
  64. package/dist/generated/client/instructions/closeLegacy.d.ts +61 -0
  65. package/dist/generated/client/instructions/closeLegacy.js +113 -0
  66. package/dist/generated/client/instructions/closeLegacy.js.map +1 -0
  67. package/dist/generated/client/instructions/createIntent.d.ts +14 -10
  68. package/dist/generated/client/instructions/createIntent.js +15 -2
  69. package/dist/generated/client/instructions/createIntent.js.map +1 -1
  70. package/dist/generated/client/instructions/createIntentSigned.d.ts +14 -10
  71. package/dist/generated/client/instructions/createIntentSigned.js +15 -2
  72. package/dist/generated/client/instructions/createIntentSigned.js.map +1 -1
  73. package/dist/generated/client/instructions/dropClaim.d.ts +29 -9
  74. package/dist/generated/client/instructions/dropClaim.js +41 -2
  75. package/dist/generated/client/instructions/dropClaim.js.map +1 -1
  76. package/dist/generated/client/instructions/expireIntent.d.ts +13 -9
  77. package/dist/generated/client/instructions/expireIntent.js +21 -2
  78. package/dist/generated/client/instructions/expireIntent.js.map +1 -1
  79. package/dist/generated/client/instructions/fillAttested.d.ts +13 -9
  80. package/dist/generated/client/instructions/fillAttested.js +15 -2
  81. package/dist/generated/client/instructions/fillAttested.js.map +1 -1
  82. package/dist/generated/client/instructions/fillAttestedCommittee.d.ts +13 -9
  83. package/dist/generated/client/instructions/fillAttestedCommittee.js +15 -2
  84. package/dist/generated/client/instructions/fillAttestedCommittee.js.map +1 -1
  85. package/dist/generated/client/instructions/fillAttestedSplit.d.ts +13 -9
  86. package/dist/generated/client/instructions/fillAttestedSplit.js +15 -2
  87. package/dist/generated/client/instructions/fillAttestedSplit.js.map +1 -1
  88. package/dist/generated/client/instructions/fillAttestedSplitCommittee.d.ts +13 -9
  89. package/dist/generated/client/instructions/fillAttestedSplitCommittee.js +15 -2
  90. package/dist/generated/client/instructions/fillAttestedSplitCommittee.js.map +1 -1
  91. package/dist/generated/client/instructions/fillIntent.d.ts +13 -9
  92. package/dist/generated/client/instructions/fillIntent.js +15 -2
  93. package/dist/generated/client/instructions/fillIntent.js.map +1 -1
  94. package/dist/generated/client/instructions/index.d.ts +6 -0
  95. package/dist/generated/client/instructions/index.js +6 -0
  96. package/dist/generated/client/instructions/index.js.map +1 -1
  97. package/dist/generated/client/instructions/leave.d.ts +68 -0
  98. package/dist/generated/client/instructions/leave.js +142 -0
  99. package/dist/generated/client/instructions/leave.js.map +1 -0
  100. package/dist/generated/client/instructions/migrate.d.ts +52 -0
  101. package/dist/generated/client/instructions/migrate.js +109 -0
  102. package/dist/generated/client/instructions/migrate.js.map +1 -0
  103. package/dist/generated/client/instructions/setCommitteeFloor.d.ts +53 -0
  104. package/dist/generated/client/instructions/setCommitteeFloor.js +96 -0
  105. package/dist/generated/client/instructions/setCommitteeFloor.js.map +1 -0
  106. package/dist/generated/client/instructions/setMintCap.d.ts +4 -0
  107. package/dist/generated/client/instructions/setMintCap.js +2 -0
  108. package/dist/generated/client/instructions/setMintCap.js.map +1 -1
  109. package/dist/generated/client/instructions/standBy.d.ts +76 -0
  110. package/dist/generated/client/instructions/standBy.js +176 -0
  111. package/dist/generated/client/instructions/standBy.js.map +1 -0
  112. package/dist/generated/client/pdas/entry.d.ts +15 -0
  113. package/dist/generated/client/pdas/entry.js +20 -0
  114. package/dist/generated/client/pdas/entry.js.map +1 -0
  115. package/dist/generated/client/pdas/index.d.ts +1 -0
  116. package/dist/generated/client/pdas/index.js +1 -0
  117. package/dist/generated/client/pdas/index.js.map +1 -1
  118. package/dist/generated/client/programs/intentEngine.d.ts +190 -146
  119. package/dist/generated/client/programs/intentEngine.js +259 -146
  120. package/dist/generated/client/programs/intentEngine.js.map +1 -1
  121. package/dist/generated/client/types/profileFields.d.ts +1 -0
  122. package/dist/generated/client/types/profileFields.js +2 -0
  123. package/dist/generated/client/types/profileFields.js.map +1 -1
  124. package/dist/src/claims.d.ts +33 -3
  125. package/dist/src/claims.js +54 -2
  126. package/dist/src/claims.js.map +1 -1
  127. package/dist/src/committee-floors.d.ts +21 -0
  128. package/dist/src/committee-floors.js +27 -0
  129. package/dist/src/committee-floors.js.map +1 -0
  130. package/dist/src/committee.d.ts +4 -4
  131. package/dist/src/committee.js +14 -17
  132. package/dist/src/committee.js.map +1 -1
  133. package/dist/src/encryption-key.d.ts +28 -0
  134. package/dist/src/encryption-key.js +94 -0
  135. package/dist/src/encryption-key.js.map +1 -0
  136. package/dist/src/errors.d.ts +1 -1
  137. package/dist/src/errors.js +3 -0
  138. package/dist/src/errors.js.map +1 -1
  139. package/dist/src/events.d.ts +6 -1
  140. package/dist/src/events.js +7 -1
  141. package/dist/src/events.js.map +1 -1
  142. package/dist/src/fill-builders.d.ts +7 -5
  143. package/dist/src/fill-builders.js +4 -0
  144. package/dist/src/fill-builders.js.map +1 -1
  145. package/dist/src/index.d.ts +4 -0
  146. package/dist/src/index.js +4 -0
  147. package/dist/src/index.js.map +1 -1
  148. package/dist/src/intent-builders.d.ts +8 -6
  149. package/dist/src/intent-builders.js +6 -1
  150. package/dist/src/intent-builders.js.map +1 -1
  151. package/dist/src/memo.d.ts +7 -1
  152. package/dist/src/memo.js +18 -4
  153. package/dist/src/memo.js.map +1 -1
  154. package/dist/src/migrate.d.ts +25 -0
  155. package/dist/src/migrate.js +46 -0
  156. package/dist/src/migrate.js.map +1 -0
  157. package/dist/src/mint-caps.d.ts +5 -1
  158. package/dist/src/mint-caps.js +13 -2
  159. package/dist/src/mint-caps.js.map +1 -1
  160. package/dist/src/profile.d.ts +2 -0
  161. package/dist/src/profile.js +13 -4
  162. package/dist/src/profile.js.map +1 -1
  163. package/dist/src/sealed-delivery.d.ts +54 -10
  164. package/dist/src/sealed-delivery.js +183 -55
  165. package/dist/src/sealed-delivery.js.map +1 -1
  166. package/dist/src/sealed.d.ts +1 -0
  167. package/dist/src/sealed.js +2 -2
  168. package/dist/src/sealed.js.map +1 -1
  169. package/dist/src/sig.d.ts +17 -4
  170. package/dist/src/sig.js +80 -10
  171. package/dist/src/sig.js.map +1 -1
  172. package/dist/src/state.d.ts +3 -3
  173. package/dist/src/state.js +3 -3
  174. package/dist/src/versions.d.ts +56 -0
  175. package/dist/src/versions.js +126 -0
  176. package/dist/src/versions.js.map +1 -0
  177. package/generated/idl.json +996 -45
  178. package/package.json +2 -1
@@ -1,63 +1,126 @@
1
- import { getAddressDecoder, getAddressEncoder, isAddress } from "@solana/kit";
1
+ import { getAddressEncoder, getBase58Encoder, isAddress } from "@solana/kit";
2
2
  import { PRODUCT_SLUG } from "../generated/identity.js";
3
3
  import { MAX_COMMITTEE_MEMBERS } from "./committee.js";
4
4
  import { isMemoUrl, isSha256Hex, MAX_MEMO_URL, MEMO_URL_RULE } from "./memo.js";
5
- import { SealedError, wrapKey, x25519PublicOf, x25519SecretOf } from "./sealed.js";
6
- export const DELIVERY_V2_MEMO_PREFIX = `${PRODUCT_SLUG}-delivery2:`;
7
- export const COMMITMENT_TAG = `${PRODUCT_SLUG}-delivery-v2`;
8
- export const SEALED_URL_VERSION = 1;
9
- export const MAX_DELIVERY_V2_MEMO = 960;
5
+ import { deliveryKeyOf, ENCRYPTION_KEY_BYTES } from "./encryption-key.js";
6
+ import { SealedError, wrapKey, x25519PublicOf } from "./sealed.js";
7
+ export const DELIVERY_MEMO_MARK = `${PRODUCT_SLUG}-delivery3`;
8
+ export const DELIVERY_MEMO_PREFIX = `${DELIVERY_MEMO_MARK}:`;
9
+ export const OPENING_MEMO_PREFIX = `${DELIVERY_MEMO_MARK}-open:`;
10
+ export const COMMITMENT_TAG = `${PRODUCT_SLUG}-delivery-v3`;
11
+ export const SALT_TAG = `${PRODUCT_SLUG}-delivery-salt-v3`;
12
+ export const SALT_CHECK_TAG = `${PRODUCT_SLUG}-delivery-check-v3`;
13
+ export const SALT_BYTES = 16;
14
+ export const SEALED_URL_VERSION = 3;
15
+ export const MAX_DELIVERY_MEMO = 960;
16
+ export const MAX_OPENING_MEMO = MAX_DELIVERY_MEMO;
10
17
  export const MAX_SEALED_URL_RECIPIENTS = MAX_COMMITTEE_MEMBERS;
11
- const INFO = new TextEncoder().encode(`${PRODUCT_SLUG}-sealed-url-v1`);
18
+ export const UNOPENED = "-";
19
+ const INFO = new TextEncoder().encode(`${PRODUCT_SLUG}-sealed-url-v2`);
12
20
  const KEY_BYTES = 32;
13
21
  const IV_BYTES = 12;
14
22
  const TAG_BYTES = 16;
15
23
  const WRAPPED_BYTES = KEY_BYTES + TAG_BYTES;
16
24
  const EPK_BYTES = 32;
17
- const HEAD_BYTES = 2;
25
+ const HEAD_BYTES = 3;
26
+ export const FINGERPRINT_BYTES = 8;
27
+ export const FINGERPRINT_TAG = `${PRODUCT_SLUG}-delivery-key-v3`;
28
+ const SIGNATURE_BYTES = 64;
18
29
  const BASE64 = /^[A-Za-z0-9+/]+={0,2}$/;
30
+ const SALT_HEX = /^[0-9a-f]{32}$/;
31
+ const BASE58_SIGNATURE = /^[1-9A-HJ-NP-Za-km-z]{64,88}$/;
19
32
  const ADDRESS_CHARS = 44;
20
- const FIXED_MEMO = DELIVERY_V2_MEMO_PREFIX.length + ADDRESS_CHARS + 1 + 64 + 1;
33
+ const MEMO_SEPARATORS = 3;
34
+ const FIXED_MEMO = DELIVERY_MEMO_PREFIX.length + ADDRESS_CHARS + MEMO_SEPARATORS + 64 + 2 * SALT_BYTES;
35
+ const OPENED_CHARS = 2 * SALT_BYTES + 1;
21
36
  const ZERO_IV = new Uint8Array(IV_BYTES);
37
+ export const MAX_OPENED_SALTS = Math.floor((MAX_OPENING_MEMO - OPENING_MEMO_PREFIX.length - ADDRESS_CHARS) / OPENED_CHARS);
22
38
  const toBase64 = (bytes) => btoa(String.fromCharCode(...bytes));
23
39
  const fromBase64 = (text) => Uint8Array.from(atob(text), (c) => c.charCodeAt(0));
24
40
  const base64Length = (bytes) => 4 * Math.ceil(bytes / 3);
25
- const sealedBytes = (recipients, url) => HEAD_BYTES + EPK_BYTES + recipients * WRAPPED_BYTES + IV_BYTES + url + TAG_BYTES;
41
+ const headBytes = (recipients) => HEAD_BYTES + recipients * FINGERPRINT_BYTES;
42
+ const sealedBytes = (recipients, url, head = headBytes(recipients)) => head + EPK_BYTES + recipients * WRAPPED_BYTES + IV_BYTES + SALT_BYTES + url + TAG_BYTES;
43
+ const hex = (bytes) => Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
44
+ const unhex = (text) => Array.from({ length: text.length / 2 }, (_, i) => Number.parseInt(text.slice(2 * i, 2 * i + 2), 16));
45
+ const digest = async (bytes) => new Uint8Array(await crypto.subtle.digest("SHA-256", bytes));
46
+ const SALT_RULE = `${2 * SALT_BYTES} lowercase hex digits`;
47
+ export const isSaltHex = (text) => SALT_HEX.test(text);
26
48
  export function maxSealedUrl(recipients) {
27
49
  let url = MAX_MEMO_URL;
28
- while (url > 0 && FIXED_MEMO + base64Length(sealedBytes(recipients, url)) > MAX_DELIVERY_V2_MEMO) {
50
+ while (url > 0 && FIXED_MEMO + base64Length(sealedBytes(recipients, url)) > MAX_DELIVERY_MEMO) {
29
51
  url -= 1;
30
52
  }
31
53
  return url;
32
54
  }
33
- export const sealedUrlTooLong = (length, recipients) => `the work url has ${length} characters, but sealed to ${recipients} ${recipients === 1 ? "wallet" : "wallets"} it may have at most ${maxSealedUrl(recipients)}, so that the delivery memo stays within ${MAX_DELIVERY_V2_MEMO} bytes and fits one transaction; nothing was sent`;
34
- export function commitmentPreimage({ intent, worker, sha256 }) {
55
+ export const sealedUrlTooLong = (length, recipients) => `the work url has ${length} characters, but sealed to ${recipients} ${recipients === 1 ? "wallet" : "wallets"} it may have at most ${maxSealedUrl(recipients)}, so that the delivery memo stays within ${MAX_DELIVERY_MEMO} bytes and fits one transaction; nothing was sent`;
56
+ export function saltMessage(intent, sha256) {
57
+ if (!isSha256Hex(sha256)) {
58
+ throw new RangeError("a salt binds a sha256 of 64 lowercase hex digits");
59
+ }
60
+ return Uint8Array.from([...new TextEncoder().encode(SALT_TAG), ...getAddressEncoder().encode(intent), ...unhex(sha256)]);
61
+ }
62
+ export function saltPreimage(signature) {
63
+ if (signature.length !== SIGNATURE_BYTES) {
64
+ throw new RangeError(`a salt is derived from a ${SIGNATURE_BYTES}-byte ed25519 signature`);
65
+ }
66
+ return Uint8Array.from([...new TextEncoder().encode(SALT_TAG), ...signature]);
67
+ }
68
+ export async function saltOfSignature(signature) {
69
+ return hex((await digest(saltPreimage(signature))).slice(0, SALT_BYTES));
70
+ }
71
+ export function saltCheckPreimage(salt) {
72
+ if (!isSaltHex(salt)) {
73
+ throw new RangeError(`a salt is ${SALT_RULE}`);
74
+ }
75
+ return Uint8Array.from([...new TextEncoder().encode(SALT_CHECK_TAG), ...unhex(salt)]);
76
+ }
77
+ export async function saltCheck(salt) {
78
+ return hex((await digest(saltCheckPreimage(salt))).slice(0, SALT_BYTES));
79
+ }
80
+ export function commitmentPreimage({ intent, worker, salt, sha256 }) {
35
81
  if (!isSha256Hex(sha256)) {
36
82
  throw new RangeError("a commitment binds a sha256 of 64 lowercase hex digits");
37
83
  }
84
+ if (!isSaltHex(salt)) {
85
+ throw new RangeError(`a commitment binds a salt of ${SALT_RULE}`);
86
+ }
38
87
  const encoder = getAddressEncoder();
39
- return Uint8Array.from([
40
- ...new TextEncoder().encode(COMMITMENT_TAG),
41
- ...encoder.encode(intent),
42
- ...encoder.encode(worker),
43
- ...Array.from({ length: 32 }, (_, i) => Number.parseInt(sha256.slice(2 * i, 2 * i + 2), 16)),
44
- ]);
88
+ return Uint8Array.from([...new TextEncoder().encode(COMMITMENT_TAG), ...encoder.encode(intent), ...encoder.encode(worker), ...unhex(salt), ...unhex(sha256)]);
45
89
  }
46
- const hex = (bytes) => Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
47
90
  export async function deliveryCommitment(commitment) {
48
- return hex(new Uint8Array(await crypto.subtle.digest("SHA-256", commitmentPreimage(commitment))));
91
+ return hex(await digest(commitmentPreimage(commitment)));
49
92
  }
50
93
  const random = (length) => crypto.getRandomValues(new Uint8Array(new ArrayBuffer(length)));
51
- const aad = (intent) => Uint8Array.from([...INFO, ...getAddressEncoder().encode(intent)]);
94
+ const aad = (intent, head) => Uint8Array.from([...INFO, ...getAddressEncoder().encode(intent), ...head]);
95
+ export async function keyFingerprint(publicKey) {
96
+ return hex((await digest(Uint8Array.from([...new TextEncoder().encode(FINGERPRINT_TAG), ...publicKey]))).slice(0, FINGERPRINT_BYTES));
97
+ }
98
+ function recipientsOf(recipients) {
99
+ const keys = new Map();
100
+ for (const recipient of recipients) {
101
+ const [wallet, key] = typeof recipient === "string" ? [recipient, null] : [recipient.wallet, recipient.encryptionKey];
102
+ if (key !== null && key.length !== ENCRYPTION_KEY_BYTES) {
103
+ throw new SealedError(`${wallet}'s encryption key is not ${ENCRYPTION_KEY_BYTES} bytes`);
104
+ }
105
+ if (!keys.has(wallet) || (keys.get(wallet) === null && key !== null)) {
106
+ keys.set(wallet, key);
107
+ }
108
+ }
109
+ return keys;
110
+ }
52
111
  async function sharedWith(peer, mine) {
53
112
  const key = await crypto.subtle.importKey("raw", peer.slice(), { name: "X25519" }, false, []);
54
113
  return new Uint8Array(await crypto.subtle.deriveBits({ name: "X25519", public: key }, mine, 256));
55
114
  }
56
- export async function sealUrl(url, recipients, intent) {
57
- const wallets = [...new Set(recipients)];
115
+ export async function sealDelivery({ salt, url }, recipients, intent) {
116
+ const keys = recipientsOf(recipients);
117
+ const wallets = [...keys.keys()];
58
118
  if (wallets.length === 0 || wallets.length > MAX_SEALED_URL_RECIPIENTS) {
59
119
  throw new SealedError(`seal a work url to between 1 and ${MAX_SEALED_URL_RECIPIENTS} wallets`);
60
120
  }
121
+ if (!isSaltHex(salt)) {
122
+ throw new RangeError(`a sealed delivery carries a salt of ${SALT_RULE}`);
123
+ }
61
124
  if (!isMemoUrl(url)) {
62
125
  throw new RangeError(`a delivery url must be ${MEMO_URL_RULE}`);
63
126
  }
@@ -66,19 +129,27 @@ export async function sealUrl(url, recipients, intent) {
66
129
  }
67
130
  const contentKey = random(KEY_BYTES);
68
131
  const iv = random(IV_BYTES);
69
- const ephemeral = (await crypto.subtle.generateKey({ name: "X25519" }, true, ["deriveBits"]));
132
+ const ephemeral = (await crypto.subtle.generateKey({ name: "X25519" }, false, ["deriveBits"]));
70
133
  const epk = new Uint8Array(await crypto.subtle.exportKey("raw", ephemeral.publicKey));
71
134
  const wrapped = [];
72
- for (const wallet of wallets) {
73
- const theirs = x25519PublicOf(wallet);
74
- const wrapping = await wrapKey(await sharedWith(theirs, ephemeral.privateKey), Uint8Array.from([...epk, ...theirs]), INFO);
135
+ let mask = 0;
136
+ const fingerprints = [];
137
+ for (const [at, wallet] of wallets.entries()) {
138
+ const profileKey = keys.get(wallet) ?? null;
139
+ const usable = profileKey === null ? null : await sharedWith(profileKey, ephemeral.privateKey).catch(() => null);
140
+ const theirs = profileKey === null || usable === null ? x25519PublicOf(wallet) : Uint8Array.from(profileKey);
141
+ mask |= usable === null ? 0 : 1 << at;
142
+ fingerprints.push(...unhex(await keyFingerprint(theirs)));
143
+ const wrapping = await wrapKey(usable ?? (await sharedWith(theirs, ephemeral.privateKey)), Uint8Array.from([...epk, ...theirs]), INFO);
75
144
  wrapped.push(...new Uint8Array(await crypto.subtle.encrypt({ name: "AES-GCM", iv: ZERO_IV, additionalData: INFO }, wrapping, contentKey)));
76
145
  }
77
146
  const content = await crypto.subtle.importKey("raw", contentKey, "AES-GCM", false, ["encrypt"]);
78
- const data = new Uint8Array(await crypto.subtle.encrypt({ name: "AES-GCM", iv, additionalData: aad(intent) }, content, new TextEncoder().encode(url)));
79
- return toBase64(Uint8Array.from([SEALED_URL_VERSION, wallets.length, ...epk, ...wrapped, ...iv, ...data]));
147
+ const plain = Uint8Array.from([...unhex(salt), ...new TextEncoder().encode(url)]);
148
+ const head = Uint8Array.from([SEALED_URL_VERSION, wallets.length, mask, ...fingerprints]);
149
+ const data = new Uint8Array(await crypto.subtle.encrypt({ name: "AES-GCM", iv, additionalData: aad(intent, head) }, content, plain));
150
+ return toBase64(Uint8Array.from([...head, ...epk, ...wrapped, ...iv, ...data]));
80
151
  }
81
- export function sealedUrlRecipients(blob) {
152
+ function layoutOf(blob) {
82
153
  if (!BASE64.test(blob)) {
83
154
  return null;
84
155
  }
@@ -89,21 +160,39 @@ export function sealedUrlRecipients(blob) {
89
160
  catch {
90
161
  return null;
91
162
  }
163
+ const version = bytes[0];
92
164
  const count = bytes[1] ?? 0;
93
- if (toBase64(bytes) !== blob || bytes[0] !== SEALED_URL_VERSION || count < 1 || count > MAX_SEALED_URL_RECIPIENTS) {
165
+ const head = headBytes(count);
166
+ const mask = bytes[2] ?? 0;
167
+ if (toBase64(bytes) !== blob || version !== SEALED_URL_VERSION || count < 1 || count > MAX_SEALED_URL_RECIPIENTS || mask >> count !== 0) {
94
168
  return null;
95
169
  }
96
- return bytes.length > sealedBytes(count, 0) ? count : null;
170
+ return bytes.length > sealedBytes(count, 0, head) ? { head, count, mask } : null;
171
+ }
172
+ export function sealedUrlRecipients(blob) {
173
+ return layoutOf(blob)?.count ?? null;
97
174
  }
98
- export async function openUrl(blob, keypair, intent) {
99
- const count = sealedUrlRecipients(blob);
100
- if (count === null) {
175
+ export function sealedKeys(blob) {
176
+ const layout = layoutOf(blob);
177
+ return layout === null ? null : Array.from({ length: layout.count }, (_, at) => ((layout.mask >> at) & 1 ? "profile" : "wallet"));
178
+ }
179
+ export function sealedFingerprints(blob) {
180
+ const layout = layoutOf(blob);
181
+ if (layout === null) {
182
+ return null;
183
+ }
184
+ const bytes = fromBase64(blob);
185
+ return Array.from({ length: layout.count }, (_, at) => hex(bytes.slice(HEAD_BYTES + at * FINGERPRINT_BYTES, HEAD_BYTES + (at + 1) * FINGERPRINT_BYTES)));
186
+ }
187
+ export async function openDelivery(blob, opener, intent) {
188
+ const layout = layoutOf(blob);
189
+ if (layout === null) {
101
190
  return null;
102
191
  }
192
+ const { head, count } = layout;
103
193
  const bytes = fromBase64(blob);
104
- const epk = bytes.slice(HEAD_BYTES, HEAD_BYTES + EPK_BYTES);
105
- const mine = await x25519SecretOf(keypair);
106
- const ours = x25519PublicOf(getAddressDecoder().decode(keypair.slice(32)));
194
+ const epk = bytes.slice(head, head + EPK_BYTES);
195
+ const { publicKey: ours, secret: mine } = await deliveryKeyOf(opener);
107
196
  let wrapping;
108
197
  try {
109
198
  wrapping = await wrapKey(await sharedWith(epk, mine), Uint8Array.from([...epk, ...ours]), INFO);
@@ -111,12 +200,11 @@ export async function openUrl(blob, keypair, intent) {
111
200
  catch {
112
201
  return null;
113
202
  }
114
- const keysAt = HEAD_BYTES + EPK_BYTES;
203
+ const keysAt = head + EPK_BYTES;
115
204
  const ivAt = keysAt + count * WRAPPED_BYTES;
116
- for (let at = 0; at < count; at += 1) {
205
+ for (const start of Array.from({ length: count }, (_, at) => keysAt + at * WRAPPED_BYTES)) {
117
206
  let contentKey;
118
207
  try {
119
- const start = keysAt + at * WRAPPED_BYTES;
120
208
  contentKey = new Uint8Array(await crypto.subtle.decrypt({ name: "AES-GCM", iv: ZERO_IV, additionalData: INFO }, wrapping, bytes.slice(start, start + WRAPPED_BYTES)));
121
209
  }
122
210
  catch {
@@ -124,9 +212,10 @@ export async function openUrl(blob, keypair, intent) {
124
212
  }
125
213
  try {
126
214
  const content = await crypto.subtle.importKey("raw", contentKey, "AES-GCM", false, ["decrypt"]);
127
- const plain = await crypto.subtle.decrypt({ name: "AES-GCM", iv: bytes.slice(ivAt, ivAt + IV_BYTES), additionalData: aad(intent) }, content, bytes.slice(ivAt + IV_BYTES));
128
- const url = new TextDecoder("utf-8", { fatal: true }).decode(plain);
129
- return isMemoUrl(url) ? url : null;
215
+ const iv = bytes.slice(ivAt, ivAt + IV_BYTES);
216
+ const plain = new Uint8Array(await crypto.subtle.decrypt({ name: "AES-GCM", iv, additionalData: aad(intent, bytes.slice(0, head)) }, content, bytes.slice(ivAt + IV_BYTES)));
217
+ const url = new TextDecoder().decode(plain.slice(SALT_BYTES));
218
+ return isMemoUrl(url) ? { salt: hex(plain.slice(0, SALT_BYTES)), url } : null;
130
219
  }
131
220
  catch {
132
221
  return null;
@@ -134,30 +223,69 @@ export async function openUrl(blob, keypair, intent) {
134
223
  }
135
224
  return null;
136
225
  }
137
- export function deliveryMemoV2({ intent, commitment, blob }) {
226
+ export function deliveryMemo({ intent, commitment, check, blob }) {
138
227
  if (!isAddress(intent)) {
139
228
  throw new RangeError("a delivery names its intent by a base58 address");
140
229
  }
141
230
  if (!isSha256Hex(commitment)) {
142
231
  throw new RangeError("a delivery's commitment must be 64 lowercase hex digits");
143
232
  }
233
+ if (!isSaltHex(check)) {
234
+ throw new RangeError(`a delivery's salt check must be ${SALT_RULE}`);
235
+ }
144
236
  if (sealedUrlRecipients(blob) === null) {
145
- throw new RangeError("a delivery's sealed url must be the base64 a sealUrl call returns");
237
+ throw new RangeError("a delivery's sealed url must be the base64 a sealDelivery call returns");
146
238
  }
147
- const memo = `${DELIVERY_V2_MEMO_PREFIX}${intent}:${commitment}:${blob}`;
148
- if (memo.length > MAX_DELIVERY_V2_MEMO) {
149
- throw new RangeError(`a delivery memo may have at most ${MAX_DELIVERY_V2_MEMO} bytes, so that it fits one transaction`);
239
+ const memo = `${DELIVERY_MEMO_PREFIX}${intent}:${commitment}:${check}:${blob}`;
240
+ if (memo.length > MAX_DELIVERY_MEMO) {
241
+ throw new RangeError(`a delivery memo may have at most ${MAX_DELIVERY_MEMO} bytes, so that it fits one transaction`);
150
242
  }
151
243
  return memo;
152
244
  }
153
- export function parseDeliveryMemoV2(text) {
154
- if (text.length > MAX_DELIVERY_V2_MEMO || !text.startsWith(DELIVERY_V2_MEMO_PREFIX)) {
245
+ export function parseDeliveryMemo(text) {
246
+ if (text.length > MAX_DELIVERY_MEMO || !text.startsWith(DELIVERY_MEMO_PREFIX)) {
247
+ return null;
248
+ }
249
+ const [intent = "", commitment = "", check = "", blob = "", ...rest] = text.slice(DELIVERY_MEMO_PREFIX.length).split(":");
250
+ if (rest.length > 0 || !isAddress(intent) || !isSha256Hex(commitment) || !isSaltHex(check) || !BASE64.test(blob)) {
251
+ return null;
252
+ }
253
+ return { intent, commitment, check, blob };
254
+ }
255
+ export function isSignatureText(text) {
256
+ return BASE58_SIGNATURE.test(text) && getBase58Encoder().encode(text).length === SIGNATURE_BYTES;
257
+ }
258
+ export function openingMemo(opening) {
259
+ if (!isAddress(opening.intent)) {
260
+ throw new RangeError("an opening names its intent by a base58 address");
261
+ }
262
+ if ("announcement" in opening) {
263
+ if (!isSignatureText(opening.announcement) || !isSaltHex(opening.salt)) {
264
+ throw new RangeError(`an opening names its announcement by a base58 signature and gives its salt as ${SALT_RULE}`);
265
+ }
266
+ return `${OPENING_MEMO_PREFIX}${opening.intent}:${opening.announcement}:${opening.salt}`;
267
+ }
268
+ const { salts } = opening;
269
+ if (salts.length === 0 || salts.length > MAX_OPENED_SALTS || salts.some((salt) => salt !== null && !isSaltHex(salt))) {
270
+ throw new RangeError(`an opening lists from 1 to ${MAX_OPENED_SALTS} salts, each ${SALT_RULE} or ${UNOPENED} for one it could not open`);
271
+ }
272
+ return `${OPENING_MEMO_PREFIX}${opening.intent}:${salts.map((salt) => salt ?? UNOPENED).join(",")}`;
273
+ }
274
+ export function parseOpeningMemo(text) {
275
+ if (!text.startsWith(OPENING_MEMO_PREFIX)) {
155
276
  return null;
156
277
  }
157
- const [intent = "", commitment = "", blob = "", ...rest] = text.slice(DELIVERY_V2_MEMO_PREFIX.length).split(":");
158
- if (rest.length > 0 || !isAddress(intent) || !isSha256Hex(commitment) || sealedUrlRecipients(blob) === null) {
278
+ const [intent = "", first = "", second, ...rest] = text.slice(OPENING_MEMO_PREFIX.length).split(":");
279
+ if (rest.length > 0 || !isAddress(intent)) {
280
+ return null;
281
+ }
282
+ if (second !== undefined) {
283
+ return isSignatureText(first) && isSaltHex(second) ? { intent, announcement: first, salt: second } : null;
284
+ }
285
+ const listed = first.split(",");
286
+ if (listed.length > MAX_OPENED_SALTS || listed.some((salt) => salt !== UNOPENED && !isSaltHex(salt))) {
159
287
  return null;
160
288
  }
161
- return { intent, commitment, blob };
289
+ return { intent, salts: listed.map((salt) => (salt === UNOPENED ? null : salt)) };
162
290
  }
163
291
  //# sourceMappingURL=sealed-delivery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sealed-delivery.js","sourceRoot":"","sources":["../../src/sealed-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sealed-delivery.js","sourceRoot":"","sources":["../../src/sealed-delivery.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { type Address } from "@solana/kit";
2
2
  export declare const SEALED_VERSION = 1;
3
3
  export declare const SEALED_TAG = "solive-sealed";
4
4
  export declare const MAX_SEALED_RECIPIENTS = 32;
5
+ export declare const PKCS8_X25519: Uint8Array<ArrayBuffer>;
5
6
  export declare class SealedError extends Error {
6
7
  constructor(message: string);
7
8
  }
@@ -4,7 +4,7 @@ export const SEALED_TAG = "solive-sealed";
4
4
  export const MAX_SEALED_RECIPIENTS = 32;
5
5
  const INFO = new TextEncoder().encode("solive-sealed-v1");
6
6
  const P = 2n ** 255n - 19n;
7
- const PKCS8_X25519 = Uint8Array.from([0x30, 0x2e, 0x02, 0x01, 0x00, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x6e, 0x04, 0x22, 0x04, 0x20]);
7
+ export const PKCS8_X25519 = Uint8Array.from([0x30, 0x2e, 0x02, 0x01, 0x00, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x6e, 0x04, 0x22, 0x04, 0x20]);
8
8
  const IV_BYTES = 12;
9
9
  const KEY_BYTES = 32;
10
10
  export class SealedError extends Error {
@@ -76,7 +76,7 @@ export async function seal(plain, recipients) {
76
76
  const to = [];
77
77
  for (const wallet of wallets) {
78
78
  const theirs = x25519PublicOf(wallet);
79
- const ephemeral = (await crypto.subtle.generateKey({ name: "X25519" }, true, ["deriveBits"]));
79
+ const ephemeral = (await crypto.subtle.generateKey({ name: "X25519" }, false, ["deriveBits"]));
80
80
  const epk = new Uint8Array(await crypto.subtle.exportKey("raw", ephemeral.publicKey));
81
81
  const peer = await crypto.subtle.importKey("raw", theirs, { name: "X25519" }, false, []);
82
82
  const shared = new Uint8Array(await crypto.subtle.deriveBits({ name: "X25519", public: peer }, ephemeral.privateKey, 256));
@@ -1 +1 @@
1
- {"version":3,"file":"sealed.js","sourceRoot":"","sources":["../../src/sealed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sealed.js","sourceRoot":"","sources":["../../src/sealed.ts"],"names":[],"mappings":"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"}
package/dist/src/sig.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type Address, type Instruction, type KeyPairSigner } from "@solana/kit";
1
+ import { type Address, type Instruction, type MessagePartialSigner } from "@solana/kit";
2
2
  export declare const ED25519_PROGRAM_ADDRESS: Address<"Ed25519SigVerify111111111111111111111111111">;
3
3
  export declare const INTENT_TAG: NodeJS.NonSharedUint8Array;
4
4
  export declare const ATTEST_TAG: NodeJS.NonSharedUint8Array;
@@ -11,6 +11,8 @@ export declare const ENVELOPE_LEN = 114;
11
11
  export declare const ATTEST_PREIMAGE_LEN = 206;
12
12
  export declare const ATTEST_PROOF_PREIMAGE_LEN = 238;
13
13
  export declare const ATTEST_SPLIT_PREIMAGE_LEN = 238;
14
+ export declare const MAX_COSIGNERS = 16;
15
+ export declare const COSIGN_KEYS_AT = 18;
14
16
  export type SignedIntentFields = {
15
17
  domain: Uint8Array;
16
18
  owner: Address;
@@ -31,7 +33,10 @@ export type SignedIntentFields = {
31
33
  };
32
34
  export declare function signedIntentPreimage(f: SignedIntentFields): Promise<Uint8Array>;
33
35
  export declare function offchainEnvelope(signer: Address, digest: Uint8Array): Uint8Array;
34
- export declare function splitCosignEnvelope(digest: Uint8Array): Uint8Array;
36
+ export declare function cosignerSet(keys: readonly Address[]): Address[];
37
+ export declare function cosignEnvelope(keys: readonly Address[], digest: Uint8Array): Uint8Array;
38
+ export declare function splitCosignEnvelope(digest: Uint8Array, cosigners: readonly Address[]): Uint8Array;
39
+ export declare function signMessageBytes(signer: MessagePartialSigner, message: Uint8Array): Promise<Uint8Array>;
35
40
  export declare function checkSignable(f: SignedIntentFields): SignedIntentFields;
36
41
  export declare function signedIntentMessage(f: SignedIntentFields): Promise<Uint8Array>;
37
42
  export type AttestedFillFields = {
@@ -59,14 +64,15 @@ export type AttestedSplitFields = Omit<AttestedFillFields, "payee"> & {
59
64
  splitHash: Uint8Array;
60
65
  };
61
66
  export declare function attestedSplitPreimage(f: AttestedSplitFields): Promise<Uint8Array>;
62
- export declare function attestedSplitMessage(f: AttestedSplitFields): Promise<Uint8Array>;
67
+ export declare function attestedSplitDigest(f: AttestedSplitFields): Promise<Uint8Array>;
68
+ export declare function attestedSplitMessage(f: AttestedSplitFields, cosigners: readonly Address[]): Promise<Uint8Array>;
63
69
  export declare function ed25519Header(messageLength: number): Uint8Array;
64
70
  export declare function buildEd25519Instruction(input: {
65
71
  publicKey: Address;
66
72
  signature: Uint8Array;
67
73
  message: Uint8Array;
68
74
  }): Instruction;
69
- export declare function signEd25519Instruction(signer: KeyPairSigner, message: Uint8Array): Promise<Instruction>;
75
+ export declare function signEd25519Instruction(signer: MessagePartialSigner, message: Uint8Array): Promise<Instruction>;
70
76
  export declare const MAX_ED25519_BATCH = 255;
71
77
  export declare function buildEd25519BatchInstruction(input: {
72
78
  entries: {
@@ -75,3 +81,10 @@ export declare function buildEd25519BatchInstruction(input: {
75
81
  }[];
76
82
  message: Uint8Array;
77
83
  }): Instruction;
84
+ export declare function buildEd25519CosignInstruction(input: {
85
+ entries: {
86
+ publicKey: Address;
87
+ signature: Uint8Array;
88
+ }[];
89
+ message: Uint8Array;
90
+ }): Instruction;