@d8x/perpetuals-sdk 1.3.7 → 2.0.0-alpha
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/cjs/accountTrade.d.ts +9 -9
- package/dist/cjs/accountTrade.js +19 -17
- package/dist/cjs/accountTrade.js.map +1 -1
- package/dist/cjs/brokerTool.d.ts +11 -12
- package/dist/cjs/brokerTool.js +7 -8
- package/dist/cjs/brokerTool.js.map +1 -1
- package/dist/cjs/constants.d.ts +11 -12
- package/dist/cjs/constants.js +12 -13
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/contracts/ERC20.d.ts +146 -171
- package/dist/cjs/contracts/IPerpetualManager.d.ts +2534 -2225
- package/dist/cjs/contracts/IPyth.d.ts +181 -184
- package/dist/cjs/contracts/LimitOrderBook.d.ts +373 -401
- package/dist/cjs/contracts/LimitOrderBookBeacon.d.ts +53 -104
- package/dist/cjs/contracts/LimitOrderBookFactory.d.ts +129 -185
- package/dist/cjs/contracts/MockTokenSwap.d.ts +109 -169
- package/dist/cjs/contracts/Multicall3.d.ts +147 -211
- package/dist/cjs/contracts/OnDemandOracleUpgradeable.d.ts +342 -399
- package/dist/cjs/contracts/OracleFactory.d.ts +258 -238
- package/dist/cjs/contracts/PerpetualManagerProxy.d.ts +1099 -891
- package/dist/cjs/contracts/RedStoneAbi.d.ts +369 -488
- package/dist/cjs/contracts/ShareToken.d.ts +232 -285
- package/dist/cjs/contracts/common.d.ts +40 -11
- package/dist/cjs/contracts/factories/ERC20__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/ERC20__factory.js +3 -3
- package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +3 -3
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/IPyth__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/IPyth__factory.js +3 -3
- package/dist/cjs/contracts/factories/IPyth__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.js +3 -3
- package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +3 -3
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +3 -3
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +3 -3
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/Multicall3__factory.d.ts +11 -9
- package/dist/cjs/contracts/factories/Multicall3__factory.js +7 -10
- package/dist/cjs/contracts/factories/Multicall3__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.js +3 -3
- package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/OracleFactory__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/OracleFactory__factory.js +3 -3
- package/dist/cjs/contracts/factories/OracleFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js +3 -3
- package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/RedStoneAbi__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/RedStoneAbi__factory.js +3 -3
- package/dist/cjs/contracts/factories/RedStoneAbi__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/ShareToken__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/ShareToken__factory.js +3 -3
- package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/cjs/d8XMath.d.ts +16 -16
- package/dist/cjs/d8XMath.js +48 -49
- package/dist/cjs/d8XMath.js.map +1 -1
- package/dist/cjs/liquidatorTool.d.ts +8 -8
- package/dist/cjs/liquidatorTool.js +5 -7
- package/dist/cjs/liquidatorTool.js.map +1 -1
- package/dist/cjs/liquidityProviderTool.d.ts +4 -5
- package/dist/cjs/liquidityProviderTool.js.map +1 -1
- package/dist/cjs/marketData.d.ts +27 -28
- package/dist/cjs/marketData.js +65 -69
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/nodeSDKTypes.d.ts +35 -37
- package/dist/cjs/onChainPxFeed.d.ts +2 -2
- package/dist/cjs/onChainPxFeed.js +3 -3
- package/dist/cjs/onChainPxFeed.js.map +1 -1
- package/dist/cjs/onChainPxFeedAngle.d.ts +2 -2
- package/dist/cjs/onChainPxFeedAngle.js +4 -5
- package/dist/cjs/onChainPxFeedAngle.js.map +1 -1
- package/dist/cjs/onChainPxFeedRedStone.js +2 -2
- package/dist/cjs/onChainPxFeedRedStone.js.map +1 -1
- package/dist/cjs/orderExecutorTool.d.ts +7 -9
- package/dist/cjs/orderExecutorTool.js +52 -62
- package/dist/cjs/orderExecutorTool.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.d.ts +38 -35
- package/dist/cjs/perpetualDataHandler.js +173 -167
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/perpetualEventHandler.d.ts +4 -5
- package/dist/cjs/perpetualEventHandler.js +2 -2
- package/dist/cjs/perpetualEventHandler.js.map +1 -1
- package/dist/cjs/priceFeeds.js +2 -3
- package/dist/cjs/priceFeeds.js.map +1 -1
- package/dist/cjs/referralCodeSigner.d.ts +1 -1
- package/dist/cjs/referralCodeSigner.js +12 -16
- package/dist/cjs/referralCodeSigner.js.map +1 -1
- package/dist/cjs/traderDigests.d.ts +2 -1
- package/dist/cjs/traderDigests.js +9 -11
- package/dist/cjs/traderDigests.js.map +1 -1
- package/dist/cjs/traderInterface.d.ts +8 -9
- package/dist/cjs/traderInterface.js +26 -23
- package/dist/cjs/traderInterface.js.map +1 -1
- package/dist/cjs/utils.d.ts +2 -3
- package/dist/cjs/utils.js +1 -2
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/writeAccessHandler.d.ts +7 -9
- package/dist/cjs/writeAccessHandler.js +13 -16
- package/dist/cjs/writeAccessHandler.js.map +1 -1
- package/dist/esm/accountTrade.d.ts +9 -9
- package/dist/esm/accountTrade.js +19 -17
- package/dist/esm/accountTrade.js.map +1 -1
- package/dist/esm/brokerTool.d.ts +11 -12
- package/dist/esm/brokerTool.js +2 -3
- package/dist/esm/brokerTool.js.map +1 -1
- package/dist/esm/constants.d.ts +11 -12
- package/dist/esm/constants.js +12 -13
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/contracts/ERC20.d.ts +146 -171
- package/dist/esm/contracts/IPerpetualManager.d.ts +2534 -2225
- package/dist/esm/contracts/IPyth.d.ts +181 -184
- package/dist/esm/contracts/LimitOrderBook.d.ts +373 -401
- package/dist/esm/contracts/LimitOrderBookBeacon.d.ts +53 -104
- package/dist/esm/contracts/LimitOrderBookFactory.d.ts +129 -185
- package/dist/esm/contracts/MockTokenSwap.d.ts +109 -169
- package/dist/esm/contracts/Multicall3.d.ts +147 -211
- package/dist/esm/contracts/OnDemandOracleUpgradeable.d.ts +342 -399
- package/dist/esm/contracts/OracleFactory.d.ts +258 -238
- package/dist/esm/contracts/PerpetualManagerProxy.d.ts +1099 -891
- package/dist/esm/contracts/RedStoneAbi.d.ts +369 -488
- package/dist/esm/contracts/ShareToken.d.ts +232 -285
- package/dist/esm/contracts/common.d.ts +40 -11
- package/dist/esm/contracts/factories/ERC20__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/ERC20__factory.js +4 -4
- package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js +4 -4
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/IPyth__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/IPyth__factory.js +4 -4
- package/dist/esm/contracts/factories/IPyth__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.js +4 -4
- package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +4 -4
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBook__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js +4 -4
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/esm/contracts/factories/MockTokenSwap__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js +4 -4
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/esm/contracts/factories/Multicall3__factory.d.ts +11 -9
- package/dist/esm/contracts/factories/Multicall3__factory.js +8 -11
- package/dist/esm/contracts/factories/Multicall3__factory.js.map +1 -1
- package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.js +4 -4
- package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.js.map +1 -1
- package/dist/esm/contracts/factories/OracleFactory__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/OracleFactory__factory.js +4 -4
- package/dist/esm/contracts/factories/OracleFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js +4 -4
- package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
- package/dist/esm/contracts/factories/RedStoneAbi__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/RedStoneAbi__factory.js +4 -4
- package/dist/esm/contracts/factories/RedStoneAbi__factory.js.map +1 -1
- package/dist/esm/contracts/factories/ShareToken__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/ShareToken__factory.js +4 -4
- package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/esm/d8XMath.d.ts +16 -16
- package/dist/esm/d8XMath.js +48 -49
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/liquidatorTool.d.ts +8 -8
- package/dist/esm/liquidatorTool.js +5 -7
- package/dist/esm/liquidatorTool.js.map +1 -1
- package/dist/esm/liquidityProviderTool.d.ts +4 -5
- package/dist/esm/liquidityProviderTool.js.map +1 -1
- package/dist/esm/marketData.d.ts +27 -28
- package/dist/esm/marketData.js +55 -59
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/nodeSDKTypes.d.ts +35 -37
- package/dist/esm/onChainPxFeed.d.ts +2 -2
- package/dist/esm/onChainPxFeed.js +3 -3
- package/dist/esm/onChainPxFeed.js.map +1 -1
- package/dist/esm/onChainPxFeedAngle.d.ts +2 -2
- package/dist/esm/onChainPxFeedAngle.js +2 -3
- package/dist/esm/onChainPxFeedAngle.js.map +1 -1
- package/dist/esm/onChainPxFeedRedStone.js +1 -1
- package/dist/esm/onChainPxFeedRedStone.js.map +1 -1
- package/dist/esm/orderExecutorTool.d.ts +7 -9
- package/dist/esm/orderExecutorTool.js +38 -48
- package/dist/esm/orderExecutorTool.js.map +1 -1
- package/dist/esm/perpetualDataHandler.d.ts +38 -35
- package/dist/esm/perpetualDataHandler.js +114 -108
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/perpetualEventHandler.d.ts +4 -5
- package/dist/esm/perpetualEventHandler.js +2 -2
- package/dist/esm/perpetualEventHandler.js.map +1 -1
- package/dist/esm/priceFeeds.js +2 -3
- package/dist/esm/priceFeeds.js.map +1 -1
- package/dist/esm/referralCodeSigner.d.ts +1 -1
- package/dist/esm/referralCodeSigner.js +6 -10
- package/dist/esm/referralCodeSigner.js.map +1 -1
- package/dist/esm/traderDigests.d.ts +2 -1
- package/dist/esm/traderDigests.js +2 -4
- package/dist/esm/traderDigests.js.map +1 -1
- package/dist/esm/traderInterface.d.ts +8 -9
- package/dist/esm/traderInterface.js +26 -23
- package/dist/esm/traderInterface.js.map +1 -1
- package/dist/esm/utils.d.ts +2 -3
- package/dist/esm/utils.js +1 -2
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/writeAccessHandler.d.ts +7 -9
- package/dist/esm/writeAccessHandler.js +5 -8
- package/dist/esm/writeAccessHandler.js.map +1 -1
- package/package.json +7 -17
- package/src/accountTrade.ts +32 -34
- package/src/brokerTool.ts +17 -20
- package/src/constants.ts +12 -13
- package/src/contracts/ERC20.ts +236 -350
- package/src/contracts/IPerpetualManager.ts +3359 -5050
- package/src/contracts/IPyth.ts +272 -409
- package/src/contracts/LimitOrderBook.ts +503 -779
- package/src/contracts/LimitOrderBookBeacon.ts +123 -171
- package/src/contracts/LimitOrderBookFactory.ts +263 -332
- package/src/contracts/MockTokenSwap.ts +237 -275
- package/src/contracts/Multicall3.ts +208 -374
- package/src/contracts/OnDemandOracleUpgradeable.ts +569 -782
- package/src/contracts/OracleFactory.ts +410 -538
- package/src/contracts/PerpetualManagerProxy.ts +1898 -1426
- package/src/contracts/RedStoneAbi.ts +486 -986
- package/src/contracts/ShareToken.ts +376 -557
- package/src/contracts/common.ts +108 -21
- package/src/contracts/factories/ERC20__factory.ts +4 -5
- package/src/contracts/factories/IPerpetualManager__factory.ts +4 -5
- package/src/contracts/factories/IPyth__factory.ts +4 -5
- package/src/contracts/factories/LimitOrderBookBeacon__factory.ts +5 -6
- package/src/contracts/factories/LimitOrderBookFactory__factory.ts +5 -6
- package/src/contracts/factories/LimitOrderBook__factory.ts +4 -5
- package/src/contracts/factories/MockTokenSwap__factory.ts +4 -5
- package/src/contracts/factories/Multicall3__factory.ts +21 -19
- package/src/contracts/factories/OnDemandOracleUpgradeable__factory.ts +5 -6
- package/src/contracts/factories/OracleFactory__factory.ts +4 -5
- package/src/contracts/factories/PerpetualManagerProxy__factory.ts +5 -6
- package/src/contracts/factories/RedStoneAbi__factory.ts +4 -8
- package/src/contracts/factories/ShareToken__factory.ts +4 -8
- package/src/d8XMath.ts +57 -57
- package/src/liquidatorTool.ts +12 -15
- package/src/liquidityProviderTool.ts +7 -5
- package/src/marketData.ts +110 -121
- package/src/nodeSDKTypes.ts +51 -38
- package/src/onChainPxFeed.ts +4 -4
- package/src/onChainPxFeedAngle.ts +5 -7
- package/src/onChainPxFeedRedStone.ts +1 -3
- package/src/orderExecutorTool.ts +100 -108
- package/src/perpetualDataHandler.ts +181 -167
- package/src/perpetualEventHandler.ts +16 -17
- package/src/priceFeeds.ts +2 -3
- package/src/referralCodeSigner.ts +6 -10
- package/src/traderDigests.ts +8 -5
- package/src/traderInterface.ts +45 -31
- package/src/utils.ts +3 -4
- package/src/version.ts +1 -1
- package/src/writeAccessHandler.ts +26 -17
package/src/nodeSDKTypes.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { BytesLike } from "@ethersproject/bytes";
|
|
3
|
-
import type { ContractInterface, ContractTransaction } from "@ethersproject/contracts";
|
|
1
|
+
import { BigNumberish, BytesLike, ContractTransaction, ContractTransactionResponse, Interface } from "ethers";
|
|
4
2
|
import { CollaterlCCY } from "./constants";
|
|
5
3
|
|
|
6
4
|
export interface NodeSDKConfig {
|
|
@@ -16,10 +14,10 @@ export interface NodeSDKConfig {
|
|
|
16
14
|
symbolListLocation: string;
|
|
17
15
|
priceFeedConfigNetwork: string;
|
|
18
16
|
gasLimit?: number | undefined;
|
|
19
|
-
proxyABI?:
|
|
20
|
-
lobFactoryABI?:
|
|
21
|
-
lobABI?:
|
|
22
|
-
shareTokenABI?:
|
|
17
|
+
proxyABI?: Interface | undefined;
|
|
18
|
+
lobFactoryABI?: Interface | undefined;
|
|
19
|
+
lobABI?: Interface | undefined;
|
|
20
|
+
shareTokenABI?: Interface | undefined;
|
|
23
21
|
priceFeedEndpoints?: PriceFeedEndpointsOptionalWrite;
|
|
24
22
|
multicall?: string;
|
|
25
23
|
}
|
|
@@ -27,7 +25,7 @@ export interface NodeSDKConfig {
|
|
|
27
25
|
export type SettlementConfig = SettlementCcyItem[];
|
|
28
26
|
|
|
29
27
|
export interface SettlementCcyItem {
|
|
30
|
-
perpFlags:
|
|
28
|
+
perpFlags: bigint;
|
|
31
29
|
description: string;
|
|
32
30
|
settleTokenDecimals: number;
|
|
33
31
|
settleCCY: string;
|
|
@@ -79,7 +77,7 @@ export interface PerpetualStaticInfo {
|
|
|
79
77
|
referralRebate: number;
|
|
80
78
|
priceIds: string[];
|
|
81
79
|
isPyth: boolean[];
|
|
82
|
-
perpFlags:
|
|
80
|
+
perpFlags: bigint;
|
|
83
81
|
}
|
|
84
82
|
|
|
85
83
|
/*
|
|
@@ -156,7 +154,7 @@ export interface PerpetualState {
|
|
|
156
154
|
}
|
|
157
155
|
|
|
158
156
|
export interface OrderResponse {
|
|
159
|
-
tx:
|
|
157
|
+
tx: ContractTransactionResponse;
|
|
160
158
|
orderId: string;
|
|
161
159
|
}
|
|
162
160
|
|
|
@@ -195,16 +193,16 @@ export interface TradeEvent {
|
|
|
195
193
|
/**
|
|
196
194
|
* @global
|
|
197
195
|
* @typedef {Object} SmartContractOrder
|
|
198
|
-
* @property {
|
|
196
|
+
* @property {bigint} flags
|
|
199
197
|
* @property {number} iPerpetualId
|
|
200
198
|
* @property {number} brokerFeeTbps
|
|
201
199
|
* @property {string} traderAddr
|
|
202
200
|
* @property {string} brokerAddr
|
|
203
201
|
* @property {string} executorAddr
|
|
204
202
|
* @property {BytesLike} brokerSignature
|
|
205
|
-
* @property {
|
|
206
|
-
* @property {
|
|
207
|
-
* @property {
|
|
203
|
+
* @property {bigint} fAmount
|
|
204
|
+
* @property {bigint} fLimitPrice
|
|
205
|
+
* @property {bigint} fTriggerPrice
|
|
208
206
|
* @property {number} leverageTDR
|
|
209
207
|
* @property {number} iDeadline
|
|
210
208
|
* @property {number} executionTimestamp
|
|
@@ -212,37 +210,52 @@ export interface TradeEvent {
|
|
|
212
210
|
*/
|
|
213
211
|
export interface SmartContractOrder {
|
|
214
212
|
flags: BigNumberish;
|
|
215
|
-
iPerpetualId:
|
|
216
|
-
brokerFeeTbps:
|
|
213
|
+
iPerpetualId: BigNumberish;
|
|
214
|
+
brokerFeeTbps: BigNumberish;
|
|
217
215
|
traderAddr: string;
|
|
218
216
|
brokerAddr: string;
|
|
219
217
|
executorAddr: string;
|
|
220
218
|
brokerSignature: BytesLike;
|
|
221
|
-
fAmount:
|
|
222
|
-
fLimitPrice:
|
|
223
|
-
fTriggerPrice:
|
|
224
|
-
leverageTDR:
|
|
225
|
-
iDeadline:
|
|
226
|
-
executionTimestamp:
|
|
227
|
-
submittedTimestamp:
|
|
219
|
+
fAmount: bigint;
|
|
220
|
+
fLimitPrice: bigint;
|
|
221
|
+
fTriggerPrice: bigint;
|
|
222
|
+
leverageTDR: BigNumberish;
|
|
223
|
+
iDeadline: BigNumberish;
|
|
224
|
+
executionTimestamp: BigNumberish;
|
|
225
|
+
submittedTimestamp: BigNumberish;
|
|
228
226
|
}
|
|
229
|
-
|
|
227
|
+
// {
|
|
228
|
+
// leverageTDR: bigint;
|
|
229
|
+
// brokerFeeTbps: bigint;
|
|
230
|
+
// iPerpetualId: bigint;
|
|
231
|
+
// traderAddr: string;
|
|
232
|
+
// executionTimestamp: bigint;
|
|
233
|
+
// brokerAddr: string;
|
|
234
|
+
// submittedTimestamp: bigint;
|
|
235
|
+
// flags: bigint;
|
|
236
|
+
// iDeadline: bigint;
|
|
237
|
+
// executorAddr: string;
|
|
238
|
+
// fAmount: bigint;
|
|
239
|
+
// fLimitPrice: bigint;
|
|
240
|
+
// fTriggerPrice: bigint;
|
|
241
|
+
// brokerSignature: string;
|
|
242
|
+
// };
|
|
230
243
|
/**
|
|
231
244
|
* @global
|
|
232
245
|
* @typedef {Object} ClientOrder
|
|
233
|
-
* @property {
|
|
234
|
-
* @property {
|
|
235
|
-
* @property {
|
|
246
|
+
* @property {bigint} flags
|
|
247
|
+
* @property {bigint} iPerpetualId
|
|
248
|
+
* @property {bigint} brokerFeeTbps
|
|
236
249
|
* @property {string} traderAddr
|
|
237
250
|
* @property {string} brokerAddr
|
|
238
251
|
* @property {string} executorAddr
|
|
239
252
|
* @property {BytesLike} brokerSignature
|
|
240
|
-
* @property {
|
|
241
|
-
* @property {
|
|
242
|
-
* @property {
|
|
243
|
-
* @property {
|
|
244
|
-
* @property {
|
|
245
|
-
* @property {
|
|
253
|
+
* @property {bigint} fAmount
|
|
254
|
+
* @property {bigint} fLimitPrice
|
|
255
|
+
* @property {bigint} fTriggerPrice
|
|
256
|
+
* @property {bigint} leverageTDR
|
|
257
|
+
* @property {bigint} iDeadline
|
|
258
|
+
* @property {bigint} executionTimestamp
|
|
246
259
|
* @property {string} parentChildDigest1
|
|
247
260
|
* @property {string} parentChildDigest2
|
|
248
261
|
* @property {string} callbackTarget
|
|
@@ -255,9 +268,9 @@ export interface ClientOrder {
|
|
|
255
268
|
brokerAddr: string;
|
|
256
269
|
executorAddr: string;
|
|
257
270
|
brokerSignature: BytesLike;
|
|
258
|
-
fAmount:
|
|
259
|
-
fLimitPrice:
|
|
260
|
-
fTriggerPrice:
|
|
271
|
+
fAmount: bigint;
|
|
272
|
+
fLimitPrice: bigint;
|
|
273
|
+
fTriggerPrice: bigint;
|
|
261
274
|
leverageTDR: BigNumberish;
|
|
262
275
|
iDeadline: BigNumberish;
|
|
263
276
|
executionTimestamp: BigNumberish;
|
|
@@ -316,9 +329,9 @@ export interface PriceFeedSubmission {
|
|
|
316
329
|
}
|
|
317
330
|
|
|
318
331
|
export interface PriceFeedFormat {
|
|
319
|
-
conf:
|
|
332
|
+
conf: bigint;
|
|
320
333
|
expo: number;
|
|
321
|
-
price:
|
|
334
|
+
price: bigint;
|
|
322
335
|
publish_time: number;
|
|
323
336
|
}
|
|
324
337
|
|
package/src/onChainPxFeed.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { JsonRpcProvider, Provider } from "ethers";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* OnChainPxFeed: get a price from a chainlink-style oracle
|
|
@@ -7,7 +7,7 @@ export default abstract class OnChainPxFeed {
|
|
|
7
7
|
public rpcs: string[];
|
|
8
8
|
protected lastRpc: number = 0;
|
|
9
9
|
protected lastPx: number | undefined;
|
|
10
|
-
protected provider:
|
|
10
|
+
protected provider: Provider;
|
|
11
11
|
protected lastResponseTs: number = 0;
|
|
12
12
|
|
|
13
13
|
protected abstract fetchPrice(delay: boolean): Promise<void>;
|
|
@@ -15,12 +15,12 @@ export default abstract class OnChainPxFeed {
|
|
|
15
15
|
public constructor(rpcs: string[]) {
|
|
16
16
|
this.rpcs = rpcs;
|
|
17
17
|
this.lastRpc = Math.floor(Math.random() * rpcs.length);
|
|
18
|
-
this.provider = new
|
|
18
|
+
this.provider = new JsonRpcProvider(this.rpcs[this.lastRpc]);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
protected setRpc() {
|
|
22
22
|
this.lastRpc = (this.lastRpc + 1) % this.rpcs.length;
|
|
23
|
-
this.provider = new
|
|
23
|
+
this.provider = new JsonRpcProvider(this.rpcs[this.lastRpc]);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
public async getPrice(): Promise<number> {
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { Contract } from "@ethersproject/contracts";
|
|
2
|
-
import { StaticJsonRpcProvider } from "@ethersproject/providers";
|
|
3
1
|
import { decNToFloat } from "./d8XMath";
|
|
4
|
-
import { BigNumber } from "ethers";
|
|
5
2
|
import { sleep } from "./utils";
|
|
6
3
|
import OnChainPxFeed from "./onChainPxFeed";
|
|
4
|
+
import { Contract, Provider } from "ethers";
|
|
7
5
|
|
|
8
6
|
/**
|
|
9
7
|
* OnChainPxFeedAngle: get STUSD-USDC exchange rate
|
|
@@ -49,7 +47,7 @@ export default class OnChainPxFeedAngle extends OnChainPxFeed {
|
|
|
49
47
|
* @param provider arbitrum provider
|
|
50
48
|
* @returns STUSD-USDC
|
|
51
49
|
*/
|
|
52
|
-
export async function STUSDToUSDC(provider:
|
|
50
|
+
export async function STUSDToUSDC(provider: Provider): Promise<number> {
|
|
53
51
|
// ABIs for IERC4626 and ITransmuter contracts
|
|
54
52
|
const ierc4626ABI = ["function previewMint(uint256) external view returns (uint256)"];
|
|
55
53
|
const iTransmuterABI = ["function quoteOut(uint256, address, address) external view returns (uint256)"];
|
|
@@ -64,11 +62,11 @@ export async function STUSDToUSDC(provider: StaticJsonRpcProvider): Promise<numb
|
|
|
64
62
|
const iTransmuterContract = new Contract(transmuterAddr, iTransmuterABI, provider);
|
|
65
63
|
|
|
66
64
|
// Call previewMint to get amountUSDA
|
|
67
|
-
const ONE_STUSD = BigNumber.from(10).pow(BigNumber.from(18));
|
|
68
|
-
const amountUSDA:
|
|
65
|
+
const ONE_STUSD = 10n ** 18n; // BigNumber.from(10).pow(BigNumber.from(18));
|
|
66
|
+
const amountUSDA: bigint = await ierc4626Contract.previewMint(ONE_STUSD);
|
|
69
67
|
|
|
70
68
|
// Call quoteOut to get amountIn
|
|
71
|
-
const amountUSDC:
|
|
69
|
+
const amountUSDC: bigint = await iTransmuterContract.quoteOut(amountUSDA, USDC, USDA);
|
|
72
70
|
|
|
73
71
|
return decNToFloat(amountUSDC, 6);
|
|
74
72
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { Contract } from "@ethersproject/contracts";
|
|
2
|
-
import { StaticJsonRpcProvider } from "@ethersproject/providers";
|
|
3
1
|
import { decNToFloat } from "./d8XMath";
|
|
4
|
-
import { BigNumber } from "ethers";
|
|
5
2
|
import { sleep } from "./utils";
|
|
6
3
|
import OnChainPxFeed from "./onChainPxFeed";
|
|
4
|
+
import { Contract } from "ethers";
|
|
7
5
|
|
|
8
6
|
/**
|
|
9
7
|
* OnChainPxFeedRedStone: get a price from a chainlink-style oracle
|