@drift-labs/sdk 0.1.36-master.7 → 0.2.0-master.2
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/accounts/bulkAccountLoader.d.ts +6 -6
- package/lib/accounts/bulkAccountLoader.js +81 -95
- package/lib/accounts/bulkUserSubscription.js +13 -57
- package/lib/accounts/fetch.d.ts +4 -0
- package/lib/accounts/fetch.js +18 -0
- package/lib/accounts/pollingClearingHouseAccountSubscriber.d.ts +34 -38
- package/lib/accounts/pollingClearingHouseAccountSubscriber.js +224 -224
- package/lib/accounts/pollingOracleSubscriber.d.ts +3 -3
- package/lib/accounts/pollingOracleSubscriber.js +37 -49
- package/lib/accounts/pollingTokenAccountSubscriber.d.ts +3 -3
- package/lib/accounts/pollingTokenAccountSubscriber.js +35 -50
- package/lib/accounts/pollingUserAccountSubscriber.d.ts +7 -13
- package/lib/accounts/pollingUserAccountSubscriber.js +71 -134
- package/lib/accounts/types.d.ts +34 -41
- package/lib/accounts/webSocketAccountSubscriber.d.ts +6 -4
- package/lib/accounts/webSocketAccountSubscriber.js +39 -35
- package/lib/accounts/webSocketClearingHouseAccountSubscriber.d.ts +33 -28
- package/lib/accounts/webSocketClearingHouseAccountSubscriber.js +153 -185
- package/lib/accounts/webSocketUserAccountSubscriber.d.ts +5 -11
- package/lib/accounts/webSocketUserAccountSubscriber.js +22 -67
- package/lib/addresses/marketAddresses.d.ts +4 -0
- package/lib/addresses/marketAddresses.js +15 -0
- package/lib/addresses/pda.d.ts +12 -0
- package/lib/addresses/pda.js +83 -0
- package/lib/admin.d.ts +9 -17
- package/lib/admin.js +375 -558
- package/lib/clearingHouse.d.ts +86 -109
- package/lib/clearingHouse.js +828 -895
- package/lib/clearingHouseConfig.d.ts +34 -0
- package/lib/clearingHouseConfig.js +2 -0
- package/lib/clearingHouseUser.d.ts +19 -22
- package/lib/clearingHouseUser.js +155 -141
- package/lib/clearingHouseUserConfig.d.ts +14 -0
- package/lib/clearingHouseUserConfig.js +2 -0
- package/lib/config.d.ts +12 -0
- package/lib/config.js +35 -4
- package/lib/constants/banks.d.ts +16 -0
- package/lib/constants/banks.js +34 -0
- package/lib/constants/markets.d.ts +8 -3
- package/lib/constants/markets.js +13 -206
- package/lib/constants/numericConstants.d.ts +17 -0
- package/lib/constants/numericConstants.js +23 -6
- package/lib/events/eventList.d.ts +22 -0
- package/lib/events/eventList.js +77 -0
- package/lib/events/eventSubscriber.d.ts +34 -0
- package/lib/events/eventSubscriber.js +126 -0
- package/lib/events/fetchLogs.d.ts +13 -0
- package/lib/events/fetchLogs.js +39 -0
- package/lib/events/pollingLogProvider.d.ts +15 -0
- package/lib/events/pollingLogProvider.js +53 -0
- package/lib/events/sort.d.ts +2 -0
- package/lib/events/sort.js +44 -0
- package/lib/events/txEventCache.d.ts +24 -0
- package/lib/events/txEventCache.js +71 -0
- package/lib/events/types.d.ts +49 -0
- package/lib/events/types.js +20 -0
- package/lib/events/webSocketLogProvider.d.ts +12 -0
- package/lib/events/webSocketLogProvider.js +30 -0
- package/lib/examples/makeTradeExample.js +26 -27
- package/lib/factory/bigNum.d.ts +118 -0
- package/lib/factory/bigNum.js +364 -0
- package/lib/factory/oracleClient.d.ts +1 -2
- package/lib/factory/oracleClient.js +6 -2
- package/lib/idl/clearing_house.json +2287 -2938
- package/lib/index.d.ts +12 -4
- package/lib/index.js +12 -4
- package/lib/math/amm.d.ts +24 -29
- package/lib/math/amm.js +239 -178
- package/lib/math/auction.d.ts +5 -0
- package/lib/math/auction.js +39 -0
- package/lib/math/bankBalance.d.ts +9 -0
- package/lib/math/bankBalance.js +75 -0
- package/lib/math/conversion.d.ts +0 -1
- package/lib/math/conversion.js +1 -5
- package/lib/math/funding.d.ts +6 -6
- package/lib/math/funding.js +158 -175
- package/lib/math/market.d.ts +6 -6
- package/lib/math/market.js +10 -9
- package/lib/math/orders.d.ts +5 -0
- package/lib/math/orders.js +31 -1
- package/lib/math/position.d.ts +7 -5
- package/lib/math/position.js +27 -27
- package/lib/math/repeg.d.ts +22 -0
- package/lib/math/repeg.js +128 -0
- package/lib/math/trade.d.ts +5 -4
- package/lib/math/trade.js +29 -21
- package/lib/mockUSDCFaucet.js +87 -116
- package/lib/oracles/oracleClientCache.d.ts +8 -0
- package/lib/oracles/oracleClientCache.js +19 -0
- package/lib/oracles/pythClient.d.ts +3 -5
- package/lib/oracles/pythClient.js +12 -31
- package/lib/oracles/quoteAssetOracleClient.d.ts +9 -0
- package/lib/oracles/quoteAssetOracleClient.js +21 -0
- package/lib/oracles/switchboardClient.d.ts +3 -5
- package/lib/oracles/switchboardClient.js +29 -50
- package/lib/oracles/types.d.ts +6 -1
- package/lib/orders.d.ts +6 -7
- package/lib/orders.js +10 -80
- package/lib/slot/SlotSubscriber.d.ts +12 -0
- package/lib/slot/SlotSubscriber.js +23 -0
- package/lib/tx/retryTxSender.d.ts +2 -2
- package/lib/tx/retryTxSender.js +108 -123
- package/lib/tx/types.d.ts +5 -1
- package/lib/tx/utils.d.ts +1 -1
- package/lib/tx/utils.js +11 -2
- package/lib/types.d.ts +110 -109
- package/lib/types.js +14 -1
- package/lib/userName.d.ts +4 -0
- package/lib/userName.js +20 -0
- package/lib/util/computeUnits.js +10 -21
- package/lib/util/tps.js +11 -22
- package/lib/wallet.js +7 -20
- package/package.json +11 -4
- package/src/accounts/bulkAccountLoader.ts +21 -15
- package/src/accounts/bulkUserSubscription.ts +1 -45
- package/src/accounts/fetch.ts +33 -0
- package/src/accounts/pollingClearingHouseAccountSubscriber.ts +249 -214
- package/src/accounts/pollingOracleSubscriber.ts +16 -8
- package/src/accounts/pollingTokenAccountSubscriber.ts +11 -8
- package/src/accounts/pollingUserAccountSubscriber.ts +21 -86
- package/src/accounts/types.ts +41 -70
- package/src/accounts/webSocketAccountSubscriber.ts +33 -16
- package/src/accounts/webSocketClearingHouseAccountSubscriber.ts +190 -240
- package/src/accounts/webSocketUserAccountSubscriber.ts +11 -71
- package/src/addresses/marketAddresses.ts +18 -0
- package/src/addresses/pda.ts +118 -0
- package/src/admin.ts +218 -346
- package/src/clearingHouse.ts +983 -952
- package/src/clearingHouseConfig.ts +37 -0
- package/src/clearingHouseUser.ts +275 -185
- package/src/clearingHouseUserConfig.ts +18 -0
- package/src/config.ts +54 -1
- package/src/constants/banks.ts +43 -0
- package/src/constants/markets.ts +16 -207
- package/src/constants/numericConstants.ts +34 -5
- package/src/events/eventList.ts +94 -0
- package/src/events/eventSubscriber.ts +194 -0
- package/src/events/fetchLogs.ts +80 -0
- package/src/events/pollingLogProvider.ts +79 -0
- package/src/events/sort.ts +65 -0
- package/src/events/txEventCache.ts +74 -0
- package/src/events/types.ts +98 -0
- package/src/events/webSocketLogProvider.ts +38 -0
- package/src/examples/makeTradeExample.ts +20 -11
- package/src/factory/bigNum.ts +524 -0
- package/src/factory/oracleClient.ts +7 -4
- package/src/idl/clearing_house.json +2287 -2938
- package/src/index.ts +12 -4
- package/src/math/amm.ts +414 -245
- package/src/math/auction.ts +39 -0
- package/src/math/bankBalance.ts +112 -0
- package/src/math/conversion.ts +1 -11
- package/src/math/funding.ts +12 -9
- package/src/math/market.ts +37 -30
- package/src/math/orders.ts +38 -0
- package/src/math/position.ts +48 -35
- package/src/math/repeg.ts +176 -0
- package/src/math/trade.ts +45 -35
- package/src/math/utils.js +27 -0
- package/src/math/utils.js.map +1 -0
- package/src/oracles/oracleClientCache.ts +20 -0
- package/src/oracles/pythClient.ts +4 -11
- package/src/oracles/quoteAssetOracleClient.ts +25 -0
- package/src/oracles/switchboardClient.ts +11 -24
- package/src/oracles/types.ts +7 -1
- package/src/orders.ts +24 -126
- package/src/slot/SlotSubscriber.ts +32 -0
- package/src/tx/retryTxSender.ts +6 -4
- package/src/tx/types.ts +6 -1
- package/src/tx/utils.ts +22 -3
- package/src/types.ts +111 -122
- package/src/userName.ts +20 -0
- package/src/util/computeUnits.js +17 -0
- package/src/util/computeUnits.js.map +1 -0
- package/tests/bn/test.ts +255 -0
- package/tsconfig.json +12 -12
- package/lib/addresses.d.ts +0 -10
- package/lib/addresses.js +0 -93
- package/lib/constants/accounts.d.ts +0 -15
- package/lib/constants/accounts.js +0 -18
- package/lib/factory/clearingHouse.d.ts +0 -35
- package/lib/factory/clearingHouse.js +0 -81
- package/lib/factory/clearingHouseUser.d.ts +0 -19
- package/lib/factory/clearingHouseUser.js +0 -34
- package/lib/math/insuranceFund.d.ts +0 -15
- package/lib/math/insuranceFund.js +0 -33
- package/lib/settlement.d.ts +0 -4
- package/lib/settlement.js +0 -10
- package/lib/tx/defaultTxSender.d.ts +0 -8
- package/lib/tx/defaultTxSender.js +0 -12
- package/src/addresses.ts +0 -82
- package/src/constants/accounts.ts +0 -26
- package/src/factory/clearingHouse.ts +0 -173
- package/src/factory/clearingHouseUser.ts +0 -73
- package/src/math/insuranceFund.ts +0 -29
- package/src/settlement.ts +0 -9
- package/src/tx/defaultTxSender.ts +0 -24
package/src/admin.ts
CHANGED
|
@@ -1,58 +1,34 @@
|
|
|
1
1
|
import {
|
|
2
|
-
ConfirmOptions,
|
|
3
|
-
Connection,
|
|
4
2
|
PublicKey,
|
|
5
3
|
SYSVAR_RENT_PUBKEY,
|
|
6
4
|
TransactionSignature,
|
|
7
5
|
} from '@solana/web3.js';
|
|
8
6
|
import {
|
|
9
7
|
FeeStructure,
|
|
10
|
-
IWallet,
|
|
11
8
|
OracleGuardRails,
|
|
12
9
|
OracleSource,
|
|
13
10
|
OrderFillerRewardStructure,
|
|
14
11
|
} from './types';
|
|
15
|
-
import { BN
|
|
12
|
+
import { BN } from '@project-serum/anchor';
|
|
16
13
|
import * as anchor from '@project-serum/anchor';
|
|
17
14
|
import {
|
|
18
|
-
getClearingHouseStateAccountPublicKey,
|
|
19
15
|
getClearingHouseStateAccountPublicKeyAndNonce,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
getBankVaultAuthorityPublicKey,
|
|
17
|
+
getBankPublicKey,
|
|
18
|
+
getBankVaultPublicKey,
|
|
19
|
+
getMarketPublicKey,
|
|
20
|
+
} from './addresses/pda';
|
|
24
21
|
import { TOKEN_PROGRAM_ID } from '@solana/spl-token';
|
|
25
22
|
import { ClearingHouse } from './clearingHouse';
|
|
26
23
|
import { PEG_PRECISION } from './constants/numericConstants';
|
|
27
24
|
import { calculateTargetPriceTrade } from './math/trade';
|
|
28
25
|
import { calculateAmmReservesAfterSwap, getSwapDirection } from './math/amm';
|
|
29
|
-
import {
|
|
30
|
-
getAdmin,
|
|
31
|
-
getWebSocketClearingHouseConfig,
|
|
32
|
-
} from './factory/clearingHouse';
|
|
33
26
|
|
|
34
27
|
export class Admin extends ClearingHouse {
|
|
35
|
-
public static from(
|
|
36
|
-
connection: Connection,
|
|
37
|
-
wallet: IWallet,
|
|
38
|
-
clearingHouseProgramId: PublicKey,
|
|
39
|
-
opts: ConfirmOptions = AnchorProvider.defaultOptions()
|
|
40
|
-
): Admin {
|
|
41
|
-
const config = getWebSocketClearingHouseConfig(
|
|
42
|
-
connection,
|
|
43
|
-
wallet,
|
|
44
|
-
clearingHouseProgramId,
|
|
45
|
-
opts
|
|
46
|
-
);
|
|
47
|
-
return getAdmin(config);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
28
|
public async initialize(
|
|
51
29
|
usdcMint: PublicKey,
|
|
52
30
|
adminControlsPrices: boolean
|
|
53
|
-
): Promise<
|
|
54
|
-
[TransactionSignature, TransactionSignature, TransactionSignature]
|
|
55
|
-
> {
|
|
31
|
+
): Promise<[TransactionSignature]> {
|
|
56
32
|
const stateAccountRPCResponse = await this.connection.getParsedAccountInfo(
|
|
57
33
|
await this.getStatePublicKey()
|
|
58
34
|
);
|
|
@@ -60,160 +36,107 @@ export class Admin extends ClearingHouse {
|
|
|
60
36
|
throw new Error('Clearing house already initialized');
|
|
61
37
|
}
|
|
62
38
|
|
|
63
|
-
const [
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
const [collateralVaultAuthority, _collateralVaultAuthorityNonce] =
|
|
70
|
-
await PublicKey.findProgramAddress(
|
|
71
|
-
[collateralVaultPublicKey.toBuffer()],
|
|
72
|
-
this.program.programId
|
|
73
|
-
);
|
|
74
|
-
|
|
75
|
-
const [insuranceVaultPublicKey, insuranceVaultNonce] =
|
|
76
|
-
await PublicKey.findProgramAddress(
|
|
77
|
-
[Buffer.from(anchor.utils.bytes.utf8.encode('insurance_vault'))],
|
|
78
|
-
this.program.programId
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
const [insuranceVaultAuthority, _insuranceVaultAuthorityNonce] =
|
|
82
|
-
await PublicKey.findProgramAddress(
|
|
83
|
-
[insuranceVaultPublicKey.toBuffer()],
|
|
84
|
-
this.program.programId
|
|
85
|
-
);
|
|
39
|
+
const [insuranceVaultPublicKey] = await PublicKey.findProgramAddress(
|
|
40
|
+
[Buffer.from(anchor.utils.bytes.utf8.encode('insurance_vault'))],
|
|
41
|
+
this.program.programId
|
|
42
|
+
);
|
|
86
43
|
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const tradeHistory = anchor.web3.Keypair.generate();
|
|
92
|
-
const liquidationHistory = anchor.web3.Keypair.generate();
|
|
93
|
-
const curveHistory = anchor.web3.Keypair.generate();
|
|
44
|
+
const [insuranceVaultAuthority] = await PublicKey.findProgramAddress(
|
|
45
|
+
[insuranceVaultPublicKey.toBuffer()],
|
|
46
|
+
this.program.programId
|
|
47
|
+
);
|
|
94
48
|
|
|
95
|
-
const [clearingHouseStatePublicKey
|
|
49
|
+
const [clearingHouseStatePublicKey] =
|
|
96
50
|
await getClearingHouseStateAccountPublicKeyAndNonce(
|
|
97
51
|
this.program.programId
|
|
98
52
|
);
|
|
99
53
|
const initializeTx = await this.program.transaction.initialize(
|
|
100
|
-
clearingHouseNonce,
|
|
101
|
-
collateralVaultNonce,
|
|
102
|
-
insuranceVaultNonce,
|
|
103
54
|
adminControlsPrices,
|
|
104
55
|
{
|
|
105
56
|
accounts: {
|
|
106
57
|
admin: this.wallet.publicKey,
|
|
107
58
|
state: clearingHouseStatePublicKey,
|
|
108
|
-
|
|
109
|
-
collateralVault: collateralVaultPublicKey,
|
|
110
|
-
collateralVaultAuthority: collateralVaultAuthority,
|
|
59
|
+
quoteAssetMint: usdcMint,
|
|
111
60
|
insuranceVault: insuranceVaultPublicKey,
|
|
112
61
|
insuranceVaultAuthority: insuranceVaultAuthority,
|
|
113
|
-
markets: markets.publicKey,
|
|
114
62
|
rent: SYSVAR_RENT_PUBKEY,
|
|
115
63
|
systemProgram: anchor.web3.SystemProgram.programId,
|
|
116
64
|
tokenProgram: TOKEN_PROGRAM_ID,
|
|
117
65
|
},
|
|
118
|
-
instructions: [
|
|
119
|
-
await this.program.account.markets.createInstruction(markets),
|
|
120
|
-
],
|
|
121
66
|
}
|
|
122
67
|
);
|
|
123
68
|
|
|
124
|
-
const initializeTxSig = await this.txSender.send(
|
|
69
|
+
const { txSig: initializeTxSig } = await this.txSender.send(
|
|
125
70
|
initializeTx,
|
|
126
|
-
[
|
|
71
|
+
[],
|
|
127
72
|
this.opts
|
|
128
73
|
);
|
|
129
74
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
accounts: {
|
|
133
|
-
admin: this.wallet.publicKey,
|
|
134
|
-
state: clearingHouseStatePublicKey,
|
|
135
|
-
depositHistory: depositHistory.publicKey,
|
|
136
|
-
fundingRateHistory: fundingRateHistory.publicKey,
|
|
137
|
-
fundingPaymentHistory: fundingPaymentHistory.publicKey,
|
|
138
|
-
tradeHistory: tradeHistory.publicKey,
|
|
139
|
-
liquidationHistory: liquidationHistory.publicKey,
|
|
140
|
-
curveHistory: curveHistory.publicKey,
|
|
141
|
-
rent: SYSVAR_RENT_PUBKEY,
|
|
142
|
-
systemProgram: anchor.web3.SystemProgram.programId,
|
|
143
|
-
},
|
|
144
|
-
instructions: [
|
|
145
|
-
await this.program.account.fundingRateHistory.createInstruction(
|
|
146
|
-
fundingRateHistory
|
|
147
|
-
),
|
|
148
|
-
await this.program.account.fundingPaymentHistory.createInstruction(
|
|
149
|
-
fundingPaymentHistory
|
|
150
|
-
),
|
|
151
|
-
await this.program.account.tradeHistory.createInstruction(
|
|
152
|
-
tradeHistory
|
|
153
|
-
),
|
|
154
|
-
await this.program.account.liquidationHistory.createInstruction(
|
|
155
|
-
liquidationHistory
|
|
156
|
-
),
|
|
157
|
-
await this.program.account.depositHistory.createInstruction(
|
|
158
|
-
depositHistory
|
|
159
|
-
),
|
|
160
|
-
await this.program.account.extendedCurveHistory.createInstruction(
|
|
161
|
-
curveHistory
|
|
162
|
-
),
|
|
163
|
-
],
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
const initializeHistoryTxSig = await this.txSender.send(
|
|
167
|
-
initializeHistoryTx,
|
|
168
|
-
[
|
|
169
|
-
depositHistory,
|
|
170
|
-
fundingPaymentHistory,
|
|
171
|
-
tradeHistory,
|
|
172
|
-
liquidationHistory,
|
|
173
|
-
fundingRateHistory,
|
|
174
|
-
curveHistory,
|
|
175
|
-
],
|
|
176
|
-
this.opts
|
|
177
|
-
);
|
|
75
|
+
return [initializeTxSig];
|
|
76
|
+
}
|
|
178
77
|
|
|
179
|
-
|
|
78
|
+
public async initializeBank(
|
|
79
|
+
mint: PublicKey,
|
|
80
|
+
optimalUtilization: BN,
|
|
81
|
+
optimalRate: BN,
|
|
82
|
+
maxRate: BN,
|
|
83
|
+
oracle: PublicKey,
|
|
84
|
+
oracleSource: OracleSource,
|
|
85
|
+
initialAssetWeight: BN,
|
|
86
|
+
maintenanceAssetWeight: BN,
|
|
87
|
+
initialLiabilityWeight: BN,
|
|
88
|
+
maintenanceLiabilityWeight: BN
|
|
89
|
+
): Promise<TransactionSignature> {
|
|
90
|
+
const bankIndex = this.getStateAccount().numberOfBanks;
|
|
91
|
+
const bank = await getBankPublicKey(this.program.programId, bankIndex);
|
|
180
92
|
|
|
181
|
-
|
|
182
|
-
|
|
93
|
+
const bankVault = await getBankVaultPublicKey(
|
|
94
|
+
this.program.programId,
|
|
95
|
+
bankIndex
|
|
96
|
+
);
|
|
183
97
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
const clearingHouseStatePublicKey =
|
|
189
|
-
await getClearingHouseStateAccountPublicKey(this.program.programId);
|
|
98
|
+
const bankVaultAuthority = await getBankVaultAuthorityPublicKey(
|
|
99
|
+
this.program.programId,
|
|
100
|
+
bankIndex
|
|
101
|
+
);
|
|
190
102
|
|
|
191
|
-
const
|
|
192
|
-
|
|
103
|
+
const initializeTx = await this.program.transaction.initializeBank(
|
|
104
|
+
optimalUtilization,
|
|
105
|
+
optimalRate,
|
|
106
|
+
maxRate,
|
|
107
|
+
oracleSource,
|
|
108
|
+
initialAssetWeight,
|
|
109
|
+
maintenanceAssetWeight,
|
|
110
|
+
initialLiabilityWeight,
|
|
111
|
+
maintenanceLiabilityWeight,
|
|
112
|
+
{
|
|
193
113
|
accounts: {
|
|
194
114
|
admin: this.wallet.publicKey,
|
|
195
|
-
state:
|
|
196
|
-
|
|
197
|
-
|
|
115
|
+
state: await this.getStatePublicKey(),
|
|
116
|
+
bank,
|
|
117
|
+
bankVault,
|
|
118
|
+
bankVaultAuthority,
|
|
119
|
+
bankMint: mint,
|
|
120
|
+
oracle,
|
|
198
121
|
rent: SYSVAR_RENT_PUBKEY,
|
|
199
122
|
systemProgram: anchor.web3.SystemProgram.programId,
|
|
123
|
+
tokenProgram: TOKEN_PROGRAM_ID,
|
|
200
124
|
},
|
|
201
|
-
|
|
202
|
-
await this.program.account.orderHistory.createInstruction(
|
|
203
|
-
orderHistory
|
|
204
|
-
),
|
|
205
|
-
],
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
return await this.txSender.send(
|
|
209
|
-
initializeOrderStateTx,
|
|
210
|
-
[orderHistory],
|
|
211
|
-
this.opts
|
|
125
|
+
}
|
|
212
126
|
);
|
|
127
|
+
|
|
128
|
+
const { txSig } = await this.txSender.send(initializeTx, [], this.opts);
|
|
129
|
+
|
|
130
|
+
await this.accountSubscriber.addBank(bankIndex);
|
|
131
|
+
await this.accountSubscriber.addOracle({
|
|
132
|
+
source: oracleSource,
|
|
133
|
+
publicKey: oracle,
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
return txSig;
|
|
213
137
|
}
|
|
214
138
|
|
|
215
139
|
public async initializeMarket(
|
|
216
|
-
marketIndex: BN,
|
|
217
140
|
priceOracle: PublicKey,
|
|
218
141
|
baseAssetReserve: BN,
|
|
219
142
|
quoteAssetReserve: BN,
|
|
@@ -224,12 +147,12 @@ export class Admin extends ClearingHouse {
|
|
|
224
147
|
marginRatioPartial = 625,
|
|
225
148
|
marginRatioMaintenance = 500
|
|
226
149
|
): Promise<TransactionSignature> {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
150
|
+
const marketPublicKey = await getMarketPublicKey(
|
|
151
|
+
this.program.programId,
|
|
152
|
+
this.getStateAccount().numberOfMarkets
|
|
153
|
+
);
|
|
230
154
|
|
|
231
155
|
const initializeMarketTx = await this.program.transaction.initializeMarket(
|
|
232
|
-
marketIndex,
|
|
233
156
|
baseAssetReserve,
|
|
234
157
|
quoteAssetReserve,
|
|
235
158
|
periodicity,
|
|
@@ -243,11 +166,27 @@ export class Admin extends ClearingHouse {
|
|
|
243
166
|
state: await this.getStatePublicKey(),
|
|
244
167
|
admin: this.wallet.publicKey,
|
|
245
168
|
oracle: priceOracle,
|
|
246
|
-
|
|
169
|
+
market: marketPublicKey,
|
|
170
|
+
rent: SYSVAR_RENT_PUBKEY,
|
|
171
|
+
systemProgram: anchor.web3.SystemProgram.programId,
|
|
247
172
|
},
|
|
248
173
|
}
|
|
249
174
|
);
|
|
250
|
-
|
|
175
|
+
const { txSig } = await this.txSender.send(
|
|
176
|
+
initializeMarketTx,
|
|
177
|
+
[],
|
|
178
|
+
this.opts
|
|
179
|
+
);
|
|
180
|
+
|
|
181
|
+
await this.accountSubscriber.addMarket(
|
|
182
|
+
this.getStateAccount().numberOfMarkets
|
|
183
|
+
);
|
|
184
|
+
await this.accountSubscriber.addOracle({
|
|
185
|
+
source: oracleSource,
|
|
186
|
+
publicKey: priceOracle,
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
return txSig;
|
|
251
190
|
}
|
|
252
191
|
|
|
253
192
|
public async moveAmmPrice(
|
|
@@ -255,16 +194,19 @@ export class Admin extends ClearingHouse {
|
|
|
255
194
|
quoteAssetReserve: BN,
|
|
256
195
|
marketIndex: BN
|
|
257
196
|
): Promise<TransactionSignature> {
|
|
258
|
-
const
|
|
197
|
+
const marketPublicKey = await getMarketPublicKey(
|
|
198
|
+
this.program.programId,
|
|
199
|
+
marketIndex
|
|
200
|
+
);
|
|
201
|
+
|
|
259
202
|
return await this.program.rpc.moveAmmPrice(
|
|
260
203
|
baseAssetReserve,
|
|
261
204
|
quoteAssetReserve,
|
|
262
|
-
marketIndex,
|
|
263
205
|
{
|
|
264
206
|
accounts: {
|
|
265
207
|
state: await this.getStatePublicKey(),
|
|
266
208
|
admin: this.wallet.publicKey,
|
|
267
|
-
|
|
209
|
+
market: marketPublicKey,
|
|
268
210
|
},
|
|
269
211
|
}
|
|
270
212
|
);
|
|
@@ -274,39 +216,13 @@ export class Admin extends ClearingHouse {
|
|
|
274
216
|
sqrtK: BN,
|
|
275
217
|
marketIndex: BN
|
|
276
218
|
): Promise<TransactionSignature> {
|
|
277
|
-
|
|
278
|
-
const markets = this.getMarketsAccount();
|
|
279
|
-
const marketData = markets.markets[marketIndex.toNumber()];
|
|
280
|
-
const ammData = marketData.amm;
|
|
281
|
-
|
|
282
|
-
return await this.program.rpc.updateK(sqrtK, marketIndex, {
|
|
283
|
-
accounts: {
|
|
284
|
-
state: await this.getStatePublicKey(),
|
|
285
|
-
admin: this.wallet.publicKey,
|
|
286
|
-
markets: state.markets,
|
|
287
|
-
curveHistory: state.extendedCurveHistory,
|
|
288
|
-
oracle: ammData.oracle,
|
|
289
|
-
},
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
public async updateCurveHistory(): Promise<TransactionSignature> {
|
|
294
|
-
const extendedCurveHistory = anchor.web3.Keypair.generate();
|
|
295
|
-
|
|
296
|
-
const state = this.getStateAccount();
|
|
297
|
-
return await this.program.rpc.updateCurveHistory({
|
|
219
|
+
return await this.program.rpc.updateK(sqrtK, {
|
|
298
220
|
accounts: {
|
|
299
221
|
state: await this.getStatePublicKey(),
|
|
300
222
|
admin: this.wallet.publicKey,
|
|
301
|
-
|
|
302
|
-
|
|
223
|
+
market: await getMarketPublicKey(this.program.programId, marketIndex),
|
|
224
|
+
oracle: this.getMarketAccount(marketIndex).amm.oracle,
|
|
303
225
|
},
|
|
304
|
-
instructions: [
|
|
305
|
-
await this.program.account.extendedCurveHistory.createInstruction(
|
|
306
|
-
extendedCurveHistory
|
|
307
|
-
),
|
|
308
|
-
],
|
|
309
|
-
signers: [extendedCurveHistory],
|
|
310
226
|
});
|
|
311
227
|
}
|
|
312
228
|
|
|
@@ -314,11 +230,14 @@ export class Admin extends ClearingHouse {
|
|
|
314
230
|
marketIndex: BN,
|
|
315
231
|
targetPrice: BN
|
|
316
232
|
): Promise<TransactionSignature> {
|
|
317
|
-
const market = this.
|
|
233
|
+
const market = this.getMarketAccount(marketIndex);
|
|
318
234
|
|
|
319
235
|
const [direction, tradeSize, _] = calculateTargetPriceTrade(
|
|
320
236
|
market,
|
|
321
|
-
targetPrice
|
|
237
|
+
targetPrice,
|
|
238
|
+
new BN(1000),
|
|
239
|
+
'quote',
|
|
240
|
+
undefined //todo
|
|
322
241
|
);
|
|
323
242
|
|
|
324
243
|
const [newQuoteAssetAmount, newBaseAssetAmount] =
|
|
@@ -329,16 +248,19 @@ export class Admin extends ClearingHouse {
|
|
|
329
248
|
getSwapDirection('quote', direction)
|
|
330
249
|
);
|
|
331
250
|
|
|
332
|
-
const
|
|
251
|
+
const marketPublicKey = await getMarketPublicKey(
|
|
252
|
+
this.program.programId,
|
|
253
|
+
marketIndex
|
|
254
|
+
);
|
|
255
|
+
|
|
333
256
|
return await this.program.rpc.moveAmmPrice(
|
|
334
257
|
newBaseAssetAmount,
|
|
335
258
|
newQuoteAssetAmount,
|
|
336
|
-
marketIndex,
|
|
337
259
|
{
|
|
338
260
|
accounts: {
|
|
339
261
|
state: await this.getStatePublicKey(),
|
|
340
262
|
admin: this.wallet.publicKey,
|
|
341
|
-
|
|
263
|
+
market: marketPublicKey,
|
|
342
264
|
},
|
|
343
265
|
}
|
|
344
266
|
);
|
|
@@ -348,18 +270,18 @@ export class Admin extends ClearingHouse {
|
|
|
348
270
|
newPeg: BN,
|
|
349
271
|
marketIndex: BN
|
|
350
272
|
): Promise<TransactionSignature> {
|
|
351
|
-
const
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
273
|
+
const marketPublicKey = await getMarketPublicKey(
|
|
274
|
+
this.program.programId,
|
|
275
|
+
marketIndex
|
|
276
|
+
);
|
|
277
|
+
const ammData = this.getMarketAccount(marketIndex).amm;
|
|
355
278
|
|
|
356
|
-
return await this.program.rpc.repegAmmCurve(newPeg,
|
|
279
|
+
return await this.program.rpc.repegAmmCurve(newPeg, {
|
|
357
280
|
accounts: {
|
|
358
281
|
state: await this.getStatePublicKey(),
|
|
359
282
|
admin: this.wallet.publicKey,
|
|
360
283
|
oracle: ammData.oracle,
|
|
361
|
-
|
|
362
|
-
curveHistory: state.extendedCurveHistory,
|
|
284
|
+
market: marketPublicKey,
|
|
363
285
|
},
|
|
364
286
|
});
|
|
365
287
|
}
|
|
@@ -367,18 +289,18 @@ export class Admin extends ClearingHouse {
|
|
|
367
289
|
public async updateAmmOracleTwap(
|
|
368
290
|
marketIndex: BN
|
|
369
291
|
): Promise<TransactionSignature> {
|
|
370
|
-
const
|
|
371
|
-
const
|
|
372
|
-
|
|
373
|
-
|
|
292
|
+
const ammData = this.getMarketAccount(marketIndex).amm;
|
|
293
|
+
const marketPublicKey = await getMarketPublicKey(
|
|
294
|
+
this.program.programId,
|
|
295
|
+
marketIndex
|
|
296
|
+
);
|
|
374
297
|
|
|
375
|
-
return await this.program.rpc.updateAmmOracleTwap(
|
|
298
|
+
return await this.program.rpc.updateAmmOracleTwap({
|
|
376
299
|
accounts: {
|
|
377
300
|
state: await this.getStatePublicKey(),
|
|
378
301
|
admin: this.wallet.publicKey,
|
|
379
302
|
oracle: ammData.oracle,
|
|
380
|
-
|
|
381
|
-
curveHistory: state.extendedCurveHistory,
|
|
303
|
+
market: marketPublicKey,
|
|
382
304
|
},
|
|
383
305
|
});
|
|
384
306
|
}
|
|
@@ -386,18 +308,18 @@ export class Admin extends ClearingHouse {
|
|
|
386
308
|
public async resetAmmOracleTwap(
|
|
387
309
|
marketIndex: BN
|
|
388
310
|
): Promise<TransactionSignature> {
|
|
389
|
-
const
|
|
390
|
-
const
|
|
391
|
-
|
|
392
|
-
|
|
311
|
+
const ammData = this.getMarketAccount(marketIndex).amm;
|
|
312
|
+
const marketPublicKey = await getMarketPublicKey(
|
|
313
|
+
this.program.programId,
|
|
314
|
+
marketIndex
|
|
315
|
+
);
|
|
393
316
|
|
|
394
|
-
return await this.program.rpc.resetAmmOracleTwap(
|
|
317
|
+
return await this.program.rpc.resetAmmOracleTwap({
|
|
395
318
|
accounts: {
|
|
396
319
|
state: await this.getStatePublicKey(),
|
|
397
320
|
admin: this.wallet.publicKey,
|
|
398
321
|
oracle: ammData.oracle,
|
|
399
|
-
|
|
400
|
-
curveHistory: state.extendedCurveHistory,
|
|
322
|
+
market: marketPublicKey,
|
|
401
323
|
},
|
|
402
324
|
});
|
|
403
325
|
}
|
|
@@ -424,14 +346,19 @@ export class Admin extends ClearingHouse {
|
|
|
424
346
|
amount: BN,
|
|
425
347
|
recipient: PublicKey
|
|
426
348
|
): Promise<TransactionSignature> {
|
|
427
|
-
const
|
|
428
|
-
|
|
349
|
+
const marketPublicKey = await getMarketPublicKey(
|
|
350
|
+
this.program.programId,
|
|
351
|
+
marketIndex
|
|
352
|
+
);
|
|
353
|
+
const bank = this.getQuoteAssetBankAccount();
|
|
354
|
+
return await this.program.rpc.withdrawFees(amount, {
|
|
429
355
|
accounts: {
|
|
430
356
|
admin: this.wallet.publicKey,
|
|
431
357
|
state: await this.getStatePublicKey(),
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
358
|
+
market: marketPublicKey,
|
|
359
|
+
bank: bank.pubkey,
|
|
360
|
+
bankVault: bank.vault,
|
|
361
|
+
bankVaultAuthority: bank.vaultAuthority,
|
|
435
362
|
recipient: recipient,
|
|
436
363
|
tokenProgram: TOKEN_PROGRAM_ID,
|
|
437
364
|
},
|
|
@@ -443,21 +370,17 @@ export class Admin extends ClearingHouse {
|
|
|
443
370
|
amount: BN
|
|
444
371
|
): Promise<TransactionSignature> {
|
|
445
372
|
const state = await this.getStateAccount();
|
|
446
|
-
return await this.program.rpc.withdrawFromInsuranceVaultToMarket(
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
tokenProgram: TOKEN_PROGRAM_ID,
|
|
458
|
-
},
|
|
459
|
-
}
|
|
460
|
-
);
|
|
373
|
+
return await this.program.rpc.withdrawFromInsuranceVaultToMarket(amount, {
|
|
374
|
+
accounts: {
|
|
375
|
+
admin: this.wallet.publicKey,
|
|
376
|
+
state: await this.getStatePublicKey(),
|
|
377
|
+
market: await getMarketPublicKey(this.program.programId, marketIndex),
|
|
378
|
+
insuranceVault: state.insuranceVault,
|
|
379
|
+
insuranceVaultAuthority: state.insuranceVaultAuthority,
|
|
380
|
+
bankVault: this.getQuoteAssetBankAccount().vault,
|
|
381
|
+
tokenProgram: TOKEN_PROGRAM_ID,
|
|
382
|
+
},
|
|
383
|
+
});
|
|
461
384
|
}
|
|
462
385
|
|
|
463
386
|
public async updateAdmin(admin: PublicKey): Promise<TransactionSignature> {
|
|
@@ -469,6 +392,25 @@ export class Admin extends ClearingHouse {
|
|
|
469
392
|
});
|
|
470
393
|
}
|
|
471
394
|
|
|
395
|
+
public async updateCurveUpdateIntensity(
|
|
396
|
+
marketIndex: BN,
|
|
397
|
+
curveUpdateIntensity: number
|
|
398
|
+
): Promise<TransactionSignature> {
|
|
399
|
+
// assert(curveUpdateIntensity >= 0 && curveUpdateIntensity <= 100);
|
|
400
|
+
// assert(Number.isInteger(curveUpdateIntensity));
|
|
401
|
+
|
|
402
|
+
return await this.program.rpc.updateCurveUpdateIntensity(
|
|
403
|
+
curveUpdateIntensity,
|
|
404
|
+
{
|
|
405
|
+
accounts: {
|
|
406
|
+
admin: this.wallet.publicKey,
|
|
407
|
+
state: await this.getStatePublicKey(),
|
|
408
|
+
market: await getMarketPublicKey(this.program.programId, marketIndex),
|
|
409
|
+
},
|
|
410
|
+
}
|
|
411
|
+
);
|
|
412
|
+
}
|
|
413
|
+
|
|
472
414
|
public async updateMarginRatio(
|
|
473
415
|
marketIndex: BN,
|
|
474
416
|
marginRatioInitial: number,
|
|
@@ -476,7 +418,6 @@ export class Admin extends ClearingHouse {
|
|
|
476
418
|
marginRatioMaintenance: number
|
|
477
419
|
): Promise<TransactionSignature> {
|
|
478
420
|
return await this.program.rpc.updateMarginRatio(
|
|
479
|
-
marketIndex,
|
|
480
421
|
marginRatioInitial,
|
|
481
422
|
marginRatioPartial,
|
|
482
423
|
marginRatioMaintenance,
|
|
@@ -484,7 +425,7 @@ export class Admin extends ClearingHouse {
|
|
|
484
425
|
accounts: {
|
|
485
426
|
admin: this.wallet.publicKey,
|
|
486
427
|
state: await this.getStatePublicKey(),
|
|
487
|
-
|
|
428
|
+
market: await getMarketPublicKey(this.program.programId, marketIndex),
|
|
488
429
|
},
|
|
489
430
|
}
|
|
490
431
|
);
|
|
@@ -494,17 +435,26 @@ export class Admin extends ClearingHouse {
|
|
|
494
435
|
marketIndex: BN,
|
|
495
436
|
baseSpread: number
|
|
496
437
|
): Promise<TransactionSignature> {
|
|
497
|
-
return await this.program.rpc.updateMarketBaseSpread(
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
438
|
+
return await this.program.rpc.updateMarketBaseSpread(baseSpread, {
|
|
439
|
+
accounts: {
|
|
440
|
+
admin: this.wallet.publicKey,
|
|
441
|
+
state: await this.getStatePublicKey(),
|
|
442
|
+
market: await getMarketPublicKey(this.program.programId, marketIndex),
|
|
443
|
+
},
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
public async updateMarketMaxSpread(
|
|
448
|
+
marketIndex: BN,
|
|
449
|
+
maxSpread: number
|
|
450
|
+
): Promise<TransactionSignature> {
|
|
451
|
+
return await this.program.rpc.updateMarketMaxSpread(maxSpread, {
|
|
452
|
+
accounts: {
|
|
453
|
+
admin: this.wallet.publicKey,
|
|
454
|
+
state: await this.getStatePublicKey(),
|
|
455
|
+
market: await getMarketPublicKey(this.program.programId, marketIndex),
|
|
456
|
+
},
|
|
457
|
+
});
|
|
508
458
|
}
|
|
509
459
|
|
|
510
460
|
public async updatePartialLiquidationClosePercentage(
|
|
@@ -592,7 +542,6 @@ export class Admin extends ClearingHouse {
|
|
|
592
542
|
accounts: {
|
|
593
543
|
admin: this.wallet.publicKey,
|
|
594
544
|
state: await this.getStatePublicKey(),
|
|
595
|
-
orderState: await this.getOrderStatePublicKey(),
|
|
596
545
|
},
|
|
597
546
|
}
|
|
598
547
|
);
|
|
@@ -623,52 +572,42 @@ export class Admin extends ClearingHouse {
|
|
|
623
572
|
oracle: PublicKey,
|
|
624
573
|
oracleSource: OracleSource
|
|
625
574
|
): Promise<TransactionSignature> {
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
admin: this.wallet.publicKey,
|
|
634
|
-
state: await this.getStatePublicKey(),
|
|
635
|
-
markets: state.markets,
|
|
636
|
-
},
|
|
637
|
-
}
|
|
638
|
-
);
|
|
575
|
+
return await this.program.rpc.updateMarketOracle(oracle, oracleSource, {
|
|
576
|
+
accounts: {
|
|
577
|
+
admin: this.wallet.publicKey,
|
|
578
|
+
state: await this.getStatePublicKey(),
|
|
579
|
+
market: await getMarketPublicKey(this.program.programId, marketIndex),
|
|
580
|
+
},
|
|
581
|
+
});
|
|
639
582
|
}
|
|
640
583
|
|
|
641
584
|
public async updateMarketMinimumQuoteAssetTradeSize(
|
|
642
585
|
marketIndex: BN,
|
|
643
586
|
minimumTradeSize: BN
|
|
644
587
|
): Promise<TransactionSignature> {
|
|
645
|
-
const state = this.getStateAccount();
|
|
646
588
|
return await this.program.rpc.updateMarketMinimumQuoteAssetTradeSize(
|
|
647
|
-
marketIndex,
|
|
648
589
|
minimumTradeSize,
|
|
649
590
|
{
|
|
650
591
|
accounts: {
|
|
651
592
|
admin: this.wallet.publicKey,
|
|
652
593
|
state: await this.getStatePublicKey(),
|
|
653
|
-
|
|
594
|
+
market: await getMarketPublicKey(this.program.programId, marketIndex),
|
|
654
595
|
},
|
|
655
596
|
}
|
|
656
597
|
);
|
|
657
598
|
}
|
|
658
599
|
|
|
659
|
-
public async
|
|
600
|
+
public async updateMarketBaseAssetAmountStepSize(
|
|
660
601
|
marketIndex: BN,
|
|
661
|
-
|
|
602
|
+
stepSize: BN
|
|
662
603
|
): Promise<TransactionSignature> {
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
marketIndex,
|
|
666
|
-
minimumTradeSize,
|
|
604
|
+
return await this.program.rpc.updateMarketBaseAssetAmountStepSize(
|
|
605
|
+
stepSize,
|
|
667
606
|
{
|
|
668
607
|
accounts: {
|
|
669
608
|
admin: this.wallet.publicKey,
|
|
670
609
|
state: await this.getStatePublicKey(),
|
|
671
|
-
|
|
610
|
+
market: await getMarketPublicKey(this.program.programId, marketIndex),
|
|
672
611
|
},
|
|
673
612
|
}
|
|
674
613
|
);
|
|
@@ -736,84 +675,17 @@ export class Admin extends ClearingHouse {
|
|
|
736
675
|
});
|
|
737
676
|
}
|
|
738
677
|
|
|
739
|
-
public async
|
|
740
|
-
|
|
741
|
-
return await this.program.rpc.transferFromInsuranceVaultToCollateralVault({
|
|
742
|
-
accounts: {
|
|
743
|
-
admin: this.wallet.publicKey,
|
|
744
|
-
state: await this.getStatePublicKey(),
|
|
745
|
-
insuranceVault: state.insuranceVault,
|
|
746
|
-
insuranceVaultAuthority: state.insuranceVaultAuthority,
|
|
747
|
-
collateralVault: state.collateralVault,
|
|
748
|
-
tokenProgram: TOKEN_PROGRAM_ID,
|
|
749
|
-
},
|
|
750
|
-
});
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
public async adminUpdateUserForgoSettlement(
|
|
754
|
-
authority: PublicKey
|
|
755
|
-
): Promise<TransactionSignature> {
|
|
756
|
-
const user = await getUserAccountPublicKey(
|
|
757
|
-
this.program.programId,
|
|
758
|
-
authority
|
|
759
|
-
);
|
|
760
|
-
|
|
761
|
-
return await this.program.rpc.adminUpdateUserForgoSettlement({
|
|
762
|
-
accounts: {
|
|
763
|
-
admin: this.wallet.publicKey,
|
|
764
|
-
state: await this.getStatePublicKey(),
|
|
765
|
-
user: user,
|
|
766
|
-
},
|
|
767
|
-
});
|
|
768
|
-
}
|
|
769
|
-
|
|
770
|
-
public async initializeSettlementState(): Promise<TransactionSignature> {
|
|
771
|
-
const settlementState = await getSettlementStatePublicKey(
|
|
772
|
-
this.program.programId
|
|
773
|
-
);
|
|
774
|
-
|
|
775
|
-
const settlementSize = await this.getTotalSettlementSize();
|
|
776
|
-
|
|
777
|
-
return await this.program.rpc.initializeSettlementState(settlementSize, {
|
|
778
|
-
accounts: {
|
|
779
|
-
admin: this.wallet.publicKey,
|
|
780
|
-
state: await this.getStatePublicKey(),
|
|
781
|
-
settlementState: settlementState,
|
|
782
|
-
rent: SYSVAR_RENT_PUBKEY,
|
|
783
|
-
systemProgram: anchor.web3.SystemProgram.programId,
|
|
784
|
-
collateralVault: (await this.getStateAccount()).collateralVault,
|
|
785
|
-
},
|
|
786
|
-
});
|
|
787
|
-
}
|
|
788
|
-
|
|
789
|
-
public async updateSettlementState(): Promise<TransactionSignature> {
|
|
790
|
-
const settlementState = await getSettlementStatePublicKey(
|
|
791
|
-
this.program.programId
|
|
792
|
-
);
|
|
793
|
-
|
|
794
|
-
return await this.program.rpc.updateSettlementState({
|
|
795
|
-
accounts: {
|
|
796
|
-
admin: this.wallet.publicKey,
|
|
797
|
-
state: await this.getStatePublicKey(),
|
|
798
|
-
settlementState: settlementState,
|
|
799
|
-
collateralVault: (await this.getStateAccount()).collateralVault,
|
|
800
|
-
},
|
|
801
|
-
});
|
|
802
|
-
}
|
|
803
|
-
|
|
804
|
-
public async updateSettlementStateEnabled(
|
|
805
|
-
enabled: boolean
|
|
678
|
+
public async updateOrderAuctionTime(
|
|
679
|
+
time: BN | number
|
|
806
680
|
): Promise<TransactionSignature> {
|
|
807
|
-
|
|
808
|
-
|
|
681
|
+
return await this.program.rpc.updateOrderAuctionTime(
|
|
682
|
+
typeof time === 'number' ? time : time.toNumber,
|
|
683
|
+
{
|
|
684
|
+
accounts: {
|
|
685
|
+
admin: this.wallet.publicKey,
|
|
686
|
+
state: await this.getStatePublicKey(),
|
|
687
|
+
},
|
|
688
|
+
}
|
|
809
689
|
);
|
|
810
|
-
|
|
811
|
-
return await this.program.rpc.updateSettlementStateEnabled(enabled, {
|
|
812
|
-
accounts: {
|
|
813
|
-
admin: this.wallet.publicKey,
|
|
814
|
-
state: await this.getStatePublicKey(),
|
|
815
|
-
settlementState: settlementState,
|
|
816
|
-
},
|
|
817
|
-
});
|
|
818
690
|
}
|
|
819
691
|
}
|