@velocity-exchange/sdk 0.6.1 → 0.8.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/lib/browser/adminClient.d.ts +24 -4
- package/lib/browser/adminClient.js +62 -12
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +19 -15
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +31 -22
- package/lib/browser/constants/numericConstants.d.ts +2 -0
- package/lib/browser/constants/numericConstants.js +3 -1
- package/lib/browser/core/VelocityCore.d.ts +2 -0
- package/lib/browser/core/VelocityCore.js +1 -0
- package/lib/browser/core/instructions/trigger.d.ts +4 -0
- package/lib/browser/core/instructions/trigger.js +4 -0
- package/lib/browser/idl/velocity.d.ts +223 -33
- package/lib/browser/idl/velocity.json +224 -34
- package/lib/browser/math/amm.d.ts +8 -8
- package/lib/browser/math/funding.d.ts +2 -2
- package/lib/browser/math/liquidation.d.ts +37 -2
- package/lib/browser/math/liquidation.js +44 -3
- package/lib/browser/math/market.d.ts +5 -4
- package/lib/browser/math/market.js +21 -14
- package/lib/browser/math/oracles.d.ts +3 -3
- package/lib/browser/math/orders.d.ts +1 -1
- package/lib/browser/math/spotBalance.d.ts +13 -0
- package/lib/browser/math/spotBalance.js +43 -2
- package/lib/browser/testClient.js +12 -1
- package/lib/browser/tx/txHandler.d.ts +7 -1
- package/lib/browser/tx/txHandler.js +7 -3
- package/lib/browser/types.d.ts +9 -0
- package/lib/browser/user.d.ts +2 -2
- package/lib/browser/userMap/userMap.d.ts +1 -0
- package/lib/browser/userMap/userMap.js +3 -7
- package/lib/browser/velocityClient.d.ts +32 -20
- package/lib/browser/velocityClient.js +48 -23
- package/lib/node/adminClient.d.ts +24 -4
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +62 -12
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +19 -15
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +31 -22
- package/lib/node/constants/numericConstants.d.ts +2 -0
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +3 -1
- package/lib/node/core/VelocityCore.d.ts +2 -0
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/VelocityCore.js +1 -0
- package/lib/node/core/instructions/trigger.d.ts +4 -0
- package/lib/node/core/instructions/trigger.d.ts.map +1 -1
- package/lib/node/core/instructions/trigger.js +4 -0
- package/lib/node/idl/velocity.d.ts +223 -33
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +224 -34
- package/lib/node/math/amm.d.ts +8 -8
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/funding.d.ts +2 -2
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/liquidation.d.ts +37 -2
- package/lib/node/math/liquidation.d.ts.map +1 -1
- package/lib/node/math/liquidation.js +44 -3
- package/lib/node/math/market.d.ts +5 -4
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +21 -14
- package/lib/node/math/oracles.d.ts +3 -3
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/orders.d.ts +1 -1
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/spotBalance.d.ts +13 -0
- package/lib/node/math/spotBalance.d.ts.map +1 -1
- package/lib/node/math/spotBalance.js +43 -2
- package/lib/node/testClient.d.ts.map +1 -1
- package/lib/node/testClient.js +12 -1
- package/lib/node/tx/txHandler.d.ts +7 -1
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +7 -3
- package/lib/node/types.d.ts +9 -0
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/user.d.ts +2 -2
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/userMap/userMap.d.ts +1 -0
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +3 -7
- package/lib/node/velocityClient.d.ts +32 -20
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +48 -23
- package/package.json +1 -1
|
@@ -3,12 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BlockhashSubscriber = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
* A blockhash is valid for signing until 150 blocks after the block it was
|
|
7
|
+
* fetched from, so `getLatestBlockhash`'s `lastValidBlockHeight` is exactly
|
|
8
|
+
* `(block height of that blockhash) + 150`. Subtracting this offset recovers
|
|
9
|
+
* the current block height without a second RPC call.
|
|
10
|
+
*/
|
|
11
|
+
const BLOCKHASH_VALIDITY_BLOCKS = 150;
|
|
12
|
+
/**
|
|
13
|
+
* BlockhashSubscriber — polls `getLatestBlockhashAndContext` on a fixed
|
|
14
|
+
* interval and caches a short history of recent blockhashes, so callers can
|
|
15
|
+
* grab a recent blockhash for transaction building without an RPC round-trip
|
|
16
|
+
* per transaction. The current block height is derived from the same response
|
|
17
|
+
* (`lastValidBlockHeight - 150`), so no paired `getBlockHeight` call is made.
|
|
18
|
+
* Nothing is populated until `subscribe()` (or a manual `updateBlockhash()`)
|
|
19
|
+
* has completed at least once — all getters return `undefined`/empty before
|
|
20
|
+
* then.
|
|
12
21
|
*/
|
|
13
22
|
class BlockhashSubscriber {
|
|
14
23
|
/**
|
|
@@ -34,9 +43,9 @@ class BlockhashSubscriber {
|
|
|
34
43
|
* @returns The block height as of the most recent successful poll, or
|
|
35
44
|
* `undefined` if `subscribe()`/`updateBlockhash()` has not yet completed
|
|
36
45
|
* successfully at least once (including if every poll so far has errored).
|
|
37
|
-
* This value is
|
|
38
|
-
*
|
|
39
|
-
* blockhash slot, only "recent as of the last poll".
|
|
46
|
+
* This value is derived from the latest blockhash fetch
|
|
47
|
+
* (`lastValidBlockHeight - 150`) — it is not guaranteed to be perfectly in
|
|
48
|
+
* sync with the blockhash slot, only "recent as of the last poll".
|
|
40
49
|
*/
|
|
41
50
|
getLatestBlockHeight() {
|
|
42
51
|
return this.latestBlockHeight;
|
|
@@ -69,22 +78,22 @@ class BlockhashSubscriber {
|
|
|
69
78
|
}
|
|
70
79
|
}
|
|
71
80
|
/**
|
|
72
|
-
* Fetches the latest blockhash and
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* `
|
|
81
|
+
* Fetches the latest blockhash and appends it to the cache (skipped if it's
|
|
82
|
+
* identical to the most-recently-cached one), then prunes expired entries.
|
|
83
|
+
* The current block height is derived from the same response
|
|
84
|
+
* (`lastValidBlockHeight - 150`) rather than a paired `getBlockHeight` call.
|
|
85
|
+
* Errors (e.g. RPC failure) are caught and logged, not thrown — on error,
|
|
86
|
+
* `latestBlockHeight` is left at its previous value, but `pruneBlockhashes()`
|
|
87
|
+
* still runs in a `finally` block and may evict entries that expired in the
|
|
88
|
+
* meantime.
|
|
78
89
|
*/
|
|
79
90
|
async updateBlockhash() {
|
|
80
91
|
try {
|
|
81
|
-
const
|
|
82
|
-
this.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
]);
|
|
87
|
-
this.latestBlockHeight = lastConfirmedBlockHeight;
|
|
92
|
+
const resp = await this.connection.getLatestBlockhashAndContext({
|
|
93
|
+
commitment: this.commitment,
|
|
94
|
+
});
|
|
95
|
+
this.latestBlockHeight =
|
|
96
|
+
resp.value.lastValidBlockHeight - BLOCKHASH_VALIDITY_BLOCKS;
|
|
88
97
|
this.latestBlockHeightContext = resp.context;
|
|
89
98
|
// avoid caching duplicate blockhashes
|
|
90
99
|
if (this.blockhashes.length > 0) {
|
|
@@ -102,6 +102,8 @@ export declare const FUNDING_RATE_CLAMP_DENOMINATOR: BN;
|
|
|
102
102
|
export declare const PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO: BN;
|
|
103
103
|
/** 300 seconds. */
|
|
104
104
|
export declare const FIVE_MINUTE: BN;
|
|
105
|
+
/** Max age of the last fill before the trigger price's last-fill leg is treated as absent (oracle price substitutes). */
|
|
106
|
+
export declare const TRIGGER_PRICE_LAST_FILL_MAX_AGE: BN;
|
|
105
107
|
/** 3600 seconds. */
|
|
106
108
|
export declare const ONE_HOUR: BN;
|
|
107
109
|
/** 31,536,000 seconds (365 days). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numericConstants.d.ts","sourceRoot":"","sources":["../../../src/constants/numericConstants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"numericConstants.d.ts","sourceRoot":"","sources":["../../../src/constants/numericConstants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.PRICE_DIV_PEG = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION_EXP = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_RATE_BUFFER_PRECISION = exports.FUNDING_RATE_PRECISION = exports.PRICE_PRECISION = exports.QUOTE_PRECISION = exports.LIQUIDATION_FEE_PRECISION = exports.SPOT_MARKET_IMF_PRECISION = exports.SPOT_MARKET_IMF_PRECISION_EXP = exports.SPOT_MARKET_BALANCE_PRECISION = exports.SPOT_MARKET_BALANCE_PRECISION_EXP = exports.SPOT_MARKET_WEIGHT_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION_EXP = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP = exports.SPOT_MARKET_RATE_PRECISION = exports.SPOT_MARKET_RATE_PRECISION_EXP = exports.AMM_RESERVE_PRECISION_EXP = exports.PEG_PRECISION_EXP = exports.FUNDING_RATE_PRECISION_EXP = exports.PRICE_PRECISION_EXP = exports.FUNDING_RATE_BUFFER_PRECISION_EXP = exports.QUOTE_PRECISION_EXP = exports.CONCENTRATION_PRECISION = exports.PERCENTAGE_PRECISION = exports.PERCENTAGE_PRECISION_EXP = exports.MAX_LEVERAGE_ORDER_SIZE = exports.MAX_LEVERAGE = exports.TEN_MILLION = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.NINE = exports.EIGHT = exports.SEVEN = exports.SIX = exports.FIVE = exports.FOUR = exports.THREE = exports.TWO = exports.ONE = exports.ZERO = void 0;
|
|
4
|
-
exports.MIN_I64 = exports.MAX_I64 = exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = exports.MAX_POSITIVE_UPNL_FOR_INITIAL_MARGIN = exports.DUST_POSITION_SIZE = exports.SLOT_TIME_ESTIMATE_MS = exports.IDLE_TIME_SLOTS = exports.ACCOUNT_AGE_DELETION_CUTOFF_SECONDS = exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.ONE_HOUR = exports.FIVE_MINUTE = exports.PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = exports.FUNDING_RATE_CLAMP_DENOMINATOR = exports.FUNDING_RATE_OFFSET_PERCENTAGE = exports.FUNDING_RATE_OFFSET_DENOMINATOR = exports.LIQUIDATION_PCT_PRECISION = exports.BID_ASK_SPREAD_PRECISION = exports.BPS_PRECISION = void 0;
|
|
4
|
+
exports.MIN_I64 = exports.MAX_I64 = exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = exports.MAX_POSITIVE_UPNL_FOR_INITIAL_MARGIN = exports.DUST_POSITION_SIZE = exports.SLOT_TIME_ESTIMATE_MS = exports.IDLE_TIME_SLOTS = exports.ACCOUNT_AGE_DELETION_CUTOFF_SECONDS = exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.ONE_HOUR = exports.TRIGGER_PRICE_LAST_FILL_MAX_AGE = exports.FIVE_MINUTE = exports.PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = exports.FUNDING_RATE_CLAMP_DENOMINATOR = exports.FUNDING_RATE_OFFSET_PERCENTAGE = exports.FUNDING_RATE_OFFSET_DENOMINATOR = exports.LIQUIDATION_PCT_PRECISION = exports.BID_ASK_SPREAD_PRECISION = exports.BPS_PRECISION = void 0;
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
6
|
const anchor_1 = require("../isomorphic/anchor");
|
|
7
7
|
/** Precision constants used throughout the SDK. Each mirrors an on-chain fixed-point scale — a raw `BN` amount at that precision represents `amount / 10^exponent` in human units (e.g. `PRICE_PRECISION` = 1e6, so a raw price of `1_500_000` is `$1.50`). Values must stay numerically identical to the Rust program's `math::constants` — a mismatch here silently mis-scales every derived SDK computation. */
|
|
@@ -107,6 +107,8 @@ exports.FUNDING_RATE_CLAMP_DENOMINATOR = new anchor_1.BN(2000);
|
|
|
107
107
|
exports.PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = exports.PRICE_PRECISION.mul(exports.AMM_TO_QUOTE_PRECISION_RATIO);
|
|
108
108
|
/** 300 seconds. */
|
|
109
109
|
exports.FIVE_MINUTE = new anchor_1.BN(60 * 5);
|
|
110
|
+
/** Max age of the last fill before the trigger price's last-fill leg is treated as absent (oracle price substitutes). */
|
|
111
|
+
exports.TRIGGER_PRICE_LAST_FILL_MAX_AGE = exports.FIVE_MINUTE;
|
|
110
112
|
/** 3600 seconds. */
|
|
111
113
|
exports.ONE_HOUR = new anchor_1.BN(60 * 60);
|
|
112
114
|
/** 31,536,000 seconds (365 days). */
|
|
@@ -224,6 +224,7 @@ export declare class VelocityCore {
|
|
|
224
224
|
* @param args.state - the global `State` PDA.
|
|
225
225
|
* @param args.filler - the keeper's `User` account submitting the trigger.
|
|
226
226
|
* @param args.user - the order owner's `User` account.
|
|
227
|
+
* @param args.userStats - the order owner's `UserStats` account (authority-wide equity breaker).
|
|
227
228
|
* @param args.authority - signer that must own or be a registered delegate of `filler`.
|
|
228
229
|
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for the order's market.
|
|
229
230
|
* @returns the unsigned `triggerOrder` `TransactionInstruction`.
|
|
@@ -234,6 +235,7 @@ export declare class VelocityCore {
|
|
|
234
235
|
state: PublicKey;
|
|
235
236
|
filler: PublicKey;
|
|
236
237
|
user: PublicKey;
|
|
238
|
+
userStats: PublicKey;
|
|
237
239
|
authority: PublicKey;
|
|
238
240
|
remainingAccounts: AccountMeta[];
|
|
239
241
|
}): Promise<TransactionInstruction>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VelocityCore.d.ts","sourceRoot":"","sources":["../../../src/core/VelocityCore.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VelocityCore.d.ts","sourceRoot":"","sources":["../../../src/core/VelocityCore.ts"],"names":[],"mappings":"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"}
|
|
@@ -202,6 +202,7 @@ class VelocityCore {
|
|
|
202
202
|
* @param args.state - the global `State` PDA.
|
|
203
203
|
* @param args.filler - the keeper's `User` account submitting the trigger.
|
|
204
204
|
* @param args.user - the order owner's `User` account.
|
|
205
|
+
* @param args.userStats - the order owner's `UserStats` account (authority-wide equity breaker).
|
|
205
206
|
* @param args.authority - signer that must own or be a registered delegate of `filler`.
|
|
206
207
|
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for the order's market.
|
|
207
208
|
* @returns the unsigned `triggerOrder` `TransactionInstruction`.
|
|
@@ -11,6 +11,9 @@ import type { VelocityProgram } from '../../config';
|
|
|
11
11
|
* @param args.state - the global `State` PDA.
|
|
12
12
|
* @param args.filler - the keeper's `User` account submitting the trigger.
|
|
13
13
|
* @param args.user - the order owner's `User` account.
|
|
14
|
+
* @param args.userStats - the order owner's `UserStats` account (checked for the
|
|
15
|
+
* authority-wide equity breaker; a risk-increasing trigger order is cancelled
|
|
16
|
+
* rather than activated while the breaker is tripped).
|
|
14
17
|
* @param args.authority - signer that must own or be a registered delegate of `filler`.
|
|
15
18
|
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for the order's market.
|
|
16
19
|
* @returns the unsigned `triggerOrder` `TransactionInstruction`.
|
|
@@ -21,6 +24,7 @@ export declare function buildTriggerOrderInstruction(args: {
|
|
|
21
24
|
state: PublicKey;
|
|
22
25
|
filler: PublicKey;
|
|
23
26
|
user: PublicKey;
|
|
27
|
+
userStats: PublicKey;
|
|
24
28
|
authority: PublicKey;
|
|
25
29
|
remainingAccounts: AccountMeta[];
|
|
26
30
|
}): Promise<TransactionInstruction>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../../../src/core/instructions/trigger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,SAAS,EACT,sBAAsB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD
|
|
1
|
+
{"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../../../src/core/instructions/trigger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,SAAS,EACT,sBAAsB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,4BAA4B,CAAC,IAAI,EAAE;IACxD,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,WAAW,EAAE,CAAC;CACjC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAWlC"}
|
|
@@ -12,6 +12,9 @@ exports.buildTriggerOrderInstruction = void 0;
|
|
|
12
12
|
* @param args.state - the global `State` PDA.
|
|
13
13
|
* @param args.filler - the keeper's `User` account submitting the trigger.
|
|
14
14
|
* @param args.user - the order owner's `User` account.
|
|
15
|
+
* @param args.userStats - the order owner's `UserStats` account (checked for the
|
|
16
|
+
* authority-wide equity breaker; a risk-increasing trigger order is cancelled
|
|
17
|
+
* rather than activated while the breaker is tripped).
|
|
15
18
|
* @param args.authority - signer that must own or be a registered delegate of `filler`.
|
|
16
19
|
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for the order's market.
|
|
17
20
|
* @returns the unsigned `triggerOrder` `TransactionInstruction`.
|
|
@@ -22,6 +25,7 @@ async function buildTriggerOrderInstruction(args) {
|
|
|
22
25
|
state: args.state,
|
|
23
26
|
filler: args.filler,
|
|
24
27
|
user: args.user,
|
|
28
|
+
userStats: args.userStats,
|
|
25
29
|
authority: args.authority,
|
|
26
30
|
},
|
|
27
31
|
remainingAccounts: args.remainingAccounts,
|
|
@@ -8,7 +8,7 @@ export type Velocity = {
|
|
|
8
8
|
"address": "vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P";
|
|
9
9
|
"metadata": {
|
|
10
10
|
"name": "velocity";
|
|
11
|
-
"version": "2.
|
|
11
|
+
"version": "2.164.0";
|
|
12
12
|
"spec": "0.1.0";
|
|
13
13
|
"description": "Created with Anchor";
|
|
14
14
|
};
|
|
@@ -4426,6 +4426,9 @@ export type Velocity = {
|
|
|
4426
4426
|
"name": "liquidator";
|
|
4427
4427
|
"writable": true;
|
|
4428
4428
|
},
|
|
4429
|
+
{
|
|
4430
|
+
"name": "liquidatorStats";
|
|
4431
|
+
},
|
|
4429
4432
|
{
|
|
4430
4433
|
"name": "user";
|
|
4431
4434
|
"writable": true;
|
|
@@ -6289,6 +6292,9 @@ export type Velocity = {
|
|
|
6289
6292
|
52
|
|
6290
6293
|
];
|
|
6291
6294
|
"accounts": [
|
|
6295
|
+
{
|
|
6296
|
+
"name": "state";
|
|
6297
|
+
},
|
|
6292
6298
|
{
|
|
6293
6299
|
"name": "spotMarket";
|
|
6294
6300
|
"writable": true;
|
|
@@ -6333,6 +6339,40 @@ export type Velocity = {
|
|
|
6333
6339
|
"userStats"
|
|
6334
6340
|
];
|
|
6335
6341
|
},
|
|
6342
|
+
{
|
|
6343
|
+
"name": "spotMarketVault";
|
|
6344
|
+
"writable": true;
|
|
6345
|
+
"pda": {
|
|
6346
|
+
"seeds": [
|
|
6347
|
+
{
|
|
6348
|
+
"kind": "const";
|
|
6349
|
+
"value": [
|
|
6350
|
+
115,
|
|
6351
|
+
112,
|
|
6352
|
+
111,
|
|
6353
|
+
116,
|
|
6354
|
+
95,
|
|
6355
|
+
109,
|
|
6356
|
+
97,
|
|
6357
|
+
114,
|
|
6358
|
+
107,
|
|
6359
|
+
101,
|
|
6360
|
+
116,
|
|
6361
|
+
95,
|
|
6362
|
+
118,
|
|
6363
|
+
97,
|
|
6364
|
+
117,
|
|
6365
|
+
108,
|
|
6366
|
+
116
|
|
6367
|
+
];
|
|
6368
|
+
},
|
|
6369
|
+
{
|
|
6370
|
+
"kind": "arg";
|
|
6371
|
+
"path": "marketIndex";
|
|
6372
|
+
}
|
|
6373
|
+
];
|
|
6374
|
+
};
|
|
6375
|
+
},
|
|
6336
6376
|
{
|
|
6337
6377
|
"name": "insuranceFundVault";
|
|
6338
6378
|
"writable": true;
|
|
@@ -6369,6 +6409,12 @@ export type Velocity = {
|
|
|
6369
6409
|
}
|
|
6370
6410
|
];
|
|
6371
6411
|
};
|
|
6412
|
+
},
|
|
6413
|
+
{
|
|
6414
|
+
"name": "velocitySigner";
|
|
6415
|
+
},
|
|
6416
|
+
{
|
|
6417
|
+
"name": "tokenProgram";
|
|
6372
6418
|
}
|
|
6373
6419
|
];
|
|
6374
6420
|
"args": [
|
|
@@ -6544,12 +6590,6 @@ export type Velocity = {
|
|
|
6544
6590
|
},
|
|
6545
6591
|
{
|
|
6546
6592
|
"name": "authority";
|
|
6547
|
-
"relations": [
|
|
6548
|
-
"user"
|
|
6549
|
-
];
|
|
6550
|
-
},
|
|
6551
|
-
{
|
|
6552
|
-
"name": "user";
|
|
6553
6593
|
},
|
|
6554
6594
|
{
|
|
6555
6595
|
"name": "payer";
|
|
@@ -8244,6 +8284,9 @@ export type Velocity = {
|
|
|
8244
8284
|
{
|
|
8245
8285
|
"name": "user";
|
|
8246
8286
|
"writable": true;
|
|
8287
|
+
},
|
|
8288
|
+
{
|
|
8289
|
+
"name": "userStats";
|
|
8247
8290
|
}
|
|
8248
8291
|
];
|
|
8249
8292
|
"args": [
|
|
@@ -11437,6 +11480,42 @@ export type Velocity = {
|
|
|
11437
11480
|
];
|
|
11438
11481
|
"args": [];
|
|
11439
11482
|
},
|
|
11483
|
+
{
|
|
11484
|
+
"name": "updateSpotMarketDepositCap";
|
|
11485
|
+
"discriminator": [
|
|
11486
|
+
76,
|
|
11487
|
+
21,
|
|
11488
|
+
179,
|
|
11489
|
+
154,
|
|
11490
|
+
28,
|
|
11491
|
+
161,
|
|
11492
|
+
174,
|
|
11493
|
+
107
|
|
11494
|
+
];
|
|
11495
|
+
"accounts": [
|
|
11496
|
+
{
|
|
11497
|
+
"name": "admin";
|
|
11498
|
+
"signer": true;
|
|
11499
|
+
},
|
|
11500
|
+
{
|
|
11501
|
+
"name": "state";
|
|
11502
|
+
},
|
|
11503
|
+
{
|
|
11504
|
+
"name": "spotMarket";
|
|
11505
|
+
"writable": true;
|
|
11506
|
+
}
|
|
11507
|
+
];
|
|
11508
|
+
"args": [
|
|
11509
|
+
{
|
|
11510
|
+
"name": "depositGuardThreshold";
|
|
11511
|
+
"type": "u64";
|
|
11512
|
+
},
|
|
11513
|
+
{
|
|
11514
|
+
"name": "maxDepositBpsPerDay";
|
|
11515
|
+
"type": "u16";
|
|
11516
|
+
}
|
|
11517
|
+
];
|
|
11518
|
+
},
|
|
11440
11519
|
{
|
|
11441
11520
|
"name": "updateSpotMarketExpiry";
|
|
11442
11521
|
"discriminator": [
|
|
@@ -12076,6 +12155,38 @@ export type Velocity = {
|
|
|
12076
12155
|
}
|
|
12077
12156
|
];
|
|
12078
12157
|
},
|
|
12158
|
+
{
|
|
12159
|
+
"name": "updateSpotMarketWithdrawCircuitBreaker";
|
|
12160
|
+
"discriminator": [
|
|
12161
|
+
2,
|
|
12162
|
+
97,
|
|
12163
|
+
135,
|
|
12164
|
+
97,
|
|
12165
|
+
117,
|
|
12166
|
+
169,
|
|
12167
|
+
65,
|
|
12168
|
+
223
|
|
12169
|
+
];
|
|
12170
|
+
"accounts": [
|
|
12171
|
+
{
|
|
12172
|
+
"name": "admin";
|
|
12173
|
+
"signer": true;
|
|
12174
|
+
},
|
|
12175
|
+
{
|
|
12176
|
+
"name": "state";
|
|
12177
|
+
},
|
|
12178
|
+
{
|
|
12179
|
+
"name": "spotMarket";
|
|
12180
|
+
"writable": true;
|
|
12181
|
+
}
|
|
12182
|
+
];
|
|
12183
|
+
"args": [
|
|
12184
|
+
{
|
|
12185
|
+
"name": "withdrawCircuitBreakerBps";
|
|
12186
|
+
"type": "u16";
|
|
12187
|
+
}
|
|
12188
|
+
];
|
|
12189
|
+
},
|
|
12079
12190
|
{
|
|
12080
12191
|
"name": "updateStateMaxInitializeUserFee";
|
|
12081
12192
|
"discriminator": [
|
|
@@ -16163,6 +16274,31 @@ export type Velocity = {
|
|
|
16163
16274
|
"code": 6359;
|
|
16164
16275
|
"name": "invalidEquityFloorTransfer";
|
|
16165
16276
|
"msg": "Invalid equity floor transfer between subaccounts";
|
|
16277
|
+
},
|
|
16278
|
+
{
|
|
16279
|
+
"code": 6360;
|
|
16280
|
+
"name": "ifDepositMintsZeroShares";
|
|
16281
|
+
"msg": "Insurance fund deposit would mint zero shares";
|
|
16282
|
+
},
|
|
16283
|
+
{
|
|
16284
|
+
"code": 6361;
|
|
16285
|
+
"name": "liquidationWorsensAccountHealth";
|
|
16286
|
+
"msg": "Liquidation would worsen the account's margin shortage";
|
|
16287
|
+
},
|
|
16288
|
+
{
|
|
16289
|
+
"code": 6362;
|
|
16290
|
+
"name": "perpBankruptcyMustPrecedeSpot";
|
|
16291
|
+
"msg": "Perp bankruptcies must be resolved before spot bankruptcies";
|
|
16292
|
+
},
|
|
16293
|
+
{
|
|
16294
|
+
"code": 6363;
|
|
16295
|
+
"name": "invalidRevenueShareRecipient";
|
|
16296
|
+
"msg": "Revenue share recipient user must be sub_account_id 0";
|
|
16297
|
+
},
|
|
16298
|
+
{
|
|
16299
|
+
"code": 6364;
|
|
16300
|
+
"name": "dailyDepositLimit";
|
|
16301
|
+
"msg": "Spot market daily deposit limit hit";
|
|
16166
16302
|
}
|
|
16167
16303
|
];
|
|
16168
16304
|
"types": [
|
|
@@ -21210,19 +21346,24 @@ export type Velocity = {
|
|
|
21210
21346
|
};
|
|
21211
21347
|
},
|
|
21212
21348
|
{
|
|
21213
|
-
"name": "
|
|
21349
|
+
"name": "pendingRevenueShare";
|
|
21214
21350
|
"docs": [
|
|
21215
|
-
"
|
|
21216
|
-
"
|
|
21217
|
-
"
|
|
21218
|
-
"
|
|
21351
|
+
"Aggregate accrued builder/referrer revenue-share owed out of this",
|
|
21352
|
+
"market's `pnl_pool` but not yet paid: incremented as builder and",
|
|
21353
|
+
"referrer fees accrue on fills (mirrors the per-order",
|
|
21354
|
+
"`RevenueShareOrder.fees_accrued` writes) and decremented as",
|
|
21355
|
+
"`sweep_completed_revenue_share_for_market` pays them. The",
|
|
21356
|
+
"permissionless fee sweep reserves it (like `max(net_user_pnl, 0)` and",
|
|
21357
|
+
"the floored IF tranche) so a protocol-fee drain can't move the tokens",
|
|
21358
|
+
"backing already-owed revenue share out of the pnl pool and leave those",
|
|
21359
|
+
"claims temporarily unpayable. precision: QUOTE_PRECISION.",
|
|
21360
|
+
"",
|
|
21361
|
+
"Occupies the 8 bytes Rust naturally inserts to 16-align AMM's leading",
|
|
21362
|
+
"u128 (formerly explicit `_padding_align_amm`): a u64 at the same",
|
|
21363
|
+
"8-aligned offset keeps every downstream byte offset and the total size",
|
|
21364
|
+
"unchanged, so legacy accounts read 0 (nothing owed) until fees accrue."
|
|
21219
21365
|
];
|
|
21220
|
-
"type":
|
|
21221
|
-
"array": [
|
|
21222
|
-
"u8",
|
|
21223
|
-
8
|
|
21224
|
-
];
|
|
21225
|
-
};
|
|
21366
|
+
"type": "u64";
|
|
21226
21367
|
},
|
|
21227
21368
|
{
|
|
21228
21369
|
"name": "amm";
|
|
@@ -23004,15 +23145,44 @@ export type Velocity = {
|
|
|
23004
23145
|
{
|
|
23005
23146
|
"name": "paddingAlignPfp";
|
|
23006
23147
|
"docs": [
|
|
23007
|
-
"
|
|
23008
|
-
"
|
|
23148
|
+
"Explicit filler carved from the alignment gap before `protocol_fee_pool`",
|
|
23149
|
+
"(which must stay at struct offset 752 so host/SBF layouts agree and the",
|
|
23150
|
+
"borsh/IDL packed offset matches). The gap is 13 bytes; the three",
|
|
23151
|
+
"configurable-limit fields below plus this 1-byte filler fill it exactly,",
|
|
23152
|
+
"so `protocol_fee_pool` and every field after it keep their offsets and the",
|
|
23153
|
+
"account size is unchanged. Reads 0 on markets created before these fields",
|
|
23154
|
+
"existed. Every byte is explicit so no implicit `#[repr(C)]` pad desyncs",
|
|
23155
|
+
"off-chain borsh decoders. Do not reorder or resize."
|
|
23009
23156
|
];
|
|
23010
|
-
"type":
|
|
23011
|
-
|
|
23012
|
-
|
|
23013
|
-
|
|
23014
|
-
|
|
23015
|
-
|
|
23157
|
+
"type": "u8";
|
|
23158
|
+
},
|
|
23159
|
+
{
|
|
23160
|
+
"name": "withdrawCircuitBreakerBps";
|
|
23161
|
+
"docs": [
|
|
23162
|
+
"Daily withdraw circuit-breaker size: the max fraction of the 24h deposit",
|
|
23163
|
+
"TWAP that may be withdrawn per 24h window. `0` is treated as the default",
|
|
23164
|
+
"(2500 bps = 25%) so markets created before this field existed keep prior",
|
|
23165
|
+
"behavior. precision: basis points (10_000 = 100%)"
|
|
23166
|
+
];
|
|
23167
|
+
"type": "u16";
|
|
23168
|
+
},
|
|
23169
|
+
{
|
|
23170
|
+
"name": "maxDepositBpsPerDay";
|
|
23171
|
+
"docs": [
|
|
23172
|
+
"Daily deposit rate limit: the max fraction above the 24h deposit TWAP that",
|
|
23173
|
+
"resulting deposits may reach per 24h window. Disabled when `0`.",
|
|
23174
|
+
"precision: basis points (10_000 = 100%)"
|
|
23175
|
+
];
|
|
23176
|
+
"type": "u16";
|
|
23177
|
+
},
|
|
23178
|
+
{
|
|
23179
|
+
"name": "depositGuardThreshold";
|
|
23180
|
+
"docs": [
|
|
23181
|
+
"No deposit rate limit when resulting deposits are below this threshold.",
|
|
23182
|
+
"Mirrors `withdraw_guard_threshold` on the deposit side.",
|
|
23183
|
+
"precision: token mint precision"
|
|
23184
|
+
];
|
|
23185
|
+
"type": "u64";
|
|
23016
23186
|
},
|
|
23017
23187
|
{
|
|
23018
23188
|
"name": "protocolFeePool";
|
|
@@ -23048,13 +23218,33 @@ export type Velocity = {
|
|
|
23048
23218
|
"type": "u32";
|
|
23049
23219
|
},
|
|
23050
23220
|
{
|
|
23051
|
-
"name": "
|
|
23052
|
-
"
|
|
23053
|
-
"
|
|
23054
|
-
|
|
23055
|
-
|
|
23056
|
-
|
|
23057
|
-
|
|
23221
|
+
"name": "ifLastSettleVaultAmount";
|
|
23222
|
+
"docs": [
|
|
23223
|
+
"Donation-proof accounted balance of the insurance-fund vault. It is moved",
|
|
23224
|
+
"by the same signed delta as the real SPL vault on *every* instruction that",
|
|
23225
|
+
"moves the vault, so it stays a faithful shadow of the vault minus raw",
|
|
23226
|
+
"donations. Inflows grow it: staker deposits (`add_insurance_fund_stake`)",
|
|
23227
|
+
"and settled revenue (`settle_revenue_to_insurance_fund`). Outflows/draws",
|
|
23228
|
+
"shrink it (saturating at 0): staker withdrawals",
|
|
23229
|
+
"(`remove_insurance_fund_stake`) and every IF draw that covers a loss —",
|
|
23230
|
+
"`resolve_perp_pnl_deficit`, `resolve_perp_bankruptcy`,",
|
|
23231
|
+
"`resolve_spot_bankruptcy`. The one movement deliberately *excluded* is a",
|
|
23232
|
+
"raw SPL transfer straight into the vault: it runs no instruction, so it",
|
|
23233
|
+
"never enters this balance — that is exactly the donation the shadow must",
|
|
23234
|
+
"not see. Consumed by the per-period revenue-settle APR cap in",
|
|
23235
|
+
"`settle_revenue_to_insurance_fund`, sized off `min(live_if_vault, this)`,",
|
|
23236
|
+
"so a donation spiked into the live vault right before a settle cannot",
|
|
23237
|
+
"inflate the cap while legitimate stakes and real settled revenue (which",
|
|
23238
|
+
"this balance tracks) still do. (The unstake-cancel share forfeiture is",
|
|
23239
|
+
"donation-proofed differently — by withdraw-and-restake at the active share",
|
|
23240
|
+
"price — and does *not* read this field.) Repurposed from trailing padding —",
|
|
23241
|
+
"layout/size unchanged; `0` means \"uninitialized\" (existing account",
|
|
23242
|
+
"pre-upgrade, or an accounted balance legitimately drained to empty — an",
|
|
23243
|
+
"empty IF vault has no user shares, so this is safe), and is seeded from the",
|
|
23244
|
+
"live balance on the next add/settle and treated as \"fall back to live\" by",
|
|
23245
|
+
"the consumers."
|
|
23246
|
+
];
|
|
23247
|
+
"type": "u64";
|
|
23058
23248
|
}
|
|
23059
23249
|
];
|
|
23060
23250
|
};
|