@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.
- package/dist/cjs/preview/index.js +26 -0
- package/dist/cjs/preview/package.json +1 -0
- package/dist/cjs/preview/parse/classifyInnerOperations.js +130 -0
- package/dist/cjs/preview/parse/errors.js +47 -0
- package/dist/cjs/preview/parse/index.js +32 -0
- package/dist/cjs/preview/parse/parseFacadeOperationCalldata.js +111 -0
- package/dist/cjs/preview/parse/parseOperationCalldata.js +46 -0
- package/dist/cjs/preview/parse/parsePoolOperationCalldata.js +62 -0
- package/dist/cjs/preview/parse/types.js +30 -0
- package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +78 -0
- package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +77 -0
- package/dist/cjs/preview/prerequisites/Prerequisite.js +85 -0
- package/dist/cjs/preview/prerequisites/buildPrerequisites.js +141 -0
- package/dist/cjs/preview/prerequisites/index.js +32 -0
- package/dist/cjs/preview/prerequisites/runPrerequisites.js +71 -0
- package/dist/cjs/preview/prerequisites/types.js +16 -0
- package/dist/cjs/preview/simulate/decodeSimulationError.js +64 -0
- package/dist/cjs/preview/simulate/extractERC20Transfers.js +47 -0
- package/dist/cjs/preview/simulate/index.js +32 -0
- package/dist/cjs/preview/simulate/simulateFacadeOperation.js +30 -0
- package/dist/cjs/preview/simulate/simulateOperation.js +37 -0
- package/dist/cjs/preview/simulate/simulatePoolOperation.js +94 -0
- package/dist/cjs/preview/simulate/types.js +16 -0
- package/dist/esm/preview/index.js +3 -0
- package/dist/esm/preview/package.json +1 -0
- package/dist/esm/preview/parse/classifyInnerOperations.js +108 -0
- package/dist/esm/preview/parse/errors.js +22 -0
- package/dist/esm/preview/parse/index.js +6 -0
- package/dist/esm/preview/parse/parseFacadeOperationCalldata.js +91 -0
- package/dist/esm/preview/parse/parseOperationCalldata.js +25 -0
- package/dist/esm/preview/parse/parsePoolOperationCalldata.js +38 -0
- package/dist/esm/preview/parse/types.js +6 -0
- package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +57 -0
- package/dist/esm/preview/prerequisites/BalancePrerequisite.js +56 -0
- package/dist/esm/preview/prerequisites/Prerequisite.js +63 -0
- package/dist/esm/preview/prerequisites/buildPrerequisites.js +117 -0
- package/dist/esm/preview/prerequisites/index.js +6 -0
- package/dist/esm/preview/prerequisites/runPrerequisites.js +47 -0
- package/dist/esm/preview/prerequisites/types.js +0 -0
- package/dist/esm/preview/simulate/decodeSimulationError.js +44 -0
- package/dist/esm/preview/simulate/extractERC20Transfers.js +23 -0
- package/dist/esm/preview/simulate/index.js +6 -0
- package/dist/esm/preview/simulate/simulateFacadeOperation.js +6 -0
- package/dist/esm/preview/simulate/simulateOperation.js +13 -0
- package/dist/esm/preview/simulate/simulatePoolOperation.js +70 -0
- package/dist/esm/preview/simulate/types.js +0 -0
- package/dist/types/preview/index.d.ts +3 -0
- package/dist/types/preview/parse/classifyInnerOperations.d.ts +21 -0
- package/dist/types/preview/parse/errors.d.ts +17 -0
- package/dist/types/preview/parse/index.d.ts +6 -0
- package/dist/types/preview/parse/parseFacadeOperationCalldata.d.ts +18 -0
- package/dist/types/preview/parse/parseOperationCalldata.d.ts +23 -0
- package/dist/types/preview/parse/parsePoolOperationCalldata.d.ts +15 -0
- package/dist/types/preview/parse/types.d.ts +78 -0
- package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +24 -0
- package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +23 -0
- package/dist/types/preview/prerequisites/Prerequisite.d.ts +60 -0
- package/dist/types/preview/prerequisites/buildPrerequisites.d.ts +16 -0
- package/dist/types/preview/prerequisites/index.d.ts +6 -0
- package/dist/types/preview/prerequisites/runPrerequisites.d.ts +12 -0
- package/dist/types/preview/prerequisites/types.d.ts +78 -0
- package/dist/types/preview/simulate/decodeSimulationError.d.ts +18 -0
- package/dist/types/preview/simulate/extractERC20Transfers.d.ts +11 -0
- package/dist/types/preview/simulate/index.d.ts +6 -0
- package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +27 -0
- package/dist/types/preview/simulate/simulateOperation.d.ts +26 -0
- package/dist/types/preview/simulate/simulatePoolOperation.d.ts +30 -0
- package/dist/types/preview/simulate/types.d.ts +43 -0
- 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.
|
|
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",
|