@epicentral/sos-sdk 0.9.0-beta
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/.env.example +1 -0
- package/AGENTS.md +7 -0
- package/LICENSE +21 -0
- package/README.md +568 -0
- package/accounts/fetchers.ts +196 -0
- package/accounts/list.ts +184 -0
- package/accounts/pdas.ts +325 -0
- package/accounts/resolve-option.ts +104 -0
- package/client/lookup-table.ts +114 -0
- package/client/program.ts +13 -0
- package/client/types.ts +9 -0
- package/generated/accounts/collateralPool.ts +217 -0
- package/generated/accounts/config.ts +156 -0
- package/generated/accounts/escrowState.ts +183 -0
- package/generated/accounts/index.ts +20 -0
- package/generated/accounts/lenderPosition.ts +211 -0
- package/generated/accounts/makerCollateralShare.ts +229 -0
- package/generated/accounts/marketDataAccount.ts +176 -0
- package/generated/accounts/optionAccount.ts +247 -0
- package/generated/accounts/optionPool.ts +285 -0
- package/generated/accounts/poolLoan.ts +232 -0
- package/generated/accounts/positionAccount.ts +201 -0
- package/generated/accounts/vault.ts +366 -0
- package/generated/accounts/writerPosition.ts +327 -0
- package/generated/errors/index.ts +9 -0
- package/generated/errors/optionProgram.ts +476 -0
- package/generated/index.ts +13 -0
- package/generated/instructions/acceptAdmin.ts +230 -0
- package/generated/instructions/autoExerciseAllExpired.ts +685 -0
- package/generated/instructions/autoExerciseExpired.ts +754 -0
- package/generated/instructions/borrowFromPool.ts +619 -0
- package/generated/instructions/buyFromPool.ts +761 -0
- package/generated/instructions/closeLongToPool.ts +762 -0
- package/generated/instructions/closeOption.ts +235 -0
- package/generated/instructions/createEscrowV2.ts +518 -0
- package/generated/instructions/depositCollateral.ts +624 -0
- package/generated/instructions/depositToPosition.ts +429 -0
- package/generated/instructions/index.ts +47 -0
- package/generated/instructions/initCollateralPool.ts +513 -0
- package/generated/instructions/initConfig.ts +279 -0
- package/generated/instructions/initOptionPool.ts +587 -0
- package/generated/instructions/initializeMarketData.ts +359 -0
- package/generated/instructions/liquidateWriterPosition.ts +750 -0
- package/generated/instructions/liquidateWriterPositionRescue.ts +623 -0
- package/generated/instructions/omlpCreateVault.ts +553 -0
- package/generated/instructions/omlpUpdateFeeWallet.ts +473 -0
- package/generated/instructions/omlpUpdateInterestModel.ts +322 -0
- package/generated/instructions/omlpUpdateLiquidationThreshold.ts +304 -0
- package/generated/instructions/omlpUpdateMaintenanceBuffer.ts +304 -0
- package/generated/instructions/omlpUpdateMaxBorrowCap.ts +304 -0
- package/generated/instructions/omlpUpdateMaxLeverage.ts +304 -0
- package/generated/instructions/omlpUpdateProtocolFee.ts +304 -0
- package/generated/instructions/omlpUpdateSupplyLimit.ts +304 -0
- package/generated/instructions/optionExercise.ts +617 -0
- package/generated/instructions/optionMint.ts +1373 -0
- package/generated/instructions/optionValidate.ts +302 -0
- package/generated/instructions/repayPoolLoan.ts +558 -0
- package/generated/instructions/repayPoolLoanFromCollateral.ts +514 -0
- package/generated/instructions/repayPoolLoanFromWallet.ts +542 -0
- package/generated/instructions/settleMakerCollateral.ts +509 -0
- package/generated/instructions/syncWriterPosition.ts +206 -0
- package/generated/instructions/transferAdmin.ts +245 -0
- package/generated/instructions/unwindWriterUnsold.ts +764 -0
- package/generated/instructions/updateImpliedVolatility.ts +226 -0
- package/generated/instructions/updateMarketData.ts +315 -0
- package/generated/instructions/withdrawFromPosition.ts +405 -0
- package/generated/instructions/writeToPool.ts +619 -0
- package/generated/programs/index.ts +9 -0
- package/generated/programs/optionProgram.ts +1144 -0
- package/generated/shared/index.ts +164 -0
- package/generated/types/impliedVolatilityUpdated.ts +73 -0
- package/generated/types/index.ts +28 -0
- package/generated/types/liquidationExecuted.ts +73 -0
- package/generated/types/liquidationRescueEvent.ts +82 -0
- package/generated/types/marketDataInitialized.ts +61 -0
- package/generated/types/marketDataUpdated.ts +69 -0
- package/generated/types/optionClosed.ts +56 -0
- package/generated/types/optionExercised.ts +62 -0
- package/generated/types/optionExpired.ts +49 -0
- package/generated/types/optionMinted.ts +78 -0
- package/generated/types/optionType.ts +38 -0
- package/generated/types/optionValidated.ts +82 -0
- package/generated/types/poolLoanCreated.ts +74 -0
- package/generated/types/poolLoanRepaid.ts +74 -0
- package/generated/types/positionDeposited.ts +73 -0
- package/generated/types/positionWithdrawn.ts +81 -0
- package/generated/types/protocolFeeUpdated.ts +69 -0
- package/generated/types/vaultCreated.ts +60 -0
- package/generated/types/vaultFeeWalletUpdated.ts +67 -0
- package/generated/types/vaultInterestModelUpdated.ts +77 -0
- package/generated/types/vaultLiquidationThresholdUpdated.ts +69 -0
- package/index.ts +68 -0
- package/long/builders.ts +690 -0
- package/long/exercise.ts +123 -0
- package/long/preflight.ts +214 -0
- package/long/quotes.ts +48 -0
- package/long/remaining-accounts.ts +111 -0
- package/omlp/builders.ts +94 -0
- package/omlp/service.ts +136 -0
- package/oracle/switchboard.ts +315 -0
- package/package.json +34 -0
- package/shared/amounts.ts +53 -0
- package/shared/balances.ts +57 -0
- package/shared/errors.ts +12 -0
- package/shared/remaining-accounts.ts +41 -0
- package/shared/trade-config.ts +27 -0
- package/shared/transactions.ts +121 -0
- package/short/builders.ts +874 -0
- package/short/close-option.ts +34 -0
- package/short/pool.ts +189 -0
- package/short/preflight.ts +619 -0
- package/tsconfig.json +13 -0
- package/wsol/instructions.ts +247 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { getCloseOptionInstruction } from "../generated/instructions";
|
|
2
|
+
import type { Instruction } from "@solana/kit";
|
|
3
|
+
import { toAddress } from "../client/program";
|
|
4
|
+
import type { AddressLike, BuiltTransaction } from "../client/types";
|
|
5
|
+
|
|
6
|
+
export interface BuildCloseOptionParams {
|
|
7
|
+
optionAccount: AddressLike;
|
|
8
|
+
optionMint: AddressLike;
|
|
9
|
+
makerOptionAccount: AddressLike;
|
|
10
|
+
maker: AddressLike;
|
|
11
|
+
tokenProgram?: AddressLike;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function buildCloseOptionInstruction(
|
|
15
|
+
params: BuildCloseOptionParams
|
|
16
|
+
): Instruction<string> {
|
|
17
|
+
return getCloseOptionInstruction({
|
|
18
|
+
optionAccount: toAddress(params.optionAccount),
|
|
19
|
+
optionMint: toAddress(params.optionMint),
|
|
20
|
+
makerOptionAccount: toAddress(params.makerOptionAccount),
|
|
21
|
+
maker: toAddress(params.maker) as any,
|
|
22
|
+
tokenProgram: params.tokenProgram ? toAddress(params.tokenProgram) : undefined,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Builds the close-option transaction instruction set for a maker.
|
|
28
|
+
*/
|
|
29
|
+
export function buildCloseOptionTransaction(
|
|
30
|
+
params: BuildCloseOptionParams
|
|
31
|
+
): BuiltTransaction {
|
|
32
|
+
const instruction = buildCloseOptionInstruction(params);
|
|
33
|
+
return { instructions: [instruction] };
|
|
34
|
+
}
|
package/short/pool.ts
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getBorrowFromPoolInstructionAsync,
|
|
3
|
+
getRepayPoolLoanInstructionAsync,
|
|
4
|
+
getRepayPoolLoanFromCollateralInstructionAsync,
|
|
5
|
+
getRepayPoolLoanFromWalletInstructionAsync,
|
|
6
|
+
} from "../generated/instructions";
|
|
7
|
+
import type { Instruction } from "@solana/kit";
|
|
8
|
+
import { toAddress } from "../client/program";
|
|
9
|
+
import type { AddressLike, BuiltTransaction } from "../client/types";
|
|
10
|
+
import { assertNonNegativeAmount, assertPositiveAmount } from "../shared/amounts";
|
|
11
|
+
|
|
12
|
+
export interface BuildBorrowFromPoolParams {
|
|
13
|
+
vault: AddressLike;
|
|
14
|
+
vaultTokenAccount: AddressLike;
|
|
15
|
+
escrowTokenAccount: AddressLike;
|
|
16
|
+
collateralMint: AddressLike;
|
|
17
|
+
/** Option pool PDA for the market (links the writer position). */
|
|
18
|
+
optionPool: AddressLike;
|
|
19
|
+
/** Writer position PDA: `["writer_position", optionPool, maker]`. */
|
|
20
|
+
writerPosition: AddressLike;
|
|
21
|
+
maker: AddressLike;
|
|
22
|
+
nonce: bigint | number;
|
|
23
|
+
borrowAmount: bigint | number;
|
|
24
|
+
collateralAmount: bigint | number;
|
|
25
|
+
poolLoan?: AddressLike;
|
|
26
|
+
escrowState?: AddressLike;
|
|
27
|
+
escrowAuthority?: AddressLike;
|
|
28
|
+
tokenProgram?: AddressLike;
|
|
29
|
+
systemProgram?: AddressLike;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface BuildRepayPoolLoanParams {
|
|
33
|
+
poolLoan: AddressLike;
|
|
34
|
+
vault: AddressLike;
|
|
35
|
+
vaultTokenAccount: AddressLike;
|
|
36
|
+
escrowState: AddressLike;
|
|
37
|
+
escrowTokenAccount: AddressLike;
|
|
38
|
+
makerTokenAccount: AddressLike;
|
|
39
|
+
feeWalletTokenAccount: AddressLike;
|
|
40
|
+
optionPool: AddressLike;
|
|
41
|
+
writerPosition: AddressLike;
|
|
42
|
+
maker: AddressLike;
|
|
43
|
+
escrowAuthority?: AddressLike;
|
|
44
|
+
tokenProgram?: AddressLike;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface BuildRepayPoolLoanFromCollateralParams {
|
|
48
|
+
poolLoan: AddressLike;
|
|
49
|
+
vault: AddressLike;
|
|
50
|
+
vaultTokenAccount: AddressLike;
|
|
51
|
+
optionAccount: AddressLike;
|
|
52
|
+
optionPool: AddressLike;
|
|
53
|
+
collateralVault: AddressLike;
|
|
54
|
+
writerPosition: AddressLike;
|
|
55
|
+
feeWalletTokenAccount: AddressLike;
|
|
56
|
+
maker: AddressLike;
|
|
57
|
+
collateralPool?: AddressLike;
|
|
58
|
+
tokenProgram?: AddressLike;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export async function buildBorrowFromPoolInstruction(
|
|
62
|
+
params: BuildBorrowFromPoolParams
|
|
63
|
+
): Promise<Instruction<string>> {
|
|
64
|
+
assertNonNegativeAmount(params.nonce, "nonce");
|
|
65
|
+
assertPositiveAmount(params.borrowAmount, "borrowAmount");
|
|
66
|
+
assertPositiveAmount(params.collateralAmount, "collateralAmount");
|
|
67
|
+
|
|
68
|
+
return getBorrowFromPoolInstructionAsync({
|
|
69
|
+
poolLoan: params.poolLoan ? toAddress(params.poolLoan) : undefined,
|
|
70
|
+
vault: toAddress(params.vault),
|
|
71
|
+
vaultTokenAccount: toAddress(params.vaultTokenAccount),
|
|
72
|
+
escrowState: params.escrowState ? toAddress(params.escrowState) : undefined,
|
|
73
|
+
escrowAuthority: params.escrowAuthority ? toAddress(params.escrowAuthority) : undefined,
|
|
74
|
+
escrowTokenAccount: toAddress(params.escrowTokenAccount),
|
|
75
|
+
collateralMint: toAddress(params.collateralMint),
|
|
76
|
+
optionPool: toAddress(params.optionPool),
|
|
77
|
+
writerPosition: toAddress(params.writerPosition),
|
|
78
|
+
maker: toAddress(params.maker) as any,
|
|
79
|
+
tokenProgram: params.tokenProgram ? toAddress(params.tokenProgram) : undefined,
|
|
80
|
+
systemProgram: params.systemProgram ? toAddress(params.systemProgram) : undefined,
|
|
81
|
+
nonce: params.nonce,
|
|
82
|
+
borrowAmount: params.borrowAmount,
|
|
83
|
+
collateralAmount: params.collateralAmount,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Builds the borrow transaction instruction set for pool leverage.
|
|
89
|
+
*/
|
|
90
|
+
export async function buildBorrowFromPoolTransaction(
|
|
91
|
+
params: BuildBorrowFromPoolParams
|
|
92
|
+
): Promise<BuiltTransaction> {
|
|
93
|
+
const instruction = await buildBorrowFromPoolInstruction(params);
|
|
94
|
+
return { instructions: [instruction] };
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export async function buildRepayPoolLoanInstruction(
|
|
98
|
+
params: BuildRepayPoolLoanParams
|
|
99
|
+
): Promise<Instruction<string>> {
|
|
100
|
+
return getRepayPoolLoanInstructionAsync({
|
|
101
|
+
poolLoan: toAddress(params.poolLoan),
|
|
102
|
+
vault: toAddress(params.vault),
|
|
103
|
+
vaultTokenAccount: toAddress(params.vaultTokenAccount),
|
|
104
|
+
escrowState: toAddress(params.escrowState),
|
|
105
|
+
escrowAuthority: params.escrowAuthority
|
|
106
|
+
? toAddress(params.escrowAuthority)
|
|
107
|
+
: undefined,
|
|
108
|
+
escrowTokenAccount: toAddress(params.escrowTokenAccount),
|
|
109
|
+
makerTokenAccount: toAddress(params.makerTokenAccount),
|
|
110
|
+
feeWalletTokenAccount: toAddress(params.feeWalletTokenAccount),
|
|
111
|
+
optionPool: toAddress(params.optionPool),
|
|
112
|
+
writerPosition: toAddress(params.writerPosition),
|
|
113
|
+
maker: toAddress(params.maker) as any,
|
|
114
|
+
tokenProgram: params.tokenProgram ? toAddress(params.tokenProgram) : undefined,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Builds the repay loan instruction set.
|
|
120
|
+
*/
|
|
121
|
+
export async function buildRepayPoolLoanTransaction(
|
|
122
|
+
params: BuildRepayPoolLoanParams
|
|
123
|
+
): Promise<BuiltTransaction> {
|
|
124
|
+
const instruction = await buildRepayPoolLoanInstruction(params);
|
|
125
|
+
return { instructions: [instruction] };
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Repay a pool loan entirely from maker's wallet (no escrow used).
|
|
130
|
+
* Use when standard repay fails with InsufficientEscrowBalance (stuck loan).
|
|
131
|
+
*/
|
|
132
|
+
export async function buildRepayPoolLoanFromWalletInstruction(
|
|
133
|
+
params: BuildRepayPoolLoanParams
|
|
134
|
+
): Promise<Instruction<string>> {
|
|
135
|
+
return getRepayPoolLoanFromWalletInstructionAsync({
|
|
136
|
+
poolLoan: toAddress(params.poolLoan),
|
|
137
|
+
vault: toAddress(params.vault),
|
|
138
|
+
vaultTokenAccount: toAddress(params.vaultTokenAccount),
|
|
139
|
+
escrowState: toAddress(params.escrowState),
|
|
140
|
+
escrowAuthority: params.escrowAuthority
|
|
141
|
+
? toAddress(params.escrowAuthority)
|
|
142
|
+
: undefined,
|
|
143
|
+
escrowTokenAccount: toAddress(params.escrowTokenAccount),
|
|
144
|
+
makerTokenAccount: toAddress(params.makerTokenAccount),
|
|
145
|
+
feeWalletTokenAccount: toAddress(params.feeWalletTokenAccount),
|
|
146
|
+
optionPool: toAddress(params.optionPool),
|
|
147
|
+
writerPosition: toAddress(params.writerPosition),
|
|
148
|
+
maker: toAddress(params.maker) as any,
|
|
149
|
+
tokenProgram: params.tokenProgram ? toAddress(params.tokenProgram) : undefined,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Builds the repay-from-wallet transaction (stuck loan recovery).
|
|
155
|
+
*/
|
|
156
|
+
export async function buildRepayPoolLoanFromWalletTransaction(
|
|
157
|
+
params: BuildRepayPoolLoanParams
|
|
158
|
+
): Promise<BuiltTransaction> {
|
|
159
|
+
const instruction = await buildRepayPoolLoanFromWalletInstruction(params);
|
|
160
|
+
return { instructions: [instruction] };
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export async function buildRepayPoolLoanFromCollateralInstruction(
|
|
164
|
+
params: BuildRepayPoolLoanFromCollateralParams
|
|
165
|
+
): Promise<Instruction<string>> {
|
|
166
|
+
return getRepayPoolLoanFromCollateralInstructionAsync({
|
|
167
|
+
poolLoan: toAddress(params.poolLoan),
|
|
168
|
+
vault: toAddress(params.vault),
|
|
169
|
+
vaultTokenAccount: toAddress(params.vaultTokenAccount),
|
|
170
|
+
optionAccount: toAddress(params.optionAccount),
|
|
171
|
+
optionPool: toAddress(params.optionPool),
|
|
172
|
+
collateralPool: params.collateralPool ? toAddress(params.collateralPool) : undefined,
|
|
173
|
+
collateralVault: toAddress(params.collateralVault),
|
|
174
|
+
writerPosition: toAddress(params.writerPosition),
|
|
175
|
+
feeWalletTokenAccount: toAddress(params.feeWalletTokenAccount),
|
|
176
|
+
maker: toAddress(params.maker) as any,
|
|
177
|
+
tokenProgram: params.tokenProgram ? toAddress(params.tokenProgram) : undefined,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Builds the repay-from-collateral instruction set.
|
|
183
|
+
*/
|
|
184
|
+
export async function buildRepayPoolLoanFromCollateralTransaction(
|
|
185
|
+
params: BuildRepayPoolLoanFromCollateralParams
|
|
186
|
+
): Promise<BuiltTransaction> {
|
|
187
|
+
const instruction = await buildRepayPoolLoanFromCollateralInstruction(params);
|
|
188
|
+
return { instructions: [instruction] };
|
|
189
|
+
}
|