@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/cjs/utils.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.containsFlag = exports.combineFlags = exports.symbol4BToLongSymbol = exports.symbolToContractSymbol = exports.contractSymbolToSymbol = exports.fromBytes4HexString = exports.fromBytes4 = exports.toBytes4 = exports.to4Chars = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var bignumber_1 = require("@ethersproject/bignumber");
|
|
6
|
+
var buffer_1 = require("buffer");
|
|
6
7
|
/**
|
|
7
8
|
* @module utils
|
|
8
9
|
*/
|
|
@@ -19,7 +20,7 @@ function to4Chars(s) {
|
|
|
19
20
|
while (s.length < 4) {
|
|
20
21
|
s = s + "\0";
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
var k = s.length - 1;
|
|
23
24
|
while (s.length > 4 && k >= 0) {
|
|
24
25
|
// chop off vocals from the end of string
|
|
25
26
|
// e.g. MATIC -> MATC
|
|
@@ -43,7 +44,7 @@ exports.to4Chars = to4Chars;
|
|
|
43
44
|
*/
|
|
44
45
|
function toBytes4(s) {
|
|
45
46
|
s = to4Chars(s);
|
|
46
|
-
|
|
47
|
+
var valBuff = buffer_1.Buffer.from(s, "ascii");
|
|
47
48
|
return valBuff;
|
|
48
49
|
}
|
|
49
50
|
exports.toBytes4 = toBytes4;
|
|
@@ -55,7 +56,7 @@ exports.toBytes4 = toBytes4;
|
|
|
55
56
|
* @returns {string} String decoded into to4Chars-type string without null characters
|
|
56
57
|
*/
|
|
57
58
|
function fromBytes4(b) {
|
|
58
|
-
|
|
59
|
+
var val = b.toString("ascii");
|
|
59
60
|
val = val.replace(/\0/g, "");
|
|
60
61
|
return val;
|
|
61
62
|
}
|
|
@@ -69,8 +70,8 @@ exports.fromBytes4 = fromBytes4;
|
|
|
69
70
|
* returned by the smart contract as bytes4
|
|
70
71
|
*/
|
|
71
72
|
function fromBytes4HexString(s) {
|
|
72
|
-
|
|
73
|
-
for (
|
|
73
|
+
var res = "";
|
|
74
|
+
for (var k = 2; k < s.length; k = k + 2) {
|
|
74
75
|
res = res + String.fromCharCode(parseInt(s.substring(k, k + 2), 16));
|
|
75
76
|
}
|
|
76
77
|
res = res.replace(/\0/g, "");
|
|
@@ -84,9 +85,10 @@ exports.fromBytes4HexString = fromBytes4HexString;
|
|
|
84
85
|
* @returns {string} User friendly currency symbol, e.g. "MATIC"
|
|
85
86
|
*/
|
|
86
87
|
function contractSymbolToSymbol(s, mapping) {
|
|
87
|
-
|
|
88
|
+
var _a;
|
|
89
|
+
var shortCCY = fromBytes4HexString(s);
|
|
88
90
|
// assume CCY is already short if not in the mapping file
|
|
89
|
-
|
|
91
|
+
var longCCY = (_a = mapping.get(shortCCY)) !== null && _a !== void 0 ? _a : shortCCY;
|
|
90
92
|
return longCCY;
|
|
91
93
|
}
|
|
92
94
|
exports.contractSymbolToSymbol = contractSymbolToSymbol;
|
|
@@ -97,14 +99,25 @@ exports.contractSymbolToSymbol = contractSymbolToSymbol;
|
|
|
97
99
|
* @returns {Buffer} Buffer that can be used with smart contract to identify tokens
|
|
98
100
|
*/
|
|
99
101
|
function symbolToContractSymbol(s, mapping) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
var e_1, _a;
|
|
103
|
+
var shortCCY = undefined;
|
|
104
|
+
try {
|
|
105
|
+
for (var mapping_1 = tslib_1.__values(mapping), mapping_1_1 = mapping_1.next(); !mapping_1_1.done; mapping_1_1 = mapping_1.next()) {
|
|
106
|
+
var _b = tslib_1.__read(mapping_1_1.value, 2), k = _b[0], v = _b[1];
|
|
107
|
+
if (v == s) {
|
|
108
|
+
shortCCY = k;
|
|
109
|
+
}
|
|
104
110
|
}
|
|
105
111
|
}
|
|
112
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
113
|
+
finally {
|
|
114
|
+
try {
|
|
115
|
+
if (mapping_1_1 && !mapping_1_1.done && (_a = mapping_1.return)) _a.call(mapping_1);
|
|
116
|
+
}
|
|
117
|
+
finally { if (e_1) throw e_1.error; }
|
|
118
|
+
}
|
|
106
119
|
// if not in the mapping file, assume ccy is already valid
|
|
107
|
-
shortCCY = shortCCY
|
|
120
|
+
shortCCY = shortCCY !== null && shortCCY !== void 0 ? shortCCY : s;
|
|
108
121
|
return toBytes4(shortCCY);
|
|
109
122
|
}
|
|
110
123
|
exports.symbolToContractSymbol = symbolToContractSymbol;
|
|
@@ -115,10 +128,11 @@ exports.symbolToContractSymbol = symbolToContractSymbol;
|
|
|
115
128
|
* @returns {string} long format e.g. MATIC. if not found the element is ""
|
|
116
129
|
*/
|
|
117
130
|
function symbol4BToLongSymbol(s, mapping) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
131
|
+
var _a;
|
|
132
|
+
var ccy = s.split("-");
|
|
133
|
+
var longCCY = "";
|
|
134
|
+
for (var k = 0; k < ccy.length; k++) {
|
|
135
|
+
var sym = (_a = mapping.get(ccy[k])) !== null && _a !== void 0 ? _a : to4Chars(ccy[k]);
|
|
122
136
|
sym = sym.replace(/\0/g, "");
|
|
123
137
|
longCCY = longCCY + "-" + sym;
|
|
124
138
|
}
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"
|
|
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 = "0.7.
|
|
1
|
+
export declare const D8X_SDK_VERSION = "0.7.7";
|
package/dist/cjs/version.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var contracts_1 = require("@ethersproject/contracts");
|
|
5
|
+
var providers_1 = require("@ethersproject/providers");
|
|
6
|
+
var units_1 = require("@ethersproject/units");
|
|
7
|
+
var wallet_1 = require("@ethersproject/wallet");
|
|
8
|
+
var contracts_2 = require("./contracts");
|
|
9
|
+
var d8XMath_1 = require("./d8XMath");
|
|
10
|
+
var nodeSDKTypes_1 = require("./nodeSDKTypes");
|
|
11
|
+
var perpetualDataHandler_1 = tslib_1.__importDefault(require("./perpetualDataHandler"));
|
|
12
12
|
/**
|
|
13
13
|
* This is a parent class for the classes that require
|
|
14
14
|
* write access to the contracts.
|
|
@@ -16,25 +16,27 @@ const perpetualDataHandler_1 = tslib_1.__importDefault(require("./perpetualDataH
|
|
|
16
16
|
* require gas-payments.
|
|
17
17
|
* @extends PerpetualDataHandler
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
var WriteAccessHandler = /** @class */ (function (_super) {
|
|
20
|
+
tslib_1.__extends(WriteAccessHandler, _super);
|
|
20
21
|
/**
|
|
21
22
|
* Constructor
|
|
22
23
|
* @param {string | Signer} signer Private key or ethers Signer of the account
|
|
23
24
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
function WriteAccessHandler(config, signer) {
|
|
26
|
+
var _this = _super.call(this, config) || this;
|
|
27
|
+
_this.traderAddr = "";
|
|
28
|
+
_this.signer = null;
|
|
29
|
+
_this.gasLimit = 15000000;
|
|
29
30
|
if (typeof signer == "string") {
|
|
30
|
-
|
|
31
|
+
_this.privateKey = signer;
|
|
31
32
|
}
|
|
32
33
|
else {
|
|
33
|
-
|
|
34
|
+
_this.signer = signer;
|
|
34
35
|
}
|
|
35
36
|
if (config.gasLimit != undefined) {
|
|
36
|
-
|
|
37
|
+
_this.gasLimit = config.gasLimit;
|
|
37
38
|
}
|
|
39
|
+
return _this;
|
|
38
40
|
}
|
|
39
41
|
/**
|
|
40
42
|
* Initialize the writeAccessHandler-Class with this function
|
|
@@ -42,55 +44,80 @@ class WriteAccessHandler extends perpetualDataHandler_1.default {
|
|
|
42
44
|
* about perpetual currencies
|
|
43
45
|
* @param provider optional provider
|
|
44
46
|
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
47
|
+
WriteAccessHandler.prototype.createProxyInstance = function (provider, overrides) {
|
|
48
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
49
|
+
var wallet, _a;
|
|
50
|
+
return tslib_1.__generator(this, function (_b) {
|
|
51
|
+
switch (_b.label) {
|
|
52
|
+
case 0:
|
|
53
|
+
if (provider == undefined) {
|
|
54
|
+
this.provider = new providers_1.StaticJsonRpcProvider(this.nodeURL);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this.provider = provider;
|
|
58
|
+
}
|
|
59
|
+
if (!this.signer) {
|
|
60
|
+
wallet = new wallet_1.Wallet(this.privateKey);
|
|
61
|
+
this.signer = wallet.connect(this.provider);
|
|
62
|
+
}
|
|
63
|
+
return [4 /*yield*/, this.initContractsAndData(this.signer, overrides)];
|
|
64
|
+
case 1:
|
|
65
|
+
_b.sent();
|
|
66
|
+
_a = this;
|
|
67
|
+
return [4 /*yield*/, this.signer.getAddress()];
|
|
68
|
+
case 2:
|
|
69
|
+
_a.traderAddr = _b.sent();
|
|
70
|
+
return [2 /*return*/];
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
};
|
|
59
75
|
/**
|
|
60
76
|
* Set allowance for ar margin token (e.g., MATIC, ETH, USDC)
|
|
61
77
|
* @param symbol token in 'long-form' such as MATIC, symbol also fine (ETH-USD-MATIC)
|
|
62
78
|
* @param amount optional, amount to approve if not 'infinity'
|
|
63
79
|
* @returns ContractTransaction
|
|
64
80
|
*/
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
WriteAccessHandler.prototype.setAllowance = function (symbol, amount, overrides) {
|
|
82
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
83
|
+
var symbolarr, marginTokenAddr, amountDec18;
|
|
84
|
+
return tslib_1.__generator(this, function (_a) {
|
|
85
|
+
symbolarr = symbol.split("-");
|
|
86
|
+
symbol = symbol.length == 3 ? symbolarr[2] : symbolarr[0];
|
|
87
|
+
marginTokenAddr = this.symbolToTokenAddrMap.get(symbol);
|
|
88
|
+
if (marginTokenAddr == undefined || this.signer == null) {
|
|
89
|
+
throw Error("No margin token or signer defined, call createProxyInstance");
|
|
90
|
+
}
|
|
91
|
+
if (amount == undefined) {
|
|
92
|
+
amountDec18 = nodeSDKTypes_1.MAX_UINT_256;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
amountDec18 = (0, d8XMath_1.floatToDecN)(amount, this.getMarginTokenDecimalsFromSymbol(symbol));
|
|
96
|
+
}
|
|
97
|
+
return [2 /*return*/, WriteAccessHandler._setAllowance(marginTokenAddr, this.proxyAddr, this.signer, amountDec18, overrides)];
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
WriteAccessHandler._setAllowance = function (tokenAddr, proxyAddr, signer, amount, overrides) {
|
|
102
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
103
|
+
var marginToken;
|
|
104
|
+
return tslib_1.__generator(this, function (_a) {
|
|
105
|
+
switch (_a.label) {
|
|
106
|
+
case 0:
|
|
107
|
+
marginToken = contracts_2.ERC20__factory.connect(tokenAddr, signer);
|
|
108
|
+
return [4 /*yield*/, marginToken.approve(proxyAddr, amount, overrides || {})];
|
|
109
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
};
|
|
87
114
|
/**
|
|
88
115
|
* Address corresponding to the private key used to instantiate this class.
|
|
89
116
|
* @returns {string} Address of this wallet.
|
|
90
117
|
*/
|
|
91
|
-
getAddress() {
|
|
118
|
+
WriteAccessHandler.prototype.getAddress = function () {
|
|
92
119
|
return this.traderAddr;
|
|
93
|
-
}
|
|
120
|
+
};
|
|
94
121
|
/**
|
|
95
122
|
* Converts a given amount of chain native currency (test MATIC)
|
|
96
123
|
* into a mock token used for trading on testnet, with a rate of 1:100_000
|
|
@@ -98,28 +125,35 @@ class WriteAccessHandler extends perpetualDataHandler_1.default {
|
|
|
98
125
|
* @param amountToPay Amount in chain currency, e.g. "0.1" for 0.1 MATIC
|
|
99
126
|
* @returns Transaction object
|
|
100
127
|
*/
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
128
|
+
WriteAccessHandler.prototype.swapForMockToken = function (symbol, amountToPay, overrides) {
|
|
129
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
130
|
+
var tokenAddress, tokenToSwap, swapAddress, contract;
|
|
131
|
+
return tslib_1.__generator(this, function (_a) {
|
|
132
|
+
switch (_a.label) {
|
|
133
|
+
case 0:
|
|
134
|
+
if (this.signer == null) {
|
|
135
|
+
throw Error("no wallet initialized. Use createProxyInstance().");
|
|
136
|
+
}
|
|
137
|
+
tokenAddress = this.getMarginTokenFromSymbol(symbol);
|
|
138
|
+
if (tokenAddress == undefined) {
|
|
139
|
+
throw Error("symbols not found");
|
|
140
|
+
}
|
|
141
|
+
tokenToSwap = new Map(Object.entries(require("./config/mockSwap.json")));
|
|
142
|
+
swapAddress = tokenToSwap.get(tokenAddress);
|
|
143
|
+
if (swapAddress == undefined) {
|
|
144
|
+
throw Error("No swap contract found for symbol.");
|
|
145
|
+
}
|
|
146
|
+
contract = new contracts_1.Contract(swapAddress, nodeSDKTypes_1.MOCK_TOKEN_SWAP_ABI, this.signer);
|
|
147
|
+
if (overrides && overrides.value !== undefined) {
|
|
148
|
+
throw Error("Pass value to send in function call, not overrides.");
|
|
149
|
+
}
|
|
150
|
+
return [4 /*yield*/, contract.swapToMockToken(tslib_1.__assign({ value: (0, units_1.parseEther)(amountToPay) }, overrides))];
|
|
151
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
152
|
+
}
|
|
153
|
+
});
|
|
121
154
|
});
|
|
122
|
-
}
|
|
123
|
-
|
|
155
|
+
};
|
|
156
|
+
return WriteAccessHandler;
|
|
157
|
+
}(perpetualDataHandler_1.default));
|
|
124
158
|
exports.default = WriteAccessHandler;
|
|
125
159
|
//# sourceMappingURL=writeAccessHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeAccessHandler.js","sourceRoot":"","sources":["../../src/writeAccessHandler.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"writeAccessHandler.js","sourceRoot":"","sources":["../../src/writeAccessHandler.ts"],"names":[],"mappings":"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"}
|