viem-tx-sim 0.2.0 → 0.2.1
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/README.md +15 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/internal/requirements.d.ts.map +1 -1
- package/dist/internal/requirements.js +21 -8
- package/dist/internal/requirements.js.map +1 -1
- package/dist/txSimulator.js +4 -0
- package/dist/txSimulator.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/internal/requirements.ts +20 -8
- package/src/txSimulator.ts +4 -0
- package/src/types.ts +13 -0
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ The core simulation is one RPC call when you already know what to observe. The w
|
|
|
27
27
|
|
|
28
28
|
## Mental model
|
|
29
29
|
|
|
30
|
-
Everything passed to `sim.simulate()` is
|
|
30
|
+
Everything passed to `sim.simulate()` is explicit: `calls` are what executes, `balanceQueries` are what you observe, and `tokenSlotOverrides` / `nativeBalanceOverrides` are the state assumptions you want to forge. `simulate()` does not discover tokens, retry, or forge balances by itself. The helper namespaces only build those data inputs: `balanceQueries.*` builds observations, and `tokenOverrides.*` builds token assumptions.
|
|
31
31
|
|
|
32
32
|
## API at a glance
|
|
33
33
|
|
|
@@ -39,6 +39,7 @@ const result = await sim.simulate({
|
|
|
39
39
|
calls, // SimulatedCall[]
|
|
40
40
|
balanceQueries, // BalanceQuery[]
|
|
41
41
|
tokenSlotOverrides, // TokenSlotOverride[] | undefined
|
|
42
|
+
nativeBalanceOverrides, // NativeBalanceOverride[] | undefined
|
|
42
43
|
gas,
|
|
43
44
|
debug,
|
|
44
45
|
errorAbi,
|
|
@@ -120,7 +121,7 @@ console.log(result.balanceDeltas);
|
|
|
120
121
|
|
|
121
122
|
`balanceDeltas` mirror your `balanceQueries` in order, including zero deltas, with raw `bigint` amounts in each asset's own units. `byCall` is index-aligned with `calls`, sums to `delta`, and entries from a failing call onward are `0n` on a returned revert. A revert is returned as `status: "reverted"`, never thrown; checking `status` gives typed access to `revertData` and `failingCallIndex`.
|
|
122
123
|
|
|
123
|
-
`sim.simulate()` observes only the balances you ask for and does not retry or forge state by itself. If `user` doesn't actually hold 1,000 USDS (say you're previewing for a view-only address), prepare and pass a balance override — see the next section. Query the
|
|
124
|
+
`sim.simulate()` observes only the balances you ask for and does not retry or forge state by itself. If `user` doesn't actually hold 1,000 USDS (say you're previewing for a view-only address), prepare and pass a balance override — see the next section. Query the token or native accounts you forge if you want to observe them. `DEFAULT_SIMULATION_GAS_LIMIT` is exported for callers that want to pass or display the default 16M simulation gas budget.
|
|
124
125
|
|
|
125
126
|
If your dapp already knows what it needs to inspect, skip wallet discovery and pass explicit queries. This can observe any account, not just `from`:
|
|
126
127
|
|
|
@@ -165,9 +166,20 @@ const result = await sim.simulate({
|
|
|
165
166
|
|
|
166
167
|
Prepared balance overrides are reusable per token/owner, and prepared allowance overrides are reusable per token/owner/spender for the block/state you trust. Preparation pre-sets `amount` to the exported `OVERRIDE_TOKEN_AMOUNT` sentinel, a non-max `10^50` value chosen so standard ERC-20 allowance decrements remain observable. Handcrafted override amounts must be below `uint256.max`; max allowance skips decrements, and max balances can overflow on incoming transfers. Deltas for real holdings still work for rebasing tokens like stETH; only dealing hypothetical balances can fail, reported in `unresolved`.
|
|
167
168
|
|
|
169
|
+
Native balances do not need preparation or slot discovery. Set them directly with `nativeBalanceOverrides`, for `from` or any other account:
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
const result = await sim.simulate({
|
|
173
|
+
from,
|
|
174
|
+
calls,
|
|
175
|
+
balanceQueries: [{ asset: "native", account: from }],
|
|
176
|
+
nativeBalanceOverrides: [{ account: from, amount: OVERRIDE_TOKEN_AMOUNT }],
|
|
177
|
+
});
|
|
178
|
+
```
|
|
179
|
+
|
|
168
180
|
## Estimating asset requirements (optional)
|
|
169
181
|
|
|
170
|
-
When you don't already know which balances and approvals a transaction needs, `sim.tokenOverrides.estimateRequirements()` measures them by forging generous state and observing per-call balance and allowance changes. Returned amounts are estimates measured under forged state and should be padded; pairs whose allowance is set inside the batch (approve or permit) are excluded, and measured allowance decreases are sanity-bounded by the token's gross outflow. Measurements discarded by that bound are reported under `unresolved.allowances`.
|
|
182
|
+
When you don't already know which balances and approvals a transaction needs, `sim.tokenOverrides.estimateRequirements()` measures them by forging generous state and observing per-call balance and allowance changes. It also forges native balance for `from`, so native zap-in routes from unfunded wallets report `requirements.native` instead of failing as a route error. Returned amounts are estimates measured under forged state and should be padded; pairs whose allowance is set inside the batch (approve or permit) are excluded, and measured allowance decreases are sanity-bounded by the token's gross outflow. Measurements discarded by that bound are reported under `unresolved.allowances`.
|
|
171
183
|
|
|
172
184
|
```ts
|
|
173
185
|
import { TxSimulator } from "viem-tx-sim";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { DEFAULT_SIMULATION_GAS_LIMIT, OVERRIDE_TOKEN_AMOUNT } from "./constants.js";
|
|
2
2
|
export { TxSimulator } from "./txSimulator.js";
|
|
3
3
|
export { AccessListUnsupportedError, InvalidSimulationInputError, StateOverrideUnsupportedError, TxSimError, } from "./errors.js";
|
|
4
|
-
export type { AllowanceSlot, BalanceDelta, BalanceQuery, PreparedAllowanceOverrides, AllowanceSlotPair, PreparedBalanceOverrides, ForUserBalanceQueriesArgs, PrepareAllowanceOverridesArgs, PrepareBalanceOverridesArgs, EstimatedAssetRequirements, EstimatedAssetRequirementsReverted, EstimatedAssetRequirementsSuccess, EstimateAssetRequirementsArgs, SimulateArgs, SimulatedCall, SimulationDebug, SimulationDebugEvent, SimulationDebugLogger, RequiredAllowance, RequiredBalance, RevertError, SimulationReverted, SimulationResult, SimulationSuccess, TokenSlotOverride, TxSimulatorConfig, } from "./types.js";
|
|
4
|
+
export type { AllowanceSlot, BalanceDelta, BalanceQuery, NativeBalanceOverride, PreparedAllowanceOverrides, AllowanceSlotPair, PreparedBalanceOverrides, ForUserBalanceQueriesArgs, PrepareAllowanceOverridesArgs, PrepareBalanceOverridesArgs, EstimatedAssetRequirements, EstimatedAssetRequirementsReverted, EstimatedAssetRequirementsSuccess, EstimateAssetRequirementsArgs, SimulateArgs, SimulatedCall, SimulationDebug, SimulationDebugEvent, SimulationDebugLogger, RequiredAllowance, RequiredBalance, RevertError, SimulationReverted, SimulationResult, SimulationSuccess, TokenSlotOverride, TxSimulatorConfig, } from "./types.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,kCAAkC,EAClC,iCAAiC,EACjC,6BAA6B,EAC7B,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,kCAAkC,EAClC,iCAAiC,EACjC,6BAA6B,EAC7B,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requirements.d.ts","sourceRoot":"","sources":["../../src/internal/requirements.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,0BAA0B,EAC1B,6BAA6B,EAE9B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"requirements.d.ts","sourceRoot":"","sources":["../../src/internal/requirements.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,0BAA0B,EAC1B,6BAA6B,EAE9B,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAc3C,mIAAmI;AACnI,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,6BAA6B,GAAG,UAAU,GAC/C,OAAO,CAAC,0BAA0B,CAAC,CAoHrC;AAED,eAAO,MAAM,iCAAiC,kCAA4B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { decodeFunctionData, parseAbi } from "viem";
|
|
2
2
|
import { InvalidSimulationInputError } from "../errors.js";
|
|
3
|
+
import { OVERRIDE_TOKEN_AMOUNT } from "../constants.js";
|
|
3
4
|
import { prepareAllowanceOverrides, prepareBalanceOverrides } from "./slots.js";
|
|
4
5
|
import { addressKey, uniqueAddresses } from "./data.js";
|
|
5
6
|
import { blockOptionsSpread } from "./rpc.js";
|
|
@@ -18,14 +19,22 @@ export async function estimateAssetRequirements(args) {
|
|
|
18
19
|
data: call.data,
|
|
19
20
|
value: call.value ?? 0n,
|
|
20
21
|
}));
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
let candidateAddresses;
|
|
23
|
+
try {
|
|
24
|
+
candidateAddresses = await discoverCandidateAddresses({
|
|
25
|
+
client: args.client,
|
|
26
|
+
from: args.from,
|
|
27
|
+
calls,
|
|
28
|
+
gas: args.gas,
|
|
29
|
+
debug: args.debug,
|
|
30
|
+
...blockOptionsSpread(args),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
catch (cause) {
|
|
34
|
+
if (!isInsufficientFunds(cause))
|
|
35
|
+
throw cause;
|
|
36
|
+
candidateAddresses = uniqueAddresses(calls.map((call) => call.to));
|
|
37
|
+
}
|
|
29
38
|
const recon = await runSimulator({
|
|
30
39
|
client: args.client,
|
|
31
40
|
from: args.from,
|
|
@@ -68,6 +77,7 @@ export async function estimateAssetRequirements(args) {
|
|
|
68
77
|
calls,
|
|
69
78
|
candidates: candidateAddresses,
|
|
70
79
|
tokenSlotOverrides,
|
|
80
|
+
extraStateOverrides: [{ address: args.from, balance: OVERRIDE_TOKEN_AMOUNT }],
|
|
71
81
|
allowanceProbes,
|
|
72
82
|
gas: args.gas,
|
|
73
83
|
debug: args.debug,
|
|
@@ -102,6 +112,9 @@ export async function estimateAssetRequirements(args) {
|
|
|
102
112
|
return { status: "success", ...shared };
|
|
103
113
|
}
|
|
104
114
|
export const estimateTokenOverrideRequirements = estimateAssetRequirements;
|
|
115
|
+
function isInsufficientFunds(cause) {
|
|
116
|
+
return cause instanceof Error && cause.message.includes("Insufficient funds");
|
|
117
|
+
}
|
|
105
118
|
function allowancePairs(tokens, spenders) {
|
|
106
119
|
return tokens.flatMap((token) => spenders
|
|
107
120
|
.filter((spender) => addressKey(token) !== addressKey(spender))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requirements.js","sourceRoot":"","sources":["../../src/internal/requirements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAO3D,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1E,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACnC,kEAAkE;IAClE,iHAAiH;CAClH,CAAC,CAAC;AAOH,mIAAmI;AACnI,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAgD;IAEhD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,2BAA2B,CAAC,uDAAuD,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;KACxB,CAAC,CAA2B,CAAC;IAC9B,
|
|
1
|
+
{"version":3,"file":"requirements.js","sourceRoot":"","sources":["../../src/internal/requirements.ts"],"names":[],"mappings":"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"}
|
package/dist/txSimulator.js
CHANGED
|
@@ -69,6 +69,10 @@ async function runSimulate(args) {
|
|
|
69
69
|
calls,
|
|
70
70
|
candidates: [],
|
|
71
71
|
tokenSlotOverrides,
|
|
72
|
+
extraStateOverrides: (args.nativeBalanceOverrides ?? []).map((override) => ({
|
|
73
|
+
address: override.account,
|
|
74
|
+
balance: override.amount,
|
|
75
|
+
})),
|
|
72
76
|
balanceProbes: args.balanceQueries.map((query) => ({
|
|
73
77
|
token: query.asset,
|
|
74
78
|
account: query.account,
|
package/dist/txSimulator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txSimulator.js","sourceRoot":"","sources":["../src/txSimulator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"txSimulator.js","sourceRoot":"","sources":["../src/txSimulator.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -14,6 +14,13 @@ export type BalanceQuery = {
|
|
|
14
14
|
/** Account whose balance is observed; this can be any address, not just `from`. */
|
|
15
15
|
account: Address;
|
|
16
16
|
};
|
|
17
|
+
/** Protocol-level native balance to set before simulating; no slot discovery needed. */
|
|
18
|
+
export type NativeBalanceOverride = {
|
|
19
|
+
/** Account to fund: `from` or any other address such as a plugin or router. */
|
|
20
|
+
account: Address;
|
|
21
|
+
/** Balance in wei to set. */
|
|
22
|
+
amount: bigint;
|
|
23
|
+
};
|
|
17
24
|
/**
|
|
18
25
|
* Balance observation for one query. `before` is after `tokenSlotOverrides` are applied, so deltas
|
|
19
26
|
* describe simulated changes under the supplied state assumptions.
|
|
@@ -117,6 +124,11 @@ export type SimulateArgs = SimulationOptions & {
|
|
|
117
124
|
* observe them.
|
|
118
125
|
*/
|
|
119
126
|
tokenSlotOverrides?: readonly TokenSlotOverride[];
|
|
127
|
+
/**
|
|
128
|
+
* Native balance overrides applied before simulating. Duplicate accounts use the last amount.
|
|
129
|
+
* Query forged accounts if you want to observe them.
|
|
130
|
+
*/
|
|
131
|
+
nativeBalanceOverrides?: readonly NativeBalanceOverride[];
|
|
120
132
|
/** Additional error definitions for decoding this call's reverts; merged after the bound errorAbi. */
|
|
121
133
|
errorAbi?: Abi;
|
|
122
134
|
};
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type {
|
|
|
8
8
|
EstimateAssetRequirementsArgs,
|
|
9
9
|
SimulatedCall,
|
|
10
10
|
} from "../types.js";
|
|
11
|
+
import { OVERRIDE_TOKEN_AMOUNT } from "../constants.js";
|
|
11
12
|
import { prepareAllowanceOverrides, prepareBalanceOverrides } from "./slots.js";
|
|
12
13
|
import { addressKey, uniqueAddresses } from "./data.js";
|
|
13
14
|
import type { ClientArgs } from "./rpc.js";
|
|
@@ -37,14 +38,20 @@ export async function estimateAssetRequirements(
|
|
|
37
38
|
data: call.data,
|
|
38
39
|
value: call.value ?? 0n,
|
|
39
40
|
})) satisfies SimulatedCall[];
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
let candidateAddresses: Address[];
|
|
42
|
+
try {
|
|
43
|
+
candidateAddresses = await discoverCandidateAddresses({
|
|
44
|
+
client: args.client,
|
|
45
|
+
from: args.from,
|
|
46
|
+
calls,
|
|
47
|
+
gas: args.gas,
|
|
48
|
+
debug: args.debug,
|
|
49
|
+
...blockOptionsSpread(args),
|
|
50
|
+
});
|
|
51
|
+
} catch (cause) {
|
|
52
|
+
if (!isInsufficientFunds(cause)) throw cause;
|
|
53
|
+
candidateAddresses = uniqueAddresses(calls.map((call) => call.to));
|
|
54
|
+
}
|
|
48
55
|
const recon = await runSimulator({
|
|
49
56
|
client: args.client,
|
|
50
57
|
from: args.from,
|
|
@@ -90,6 +97,7 @@ export async function estimateAssetRequirements(
|
|
|
90
97
|
calls,
|
|
91
98
|
candidates: candidateAddresses,
|
|
92
99
|
tokenSlotOverrides,
|
|
100
|
+
extraStateOverrides: [{ address: args.from, balance: OVERRIDE_TOKEN_AMOUNT }],
|
|
93
101
|
allowanceProbes,
|
|
94
102
|
gas: args.gas,
|
|
95
103
|
debug: args.debug,
|
|
@@ -140,6 +148,10 @@ export async function estimateAssetRequirements(
|
|
|
140
148
|
|
|
141
149
|
export const estimateTokenOverrideRequirements = estimateAssetRequirements;
|
|
142
150
|
|
|
151
|
+
function isInsufficientFunds(cause: unknown): boolean {
|
|
152
|
+
return cause instanceof Error && cause.message.includes("Insufficient funds");
|
|
153
|
+
}
|
|
154
|
+
|
|
143
155
|
function allowancePairs(
|
|
144
156
|
tokens: readonly Address[],
|
|
145
157
|
spenders: readonly Address[],
|
package/src/txSimulator.ts
CHANGED
|
@@ -200,6 +200,10 @@ async function runSimulate(args: SimulateArgs & ClientArgs): Promise<SimulationR
|
|
|
200
200
|
calls,
|
|
201
201
|
candidates: [],
|
|
202
202
|
tokenSlotOverrides,
|
|
203
|
+
extraStateOverrides: (args.nativeBalanceOverrides ?? []).map((override) => ({
|
|
204
|
+
address: override.account,
|
|
205
|
+
balance: override.amount,
|
|
206
|
+
})),
|
|
203
207
|
balanceProbes: args.balanceQueries.map((query) => ({
|
|
204
208
|
token: query.asset,
|
|
205
209
|
account: query.account,
|
package/src/types.ts
CHANGED
|
@@ -17,6 +17,14 @@ export type BalanceQuery = {
|
|
|
17
17
|
account: Address;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
+
/** Protocol-level native balance to set before simulating; no slot discovery needed. */
|
|
21
|
+
export type NativeBalanceOverride = {
|
|
22
|
+
/** Account to fund: `from` or any other address such as a plugin or router. */
|
|
23
|
+
account: Address;
|
|
24
|
+
/** Balance in wei to set. */
|
|
25
|
+
amount: bigint;
|
|
26
|
+
};
|
|
27
|
+
|
|
20
28
|
/**
|
|
21
29
|
* Balance observation for one query. `before` is after `tokenSlotOverrides` are applied, so deltas
|
|
22
30
|
* describe simulated changes under the supplied state assumptions.
|
|
@@ -131,6 +139,11 @@ export type SimulateArgs = SimulationOptions & {
|
|
|
131
139
|
* observe them.
|
|
132
140
|
*/
|
|
133
141
|
tokenSlotOverrides?: readonly TokenSlotOverride[];
|
|
142
|
+
/**
|
|
143
|
+
* Native balance overrides applied before simulating. Duplicate accounts use the last amount.
|
|
144
|
+
* Query forged accounts if you want to observe them.
|
|
145
|
+
*/
|
|
146
|
+
nativeBalanceOverrides?: readonly NativeBalanceOverride[];
|
|
134
147
|
/** Additional error definitions for decoding this call's reverts; merged after the bound errorAbi. */
|
|
135
148
|
errorAbi?: Abi;
|
|
136
149
|
};
|