@d8x/perpetuals-sdk 2.0.8-alpha → 2.0.10-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/abi/BeaconProxy.json +71 -0
- package/dist/cjs/abi/IPerpetualManager.json +46 -0
- package/dist/cjs/abi/Maintainer.json +774 -0
- package/dist/cjs/abi/MockToken.json +347 -0
- package/dist/cjs/abi/UUPSUpgradeable.json +104 -0
- package/dist/cjs/abi/WeETH.json +310 -0
- package/dist/cjs/abi-zkevm/IPerpetualManager.json +2 -2
- package/dist/cjs/abi-zkevm/LimitOrderBook.json +910 -0
- package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +236 -0
- package/dist/cjs/contracts/BeaconProxy.d.ts +63 -0
- package/dist/cjs/contracts/BeaconProxy.js +3 -0
- package/dist/cjs/contracts/BeaconProxy.js.map +1 -0
- package/dist/cjs/contracts/IPerpetualManager.d.ts +15 -1
- package/dist/cjs/contracts/Maintainer.d.ts +799 -0
- package/dist/cjs/contracts/Maintainer.js +3 -0
- package/dist/cjs/contracts/Maintainer.js.map +1 -0
- package/dist/cjs/contracts/MockToken.d.ts +263 -0
- package/dist/cjs/contracts/MockToken.js +3 -0
- package/dist/cjs/contracts/MockToken.js.map +1 -0
- package/dist/cjs/contracts/UUPSUpgradeable.d.ts +118 -0
- package/dist/cjs/contracts/UUPSUpgradeable.js +3 -0
- package/dist/cjs/contracts/UUPSUpgradeable.js.map +1 -0
- package/dist/cjs/contracts/WeETH.d.ts +503 -0
- package/dist/cjs/contracts/WeETH.js +3 -0
- package/dist/cjs/contracts/WeETH.js.map +1 -0
- package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +61 -0
- package/dist/cjs/contracts/factories/BeaconProxy__factory.js +89 -0
- package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +35 -0
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +46 -0
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +609 -0
- package/dist/cjs/contracts/factories/Maintainer__factory.js +792 -0
- package/dist/cjs/contracts/factories/Maintainer__factory.js.map +1 -0
- package/dist/{esm/contracts/factories/PerpStorage__factory.d.ts → cjs/contracts/factories/MockToken__factory.d.ts} +128 -115
- package/dist/cjs/contracts/factories/MockToken__factory.js +365 -0
- package/dist/cjs/contracts/factories/MockToken__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +122 -0
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/WeETH__factory.d.ts +545 -0
- package/dist/cjs/contracts/factories/WeETH__factory.js +721 -0
- package/dist/cjs/contracts/factories/WeETH__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +5324 -0
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +254 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +928 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +456 -0
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/index.d.ts +4 -0
- package/dist/cjs/contracts/factories/lean0/index.js +15 -0
- package/dist/cjs/contracts/factories/lean0/index.js.map +1 -0
- package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +2821 -0
- package/dist/cjs/contracts/lean0/IPerpetualManager.js +3 -0
- package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +1 -0
- package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +533 -0
- package/dist/cjs/contracts/lean0/LimitOrderBook.js +3 -0
- package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +1 -0
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +3 -0
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
- package/dist/cjs/contracts/lean0/ShareToken.d.ts +320 -0
- package/dist/cjs/contracts/lean0/ShareToken.js +3 -0
- package/dist/cjs/contracts/lean0/ShareToken.js.map +1 -0
- package/dist/cjs/contracts/lean0/index.d.ts +4 -0
- package/dist/cjs/contracts/lean0/index.js +3 -0
- package/dist/cjs/contracts/lean0/index.js.map +1 -0
- package/dist/cjs/marketData.d.ts +2 -1
- package/dist/cjs/marketData.js +46 -18
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/nodeSDKTypes.d.ts +19 -0
- package/dist/cjs/nodeSDKTypes.js +29 -0
- package/dist/cjs/nodeSDKTypes.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.d.ts +9 -2
- package/dist/cjs/perpetualDataHandler.js +50 -13
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/referralCodeSigner.d.ts +38 -5
- package/dist/cjs/referralCodeSigner.js +107 -18
- package/dist/cjs/referralCodeSigner.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/esm/abi/BeaconProxy.json +71 -0
- package/dist/esm/abi/IPerpetualManager.json +46 -0
- package/dist/esm/abi/Maintainer.json +774 -0
- package/dist/esm/abi/MockToken.json +347 -0
- package/dist/esm/abi/UUPSUpgradeable.json +104 -0
- package/dist/esm/abi/WeETH.json +310 -0
- package/dist/esm/abi/lean0/IPerpetualManager.json +5306 -0
- package/dist/esm/abi/lean0/LimitOrderBook.json +910 -0
- package/dist/esm/abi/lean0/LimitOrderBookFactory.json +236 -0
- package/dist/esm/abi/lean0/ShareToken.json +438 -0
- package/dist/esm/abi-zkevm/IPerpetualManager.json +2 -2
- package/dist/esm/abi-zkevm/LimitOrderBook.json +910 -0
- package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +236 -0
- package/dist/esm/contracts/BeaconProxy.d.ts +63 -0
- package/dist/esm/contracts/BeaconProxy.js +2 -0
- package/dist/esm/contracts/BeaconProxy.js.map +1 -0
- package/dist/esm/contracts/IPerpetualManager.d.ts +15 -1
- package/dist/esm/contracts/Maintainer.d.ts +799 -0
- package/dist/esm/contracts/Maintainer.js +2 -0
- package/dist/esm/contracts/Maintainer.js.map +1 -0
- package/dist/esm/contracts/MockToken.d.ts +263 -0
- package/dist/esm/contracts/MockToken.js +2 -0
- package/dist/esm/contracts/MockToken.js.map +1 -0
- package/dist/esm/contracts/UUPSUpgradeable.d.ts +118 -0
- package/dist/esm/contracts/UUPSUpgradeable.js +2 -0
- package/dist/esm/contracts/UUPSUpgradeable.js.map +1 -0
- package/dist/esm/contracts/WeETH.d.ts +503 -0
- package/dist/esm/contracts/WeETH.js +2 -0
- package/dist/esm/contracts/WeETH.js.map +1 -0
- package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +61 -0
- package/dist/esm/contracts/factories/BeaconProxy__factory.js +85 -0
- package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +1 -0
- package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +35 -0
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js +46 -0
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/Maintainer__factory.d.ts +609 -0
- package/dist/esm/contracts/factories/Maintainer__factory.js +788 -0
- package/dist/esm/contracts/factories/Maintainer__factory.js.map +1 -0
- package/dist/esm/contracts/factories/MockToken__factory.d.ts +273 -0
- package/dist/esm/contracts/factories/{PerpStorage__factory.js → MockToken__factory.js} +139 -128
- package/dist/esm/contracts/factories/MockToken__factory.js.map +1 -0
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +118 -0
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
- package/dist/esm/contracts/factories/WeETH__factory.d.ts +545 -0
- package/dist/esm/contracts/factories/WeETH__factory.js +717 -0
- package/dist/esm/contracts/factories/WeETH__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +5320 -0
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +250 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +924 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +452 -0
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/index.d.ts +4 -0
- package/dist/esm/contracts/factories/lean0/index.js +8 -0
- package/dist/esm/contracts/factories/lean0/index.js.map +1 -0
- package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +2821 -0
- package/dist/esm/contracts/lean0/IPerpetualManager.js +2 -0
- package/dist/esm/contracts/lean0/IPerpetualManager.js.map +1 -0
- package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +533 -0
- package/dist/esm/contracts/lean0/LimitOrderBook.js +2 -0
- package/dist/esm/contracts/lean0/LimitOrderBook.js.map +1 -0
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +2 -0
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
- package/dist/esm/contracts/lean0/ShareToken.d.ts +320 -0
- package/dist/esm/contracts/lean0/ShareToken.js +2 -0
- package/dist/esm/contracts/lean0/ShareToken.js.map +1 -0
- package/dist/esm/contracts/lean0/index.d.ts +4 -0
- package/dist/esm/contracts/lean0/index.js +2 -0
- package/dist/esm/contracts/lean0/index.js.map +1 -0
- package/dist/esm/marketData.d.ts +2 -1
- package/dist/esm/marketData.js +46 -18
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/nodeSDKTypes.d.ts +19 -0
- package/dist/esm/nodeSDKTypes.js +28 -1
- package/dist/esm/nodeSDKTypes.js.map +1 -1
- package/dist/esm/perpetualDataHandler.d.ts +9 -2
- package/dist/esm/perpetualDataHandler.js +50 -13
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/referralCodeSigner.d.ts +38 -5
- package/dist/esm/referralCodeSigner.js +108 -19
- package/dist/esm/referralCodeSigner.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/package.json +4 -2
- package/src/abi/IPerpetualManager.json +46 -0
- package/src/abi-zkevm/IPerpetualManager.json +2 -2
- package/src/contracts/IPerpetualManager.ts +22 -0
- package/src/contracts/factories/IPerpetualManager__factory.ts +46 -0
- package/src/marketData.ts +54 -17
- package/src/nodeSDKTypes.ts +31 -0
- package/src/perpetualDataHandler.ts +54 -17
- package/src/referralCodeSigner.ts +174 -22
- package/src/version.ts +1 -1
- package/dist/esm/contracts/factories/PerpStorage__factory.js.map +0 -1
|
@@ -2694,6 +2694,52 @@
|
|
|
2694
2694
|
"stateMutability": "view",
|
|
2695
2695
|
"type": "function"
|
|
2696
2696
|
},
|
|
2697
|
+
{
|
|
2698
|
+
"inputs": [
|
|
2699
|
+
{
|
|
2700
|
+
"internalType": "uint24[]",
|
|
2701
|
+
"name": "_perpetualIds",
|
|
2702
|
+
"type": "uint24[]"
|
|
2703
|
+
},
|
|
2704
|
+
{
|
|
2705
|
+
"internalType": "address",
|
|
2706
|
+
"name": "_traderAddress",
|
|
2707
|
+
"type": "address"
|
|
2708
|
+
}
|
|
2709
|
+
],
|
|
2710
|
+
"name": "getMarginAccounts",
|
|
2711
|
+
"outputs": [
|
|
2712
|
+
{
|
|
2713
|
+
"components": [
|
|
2714
|
+
{
|
|
2715
|
+
"internalType": "int128",
|
|
2716
|
+
"name": "fLockedInValueQC",
|
|
2717
|
+
"type": "int128"
|
|
2718
|
+
},
|
|
2719
|
+
{
|
|
2720
|
+
"internalType": "int128",
|
|
2721
|
+
"name": "fCashCC",
|
|
2722
|
+
"type": "int128"
|
|
2723
|
+
},
|
|
2724
|
+
{
|
|
2725
|
+
"internalType": "int128",
|
|
2726
|
+
"name": "fPositionBC",
|
|
2727
|
+
"type": "int128"
|
|
2728
|
+
},
|
|
2729
|
+
{
|
|
2730
|
+
"internalType": "int128",
|
|
2731
|
+
"name": "fUnitAccumulatedFundingStart",
|
|
2732
|
+
"type": "int128"
|
|
2733
|
+
}
|
|
2734
|
+
],
|
|
2735
|
+
"internalType": "struct PerpStorage.MarginAccount[]",
|
|
2736
|
+
"name": "",
|
|
2737
|
+
"type": "tuple[]"
|
|
2738
|
+
}
|
|
2739
|
+
],
|
|
2740
|
+
"stateMutability": "view",
|
|
2741
|
+
"type": "function"
|
|
2742
|
+
},
|
|
2697
2743
|
{
|
|
2698
2744
|
"inputs": [
|
|
2699
2745
|
{
|
|
@@ -3036,7 +3036,7 @@
|
|
|
3036
3036
|
},
|
|
3037
3037
|
{
|
|
3038
3038
|
"internalType": "int128",
|
|
3039
|
-
"name": "
|
|
3039
|
+
"name": "perpFlags",
|
|
3040
3040
|
"type": "int128"
|
|
3041
3041
|
},
|
|
3042
3042
|
{
|
|
@@ -3443,7 +3443,7 @@
|
|
|
3443
3443
|
},
|
|
3444
3444
|
{
|
|
3445
3445
|
"internalType": "int128",
|
|
3446
|
-
"name": "
|
|
3446
|
+
"name": "perpFlags",
|
|
3447
3447
|
"type": "int128"
|
|
3448
3448
|
},
|
|
3449
3449
|
{
|
|
@@ -467,6 +467,7 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
467
467
|
| "getLiquidityPool"
|
|
468
468
|
| "getLiquidityPools"
|
|
469
469
|
| "getMarginAccount"
|
|
470
|
+
| "getMarginAccounts"
|
|
470
471
|
| "getMaxSignedOpenTradeSizeForPos"
|
|
471
472
|
| "getNextLiquidatableTrader"
|
|
472
473
|
| "getOracleFactory"
|
|
@@ -814,6 +815,10 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
814
815
|
functionFragment: "getMarginAccount",
|
|
815
816
|
values: [BigNumberish, AddressLike]
|
|
816
817
|
): string;
|
|
818
|
+
encodeFunctionData(
|
|
819
|
+
functionFragment: "getMarginAccounts",
|
|
820
|
+
values: [BigNumberish[], AddressLike]
|
|
821
|
+
): string;
|
|
817
822
|
encodeFunctionData(
|
|
818
823
|
functionFragment: "getMaxSignedOpenTradeSizeForPos",
|
|
819
824
|
values: [BigNumberish, BigNumberish, boolean]
|
|
@@ -1355,6 +1360,10 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
1355
1360
|
functionFragment: "getMarginAccount",
|
|
1356
1361
|
data: BytesLike
|
|
1357
1362
|
): Result;
|
|
1363
|
+
decodeFunctionResult(
|
|
1364
|
+
functionFragment: "getMarginAccounts",
|
|
1365
|
+
data: BytesLike
|
|
1366
|
+
): Result;
|
|
1358
1367
|
decodeFunctionResult(
|
|
1359
1368
|
functionFragment: "getMaxSignedOpenTradeSizeForPos",
|
|
1360
1369
|
data: BytesLike
|
|
@@ -2872,6 +2881,12 @@ export interface IPerpetualManager extends BaseContract {
|
|
|
2872
2881
|
"view"
|
|
2873
2882
|
>;
|
|
2874
2883
|
|
|
2884
|
+
getMarginAccounts: TypedContractMethod<
|
|
2885
|
+
[_perpetualIds: BigNumberish[], _traderAddress: AddressLike],
|
|
2886
|
+
[PerpStorage.MarginAccountStructOutput[]],
|
|
2887
|
+
"view"
|
|
2888
|
+
>;
|
|
2889
|
+
|
|
2875
2890
|
getMaxSignedOpenTradeSizeForPos: TypedContractMethod<
|
|
2876
2891
|
[
|
|
2877
2892
|
_perpetualId: BigNumberish,
|
|
@@ -3772,6 +3787,13 @@ export interface IPerpetualManager extends BaseContract {
|
|
|
3772
3787
|
[PerpStorage.MarginAccountStructOutput],
|
|
3773
3788
|
"view"
|
|
3774
3789
|
>;
|
|
3790
|
+
getFunction(
|
|
3791
|
+
nameOrSignature: "getMarginAccounts"
|
|
3792
|
+
): TypedContractMethod<
|
|
3793
|
+
[_perpetualIds: BigNumberish[], _traderAddress: AddressLike],
|
|
3794
|
+
[PerpStorage.MarginAccountStructOutput[]],
|
|
3795
|
+
"view"
|
|
3796
|
+
>;
|
|
3775
3797
|
getFunction(
|
|
3776
3798
|
nameOrSignature: "getMaxSignedOpenTradeSizeForPos"
|
|
3777
3799
|
): TypedContractMethod<
|
|
@@ -2704,6 +2704,52 @@ const _abi = [
|
|
|
2704
2704
|
stateMutability: "view",
|
|
2705
2705
|
type: "function",
|
|
2706
2706
|
},
|
|
2707
|
+
{
|
|
2708
|
+
inputs: [
|
|
2709
|
+
{
|
|
2710
|
+
internalType: "uint24[]",
|
|
2711
|
+
name: "_perpetualIds",
|
|
2712
|
+
type: "uint24[]",
|
|
2713
|
+
},
|
|
2714
|
+
{
|
|
2715
|
+
internalType: "address",
|
|
2716
|
+
name: "_traderAddress",
|
|
2717
|
+
type: "address",
|
|
2718
|
+
},
|
|
2719
|
+
],
|
|
2720
|
+
name: "getMarginAccounts",
|
|
2721
|
+
outputs: [
|
|
2722
|
+
{
|
|
2723
|
+
components: [
|
|
2724
|
+
{
|
|
2725
|
+
internalType: "int128",
|
|
2726
|
+
name: "fLockedInValueQC",
|
|
2727
|
+
type: "int128",
|
|
2728
|
+
},
|
|
2729
|
+
{
|
|
2730
|
+
internalType: "int128",
|
|
2731
|
+
name: "fCashCC",
|
|
2732
|
+
type: "int128",
|
|
2733
|
+
},
|
|
2734
|
+
{
|
|
2735
|
+
internalType: "int128",
|
|
2736
|
+
name: "fPositionBC",
|
|
2737
|
+
type: "int128",
|
|
2738
|
+
},
|
|
2739
|
+
{
|
|
2740
|
+
internalType: "int128",
|
|
2741
|
+
name: "fUnitAccumulatedFundingStart",
|
|
2742
|
+
type: "int128",
|
|
2743
|
+
},
|
|
2744
|
+
],
|
|
2745
|
+
internalType: "struct PerpStorage.MarginAccount[]",
|
|
2746
|
+
name: "",
|
|
2747
|
+
type: "tuple[]",
|
|
2748
|
+
},
|
|
2749
|
+
],
|
|
2750
|
+
stateMutability: "view",
|
|
2751
|
+
type: "function",
|
|
2752
|
+
},
|
|
2707
2753
|
{
|
|
2708
2754
|
inputs: [
|
|
2709
2755
|
{
|
package/src/marketData.ts
CHANGED
|
@@ -601,6 +601,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
601
601
|
const perpetualState = PerpetualDataHandler._parseAMMState(
|
|
602
602
|
order.symbol,
|
|
603
603
|
ammState,
|
|
604
|
+
[0n, 0n], // not used below
|
|
604
605
|
indexPriceInfo,
|
|
605
606
|
this.symbolToPerpStaticInfo
|
|
606
607
|
);
|
|
@@ -1505,7 +1506,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1505
1506
|
indexPriceInfo?: [number, number, boolean, boolean],
|
|
1506
1507
|
overrides?: Overrides
|
|
1507
1508
|
): Promise<PerpetualState> {
|
|
1508
|
-
if (this.proxyContract == null) {
|
|
1509
|
+
if (this.proxyContract == null || this.multicall == null) {
|
|
1509
1510
|
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
1510
1511
|
}
|
|
1511
1512
|
if (indexPriceInfo == undefined) {
|
|
@@ -1516,6 +1517,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1516
1517
|
symbol,
|
|
1517
1518
|
this.symbolToPerpStaticInfo,
|
|
1518
1519
|
this.proxyContract,
|
|
1520
|
+
this.multicall,
|
|
1519
1521
|
indexPriceInfo,
|
|
1520
1522
|
overrides
|
|
1521
1523
|
);
|
|
@@ -1996,6 +1998,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1996
1998
|
let iFrom = 1;
|
|
1997
1999
|
let poolStates: Array<PoolState> = [];
|
|
1998
2000
|
let perpStates: Array<PerpetualState> = [];
|
|
2001
|
+
let longShort: Array<[bigint, bigint]> = [];
|
|
1999
2002
|
while (iFrom <= numPools) {
|
|
2000
2003
|
const proxyCalls: Multicall3.Call3Struct[] = [
|
|
2001
2004
|
// getLiquidityPools
|
|
@@ -2012,7 +2015,16 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2012
2015
|
_nestedPerpetualIDs.slice(iFrom - 1, iFrom + chunkSize - 1).flat(), // from-to does not include "to"
|
|
2013
2016
|
]),
|
|
2014
2017
|
},
|
|
2018
|
+
{
|
|
2019
|
+
target: _proxyContract.target,
|
|
2020
|
+
allowFailure: false,
|
|
2021
|
+
callData: _proxyContract.interface.encodeFunctionData("getMarginAccounts", [
|
|
2022
|
+
_nestedPerpetualIDs.slice(iFrom - 1, iFrom + chunkSize - 1).flat(), // from-to does not include "to"
|
|
2023
|
+
ZERO_ADDRESS,
|
|
2024
|
+
]),
|
|
2025
|
+
},
|
|
2015
2026
|
];
|
|
2027
|
+
|
|
2016
2028
|
// multicall
|
|
2017
2029
|
const encodedResults = await _multicall.aggregate3.staticCall(proxyCalls, overrides || {});
|
|
2018
2030
|
const pools = _proxyContract.interface.decodeFunctionResult(
|
|
@@ -2022,15 +2034,32 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2022
2034
|
const perps = _proxyContract.interface.decodeFunctionResult(
|
|
2023
2035
|
"getPerpetuals",
|
|
2024
2036
|
encodedResults[1].returnData
|
|
2025
|
-
)[0] as
|
|
2026
|
-
|
|
2037
|
+
)[0] as PerpStorage.PerpetualDataStructOutput[];
|
|
2038
|
+
const margins = _proxyContract.interface.decodeFunctionResult(
|
|
2039
|
+
"getMarginAccounts",
|
|
2040
|
+
encodedResults[2].returnData
|
|
2041
|
+
)[0] as PerpStorage.MarginAccountStructOutput[];
|
|
2042
|
+
longShort = longShort.concat(MarketData._marginAccountsToPosBC(margins, perps));
|
|
2027
2043
|
poolStates = poolStates.concat(MarketData._poolDataToPoolState(pools, _poolStaticInfos));
|
|
2028
|
-
perpStates = perpStates.concat(MarketData._perpetualDataToPerpetualState(perps, _symbolList));
|
|
2044
|
+
perpStates = perpStates.concat(MarketData._perpetualDataToPerpetualState(perps, longShort, _symbolList));
|
|
2029
2045
|
iFrom = iFrom + chunkSize + 1;
|
|
2030
2046
|
}
|
|
2031
2047
|
return { pools: poolStates, perpetuals: perpStates };
|
|
2032
2048
|
}
|
|
2033
2049
|
|
|
2050
|
+
protected static _marginAccountsToPosBC(
|
|
2051
|
+
ms: PerpStorage.MarginAccountStructOutput[],
|
|
2052
|
+
p: PerpStorage.PerpetualDataStructOutput[]
|
|
2053
|
+
): Array<[bigint, bigint]> {
|
|
2054
|
+
let longShort = new Array<[bigint, bigint]>();
|
|
2055
|
+
for (let k = 0; k < ms.length; k++) {
|
|
2056
|
+
const oi = p[k].fOpenInterest;
|
|
2057
|
+
const ammPos = ms[k].fPositionBC;
|
|
2058
|
+
longShort.push(PerpetualDataHandler._oiAndAmmPosToLongShort(oi, ammPos));
|
|
2059
|
+
}
|
|
2060
|
+
return longShort;
|
|
2061
|
+
}
|
|
2062
|
+
|
|
2034
2063
|
/**
|
|
2035
2064
|
* Parse liquidity pool state obtained on-chain
|
|
2036
2065
|
* @param _liquidityPools
|
|
@@ -2068,21 +2097,29 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2068
2097
|
*/
|
|
2069
2098
|
protected static _perpetualDataToPerpetualState(
|
|
2070
2099
|
_perpetuals: any[],
|
|
2100
|
+
_longShortBC: [bigint, bigint][],
|
|
2071
2101
|
_symbolList: Map<string, string>
|
|
2072
2102
|
): PerpetualState[] {
|
|
2073
|
-
const perpStates =
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2103
|
+
const perpStates = new Array<PerpetualState>();
|
|
2104
|
+
for (let k = 0; k < _perpetuals.length; k++) {
|
|
2105
|
+
const perp = _perpetuals[k];
|
|
2106
|
+
perpStates.push({
|
|
2107
|
+
//PerpetualState
|
|
2108
|
+
id: Number(perp.id!),
|
|
2109
|
+
state: PERP_STATE_STR[perp.state!],
|
|
2110
|
+
baseCurrency: contractSymbolToSymbol(perp.S2BaseCCY!, _symbolList)!,
|
|
2111
|
+
quoteCurrency: contractSymbolToSymbol(perp.S2QuoteCCY!, _symbolList)!,
|
|
2112
|
+
indexPrice: 0, //fill later
|
|
2113
|
+
collToQuoteIndexPrice: 0, //fill later
|
|
2114
|
+
markPrice: ABK64x64ToFloat(perp.currentMarkPremiumRate!.fPrice), // fill later: indexS2 * (1 + markPremiumRate),
|
|
2115
|
+
midPrice: 0, // fill later
|
|
2116
|
+
currentFundingRateBps: 1e4 * ABK64x64ToFloat(perp.fCurrentFundingRate!),
|
|
2117
|
+
openInterestBC: ABK64x64ToFloat(perp.fOpenInterest!),
|
|
2118
|
+
isMarketClosed: false, //fill later
|
|
2119
|
+
longBC: ABK64x64ToFloat(_longShortBC[k][0]),
|
|
2120
|
+
shortBC: ABK64x64ToFloat(_longShortBC[k][1]),
|
|
2121
|
+
});
|
|
2122
|
+
}
|
|
2086
2123
|
return perpStates;
|
|
2087
2124
|
}
|
|
2088
2125
|
|
package/src/nodeSDKTypes.ts
CHANGED
|
@@ -150,6 +150,8 @@ export interface PerpetualState {
|
|
|
150
150
|
midPrice: number;
|
|
151
151
|
currentFundingRateBps: number;
|
|
152
152
|
openInterestBC: number;
|
|
153
|
+
longBC: number;
|
|
154
|
+
shortBC: number;
|
|
153
155
|
isMarketClosed: boolean;
|
|
154
156
|
}
|
|
155
157
|
|
|
@@ -495,3 +497,32 @@ export interface LiquidityPoolData {
|
|
|
495
497
|
totalSupplyShareToken: number; // state
|
|
496
498
|
fBrokerFundCashCC: number; // state: amount of cash in broker fund
|
|
497
499
|
}
|
|
500
|
+
|
|
501
|
+
// referral types:
|
|
502
|
+
export const referralDomain = {
|
|
503
|
+
name: "Referral System",
|
|
504
|
+
};
|
|
505
|
+
export const referralTypes = {
|
|
506
|
+
// ["string", "address", "uint32", "uint256"],
|
|
507
|
+
// [rc.code, rc.referrerAddr, passOnPercTwoDigitsFormat, Math.round(rc.createdOn)]
|
|
508
|
+
NewCode: [
|
|
509
|
+
{ name: "Code", type: "string" },
|
|
510
|
+
{ name: "ReferrerAddr", type: "address" },
|
|
511
|
+
{ name: "PassOnPercTDF", type: "uint32" },
|
|
512
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
513
|
+
],
|
|
514
|
+
// ["address", "address", "uint32", "uint256"],
|
|
515
|
+
// [rc.parentAddr, rc.referToAddr, passOnPercTwoDigitsFormat, Math.round(rc.createdOn)]
|
|
516
|
+
NewReferral: [
|
|
517
|
+
{ name: "ParentAddr", type: "address" },
|
|
518
|
+
{ name: "ReferToAddr", type: "address" },
|
|
519
|
+
{ name: "PassOnPercTDF", type: "uint32" },
|
|
520
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
521
|
+
],
|
|
522
|
+
// ["string", "address", "uint256"], [rc.code, rc.traderAddr, Math.round(rc.createdOn)]
|
|
523
|
+
CodeSelection: [
|
|
524
|
+
{ name: "Code", type: "string" },
|
|
525
|
+
{ name: "TraderAddr", type: "address" },
|
|
526
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
527
|
+
],
|
|
528
|
+
};
|
|
@@ -648,7 +648,7 @@ export default class PerpetualDataHandler {
|
|
|
648
648
|
referralRebate: ABK64x64ToFloat(perpInfos[j].fReferralRebateCC),
|
|
649
649
|
priceIds: perpInfos[j].priceIds,
|
|
650
650
|
isPyth: perpInfos[j].isPyth,
|
|
651
|
-
perpFlags: BigInt(perpInfos[j].perpFlags
|
|
651
|
+
perpFlags: BigInt(perpInfos[j].perpFlags?.toString() ?? 0),
|
|
652
652
|
};
|
|
653
653
|
infoArr.push(info);
|
|
654
654
|
}
|
|
@@ -780,7 +780,7 @@ export default class PerpetualDataHandler {
|
|
|
780
780
|
fTargetDFSize: ABK64x64ToFloat(BigInt(orig.fTargetDFSize)), // target default fund size
|
|
781
781
|
fkStar: ABK64x64ToFloat(BigInt(orig.fkStar)), // signed trade size that minimizes the AMM risk
|
|
782
782
|
fAMMTargetDD: ABK64x64ToFloat(BigInt(orig.fAMMTargetDD)), // parameter: target distance to default (=inverse of default probability)
|
|
783
|
-
perpFlags: BigInt(orig.perpFlags?.toString()), // flags for perpetual
|
|
783
|
+
perpFlags: BigInt(orig.perpFlags?.toString() ?? 0), // flags for perpetual
|
|
784
784
|
fMinimalTraderExposureEMA: ABK64x64ToFloat(BigInt(orig.fMinimalTraderExposureEMA)), // parameter: minimal value for fCurrentTraderExposureEMA that we don't want to undershoot
|
|
785
785
|
fMinimalAMMExposureEMA: ABK64x64ToFloat(BigInt(orig.fMinimalAMMExposureEMA)), // parameter: minimal abs value for fCurrentAMMExposureEMA that we don't want to undershoot
|
|
786
786
|
fSettlementS3PriceData: ABK64x64ToFloat(BigInt(orig.fSettlementS3PriceData)), //quanto index
|
|
@@ -1172,6 +1172,7 @@ export default class PerpetualDataHandler {
|
|
|
1172
1172
|
symbol: string,
|
|
1173
1173
|
symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>,
|
|
1174
1174
|
_proxyContract: Contract,
|
|
1175
|
+
_multicall: Multicall3,
|
|
1175
1176
|
indexPrices: [number, number, boolean, boolean],
|
|
1176
1177
|
overrides?: Overrides
|
|
1177
1178
|
): Promise<PerpetualState> {
|
|
@@ -1183,17 +1184,56 @@ export default class PerpetualDataHandler {
|
|
|
1183
1184
|
} else if (staticInfo.collateralCurrencyType == CollaterlCCY.QUOTE) {
|
|
1184
1185
|
S3 = 1;
|
|
1185
1186
|
}
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1187
|
+
// multicall
|
|
1188
|
+
const proxyCalls: Multicall3.Call3Struct[] = [
|
|
1189
|
+
{
|
|
1190
|
+
target: _proxyContract.target,
|
|
1191
|
+
allowFailure: false,
|
|
1192
|
+
callData: _proxyContract.interface.encodeFunctionData("getAMMState", [
|
|
1193
|
+
perpId,
|
|
1194
|
+
[S2, S3].map(floatToABK64x64) as [bigint, bigint],
|
|
1195
|
+
]),
|
|
1196
|
+
},
|
|
1197
|
+
{
|
|
1198
|
+
target: _proxyContract.target,
|
|
1199
|
+
allowFailure: false,
|
|
1200
|
+
callData: _proxyContract.interface.encodeFunctionData("getMarginAccounts", [[perpId], ZERO_ADDRESS]),
|
|
1201
|
+
},
|
|
1202
|
+
];
|
|
1203
|
+
// multicall
|
|
1204
|
+
const encodedResults = await _multicall.aggregate3.staticCall(proxyCalls, overrides || {});
|
|
1205
|
+
let ammState = _proxyContract.interface.decodeFunctionResult("getAMMState", encodedResults[0].returnData)[0];
|
|
1206
|
+
const margin = _proxyContract.interface.decodeFunctionResult(
|
|
1207
|
+
"getMarginAccounts",
|
|
1208
|
+
encodedResults[1].returnData
|
|
1209
|
+
)[0] as any;
|
|
1210
|
+
|
|
1211
|
+
let longShort = PerpetualDataHandler._oiAndAmmPosToLongShort(ammState[11], margin[0].fPositionBC);
|
|
1212
|
+
return PerpetualDataHandler._parseAMMState(symbol, ammState, longShort, indexPrices, symbolToPerpStaticInfo);
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
/**
|
|
1216
|
+
* Calculate long and short exposures from open interest and long/short
|
|
1217
|
+
* @param oi open interest
|
|
1218
|
+
* @param ammPos amm net exposure
|
|
1219
|
+
* @returns long, short exposure
|
|
1220
|
+
*/
|
|
1221
|
+
protected static _oiAndAmmPosToLongShort(oi: bigint, ammPos: bigint): [bigint, bigint] {
|
|
1222
|
+
let short, long: bigint;
|
|
1223
|
+
if (ammPos > 0n) {
|
|
1224
|
+
short = oi;
|
|
1225
|
+
long = oi - ammPos;
|
|
1226
|
+
} else {
|
|
1227
|
+
long = oi;
|
|
1228
|
+
short = oi + ammPos;
|
|
1229
|
+
}
|
|
1230
|
+
return [long, short];
|
|
1192
1231
|
}
|
|
1193
1232
|
|
|
1194
1233
|
protected static _parseAMMState(
|
|
1195
1234
|
symbol: string,
|
|
1196
1235
|
ammState: bigint[],
|
|
1236
|
+
longShort: [bigint, bigint],
|
|
1197
1237
|
indexPrices: [number, number, boolean, boolean],
|
|
1198
1238
|
symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>
|
|
1199
1239
|
) {
|
|
@@ -1219,6 +1259,8 @@ export default class PerpetualDataHandler {
|
|
|
1219
1259
|
currentFundingRateBps: ABK64x64ToFloat(ammState[14]) * 1e4,
|
|
1220
1260
|
openInterestBC: ABK64x64ToFloat(ammState[11]),
|
|
1221
1261
|
isMarketClosed: indexPrices[2] || indexPrices[3],
|
|
1262
|
+
longBC: ABK64x64ToFloat(longShort[0]),
|
|
1263
|
+
shortBC: ABK64x64ToFloat(longShort[1]),
|
|
1222
1264
|
};
|
|
1223
1265
|
return state;
|
|
1224
1266
|
}
|
|
@@ -1374,10 +1416,10 @@ export default class PerpetualDataHandler {
|
|
|
1374
1416
|
leverage: Number(order.leverageTDR) / 100,
|
|
1375
1417
|
deadline: Number(order.iDeadline),
|
|
1376
1418
|
executionTimestamp: Number(order.executionTimestamp),
|
|
1377
|
-
submittedTimestamp: "submittedTimestamp"
|
|
1419
|
+
submittedTimestamp: order["submittedTimestamp"] ? Number(order["submittedTimestamp"]) : undefined,
|
|
1378
1420
|
parentChildOrderIds:
|
|
1379
|
-
"parentChildDigest1" && "parentChildDigest2"
|
|
1380
|
-
? [order
|
|
1421
|
+
order["parentChildDigest1"] && order["parentChildDigest2"]
|
|
1422
|
+
? [order["parentChildDigest1"].toString(), order["parentChildDigest2"].toString()]
|
|
1381
1423
|
: undefined,
|
|
1382
1424
|
};
|
|
1383
1425
|
return userOrder;
|
|
@@ -1515,12 +1557,7 @@ export default class PerpetualDataHandler {
|
|
|
1515
1557
|
executionTimestamp: obOrder.executionTimestamp,
|
|
1516
1558
|
} as SmartContractOrder;
|
|
1517
1559
|
const order = PerpetualDataHandler.fromSmartContractOrder(scOrder, perpStaticInfo);
|
|
1518
|
-
|
|
1519
|
-
obOrder.parentChildDigest1.toString() != ZERO_ORDER_ID ||
|
|
1520
|
-
obOrder.parentChildDigest2.toString() != ZERO_ORDER_ID
|
|
1521
|
-
) {
|
|
1522
|
-
order.parentChildOrderIds = [obOrder.parentChildDigest1.toString(), obOrder.parentChildDigest2.toString()];
|
|
1523
|
-
}
|
|
1560
|
+
order.parentChildOrderIds = [obOrder.parentChildDigest1.toString(), obOrder.parentChildDigest2.toString()];
|
|
1524
1561
|
return order;
|
|
1525
1562
|
}
|
|
1526
1563
|
|