@lifi/types 17.79.0-beta.3 → 17.79.0-beta.4

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.
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "dependencies": {
5
5
  "viem": "^2.33.2"
6
6
  },
7
- "version": "17.79.0-beta.3",
7
+ "version": "17.79.0-beta.4",
8
8
  "files": [
9
9
  "src",
10
10
  "!src/assets",
@@ -1 +1 @@
1
- {"version":3,"file":"step.js","sourceRoot":"","sources":["../step.ts"],"names":[],"mappings":";;;AA2LA,gCAEC;AAED,kCAEC;AAED,wCAEC;AAED,oCAEC;AAhHY,QAAA,SAAS,GAAG;IACvB,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;CACA,CAAA;AA4FV,SAAgB,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAA;AAC7B,CAAC;AAED,SAAgB,WAAW,CAAC,IAAU;IACpC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAA;AAC9B,CAAC;AAED,SAAgB,cAAc,CAAC,IAAU;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAA;AACjC,CAAC;AAED,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"step.js","sourceRoot":"","sources":["../step.ts"],"names":[],"mappings":";;;AAiPA,gCAEC;AAED,kCAEC;AAED,wCAEC;AAED,oCAEC;AAhHY,QAAA,SAAS,GAAG;IACvB,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;CACA,CAAA;AA4FV,SAAgB,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAA;AAC7B,CAAC;AAED,SAAgB,WAAW,CAAC,IAAU;IACpC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAA;AAC9B,CAAC;AAED,SAAgB,cAAc,CAAC,IAAU;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAA;AACjC,CAAC;AAED,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAA;AAC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"step.js","sourceRoot":"","sources":["../step.ts"],"names":[],"mappings":"AAwFA,OAAO;AACP,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;CACA,CAAA;AA4FV,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAU;IACpC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"step.js","sourceRoot":"","sources":["../step.ts"],"names":[],"mappings":"AA8IA,OAAO;AACP,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;CACA,CAAA;AA4FV,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAU;IACpC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAA;AAC/B,CAAC"}
@@ -1,12 +1,42 @@
1
1
  import type { TypedData, TransactionRequest, SignedTypedData, ExecutionType } from './api.js';
2
2
  import type { Token } from './tokens/index.js';
3
+ /**
4
+ * How a fee was calculated / the role of the recipient in the split.
5
+ *
6
+ * - `FIXED` — a fixed LI.FI cut applied alongside the integrator's own fee.
7
+ * - `SHARED` — a single shared pool divided between LI.FI and the integrator.
8
+ * - `DYNAMIC` — fee resolved at quote time from configured rules (e.g. dynamic
9
+ * stablecoin pricing).
10
+ * - `INTERMEDIARY` — a third-party recipient that carves a configured share
11
+ * from the integrator pool (e.g. a widget or aggregator).
12
+ * - `DISTRIBUTION` — a partner-specified extra recipient added in parallel to
13
+ * the integrator/intermediary split via the `distributionFees` request param.
14
+ *
15
+ * The union is expected to grow over time. When pattern-matching with a
16
+ * `switch`, always include a `default` branch so adding a new value remains
17
+ * a non-breaking minor for consumers.
18
+ */
3
19
  export type FeeSplitType = 'FIXED' | 'SHARED' | 'DYNAMIC' | 'INTERMEDIARY' | 'DISTRIBUTION';
4
20
  export interface FeeRecipient {
5
- /** Recipient identifier — `'lifi'` for LI.FI, the integrator id, the intermediary id, or a partner wallet for distribution entries. */
21
+ /**
22
+ * Recipient identifier. Polymorphic — interpret in conjunction with `type`:
23
+ * - `'lifi'` for the LI.FI platform recipient,
24
+ * - the integrator id (e.g. `'jumper'`) for the integrator recipient,
25
+ * - the intermediary id (e.g. `'mesh'`) when `type === 'INTERMEDIARY'`,
26
+ * - the recipient wallet address when `type === 'DISTRIBUTION'`.
27
+ *
28
+ * Do not display this value directly in user-facing UI without
29
+ * `type`-aware formatting — for `DISTRIBUTION` rows the value is a
30
+ * raw hex address.
31
+ */
6
32
  name: string;
7
33
  /** Absolute fee amount, in source token base units (string-encoded). */
8
34
  fee: string;
9
- /** How this recipient's fee was calculated / its role in the split. */
35
+ /**
36
+ * Fee calculation type. Absent when not statically determinable (e.g.
37
+ * an integrator entry whose `feeType` could not be resolved from the
38
+ * matching planned fee cost). Consumers should null-check before reading.
39
+ */
10
40
  type?: FeeSplitType;
11
41
  /** Recipient wallet address on the source chain. */
12
42
  walletAddress?: string;
@@ -20,9 +50,33 @@ export interface FeeCost {
20
50
  amountUSD: string;
21
51
  included: boolean;
22
52
  feeSplit?: {
53
+ /** Sum of LI.FI's portion of the fee. */
23
54
  lifiFee: string;
55
+ /**
56
+ * Aggregate of every non-LI.FI recipient (integrator + intermediary +
57
+ * any distribution entries). Provided for backward compatibility with
58
+ * 2-recipient consumers; new consumers should iterate `recipients`.
59
+ *
60
+ * NOTE: this value already includes `intermediaryFee` (and any
61
+ * distribution-recipient amounts). The legacy aggregate fields are
62
+ * not disjoint — never compute `lifiFee + integratorFee + intermediaryFee`
63
+ * to derive the parent `FeeCost.amount`; that double-counts the
64
+ * intermediary. The parent `amount` is the total.
65
+ */
24
66
  integratorFee: string;
67
+ /**
68
+ * Sum of the intermediary recipient's portion when `type === 'INTERMEDIARY'`
69
+ * is present in `recipients`. Absent when no intermediary participates.
70
+ *
71
+ * NOTE: this value is also included in `integratorFee` above. Provided
72
+ * separately for consumers that need to attribute the intermediary slice
73
+ * without iterating `recipients`.
74
+ */
25
75
  intermediaryFee?: string;
76
+ /**
77
+ * Per-recipient fee breakdown. Source of truth for new consumers; the
78
+ * aggregate fields above are derived sums kept for backward compatibility.
79
+ */
26
80
  recipients?: FeeRecipient[];
27
81
  };
28
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../step.ts"],"names":[],"mappings":"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"}
package/src/step.ts CHANGED
@@ -6,6 +6,22 @@ import type {
6
6
  } from './api.js'
7
7
  import type { Token } from './tokens/index.js'
8
8
 
9
+ /**
10
+ * How a fee was calculated / the role of the recipient in the split.
11
+ *
12
+ * - `FIXED` — a fixed LI.FI cut applied alongside the integrator's own fee.
13
+ * - `SHARED` — a single shared pool divided between LI.FI and the integrator.
14
+ * - `DYNAMIC` — fee resolved at quote time from configured rules (e.g. dynamic
15
+ * stablecoin pricing).
16
+ * - `INTERMEDIARY` — a third-party recipient that carves a configured share
17
+ * from the integrator pool (e.g. a widget or aggregator).
18
+ * - `DISTRIBUTION` — a partner-specified extra recipient added in parallel to
19
+ * the integrator/intermediary split via the `distributionFees` request param.
20
+ *
21
+ * The union is expected to grow over time. When pattern-matching with a
22
+ * `switch`, always include a `default` branch so adding a new value remains
23
+ * a non-breaking minor for consumers.
24
+ */
9
25
  export type FeeSplitType =
10
26
  | 'FIXED'
11
27
  | 'SHARED'
@@ -14,11 +30,25 @@ export type FeeSplitType =
14
30
  | 'DISTRIBUTION'
15
31
 
16
32
  export interface FeeRecipient {
17
- /** Recipient identifier — `'lifi'` for LI.FI, the integrator id, the intermediary id, or a partner wallet for distribution entries. */
33
+ /**
34
+ * Recipient identifier. Polymorphic — interpret in conjunction with `type`:
35
+ * - `'lifi'` for the LI.FI platform recipient,
36
+ * - the integrator id (e.g. `'jumper'`) for the integrator recipient,
37
+ * - the intermediary id (e.g. `'mesh'`) when `type === 'INTERMEDIARY'`,
38
+ * - the recipient wallet address when `type === 'DISTRIBUTION'`.
39
+ *
40
+ * Do not display this value directly in user-facing UI without
41
+ * `type`-aware formatting — for `DISTRIBUTION` rows the value is a
42
+ * raw hex address.
43
+ */
18
44
  name: string
19
45
  /** Absolute fee amount, in source token base units (string-encoded). */
20
46
  fee: string
21
- /** How this recipient's fee was calculated / its role in the split. */
47
+ /**
48
+ * Fee calculation type. Absent when not statically determinable (e.g.
49
+ * an integrator entry whose `feeType` could not be resolved from the
50
+ * matching planned fee cost). Consumers should null-check before reading.
51
+ */
22
52
  type?: FeeSplitType
23
53
  /** Recipient wallet address on the source chain. */
24
54
  walletAddress?: string
@@ -33,9 +63,33 @@ export interface FeeCost {
33
63
  amountUSD: string
34
64
  included: boolean
35
65
  feeSplit?: {
66
+ /** Sum of LI.FI's portion of the fee. */
36
67
  lifiFee: string
68
+ /**
69
+ * Aggregate of every non-LI.FI recipient (integrator + intermediary +
70
+ * any distribution entries). Provided for backward compatibility with
71
+ * 2-recipient consumers; new consumers should iterate `recipients`.
72
+ *
73
+ * NOTE: this value already includes `intermediaryFee` (and any
74
+ * distribution-recipient amounts). The legacy aggregate fields are
75
+ * not disjoint — never compute `lifiFee + integratorFee + intermediaryFee`
76
+ * to derive the parent `FeeCost.amount`; that double-counts the
77
+ * intermediary. The parent `amount` is the total.
78
+ */
37
79
  integratorFee: string
80
+ /**
81
+ * Sum of the intermediary recipient's portion when `type === 'INTERMEDIARY'`
82
+ * is present in `recipients`. Absent when no intermediary participates.
83
+ *
84
+ * NOTE: this value is also included in `integratorFee` above. Provided
85
+ * separately for consumers that need to attribute the intermediary slice
86
+ * without iterating `recipients`.
87
+ */
38
88
  intermediaryFee?: string
89
+ /**
90
+ * Per-recipient fee breakdown. Source of truth for new consumers; the
91
+ * aggregate fields above are derived sums kept for backward compatibility.
92
+ */
39
93
  recipients?: FeeRecipient[]
40
94
  }
41
95
  }