@d8x/perpetuals-sdk 0.7.4 → 0.7.6
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 +134 -239
- package/dist/cjs/accountTrade.js.map +1 -1
- package/dist/cjs/brokerTool.js +144 -290
- package/dist/cjs/brokerTool.js.map +1 -1
- package/dist/cjs/contracts/factories/ERC20__factory.js +9 -12
- package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +9 -12
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +9 -12
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +9 -12
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +9 -12
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/ShareToken__factory.js +9 -12
- package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +9 -12
- package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +9 -12
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +9 -12
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js +9 -12
- package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -1
- package/dist/cjs/contracts/index.js +1 -1
- package/dist/cjs/d8XMath.d.ts +7 -0
- package/dist/cjs/d8XMath.js +81 -61
- 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 +80 -137
- package/dist/cjs/liquidatorTool.js.map +1 -1
- package/dist/cjs/liquidityProviderTool.js +33 -64
- package/dist/cjs/liquidityProviderTool.js.map +1 -1
- package/dist/cjs/marketData.d.ts +8 -1
- package/dist/cjs/marketData.js +641 -949
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/nodeSDKTypes.d.ts +1 -0
- package/dist/cjs/nodeSDKTypes.js +10 -22
- package/dist/cjs/nodeSDKTypes.js.map +1 -1
- package/dist/cjs/orderReferrerTool.js +200 -321
- package/dist/cjs/orderReferrerTool.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.d.ts +11 -0
- package/dist/cjs/perpetualDataHandler.js +422 -535
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/perpetualEventHandler.js +129 -190
- package/dist/cjs/perpetualEventHandler.js.map +1 -1
- package/dist/cjs/priceFeeds.js +223 -335
- package/dist/cjs/priceFeeds.js.map +1 -1
- package/dist/cjs/traderDigests.js +20 -23
- package/dist/cjs/traderDigests.js.map +1 -1
- package/dist/cjs/traderInterface.js +54 -87
- package/dist/cjs/traderInterface.js.map +1 -1
- package/dist/cjs/triangulator.js +34 -38
- package/dist/cjs/triangulator.js.map +1 -1
- package/dist/cjs/utils.js +18 -32
- 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 +78 -112
- package/dist/cjs/writeAccessHandler.js.map +1 -1
- package/dist/esm/accountTrade.js +126 -233
- package/dist/esm/accountTrade.js.map +1 -1
- package/dist/esm/brokerTool.js +136 -284
- package/dist/esm/brokerTool.js.map +1 -1
- package/dist/esm/contracts/factories/ERC20__factory.js +8 -12
- package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js +8 -12
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +8 -12
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js +8 -12
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js +8 -12
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/esm/contracts/factories/ShareToken__factory.js +8 -12
- package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +8 -12
- package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +8 -12
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +8 -12
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js +8 -12
- package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -1
- package/dist/esm/d8XMath.d.ts +7 -0
- package/dist/esm/d8XMath.js +77 -58
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/liquidatorTool.js +77 -136
- package/dist/esm/liquidatorTool.js.map +1 -1
- package/dist/esm/liquidityProviderTool.js +30 -63
- package/dist/esm/liquidityProviderTool.js.map +1 -1
- package/dist/esm/marketData.d.ts +8 -1
- package/dist/esm/marketData.js +632 -942
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/nodeSDKTypes.d.ts +1 -0
- package/dist/esm/nodeSDKTypes.js +36 -48
- package/dist/esm/nodeSDKTypes.js.map +1 -1
- package/dist/esm/orderReferrerTool.js +194 -317
- package/dist/esm/orderReferrerTool.js.map +1 -1
- package/dist/esm/perpetualDataHandler.d.ts +11 -0
- package/dist/esm/perpetualDataHandler.js +413 -528
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/perpetualEventHandler.js +126 -188
- package/dist/esm/perpetualEventHandler.js.map +1 -1
- package/dist/esm/priceFeeds.js +218 -332
- package/dist/esm/priceFeeds.js.map +1 -1
- package/dist/esm/traderDigests.js +15 -19
- package/dist/esm/traderDigests.js.map +1 -1
- package/dist/esm/traderInterface.js +48 -83
- package/dist/esm/traderInterface.js.map +1 -1
- package/dist/esm/triangulator.js +34 -39
- package/dist/esm/triangulator.js.map +1 -1
- package/dist/esm/utils.js +16 -30
- 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 +70 -106
- package/dist/esm/writeAccessHandler.js.map +1 -1
- package/package.json +1 -1
- package/src/d8XMath.ts +21 -0
- package/src/liquidityProviderTool.ts +5 -4
- package/src/marketData.ts +26 -0
- package/src/nodeSDKTypes.ts +1 -0
- package/src/perpetualDataHandler.ts +27 -0
- package/src/version.ts +1 -1
- package/src/writeAccessHandler.ts +3 -3
package/dist/cjs/utils.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
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
|
-
|
|
6
|
-
var buffer_1 = require("buffer");
|
|
4
|
+
const bignumber_1 = require("@ethersproject/bignumber");
|
|
5
|
+
const buffer_1 = require("buffer");
|
|
7
6
|
/**
|
|
8
7
|
* @module utils
|
|
9
8
|
*/
|
|
@@ -20,7 +19,7 @@ function to4Chars(s) {
|
|
|
20
19
|
while (s.length < 4) {
|
|
21
20
|
s = s + "\0";
|
|
22
21
|
}
|
|
23
|
-
|
|
22
|
+
let k = s.length - 1;
|
|
24
23
|
while (s.length > 4 && k >= 0) {
|
|
25
24
|
// chop off vocals from the end of string
|
|
26
25
|
// e.g. MATIC -> MATC
|
|
@@ -44,7 +43,7 @@ exports.to4Chars = to4Chars;
|
|
|
44
43
|
*/
|
|
45
44
|
function toBytes4(s) {
|
|
46
45
|
s = to4Chars(s);
|
|
47
|
-
|
|
46
|
+
let valBuff = buffer_1.Buffer.from(s, "ascii");
|
|
48
47
|
return valBuff;
|
|
49
48
|
}
|
|
50
49
|
exports.toBytes4 = toBytes4;
|
|
@@ -56,7 +55,7 @@ exports.toBytes4 = toBytes4;
|
|
|
56
55
|
* @returns {string} String decoded into to4Chars-type string without null characters
|
|
57
56
|
*/
|
|
58
57
|
function fromBytes4(b) {
|
|
59
|
-
|
|
58
|
+
let val = b.toString("ascii");
|
|
60
59
|
val = val.replace(/\0/g, "");
|
|
61
60
|
return val;
|
|
62
61
|
}
|
|
@@ -70,8 +69,8 @@ exports.fromBytes4 = fromBytes4;
|
|
|
70
69
|
* returned by the smart contract as bytes4
|
|
71
70
|
*/
|
|
72
71
|
function fromBytes4HexString(s) {
|
|
73
|
-
|
|
74
|
-
for (
|
|
72
|
+
let res = "";
|
|
73
|
+
for (let k = 2; k < s.length; k = k + 2) {
|
|
75
74
|
res = res + String.fromCharCode(parseInt(s.substring(k, k + 2), 16));
|
|
76
75
|
}
|
|
77
76
|
res = res.replace(/\0/g, "");
|
|
@@ -85,10 +84,9 @@ exports.fromBytes4HexString = fromBytes4HexString;
|
|
|
85
84
|
* @returns {string} User friendly currency symbol, e.g. "MATIC"
|
|
86
85
|
*/
|
|
87
86
|
function contractSymbolToSymbol(s, mapping) {
|
|
88
|
-
|
|
89
|
-
var shortCCY = fromBytes4HexString(s);
|
|
87
|
+
let shortCCY = fromBytes4HexString(s);
|
|
90
88
|
// assume CCY is already short if not in the mapping file
|
|
91
|
-
|
|
89
|
+
let longCCY = mapping.get(shortCCY) ?? shortCCY;
|
|
92
90
|
return longCCY;
|
|
93
91
|
}
|
|
94
92
|
exports.contractSymbolToSymbol = contractSymbolToSymbol;
|
|
@@ -99,25 +97,14 @@ exports.contractSymbolToSymbol = contractSymbolToSymbol;
|
|
|
99
97
|
* @returns {Buffer} Buffer that can be used with smart contract to identify tokens
|
|
100
98
|
*/
|
|
101
99
|
function symbolToContractSymbol(s, mapping) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
}
|
|
100
|
+
let shortCCY = undefined;
|
|
101
|
+
for (let [k, v] of mapping) {
|
|
102
|
+
if (v == s) {
|
|
103
|
+
shortCCY = k;
|
|
110
104
|
}
|
|
111
105
|
}
|
|
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
|
-
}
|
|
119
106
|
// if not in the mapping file, assume ccy is already valid
|
|
120
|
-
shortCCY = shortCCY
|
|
107
|
+
shortCCY = shortCCY ?? s;
|
|
121
108
|
return toBytes4(shortCCY);
|
|
122
109
|
}
|
|
123
110
|
exports.symbolToContractSymbol = symbolToContractSymbol;
|
|
@@ -128,11 +115,10 @@ exports.symbolToContractSymbol = symbolToContractSymbol;
|
|
|
128
115
|
* @returns {string} long format e.g. MATIC. if not found the element is ""
|
|
129
116
|
*/
|
|
130
117
|
function symbol4BToLongSymbol(s, mapping) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
var sym = (_a = mapping.get(ccy[k])) !== null && _a !== void 0 ? _a : to4Chars(ccy[k]);
|
|
118
|
+
let ccy = s.split("-");
|
|
119
|
+
let longCCY = "";
|
|
120
|
+
for (let k = 0; k < ccy.length; k++) {
|
|
121
|
+
let sym = mapping.get(ccy[k]) ?? to4Chars(ccy[k]);
|
|
136
122
|
sym = sym.replace(/\0/g, "");
|
|
137
123
|
longCCY = longCCY + "-" + sym;
|
|
138
124
|
}
|
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.6";
|
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
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const contracts_1 = require("@ethersproject/contracts");
|
|
5
|
+
const providers_1 = require("@ethersproject/providers");
|
|
6
|
+
const units_1 = require("@ethersproject/units");
|
|
7
|
+
const wallet_1 = require("@ethersproject/wallet");
|
|
8
|
+
const contracts_2 = require("./contracts");
|
|
9
|
+
const d8XMath_1 = require("./d8XMath");
|
|
10
|
+
const nodeSDKTypes_1 = require("./nodeSDKTypes");
|
|
11
|
+
const 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,27 +16,25 @@ var perpetualDataHandler_1 = tslib_1.__importDefault(require("./perpetualDataHan
|
|
|
16
16
|
* require gas-payments.
|
|
17
17
|
* @extends PerpetualDataHandler
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
|
-
tslib_1.__extends(WriteAccessHandler, _super);
|
|
19
|
+
class WriteAccessHandler extends perpetualDataHandler_1.default {
|
|
21
20
|
/**
|
|
22
21
|
* Constructor
|
|
23
22
|
* @param {string | Signer} signer Private key or ethers Signer of the account
|
|
24
23
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
constructor(config, signer) {
|
|
25
|
+
super(config);
|
|
26
|
+
this.traderAddr = "";
|
|
27
|
+
this.signer = null;
|
|
28
|
+
this.gasLimit = 15000000;
|
|
30
29
|
if (typeof signer == "string") {
|
|
31
|
-
|
|
30
|
+
this.privateKey = signer;
|
|
32
31
|
}
|
|
33
32
|
else {
|
|
34
|
-
|
|
33
|
+
this.signer = signer;
|
|
35
34
|
}
|
|
36
35
|
if (config.gasLimit != undefined) {
|
|
37
|
-
|
|
36
|
+
this.gasLimit = config.gasLimit;
|
|
38
37
|
}
|
|
39
|
-
return _this;
|
|
40
38
|
}
|
|
41
39
|
/**
|
|
42
40
|
* Initialize the writeAccessHandler-Class with this function
|
|
@@ -44,80 +42,55 @@ var WriteAccessHandler = /** @class */ (function (_super) {
|
|
|
44
42
|
* about perpetual currencies
|
|
45
43
|
* @param provider optional provider
|
|
46
44
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
};
|
|
45
|
+
async createProxyInstance(provider, overrides) {
|
|
46
|
+
if (provider == undefined) {
|
|
47
|
+
this.provider = new providers_1.StaticJsonRpcProvider(this.nodeURL);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.provider = provider;
|
|
51
|
+
}
|
|
52
|
+
if (!this.signer) {
|
|
53
|
+
const wallet = new wallet_1.Wallet(this.privateKey);
|
|
54
|
+
this.signer = wallet.connect(this.provider);
|
|
55
|
+
}
|
|
56
|
+
await this.initContractsAndData(this.signer, overrides);
|
|
57
|
+
this.traderAddr = await this.signer.getAddress();
|
|
58
|
+
}
|
|
75
59
|
/**
|
|
76
60
|
* Set allowance for ar margin token (e.g., MATIC, ETH, USDC)
|
|
77
61
|
* @param symbol token in 'long-form' such as MATIC, symbol also fine (ETH-USD-MATIC)
|
|
78
62
|
* @param amount optional, amount to approve if not 'infinity'
|
|
79
63
|
* @returns ContractTransaction
|
|
80
64
|
*/
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
};
|
|
65
|
+
async setAllowance(symbol, amount, overrides) {
|
|
66
|
+
//extract margin-currency name
|
|
67
|
+
let symbolarr = symbol.split("-");
|
|
68
|
+
symbol = symbol.length == 3 ? symbolarr[2] : symbolarr[0];
|
|
69
|
+
//note: symbol is in long format
|
|
70
|
+
let marginTokenAddr = this.symbolToTokenAddrMap.get(symbol);
|
|
71
|
+
if (marginTokenAddr == undefined || this.signer == null) {
|
|
72
|
+
throw Error("No margin token or signer defined, call createProxyInstance");
|
|
73
|
+
}
|
|
74
|
+
let amountDec18;
|
|
75
|
+
if (amount == undefined) {
|
|
76
|
+
amountDec18 = nodeSDKTypes_1.MAX_UINT_256;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
amountDec18 = (0, d8XMath_1.floatToDecN)(amount, this.getMarginTokenDecimalsFromSymbol(symbol));
|
|
80
|
+
}
|
|
81
|
+
return WriteAccessHandler._setAllowance(marginTokenAddr, this.proxyAddr, this.signer, amountDec18, overrides);
|
|
82
|
+
}
|
|
83
|
+
static async _setAllowance(tokenAddr, proxyAddr, signer, amount, overrides) {
|
|
84
|
+
const marginToken = contracts_2.ERC20__factory.connect(tokenAddr, signer);
|
|
85
|
+
return await marginToken.approve(proxyAddr, amount, overrides || {});
|
|
86
|
+
}
|
|
114
87
|
/**
|
|
115
88
|
* Address corresponding to the private key used to instantiate this class.
|
|
116
89
|
* @returns {string} Address of this wallet.
|
|
117
90
|
*/
|
|
118
|
-
|
|
91
|
+
getAddress() {
|
|
119
92
|
return this.traderAddr;
|
|
120
|
-
}
|
|
93
|
+
}
|
|
121
94
|
/**
|
|
122
95
|
* Converts a given amount of chain native currency (test MATIC)
|
|
123
96
|
* into a mock token used for trading on testnet, with a rate of 1:100_000
|
|
@@ -125,35 +98,28 @@ var WriteAccessHandler = /** @class */ (function (_super) {
|
|
|
125
98
|
* @param amountToPay Amount in chain currency, e.g. "0.1" for 0.1 MATIC
|
|
126
99
|
* @returns Transaction object
|
|
127
100
|
*/
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
});
|
|
101
|
+
async swapForMockToken(symbol, amountToPay, overrides) {
|
|
102
|
+
if (this.signer == null) {
|
|
103
|
+
throw Error("no wallet initialized. Use createProxyInstance().");
|
|
104
|
+
}
|
|
105
|
+
let tokenAddress = this.getMarginTokenFromSymbol(symbol);
|
|
106
|
+
if (tokenAddress == undefined) {
|
|
107
|
+
throw Error("symbols not found");
|
|
108
|
+
}
|
|
109
|
+
let tokenToSwap = new Map(Object.entries(require("./config/mockSwap.json")));
|
|
110
|
+
let swapAddress = tokenToSwap.get(tokenAddress);
|
|
111
|
+
if (swapAddress == undefined) {
|
|
112
|
+
throw Error("No swap contract found for symbol.");
|
|
113
|
+
}
|
|
114
|
+
let contract = new contracts_1.Contract(swapAddress, nodeSDKTypes_1.MOCK_TOKEN_SWAP_ABI, this.signer);
|
|
115
|
+
if (overrides && overrides.value !== undefined) {
|
|
116
|
+
throw Error("Pass value to send in function call, not overrides.");
|
|
117
|
+
}
|
|
118
|
+
return await contract.swapToMockToken({
|
|
119
|
+
value: (0, units_1.parseEther)(amountToPay),
|
|
120
|
+
...overrides,
|
|
154
121
|
});
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
}(perpetualDataHandler_1.default));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
158
124
|
exports.default = WriteAccessHandler;
|
|
159
125
|
//# 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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"}
|