@varla/sdk 1.10.6 → 1.10.7
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 +14 -0
- package/dist/actions/admin.d.ts +78 -0
- package/dist/actions/admin.d.ts.map +1 -0
- package/dist/actions/admin.js +119 -0
- package/dist/actions/index.d.ts +3 -0
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +3 -0
- package/dist/actions/liquidator.d.ts +33 -0
- package/dist/actions/liquidator.d.ts.map +1 -0
- package/dist/actions/liquidator.js +41 -0
- package/dist/actions/pool.d.ts +33 -0
- package/dist/actions/pool.d.ts.map +1 -0
- package/dist/actions/pool.js +41 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -296,6 +296,20 @@ await actions.assertCanCallImmediate({
|
|
|
296
296
|
});
|
|
297
297
|
```
|
|
298
298
|
|
|
299
|
+
### Local write integration tests (anvil)
|
|
300
|
+
|
|
301
|
+
The SDK ships **unit tests** for write helpers (mocked `simulateContract` + `writeContract`).
|
|
302
|
+
|
|
303
|
+
If you want a true end-to-end write test (deploy → simulate → send tx → assert state),
|
|
304
|
+
there is an **opt-in** local anvil suite:
|
|
305
|
+
|
|
306
|
+
```bash
|
|
307
|
+
# from packages/sdk
|
|
308
|
+
SDK_LOCAL_WRITE_TESTS=1 bun run test:quick
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
This spawns `anvil` locally and runs `packages/sdk/test/write.local.anvil.test.ts`.
|
|
312
|
+
|
|
299
313
|
#### Optional deployments
|
|
300
314
|
|
|
301
315
|
Some deployments are chain-specific (e.g. adapters). These are exposed as optional properties:
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { Address, PublicClient } from "viem";
|
|
2
|
+
import type { SimulatedTx } from "./oracle.js";
|
|
3
|
+
export declare function prepareCoreSetDefaultLtvConfig(params: {
|
|
4
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
5
|
+
coreAddress: Address;
|
|
6
|
+
account: Address;
|
|
7
|
+
conservative: bigint;
|
|
8
|
+
moderate: bigint;
|
|
9
|
+
risk: bigint;
|
|
10
|
+
}): Promise<SimulatedTx>;
|
|
11
|
+
export declare function prepareCoreSetLiquidationConfig(params: {
|
|
12
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
13
|
+
coreAddress: Address;
|
|
14
|
+
account: Address;
|
|
15
|
+
targetHealthFactor: bigint;
|
|
16
|
+
healthFactorForMaxBonus: bigint;
|
|
17
|
+
liquidationBonusFactorBps: bigint;
|
|
18
|
+
dustThreshold: bigint;
|
|
19
|
+
collateralDustThreshold: bigint;
|
|
20
|
+
}): Promise<SimulatedTx>;
|
|
21
|
+
export declare function prepareCoreSetTierLiquidationConfig(params: {
|
|
22
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
23
|
+
coreAddress: Address;
|
|
24
|
+
account: Address;
|
|
25
|
+
tier: number;
|
|
26
|
+
maxLiquidationBonusBps: bigint;
|
|
27
|
+
liquidationFeeBps: bigint;
|
|
28
|
+
}): Promise<SimulatedTx>;
|
|
29
|
+
export declare function prepareCoreSetMaxPositions(params: {
|
|
30
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
31
|
+
coreAddress: Address;
|
|
32
|
+
account: Address;
|
|
33
|
+
maxPositions: bigint;
|
|
34
|
+
}): Promise<SimulatedTx>;
|
|
35
|
+
export declare function preparePoolSetDepositCap(params: {
|
|
36
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
37
|
+
poolAddress: Address;
|
|
38
|
+
account: Address;
|
|
39
|
+
cap: bigint;
|
|
40
|
+
}): Promise<SimulatedTx>;
|
|
41
|
+
export declare function preparePoolSetBorrowCap(params: {
|
|
42
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
43
|
+
poolAddress: Address;
|
|
44
|
+
account: Address;
|
|
45
|
+
cap: bigint;
|
|
46
|
+
}): Promise<SimulatedTx>;
|
|
47
|
+
export declare function preparePoolWithdrawReserve(params: {
|
|
48
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
49
|
+
poolAddress: Address;
|
|
50
|
+
account: Address;
|
|
51
|
+
to: Address;
|
|
52
|
+
amount: bigint;
|
|
53
|
+
}): Promise<SimulatedTx>;
|
|
54
|
+
export declare function preparePoolSetInterestRateStrategy(params: {
|
|
55
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
56
|
+
poolAddress: Address;
|
|
57
|
+
account: Address;
|
|
58
|
+
strategy: Address;
|
|
59
|
+
}): Promise<SimulatedTx>;
|
|
60
|
+
export declare function prepareOracleSetMaxStaleness(params: {
|
|
61
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
62
|
+
oracleAddress: Address;
|
|
63
|
+
account: Address;
|
|
64
|
+
maxStaleness: bigint;
|
|
65
|
+
}): Promise<SimulatedTx>;
|
|
66
|
+
export declare function prepareOracleSetLiquidationGracePeriod(params: {
|
|
67
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
68
|
+
oracleAddress: Address;
|
|
69
|
+
account: Address;
|
|
70
|
+
gracePeriod: bigint;
|
|
71
|
+
}): Promise<SimulatedTx>;
|
|
72
|
+
export declare function prepareOracleSetDefaultEarlyClosureWindow(params: {
|
|
73
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
74
|
+
oracleAddress: Address;
|
|
75
|
+
account: Address;
|
|
76
|
+
window: bigint;
|
|
77
|
+
}): Promise<SimulatedTx>;
|
|
78
|
+
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/actions/admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
// Note: explicit .js extension is required for Node ESM resolution.
|
|
2
|
+
import { abis } from "../generated.js";
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Admin / governance write helpers
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// -----------------
|
|
7
|
+
// Core admin
|
|
8
|
+
// -----------------
|
|
9
|
+
export async function prepareCoreSetDefaultLtvConfig(params) {
|
|
10
|
+
return (await params.publicClient.simulateContract({
|
|
11
|
+
address: params.coreAddress,
|
|
12
|
+
abi: abis.VARLACORE_ABI,
|
|
13
|
+
functionName: "setDefaultLtvConfig",
|
|
14
|
+
args: [params.conservative, params.moderate, params.risk],
|
|
15
|
+
account: params.account,
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
export async function prepareCoreSetLiquidationConfig(params) {
|
|
19
|
+
return (await params.publicClient.simulateContract({
|
|
20
|
+
address: params.coreAddress,
|
|
21
|
+
abi: abis.VARLACORE_ABI,
|
|
22
|
+
functionName: "setLiquidationConfig",
|
|
23
|
+
args: [
|
|
24
|
+
params.targetHealthFactor,
|
|
25
|
+
params.healthFactorForMaxBonus,
|
|
26
|
+
params.liquidationBonusFactorBps,
|
|
27
|
+
params.dustThreshold,
|
|
28
|
+
params.collateralDustThreshold,
|
|
29
|
+
],
|
|
30
|
+
account: params.account,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
export async function prepareCoreSetTierLiquidationConfig(params) {
|
|
34
|
+
return (await params.publicClient.simulateContract({
|
|
35
|
+
address: params.coreAddress,
|
|
36
|
+
abi: abis.VARLACORE_ABI,
|
|
37
|
+
functionName: "setTierLiquidationConfig",
|
|
38
|
+
args: [params.tier, params.maxLiquidationBonusBps, params.liquidationFeeBps],
|
|
39
|
+
account: params.account,
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
export async function prepareCoreSetMaxPositions(params) {
|
|
43
|
+
return (await params.publicClient.simulateContract({
|
|
44
|
+
address: params.coreAddress,
|
|
45
|
+
abi: abis.VARLACORE_ABI,
|
|
46
|
+
functionName: "setMaxPositions",
|
|
47
|
+
args: [params.maxPositions],
|
|
48
|
+
account: params.account,
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
// -----------------
|
|
52
|
+
// Pool admin
|
|
53
|
+
// -----------------
|
|
54
|
+
export async function preparePoolSetDepositCap(params) {
|
|
55
|
+
return (await params.publicClient.simulateContract({
|
|
56
|
+
address: params.poolAddress,
|
|
57
|
+
abi: abis.VARLAPOOL_ABI,
|
|
58
|
+
functionName: "setDepositCap",
|
|
59
|
+
args: [params.cap],
|
|
60
|
+
account: params.account,
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
export async function preparePoolSetBorrowCap(params) {
|
|
64
|
+
return (await params.publicClient.simulateContract({
|
|
65
|
+
address: params.poolAddress,
|
|
66
|
+
abi: abis.VARLAPOOL_ABI,
|
|
67
|
+
functionName: "setBorrowCap",
|
|
68
|
+
args: [params.cap],
|
|
69
|
+
account: params.account,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
export async function preparePoolWithdrawReserve(params) {
|
|
73
|
+
return (await params.publicClient.simulateContract({
|
|
74
|
+
address: params.poolAddress,
|
|
75
|
+
abi: abis.VARLAPOOL_ABI,
|
|
76
|
+
functionName: "withdrawReserve",
|
|
77
|
+
args: [params.to, params.amount],
|
|
78
|
+
account: params.account,
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
export async function preparePoolSetInterestRateStrategy(params) {
|
|
82
|
+
return (await params.publicClient.simulateContract({
|
|
83
|
+
address: params.poolAddress,
|
|
84
|
+
abi: abis.VARLAPOOL_ABI,
|
|
85
|
+
functionName: "setInterestRateStrategy",
|
|
86
|
+
args: [params.strategy],
|
|
87
|
+
account: params.account,
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
// -----------------
|
|
91
|
+
// Oracle admin
|
|
92
|
+
// -----------------
|
|
93
|
+
export async function prepareOracleSetMaxStaleness(params) {
|
|
94
|
+
return (await params.publicClient.simulateContract({
|
|
95
|
+
address: params.oracleAddress,
|
|
96
|
+
abi: abis.VARLAORACLE_ABI,
|
|
97
|
+
functionName: "setMaxStaleness",
|
|
98
|
+
args: [params.maxStaleness],
|
|
99
|
+
account: params.account,
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
export async function prepareOracleSetLiquidationGracePeriod(params) {
|
|
103
|
+
return (await params.publicClient.simulateContract({
|
|
104
|
+
address: params.oracleAddress,
|
|
105
|
+
abi: abis.VARLAORACLE_ABI,
|
|
106
|
+
functionName: "setLiquidationGracePeriod",
|
|
107
|
+
args: [params.gracePeriod],
|
|
108
|
+
account: params.account,
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
export async function prepareOracleSetDefaultEarlyClosureWindow(params) {
|
|
112
|
+
return (await params.publicClient.simulateContract({
|
|
113
|
+
address: params.oracleAddress,
|
|
114
|
+
abi: abis.VARLAORACLE_ABI,
|
|
115
|
+
functionName: "setDefaultEarlyClosureWindow",
|
|
116
|
+
args: [params.window],
|
|
117
|
+
account: params.account,
|
|
118
|
+
}));
|
|
119
|
+
}
|
package/dist/actions/index.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ export * from "./tx.js";
|
|
|
2
2
|
export * from "./utils.js";
|
|
3
3
|
export * from "./oracle.js";
|
|
4
4
|
export * from "./core.js";
|
|
5
|
+
export * from "./pool.js";
|
|
6
|
+
export * from "./liquidator.js";
|
|
7
|
+
export * from "./admin.js";
|
|
5
8
|
export * from "./erc20.js";
|
|
6
9
|
export * from "./erc1155.js";
|
|
7
10
|
export * from "./rbac.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAEA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAEA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
package/dist/actions/index.js
CHANGED
|
@@ -3,6 +3,9 @@ export * from "./tx.js";
|
|
|
3
3
|
export * from "./utils.js";
|
|
4
4
|
export * from "./oracle.js";
|
|
5
5
|
export * from "./core.js";
|
|
6
|
+
export * from "./pool.js";
|
|
7
|
+
export * from "./liquidator.js";
|
|
8
|
+
export * from "./admin.js";
|
|
6
9
|
export * from "./erc20.js";
|
|
7
10
|
export * from "./erc1155.js";
|
|
8
11
|
export * from "./rbac.js";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Address, PublicClient } from "viem";
|
|
2
|
+
import type { SimulatedTx } from "./oracle.js";
|
|
3
|
+
export declare function prepareLiquidatorLiquidate(params: {
|
|
4
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
5
|
+
liquidatorAddress: Address;
|
|
6
|
+
account: Address;
|
|
7
|
+
user: Address;
|
|
8
|
+
positionId: bigint;
|
|
9
|
+
debtToCover: bigint;
|
|
10
|
+
}): Promise<SimulatedTx>;
|
|
11
|
+
export declare function prepareLiquidatorLiquidateMulti(params: {
|
|
12
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
13
|
+
liquidatorAddress: Address;
|
|
14
|
+
account: Address;
|
|
15
|
+
user: Address;
|
|
16
|
+
positionIds: readonly bigint[];
|
|
17
|
+
debtToCover: bigint;
|
|
18
|
+
}): Promise<SimulatedTx>;
|
|
19
|
+
export declare function prepareLiquidatorLiquidateBadDebt(params: {
|
|
20
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
21
|
+
liquidatorAddress: Address;
|
|
22
|
+
account: Address;
|
|
23
|
+
user: Address;
|
|
24
|
+
maxRepayAmount: bigint;
|
|
25
|
+
}): Promise<SimulatedTx>;
|
|
26
|
+
export declare function prepareLiquidatorResolveBadDebtWithReserve(params: {
|
|
27
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
28
|
+
liquidatorAddress: Address;
|
|
29
|
+
account: Address;
|
|
30
|
+
user: Address;
|
|
31
|
+
expectedScaledDebt: bigint;
|
|
32
|
+
}): Promise<SimulatedTx>;
|
|
33
|
+
//# sourceMappingURL=liquidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidator.d.ts","sourceRoot":"","sources":["../../src/actions/liquidator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACrD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,WAAW,CAAC,CAQvB;AAED,wBAAsB,+BAA+B,CAAC,MAAM,EAAE;IAC5D,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACrD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,WAAW,CAAC,CAQvB;AAED,wBAAsB,iCAAiC,CAAC,MAAM,EAAE;IAC9D,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACrD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,WAAW,CAAC,CAQvB;AAED,wBAAsB,0CAA0C,CAAC,MAAM,EAAE;IACvE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACrD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,WAAW,CAAC,CAQvB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Note: explicit .js extension is required for Node ESM resolution.
|
|
2
|
+
import { abis } from "../generated.js";
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Liquidator (bot flows) write helpers
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
export async function prepareLiquidatorLiquidate(params) {
|
|
7
|
+
return (await params.publicClient.simulateContract({
|
|
8
|
+
address: params.liquidatorAddress,
|
|
9
|
+
abi: abis.VARLALIQUIDATOR_ABI,
|
|
10
|
+
functionName: "liquidate",
|
|
11
|
+
args: [params.user, params.positionId, params.debtToCover],
|
|
12
|
+
account: params.account,
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
export async function prepareLiquidatorLiquidateMulti(params) {
|
|
16
|
+
return (await params.publicClient.simulateContract({
|
|
17
|
+
address: params.liquidatorAddress,
|
|
18
|
+
abi: abis.VARLALIQUIDATOR_ABI,
|
|
19
|
+
functionName: "liquidateMulti",
|
|
20
|
+
args: [params.user, params.positionIds, params.debtToCover],
|
|
21
|
+
account: params.account,
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
export async function prepareLiquidatorLiquidateBadDebt(params) {
|
|
25
|
+
return (await params.publicClient.simulateContract({
|
|
26
|
+
address: params.liquidatorAddress,
|
|
27
|
+
abi: abis.VARLALIQUIDATOR_ABI,
|
|
28
|
+
functionName: "liquidateBadDebt",
|
|
29
|
+
args: [params.user, params.maxRepayAmount],
|
|
30
|
+
account: params.account,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
export async function prepareLiquidatorResolveBadDebtWithReserve(params) {
|
|
34
|
+
return (await params.publicClient.simulateContract({
|
|
35
|
+
address: params.liquidatorAddress,
|
|
36
|
+
abi: abis.VARLALIQUIDATOR_ABI,
|
|
37
|
+
functionName: "resolveBadDebtWithReserve",
|
|
38
|
+
args: [params.user, params.expectedScaledDebt],
|
|
39
|
+
account: params.account,
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Address, PublicClient } from "viem";
|
|
2
|
+
import type { SimulatedTx } from "./oracle.js";
|
|
3
|
+
export declare function preparePoolDeposit(params: {
|
|
4
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
5
|
+
poolAddress: Address;
|
|
6
|
+
account: Address;
|
|
7
|
+
assets: bigint;
|
|
8
|
+
receiver: Address;
|
|
9
|
+
}): Promise<SimulatedTx>;
|
|
10
|
+
export declare function preparePoolMint(params: {
|
|
11
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
12
|
+
poolAddress: Address;
|
|
13
|
+
account: Address;
|
|
14
|
+
shares: bigint;
|
|
15
|
+
receiver: Address;
|
|
16
|
+
}): Promise<SimulatedTx>;
|
|
17
|
+
export declare function preparePoolWithdraw(params: {
|
|
18
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
19
|
+
poolAddress: Address;
|
|
20
|
+
account: Address;
|
|
21
|
+
assets: bigint;
|
|
22
|
+
receiver: Address;
|
|
23
|
+
owner: Address;
|
|
24
|
+
}): Promise<SimulatedTx>;
|
|
25
|
+
export declare function preparePoolRedeem(params: {
|
|
26
|
+
publicClient: Pick<PublicClient, "simulateContract">;
|
|
27
|
+
poolAddress: Address;
|
|
28
|
+
account: Address;
|
|
29
|
+
shares: bigint;
|
|
30
|
+
receiver: Address;
|
|
31
|
+
owner: Address;
|
|
32
|
+
}): Promise<SimulatedTx>;
|
|
33
|
+
//# sourceMappingURL=pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/actions/pool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,WAAW,CAAC,CAQvB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,WAAW,CAAC,CAQvB;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,WAAW,CAAC,CAQvB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,WAAW,CAAC,CAQvB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Note: explicit .js extension is required for Node ESM resolution.
|
|
2
|
+
import { abis } from "../generated.js";
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// ERC4626 (VarlaPool) write helpers
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
export async function preparePoolDeposit(params) {
|
|
7
|
+
return (await params.publicClient.simulateContract({
|
|
8
|
+
address: params.poolAddress,
|
|
9
|
+
abi: abis.VARLAPOOL_ABI,
|
|
10
|
+
functionName: "deposit",
|
|
11
|
+
args: [params.assets, params.receiver],
|
|
12
|
+
account: params.account,
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
export async function preparePoolMint(params) {
|
|
16
|
+
return (await params.publicClient.simulateContract({
|
|
17
|
+
address: params.poolAddress,
|
|
18
|
+
abi: abis.VARLAPOOL_ABI,
|
|
19
|
+
functionName: "mint",
|
|
20
|
+
args: [params.shares, params.receiver],
|
|
21
|
+
account: params.account,
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
export async function preparePoolWithdraw(params) {
|
|
25
|
+
return (await params.publicClient.simulateContract({
|
|
26
|
+
address: params.poolAddress,
|
|
27
|
+
abi: abis.VARLAPOOL_ABI,
|
|
28
|
+
functionName: "withdraw",
|
|
29
|
+
args: [params.assets, params.receiver, params.owner],
|
|
30
|
+
account: params.account,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
export async function preparePoolRedeem(params) {
|
|
34
|
+
return (await params.publicClient.simulateContract({
|
|
35
|
+
address: params.poolAddress,
|
|
36
|
+
abi: abis.VARLAPOOL_ABI,
|
|
37
|
+
functionName: "redeem",
|
|
38
|
+
args: [params.shares, params.receiver, params.owner],
|
|
39
|
+
account: params.account,
|
|
40
|
+
}));
|
|
41
|
+
}
|