@gearbox-protocol/sdk 14.12.0-next.11 → 14.12.0-next.13

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 (75) hide show
  1. package/dist/cjs/preview/parse/parseRWAFactoryOperationCalldata.js +13 -12
  2. package/dist/cjs/preview/parse/types.js +1 -1
  3. package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +10 -16
  4. package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +17 -33
  5. package/dist/cjs/preview/prerequisites/Prerequisite.js +13 -18
  6. package/dist/cjs/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +36 -15
  7. package/dist/cjs/preview/prerequisites/buildCollateralPrerequisites.js +57 -0
  8. package/dist/cjs/preview/prerequisites/{prepareAction.js → buildPartialLiquidationPrerequisites.js} +18 -24
  9. package/dist/cjs/preview/prerequisites/buildPoolPrerequisites.js +125 -0
  10. package/dist/cjs/preview/prerequisites/buildRWAPrerequisites.js +57 -0
  11. package/dist/cjs/preview/prerequisites/checkPrerequisites.js +85 -0
  12. package/dist/cjs/preview/prerequisites/helpers.js +47 -0
  13. package/dist/cjs/preview/prerequisites/index.js +2 -6
  14. package/dist/cjs/preview/preview/detectCloseOrRepay.js +51 -0
  15. package/dist/cjs/preview/preview/index.js +4 -0
  16. package/dist/cjs/preview/preview/previewCloseOrRepay.js +94 -0
  17. package/dist/cjs/preview/preview/previewOperation.js +10 -2
  18. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +104 -49
  19. package/dist/cjs/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +26 -4
  20. package/dist/cjs/sdk/utils/AddressSet.js +7 -0
  21. package/dist/esm/preview/parse/parseRWAFactoryOperationCalldata.js +13 -12
  22. package/dist/esm/preview/parse/types.js +1 -1
  23. package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +11 -20
  24. package/dist/esm/preview/prerequisites/BalancePrerequisite.js +18 -37
  25. package/dist/esm/preview/prerequisites/Prerequisite.js +13 -20
  26. package/dist/esm/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +36 -15
  27. package/dist/esm/preview/prerequisites/buildCollateralPrerequisites.js +35 -0
  28. package/dist/esm/preview/prerequisites/buildPartialLiquidationPrerequisites.js +18 -0
  29. package/dist/esm/preview/prerequisites/buildPoolPrerequisites.js +101 -0
  30. package/dist/esm/preview/prerequisites/buildRWAPrerequisites.js +33 -0
  31. package/dist/esm/preview/prerequisites/checkPrerequisites.js +63 -0
  32. package/dist/esm/preview/prerequisites/helpers.js +23 -0
  33. package/dist/esm/preview/prerequisites/index.js +1 -3
  34. package/dist/esm/preview/preview/detectCloseOrRepay.js +26 -0
  35. package/dist/esm/preview/preview/index.js +2 -0
  36. package/dist/esm/preview/preview/previewCloseOrRepay.js +76 -0
  37. package/dist/esm/preview/preview/previewOperation.js +10 -2
  38. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +104 -49
  39. package/dist/esm/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +26 -4
  40. package/dist/esm/sdk/utils/AddressSet.js +7 -0
  41. package/dist/types/preview/parse/parseRWAFactoryOperationCalldata.d.ts +1 -1
  42. package/dist/types/preview/parse/types-rwa.d.ts +11 -23
  43. package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +4 -5
  44. package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +4 -6
  45. package/dist/types/preview/prerequisites/Prerequisite.d.ts +16 -40
  46. package/dist/types/preview/prerequisites/RWAOpenRequirementsPrerequisite.d.ts +22 -16
  47. package/dist/types/preview/prerequisites/buildCollateralPrerequisites.d.ts +14 -0
  48. package/dist/types/preview/prerequisites/buildPartialLiquidationPrerequisites.d.ts +8 -0
  49. package/dist/types/preview/prerequisites/buildPoolPrerequisites.d.ts +8 -0
  50. package/dist/types/preview/prerequisites/buildRWAPrerequisites.d.ts +21 -0
  51. package/dist/types/preview/prerequisites/checkPrerequisites.d.ts +27 -0
  52. package/dist/types/preview/prerequisites/helpers.d.ts +15 -0
  53. package/dist/types/preview/prerequisites/index.d.ts +1 -3
  54. package/dist/types/preview/prerequisites/types.d.ts +21 -2
  55. package/dist/types/preview/preview/detectCloseOrRepay.d.ts +18 -0
  56. package/dist/types/preview/preview/index.d.ts +2 -0
  57. package/dist/types/preview/preview/previewAdjustCreditAccount.d.ts +2 -2
  58. package/dist/types/preview/preview/previewCloseOrRepay.d.ts +10 -0
  59. package/dist/types/preview/preview/previewOpenCreditAccount.d.ts +2 -2
  60. package/dist/types/preview/preview/types.d.ts +60 -3
  61. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +6 -1
  62. package/dist/types/sdk/accounts/types.d.ts +66 -3
  63. package/dist/types/sdk/market/rwa/securitize/SecuritizeRWAFactory.d.ts +11 -3
  64. package/dist/types/sdk/market/rwa/securitize/types.d.ts +18 -2
  65. package/dist/types/sdk/market/rwa/types.d.ts +26 -9
  66. package/dist/types/sdk/utils/AddressSet.d.ts +1 -0
  67. package/package.json +1 -1
  68. package/dist/cjs/preview/prerequisites/buildPrerequisites.js +0 -297
  69. package/dist/cjs/preview/prerequisites/runPrerequisites.js +0 -71
  70. package/dist/esm/preview/prerequisites/buildPrerequisites.js +0 -279
  71. package/dist/esm/preview/prerequisites/prepareAction.js +0 -23
  72. package/dist/esm/preview/prerequisites/runPrerequisites.js +0 -47
  73. package/dist/types/preview/prerequisites/buildPrerequisites.d.ts +0 -25
  74. package/dist/types/preview/prerequisites/prepareAction.d.ts +0 -52
  75. package/dist/types/preview/prerequisites/runPrerequisites.d.ts +0 -12
@@ -1,47 +0,0 @@
1
- async function verifyPrerequisites(prereqs, ctx) {
2
- if (prereqs.length === 0) {
3
- return [];
4
- }
5
- const ranges = [];
6
- const calls = [];
7
- for (const prereq of prereqs) {
8
- const start = calls.length;
9
- calls.push(...prereq.calls(ctx));
10
- ranges.push({ start, end: calls.length });
11
- }
12
- let results;
13
- try {
14
- results = await ctx.sdk.client.multicall({
15
- allowFailure: true,
16
- contracts: calls,
17
- // `undefined` lets viem read at `latest`; `blockNumber` is only set for
18
- // testnet forks pinned to a specific block.
19
- blockNumber: ctx.blockNumber
20
- });
21
- } catch (cause) {
22
- const error = cause instanceof Error ? cause : new Error(String(cause));
23
- return prereqs.map(
24
- (prereq, i) => (
25
- // Each prereq pairs its own kind with its detail, so the widened
26
- // `resolve` return is safe to narrow back to the discriminated union.
27
- prereq.resolve(
28
- failureSlice(ranges[i].end - ranges[i].start, error)
29
- )
30
- )
31
- );
32
- }
33
- return prereqs.map(
34
- (prereq, i) => prereq.resolve(
35
- results.slice(ranges[i].start, ranges[i].end)
36
- )
37
- );
38
- }
39
- function failureSlice(n, error) {
40
- return Array.from({ length: n }, () => ({
41
- status: "failure",
42
- error
43
- }));
44
- }
45
- export {
46
- verifyPrerequisites
47
- };
@@ -1,25 +0,0 @@
1
- import { type PluginsMap } from "../../sdk/index.js";
2
- import { type ParseOperationCalldataInput } from "../parse/parseOperationCalldata.js";
3
- import type { AnyPrerequisite } from "./Prerequisite.js";
4
- /**
5
- * Input of {@link buildPrerequisites}: the same raw-calldata input as the
6
- * internal calldata parser, plus an optional block to read at.
7
- */
8
- export type BuildPrerequisitesInput<P extends PluginsMap = PluginsMap> = ParseOperationCalldataInput<P> & {
9
- /** Block to read at; defaults to latest. Only set for testnet forks. */
10
- blockNumber?: bigint;
11
- };
12
- /**
13
- * Derives the on-chain prerequisites for an operation given its raw calldata:
14
- * the conditions that must hold for the call not to revert and that we can
15
- * verify with the SDK (token approvals, wallet balances). The calldata is
16
- * decoded internally via `parseOperationCalldata`.
17
- *
18
- * Only *sender-actionable* prerequisites belong here: conditions the LP
19
- * provider or borrower can fix themselves before retrying (e.g. approve a
20
- * token, top up a balance). Non-actionable protocol/admin state (pool pause,
21
- * available pool liquidity, health factor, liquidatability, degen NFT gating,
22
- * bot permissions) is intentionally out of scope, since the user cannot
23
- * resolve it. New {@link AnyPrerequisite} subclasses must follow the same rule.
24
- */
25
- export declare function buildPrerequisites<P extends PluginsMap>(input: BuildPrerequisitesInput<P>): Promise<AnyPrerequisite[]>;
@@ -1,52 +0,0 @@
1
- import { type Address, type Hex } from "viem";
2
- import type { AnyPrerequisiteResult } from "./types.js";
3
- /**
4
- * A single transaction that satisfies a sender-actionable prerequisite.
5
- *
6
- * The shape is intentionally minimal (`to`/`data`/optional `value`) so it maps
7
- * directly onto wallet send primitives (e.g. viem `sendTransaction`, wagmi
8
- * `useSendTransaction`/`useWriteContract`). It is deliberately *not* the heavier
9
- * {@link import("../../sdk/types/transactions.js").RawTx} used for Safe batches.
10
- *
11
- * The `kind` mirrors the prerequisite kind it remediates, so consumers can label
12
- * the action (e.g. "Approve") without re-deriving it.
13
- */
14
- export interface PrerequisiteAction {
15
- /** Prerequisite kind this action remediates. */
16
- kind: "allowance";
17
- /** Contract the transaction is sent to (the ERC-20 token for allowances). */
18
- to: Address;
19
- /** Encoded calldata (e.g. `approve(spender, required)`). */
20
- data: Hex;
21
- /** Native value to send; omitted (treated as 0) for ERC-20 approvals. */
22
- value?: bigint;
23
- }
24
- /**
25
- * Builds the transaction that resolves an unsatisfied, sender-actionable
26
- * prerequisite, or returns `null` when the prerequisite cannot be fixed with a
27
- * single wallet transaction.
28
- *
29
- * Currently only `allowance` is actionable: it returns an ERC-20
30
- * `approve(spender, required)` for the exact required amount. `balance`
31
- * shortfalls (the user must acquire/free up funds) and errored reads are not
32
- * actionable and return `null`. New actionable kinds (permits, native unwrap,
33
- * approve-reset-to-zero for non-standard tokens, ...) should be encoded here so
34
- * consumers do not have to special-case them.
35
- *
36
- * Operates on the serializable {@link AnyPrerequisiteResult} produced by
37
- * `verifyPrerequisites` (not on {@link import("./Prerequisite.js").Prerequisite}
38
- * instances), so it works against cached/persisted results.
39
- *
40
- * @param result - A verified prerequisite result.
41
- * @returns The remediation transaction, or `null` if not auto-actionable.
42
- */
43
- export declare function preparePrerequisiteAction(result: AnyPrerequisiteResult): PrerequisiteAction | null;
44
- /**
45
- * Whether a prerequisite result represents something the sender can fix with a
46
- * single wallet transaction (i.e. {@link preparePrerequisiteAction} returns a
47
- * transaction for it).
48
- *
49
- * Useful for UIs that distinguish "approve to continue" (actionable) from hard
50
- * blocks like an insufficient balance (not actionable).
51
- */
52
- export declare function isActionablePrerequisite(result: AnyPrerequisiteResult): boolean;
@@ -1,12 +0,0 @@
1
- import type { AnyPrerequisite } from "./Prerequisite.js";
2
- import type { AnyPrerequisiteResult, PrerequisiteContext } from "./types.js";
3
- /**
4
- * Verifies all prerequisites in a single resilient multicall.
5
- *
6
- * Every prereq contributes its reads to one `multicall({ allowFailure: true })`
7
- * batch, then resolves its own slice of the response. A read that reverts
8
- * isolates to that prerequisite (an `error` result) without affecting the
9
- * others; if the whole round-trip fails (RPC/network), every prerequisite
10
- * resolves to an `error` carrying that reason.
11
- */
12
- export declare function verifyPrerequisites(prereqs: AnyPrerequisite[], ctx: PrerequisiteContext): Promise<AnyPrerequisiteResult[]>;