@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
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const abi_1 = require("@ethersproject/abi");
|
|
4
|
-
const bytes_1 = require("@ethersproject/bytes");
|
|
5
|
-
const keccak256_1 = require("@ethersproject/keccak256");
|
|
6
|
-
const strings_1 = require("@ethersproject/strings");
|
|
7
3
|
const buffer_1 = require("buffer");
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
8
5
|
class TraderDigests {
|
|
9
6
|
/**
|
|
10
7
|
* Creates an order-id from the digest. Order-id is the 'digest' used in the smart contract.
|
|
@@ -15,9 +12,9 @@ class TraderDigests {
|
|
|
15
12
|
createOrderId(digest) {
|
|
16
13
|
let digestBuffer = buffer_1.Buffer.from(digest.substring(2, digest.length), "hex");
|
|
17
14
|
const messagePrefix = "\x19Ethereum Signed Message:\n";
|
|
18
|
-
let tmp = (0,
|
|
15
|
+
let tmp = (0, ethers_1.concat)([(0, ethers_1.toUtf8Bytes)(messagePrefix), (0, ethers_1.toUtf8Bytes)(String(digestBuffer.length)), digestBuffer]);
|
|
19
16
|
// see: https://github.com/ethers-io/ethers.js/blob/c80fcddf50a9023486e9f9acb1848aba4c19f7b6/packages/hash/src.ts/message.ts#L7
|
|
20
|
-
return (0,
|
|
17
|
+
return (0, ethers_1.keccak256)(tmp);
|
|
21
18
|
}
|
|
22
19
|
/**
|
|
23
20
|
* Creates a digest (order-id)
|
|
@@ -31,10 +28,11 @@ class TraderDigests {
|
|
|
31
28
|
*/
|
|
32
29
|
createDigest(order, chainId, isNewOrder, proxyAddress) {
|
|
33
30
|
const NAME = "Perpetual Trade Manager";
|
|
34
|
-
const DOMAIN_TYPEHASH = (0,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
const DOMAIN_TYPEHASH = (0, ethers_1.keccak256)(buffer_1.Buffer.from("EIP712Domain(string name,uint256 chainId,address verifyingContract)"));
|
|
32
|
+
const defaultAbiCoder = new ethers_1.AbiCoder();
|
|
33
|
+
let domainSeparator = (0, ethers_1.keccak256)(defaultAbiCoder.encode(["bytes32", "bytes32", "uint256", "address"], [DOMAIN_TYPEHASH, (0, ethers_1.keccak256)(buffer_1.Buffer.from(NAME)), chainId, proxyAddress]));
|
|
34
|
+
const TRADE_ORDER_TYPEHASH = (0, ethers_1.keccak256)(buffer_1.Buffer.from("Order(uint24 iPerpetualId,uint16 brokerFeeTbps,address traderAddr,address brokerAddr,int128 fAmount,int128 fLimitPrice,int128 fTriggerPrice,uint32 iDeadline,uint32 flags,uint16 leverageTDR,uint32 executionTimestamp)"));
|
|
35
|
+
let structHash = (0, ethers_1.keccak256)(defaultAbiCoder.encode([
|
|
38
36
|
"bytes32",
|
|
39
37
|
"uint24",
|
|
40
38
|
"uint16",
|
|
@@ -61,7 +59,7 @@ class TraderDigests {
|
|
|
61
59
|
order.leverageTDR,
|
|
62
60
|
order.executionTimestamp,
|
|
63
61
|
]));
|
|
64
|
-
let digest = (0,
|
|
62
|
+
let digest = (0, ethers_1.keccak256)(defaultAbiCoder.encode(["bytes32", "bytes32", "bool"], [domainSeparator, structHash, isNewOrder]));
|
|
65
63
|
return digest;
|
|
66
64
|
}
|
|
67
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traderDigests.js","sourceRoot":"","sources":["../../src/traderDigests.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"traderDigests.js","sourceRoot":"","sources":["../../src/traderDigests.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAChC,mCAAgF;AAGhF,MAAqB,aAAa;IAChC;;;;;OAKG;IACI,aAAa,CAAC,MAAc;QACjC,IAAI,YAAY,GAAG,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,gCAAgC,CAAC;QACvD,IAAI,GAAG,GAAG,IAAA,eAAM,EAAC,CAAC,IAAA,oBAAW,EAAC,aAAa,CAAC,EAAE,IAAA,oBAAW,EAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QACvG,+HAA+H;QAC/H,OAAO,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;OASG;IACI,YAAY,CACjB,KAAyB,EACzB,OAAqB,EACrB,UAAmB,EACnB,YAAoB;QAEpB,MAAM,IAAI,GAAG,yBAAyB,CAAC;QACvC,MAAM,eAAe,GAAG,IAAA,kBAAS,EAC/B,eAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CACnF,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,iBAAQ,EAAE,CAAC;QACvC,IAAI,eAAe,GAAG,IAAA,kBAAS,EAC7B,eAAe,CAAC,MAAM,CACpB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAC5C,CAAC,eAAe,EAAE,IAAA,kBAAS,EAAC,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CACvE,CACF,CAAC;QACF,MAAM,oBAAoB,GAAG,IAAA,kBAAS,EACpC,eAAM,CAAC,IAAI,CACT,yNAAyN,CAC1N,CACF,CAAC;QACF,IAAI,UAAU,GAAG,IAAA,kBAAS,EACxB,eAAe,CAAC,MAAM,CACpB;YACE,SAAS;YACT,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,SAAS;YACT,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;SACT,EACD;YACE,oBAAoB;YACpB,KAAK,CAAC,YAAY;YAClB,KAAK,CAAC,aAAa;YACnB,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,aAAa;YACnB,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,KAAK;YACX,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,kBAAkB;SACzB,CACF,CACF,CAAC;QACF,IAAI,MAAM,GAAG,IAAA,kBAAS,EACpB,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAClG,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AApFD,gCAoFC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Signer } from "
|
|
2
|
-
import type { CallOverrides, ContractTransaction, Overrides } from "@ethersproject/contracts";
|
|
1
|
+
import { ContractTransactionResponse, Overrides, Signer } from "ethers";
|
|
3
2
|
import MarketData from "./marketData";
|
|
4
3
|
import type { ClientOrder, NodeSDKConfig, Order, SmartContractOrder } from "./nodeSDKTypes";
|
|
5
4
|
import TraderDigests from "./traderDigests";
|
|
@@ -38,7 +37,7 @@ export default class TraderInterface extends MarketData {
|
|
|
38
37
|
* main();
|
|
39
38
|
*
|
|
40
39
|
*/
|
|
41
|
-
queryExchangeFee(poolSymbolName: string, traderAddr: string, brokerAddr: string, overrides?:
|
|
40
|
+
queryExchangeFee(poolSymbolName: string, traderAddr: string, brokerAddr: string, overrides?: Overrides): Promise<number>;
|
|
42
41
|
/**
|
|
43
42
|
*
|
|
44
43
|
* @param poolSymbolName pool symbol, e.g. MATIC
|
|
@@ -58,7 +57,7 @@ export default class TraderInterface extends MarketData {
|
|
|
58
57
|
* main();
|
|
59
58
|
*
|
|
60
59
|
*/
|
|
61
|
-
getCurrentTraderVolume(poolSymbolName: string, traderAddr: string, overrides?:
|
|
60
|
+
getCurrentTraderVolume(poolSymbolName: string, traderAddr: string, overrides?: Overrides): Promise<number>;
|
|
62
61
|
/**
|
|
63
62
|
* Get digest to cancel an order. Digest needs to be signed and submitted via
|
|
64
63
|
* orderBookContract.cancelOrder(orderId, signature);
|
|
@@ -81,7 +80,7 @@ export default class TraderInterface extends MarketData {
|
|
|
81
80
|
* }
|
|
82
81
|
* main();
|
|
83
82
|
*/
|
|
84
|
-
cancelOrderDigest(symbol: string, orderId: string, overrides?:
|
|
83
|
+
cancelOrderDigest(symbol: string, orderId: string, overrides?: Overrides): Promise<{
|
|
85
84
|
digest: string;
|
|
86
85
|
OBContractAddr: string;
|
|
87
86
|
}>;
|
|
@@ -119,7 +118,7 @@ export default class TraderInterface extends MarketData {
|
|
|
119
118
|
*/
|
|
120
119
|
orderDigest(scOrder: SmartContractOrder): string;
|
|
121
120
|
/**
|
|
122
|
-
* Get the ABI of a method in the proxy contract
|
|
121
|
+
* Get the ABI of a method in the proxy contract. Throws if non-existent
|
|
123
122
|
* @param method Name of the method
|
|
124
123
|
* @returns ABI as a single string
|
|
125
124
|
*/
|
|
@@ -160,7 +159,7 @@ export default class TraderInterface extends MarketData {
|
|
|
160
159
|
* main();
|
|
161
160
|
*
|
|
162
161
|
*/
|
|
163
|
-
addLiquidity(signer: Signer, poolSymbolName: string, amountCC: number, overrides?: Overrides): Promise<
|
|
162
|
+
addLiquidity(signer: Signer, poolSymbolName: string, amountCC: number, overrides?: Overrides): Promise<ContractTransactionResponse>;
|
|
164
163
|
/**
|
|
165
164
|
* Initiates a liquidity withdrawal from the pool
|
|
166
165
|
* It triggers a time-delayed unlocking of the given number of pool shares.
|
|
@@ -185,7 +184,7 @@ export default class TraderInterface extends MarketData {
|
|
|
185
184
|
* main();
|
|
186
185
|
*
|
|
187
186
|
*/
|
|
188
|
-
initiateLiquidityWithdrawal(signer: Signer, poolSymbolName: string, amountPoolShares: number, overrides?: Overrides): Promise<
|
|
187
|
+
initiateLiquidityWithdrawal(signer: Signer, poolSymbolName: string, amountPoolShares: number, overrides?: Overrides): Promise<ContractTransactionResponse>;
|
|
189
188
|
/**
|
|
190
189
|
* Withdraws as much liquidity as there is available after a call to initiateLiquidityWithdrawal.
|
|
191
190
|
* The address loses pool shares in return.
|
|
@@ -208,5 +207,5 @@ export default class TraderInterface extends MarketData {
|
|
|
208
207
|
* main();
|
|
209
208
|
*
|
|
210
209
|
*/
|
|
211
|
-
executeLiquidityWithdrawal(signer: Signer, poolSymbolName: string, overrides?: Overrides): Promise<
|
|
210
|
+
executeLiquidityWithdrawal(signer: Signer, poolSymbolName: string, overrides?: Overrides): Promise<ContractTransactionResponse>;
|
|
212
211
|
}
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ethers_1 = require("ethers");
|
|
6
7
|
const constants_1 = require("./constants");
|
|
7
8
|
const d8XMath_1 = require("./d8XMath");
|
|
8
9
|
const marketData_1 = __importDefault(require("./marketData"));
|
|
@@ -50,8 +51,8 @@ class TraderInterface extends marketData_1.default {
|
|
|
50
51
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
51
52
|
}
|
|
52
53
|
let poolId = perpetualDataHandler_1.default._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
53
|
-
let feeTbps = await this.proxyContract.queryExchangeFee(poolId, traderAddr, brokerAddr, overrides || {});
|
|
54
|
-
return feeTbps / 100000;
|
|
54
|
+
let feeTbps = (await this.proxyContract.queryExchangeFee(poolId, traderAddr, brokerAddr, overrides || {}));
|
|
55
|
+
return Number(feeTbps) / 100000;
|
|
55
56
|
}
|
|
56
57
|
/**
|
|
57
58
|
*
|
|
@@ -109,7 +110,7 @@ class TraderInterface extends marketData_1.default {
|
|
|
109
110
|
let orderBookContract = this.getOrderBookContract(symbol);
|
|
110
111
|
let scOrder = await orderBookContract.orderOfDigest(orderId, overrides || {});
|
|
111
112
|
let digest = this.digestTool.createDigest(scOrder, this.chainId, false, this.proxyAddr);
|
|
112
|
-
return { digest: digest, OBContractAddr: orderBookContract.
|
|
113
|
+
return { digest: digest, OBContractAddr: orderBookContract.target.toString() };
|
|
113
114
|
}
|
|
114
115
|
/**
|
|
115
116
|
* Get the order book address for a perpetual
|
|
@@ -130,7 +131,7 @@ class TraderInterface extends marketData_1.default {
|
|
|
130
131
|
*/
|
|
131
132
|
getOrderBookAddress(symbol) {
|
|
132
133
|
let orderBookContract = this.getOrderBookContract(symbol);
|
|
133
|
-
return orderBookContract.
|
|
134
|
+
return orderBookContract.target.toString();
|
|
134
135
|
}
|
|
135
136
|
/**
|
|
136
137
|
* createSmartContractOrder from user-friendly order
|
|
@@ -153,19 +154,23 @@ class TraderInterface extends marketData_1.default {
|
|
|
153
154
|
if (this.proxyContract == null) {
|
|
154
155
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
155
156
|
}
|
|
156
|
-
let digest = this.digestTool.createDigest(scOrder, this.chainId, true, this.proxyContract.
|
|
157
|
+
let digest = this.digestTool.createDigest(scOrder, this.chainId, true, this.proxyContract.target.toString());
|
|
157
158
|
return digest;
|
|
158
159
|
}
|
|
159
160
|
/**
|
|
160
|
-
* Get the ABI of a method in the proxy contract
|
|
161
|
+
* Get the ABI of a method in the proxy contract. Throws if non-existent
|
|
161
162
|
* @param method Name of the method
|
|
162
163
|
* @returns ABI as a single string
|
|
163
164
|
*/
|
|
164
165
|
getProxyABI(method) {
|
|
165
166
|
if (this.proxyContract == null) {
|
|
166
|
-
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
167
|
+
throw new Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
168
|
+
}
|
|
169
|
+
const res = perpetualDataHandler_1.default._getABIFromContract(this.proxyContract, method);
|
|
170
|
+
if (!res) {
|
|
171
|
+
throw new Error(`no proxy method found with name ${method}`);
|
|
167
172
|
}
|
|
168
|
-
return
|
|
173
|
+
return res;
|
|
169
174
|
}
|
|
170
175
|
/**
|
|
171
176
|
* Get the ABI of a method in the Limit Order Book contract corresponding to a given symbol.
|
|
@@ -178,7 +183,11 @@ class TraderInterface extends marketData_1.default {
|
|
|
178
183
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
179
184
|
}
|
|
180
185
|
let orderBookContract = this.getOrderBookContract(symbol);
|
|
181
|
-
|
|
186
|
+
const res = perpetualDataHandler_1.default._getABIFromContract(orderBookContract, method);
|
|
187
|
+
if (!res) {
|
|
188
|
+
throw new Error(`no proxy method found with name ${method}`);
|
|
189
|
+
}
|
|
190
|
+
return res;
|
|
182
191
|
}
|
|
183
192
|
/**
|
|
184
193
|
* Takes up to three orders and designates the first one as "parent" of the others.
|
|
@@ -232,12 +241,10 @@ class TraderInterface extends marketData_1.default {
|
|
|
232
241
|
if (this.proxyContract == null) {
|
|
233
242
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
234
243
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
.addLiquidity(poolId, (0, d8XMath_1.floatToDecN)(amountCC, decimals), overrides || { gasLimit: this.gasLimit });
|
|
240
|
-
return tx;
|
|
244
|
+
const poolId = perpetualDataHandler_1.default._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
245
|
+
const decimals = this.getSettlementTokenDecimalsFromSymbol(poolSymbolName);
|
|
246
|
+
const proxy = new ethers_1.Contract(this.proxyAddr, this.proxyABI, signer);
|
|
247
|
+
return await proxy.addLiquidity(poolId, (0, d8XMath_1.floatToDecN)(amountCC, decimals), overrides || { gasLimit: this.gasLimit });
|
|
241
248
|
}
|
|
242
249
|
/**
|
|
243
250
|
* Initiates a liquidity withdrawal from the pool
|
|
@@ -268,10 +275,8 @@ class TraderInterface extends marketData_1.default {
|
|
|
268
275
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
269
276
|
}
|
|
270
277
|
let poolId = perpetualDataHandler_1.default._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
.withdrawLiquidity(poolId, (0, d8XMath_1.floatToDec18)(amountPoolShares), overrides || { gasLimit: this.gasLimit });
|
|
274
|
-
return tx;
|
|
278
|
+
const proxy = new ethers_1.Contract(this.proxyAddr, this.proxyABI, signer);
|
|
279
|
+
return await proxy.withdrawLiquidity(poolId, (0, d8XMath_1.floatToDec18)(amountPoolShares), overrides || { gasLimit: this.gasLimit });
|
|
275
280
|
}
|
|
276
281
|
/**
|
|
277
282
|
* Withdraws as much liquidity as there is available after a call to initiateLiquidityWithdrawal.
|
|
@@ -300,10 +305,8 @@ class TraderInterface extends marketData_1.default {
|
|
|
300
305
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
301
306
|
}
|
|
302
307
|
let poolId = perpetualDataHandler_1.default._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
.executeLiquidityWithdrawal(poolId, await signer.getAddress(), overrides || { gasLimit: this.gasLimit });
|
|
306
|
-
return tx;
|
|
308
|
+
const proxy = new ethers_1.Contract(this.proxyAddr, this.proxyABI, signer);
|
|
309
|
+
return await proxy.executeLiquidityWithdrawal(poolId, await signer.getAddress(), overrides || { gasLimit: this.gasLimit });
|
|
307
310
|
}
|
|
308
311
|
}
|
|
309
312
|
exports.default = TraderInterface;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traderInterface.js","sourceRoot":"","sources":["../../src/traderInterface.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"traderInterface.js","sourceRoot":"","sources":["../../src/traderInterface.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/utils.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { BigNumber } from "@ethersproject/bignumber";
|
|
3
2
|
import { Buffer } from "buffer";
|
|
4
3
|
import { NodeSDKConfig } from "./nodeSDKTypes";
|
|
5
4
|
/**
|
|
@@ -56,7 +55,7 @@ export declare function symbolToContractSymbol(s: string, mapping: Map<string, s
|
|
|
56
55
|
* @returns {string} long format e.g. MATIC. if not found the element is ""
|
|
57
56
|
*/
|
|
58
57
|
export declare function symbol4BToLongSymbol(s: string, mapping: Map<string, string>): string;
|
|
59
|
-
export declare function combineFlags(f1:
|
|
60
|
-
export declare function containsFlag(f1:
|
|
58
|
+
export declare function combineFlags(f1: bigint, f2: bigint): bigint;
|
|
59
|
+
export declare function containsFlag(f1: bigint, f2: bigint): boolean;
|
|
61
60
|
export declare function loadConfigAbis(config: NodeSDKConfig): void;
|
|
62
61
|
export declare function sleep(seconds: number): Promise<unknown>;
|
package/dist/cjs/utils.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sleep = exports.loadConfigAbis = exports.containsFlag = exports.combineFlags = exports.symbol4BToLongSymbol = exports.symbolToContractSymbol = exports.contractSymbolToSymbol = exports.fromBytes4HexString = exports.fromBytes4 = exports.toBytes4 = exports.to4Chars = void 0;
|
|
4
|
-
const bignumber_1 = require("@ethersproject/bignumber");
|
|
5
4
|
const buffer_1 = require("buffer");
|
|
6
5
|
/**
|
|
7
6
|
* @module utils
|
|
@@ -126,7 +125,7 @@ function symbol4BToLongSymbol(s, mapping) {
|
|
|
126
125
|
}
|
|
127
126
|
exports.symbol4BToLongSymbol = symbol4BToLongSymbol;
|
|
128
127
|
function combineFlags(f1, f2) {
|
|
129
|
-
return
|
|
128
|
+
return BigInt((parseInt(f1.toString()) | parseInt(f2.toString())) >>> 0);
|
|
130
129
|
}
|
|
131
130
|
exports.combineFlags = combineFlags;
|
|
132
131
|
function containsFlag(f1, f2) {
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const D8X_SDK_VERSION = "
|
|
1
|
+
export declare const D8X_SDK_VERSION = "2.0.0-alpha";
|
package/dist/cjs/version.js
CHANGED
package/dist/cjs/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,aAAa,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { Signer } from "
|
|
2
|
-
import {
|
|
3
|
-
import { CallOverrides, ContractTransaction, Overrides, PayableOverrides } from "@ethersproject/contracts";
|
|
4
|
-
import { Provider } from "@ethersproject/providers";
|
|
1
|
+
import { ContractTransactionResponse, Overrides, Provider, Signer } from "ethers";
|
|
2
|
+
import { PayableOverrides } from "./contracts/common";
|
|
5
3
|
import MarketData from "./marketData";
|
|
6
4
|
import { type NodeSDKConfig } from "./nodeSDKTypes";
|
|
7
5
|
import PerpetualDataHandler from "./perpetualDataHandler";
|
|
@@ -22,16 +20,16 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
22
20
|
* @param {string | Signer} signer Private key or ethers Signer of the account
|
|
23
21
|
*/
|
|
24
22
|
constructor(config: NodeSDKConfig, signer: string | Signer);
|
|
25
|
-
createProxyInstance(provider?: Provider, overrides?:
|
|
23
|
+
createProxyInstance(provider?: Provider, overrides?: Overrides): Promise<void>;
|
|
26
24
|
createProxyInstance(marketData: MarketData): Promise<void>;
|
|
27
25
|
/**
|
|
28
26
|
* Set allowance for ar margin token (e.g., MATIC, ETH, USDC)
|
|
29
27
|
* @param symbol token in 'long-form' such as MATIC, symbol also fine (ETH-USD-MATIC)
|
|
30
28
|
* @param amount optional, amount to approve if not 'infinity'
|
|
31
|
-
* @returns
|
|
29
|
+
* @returns Contract Transaction
|
|
32
30
|
*/
|
|
33
|
-
setAllowance(symbol: string, amount?: number, overrides?: Overrides): Promise<
|
|
34
|
-
protected static _setAllowance(tokenAddr: string, proxyAddr: string, signer: Signer, amount:
|
|
31
|
+
setAllowance(symbol: string, amount?: number, overrides?: Overrides): Promise<ContractTransactionResponse>;
|
|
32
|
+
protected static _setAllowance(tokenAddr: string, proxyAddr: string, signer: Signer, amount: bigint, overrides?: Overrides): Promise<ContractTransactionResponse>;
|
|
35
33
|
/**
|
|
36
34
|
* Address corresponding to the private key used to instantiate this class.
|
|
37
35
|
* @returns {string} Address of this wallet.
|
|
@@ -44,5 +42,5 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
44
42
|
* @param amountToPay Amount in chain currency, e.g. "0.1" for 0.1 MATIC
|
|
45
43
|
* @returns Transaction object
|
|
46
44
|
*/
|
|
47
|
-
swapForMockToken(symbol: string, amountToPay: string, overrides?: PayableOverrides): Promise<
|
|
45
|
+
swapForMockToken(symbol: string, amountToPay: string, overrides?: PayableOverrides): Promise<ContractTransactionResponse>;
|
|
48
46
|
}
|
|
@@ -3,12 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const providers_1 = require("@ethersproject/providers");
|
|
8
|
-
const units_1 = require("@ethersproject/units");
|
|
9
|
-
const wallet_1 = require("@ethersproject/wallet");
|
|
6
|
+
const ethers_1 = require("ethers");
|
|
10
7
|
const constants_1 = require("./constants");
|
|
11
|
-
const
|
|
8
|
+
const contracts_1 = require("./contracts");
|
|
12
9
|
const d8XMath_1 = require("./d8XMath");
|
|
13
10
|
const perpetualDataHandler_1 = __importDefault(require("./perpetualDataHandler"));
|
|
14
11
|
/**
|
|
@@ -45,10 +42,10 @@ class WriteAccessHandler extends perpetualDataHandler_1.default {
|
|
|
45
42
|
* @param provider optional provider
|
|
46
43
|
*/
|
|
47
44
|
async createProxyInstance(providerOrMarketData, overrides) {
|
|
48
|
-
if (providerOrMarketData == undefined ||
|
|
49
|
-
this.provider = providerOrMarketData ?? new
|
|
45
|
+
if (providerOrMarketData == undefined || !("createProxyInstance" in providerOrMarketData)) {
|
|
46
|
+
this.provider = providerOrMarketData ?? new ethers_1.JsonRpcProvider(this.nodeURL, this.network, { staticNetwork: true });
|
|
50
47
|
if (!this.signer) {
|
|
51
|
-
const wallet = new
|
|
48
|
+
const wallet = new ethers_1.Wallet(this.privateKey);
|
|
52
49
|
this.signer = wallet.connect(this.provider);
|
|
53
50
|
}
|
|
54
51
|
await this.initContractsAndData(this.signer, overrides);
|
|
@@ -56,9 +53,9 @@ class WriteAccessHandler extends perpetualDataHandler_1.default {
|
|
|
56
53
|
else {
|
|
57
54
|
const mktData = providerOrMarketData;
|
|
58
55
|
this.nodeURL = mktData.config.nodeURL;
|
|
59
|
-
this.provider = new
|
|
60
|
-
this.proxyContract = new
|
|
61
|
-
this.multicall =
|
|
56
|
+
this.provider = new ethers_1.JsonRpcProvider(mktData.config.nodeURL, mktData.network, { staticNetwork: true });
|
|
57
|
+
this.proxyContract = new ethers_1.Contract(mktData.getProxyAddress(), this.config.proxyABI, this.provider);
|
|
58
|
+
this.multicall = contracts_1.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, this.provider);
|
|
62
59
|
({
|
|
63
60
|
nestedPerpetualIDs: this.nestedPerpetualIDs,
|
|
64
61
|
poolStaticInfos: this.poolStaticInfos,
|
|
@@ -70,7 +67,7 @@ class WriteAccessHandler extends perpetualDataHandler_1.default {
|
|
|
70
67
|
this.signerOrProvider = this.provider;
|
|
71
68
|
}
|
|
72
69
|
if (!this.signer) {
|
|
73
|
-
const wallet = new
|
|
70
|
+
const wallet = new ethers_1.Wallet(this.privateKey);
|
|
74
71
|
this.signer = wallet.connect(this.provider);
|
|
75
72
|
}
|
|
76
73
|
this.traderAddr = await this.signer.getAddress();
|
|
@@ -79,7 +76,7 @@ class WriteAccessHandler extends perpetualDataHandler_1.default {
|
|
|
79
76
|
* Set allowance for ar margin token (e.g., MATIC, ETH, USDC)
|
|
80
77
|
* @param symbol token in 'long-form' such as MATIC, symbol also fine (ETH-USD-MATIC)
|
|
81
78
|
* @param amount optional, amount to approve if not 'infinity'
|
|
82
|
-
* @returns
|
|
79
|
+
* @returns Contract Transaction
|
|
83
80
|
*/
|
|
84
81
|
async setAllowance(symbol, amount, overrides) {
|
|
85
82
|
// extract margin-currency name
|
|
@@ -100,7 +97,7 @@ class WriteAccessHandler extends perpetualDataHandler_1.default {
|
|
|
100
97
|
return WriteAccessHandler._setAllowance(settleTokenAddr, this.proxyAddr, this.signer, amountDec18, overrides);
|
|
101
98
|
}
|
|
102
99
|
static async _setAllowance(tokenAddr, proxyAddr, signer, amount, overrides) {
|
|
103
|
-
const marginToken =
|
|
100
|
+
const marginToken = contracts_1.ERC20__factory.connect(tokenAddr, signer);
|
|
104
101
|
return await marginToken.approve(proxyAddr, amount, overrides || {});
|
|
105
102
|
}
|
|
106
103
|
/**
|
|
@@ -130,12 +127,12 @@ class WriteAccessHandler extends perpetualDataHandler_1.default {
|
|
|
130
127
|
if (swapAddress == undefined) {
|
|
131
128
|
throw Error("No swap contract found for symbol.");
|
|
132
129
|
}
|
|
133
|
-
let contract =
|
|
130
|
+
let contract = contracts_1.MockTokenSwap__factory.connect(swapAddress, this.signer);
|
|
134
131
|
if (overrides && overrides.value !== undefined) {
|
|
135
132
|
throw Error("Pass value to send in function call, not overrides.");
|
|
136
133
|
}
|
|
137
134
|
return await contract.swapToMockToken({
|
|
138
|
-
value: (0,
|
|
135
|
+
value: (0, ethers_1.parseEther)(amountToPay),
|
|
139
136
|
...overrides,
|
|
140
137
|
});
|
|
141
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeAccessHandler.js","sourceRoot":"","sources":["../../src/writeAccessHandler.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"writeAccessHandler.js","sourceRoot":"","sources":["../../src/writeAccessHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Signer } from "
|
|
2
|
-
import type { CallOverrides, Contract, ContractTransaction, Overrides, PayableOverrides } from "@ethersproject/contracts";
|
|
1
|
+
import { BigNumberish, Contract, ContractTransactionResponse, Overrides, Signer } from "ethers";
|
|
3
2
|
import { LimitOrderBook } from "./contracts";
|
|
3
|
+
import { PayableOverrides } from "./contracts/common";
|
|
4
4
|
import type { NodeSDKConfig, Order, OrderResponse, PerpetualStaticInfo, PriceFeedSubmission } from "./nodeSDKTypes";
|
|
5
5
|
import TraderDigests from "./traderDigests";
|
|
6
6
|
import WriteAccessHandler from "./writeAccessHandler";
|
|
@@ -54,7 +54,7 @@ export default class AccountTrade extends WriteAccessHandler {
|
|
|
54
54
|
* main();
|
|
55
55
|
* @returns {ContractTransaction} Contract Transaction (containing events).
|
|
56
56
|
*/
|
|
57
|
-
cancelOrder(symbol: string, orderId: string, submission?: PriceFeedSubmission, overrides?: Overrides): Promise<
|
|
57
|
+
cancelOrder(symbol: string, orderId: string, submission?: PriceFeedSubmission, overrides?: Overrides): Promise<ContractTransactionResponse>;
|
|
58
58
|
/**
|
|
59
59
|
* Submits an order to the exchange.
|
|
60
60
|
* @param {Order} order Order structure. As a minimum the structure needs to
|
|
@@ -133,7 +133,7 @@ export default class AccountTrade extends WriteAccessHandler {
|
|
|
133
133
|
*
|
|
134
134
|
* @returns {number} Current trading volume for this trader, in USD.
|
|
135
135
|
*/
|
|
136
|
-
getCurrentTraderVolume(poolSymbolName: string, overrides?:
|
|
136
|
+
getCurrentTraderVolume(poolSymbolName: string, overrides?: Overrides): Promise<number>;
|
|
137
137
|
/**
|
|
138
138
|
*
|
|
139
139
|
* @param symbol Symbol of the form ETH-USD-MATIC.
|
|
@@ -154,7 +154,7 @@ export default class AccountTrade extends WriteAccessHandler {
|
|
|
154
154
|
*
|
|
155
155
|
* @returns {string[]} Array of Ids for all the orders currently open by this trader.
|
|
156
156
|
*/
|
|
157
|
-
getOrderIds(symbol: string, overrides?:
|
|
157
|
+
getOrderIds(symbol: string, overrides?: Overrides): Promise<string[]>;
|
|
158
158
|
/**
|
|
159
159
|
* Static order function
|
|
160
160
|
* @param order order type (not SmartContractOrder but Order)
|
|
@@ -168,8 +168,8 @@ export default class AccountTrade extends WriteAccessHandler {
|
|
|
168
168
|
* @returns [transaction hash, order id]
|
|
169
169
|
* @ignore
|
|
170
170
|
*/
|
|
171
|
-
_order(order: Order, traderAddr: string, symbolToPerpetualMap: Map<string, PerpetualStaticInfo>, proxyContract: Contract, orderBookContract: LimitOrderBook, chainId:
|
|
172
|
-
protected _cancelOrder(symbol: string, orderId: string, orderBookContract: LimitOrderBook, submission?: PriceFeedSubmission, overrides?: PayableOverrides): Promise<
|
|
171
|
+
_order(order: Order, traderAddr: string, symbolToPerpetualMap: Map<string, PerpetualStaticInfo>, proxyContract: Contract, orderBookContract: LimitOrderBook, chainId: BigNumberish, signer: Signer, parentChildIds?: [string, string], overrides?: Overrides): Promise<OrderResponse>;
|
|
172
|
+
protected _cancelOrder(symbol: string, orderId: string, orderBookContract: LimitOrderBook, submission?: PriceFeedSubmission, overrides?: PayableOverrides): Promise<ContractTransactionResponse>;
|
|
173
173
|
/**
|
|
174
174
|
* Creates a signature
|
|
175
175
|
* @param order smart-contract-type order
|
|
@@ -201,7 +201,7 @@ export default class AccountTrade extends WriteAccessHandler {
|
|
|
201
201
|
*
|
|
202
202
|
* main();
|
|
203
203
|
*/
|
|
204
|
-
addCollateral(symbol: string, amount: number, submission?: PriceFeedSubmission, overrides?: PayableOverrides): Promise<
|
|
204
|
+
addCollateral(symbol: string, amount: number, submission?: PriceFeedSubmission, overrides?: PayableOverrides): Promise<ContractTransactionResponse>;
|
|
205
205
|
/**
|
|
206
206
|
*
|
|
207
207
|
* @param {string} symbol Symbol of the form ETH-USD-MATIC.
|
|
@@ -222,5 +222,5 @@ export default class AccountTrade extends WriteAccessHandler {
|
|
|
222
222
|
*
|
|
223
223
|
* main();
|
|
224
224
|
*/
|
|
225
|
-
removeCollateral(symbol: string, amount: number, submission?: PriceFeedSubmission, overrides?: PayableOverrides): Promise<
|
|
225
|
+
removeCollateral(symbol: string, amount: number, submission?: PriceFeedSubmission, overrides?: PayableOverrides): Promise<ContractTransactionResponse>;
|
|
226
226
|
}
|
package/dist/esm/accountTrade.js
CHANGED
|
@@ -218,23 +218,25 @@ export default class AccountTrade extends WriteAccessHandler {
|
|
|
218
218
|
let scOrder = AccountTrade.toSmartContractOrder(order, traderAddr, symbolToPerpetualMap);
|
|
219
219
|
let clientOrder = AccountTrade.fromSmartContratOrderToClientOrder(scOrder, parentChildIds);
|
|
220
220
|
// if we are here, we have a clean order
|
|
221
|
-
|
|
222
|
-
|
|
221
|
+
let [signature, digest] = await this._createSignature(scOrder, chainId, true, signer, this.proxyAddr);
|
|
222
|
+
if (!overrides) {
|
|
223
|
+
overrides = { gasLimit: this.gasLimit };
|
|
224
|
+
}
|
|
223
225
|
// all orders are sent to the order-book
|
|
224
|
-
|
|
225
|
-
const txData = orderBookContract.interface.encodeFunctionData("postOrders", [[clientOrder], [signature]]);
|
|
226
|
-
let unsignedTx = {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
};
|
|
237
|
-
let tx = await signer.sendTransaction(unsignedTx);
|
|
226
|
+
const tx = await orderBookContract.connect(signer).postOrders([clientOrder], [signature], overrides);
|
|
227
|
+
// const txData = orderBookContract.interface.encodeFunctionData("postOrders", [[clientOrder], [signature]]);
|
|
228
|
+
// let unsignedTx = {
|
|
229
|
+
// to: orderBookContract.target,
|
|
230
|
+
// from: this.traderAddr,
|
|
231
|
+
// nonce: overrides?.nonce,
|
|
232
|
+
// data: txData,
|
|
233
|
+
// gasLimit: overrides?.gasLimit ?? this.gasLimit,
|
|
234
|
+
// // gas price is populated by the provider if not specified
|
|
235
|
+
// gasPrice: overrides?.gasPrice,
|
|
236
|
+
// // gasPrice: overrides.gasPrice ?? parseUnits(gasPrice.toString(), "gwei"),
|
|
237
|
+
// chainId: chainId,
|
|
238
|
+
// };
|
|
239
|
+
// let tx = await signer.sendTransaction(unsignedTx);
|
|
238
240
|
let id = this.digestTool.createOrderId(digest);
|
|
239
241
|
return { tx: tx, orderId: id };
|
|
240
242
|
}
|
|
@@ -268,7 +270,7 @@ export default class AccountTrade extends WriteAccessHandler {
|
|
|
268
270
|
* @ignore
|
|
269
271
|
*/
|
|
270
272
|
async _createSignature(order, chainId, isNewOrder, signer, proxyAddress) {
|
|
271
|
-
let digest =
|
|
273
|
+
let digest = this.digestTool.createDigest(order, chainId, isNewOrder, proxyAddress);
|
|
272
274
|
let digestBuffer = Buffer.from(digest.substring(2, digest.length), "hex");
|
|
273
275
|
let signature = await signer.signMessage(digestBuffer);
|
|
274
276
|
return [signature, digest];
|