perk-protocol 0.1.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/client.d.ts +110 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +690 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +59 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +71 -0
- package/dist/constants.js.map +1 -0
- package/dist/cranker.d.ts +71 -0
- package/dist/cranker.d.ts.map +1 -0
- package/dist/cranker.js +441 -0
- package/dist/cranker.js.map +1 -0
- package/dist/idl.json +3740 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +101 -0
- package/dist/index.js.map +1 -0
- package/dist/math.d.ts +60 -0
- package/dist/math.d.ts.map +1 -0
- package/dist/math.js +330 -0
- package/dist/math.js.map +1 -0
- package/dist/oracle-cranker.d.ts +72 -0
- package/dist/oracle-cranker.d.ts.map +1 -0
- package/dist/oracle-cranker.js +434 -0
- package/dist/oracle-cranker.js.map +1 -0
- package/dist/pda.d.ts +15 -0
- package/dist/pda.d.ts.map +1 -0
- package/dist/pda.js +45 -0
- package/dist/pda.js.map +1 -0
- package/dist/types.d.ts +252 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +28 -0
- package/dist/types.js.map +1 -0
- package/package.json +36 -0
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Connection, PublicKey, TransactionSignature, TransactionInstruction, Commitment } from "@solana/web3.js";
|
|
2
|
+
import { Program, AnchorProvider, BN, Wallet } from "@coral-xyz/anchor";
|
|
3
|
+
type AnyAccounts = Record<string, {
|
|
4
|
+
fetch: Function;
|
|
5
|
+
all: Function;
|
|
6
|
+
fetchNullable: Function;
|
|
7
|
+
}>;
|
|
8
|
+
import { Side, CreateMarketParams, AdminUpdateMarketParams, TriggerOrderParams, MarketAccount, UserPositionAccount, ProtocolAccount, TriggerOrderAccount, PerkOracleAccount, InitPerkOracleParams, UpdatePerkOracleParams, UpdateOracleConfigParams, SetFallbackOracleParams } from "./types";
|
|
9
|
+
export interface PerkClientConfig {
|
|
10
|
+
connection: Connection;
|
|
11
|
+
wallet: Wallet;
|
|
12
|
+
programId?: PublicKey;
|
|
13
|
+
commitment?: Commitment;
|
|
14
|
+
/** Instructions to prepend to every transaction (e.g., ComputeBudget priority fees). */
|
|
15
|
+
preInstructions?: TransactionInstruction[];
|
|
16
|
+
}
|
|
17
|
+
export declare class PerkClient {
|
|
18
|
+
readonly connection: Connection;
|
|
19
|
+
readonly wallet: Wallet;
|
|
20
|
+
readonly programId: PublicKey;
|
|
21
|
+
readonly program: Program;
|
|
22
|
+
readonly accounts: AnyAccounts;
|
|
23
|
+
readonly provider: AnchorProvider;
|
|
24
|
+
readonly preInstructions: TransactionInstruction[];
|
|
25
|
+
constructor(config: PerkClientConfig);
|
|
26
|
+
getProtocolAddress(): PublicKey;
|
|
27
|
+
getMarketAddress(tokenMint: PublicKey): PublicKey;
|
|
28
|
+
getPositionAddress(market: PublicKey, user: PublicKey): PublicKey;
|
|
29
|
+
getVaultAddress(market: PublicKey): PublicKey;
|
|
30
|
+
getTriggerOrderAddress(market: PublicKey, user: PublicKey, orderId: number | BN): PublicKey;
|
|
31
|
+
getPerkOracleAddress(tokenMint: PublicKey): PublicKey;
|
|
32
|
+
fetchProtocol(): Promise<ProtocolAccount>;
|
|
33
|
+
fetchMarket(tokenMint: PublicKey): Promise<MarketAccount>;
|
|
34
|
+
fetchMarketByAddress(address: PublicKey): Promise<MarketAccount>;
|
|
35
|
+
fetchAllMarkets(): Promise<{
|
|
36
|
+
address: PublicKey;
|
|
37
|
+
account: MarketAccount;
|
|
38
|
+
}[]>;
|
|
39
|
+
fetchPosition(market: PublicKey, user: PublicKey): Promise<UserPositionAccount>;
|
|
40
|
+
fetchPositionByAddress(address: PublicKey): Promise<UserPositionAccount>;
|
|
41
|
+
fetchAllPositions(user: PublicKey): Promise<{
|
|
42
|
+
address: PublicKey;
|
|
43
|
+
account: UserPositionAccount;
|
|
44
|
+
}[]>;
|
|
45
|
+
fetchTriggerOrder(address: PublicKey): Promise<TriggerOrderAccount>;
|
|
46
|
+
fetchTriggerOrders(market: PublicKey, user: PublicKey): Promise<{
|
|
47
|
+
address: PublicKey;
|
|
48
|
+
account: TriggerOrderAccount;
|
|
49
|
+
}[]>;
|
|
50
|
+
/** Fetch a PerkOracle account. */
|
|
51
|
+
fetchPerkOracle(tokenMint: PublicKey): Promise<PerkOracleAccount>;
|
|
52
|
+
/** Fetch a PerkOracle account, returning null if not found. */
|
|
53
|
+
fetchPerkOracleNullable(tokenMint: PublicKey): Promise<PerkOracleAccount | null>;
|
|
54
|
+
/** Initialize the protocol (admin only, once). */
|
|
55
|
+
initializeProtocol(protocolFeeVault: PublicKey): Promise<TransactionSignature>;
|
|
56
|
+
/** Propose a new admin (current admin only). */
|
|
57
|
+
proposeAdmin(newAdmin: PublicKey): Promise<TransactionSignature>;
|
|
58
|
+
/** Accept admin transfer (pending admin only). */
|
|
59
|
+
acceptAdmin(): Promise<TransactionSignature>;
|
|
60
|
+
/** Pause/unpause the protocol. */
|
|
61
|
+
adminPause(paused: boolean): Promise<TransactionSignature>;
|
|
62
|
+
/** Update market parameters (admin only). */
|
|
63
|
+
adminUpdateMarket(tokenMint: PublicKey, oracle: PublicKey | null, params: AdminUpdateMarketParams): Promise<TransactionSignature>;
|
|
64
|
+
/** Withdraw SOL from protocol PDA (admin only). */
|
|
65
|
+
adminWithdrawSol(amount: BN): Promise<TransactionSignature>;
|
|
66
|
+
/** Create a new perpetual futures market. */
|
|
67
|
+
createMarket(tokenMint: PublicKey, oracle: PublicKey, params: CreateMarketParams): Promise<TransactionSignature>;
|
|
68
|
+
/** Initialize a position account for a user on a market. */
|
|
69
|
+
initializePosition(tokenMint: PublicKey): Promise<TransactionSignature>;
|
|
70
|
+
/** Deposit collateral into a position. */
|
|
71
|
+
deposit(tokenMint: PublicKey, oracle: PublicKey, amount: BN, fallbackOracle?: PublicKey): Promise<TransactionSignature>;
|
|
72
|
+
/** Withdraw collateral from a position. */
|
|
73
|
+
withdraw(tokenMint: PublicKey, oracle: PublicKey, amount: BN, fallbackOracle?: PublicKey): Promise<TransactionSignature>;
|
|
74
|
+
/** Open a leveraged position. */
|
|
75
|
+
openPosition(tokenMint: PublicKey, oracle: PublicKey, side: Side, baseSize: BN, leverage: number, maxSlippageBps?: number, fallbackOracle?: PublicKey): Promise<TransactionSignature>;
|
|
76
|
+
/** Close a position (full or partial). */
|
|
77
|
+
closePosition(tokenMint: PublicKey, oracle: PublicKey, baseSizeToClose?: BN, fallbackOracle?: PublicKey): Promise<TransactionSignature>;
|
|
78
|
+
/** Place a trigger order (limit, stop-loss, take-profit). */
|
|
79
|
+
placeTriggerOrder(tokenMint: PublicKey, params: TriggerOrderParams): Promise<TransactionSignature>;
|
|
80
|
+
/** Cancel a trigger order. */
|
|
81
|
+
cancelTriggerOrder(tokenMint: PublicKey, orderId: number | BN): Promise<TransactionSignature>;
|
|
82
|
+
/** Claim accumulated fees (creator or protocol). */
|
|
83
|
+
claimFees(tokenMint: PublicKey, recipientTokenAccount: PublicKey): Promise<TransactionSignature>;
|
|
84
|
+
/** Crank funding rate update. */
|
|
85
|
+
crankFunding(marketAddress: PublicKey, oracle: PublicKey, fallbackOracle?: PublicKey): Promise<TransactionSignature>;
|
|
86
|
+
/** Liquidate an underwater position. */
|
|
87
|
+
liquidate(marketAddress: PublicKey, oracle: PublicKey, targetUser: PublicKey, liquidatorTokenAccount: PublicKey, fallbackOracle?: PublicKey): Promise<TransactionSignature>;
|
|
88
|
+
/** Execute a trigger order that has been triggered. */
|
|
89
|
+
executeTriggerOrder(marketAddress: PublicKey, oracle: PublicKey, targetUser: PublicKey, orderId: number | BN, executorTokenAccount: PublicKey, fallbackOracle?: PublicKey): Promise<TransactionSignature>;
|
|
90
|
+
/** Update the vAMM peg multiplier (permissionless). */
|
|
91
|
+
updateAmm(marketAddress: PublicKey, oracle: PublicKey, fallbackOracle?: PublicKey): Promise<TransactionSignature>;
|
|
92
|
+
/** Reclaim an empty/abandoned position account (permissionless). */
|
|
93
|
+
reclaimEmptyAccount(marketAddress: PublicKey, oracle: PublicKey, positionOwner: PublicKey, fallbackOracle?: PublicKey): Promise<TransactionSignature>;
|
|
94
|
+
/** Initialize a PerkOracle price feed. Admin only. */
|
|
95
|
+
initializePerkOracle(tokenMint: PublicKey, oracleAuthority: PublicKey, params: InitPerkOracleParams): Promise<TransactionSignature>;
|
|
96
|
+
/** Update a PerkOracle price feed. Authorized cranker only. */
|
|
97
|
+
updatePerkOracle(tokenMint: PublicKey, params: UpdatePerkOracleParams): Promise<TransactionSignature>;
|
|
98
|
+
/** Build updatePerkOracle instructions without sending. Used for Jito bundle submission. */
|
|
99
|
+
buildUpdatePerkOracleIx(tokenMint: PublicKey, params: UpdatePerkOracleParams): Promise<TransactionInstruction[]>;
|
|
100
|
+
/** Freeze or unfreeze a PerkOracle. Admin only. */
|
|
101
|
+
freezePerkOracle(tokenMint: PublicKey, frozen: boolean): Promise<TransactionSignature>;
|
|
102
|
+
/** Transfer PerkOracle authority. Current authority or admin. */
|
|
103
|
+
transferOracleAuthority(tokenMint: PublicKey, newAuthority: PublicKey): Promise<TransactionSignature>;
|
|
104
|
+
/** Update PerkOracle config (price banding). Admin only. */
|
|
105
|
+
updateOracleConfig(tokenMint: PublicKey, params: UpdateOracleConfigParams): Promise<TransactionSignature>;
|
|
106
|
+
/** Set or remove fallback oracle on a market. Admin only. */
|
|
107
|
+
adminSetFallbackOracle(tokenMint: PublicKey, params: SetFallbackOracleParams): Promise<TransactionSignature>;
|
|
108
|
+
}
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAGT,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACX,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAE,OAAO,EAAE,cAAc,EAAO,EAAE,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAM7E,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,aAAa,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAS/F,OAAO,EACL,IAAI,EAEJ,kBAAkB,EAClB,uBAAuB,EAEvB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAqBjB,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,wFAAwF;IACxF,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAC5C;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,EAAE,CAAC;gBAEvC,MAAM,EAAE,gBAAgB;IAkBpC,kBAAkB,IAAI,SAAS;IAI/B,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS;IAIjD,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS;IAIjE,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS;IAI7C,sBAAsB,CACpB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,GAAG,EAAE,GACnB,SAAS;IAIZ,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS;IAQ/C,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;IAOzC,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAOzD,oBAAoB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAMhE,eAAe,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,EAAE,CAAC;IAQ5E,aAAa,CACjB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,mBAAmB,CAAC;IAOzB,sBAAsB,CAC1B,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,mBAAmB,CAAC;IAMzB,iBAAiB,CACrB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,mBAAmB,CAAA;KAAE,EAAE,CAAC;IAU5D,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMnE,kBAAkB,CACtB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,mBAAmB,CAAA;KAAE,EAAE,CAAC;IAYlE,kCAAkC;IAC5B,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKvE,+DAA+D;IACzD,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAStF,kDAAkD;IAC5C,kBAAkB,CACtB,gBAAgB,EAAE,SAAS,GAC1B,OAAO,CAAC,oBAAoB,CAAC;IAahC,gDAAgD;IAC1C,YAAY,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAWtE,kDAAkD;IAC5C,WAAW,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAWlD,kCAAkC;IAC5B,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAWhE,6CAA6C;IACvC,iBAAiB,CACrB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,GAAG,IAAI,EACxB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAchC,mDAAmD;IAC7C,gBAAgB,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgBjE,6CAA6C;IACvC,YAAY,CAChB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IA8BhC,4DAA4D;IACtD,kBAAkB,CACtB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAiBhC,0CAA0C;IACpC,OAAO,CACX,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,EAAE,EACV,cAAc,CAAC,EAAE,SAAS,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAwBhC,2CAA2C;IACrC,QAAQ,CACZ,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,EAAE,EACV,cAAc,CAAC,EAAE,SAAS,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAwBhC,iCAAiC;IAC3B,YAAY,CAChB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,MAAM,EAChB,cAAc,GAAE,MAAY,EAC5B,cAAc,CAAC,EAAE,SAAS,GACzB,OAAO,CAAC,oBAAoB,CAAC;IA4BhC,0CAA0C;IACpC,aAAa,CACjB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,eAAe,CAAC,EAAE,EAAE,EACpB,cAAc,CAAC,EAAE,SAAS,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAuBhC,6DAA6D;IACvD,iBAAiB,CACrB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAkChC,8BAA8B;IACxB,kBAAkB,CACtB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,GAAG,EAAE,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAyBhC,oDAAoD;IAC9C,SAAS,CACb,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,SAAS,GAC/B,OAAO,CAAC,oBAAoB,CAAC;IAsBhC,iCAAiC;IAC3B,YAAY,CAChB,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,SAAS,EACjB,cAAc,CAAC,EAAE,SAAS,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAYhC,wCAAwC;IAClC,SAAS,CACb,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,EACrB,sBAAsB,EAAE,SAAS,EACjC,cAAc,CAAC,EAAE,SAAS,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAsBhC,uDAAuD;IACjD,mBAAmB,CACvB,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,EACrB,OAAO,EAAE,MAAM,GAAG,EAAE,EACpB,oBAAoB,EAAE,SAAS,EAC/B,cAAc,CAAC,EAAE,SAAS,GACzB,OAAO,CAAC,oBAAoB,CAAC;IA2BhC,uDAAuD;IACjD,SAAS,CACb,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,SAAS,EACjB,cAAc,CAAC,EAAE,SAAS,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAYhC,oEAAoE;IAC9D,mBAAmB,CACvB,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,SAAS,EACxB,cAAc,CAAC,EAAE,SAAS,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAqBhC,sDAAsD;IAChD,oBAAoB,CACxB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,SAAS,EAC1B,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC;IA2DhC,+DAA+D;IACzD,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,oBAAoB,CAAC;IAgBhC,4FAA4F;IACtF,uBAAuB,CAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAkBpC,mDAAmD;IAC7C,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,oBAAoB,CAAC;IAchC,iEAAiE;IAC3D,uBAAuB,CAC3B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,SAAS,GACtB,OAAO,CAAC,oBAAoB,CAAC;IAehC,4DAA4D;IACtD,kBAAkB,CACtB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,oBAAoB,CAAC;IA2DhC,6DAA6D;IACvD,sBAAsB,CAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;CA0BjC"}
|