@gearbox-protocol/sdk 14.10.7 → 14.11.0-next.2

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 (69) hide show
  1. package/dist/cjs/preview/index.js +26 -0
  2. package/dist/cjs/preview/package.json +1 -0
  3. package/dist/cjs/preview/parse/classifyInnerOperations.js +130 -0
  4. package/dist/cjs/preview/parse/errors.js +47 -0
  5. package/dist/cjs/preview/parse/index.js +32 -0
  6. package/dist/cjs/preview/parse/parseFacadeOperationCalldata.js +111 -0
  7. package/dist/cjs/preview/parse/parseOperationCalldata.js +46 -0
  8. package/dist/cjs/preview/parse/parsePoolOperationCalldata.js +62 -0
  9. package/dist/cjs/preview/parse/types.js +30 -0
  10. package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +78 -0
  11. package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +77 -0
  12. package/dist/cjs/preview/prerequisites/Prerequisite.js +85 -0
  13. package/dist/cjs/preview/prerequisites/buildPrerequisites.js +141 -0
  14. package/dist/cjs/preview/prerequisites/index.js +32 -0
  15. package/dist/cjs/preview/prerequisites/runPrerequisites.js +71 -0
  16. package/dist/cjs/preview/prerequisites/types.js +16 -0
  17. package/dist/cjs/preview/simulate/decodeSimulationError.js +64 -0
  18. package/dist/cjs/preview/simulate/extractERC20Transfers.js +47 -0
  19. package/dist/cjs/preview/simulate/index.js +32 -0
  20. package/dist/cjs/preview/simulate/simulateFacadeOperation.js +30 -0
  21. package/dist/cjs/preview/simulate/simulateOperation.js +37 -0
  22. package/dist/cjs/preview/simulate/simulatePoolOperation.js +94 -0
  23. package/dist/cjs/preview/simulate/types.js +16 -0
  24. package/dist/esm/preview/index.js +3 -0
  25. package/dist/esm/preview/package.json +1 -0
  26. package/dist/esm/preview/parse/classifyInnerOperations.js +108 -0
  27. package/dist/esm/preview/parse/errors.js +22 -0
  28. package/dist/esm/preview/parse/index.js +6 -0
  29. package/dist/esm/preview/parse/parseFacadeOperationCalldata.js +91 -0
  30. package/dist/esm/preview/parse/parseOperationCalldata.js +25 -0
  31. package/dist/esm/preview/parse/parsePoolOperationCalldata.js +38 -0
  32. package/dist/esm/preview/parse/types.js +6 -0
  33. package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +57 -0
  34. package/dist/esm/preview/prerequisites/BalancePrerequisite.js +56 -0
  35. package/dist/esm/preview/prerequisites/Prerequisite.js +63 -0
  36. package/dist/esm/preview/prerequisites/buildPrerequisites.js +117 -0
  37. package/dist/esm/preview/prerequisites/index.js +6 -0
  38. package/dist/esm/preview/prerequisites/runPrerequisites.js +47 -0
  39. package/dist/esm/preview/prerequisites/types.js +0 -0
  40. package/dist/esm/preview/simulate/decodeSimulationError.js +44 -0
  41. package/dist/esm/preview/simulate/extractERC20Transfers.js +23 -0
  42. package/dist/esm/preview/simulate/index.js +6 -0
  43. package/dist/esm/preview/simulate/simulateFacadeOperation.js +6 -0
  44. package/dist/esm/preview/simulate/simulateOperation.js +13 -0
  45. package/dist/esm/preview/simulate/simulatePoolOperation.js +70 -0
  46. package/dist/esm/preview/simulate/types.js +0 -0
  47. package/dist/types/preview/index.d.ts +3 -0
  48. package/dist/types/preview/parse/classifyInnerOperations.d.ts +21 -0
  49. package/dist/types/preview/parse/errors.d.ts +17 -0
  50. package/dist/types/preview/parse/index.d.ts +6 -0
  51. package/dist/types/preview/parse/parseFacadeOperationCalldata.d.ts +18 -0
  52. package/dist/types/preview/parse/parseOperationCalldata.d.ts +23 -0
  53. package/dist/types/preview/parse/parsePoolOperationCalldata.d.ts +15 -0
  54. package/dist/types/preview/parse/types.d.ts +78 -0
  55. package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +24 -0
  56. package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +23 -0
  57. package/dist/types/preview/prerequisites/Prerequisite.d.ts +60 -0
  58. package/dist/types/preview/prerequisites/buildPrerequisites.d.ts +16 -0
  59. package/dist/types/preview/prerequisites/index.d.ts +6 -0
  60. package/dist/types/preview/prerequisites/runPrerequisites.d.ts +12 -0
  61. package/dist/types/preview/prerequisites/types.d.ts +78 -0
  62. package/dist/types/preview/simulate/decodeSimulationError.d.ts +18 -0
  63. package/dist/types/preview/simulate/extractERC20Transfers.d.ts +11 -0
  64. package/dist/types/preview/simulate/index.d.ts +6 -0
  65. package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +27 -0
  66. package/dist/types/preview/simulate/simulateOperation.d.ts +26 -0
  67. package/dist/types/preview/simulate/simulatePoolOperation.d.ts +30 -0
  68. package/dist/types/preview/simulate/types.d.ts +43 -0
  69. package/package.json +6 -1
@@ -0,0 +1,30 @@
1
+ import { type Address, type Hex } from "viem";
2
+ import type { OnchainSDK } from "../../sdk/index.js";
3
+ import type { PoolOperation } from "../parse/index.js";
4
+ import type { PoolSimulationResult } from "./types.js";
5
+ export interface SimulatePoolOperationInput {
6
+ /** Only `client` is used, so any OnchainSDK works. */
7
+ sdk: OnchainSDK;
8
+ /** Parsed operation, used to resolve the underlying and pool tokens. */
9
+ operation: PoolOperation;
10
+ /** Target contract the calldata is sent to (the pool). */
11
+ to: Address;
12
+ /** Raw deposit/redeem calldata to simulate. */
13
+ calldata: Hex;
14
+ /** Wallet whose balance changes and transfers we track. */
15
+ wallet: Address;
16
+ /** Block to simulate at; defaults to latest. Only set for testnet forks. */
17
+ blockNumber?: bigint;
18
+ }
19
+ /**
20
+ * Simulates a pool deposit/redeem by sandwiching the raw calldata between
21
+ * `balanceOf(wallet)` reads of the underlying and pool (share) tokens.
22
+ *
23
+ * On success, returns the ERC-20 transfers emitted by the call that involve the
24
+ * wallet or the operation recipient (for merging into the parsed operation) and
25
+ * the balance changes grouped by watched address (wallet, plus the recipient
26
+ * when distinct); on revert, returns the decoded reason. Simulation runs against
27
+ * real chain state (no overrides), so an unmet prerequisite surfaces here as a
28
+ * failure.
29
+ */
30
+ export declare function simulatePoolOperation(input: SimulatePoolOperationInput): Promise<PoolSimulationResult>;
@@ -0,0 +1,43 @@
1
+ import type { Address } from "viem";
2
+ import type { TokenTransfer } from "../../plugins/adapters/index.js";
3
+ /**
4
+ * Change in an address's balance of a single token over the simulated call.
5
+ * `delta` is `after - before` (negative when the address spent the token).
6
+ */
7
+ export interface TokenBalanceChange {
8
+ token: Address;
9
+ before: bigint;
10
+ after: bigint;
11
+ delta: bigint;
12
+ }
13
+ /**
14
+ * Balance changes for a single watched address (e.g. the wallet or the
15
+ * operation recipient). Keyed purely by address; UI labeling is resolved
16
+ * separately by the presentation layer.
17
+ */
18
+ export interface AddressBalanceChanges {
19
+ address: Address;
20
+ changes: TokenBalanceChange[];
21
+ }
22
+ /** Decoded revert of the simulated transaction. */
23
+ export interface SimulationError {
24
+ /** Human-readable revert reason / error name. */
25
+ reason: string;
26
+ /** Original error, kept for debugging. */
27
+ cause?: unknown;
28
+ }
29
+ /**
30
+ * Outcome of simulating a pool operation. On success it carries the
31
+ * wallet-filtered ERC-20 transfers (to merge into the parsed operation) and the
32
+ * balance changes grouped by watched address; on failure it carries the decoded
33
+ * revert reason.
34
+ */
35
+ export type PoolSimulationResult = {
36
+ status: "success";
37
+ transfers: TokenTransfer[];
38
+ balanceChanges: AddressBalanceChanges[];
39
+ gasUsed: bigint;
40
+ } | {
41
+ status: "failure";
42
+ error: SimulationError;
43
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "14.10.7",
3
+ "version": "14.11.0-next.2",
4
4
  "description": "Gearbox SDK",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -44,6 +44,11 @@
44
44
  "import": "./dist/esm/permissionless/index.js",
45
45
  "default": "./dist/cjs/permissionless/index.js"
46
46
  },
47
+ "./preview": {
48
+ "types": "./dist/types/preview/index.d.ts",
49
+ "import": "./dist/esm/preview/index.js",
50
+ "default": "./dist/cjs/preview/index.js"
51
+ },
47
52
  "./common-utils": {
48
53
  "types": "./dist/types/common-utils/index.d.ts",
49
54
  "import": "./dist/esm/common-utils/index.js",