@usesigil/kit 0.13.0 → 0.16.0
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/advanced-analytics.d.ts +3 -1
- package/dist/advanced-analytics.d.ts.map +1 -1
- package/dist/advanced-analytics.js +4 -6
- package/dist/advanced-analytics.js.map +1 -1
- package/dist/agent-bootstrap.d.ts +118 -0
- package/dist/agent-bootstrap.d.ts.map +1 -0
- package/dist/agent-bootstrap.js +211 -0
- package/dist/agent-bootstrap.js.map +1 -0
- package/dist/agent-errors.d.ts +3 -3
- package/dist/agent-errors.d.ts.map +1 -1
- package/dist/agent-errors.js +230 -206
- package/dist/agent-errors.js.map +1 -1
- package/dist/build-unsigned.d.ts +152 -0
- package/dist/build-unsigned.d.ts.map +1 -0
- package/dist/build-unsigned.js +152 -0
- package/dist/build-unsigned.js.map +1 -0
- package/dist/constraints/index.d.ts +23 -0
- package/dist/constraints/index.d.ts.map +1 -0
- package/dist/constraints/index.js +24 -0
- package/dist/constraints/index.js.map +1 -0
- package/dist/create-vault.d.ts +10 -2
- package/dist/create-vault.d.ts.map +1 -1
- package/dist/create-vault.js +10 -3
- package/dist/create-vault.js.map +1 -1
- package/dist/dashboard/constraint-builders.d.ts +82 -0
- package/dist/dashboard/constraint-builders.d.ts.map +1 -0
- package/dist/dashboard/constraint-builders.js +204 -0
- package/dist/dashboard/constraint-builders.js.map +1 -0
- package/dist/dashboard/errors.d.ts +37 -0
- package/dist/dashboard/errors.d.ts.map +1 -1
- package/dist/dashboard/errors.js +76 -0
- package/dist/dashboard/errors.js.map +1 -1
- package/dist/dashboard/from-json.d.ts.map +1 -1
- package/dist/dashboard/from-json.js +1 -5
- package/dist/dashboard/from-json.js.map +1 -1
- package/dist/dashboard/index.d.ts +31 -10
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +40 -10
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/mutations.d.ts +60 -3
- package/dist/dashboard/mutations.d.ts.map +1 -1
- package/dist/dashboard/mutations.js +129 -32
- package/dist/dashboard/mutations.js.map +1 -1
- package/dist/dashboard/post-assertion-validation.d.ts +88 -0
- package/dist/dashboard/post-assertion-validation.d.ts.map +1 -0
- package/dist/dashboard/post-assertion-validation.js +191 -0
- package/dist/dashboard/post-assertion-validation.js.map +1 -0
- package/dist/dashboard/reads.d.ts +93 -1
- package/dist/dashboard/reads.d.ts.map +1 -1
- package/dist/dashboard/reads.js +244 -40
- package/dist/dashboard/reads.js.map +1 -1
- package/dist/dashboard/types.d.ts +149 -21
- package/dist/dashboard/types.d.ts.map +1 -1
- package/dist/errors/codes.js +1 -1
- package/dist/event-analytics.d.ts +1 -3
- package/dist/event-analytics.d.ts.map +1 -1
- package/dist/event-analytics.js +4 -9
- package/dist/event-analytics.js.map +1 -1
- package/dist/events.js +2 -2
- package/dist/events.js.map +1 -1
- package/dist/generated/accounts/agentVault.d.ts +0 -20
- package/dist/generated/accounts/agentVault.d.ts.map +1 -1
- package/dist/generated/accounts/agentVault.js +0 -2
- package/dist/generated/accounts/agentVault.js.map +1 -1
- package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts +12 -0
- package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts.map +1 -1
- package/dist/generated/accounts/pendingAgentPermissionsUpdate.js +3 -1
- package/dist/generated/accounts/pendingAgentPermissionsUpdate.js.map +1 -1
- package/dist/generated/accounts/pendingCloseConstraints.d.ts +12 -0
- package/dist/generated/accounts/pendingCloseConstraints.d.ts.map +1 -1
- package/dist/generated/accounts/pendingCloseConstraints.js +4 -2
- package/dist/generated/accounts/pendingCloseConstraints.js.map +1 -1
- package/dist/generated/accounts/pendingConstraintsUpdate.d.ts +14 -0
- package/dist/generated/accounts/pendingConstraintsUpdate.d.ts.map +1 -1
- package/dist/generated/accounts/pendingConstraintsUpdate.js +4 -2
- package/dist/generated/accounts/pendingConstraintsUpdate.js.map +1 -1
- package/dist/generated/accounts/pendingPolicyUpdate.d.ts +24 -8
- package/dist/generated/accounts/pendingPolicyUpdate.d.ts.map +1 -1
- package/dist/generated/accounts/pendingPolicyUpdate.js +6 -8
- package/dist/generated/accounts/pendingPolicyUpdate.js.map +1 -1
- package/dist/generated/accounts/policyConfig.d.ts +28 -18
- package/dist/generated/accounts/policyConfig.d.ts.map +1 -1
- package/dist/generated/accounts/policyConfig.js +4 -8
- package/dist/generated/accounts/policyConfig.js.map +1 -1
- package/dist/generated/accounts/sessionAuthority.d.ts +18 -8
- package/dist/generated/accounts/sessionAuthority.d.ts.map +1 -1
- package/dist/generated/accounts/sessionAuthority.js +4 -6
- package/dist/generated/accounts/sessionAuthority.js.map +1 -1
- package/dist/generated/errors/sigil.d.ts +95 -89
- package/dist/generated/errors/sigil.d.ts.map +1 -1
- package/dist/generated/errors/sigil.js +107 -98
- package/dist/generated/errors/sigil.js.map +1 -1
- package/dist/generated/event-discriminators.js +1 -1
- package/dist/generated/event-discriminators.js.map +1 -1
- package/dist/generated/instructions/cleanupOrphanConstraintsPda.d.ts +67 -0
- package/dist/generated/instructions/cleanupOrphanConstraintsPda.d.ts.map +1 -0
- package/dist/generated/instructions/cleanupOrphanConstraintsPda.js +120 -0
- package/dist/generated/instructions/cleanupOrphanConstraintsPda.js.map +1 -0
- package/dist/generated/instructions/freezeVault.d.ts +8 -5
- package/dist/generated/instructions/freezeVault.d.ts.map +1 -1
- package/dist/generated/instructions/freezeVault.js +14 -3
- package/dist/generated/instructions/freezeVault.js.map +1 -1
- package/dist/generated/instructions/index.d.ts +1 -1
- package/dist/generated/instructions/index.d.ts.map +1 -1
- package/dist/generated/instructions/index.js +1 -1
- package/dist/generated/instructions/index.js.map +1 -1
- package/dist/generated/instructions/initializeVault.d.ts +0 -8
- package/dist/generated/instructions/initializeVault.d.ts.map +1 -1
- package/dist/generated/instructions/initializeVault.js +0 -4
- package/dist/generated/instructions/initializeVault.js.map +1 -1
- package/dist/generated/instructions/queuePolicyUpdate.d.ts +8 -16
- package/dist/generated/instructions/queuePolicyUpdate.d.ts.map +1 -1
- package/dist/generated/instructions/queuePolicyUpdate.js +4 -8
- package/dist/generated/instructions/queuePolicyUpdate.js.map +1 -1
- package/dist/generated/programs/sigil.d.ts +26 -26
- package/dist/generated/programs/sigil.d.ts.map +1 -1
- package/dist/generated/programs/sigil.js +34 -34
- package/dist/generated/programs/sigil.js.map +1 -1
- package/dist/generated/types/accountConstraint.d.ts +16 -1
- package/dist/generated/types/accountConstraint.d.ts.map +1 -1
- package/dist/generated/types/accountConstraint.js +2 -0
- package/dist/generated/types/accountConstraint.js.map +1 -1
- package/dist/generated/types/accountConstraintZC.d.ts +7 -0
- package/dist/generated/types/accountConstraintZC.d.ts.map +1 -1
- package/dist/generated/types/accountConstraintZC.js +4 -2
- package/dist/generated/types/accountConstraintZC.js.map +1 -1
- package/dist/generated/types/constraintEntry.d.ts +0 -8
- package/dist/generated/types/constraintEntry.d.ts.map +1 -1
- package/dist/generated/types/constraintEntry.js +1 -5
- package/dist/generated/types/constraintEntry.js.map +1 -1
- package/dist/generated/types/constraintEntryZC.d.ts +22 -27
- package/dist/generated/types/constraintEntryZC.d.ts.map +1 -1
- package/dist/generated/types/constraintEntryZC.js +4 -6
- package/dist/generated/types/constraintEntryZC.js.map +1 -1
- package/dist/generated/types/index.d.ts +1 -1
- package/dist/generated/types/index.d.ts.map +1 -1
- package/dist/generated/types/index.js +1 -1
- package/dist/generated/types/index.js.map +1 -1
- package/dist/generated/types/orphanConstraintsPdaCleaned.d.ts +22 -0
- package/dist/generated/types/orphanConstraintsPdaCleaned.d.ts.map +1 -0
- package/dist/generated/types/{positionsSynced.js → orphanConstraintsPdaCleaned.js} +8 -10
- package/dist/generated/types/orphanConstraintsPdaCleaned.js.map +1 -0
- package/dist/generated/types/sessionFinalized.d.ts +0 -4
- package/dist/generated/types/sessionFinalized.d.ts.map +1 -1
- package/dist/generated/types/sessionFinalized.js +1 -3
- package/dist/generated/types/sessionFinalized.js.map +1 -1
- package/dist/generated/types/vaultFrozen.d.ts +12 -0
- package/dist/generated/types/vaultFrozen.d.ts.map +1 -1
- package/dist/generated/types/vaultFrozen.js +3 -1
- package/dist/generated/types/vaultFrozen.js.map +1 -1
- package/dist/index.d.ts +13 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -2
- package/dist/index.js.map +1 -1
- package/dist/inscribe.d.ts +0 -8
- package/dist/inscribe.d.ts.map +1 -1
- package/dist/inscribe.js +0 -2
- package/dist/inscribe.js.map +1 -1
- package/dist/kit-adapter.d.ts +1 -1
- package/dist/kit-adapter.d.ts.map +1 -1
- package/dist/kit-adapter.js +1 -1
- package/dist/kit-adapter.js.map +1 -1
- package/dist/logger.d.ts +48 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +36 -0
- package/dist/logger.js.map +1 -1
- package/dist/owner-transaction.d.ts +8 -0
- package/dist/owner-transaction.d.ts.map +1 -1
- package/dist/owner-transaction.js +1 -0
- package/dist/owner-transaction.js.map +1 -1
- package/dist/post-assertions/cross-field-lte.d.ts +134 -0
- package/dist/post-assertions/cross-field-lte.d.ts.map +1 -0
- package/dist/post-assertions/cross-field-lte.js +129 -0
- package/dist/post-assertions/cross-field-lte.js.map +1 -0
- package/dist/post-assertions/index.d.ts +28 -0
- package/dist/post-assertions/index.d.ts.map +1 -0
- package/dist/post-assertions/index.js +28 -0
- package/dist/post-assertions/index.js.map +1 -0
- package/dist/post-assertions/presets/flash-trade.d.ts +139 -0
- package/dist/post-assertions/presets/flash-trade.d.ts.map +1 -0
- package/dist/post-assertions/presets/flash-trade.js +154 -0
- package/dist/post-assertions/presets/flash-trade.js.map +1 -0
- package/dist/presets.d.ts +1 -13
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +0 -10
- package/dist/presets.js.map +1 -1
- package/dist/preview-create-vault.d.ts +280 -0
- package/dist/preview-create-vault.d.ts.map +1 -0
- package/dist/preview-create-vault.js +477 -0
- package/dist/preview-create-vault.js.map +1 -0
- package/dist/protocol-registry/annotations/drift.json +7 -0
- package/dist/protocol-registry/annotations/flash-trade.json +7 -0
- package/dist/protocol-registry/annotations/jupiter-borrow.json +7 -0
- package/dist/protocol-registry/annotations/jupiter-earn.json +7 -0
- package/dist/protocol-registry/annotations/jupiter-lend.json +7 -0
- package/dist/protocol-registry/annotations/jupiter.json +7 -0
- package/dist/protocol-registry/annotations/kamino.json +7 -0
- package/dist/protocol-registry/index.d.ts +45 -0
- package/dist/protocol-registry/index.d.ts.map +1 -0
- package/dist/protocol-registry/index.js +76 -0
- package/dist/protocol-registry/index.js.map +1 -0
- package/dist/protocol-tier.d.ts +157 -0
- package/dist/protocol-tier.d.ts.map +1 -0
- package/dist/protocol-tier.js +104 -0
- package/dist/protocol-tier.js.map +1 -0
- package/dist/seal.d.ts.map +1 -1
- package/dist/seal.js +30 -12
- package/dist/seal.js.map +1 -1
- package/dist/sigil.d.ts +0 -8
- package/dist/sigil.d.ts.map +1 -1
- package/dist/simulation.d.ts.map +1 -1
- package/dist/simulation.js +131 -82
- package/dist/simulation.js.map +1 -1
- package/dist/testing/devnet.d.ts.map +1 -1
- package/dist/testing/devnet.js +0 -2
- package/dist/testing/devnet.js.map +1 -1
- package/dist/testing/errors/expect.d.ts +137 -0
- package/dist/testing/errors/expect.d.ts.map +1 -0
- package/dist/testing/errors/expect.js +372 -0
- package/dist/testing/errors/expect.js.map +1 -0
- package/dist/testing/errors/index.d.ts +3 -0
- package/dist/testing/errors/index.d.ts.map +1 -0
- package/dist/testing/errors/index.js +8 -0
- package/dist/testing/errors/index.js.map +1 -0
- package/dist/testing/errors/names.generated.d.ts +188 -0
- package/dist/testing/errors/names.generated.d.ts.map +1 -0
- package/dist/testing/errors/names.generated.js +183 -0
- package/dist/testing/errors/names.generated.js.map +1 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +8 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/mock-rpc.d.ts +8 -0
- package/dist/testing/mock-rpc.d.ts.map +1 -1
- package/dist/testing/mock-rpc.js +14 -0
- package/dist/testing/mock-rpc.js.map +1 -1
- package/dist/testing/mock-state.d.ts +0 -2
- package/dist/testing/mock-state.d.ts.map +1 -1
- package/dist/testing/mock-state.js +2 -5
- package/dist/testing/mock-state.js.map +1 -1
- package/dist/types.d.ts +1 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -9
- package/dist/types.js.map +1 -1
- package/dist/vault-analytics.d.ts +0 -1
- package/dist/vault-analytics.d.ts.map +1 -1
- package/dist/vault-analytics.js +0 -1
- package/dist/vault-analytics.js.map +1 -1
- package/package.json +15 -3
- package/dist/generated/instructions/syncPositions.d.ts +0 -44
- package/dist/generated/instructions/syncPositions.d.ts.map +0 -1
- package/dist/generated/instructions/syncPositions.js +0 -72
- package/dist/generated/instructions/syncPositions.js.map +0 -1
- package/dist/generated/types/positionsSynced.d.ts +0 -24
- package/dist/generated/types/positionsSynced.d.ts.map +0 -1
- package/dist/generated/types/positionsSynced.js.map +0 -1
- package/dist/integrations/protocol-handler.d.ts +0 -59
- package/dist/integrations/protocol-handler.d.ts.map +0 -1
- package/dist/integrations/protocol-handler.js +0 -9
- package/dist/integrations/protocol-handler.js.map +0 -1
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@usesigil/kit/post-assertions/presets/flash-trade` — Flash Trade leverage cap preset.
|
|
3
|
+
*
|
|
4
|
+
* Convenience wrapper around `leverageCapLteBps` that fills in the byte offsets
|
|
5
|
+
* of a Flash Trade Position account's `size_usd` and `collateral_usd` fields.
|
|
6
|
+
*
|
|
7
|
+
* Callers provide a position account address + a leverage cap expressed in
|
|
8
|
+
* "x" (multiples), and the preset returns a `PostAssertionEntry` that the
|
|
9
|
+
* on-chain program enforces as:
|
|
10
|
+
*
|
|
11
|
+
* size_usd × 10000 ≤ maxLeverage × 10000 × collateral_usd
|
|
12
|
+
* ⇔ leverage (= size_usd / collateral_usd) ≤ maxLeverage
|
|
13
|
+
*
|
|
14
|
+
* ## Field offsets (pinned to flash-sdk@15.x Perpetuals IDL)
|
|
15
|
+
*
|
|
16
|
+
* Derived from the Anchor IDL shipped with `flash-sdk@^15.14.1`
|
|
17
|
+
* (`node_modules/flash-sdk/dist/idl/perpetuals.json`). Position account
|
|
18
|
+
* Borsh layout, starting after the 8-byte Anchor discriminator:
|
|
19
|
+
*
|
|
20
|
+
* offset field type size
|
|
21
|
+
* 8 owner pubkey 32
|
|
22
|
+
* 40 market pubkey 32
|
|
23
|
+
* 72 delegate pubkey 32
|
|
24
|
+
* 104 open_time i64 8
|
|
25
|
+
* 112 update_time i64 8
|
|
26
|
+
* 120 entry_price OraclePrice { price: u64, exponent: i32 } 12
|
|
27
|
+
* 132 size_amount u64 8
|
|
28
|
+
* → 140 size_usd u64 8
|
|
29
|
+
* 148 locked_amount u64 8
|
|
30
|
+
* 156 locked_usd u64 8
|
|
31
|
+
* 164 price_impact_usd u64 8
|
|
32
|
+
* → 172 collateral_usd u64 8
|
|
33
|
+
* ...
|
|
34
|
+
*
|
|
35
|
+
* A drift-check unit test (`presets/flash-trade.test.ts`) reloads the Anchor
|
|
36
|
+
* IDL from `flash-sdk` at test time and recomputes offsets — any future
|
|
37
|
+
* flash-sdk bump that shifts these fields fails the test before a broken
|
|
38
|
+
* preset can ship.
|
|
39
|
+
*
|
|
40
|
+
* ## Jupiter Perps is NOT supported here
|
|
41
|
+
*
|
|
42
|
+
* Flash Trade executes position changes synchronously in the user's tx, so
|
|
43
|
+
* post-execution assertions are meaningful. Jupiter Perpetuals uses a 2-tx
|
|
44
|
+
* keeper-fulfillment model that silently bypasses post-assertions — that gate
|
|
45
|
+
* is enforced upstream in `leverageCapLteBps` via
|
|
46
|
+
* `JupiterPerpsPostAssertionUnsupportedError`, so a caller who mistakenly
|
|
47
|
+
* plugs a Jupiter Perps Position address here gets an explicit error.
|
|
48
|
+
*
|
|
49
|
+
* ## Bounds on `maxLeverage`
|
|
50
|
+
*
|
|
51
|
+
* `maxLeverage` is an integer multiplier (e.g., 5 = 5x cap). We reject
|
|
52
|
+
* values outside [1, 100]:
|
|
53
|
+
* - 0 would encode `size_usd ≤ 0` — any non-zero position fails, effectively
|
|
54
|
+
* a kill-switch. Safer to reject and let callers use `closePostAssertions`
|
|
55
|
+
* if they want to disable the cap entirely.
|
|
56
|
+
* - Values > 100 exceed any practical Flash Trade leverage (current mainnet
|
|
57
|
+
* caps sit around 25-50x) and are almost certainly caller bugs.
|
|
58
|
+
*
|
|
59
|
+
* @see programs/sigil/src/state/post_assertions.rs — on-chain CrossFieldLte enforcer
|
|
60
|
+
* @see `@usesigil/kit/post-assertions/cross-field-lte.ts` — underlying builder
|
|
61
|
+
*/
|
|
62
|
+
import type { Address } from "@solana/kit";
|
|
63
|
+
import type { PostAssertionEntry } from "../../generated/types/postAssertionEntry.js";
|
|
64
|
+
/**
|
|
65
|
+
* Flash Trade Perpetuals program address (mainnet-beta). Owner of Position
|
|
66
|
+
* accounts that this preset targets.
|
|
67
|
+
*
|
|
68
|
+
* Source: `constants` module in `flash-sdk@^15.14.1`. Hard-coded here so the
|
|
69
|
+
* preset is importable without loading the full flash-sdk runtime.
|
|
70
|
+
*/
|
|
71
|
+
export declare const FLASH_TRADE_PROGRAM_ADDRESS: Address;
|
|
72
|
+
/**
|
|
73
|
+
* Byte offset of `size_usd` (u64, little-endian) inside Flash Trade Position
|
|
74
|
+
* account data, starting from byte 0 of the account (NOT after discriminator).
|
|
75
|
+
*
|
|
76
|
+
* Pinned to flash-sdk@^15.14.1 Perpetuals IDL. A drift-check unit test
|
|
77
|
+
* reloads the IDL and asserts this value matches.
|
|
78
|
+
*/
|
|
79
|
+
export declare const FLASH_TRADE_POSITION_SIZE_USD_OFFSET = 140;
|
|
80
|
+
/**
|
|
81
|
+
* Byte offset of `collateral_usd` (u64, little-endian) inside Flash Trade
|
|
82
|
+
* Position account data.
|
|
83
|
+
*
|
|
84
|
+
* Pinned to flash-sdk@^15.14.1 Perpetuals IDL. Drift-check test guards this.
|
|
85
|
+
*/
|
|
86
|
+
export declare const FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET = 172;
|
|
87
|
+
/**
|
|
88
|
+
* Lowest permitted `maxLeverage` input — 1x. Zero would encode a kill-switch.
|
|
89
|
+
*/
|
|
90
|
+
export declare const MIN_LEVERAGE_X = 1;
|
|
91
|
+
/**
|
|
92
|
+
* Highest permitted `maxLeverage` input. 100x is a generous upper bound above
|
|
93
|
+
* any practical Flash Trade cap.
|
|
94
|
+
*/
|
|
95
|
+
export declare const MAX_LEVERAGE_X = 100;
|
|
96
|
+
/**
|
|
97
|
+
* Thrown when `maxLeverage` is outside [MIN_LEVERAGE_X, MAX_LEVERAGE_X] or
|
|
98
|
+
* not an integer. Carries a DxError-compatible shape so FE can branch on
|
|
99
|
+
* `.code` without `instanceof` checks that break across module realms.
|
|
100
|
+
*/
|
|
101
|
+
export declare class FlashTradeLeverageOutOfRangeError extends Error {
|
|
102
|
+
/** DxError-compatible numeric code. 7009 reserved for preset validation. */
|
|
103
|
+
readonly code: number;
|
|
104
|
+
readonly recovery: readonly string[];
|
|
105
|
+
/**
|
|
106
|
+
* Always `false` — thrown at CLIENT validation time, before any RPC
|
|
107
|
+
* round-trip. Present to satisfy DxError's structural contract (every
|
|
108
|
+
* DxError carries `onChainReverted`; see v2.2 contract C2).
|
|
109
|
+
*/
|
|
110
|
+
readonly onChainReverted: boolean;
|
|
111
|
+
readonly received: unknown;
|
|
112
|
+
constructor(received: unknown);
|
|
113
|
+
}
|
|
114
|
+
export interface FlashTradeLeverageCapOpts {
|
|
115
|
+
/** Base-58 pubkey of the Flash Trade Position account to monitor. */
|
|
116
|
+
readonly positionAccount: Address;
|
|
117
|
+
/**
|
|
118
|
+
* Maximum leverage in "x" units (e.g. 5 = 5x). Integer in [1, 100].
|
|
119
|
+
* The preset throws `FlashTradeLeverageOutOfRangeError` on anything else.
|
|
120
|
+
*/
|
|
121
|
+
readonly maxLeverage: number;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Build a post-assertion entry that caps Flash Trade leverage at `maxLeverage` × .
|
|
125
|
+
*
|
|
126
|
+
* Equivalent to calling {@link leverageCapLteBps} with Flash Trade's Position
|
|
127
|
+
* `size_usd` / `collateral_usd` offsets filled in, `targetAccountOwnerProgram`
|
|
128
|
+
* set to {@link FLASH_TRADE_PROGRAM_ADDRESS}, and `maxBps = maxLeverage * 10000`.
|
|
129
|
+
*
|
|
130
|
+
* @throws {FlashTradeLeverageOutOfRangeError} if `maxLeverage` is not an
|
|
131
|
+
* integer in [1, 100].
|
|
132
|
+
* @throws {import("../cross-field-lte.js").JupiterPerpsPostAssertionUnsupportedError}
|
|
133
|
+
* re-thrown by the underlying builder if `targetAccountOwnerProgram` ever
|
|
134
|
+
* drifts to Jupiter Perps (defense-in-depth — Flash Trade's program address
|
|
135
|
+
* is hard-coded here, so this throw indicates either a preset bug or a
|
|
136
|
+
* caller who hand-mutated the returned entry before submitting).
|
|
137
|
+
*/
|
|
138
|
+
export declare function flashTradeLeverageCap(opts: FlashTradeLeverageCapOpts): PostAssertionEntry;
|
|
139
|
+
//# sourceMappingURL=flash-trade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flash-trade.d.ts","sourceRoot":"","sources":["../../../src/post-assertions/presets/flash-trade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAKtF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EACY,OAAO,CAAC;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,0CAA0C,MAAM,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAIlC;;;;GAIG;AACH,qBAAa,iCAAkC,SAAQ,KAAK;IAC1D,4EAA4E;IAC5E,SAAgB,IAAI,EAAE,MAAM,CAAQ;IACpC,SAAgB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAGzC;IACF;;;;OAIG;IACH,SAAgB,eAAe,EAAE,OAAO,CAAS;IACjD,SAAgB,QAAQ,EAAE,OAAO,CAAC;gBAEtB,QAAQ,EAAE,OAAO;CAQ9B;AAID,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,yBAAyB,GAC9B,kBAAkB,CAkBpB"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@usesigil/kit/post-assertions/presets/flash-trade` — Flash Trade leverage cap preset.
|
|
3
|
+
*
|
|
4
|
+
* Convenience wrapper around `leverageCapLteBps` that fills in the byte offsets
|
|
5
|
+
* of a Flash Trade Position account's `size_usd` and `collateral_usd` fields.
|
|
6
|
+
*
|
|
7
|
+
* Callers provide a position account address + a leverage cap expressed in
|
|
8
|
+
* "x" (multiples), and the preset returns a `PostAssertionEntry` that the
|
|
9
|
+
* on-chain program enforces as:
|
|
10
|
+
*
|
|
11
|
+
* size_usd × 10000 ≤ maxLeverage × 10000 × collateral_usd
|
|
12
|
+
* ⇔ leverage (= size_usd / collateral_usd) ≤ maxLeverage
|
|
13
|
+
*
|
|
14
|
+
* ## Field offsets (pinned to flash-sdk@15.x Perpetuals IDL)
|
|
15
|
+
*
|
|
16
|
+
* Derived from the Anchor IDL shipped with `flash-sdk@^15.14.1`
|
|
17
|
+
* (`node_modules/flash-sdk/dist/idl/perpetuals.json`). Position account
|
|
18
|
+
* Borsh layout, starting after the 8-byte Anchor discriminator:
|
|
19
|
+
*
|
|
20
|
+
* offset field type size
|
|
21
|
+
* 8 owner pubkey 32
|
|
22
|
+
* 40 market pubkey 32
|
|
23
|
+
* 72 delegate pubkey 32
|
|
24
|
+
* 104 open_time i64 8
|
|
25
|
+
* 112 update_time i64 8
|
|
26
|
+
* 120 entry_price OraclePrice { price: u64, exponent: i32 } 12
|
|
27
|
+
* 132 size_amount u64 8
|
|
28
|
+
* → 140 size_usd u64 8
|
|
29
|
+
* 148 locked_amount u64 8
|
|
30
|
+
* 156 locked_usd u64 8
|
|
31
|
+
* 164 price_impact_usd u64 8
|
|
32
|
+
* → 172 collateral_usd u64 8
|
|
33
|
+
* ...
|
|
34
|
+
*
|
|
35
|
+
* A drift-check unit test (`presets/flash-trade.test.ts`) reloads the Anchor
|
|
36
|
+
* IDL from `flash-sdk` at test time and recomputes offsets — any future
|
|
37
|
+
* flash-sdk bump that shifts these fields fails the test before a broken
|
|
38
|
+
* preset can ship.
|
|
39
|
+
*
|
|
40
|
+
* ## Jupiter Perps is NOT supported here
|
|
41
|
+
*
|
|
42
|
+
* Flash Trade executes position changes synchronously in the user's tx, so
|
|
43
|
+
* post-execution assertions are meaningful. Jupiter Perpetuals uses a 2-tx
|
|
44
|
+
* keeper-fulfillment model that silently bypasses post-assertions — that gate
|
|
45
|
+
* is enforced upstream in `leverageCapLteBps` via
|
|
46
|
+
* `JupiterPerpsPostAssertionUnsupportedError`, so a caller who mistakenly
|
|
47
|
+
* plugs a Jupiter Perps Position address here gets an explicit error.
|
|
48
|
+
*
|
|
49
|
+
* ## Bounds on `maxLeverage`
|
|
50
|
+
*
|
|
51
|
+
* `maxLeverage` is an integer multiplier (e.g., 5 = 5x cap). We reject
|
|
52
|
+
* values outside [1, 100]:
|
|
53
|
+
* - 0 would encode `size_usd ≤ 0` — any non-zero position fails, effectively
|
|
54
|
+
* a kill-switch. Safer to reject and let callers use `closePostAssertions`
|
|
55
|
+
* if they want to disable the cap entirely.
|
|
56
|
+
* - Values > 100 exceed any practical Flash Trade leverage (current mainnet
|
|
57
|
+
* caps sit around 25-50x) and are almost certainly caller bugs.
|
|
58
|
+
*
|
|
59
|
+
* @see programs/sigil/src/state/post_assertions.rs — on-chain CrossFieldLte enforcer
|
|
60
|
+
* @see `@usesigil/kit/post-assertions/cross-field-lte.ts` — underlying builder
|
|
61
|
+
*/
|
|
62
|
+
import { leverageCapLteBps } from "../cross-field-lte.js";
|
|
63
|
+
// ─── Constants ────────────────────────────────────────────────────────────
|
|
64
|
+
/**
|
|
65
|
+
* Flash Trade Perpetuals program address (mainnet-beta). Owner of Position
|
|
66
|
+
* accounts that this preset targets.
|
|
67
|
+
*
|
|
68
|
+
* Source: `constants` module in `flash-sdk@^15.14.1`. Hard-coded here so the
|
|
69
|
+
* preset is importable without loading the full flash-sdk runtime.
|
|
70
|
+
*/
|
|
71
|
+
export const FLASH_TRADE_PROGRAM_ADDRESS = "FLaSh6f6Y5bLsmcfiaxvqRJC3WQLKYh1iCfAsh7uMH8z";
|
|
72
|
+
/**
|
|
73
|
+
* Byte offset of `size_usd` (u64, little-endian) inside Flash Trade Position
|
|
74
|
+
* account data, starting from byte 0 of the account (NOT after discriminator).
|
|
75
|
+
*
|
|
76
|
+
* Pinned to flash-sdk@^15.14.1 Perpetuals IDL. A drift-check unit test
|
|
77
|
+
* reloads the IDL and asserts this value matches.
|
|
78
|
+
*/
|
|
79
|
+
export const FLASH_TRADE_POSITION_SIZE_USD_OFFSET = 140;
|
|
80
|
+
/**
|
|
81
|
+
* Byte offset of `collateral_usd` (u64, little-endian) inside Flash Trade
|
|
82
|
+
* Position account data.
|
|
83
|
+
*
|
|
84
|
+
* Pinned to flash-sdk@^15.14.1 Perpetuals IDL. Drift-check test guards this.
|
|
85
|
+
*/
|
|
86
|
+
export const FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET = 172;
|
|
87
|
+
/**
|
|
88
|
+
* Lowest permitted `maxLeverage` input — 1x. Zero would encode a kill-switch.
|
|
89
|
+
*/
|
|
90
|
+
export const MIN_LEVERAGE_X = 1;
|
|
91
|
+
/**
|
|
92
|
+
* Highest permitted `maxLeverage` input. 100x is a generous upper bound above
|
|
93
|
+
* any practical Flash Trade cap.
|
|
94
|
+
*/
|
|
95
|
+
export const MAX_LEVERAGE_X = 100;
|
|
96
|
+
// ─── Errors ───────────────────────────────────────────────────────────────
|
|
97
|
+
/**
|
|
98
|
+
* Thrown when `maxLeverage` is outside [MIN_LEVERAGE_X, MAX_LEVERAGE_X] or
|
|
99
|
+
* not an integer. Carries a DxError-compatible shape so FE can branch on
|
|
100
|
+
* `.code` without `instanceof` checks that break across module realms.
|
|
101
|
+
*/
|
|
102
|
+
export class FlashTradeLeverageOutOfRangeError extends Error {
|
|
103
|
+
/** DxError-compatible numeric code. 7009 reserved for preset validation. */
|
|
104
|
+
code = 7009;
|
|
105
|
+
recovery = [
|
|
106
|
+
`Pass a whole number between ${MIN_LEVERAGE_X} and ${MAX_LEVERAGE_X}.`,
|
|
107
|
+
"To disable an existing leverage cap, call `closePostAssertions(...)`.",
|
|
108
|
+
];
|
|
109
|
+
/**
|
|
110
|
+
* Always `false` — thrown at CLIENT validation time, before any RPC
|
|
111
|
+
* round-trip. Present to satisfy DxError's structural contract (every
|
|
112
|
+
* DxError carries `onChainReverted`; see v2.2 contract C2).
|
|
113
|
+
*/
|
|
114
|
+
onChainReverted = false;
|
|
115
|
+
received;
|
|
116
|
+
constructor(received) {
|
|
117
|
+
super(`flashTradeLeverageCap: maxLeverage must be an integer in [${MIN_LEVERAGE_X}, ${MAX_LEVERAGE_X}] (got ${String(received)})`);
|
|
118
|
+
this.name = "FlashTradeLeverageOutOfRangeError";
|
|
119
|
+
this.received = received;
|
|
120
|
+
// TS target=ES2020 preserves .name/.message across supers; no extra handling needed.
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// ─── Builder ──────────────────────────────────────────────────────────────
|
|
124
|
+
/**
|
|
125
|
+
* Build a post-assertion entry that caps Flash Trade leverage at `maxLeverage` × .
|
|
126
|
+
*
|
|
127
|
+
* Equivalent to calling {@link leverageCapLteBps} with Flash Trade's Position
|
|
128
|
+
* `size_usd` / `collateral_usd` offsets filled in, `targetAccountOwnerProgram`
|
|
129
|
+
* set to {@link FLASH_TRADE_PROGRAM_ADDRESS}, and `maxBps = maxLeverage * 10000`.
|
|
130
|
+
*
|
|
131
|
+
* @throws {FlashTradeLeverageOutOfRangeError} if `maxLeverage` is not an
|
|
132
|
+
* integer in [1, 100].
|
|
133
|
+
* @throws {import("../cross-field-lte.js").JupiterPerpsPostAssertionUnsupportedError}
|
|
134
|
+
* re-thrown by the underlying builder if `targetAccountOwnerProgram` ever
|
|
135
|
+
* drifts to Jupiter Perps (defense-in-depth — Flash Trade's program address
|
|
136
|
+
* is hard-coded here, so this throw indicates either a preset bug or a
|
|
137
|
+
* caller who hand-mutated the returned entry before submitting).
|
|
138
|
+
*/
|
|
139
|
+
export function flashTradeLeverageCap(opts) {
|
|
140
|
+
if (!Number.isInteger(opts.maxLeverage) ||
|
|
141
|
+
opts.maxLeverage < MIN_LEVERAGE_X ||
|
|
142
|
+
opts.maxLeverage > MAX_LEVERAGE_X) {
|
|
143
|
+
throw new FlashTradeLeverageOutOfRangeError(opts.maxLeverage);
|
|
144
|
+
}
|
|
145
|
+
const maxBps = opts.maxLeverage * 10_000;
|
|
146
|
+
return leverageCapLteBps({
|
|
147
|
+
targetAccount: opts.positionAccount,
|
|
148
|
+
targetAccountOwnerProgram: FLASH_TRADE_PROGRAM_ADDRESS,
|
|
149
|
+
fieldAOffset: FLASH_TRADE_POSITION_SIZE_USD_OFFSET,
|
|
150
|
+
fieldBOffset: FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET,
|
|
151
|
+
maxBps,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=flash-trade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flash-trade.js","sourceRoot":"","sources":["../../../src/post-assertions/presets/flash-trade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,6EAA6E;AAE7E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,8CAAyD,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,GAAG,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAElC,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IAC1D,4EAA4E;IAC5D,IAAI,GAAW,IAAI,CAAC;IACpB,QAAQ,GAAsB;QAC5C,+BAA+B,cAAc,QAAQ,cAAc,GAAG;QACtE,uEAAuE;KACxE,CAAC;IACF;;;;OAIG;IACa,eAAe,GAAY,KAAK,CAAC;IACjC,QAAQ,CAAU;IAElC,YAAY,QAAiB;QAC3B,KAAK,CACH,6DAA6D,cAAc,KAAK,cAAc,UAAU,MAAM,CAAC,QAAQ,CAAC,GAAG,CAC5H,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,qFAAqF;IACvF,CAAC;CACF;AAcD,6EAA6E;AAE7E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA+B;IAE/B,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,cAAc;QACjC,IAAI,CAAC,WAAW,GAAG,cAAc,EACjC,CAAC;QACD,MAAM,IAAI,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAEzC,OAAO,iBAAiB,CAAC;QACvB,aAAa,EAAE,IAAI,CAAC,eAAe;QACnC,yBAAyB,EAAE,2BAA2B;QACtD,YAAY,EAAE,oCAAoC;QAClD,YAAY,EAAE,0CAA0C;QACxD,MAAM;KACP,CAAC,CAAC;AACL,CAAC"}
|
package/dist/presets.d.ts
CHANGED
|
@@ -43,10 +43,6 @@ export interface VaultPreset {
|
|
|
43
43
|
protocolMode: number;
|
|
44
44
|
/** Allowed/denied protocol addresses (empty if mode = all). */
|
|
45
45
|
protocols: Address[];
|
|
46
|
-
/** Max leverage in basis points (0 = no leverage). */
|
|
47
|
-
maxLeverageBps: number;
|
|
48
|
-
/** Max concurrent open positions. */
|
|
49
|
-
maxConcurrentPositions: number;
|
|
50
46
|
}
|
|
51
47
|
export declare const VAULT_PRESETS: {
|
|
52
48
|
readonly "jupiter-swap-bot": {
|
|
@@ -59,8 +55,6 @@ export declare const VAULT_PRESETS: {
|
|
|
59
55
|
readonly maxSlippageBps: 200;
|
|
60
56
|
readonly protocolMode: 1;
|
|
61
57
|
readonly protocols: [Address];
|
|
62
|
-
readonly maxLeverageBps: 0;
|
|
63
|
-
readonly maxConcurrentPositions: 0;
|
|
64
58
|
};
|
|
65
59
|
readonly "perps-trader": {
|
|
66
60
|
readonly label: "Perps Trader";
|
|
@@ -72,8 +66,6 @@ export declare const VAULT_PRESETS: {
|
|
|
72
66
|
readonly maxSlippageBps: 500;
|
|
73
67
|
readonly protocolMode: 1;
|
|
74
68
|
readonly protocols: [Address, Address];
|
|
75
|
-
readonly maxLeverageBps: 10000;
|
|
76
|
-
readonly maxConcurrentPositions: 5;
|
|
77
69
|
};
|
|
78
70
|
readonly "lending-optimizer": {
|
|
79
71
|
readonly label: "Lending Optimizer";
|
|
@@ -85,8 +77,6 @@ export declare const VAULT_PRESETS: {
|
|
|
85
77
|
readonly maxSlippageBps: 100;
|
|
86
78
|
readonly protocolMode: 1;
|
|
87
79
|
readonly protocols: [Address, Address, Address];
|
|
88
|
-
readonly maxLeverageBps: 0;
|
|
89
|
-
readonly maxConcurrentPositions: 0;
|
|
90
80
|
};
|
|
91
81
|
readonly "full-access": {
|
|
92
82
|
readonly label: "Full Access";
|
|
@@ -98,8 +88,6 @@ export declare const VAULT_PRESETS: {
|
|
|
98
88
|
readonly maxSlippageBps: 500;
|
|
99
89
|
readonly protocolMode: 0;
|
|
100
90
|
readonly protocols: [];
|
|
101
|
-
readonly maxLeverageBps: 20000;
|
|
102
|
-
readonly maxConcurrentPositions: 10;
|
|
103
91
|
};
|
|
104
92
|
};
|
|
105
93
|
export type PresetName = keyof typeof VAULT_PRESETS;
|
|
@@ -123,7 +111,7 @@ export declare function listPresets(): PresetName[];
|
|
|
123
111
|
* const result = await createVault(opts);
|
|
124
112
|
* ```
|
|
125
113
|
*/
|
|
126
|
-
export declare function presetToCreateVaultFields(name: PresetName): Pick<CreateVaultOptions, "permissions" | "dailySpendingCapUsd" | "maxTransactionSizeUsd" | "maxSlippageBps" | "protocolMode" | "protocols"
|
|
114
|
+
export declare function presetToCreateVaultFields(name: PresetName): Pick<CreateVaultOptions, "permissions" | "dailySpendingCapUsd" | "maxTransactionSizeUsd" | "maxSlippageBps" | "protocolMode" | "protocols">;
|
|
127
115
|
/**
|
|
128
116
|
* Fields a safety preset can fill. `null` means "caller must supply" —
|
|
129
117
|
* the production preset leaves caps explicit on purpose to force thought
|
package/dist/presets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAyBpD,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,mBAAmB,EAAE,YAAY,CAAC;IAClC,qDAAqD;IACrD,qBAAqB,EAAE,YAAY,CAAC;IACpC,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,EAAE,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAyBpD,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,mBAAmB,EAAE,YAAY,CAAC;IAClC,qDAAqD;IACrD,qBAAqB,EAAE,YAAY,CAAC;IACpC,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,EAAE,OAAO,EAAE,CAAC;CACtB;AAID,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDsB,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,aAAa,CAAC;AAIpD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAI/D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAE1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,GACf,IAAI,CACL,kBAAkB,EAChB,aAAa,GACb,qBAAqB,GACrB,uBAAuB,GACvB,gBAAgB,GAChB,cAAc,GACd,WAAW,CACd,CAUA;AAQD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,gBAAgB,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,gBAAgB,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,6EAA6E;IAC7E,mBAAmB,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1C;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;CAW4B,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,cAAc,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,SAAS,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC1C,kBAAkB,CAQpB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,GAAG;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,mBAAmB,EAAE,YAAY,CAAC;CACnC,CAeA"}
|
package/dist/presets.js
CHANGED
|
@@ -30,8 +30,6 @@ export const VAULT_PRESETS = {
|
|
|
30
30
|
maxSlippageBps: 200, // 2%
|
|
31
31
|
protocolMode: PROTOCOL_MODE_ALLOWLIST,
|
|
32
32
|
protocols: [JUPITER_PROGRAM_ADDRESS],
|
|
33
|
-
maxLeverageBps: 0,
|
|
34
|
-
maxConcurrentPositions: 0,
|
|
35
33
|
},
|
|
36
34
|
"perps-trader": {
|
|
37
35
|
label: "Perps Trader",
|
|
@@ -43,8 +41,6 @@ export const VAULT_PRESETS = {
|
|
|
43
41
|
maxSlippageBps: 500, // 5%
|
|
44
42
|
protocolMode: PROTOCOL_MODE_ALLOWLIST,
|
|
45
43
|
protocols: [JUPITER_PROGRAM_ADDRESS, FLASH_TRADE_PROGRAM],
|
|
46
|
-
maxLeverageBps: 10_000, // 10x
|
|
47
|
-
maxConcurrentPositions: 5,
|
|
48
44
|
},
|
|
49
45
|
"lending-optimizer": {
|
|
50
46
|
label: "Lending Optimizer",
|
|
@@ -60,8 +56,6 @@ export const VAULT_PRESETS = {
|
|
|
60
56
|
JUPITER_LEND_PROGRAM,
|
|
61
57
|
KAMINO_LEND_PROGRAM,
|
|
62
58
|
],
|
|
63
|
-
maxLeverageBps: 0,
|
|
64
|
-
maxConcurrentPositions: 0,
|
|
65
59
|
},
|
|
66
60
|
"full-access": {
|
|
67
61
|
label: "Full Access",
|
|
@@ -73,8 +67,6 @@ export const VAULT_PRESETS = {
|
|
|
73
67
|
maxSlippageBps: 500, // 5%
|
|
74
68
|
protocolMode: PROTOCOL_MODE_ALL,
|
|
75
69
|
protocols: [],
|
|
76
|
-
maxLeverageBps: 20_000, // 20x
|
|
77
|
-
maxConcurrentPositions: 10,
|
|
78
70
|
},
|
|
79
71
|
};
|
|
80
72
|
// ─── Functions ──────────────────────────────────────────────────────────────
|
|
@@ -113,8 +105,6 @@ export function presetToCreateVaultFields(name) {
|
|
|
113
105
|
maxSlippageBps: preset.maxSlippageBps,
|
|
114
106
|
protocolMode: preset.protocolMode,
|
|
115
107
|
protocols: [...preset.protocols],
|
|
116
|
-
maxLeverageBps: preset.maxLeverageBps,
|
|
117
|
-
maxConcurrentPositions: preset.maxConcurrentPositions,
|
|
118
108
|
};
|
|
119
109
|
}
|
|
120
110
|
/**
|
package/dist/presets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,GAAG,EAAqB,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,gFAAgF;AAEhF,MAAM,mBAAmB,GACvB,8CAAyD,CAAC;AAC5D,MAAM,oBAAoB,GACxB,6CAAwD,CAAC;AAC3D,MAAM,mBAAmB,GACvB,6CAAwD,CAAC;
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
|