@intent-engine/core 0.1.40 → 0.1.42

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 (73) 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/index.d.ts +1 -0
  5. package/dist/generated/client/accounts/index.js +1 -0
  6. package/dist/generated/client/accounts/index.js.map +1 -1
  7. package/dist/generated/client/accounts/standby.d.ts +40 -0
  8. package/dist/generated/client/accounts/standby.js +67 -0
  9. package/dist/generated/client/accounts/standby.js.map +1 -0
  10. package/dist/generated/client/errors/intentEngine.d.ts +11 -1
  11. package/dist/generated/client/errors/intentEngine.js +15 -0
  12. package/dist/generated/client/errors/intentEngine.js.map +1 -1
  13. package/dist/generated/client/events/index.d.ts +2 -0
  14. package/dist/generated/client/events/index.js +2 -0
  15. package/dist/generated/client/events/index.js.map +1 -1
  16. package/dist/generated/client/events/lineLeft.d.ts +30 -0
  17. package/dist/generated/client/events/lineLeft.js +42 -0
  18. package/dist/generated/client/events/lineLeft.js.map +1 -0
  19. package/dist/generated/client/events/stoodBy.d.ts +32 -0
  20. package/dist/generated/client/events/stoodBy.js +46 -0
  21. package/dist/generated/client/events/stoodBy.js.map +1 -0
  22. package/dist/generated/client/instructions/advance.d.ts +79 -0
  23. package/dist/generated/client/instructions/advance.js +167 -0
  24. package/dist/generated/client/instructions/advance.js.map +1 -0
  25. package/dist/generated/client/instructions/dropClaim.d.ts +29 -9
  26. package/dist/generated/client/instructions/dropClaim.js +41 -2
  27. package/dist/generated/client/instructions/dropClaim.js.map +1 -1
  28. package/dist/generated/client/instructions/index.d.ts +3 -0
  29. package/dist/generated/client/instructions/index.js +3 -0
  30. package/dist/generated/client/instructions/index.js.map +1 -1
  31. package/dist/generated/client/instructions/leave.d.ts +68 -0
  32. package/dist/generated/client/instructions/leave.js +142 -0
  33. package/dist/generated/client/instructions/leave.js.map +1 -0
  34. package/dist/generated/client/instructions/standBy.d.ts +72 -0
  35. package/dist/generated/client/instructions/standBy.js +163 -0
  36. package/dist/generated/client/instructions/standBy.js.map +1 -0
  37. package/dist/generated/client/pdas/entry.d.ts +15 -0
  38. package/dist/generated/client/pdas/entry.js +20 -0
  39. package/dist/generated/client/pdas/entry.js.map +1 -0
  40. package/dist/generated/client/pdas/index.d.ts +1 -0
  41. package/dist/generated/client/pdas/index.js +1 -0
  42. package/dist/generated/client/pdas/index.js.map +1 -1
  43. package/dist/generated/client/programs/intentEngine.d.ts +121 -98
  44. package/dist/generated/client/programs/intentEngine.js +154 -98
  45. package/dist/generated/client/programs/intentEngine.js.map +1 -1
  46. package/dist/src/claims.d.ts +32 -2
  47. package/dist/src/claims.js +54 -2
  48. package/dist/src/claims.js.map +1 -1
  49. package/dist/src/describe.js +1 -1
  50. package/dist/src/describe.js.map +1 -1
  51. package/dist/src/errors.d.ts +1 -1
  52. package/dist/src/errors.js +3 -0
  53. package/dist/src/errors.js.map +1 -1
  54. package/dist/src/events.d.ts +3 -1
  55. package/dist/src/events.js +3 -1
  56. package/dist/src/events.js.map +1 -1
  57. package/dist/src/fee.d.ts +13 -0
  58. package/dist/src/fee.js +28 -0
  59. package/dist/src/fee.js.map +1 -1
  60. package/dist/src/index.d.ts +1 -0
  61. package/dist/src/index.js +1 -0
  62. package/dist/src/index.js.map +1 -1
  63. package/dist/src/memo.d.ts +0 -9
  64. package/dist/src/memo.js +0 -31
  65. package/dist/src/memo.js.map +1 -1
  66. package/dist/src/sealed-delivery.d.ts +25 -0
  67. package/dist/src/sealed-delivery.js +163 -0
  68. package/dist/src/sealed-delivery.js.map +1 -0
  69. package/dist/src/sealed.d.ts +2 -0
  70. package/dist/src/sealed.js +8 -23
  71. package/dist/src/sealed.js.map +1 -1
  72. package/generated/idl.json +394 -0
  73. package/package.json +1 -1
@@ -1,10 +1,19 @@
1
- import { findBoardPda, getClaimJobInstructionAsync, getDropClaimInstructionAsync, getOpenClaimsInstructionAsync, getSettleClaimsInstructionAsync, } from "../generated/client/index.js";
1
+ import { findBoardPda, findEntryPda, getAdvanceInstructionAsync, getClaimJobInstructionAsync, getDropClaimInstructionAsync, getLeaveInstructionAsync, getOpenClaimsInstructionAsync, getSettleClaimsInstructionAsync, getStandByInstructionAsync, } from "../generated/client/index.js";
2
2
  import { events } from "./builder-accounts.js";
3
3
  import { IntentCoreError } from "./errors.js";
4
4
  export const CLAIMS_OPEN = 1;
5
5
  export const MAX_CLAIM_SECS = 7 * 24 * 60 * 60;
6
6
  export const MAX_CLAIM_STAKE = 100000000000n;
7
+ export const MAX_LINE_ENTRIES = 4;
8
+ export const MAX_LINE_SEQ = 0xffff_fffe;
7
9
  const NONE = "11111111111111111111111111111111";
10
+ export function lineLength(line) {
11
+ return Math.max(0, (line.tail ?? 0) - (line.head ?? 0));
12
+ }
13
+ export function lineSeqs(line, max = MAX_LINE_ENTRIES) {
14
+ const head = line.head ?? 0;
15
+ return Array.from({ length: Math.min(lineLength(line), max) }, (_, i) => head + i);
16
+ }
8
17
  export function claimSlot(board, now) {
9
18
  if (board.worker === NONE)
10
19
  return { state: "free" };
@@ -14,10 +23,22 @@ export function checkClaimant(board, claimant, now) {
14
23
  const slot = claimSlot(board, now);
15
24
  if (slot.state === "held")
16
25
  throw new IntentCoreError("ClaimHeld");
26
+ if (lineLength(board) > 0)
27
+ throw new IntentCoreError("LineWaiting");
17
28
  const dropped = board.droppedBy ?? NONE;
18
29
  if (slot.state === "free" && dropped !== NONE && dropped === claimant && now < board.until)
19
30
  throw new IntentCoreError("ClaimCooldown");
20
31
  }
32
+ export function checkStandBy(board, now) {
33
+ if (claimSlot(board, now).state !== "held" && lineLength(board) === 0)
34
+ throw new IntentCoreError("JobNotHeld");
35
+ }
36
+ export function checkAdvance(board, now) {
37
+ if (claimSlot(board, now).state === "held")
38
+ throw new IntentCoreError("ClaimHeld");
39
+ if (lineLength(board) === 0)
40
+ throw new IntentCoreError("LineEmpty");
41
+ }
21
42
  export function checkClaimTerms(maxSecs, stake) {
22
43
  if (!Number.isInteger(maxSecs) || maxSecs < 1 || maxSecs > MAX_CLAIM_SECS || stake < 0n || stake > MAX_CLAIM_STAKE) {
23
44
  throw new IntentCoreError("ClaimTerms");
@@ -69,8 +90,39 @@ export async function buildOpenClaims(input) {
69
90
  export async function buildClaimJob(input) {
70
91
  return getClaimJobInstructionAsync({ ...input, ...(await events()) });
71
92
  }
93
+ export async function standbyAddress(intent, seq) {
94
+ return (await findEntryPda({ intent, seq }))[0];
95
+ }
96
+ function entryAccounts(entries) {
97
+ if (entries.length > MAX_LINE_ENTRIES)
98
+ throw new IntentCoreError("InvalidParams");
99
+ const [entry0, entry1, entry2, entry3] = entries;
100
+ return {
101
+ ...(entry0 === undefined ? {} : { entry0 }),
102
+ ...(entry1 === undefined ? {} : { entry1 }),
103
+ ...(entry2 === undefined ? {} : { entry2 }),
104
+ ...(entry3 === undefined ? {} : { entry3 }),
105
+ };
106
+ }
72
107
  export async function buildDropClaim(input) {
73
- return getDropClaimInstructionAsync({ ...input, ...(await events()) });
108
+ const { entries = [], nextWorker, ...rest } = input;
109
+ return getDropClaimInstructionAsync({ ...rest, ...(nextWorker === undefined ? {} : { nextWorker }), ...entryAccounts(entries), ...(await events()) });
110
+ }
111
+ export async function buildStandBy(input) {
112
+ const entry = await standbyAddress(input.intent, input.seq);
113
+ return getStandByInstructionAsync({ worker: input.worker, intent: input.intent, entry, secs: input.secs, ...(await events()) });
114
+ }
115
+ export async function buildAdvance(input) {
116
+ return getAdvanceInstructionAsync({
117
+ intent: input.intent,
118
+ owner: input.owner,
119
+ ...(input.nextWorker === undefined ? {} : { nextWorker: input.nextWorker }),
120
+ ...entryAccounts(input.entries),
121
+ ...(await events()),
122
+ });
123
+ }
124
+ export async function buildLeave(input) {
125
+ return getLeaveInstructionAsync({ ...input, ...(await events()) });
74
126
  }
75
127
  export async function buildSettleClaims(input) {
76
128
  return getSettleClaimsInstructionAsync({
@@ -1 +1 @@
1
- {"version":3,"file":"claims.js","sourceRoot":"","sources":["../../src/claims.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claims.js","sourceRoot":"","sources":["../../src/claims.ts"],"names":[],"mappings":"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"}
@@ -87,7 +87,7 @@ export function describeTerms(f, o) {
87
87
  ]
88
88
  : []),
89
89
  ATTESTED_PROTOCOL_FEE,
90
- `Output token: ${tokenOf(f.outputMint, o.outputName)}, recorded with the intent only; an attested settlement pays you nothing on chain`,
90
+ `Output token: ${tokenOf(f.outputMint, o.outputName)}, a label only; the release pays out the sold token, never this one`,
91
91
  ];
92
92
  }
93
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/describe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/describe.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const CORE_ERROR_CODES: readonly ["Overflow", "DivideByZero", "Truncated", "NonCanonical", "UnknownKind", "UnknownStatus", "InvalidParams", "AmountMismatch", "InsufficientOutput", "InvalidTransition", "IntentExpired", "NotExpired", "NonceUsed", "NonceOutOfWindow", "NonceRegression", "SigProgram", "SigHeader", "SigPubkey", "SigMessage", "KindMismatch", "ResultOutOfBounds", "FlashEndProgram", "FlashEndDiscriminator", "FlashEndIntent", "ExtTooLong", "ExtMalformed", "ExtUnknown", "FlagsUnknown", "PartnerFeeTooHigh", "MandateInvalid", "MandateExpired", "MandateKind", "MandateTtl", "MandateCap", "MandateBudget", "MandateCount", "MandatePrice", "CommitteeInvalid", "CommitteeSigners", "ClaimTerms", "ClaimHeld", "ProfileInvalid", "ClaimCooldown"];
1
+ export declare const CORE_ERROR_CODES: readonly ["Overflow", "DivideByZero", "Truncated", "NonCanonical", "UnknownKind", "UnknownStatus", "InvalidParams", "AmountMismatch", "InsufficientOutput", "InvalidTransition", "IntentExpired", "NotExpired", "NonceUsed", "NonceOutOfWindow", "NonceRegression", "SigProgram", "SigHeader", "SigPubkey", "SigMessage", "KindMismatch", "ResultOutOfBounds", "FlashEndProgram", "FlashEndDiscriminator", "FlashEndIntent", "ExtTooLong", "ExtMalformed", "ExtUnknown", "FlagsUnknown", "PartnerFeeTooHigh", "MandateInvalid", "MandateExpired", "MandateKind", "MandateTtl", "MandateCap", "MandateBudget", "MandateCount", "MandatePrice", "CommitteeInvalid", "CommitteeSigners", "ClaimTerms", "ClaimHeld", "ProfileInvalid", "ClaimCooldown", "LineWaiting", "LineEmpty", "JobNotHeld"];
2
2
  export type CoreErrorCode = (typeof CORE_ERROR_CODES)[number];
3
3
  export declare class IntentCoreError extends Error {
4
4
  readonly code: CoreErrorCode;
@@ -42,6 +42,9 @@ export const CORE_ERROR_CODES = [
42
42
  "ClaimHeld",
43
43
  "ProfileInvalid",
44
44
  "ClaimCooldown",
45
+ "LineWaiting",
46
+ "LineEmpty",
47
+ "JobNotHeld",
45
48
  ];
46
49
  export class IntentCoreError extends Error {
47
50
  code;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU;IACV,cAAc;IACd,WAAW;IACX,cAAc;IACd,aAAa;IACb,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,eAAe;IACf,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,WAAW;IACX,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,uBAAuB;IACvB,gBAAgB;IAChB,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,eAAe;CACP,CAAC;AAIX,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAgB;IAE7B,YAAY,IAAmB;QAC7B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU;IACV,cAAc;IACd,WAAW;IACX,cAAc;IACd,aAAa;IACb,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,eAAe;IACf,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,WAAW;IACX,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,uBAAuB;IACvB,gBAAgB;IAChB,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,WAAW;IACX,YAAY;CACJ,CAAC;AAIX,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAgB;IAE7B,YAAY,IAAmB;QAC7B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { IntentEngineEvent, parseAgentPaidEvent, parseAdminAcceptedEvent, parseAdminProposedEvent, parseCapsRequiredSetEvent, parseClaimDroppedEvent, parseClaimsClosedEvent, parseClaimsOpenedEvent, parseJobClaimedEvent, parseProfileClosedEvent, parseProfileSetEvent, parseStakeMovedEvent, parseCommitteeAttestedEvent, parseCommitteeCreatedEvent, parseConfigInitializedEvent, parseConfigUpdatedEvent, parseEconomicsUpdatedEvent, parseEpochAdvancedEvent, parseFeeWithheldEvent, parseFillBegunEvent, parseFillEndedEvent, parseIntentAttestedEvent, parseIntentCancelledEvent, parseIntentClosedEvent, parseIntentCreatedEvent, parseIntentExpiredEvent, parseIntentFilledEvent, parseIntentSplitEvent, parseMandateClosedEvent, parseMandateCreatedEvent, parseMandateUsedEvent, parseMintCapSetEvent, parseNonceAdvancedEvent, parsePauseLoweredEvent, parsePauseRaisedEvent, parseRelayerPaidEvent, parseUserInitializedEvent } from "../generated/client/index.js";
1
+ import { IntentEngineEvent, parseAgentPaidEvent, parseAdminAcceptedEvent, parseAdminProposedEvent, parseCapsRequiredSetEvent, parseClaimDroppedEvent, parseClaimsClosedEvent, parseClaimsOpenedEvent, parseJobClaimedEvent, parseLineLeftEvent, parseProfileClosedEvent, parseProfileSetEvent, parseStakeMovedEvent, parseStoodByEvent, parseCommitteeAttestedEvent, parseCommitteeCreatedEvent, parseConfigInitializedEvent, parseConfigUpdatedEvent, parseEconomicsUpdatedEvent, parseEpochAdvancedEvent, parseFeeWithheldEvent, parseFillBegunEvent, parseFillEndedEvent, parseIntentAttestedEvent, parseIntentCancelledEvent, parseIntentClosedEvent, parseIntentCreatedEvent, parseIntentExpiredEvent, parseIntentFilledEvent, parseIntentSplitEvent, parseMandateClosedEvent, parseMandateCreatedEvent, parseMandateUsedEvent, parseMintCapSetEvent, parseNonceAdvancedEvent, parsePauseLoweredEvent, parsePauseRaisedEvent, parseRelayerPaidEvent, parseUserInitializedEvent } from "../generated/client/index.js";
2
2
  export declare const EVENT_IX_TAG: Uint8Array<ArrayBuffer>;
3
3
  type EventName = (typeof IntentEngineEvent)[IntentEngineEvent];
4
4
  declare const PARSERS: {
@@ -10,9 +10,11 @@ declare const PARSERS: {
10
10
  ClaimsClosed: typeof parseClaimsClosedEvent;
11
11
  ClaimsOpened: typeof parseClaimsOpenedEvent;
12
12
  JobClaimed: typeof parseJobClaimedEvent;
13
+ LineLeft: typeof parseLineLeftEvent;
13
14
  ProfileClosed: typeof parseProfileClosedEvent;
14
15
  ProfileSet: typeof parseProfileSetEvent;
15
16
  StakeMoved: typeof parseStakeMovedEvent;
17
+ StoodBy: typeof parseStoodByEvent;
16
18
  CommitteeAttested: typeof parseCommitteeAttestedEvent;
17
19
  CommitteeCreated: typeof parseCommitteeCreatedEvent;
18
20
  ConfigInitialized: typeof parseConfigInitializedEvent;
@@ -1,4 +1,4 @@
1
- import { IntentEngineEvent, parseAgentPaidEvent, identifyIntentEngineEvent, parseAdminAcceptedEvent, parseAdminProposedEvent, parseCapsRequiredSetEvent, parseClaimDroppedEvent, parseClaimsClosedEvent, parseClaimsOpenedEvent, parseJobClaimedEvent, parseProfileClosedEvent, parseProfileSetEvent, parseStakeMovedEvent, parseCommitteeAttestedEvent, parseCommitteeCreatedEvent, parseConfigInitializedEvent, parseConfigUpdatedEvent, parseEconomicsUpdatedEvent, parseEpochAdvancedEvent, parseFeeWithheldEvent, parseFillBegunEvent, parseFillEndedEvent, parseIntentAttestedEvent, parseIntentCancelledEvent, parseIntentClosedEvent, parseIntentCreatedEvent, parseIntentExpiredEvent, parseIntentFilledEvent, parseIntentSplitEvent, parseMandateClosedEvent, parseMandateCreatedEvent, parseMandateUsedEvent, parseMintCapSetEvent, parseNonceAdvancedEvent, parsePauseLoweredEvent, parsePauseRaisedEvent, parseRelayerPaidEvent, parseUserInitializedEvent, } from "../generated/client/index.js";
1
+ import { IntentEngineEvent, parseAgentPaidEvent, identifyIntentEngineEvent, parseAdminAcceptedEvent, parseAdminProposedEvent, parseCapsRequiredSetEvent, parseClaimDroppedEvent, parseClaimsClosedEvent, parseClaimsOpenedEvent, parseJobClaimedEvent, parseLineLeftEvent, parseProfileClosedEvent, parseProfileSetEvent, parseStakeMovedEvent, parseStoodByEvent, parseCommitteeAttestedEvent, parseCommitteeCreatedEvent, parseConfigInitializedEvent, parseConfigUpdatedEvent, parseEconomicsUpdatedEvent, parseEpochAdvancedEvent, parseFeeWithheldEvent, parseFillBegunEvent, parseFillEndedEvent, parseIntentAttestedEvent, parseIntentCancelledEvent, parseIntentClosedEvent, parseIntentCreatedEvent, parseIntentExpiredEvent, parseIntentFilledEvent, parseIntentSplitEvent, parseMandateClosedEvent, parseMandateCreatedEvent, parseMandateUsedEvent, parseMintCapSetEvent, parseNonceAdvancedEvent, parsePauseLoweredEvent, parsePauseRaisedEvent, parseRelayerPaidEvent, parseUserInitializedEvent, } from "../generated/client/index.js";
2
2
  export const EVENT_IX_TAG = new Uint8Array([0xe4, 0x45, 0xa5, 0x2e, 0x51, 0xcb, 0x9a, 0x1d]);
3
3
  const PARSERS = {
4
4
  AdminAccepted: parseAdminAcceptedEvent,
@@ -9,9 +9,11 @@ const PARSERS = {
9
9
  ClaimsClosed: parseClaimsClosedEvent,
10
10
  ClaimsOpened: parseClaimsOpenedEvent,
11
11
  JobClaimed: parseJobClaimedEvent,
12
+ LineLeft: parseLineLeftEvent,
12
13
  ProfileClosed: parseProfileClosedEvent,
13
14
  ProfileSet: parseProfileSetEvent,
14
15
  StakeMoved: parseStakeMovedEvent,
16
+ StoodBy: parseStoodByEvent,
15
17
  CommitteeAttested: parseCommitteeAttestedEvent,
16
18
  CommitteeCreated: parseCommitteeCreatedEvent,
17
19
  ConfigInitialized: parseConfigInitializedEvent,
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
package/dist/src/fee.d.ts CHANGED
@@ -11,3 +11,16 @@ export type FeeShares = {
11
11
  net: bigint;
12
12
  };
13
13
  export declare function splitFees(amount: bigint, feeBps: number, partnerBps: number, cutBps: number): FeeShares;
14
+ export type ReleaseTerms = {
15
+ amount: bigint;
16
+ judgeFee: bigint;
17
+ feeBps: number;
18
+ partnerBps: number;
19
+ cutBps: number;
20
+ };
21
+ export declare function releaseSettles(terms: ReleaseTerms): boolean;
22
+ export type SettleBounds = {
23
+ leastAmount?: bigint;
24
+ mostJudgeFee?: bigint;
25
+ };
26
+ export declare function settleBounds(terms: ReleaseTerms): SettleBounds;
package/dist/src/fee.js CHANGED
@@ -32,4 +32,32 @@ export function splitFees(amount, feeBps, partnerBps, cutBps) {
32
32
  }
33
33
  return { protocol, partner: gross - cut, net: amount - fee - gross };
34
34
  }
35
+ function feesFit(rest, terms) {
36
+ try {
37
+ splitFees(rest, terms.feeBps, terms.partnerBps, terms.cutBps);
38
+ return true;
39
+ }
40
+ catch (error) {
41
+ if (error instanceof IntentCoreError) {
42
+ return false;
43
+ }
44
+ throw error;
45
+ }
46
+ }
47
+ export function releaseSettles(terms) {
48
+ return terms.amount > terms.judgeFee && feesFit(terms.amount - terms.judgeFee, terms);
49
+ }
50
+ export function settleBounds(terms) {
51
+ for (let rest = 1n; rest <= BPS_DENOMINATOR; rest += 1n) {
52
+ if (!feesFit(rest, terms)) {
53
+ continue;
54
+ }
55
+ const leastAmount = terms.judgeFee + rest;
56
+ return {
57
+ ...(leastAmount <= U64_MAX ? { leastAmount } : {}),
58
+ ...(terms.amount >= rest ? { mostJudgeFee: terms.amount - rest } : {}),
59
+ };
60
+ }
61
+ return {};
62
+ }
35
63
  //# sourceMappingURL=fee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../src/fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEvE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAO,CAAC;AAEvC,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAI,GAAG,KAAK;IAChD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,yBAAyB,eAAe,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAID,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,MAAc;IACrD,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;IAC7E,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;AACpC,CAAC;AAID,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,MAAc,EAAE,UAAkB,EAAE,MAAc;IAC1F,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC;IACvF,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,eAAe,CAAC,CAAC;IACrF,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,eAAe,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC;IAC3B,IAAI,QAAQ,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../src/fee.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export * from "./mints.js";
20
20
  export * from "./pdas.js";
21
21
  export * from "./profile.js";
22
22
  export * from "./sealed.js";
23
+ export * from "./sealed-delivery.js";
23
24
  export * from "./sig.js";
24
25
  export * from "./state.js";
25
26
  export * from "./validate.js";
package/dist/src/index.js CHANGED
@@ -20,6 +20,7 @@ export * from "./mints.js";
20
20
  export * from "./pdas.js";
21
21
  export * from "./profile.js";
22
22
  export * from "./sealed.js";
23
+ export * from "./sealed-delivery.js";
23
24
  export * from "./sig.js";
24
25
  export * from "./state.js";
25
26
  export * from "./validate.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
@@ -1,19 +1,12 @@
1
1
  import { type Address } from "@solana/kit";
2
2
  export declare const SPEC_MEMO_PREFIX = "solive-spec:";
3
- export declare const DELIVERY_MEMO_PREFIX = "solive-delivery:";
4
3
  export declare const RELEASE_MEMO_PREFIX = "delivery sha256:";
5
4
  export declare const FEEDBACK_MEMO_PREFIX = "solive-feedback:";
6
5
  export declare const MAX_FEEDBACK_SCORE = 100;
7
6
  export declare const MAX_MEMO_URL = 200;
8
- export declare const MAX_DELIVERY_MEMO: number;
9
7
  export type SpecMemo = {
10
8
  url: string;
11
9
  };
12
- export type DeliveryMemo = {
13
- intent: Address;
14
- sha256: string;
15
- url: string;
16
- };
17
10
  export type FeedbackMemo = {
18
11
  intent: Address;
19
12
  score: number;
@@ -25,8 +18,6 @@ export declare function isLegacyMemoUrl(url: string): boolean;
25
18
  export declare function isSha256Hex(text: string): boolean;
26
19
  export declare function specMemo(url: string): string;
27
20
  export declare function parseSpecMemo(text: string): SpecMemo | null;
28
- export declare function deliveryMemo({ intent, sha256, url }: DeliveryMemo): string;
29
- export declare function parseDeliveryMemo(text: string): DeliveryMemo | null;
30
21
  export declare function releaseMemo(sha256: string): string;
31
22
  export declare function parseReleaseMemo(text: string): string | null;
32
23
  export declare function feedbackMemo({ intent, score, note }: FeedbackMemo): string;
package/dist/src/memo.js CHANGED
@@ -1,12 +1,10 @@
1
1
  import { isAddress } from "@solana/kit";
2
2
  import { PRODUCT_SLUG } from "../generated/identity.js";
3
3
  export const SPEC_MEMO_PREFIX = `${PRODUCT_SLUG}-spec:`;
4
- export const DELIVERY_MEMO_PREFIX = `${PRODUCT_SLUG}-delivery:`;
5
4
  export const RELEASE_MEMO_PREFIX = "delivery sha256:";
6
5
  export const FEEDBACK_MEMO_PREFIX = `${PRODUCT_SLUG}-feedback:`;
7
6
  export const MAX_FEEDBACK_SCORE = 100;
8
7
  export const MAX_MEMO_URL = 200;
9
- export const MAX_DELIVERY_MEMO = DELIVERY_MEMO_PREFIX.length + 44 + 1 + 64 + 1 + MAX_MEMO_URL;
10
8
  export const MEMO_URL_RULE = `an https url of at most ${MAX_MEMO_URL} printable characters without spaces or backslashes, or http on localhost, 127.0.0.1 or [::1], in canonical form: lowercase scheme and host, no default port, no . or .. path segments, a / path before any ? or #, and characters percent-encoded as new URL() would`;
11
9
  const PRINTABLE = /^[!-~]+$/;
12
10
  const SHA256 = /^[0-9a-f]{64}$/;
@@ -54,35 +52,6 @@ export function parseSpecMemo(text) {
54
52
  const url = text.slice(SPEC_MEMO_PREFIX.length);
55
53
  return isLegacyMemoUrl(url) ? { url } : null;
56
54
  }
57
- export function deliveryMemo({ intent, sha256, url }) {
58
- if (!isAddress(intent)) {
59
- throw new RangeError("a delivery names its intent by a base58 address");
60
- }
61
- if (!isSha256Hex(sha256)) {
62
- throw new RangeError("a delivery's sha256 must be 64 lowercase hex digits");
63
- }
64
- if (!isMemoUrl(url)) {
65
- throw new RangeError(`a delivery url must be ${MEMO_URL_RULE}`);
66
- }
67
- return `${DELIVERY_MEMO_PREFIX}${intent}:${sha256}:${url}`;
68
- }
69
- export function parseDeliveryMemo(text) {
70
- if (text.length > MAX_DELIVERY_MEMO || !text.startsWith(DELIVERY_MEMO_PREFIX)) {
71
- return null;
72
- }
73
- const rest = text.slice(DELIVERY_MEMO_PREFIX.length);
74
- const split = rest.indexOf(":");
75
- if (split < 0) {
76
- return null;
77
- }
78
- const intent = rest.slice(0, split);
79
- const sha256 = rest.slice(split + 1, split + 65);
80
- const url = rest.slice(split + 66);
81
- if (rest[split + 65] !== ":" || !isAddress(intent) || !isSha256Hex(sha256) || !isLegacyMemoUrl(url)) {
82
- return null;
83
- }
84
- return { intent, sha256, url };
85
- }
86
55
  export function releaseMemo(sha256) {
87
56
  if (!isSha256Hex(sha256)) {
88
57
  throw new RangeError("a release records a sha256 of 64 lowercase hex digits");
@@ -1 +1 @@
1
- {"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/memo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/memo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type Address } from "@solana/kit";
2
+ export declare const DELIVERY_V2_MEMO_PREFIX = "solive-delivery2:";
3
+ export declare const COMMITMENT_TAG = "solive-delivery-v2";
4
+ export declare const SEALED_URL_VERSION = 1;
5
+ export declare const MAX_DELIVERY_V2_MEMO = 960;
6
+ export declare const MAX_SEALED_URL_RECIPIENTS = 8;
7
+ export type DeliveryMemoV2 = {
8
+ intent: Address;
9
+ commitment: string;
10
+ blob: string;
11
+ };
12
+ export type Commitment = {
13
+ intent: Address;
14
+ worker: Address;
15
+ sha256: string;
16
+ };
17
+ export declare function maxSealedUrl(recipients: number): number;
18
+ export declare const sealedUrlTooLong: (length: number, recipients: number) => string;
19
+ export declare function commitmentPreimage({ intent, worker, sha256 }: Commitment): Uint8Array<ArrayBuffer>;
20
+ export declare function deliveryCommitment(commitment: Commitment): Promise<string>;
21
+ export declare function sealUrl(url: string, recipients: readonly Address[], intent: Address): Promise<string>;
22
+ export declare function sealedUrlRecipients(blob: string): number | null;
23
+ export declare function openUrl(blob: string, keypair: Uint8Array, intent: Address): Promise<string | null>;
24
+ export declare function deliveryMemoV2({ intent, commitment, blob }: DeliveryMemoV2): string;
25
+ export declare function parseDeliveryMemoV2(text: string): DeliveryMemoV2 | null;
@@ -0,0 +1,163 @@
1
+ import { getAddressDecoder, getAddressEncoder, isAddress } from "@solana/kit";
2
+ import { PRODUCT_SLUG } from "../generated/identity.js";
3
+ import { MAX_COMMITTEE_MEMBERS } from "./committee.js";
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;
10
+ export const MAX_SEALED_URL_RECIPIENTS = MAX_COMMITTEE_MEMBERS;
11
+ const INFO = new TextEncoder().encode(`${PRODUCT_SLUG}-sealed-url-v1`);
12
+ const KEY_BYTES = 32;
13
+ const IV_BYTES = 12;
14
+ const TAG_BYTES = 16;
15
+ const WRAPPED_BYTES = KEY_BYTES + TAG_BYTES;
16
+ const EPK_BYTES = 32;
17
+ const HEAD_BYTES = 2;
18
+ const BASE64 = /^[A-Za-z0-9+/]+={0,2}$/;
19
+ const ADDRESS_CHARS = 44;
20
+ const FIXED_MEMO = DELIVERY_V2_MEMO_PREFIX.length + ADDRESS_CHARS + 1 + 64 + 1;
21
+ const ZERO_IV = new Uint8Array(IV_BYTES);
22
+ const toBase64 = (bytes) => btoa(String.fromCharCode(...bytes));
23
+ const fromBase64 = (text) => Uint8Array.from(atob(text), (c) => c.charCodeAt(0));
24
+ 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;
26
+ export function maxSealedUrl(recipients) {
27
+ let url = MAX_MEMO_URL;
28
+ while (url > 0 && FIXED_MEMO + base64Length(sealedBytes(recipients, url)) > MAX_DELIVERY_V2_MEMO) {
29
+ url -= 1;
30
+ }
31
+ return url;
32
+ }
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 }) {
35
+ if (!isSha256Hex(sha256)) {
36
+ throw new RangeError("a commitment binds a sha256 of 64 lowercase hex digits");
37
+ }
38
+ 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
+ ]);
45
+ }
46
+ const hex = (bytes) => Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
47
+ export async function deliveryCommitment(commitment) {
48
+ return hex(new Uint8Array(await crypto.subtle.digest("SHA-256", commitmentPreimage(commitment))));
49
+ }
50
+ const random = (length) => crypto.getRandomValues(new Uint8Array(new ArrayBuffer(length)));
51
+ const aad = (intent) => Uint8Array.from([...INFO, ...getAddressEncoder().encode(intent)]);
52
+ async function sharedWith(peer, mine) {
53
+ const key = await crypto.subtle.importKey("raw", peer.slice(), { name: "X25519" }, false, []);
54
+ return new Uint8Array(await crypto.subtle.deriveBits({ name: "X25519", public: key }, mine, 256));
55
+ }
56
+ export async function sealUrl(url, recipients, intent) {
57
+ const wallets = [...new Set(recipients)];
58
+ if (wallets.length === 0 || wallets.length > MAX_SEALED_URL_RECIPIENTS) {
59
+ throw new SealedError(`seal a work url to between 1 and ${MAX_SEALED_URL_RECIPIENTS} wallets`);
60
+ }
61
+ if (!isMemoUrl(url)) {
62
+ throw new RangeError(`a delivery url must be ${MEMO_URL_RULE}`);
63
+ }
64
+ if (url.length > maxSealedUrl(wallets.length)) {
65
+ throw new RangeError(sealedUrlTooLong(url.length, wallets.length));
66
+ }
67
+ const contentKey = random(KEY_BYTES);
68
+ const iv = random(IV_BYTES);
69
+ const ephemeral = (await crypto.subtle.generateKey({ name: "X25519" }, true, ["deriveBits"]));
70
+ const epk = new Uint8Array(await crypto.subtle.exportKey("raw", ephemeral.publicKey));
71
+ 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);
75
+ wrapped.push(...new Uint8Array(await crypto.subtle.encrypt({ name: "AES-GCM", iv: ZERO_IV, additionalData: INFO }, wrapping, contentKey)));
76
+ }
77
+ 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]));
80
+ }
81
+ export function sealedUrlRecipients(blob) {
82
+ if (!BASE64.test(blob)) {
83
+ return null;
84
+ }
85
+ let bytes;
86
+ try {
87
+ bytes = fromBase64(blob);
88
+ }
89
+ catch {
90
+ return null;
91
+ }
92
+ const count = bytes[1] ?? 0;
93
+ if (toBase64(bytes) !== blob || bytes[0] !== SEALED_URL_VERSION || count < 1 || count > MAX_SEALED_URL_RECIPIENTS) {
94
+ return null;
95
+ }
96
+ return bytes.length > sealedBytes(count, 0) ? count : null;
97
+ }
98
+ export async function openUrl(blob, keypair, intent) {
99
+ const count = sealedUrlRecipients(blob);
100
+ if (count === null) {
101
+ return null;
102
+ }
103
+ 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)));
107
+ let wrapping;
108
+ try {
109
+ wrapping = await wrapKey(await sharedWith(epk, mine), Uint8Array.from([...epk, ...ours]), INFO);
110
+ }
111
+ catch {
112
+ return null;
113
+ }
114
+ const keysAt = HEAD_BYTES + EPK_BYTES;
115
+ const ivAt = keysAt + count * WRAPPED_BYTES;
116
+ for (let at = 0; at < count; at += 1) {
117
+ let contentKey;
118
+ try {
119
+ const start = keysAt + at * WRAPPED_BYTES;
120
+ contentKey = new Uint8Array(await crypto.subtle.decrypt({ name: "AES-GCM", iv: ZERO_IV, additionalData: INFO }, wrapping, bytes.slice(start, start + WRAPPED_BYTES)));
121
+ }
122
+ catch {
123
+ continue;
124
+ }
125
+ try {
126
+ 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;
130
+ }
131
+ catch {
132
+ return null;
133
+ }
134
+ }
135
+ return null;
136
+ }
137
+ export function deliveryMemoV2({ intent, commitment, blob }) {
138
+ if (!isAddress(intent)) {
139
+ throw new RangeError("a delivery names its intent by a base58 address");
140
+ }
141
+ if (!isSha256Hex(commitment)) {
142
+ throw new RangeError("a delivery's commitment must be 64 lowercase hex digits");
143
+ }
144
+ if (sealedUrlRecipients(blob) === null) {
145
+ throw new RangeError("a delivery's sealed url must be the base64 a sealUrl call returns");
146
+ }
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`);
150
+ }
151
+ return memo;
152
+ }
153
+ export function parseDeliveryMemoV2(text) {
154
+ if (text.length > MAX_DELIVERY_V2_MEMO || !text.startsWith(DELIVERY_V2_MEMO_PREFIX)) {
155
+ return null;
156
+ }
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) {
159
+ return null;
160
+ }
161
+ return { intent, commitment, blob };
162
+ }
163
+ //# sourceMappingURL=sealed-delivery.js.map