@d8x/perpetuals-sdk 0.7.6 → 0.7.7
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.js +243 -134
- package/dist/cjs/accountTrade.js.map +1 -1
- package/dist/cjs/brokerTool.js +290 -144
- package/dist/cjs/brokerTool.js.map +1 -1
- package/dist/cjs/config/priceFeedConfig.json +1 -1
- package/dist/cjs/contracts/factories/ERC20__factory.js +12 -9
- package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +12 -9
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +12 -9
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +12 -9
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +12 -9
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/ShareToken__factory.js +12 -9
- package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +12 -9
- package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +12 -9
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +12 -9
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js +12 -9
- package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -1
- package/dist/cjs/contracts/index.js +1 -1
- package/dist/cjs/d8XMath.js +66 -65
- package/dist/cjs/d8XMath.js.map +1 -1
- package/dist/cjs/index.js +11 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/liquidatorTool.js +137 -80
- package/dist/cjs/liquidatorTool.js.map +1 -1
- package/dist/cjs/liquidityProviderTool.js +65 -33
- package/dist/cjs/liquidityProviderTool.js.map +1 -1
- package/dist/cjs/marketData.js +978 -635
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/nodeSDKTypes.js +22 -10
- package/dist/cjs/nodeSDKTypes.js.map +1 -1
- package/dist/cjs/orderReferrerTool.js +323 -200
- package/dist/cjs/orderReferrerTool.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.js +550 -404
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/perpetualEventHandler.js +190 -129
- package/dist/cjs/perpetualEventHandler.js.map +1 -1
- package/dist/cjs/priceFeeds.js +335 -223
- package/dist/cjs/priceFeeds.js.map +1 -1
- package/dist/cjs/traderDigests.js +23 -20
- package/dist/cjs/traderDigests.js.map +1 -1
- package/dist/cjs/traderInterface.js +87 -54
- package/dist/cjs/traderInterface.js.map +1 -1
- package/dist/cjs/triangulator.js +38 -34
- package/dist/cjs/triangulator.js.map +1 -1
- package/dist/cjs/utils.js +32 -18
- 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/writeAccessHandler.js +112 -78
- package/dist/cjs/writeAccessHandler.js.map +1 -1
- package/dist/esm/accountTrade.js +237 -126
- package/dist/esm/accountTrade.js.map +1 -1
- package/dist/esm/brokerTool.js +284 -136
- package/dist/esm/brokerTool.js.map +1 -1
- package/dist/esm/config/priceFeedConfig.json +1 -1
- package/dist/esm/contracts/factories/ERC20__factory.js +12 -8
- package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js +12 -8
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +12 -8
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js +12 -8
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js +12 -8
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/esm/contracts/factories/ShareToken__factory.js +12 -8
- package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +12 -8
- package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +12 -8
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +12 -8
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js +12 -8
- package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -1
- package/dist/esm/d8XMath.js +64 -63
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/liquidatorTool.js +136 -77
- package/dist/esm/liquidatorTool.js.map +1 -1
- package/dist/esm/liquidityProviderTool.js +63 -29
- package/dist/esm/liquidityProviderTool.js.map +1 -1
- package/dist/esm/marketData.js +971 -626
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/nodeSDKTypes.js +48 -36
- package/dist/esm/nodeSDKTypes.js.map +1 -1
- package/dist/esm/orderReferrerTool.js +319 -194
- package/dist/esm/orderReferrerTool.js.map +1 -1
- package/dist/esm/perpetualDataHandler.js +542 -394
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/perpetualEventHandler.js +188 -126
- package/dist/esm/perpetualEventHandler.js.map +1 -1
- package/dist/esm/priceFeeds.js +332 -218
- package/dist/esm/priceFeeds.js.map +1 -1
- package/dist/esm/traderDigests.js +19 -15
- package/dist/esm/traderDigests.js.map +1 -1
- package/dist/esm/traderInterface.js +83 -48
- package/dist/esm/traderInterface.js.map +1 -1
- package/dist/esm/triangulator.js +39 -34
- package/dist/esm/triangulator.js.map +1 -1
- package/dist/esm/utils.js +30 -16
- 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.js +105 -69
- package/dist/esm/writeAccessHandler.js.map +1 -1
- package/package.json +1 -1
- package/src/accountTrade.ts +6 -1
- package/src/config/priceFeedConfig.json +1 -1
- package/src/orderReferrerTool.ts +2 -0
- package/src/version.ts +1 -1
package/dist/esm/utils.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { __read, __values } from "tslib";
|
|
1
2
|
import { BigNumber } from "@ethersproject/bignumber";
|
|
2
3
|
import { Buffer } from "buffer";
|
|
3
4
|
/**
|
|
@@ -16,7 +17,7 @@ export function to4Chars(s) {
|
|
|
16
17
|
while (s.length < 4) {
|
|
17
18
|
s = s + "\0";
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
+
var k = s.length - 1;
|
|
20
21
|
while (s.length > 4 && k >= 0) {
|
|
21
22
|
// chop off vocals from the end of string
|
|
22
23
|
// e.g. MATIC -> MATC
|
|
@@ -39,7 +40,7 @@ export function to4Chars(s) {
|
|
|
39
40
|
*/
|
|
40
41
|
export function toBytes4(s) {
|
|
41
42
|
s = to4Chars(s);
|
|
42
|
-
|
|
43
|
+
var valBuff = Buffer.from(s, "ascii");
|
|
43
44
|
return valBuff;
|
|
44
45
|
}
|
|
45
46
|
/**
|
|
@@ -50,7 +51,7 @@ export function toBytes4(s) {
|
|
|
50
51
|
* @returns {string} String decoded into to4Chars-type string without null characters
|
|
51
52
|
*/
|
|
52
53
|
export function fromBytes4(b) {
|
|
53
|
-
|
|
54
|
+
var val = b.toString("ascii");
|
|
54
55
|
val = val.replace(/\0/g, "");
|
|
55
56
|
return val;
|
|
56
57
|
}
|
|
@@ -63,8 +64,8 @@ export function fromBytes4(b) {
|
|
|
63
64
|
* returned by the smart contract as bytes4
|
|
64
65
|
*/
|
|
65
66
|
export function fromBytes4HexString(s) {
|
|
66
|
-
|
|
67
|
-
for (
|
|
67
|
+
var res = "";
|
|
68
|
+
for (var k = 2; k < s.length; k = k + 2) {
|
|
68
69
|
res = res + String.fromCharCode(parseInt(s.substring(k, k + 2), 16));
|
|
69
70
|
}
|
|
70
71
|
res = res.replace(/\0/g, "");
|
|
@@ -77,9 +78,10 @@ export function fromBytes4HexString(s) {
|
|
|
77
78
|
* @returns {string} User friendly currency symbol, e.g. "MATIC"
|
|
78
79
|
*/
|
|
79
80
|
export function contractSymbolToSymbol(s, mapping) {
|
|
80
|
-
|
|
81
|
+
var _a;
|
|
82
|
+
var shortCCY = fromBytes4HexString(s);
|
|
81
83
|
// assume CCY is already short if not in the mapping file
|
|
82
|
-
|
|
84
|
+
var longCCY = (_a = mapping.get(shortCCY)) !== null && _a !== void 0 ? _a : shortCCY;
|
|
83
85
|
return longCCY;
|
|
84
86
|
}
|
|
85
87
|
/**
|
|
@@ -89,14 +91,25 @@ export function contractSymbolToSymbol(s, mapping) {
|
|
|
89
91
|
* @returns {Buffer} Buffer that can be used with smart contract to identify tokens
|
|
90
92
|
*/
|
|
91
93
|
export function symbolToContractSymbol(s, mapping) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
var e_1, _a;
|
|
95
|
+
var shortCCY = undefined;
|
|
96
|
+
try {
|
|
97
|
+
for (var mapping_1 = __values(mapping), mapping_1_1 = mapping_1.next(); !mapping_1_1.done; mapping_1_1 = mapping_1.next()) {
|
|
98
|
+
var _b = __read(mapping_1_1.value, 2), k = _b[0], v = _b[1];
|
|
99
|
+
if (v == s) {
|
|
100
|
+
shortCCY = k;
|
|
101
|
+
}
|
|
96
102
|
}
|
|
97
103
|
}
|
|
104
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
105
|
+
finally {
|
|
106
|
+
try {
|
|
107
|
+
if (mapping_1_1 && !mapping_1_1.done && (_a = mapping_1.return)) _a.call(mapping_1);
|
|
108
|
+
}
|
|
109
|
+
finally { if (e_1) throw e_1.error; }
|
|
110
|
+
}
|
|
98
111
|
// if not in the mapping file, assume ccy is already valid
|
|
99
|
-
shortCCY = shortCCY
|
|
112
|
+
shortCCY = shortCCY !== null && shortCCY !== void 0 ? shortCCY : s;
|
|
100
113
|
return toBytes4(shortCCY);
|
|
101
114
|
}
|
|
102
115
|
/**
|
|
@@ -106,10 +119,11 @@ export function symbolToContractSymbol(s, mapping) {
|
|
|
106
119
|
* @returns {string} long format e.g. MATIC. if not found the element is ""
|
|
107
120
|
*/
|
|
108
121
|
export function symbol4BToLongSymbol(s, mapping) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
122
|
+
var _a;
|
|
123
|
+
var ccy = s.split("-");
|
|
124
|
+
var longCCY = "";
|
|
125
|
+
for (var k = 0; k < ccy.length; k++) {
|
|
126
|
+
var sym = (_a = mapping.get(ccy[k])) !== null && _a !== void 0 ? _a : to4Chars(ccy[k]);
|
|
113
127
|
sym = sym.replace(/\0/g, "");
|
|
114
128
|
longCCY = longCCY + "-" + sym;
|
|
115
129
|
}
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;GAEG;AAEH,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,OAAO,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;KACd;IACD,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACrB,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7B,yCAAyC;QACzC,qBAAqB;QACrB,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACzB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;SACtD;QACD,CAAC,EAAE,CAAC;KACL;IACD,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,OAAO,GAAW,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,IAAI,GAAG,GAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAS;IAC3C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACvC,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;KACtE;IACD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAS,EAAE,OAA4B
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const D8X_SDK_VERSION = "0.7.
|
|
1
|
+
export declare const D8X_SDK_VERSION = "0.7.7";
|
package/dist/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export var D8X_SDK_VERSION = "0.7.7";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,eAAe,GAAG,OAAO,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { __assign, __awaiter, __extends, __generator } from "tslib";
|
|
1
2
|
import { Contract } from "@ethersproject/contracts";
|
|
2
3
|
import { StaticJsonRpcProvider } from "@ethersproject/providers";
|
|
3
4
|
import { parseEther } from "@ethersproject/units";
|
|
@@ -13,25 +14,27 @@ import PerpetualDataHandler from "./perpetualDataHandler";
|
|
|
13
14
|
* require gas-payments.
|
|
14
15
|
* @extends PerpetualDataHandler
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
|
+
var WriteAccessHandler = /** @class */ (function (_super) {
|
|
18
|
+
__extends(WriteAccessHandler, _super);
|
|
17
19
|
/**
|
|
18
20
|
* Constructor
|
|
19
21
|
* @param {string | Signer} signer Private key or ethers Signer of the account
|
|
20
22
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
function WriteAccessHandler(config, signer) {
|
|
24
|
+
var _this = _super.call(this, config) || this;
|
|
25
|
+
_this.traderAddr = "";
|
|
26
|
+
_this.signer = null;
|
|
27
|
+
_this.gasLimit = 15000000;
|
|
26
28
|
if (typeof signer == "string") {
|
|
27
|
-
|
|
29
|
+
_this.privateKey = signer;
|
|
28
30
|
}
|
|
29
31
|
else {
|
|
30
|
-
|
|
32
|
+
_this.signer = signer;
|
|
31
33
|
}
|
|
32
34
|
if (config.gasLimit != undefined) {
|
|
33
|
-
|
|
35
|
+
_this.gasLimit = config.gasLimit;
|
|
34
36
|
}
|
|
37
|
+
return _this;
|
|
35
38
|
}
|
|
36
39
|
/**
|
|
37
40
|
* Initialize the writeAccessHandler-Class with this function
|
|
@@ -39,55 +42,80 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
39
42
|
* about perpetual currencies
|
|
40
43
|
* @param provider optional provider
|
|
41
44
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
45
|
+
WriteAccessHandler.prototype.createProxyInstance = function (provider, overrides) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
+
var wallet, _a;
|
|
48
|
+
return __generator(this, function (_b) {
|
|
49
|
+
switch (_b.label) {
|
|
50
|
+
case 0:
|
|
51
|
+
if (provider == undefined) {
|
|
52
|
+
this.provider = new StaticJsonRpcProvider(this.nodeURL);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.provider = provider;
|
|
56
|
+
}
|
|
57
|
+
if (!this.signer) {
|
|
58
|
+
wallet = new Wallet(this.privateKey);
|
|
59
|
+
this.signer = wallet.connect(this.provider);
|
|
60
|
+
}
|
|
61
|
+
return [4 /*yield*/, this.initContractsAndData(this.signer, overrides)];
|
|
62
|
+
case 1:
|
|
63
|
+
_b.sent();
|
|
64
|
+
_a = this;
|
|
65
|
+
return [4 /*yield*/, this.signer.getAddress()];
|
|
66
|
+
case 2:
|
|
67
|
+
_a.traderAddr = _b.sent();
|
|
68
|
+
return [2 /*return*/];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
};
|
|
56
73
|
/**
|
|
57
74
|
* Set allowance for ar margin token (e.g., MATIC, ETH, USDC)
|
|
58
75
|
* @param symbol token in 'long-form' such as MATIC, symbol also fine (ETH-USD-MATIC)
|
|
59
76
|
* @param amount optional, amount to approve if not 'infinity'
|
|
60
77
|
* @returns ContractTransaction
|
|
61
78
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
WriteAccessHandler.prototype.setAllowance = function (symbol, amount, overrides) {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
81
|
+
var symbolarr, marginTokenAddr, amountDec18;
|
|
82
|
+
return __generator(this, function (_a) {
|
|
83
|
+
symbolarr = symbol.split("-");
|
|
84
|
+
symbol = symbol.length == 3 ? symbolarr[2] : symbolarr[0];
|
|
85
|
+
marginTokenAddr = this.symbolToTokenAddrMap.get(symbol);
|
|
86
|
+
if (marginTokenAddr == undefined || this.signer == null) {
|
|
87
|
+
throw Error("No margin token or signer defined, call createProxyInstance");
|
|
88
|
+
}
|
|
89
|
+
if (amount == undefined) {
|
|
90
|
+
amountDec18 = MAX_UINT_256;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
amountDec18 = floatToDecN(amount, this.getMarginTokenDecimalsFromSymbol(symbol));
|
|
94
|
+
}
|
|
95
|
+
return [2 /*return*/, WriteAccessHandler._setAllowance(marginTokenAddr, this.proxyAddr, this.signer, amountDec18, overrides)];
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
WriteAccessHandler._setAllowance = function (tokenAddr, proxyAddr, signer, amount, overrides) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
101
|
+
var marginToken;
|
|
102
|
+
return __generator(this, function (_a) {
|
|
103
|
+
switch (_a.label) {
|
|
104
|
+
case 0:
|
|
105
|
+
marginToken = ERC20__factory.connect(tokenAddr, signer);
|
|
106
|
+
return [4 /*yield*/, marginToken.approve(proxyAddr, amount, overrides || {})];
|
|
107
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
};
|
|
84
112
|
/**
|
|
85
113
|
* Address corresponding to the private key used to instantiate this class.
|
|
86
114
|
* @returns {string} Address of this wallet.
|
|
87
115
|
*/
|
|
88
|
-
getAddress() {
|
|
116
|
+
WriteAccessHandler.prototype.getAddress = function () {
|
|
89
117
|
return this.traderAddr;
|
|
90
|
-
}
|
|
118
|
+
};
|
|
91
119
|
/**
|
|
92
120
|
* Converts a given amount of chain native currency (test MATIC)
|
|
93
121
|
* into a mock token used for trading on testnet, with a rate of 1:100_000
|
|
@@ -95,27 +123,35 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
95
123
|
* @param amountToPay Amount in chain currency, e.g. "0.1" for 0.1 MATIC
|
|
96
124
|
* @returns Transaction object
|
|
97
125
|
*/
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
126
|
+
WriteAccessHandler.prototype.swapForMockToken = function (symbol, amountToPay, overrides) {
|
|
127
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
128
|
+
var tokenAddress, tokenToSwap, swapAddress, contract;
|
|
129
|
+
return __generator(this, function (_a) {
|
|
130
|
+
switch (_a.label) {
|
|
131
|
+
case 0:
|
|
132
|
+
if (this.signer == null) {
|
|
133
|
+
throw Error("no wallet initialized. Use createProxyInstance().");
|
|
134
|
+
}
|
|
135
|
+
tokenAddress = this.getMarginTokenFromSymbol(symbol);
|
|
136
|
+
if (tokenAddress == undefined) {
|
|
137
|
+
throw Error("symbols not found");
|
|
138
|
+
}
|
|
139
|
+
tokenToSwap = new Map(Object.entries(require("./config/mockSwap.json")));
|
|
140
|
+
swapAddress = tokenToSwap.get(tokenAddress);
|
|
141
|
+
if (swapAddress == undefined) {
|
|
142
|
+
throw Error("No swap contract found for symbol.");
|
|
143
|
+
}
|
|
144
|
+
contract = new Contract(swapAddress, MOCK_TOKEN_SWAP_ABI, this.signer);
|
|
145
|
+
if (overrides && overrides.value !== undefined) {
|
|
146
|
+
throw Error("Pass value to send in function call, not overrides.");
|
|
147
|
+
}
|
|
148
|
+
return [4 /*yield*/, contract.swapToMockToken(__assign({ value: parseEther(amountToPay) }, overrides))];
|
|
149
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
150
|
+
}
|
|
151
|
+
});
|
|
118
152
|
});
|
|
119
|
-
}
|
|
120
|
-
|
|
153
|
+
};
|
|
154
|
+
return WriteAccessHandler;
|
|
155
|
+
}(PerpetualDataHandler));
|
|
156
|
+
export default WriteAccessHandler;
|
|
121
157
|
//# sourceMappingURL=writeAccessHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeAccessHandler.js","sourceRoot":"","sources":["../../src/writeAccessHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,QAAQ,EAAoD,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAY,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAiB,MAAM,gBAAgB,CAAC;AAClF,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D;;;;;;GAMG;AACH,
|
|
1
|
+
{"version":3,"file":"writeAccessHandler.js","sourceRoot":"","sources":["../../src/writeAccessHandler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/accountTrade.ts
CHANGED
|
@@ -295,7 +295,12 @@ export default class AccountTrade extends WriteAccessHandler {
|
|
|
295
295
|
let tx: ContractTransaction;
|
|
296
296
|
// all orders are sent to the order-book
|
|
297
297
|
let [signature, digest] = await this._createSignature(scOrder, chainId, true, signer, proxyContract.address);
|
|
298
|
-
|
|
298
|
+
let nonce = await this.signer?.getTransactionCount();
|
|
299
|
+
tx = await orderBookContract.postOrder(
|
|
300
|
+
clientOrder,
|
|
301
|
+
signature,
|
|
302
|
+
overrides || { gasLimit: this.gasLimit, nonce: nonce }
|
|
303
|
+
);
|
|
299
304
|
let id = await this.digestTool.createOrderId(digest);
|
|
300
305
|
return { tx: tx, orderId: id };
|
|
301
306
|
}
|
package/src/orderReferrerTool.ts
CHANGED
|
@@ -102,10 +102,12 @@ export default class OrderReferrerTool extends WriteAccessHandler {
|
|
|
102
102
|
if (submission == undefined) {
|
|
103
103
|
submission = await this.priceFeedGetter.fetchLatestFeedPriceInfoForPerpetual(symbol);
|
|
104
104
|
}
|
|
105
|
+
let nonce = await this.signer.getTransactionCount();
|
|
105
106
|
if (!overrides || overrides.value == undefined) {
|
|
106
107
|
overrides = {
|
|
107
108
|
value: submission.timestamps.length * this.PRICE_UPDATE_FEE_GWEI,
|
|
108
109
|
gasLimit: overrides?.gasLimit ?? this.gasLimit,
|
|
110
|
+
nonce: nonce,
|
|
109
111
|
...overrides,
|
|
110
112
|
} as PayableOverrides;
|
|
111
113
|
}
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const D8X_SDK_VERSION = "0.7.
|
|
1
|
+
export const D8X_SDK_VERSION = "0.7.7";
|