@paraswap/dex-lib 2.12.12 → 2.12.13-curvev1-cusdc-enable.0
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/build/abi/maverick/pool.json +913 -0
- package/build/abi/maverick/router.json +703 -0
- package/build/dex/curve-v1/config.js +0 -2
- package/build/dex/curve-v1/config.js.map +1 -1
- package/build/dex/curve-v1/curve-v1.js +0 -2
- package/build/dex/curve-v1/curve-v1.js.map +1 -1
- package/build/dex/curve-v1/types.d.ts +0 -1
- package/build/dex/curve-v1/types.js.map +1 -1
- package/build/dex/maverick/config.d.ts +4 -0
- package/build/dex/maverick/config.js +20 -0
- package/build/dex/maverick/config.js.map +1 -0
- package/build/dex/maverick/maverick-math/maverick-pool-math.d.ts +67 -0
- package/build/dex/maverick/maverick-math/maverick-pool-math.js +406 -0
- package/build/dex/maverick/maverick-math/maverick-pool-math.js.map +1 -0
- package/build/dex/maverick/maverick-math/maverick-sol-math.d.ts +17 -0
- package/build/dex/maverick/maverick-math/maverick-sol-math.js +139 -0
- package/build/dex/maverick/maverick-math/maverick-sol-math.js.map +1 -0
- package/build/dex/maverick/maverick-pool.d.ts +41 -0
- package/build/dex/maverick/maverick-pool.js +130 -0
- package/build/dex/maverick/maverick-pool.js.map +1 -0
- package/build/dex/maverick/maverick.d.ts +42 -0
- package/build/dex/maverick/maverick.js +174 -0
- package/build/dex/maverick/maverick.js.map +1 -0
- package/build/dex/maverick/subgraph-queries.d.ts +4 -0
- package/build/dex/maverick/subgraph-queries.js +114 -0
- package/build/dex/maverick/subgraph-queries.js.map +1 -0
- package/build/dex/maverick/types.d.ts +46 -0
- package/build/dex/{test-dex → maverick}/types.js.map +1 -1
- package/package.json +1 -1
- package/src/dex/curve-v1/config.ts +0 -2
- package/src/dex/curve-v1/curve-v1-e2e.test.ts +37 -18
- package/src/dex/curve-v1/curve-v1.ts +0 -2
- package/src/dex/curve-v1/types.ts +0 -1
- package/tests/constants-e2e.ts +6 -1
- package/build/abi/augustus.json +0 -375
- package/build/abi/woo-fi-v2/IntegrationHelper.abi.json +0 -116
- package/build/abi/woo-fi-v2/WooOracleV2.abi.json +0 -358
- package/build/abi/woo-fi-v2/WooPPV2.abi.json +0 -580
- package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
- package/build/dex/aave-v3/tokens/avalanche.json +0 -74
- package/build/dex/aave-v3/tokens/fantom.json +0 -62
- package/build/dex/aave-v3/tokens/optimism.json +0 -50
- package/build/dex/aave-v3/tokens/polygon.json +0 -116
- package/build/dex/hashflow/rate-fetcher.d.ts +0 -14
- package/build/dex/hashflow/rate-fetcher.js +0 -37
- package/build/dex/hashflow/rate-fetcher.js.map +0 -1
- package/build/dex/hashflow/validators.d.ts +0 -3
- package/build/dex/hashflow/validators.js +0 -12
- package/build/dex/hashflow/validators.js.map +0 -1
- package/build/dex/test-dex/config.d.ts +0 -4
- package/build/dex/test-dex/config.js +0 -15
- package/build/dex/test-dex/config.js.map +0 -1
- package/build/dex/test-dex/test-dex-pool.d.ts +0 -39
- package/build/dex/test-dex/test-dex-pool.js +0 -63
- package/build/dex/test-dex/test-dex-pool.js.map +0 -1
- package/build/dex/test-dex/test-dex.d.ts +0 -37
- package/build/dex/test-dex/test-dex.js +0 -126
- package/build/dex/test-dex/test-dex.js.map +0 -1
- package/build/dex/test-dex/types.d.ts +0 -6
- package/build/dex/woo-fi-v2/config.d.ts +0 -4
- package/build/dex/woo-fi-v2/config.js +0 -87
- package/build/dex/woo-fi-v2/config.js.map +0 -1
- package/build/dex/woo-fi-v2/constants.d.ts +0 -5
- package/build/dex/woo-fi-v2/constants.js +0 -15
- package/build/dex/woo-fi-v2/constants.js.map +0 -1
- package/build/dex/woo-fi-v2/decoders.d.ts +0 -6
- package/build/dex/woo-fi-v2/decoders.js +0 -29
- package/build/dex/woo-fi-v2/decoders.js.map +0 -1
- package/build/dex/woo-fi-v2/types.d.ts +0 -41
- package/build/dex/woo-fi-v2/types.js +0 -3
- package/build/dex/woo-fi-v2/types.js.map +0 -1
- package/build/dex/woo-fi-v2/utils.d.ts +0 -2
- package/build/dex/woo-fi-v2/utils.js +0 -24
- package/build/dex/woo-fi-v2/utils.js.map +0 -1
- package/build/dex/woo-fi-v2/woo-fi-math.d.ts +0 -16
- package/build/dex/woo-fi-v2/woo-fi-math.js +0 -137
- package/build/dex/woo-fi-v2/woo-fi-math.js.map +0 -1
- package/build/dex/woo-fi-v2/woo-fi-v2-math.d.ts +0 -16
- package/build/dex/woo-fi-v2/woo-fi-v2-math.js +0 -137
- package/build/dex/woo-fi-v2/woo-fi-v2-math.js.map +0 -1
- package/build/dex/woo-fi-v2/woo-fi-v2-pool.d.ts +0 -12
- package/build/dex/woo-fi-v2/woo-fi-v2-pool.js +0 -79
- package/build/dex/woo-fi-v2/woo-fi-v2-pool.js.map +0 -1
- package/build/dex/woo-fi-v2/woo-fi-v2.d.ts +0 -52
- package/build/dex/woo-fi-v2/woo-fi-v2.js +0 -310
- package/build/dex/woo-fi-v2/woo-fi-v2.js.map +0 -1
- package/build/lib/log-messages-suppressor.d.ts +0 -30
- package/build/lib/log-messages-suppressor.js +0 -107
- package/build/lib/log-messages-suppressor.js.map +0 -1
- package/build/lib/stateful-rpc-poller/state-polling-manager.d.ts +0 -23
- package/build/lib/stateful-rpc-poller/state-polling-manager.js +0 -173
- package/build/lib/stateful-rpc-poller/state-polling-manager.js.map +0 -1
- package/build/lib/stateful-rpc-poller/stateful-rpc-poller.d.ts +0 -72
- package/build/lib/stateful-rpc-poller/stateful-rpc-poller.js +0 -369
- package/build/lib/stateful-rpc-poller/stateful-rpc-poller.js.map +0 -1
- package/build/lib/stateful-rpc-poller/types.d.ts +0 -35
- package/build/lib/stateful-rpc-poller/types.js +0 -10
- package/build/lib/stateful-rpc-poller/types.js.map +0 -1
- package/build/lib/stateful-rpc-poller/utils.d.ts +0 -4
- package/build/lib/stateful-rpc-poller/utils.js +0 -17
- package/build/lib/stateful-rpc-poller/utils.js.map +0 -1
- package/build/lib/validators.d.ts +0 -7
- package/build/lib/validators.js +0 -27
- package/build/lib/validators.js.map +0 -1
- /package/build/dex/{test-dex → maverick}/types.js +0 -0
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WooFiV2Math = void 0;
|
|
4
|
-
const bigint_constants_1 = require("../../bigint-constants");
|
|
5
|
-
const constants_1 = require("./constants");
|
|
6
|
-
function handleMathError(e, logger) {
|
|
7
|
-
if (e instanceof Error && e.message.startsWith('WooGuardian:')) {
|
|
8
|
-
logger.warn('WooFi Guardian check Error:', e);
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
logger.error('Unexpected error in WooFi math:', e);
|
|
12
|
-
}
|
|
13
|
-
function max(a, b) {
|
|
14
|
-
return a > b ? a : b;
|
|
15
|
-
}
|
|
16
|
-
class WooFiV2Math {
|
|
17
|
-
constructor(logger, _quoteToken) {
|
|
18
|
-
this.logger = logger;
|
|
19
|
-
this._quoteToken = _quoteToken;
|
|
20
|
-
this.state = constants_1.NULL_STATE;
|
|
21
|
-
}
|
|
22
|
-
query(fromToken, toToken, fromAmounts) {
|
|
23
|
-
try {
|
|
24
|
-
if (fromToken === this._quoteToken) {
|
|
25
|
-
return this._querySellQuote(toToken, fromAmounts);
|
|
26
|
-
}
|
|
27
|
-
else if (toToken === this._quoteToken) {
|
|
28
|
-
return this._querySellBase(fromToken, fromAmounts);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return this._queryBaseToBase(fromToken, toToken, fromAmounts);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
handleMathError(e, this.logger);
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
_querySellBase(baseToken, baseAmounts) {
|
|
40
|
-
try {
|
|
41
|
-
const _state = this.state.tokenStates[baseToken];
|
|
42
|
-
let quoteAmounts = this._calcQuoteAmountSellBase(baseToken, baseAmounts, _state);
|
|
43
|
-
quoteAmounts = quoteAmounts.map(amount => {
|
|
44
|
-
return amount <= this.state.tokenInfos[this._quoteToken].reserve
|
|
45
|
-
? amount
|
|
46
|
-
: 0n;
|
|
47
|
-
});
|
|
48
|
-
const feeRate = this.state.tokenInfos[baseToken].feeRate;
|
|
49
|
-
return this._takeFee(quoteAmounts, feeRate);
|
|
50
|
-
}
|
|
51
|
-
catch (e) {
|
|
52
|
-
handleMathError(e, this.logger);
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
_querySellQuote(baseToken, quoteAmounts) {
|
|
57
|
-
try {
|
|
58
|
-
const feeRate = this.state.tokenInfos[baseToken].feeRate;
|
|
59
|
-
quoteAmounts = this._takeFee(quoteAmounts, feeRate);
|
|
60
|
-
const _state = this.state.tokenStates[baseToken];
|
|
61
|
-
let toAmounts = this._calcBaseAmountSellQuote(baseToken, quoteAmounts, _state);
|
|
62
|
-
const baseReserve = this.state.tokenInfos[baseToken].reserve;
|
|
63
|
-
return toAmounts.map(amount => {
|
|
64
|
-
return amount <= baseReserve ? amount : 0n;
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
catch (e) {
|
|
68
|
-
handleMathError(e, this.logger);
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
_queryBaseToBase(baseToken1, baseToken2, base1Amounts) {
|
|
73
|
-
try {
|
|
74
|
-
let state1 = this.state.tokenStates[baseToken1];
|
|
75
|
-
let state2 = this.state.tokenStates[baseToken2];
|
|
76
|
-
const feeRate1 = this.state.tokenInfos[baseToken1].feeRate;
|
|
77
|
-
const feeRate2 = this.state.tokenInfos[baseToken2].feeRate;
|
|
78
|
-
const spread = max(state1.spread, state2.spread) / 2n;
|
|
79
|
-
const feeRate = max(feeRate1, feeRate2);
|
|
80
|
-
state1.spread = spread;
|
|
81
|
-
state2.spread = spread;
|
|
82
|
-
let quoteAmounts = this._calcQuoteAmountSellBase(baseToken1, base1Amounts, state1);
|
|
83
|
-
quoteAmounts = this._takeFeeAndCheckReserve(quoteAmounts, feeRate);
|
|
84
|
-
let toAmounts = this._calcBaseAmountSellQuote(baseToken2, quoteAmounts, state2);
|
|
85
|
-
return toAmounts.map(toAmount => {
|
|
86
|
-
return toAmount <= this.state.tokenInfos[baseToken2].reserve
|
|
87
|
-
? toAmount
|
|
88
|
-
: 0n;
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
catch (e) {
|
|
92
|
-
handleMathError(e, this.logger);
|
|
93
|
-
return null;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
_takeFeeAndCheckReserve(amounts, feeRate) {
|
|
97
|
-
return amounts.map(amount => {
|
|
98
|
-
if (amount === 0n)
|
|
99
|
-
return 0n;
|
|
100
|
-
const lpFee = (amount * feeRate) / bigint_constants_1.BI_POWS[5];
|
|
101
|
-
const reserve = this.state.tokenInfos[this._quoteToken].reserve;
|
|
102
|
-
return lpFee > reserve ? 0n : amount - lpFee;
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
_takeFee(amounts, feeRate) {
|
|
106
|
-
return amounts.map(amount => {
|
|
107
|
-
const lpFee = (amount * feeRate) / bigint_constants_1.BI_POWS[5];
|
|
108
|
-
return amount === 0n ? 0n : amount - lpFee;
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
_calcQuoteAmountSellBase(baseToken, baseAmounts, state) {
|
|
112
|
-
let { priceDec, quoteDec, baseDec } = this.state.decimals[baseToken];
|
|
113
|
-
return baseAmounts.map(baseAmount => {
|
|
114
|
-
if (baseAmount === 0n)
|
|
115
|
-
return 0n;
|
|
116
|
-
const coef = bigint_constants_1.BI_POWS[18] -
|
|
117
|
-
(state.coeff * baseAmount * state.price) / baseDec / priceDec -
|
|
118
|
-
state.spread;
|
|
119
|
-
return ((((baseAmount * quoteDec * state.price) / priceDec) * coef) /
|
|
120
|
-
bigint_constants_1.BI_POWS[18] /
|
|
121
|
-
baseDec);
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
_calcBaseAmountSellQuote(baseToken, quoteAmounts, state) {
|
|
125
|
-
let { priceDec, quoteDec, baseDec } = this.state.decimals[baseToken];
|
|
126
|
-
return quoteAmounts.map(quoteAmount => {
|
|
127
|
-
if (quoteAmount === 0n)
|
|
128
|
-
return 0n;
|
|
129
|
-
const coef = bigint_constants_1.BI_POWS[18] - (quoteAmount * state.coeff) / quoteDec - state.spread;
|
|
130
|
-
return ((((quoteAmount * baseDec * priceDec) / state.price) * coef) /
|
|
131
|
-
bigint_constants_1.BI_POWS[18] /
|
|
132
|
-
quoteDec);
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
exports.WooFiV2Math = WooFiV2Math;
|
|
137
|
-
//# sourceMappingURL=woo-fi-v2-math.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"woo-fi-v2-math.js","sourceRoot":"","sources":["../../../src/dex/woo-fi-v2/woo-fi-v2-math.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
2
|
-
import { DexParams, MulticallResultOutputs, PoolState } from './types';
|
|
3
|
-
import { StatefulRpcPoller } from '../../lib/stateful-rpc-poller/stateful-rpc-poller';
|
|
4
|
-
import { MultiCallParams } from '../../lib/multi-wrapper';
|
|
5
|
-
import { Token } from '../../types';
|
|
6
|
-
export declare class WooFiV2PollingPool extends StatefulRpcPoller<PoolState, MulticallResultOutputs> {
|
|
7
|
-
protected config: DexParams;
|
|
8
|
-
protected tokens: Token[];
|
|
9
|
-
constructor(dexKey: string, poolIdentifier: string, dexHelper: IDexHelper, config: DexParams, tokens: Token[]);
|
|
10
|
-
protected _getFetchStateMultiCalls(): MultiCallParams<MulticallResultOutputs>[];
|
|
11
|
-
protected _parseStateFromMultiResults(multiOutputs: MulticallResultOutputs[]): PoolState;
|
|
12
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.WooFiV2PollingPool = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const stateful_rpc_poller_1 = require("../../lib/stateful-rpc-poller/stateful-rpc-poller");
|
|
9
|
-
const utils_1 = require("../../lib/stateful-rpc-poller/utils");
|
|
10
|
-
const state_polling_manager_1 = require("../../lib/stateful-rpc-poller/state-polling-manager");
|
|
11
|
-
const decoders_1 = require("../../lib/decoders");
|
|
12
|
-
const utils_2 = require("./utils");
|
|
13
|
-
const decoders_2 = require("./decoders");
|
|
14
|
-
class WooFiV2PollingPool extends stateful_rpc_poller_1.StatefulRpcPoller {
|
|
15
|
-
constructor(dexKey, poolIdentifier, dexHelper, config,
|
|
16
|
-
// It already includes quoteToken
|
|
17
|
-
tokens) {
|
|
18
|
-
const callbacks = (0, utils_1.pollingManagerCbExtractor)(state_polling_manager_1.StatePollingManager.getInstance(dexHelper));
|
|
19
|
-
super(dexKey, poolIdentifier, dexHelper, 0, 0, false, callbacks);
|
|
20
|
-
this.config = config;
|
|
21
|
-
this.tokens = tokens;
|
|
22
|
-
}
|
|
23
|
-
_getFetchStateMultiCalls() {
|
|
24
|
-
return [
|
|
25
|
-
{
|
|
26
|
-
target: this.config.wooPPV2Address,
|
|
27
|
-
callData: utils_2.ifaces.PPV2.encodeFunctionData('paused', []),
|
|
28
|
-
decodeFunction: decoders_1.booleanDecode,
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
target: this.config.wooOracleV2Address,
|
|
32
|
-
callData: utils_2.ifaces.oracleV2.encodeFunctionData('timestamp', []),
|
|
33
|
-
decodeFunction: decoders_1.uint256ToBigInt,
|
|
34
|
-
},
|
|
35
|
-
].concat(this.tokens
|
|
36
|
-
.map(t => [
|
|
37
|
-
{
|
|
38
|
-
target: this.config.wooPPV2Address,
|
|
39
|
-
callData: utils_2.ifaces.PPV2.encodeFunctionData('tokenInfos', [t.address]),
|
|
40
|
-
decodeFunction: decoders_2.tokenInfoDecoder,
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
target: this.config.wooPPV2Address,
|
|
44
|
-
callData: utils_2.ifaces.PPV2.encodeFunctionData('decimalInfo', [
|
|
45
|
-
t.address,
|
|
46
|
-
]),
|
|
47
|
-
decodeFunction: decoders_2.decimalInfoDecoder,
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
target: this.config.wooOracleV2Address,
|
|
51
|
-
callData: utils_2.ifaces.oracleV2.encodeFunctionData('state', [t.address]),
|
|
52
|
-
decodeFunction: decoders_2.stateDecoder,
|
|
53
|
-
},
|
|
54
|
-
])
|
|
55
|
-
.flat());
|
|
56
|
-
}
|
|
57
|
-
_parseStateFromMultiResults(multiOutputs) {
|
|
58
|
-
const [isPaused, oracleTimestamp, ...remained] = multiOutputs;
|
|
59
|
-
const tokenInfos = {};
|
|
60
|
-
const decimals = {};
|
|
61
|
-
const tokenStates = {};
|
|
62
|
-
lodash_1.default.chunk(remained, 3).forEach((chunk, i) => {
|
|
63
|
-
const [tokenInfo, decimalInfo, tokenState] = chunk;
|
|
64
|
-
const token = this.tokens[i];
|
|
65
|
-
tokenInfos[token.address] = tokenInfo;
|
|
66
|
-
decimals[token.address] = decimalInfo;
|
|
67
|
-
tokenStates[token.address] = tokenState;
|
|
68
|
-
});
|
|
69
|
-
return {
|
|
70
|
-
tokenInfos,
|
|
71
|
-
tokenStates,
|
|
72
|
-
decimals,
|
|
73
|
-
oracleTimestamp,
|
|
74
|
-
isPaused,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.WooFiV2PollingPool = WooFiV2PollingPool;
|
|
79
|
-
//# sourceMappingURL=woo-fi-v2-pool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"woo-fi-v2-pool.js","sourceRoot":"","sources":["../../../src/dex/woo-fi-v2/woo-fi-v2-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger } from '../../types';
|
|
2
|
-
import { SwapSide, Network } from '../../constants';
|
|
3
|
-
import { IDex } from '../../dex/idex';
|
|
4
|
-
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
5
|
-
import { WooFiV2Data, DexParams } from './types';
|
|
6
|
-
import { SimpleExchange } from '../simple-exchange';
|
|
7
|
-
import { WooFiV2PollingPool } from './woo-fi-v2-pool';
|
|
8
|
-
import { WooFiV2Math } from './woo-fi-v2-math';
|
|
9
|
-
import { StatePollingManager } from '../../lib/stateful-rpc-poller/state-polling-manager';
|
|
10
|
-
export declare class WooFiV2 extends SimpleExchange implements IDex<WooFiV2Data> {
|
|
11
|
-
protected network: Network;
|
|
12
|
-
readonly dexHelper: IDexHelper;
|
|
13
|
-
protected adapters: import("../../types").AdapterMappings;
|
|
14
|
-
readonly config: DexParams;
|
|
15
|
-
readonly math: WooFiV2Math;
|
|
16
|
-
protected pollingManager: StatePollingManager;
|
|
17
|
-
protected pollingPool?: WooFiV2PollingPool;
|
|
18
|
-
readonly hasConstantPriceLargeAmounts = false;
|
|
19
|
-
readonly needWrapNative = true;
|
|
20
|
-
readonly isFeeOnTransferSupported = false;
|
|
21
|
-
readonly quoteTokenAddress: Address;
|
|
22
|
-
protected _baseTokens?: Token[];
|
|
23
|
-
protected rebateTo?: Address;
|
|
24
|
-
tokenByAddress?: Record<Address, Token>;
|
|
25
|
-
vaultUSDBalance: number;
|
|
26
|
-
static dexKeysWithNetwork: {
|
|
27
|
-
key: string;
|
|
28
|
-
networks: Network[];
|
|
29
|
-
}[];
|
|
30
|
-
logger: Logger;
|
|
31
|
-
constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings, config?: DexParams);
|
|
32
|
-
private _toLowerForAllConfigAddresses;
|
|
33
|
-
get baseTokens(): Token[];
|
|
34
|
-
initializePricing(blockNumber: number): Promise<void>;
|
|
35
|
-
getAdapters(side: SwapSide): {
|
|
36
|
-
name: string;
|
|
37
|
-
index: number;
|
|
38
|
-
}[] | null;
|
|
39
|
-
getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
|
|
40
|
-
getIdentifier(): string;
|
|
41
|
-
getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<WooFiV2Data>>;
|
|
42
|
-
getCalldataGasCost(poolPrices: PoolPrices<WooFiV2Data>): number | number[];
|
|
43
|
-
getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: WooFiV2Data, side: SwapSide): AdapterExchangeParam;
|
|
44
|
-
getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: WooFiV2Data, side: SwapSide): Promise<SimpleExchangeParam>;
|
|
45
|
-
updatePoolState(): Promise<void>;
|
|
46
|
-
getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
|
|
47
|
-
private _initializeTokenByAddress;
|
|
48
|
-
_fetchBaseTokensAndFeeWallet(): Promise<Address[]>;
|
|
49
|
-
_fetchDecimals(baseTokenAddresses: Address[]): Promise<number[]>;
|
|
50
|
-
initializeTokensAndAddresses(): Promise<void>;
|
|
51
|
-
private _initializePollingPool;
|
|
52
|
-
}
|
|
@@ -1,310 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.WooFiV2 = void 0;
|
|
27
|
-
const constants_1 = require("../../constants");
|
|
28
|
-
const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
|
|
29
|
-
const utils_1 = require("../../utils");
|
|
30
|
-
const decoders_1 = require("../../lib/decoders");
|
|
31
|
-
const simple_exchange_1 = require("../simple-exchange");
|
|
32
|
-
const config_1 = require("./config");
|
|
33
|
-
const woo_fi_v2_pool_1 = require("./woo-fi-v2-pool");
|
|
34
|
-
const woo_fi_v2_math_1 = require("./woo-fi-v2-math");
|
|
35
|
-
const constants_2 = require("./constants");
|
|
36
|
-
const ts_essentials_1 = require("ts-essentials");
|
|
37
|
-
const ethers_1 = require("ethers");
|
|
38
|
-
const decoders_2 = require("../../lib/decoders");
|
|
39
|
-
const utils_2 = require("./utils");
|
|
40
|
-
const state_polling_manager_1 = require("../../lib/stateful-rpc-poller/state-polling-manager");
|
|
41
|
-
class WooFiV2 extends simple_exchange_1.SimpleExchange {
|
|
42
|
-
constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network] || {}, config = config_1.WooFiV2Config[dexKey][network]) {
|
|
43
|
-
super(dexHelper, dexKey);
|
|
44
|
-
this.network = network;
|
|
45
|
-
this.dexHelper = dexHelper;
|
|
46
|
-
this.adapters = adapters;
|
|
47
|
-
this.config = config;
|
|
48
|
-
this.hasConstantPriceLargeAmounts = false;
|
|
49
|
-
this.needWrapNative = true;
|
|
50
|
-
this.isFeeOnTransferSupported = false;
|
|
51
|
-
this.vaultUSDBalance = 0;
|
|
52
|
-
const loggerName = `${dexKey}-${network}`;
|
|
53
|
-
this.logger = dexHelper.getLogger(loggerName);
|
|
54
|
-
// Normalise once all config addresses and use across all scenarios
|
|
55
|
-
this.config = this._toLowerForAllConfigAddresses();
|
|
56
|
-
this.quoteTokenAddress = this.config.quoteToken.address;
|
|
57
|
-
// Do not do it singleton, because different networks will have different
|
|
58
|
-
// states at the same time
|
|
59
|
-
this.math = new woo_fi_v2_math_1.WooFiV2Math(dexHelper.getLogger(`${loggerName}_math`), this.quoteTokenAddress);
|
|
60
|
-
this.pollingManager = state_polling_manager_1.StatePollingManager.getInstance(dexHelper);
|
|
61
|
-
}
|
|
62
|
-
_toLowerForAllConfigAddresses() {
|
|
63
|
-
// If new config property will be added, the TS will throw compile error
|
|
64
|
-
const newConfig = {
|
|
65
|
-
wooPPV2Address: this.config.wooPPV2Address.toLowerCase(),
|
|
66
|
-
wooOracleV2Address: this.config.wooOracleV2Address.toLowerCase(),
|
|
67
|
-
integrationHelperAddress: this.config.integrationHelperAddress.toLowerCase(),
|
|
68
|
-
quoteToken: {
|
|
69
|
-
...this.config.quoteToken,
|
|
70
|
-
address: this.config.quoteToken.address.toLowerCase(),
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
return newConfig;
|
|
74
|
-
}
|
|
75
|
-
get baseTokens() {
|
|
76
|
-
if (!this._baseTokens) {
|
|
77
|
-
throw new Error(`Base tokens are not set for ${this.dexKey}-${this.network}. Not properly initialized`);
|
|
78
|
-
}
|
|
79
|
-
return this._baseTokens;
|
|
80
|
-
}
|
|
81
|
-
async initializePricing(blockNumber) {
|
|
82
|
-
await this.initializeTokensAndAddresses();
|
|
83
|
-
this._initializePollingPool();
|
|
84
|
-
}
|
|
85
|
-
getAdapters(side) {
|
|
86
|
-
return this.adapters[side] ? this.adapters[side] : null;
|
|
87
|
-
}
|
|
88
|
-
async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
|
|
89
|
-
if (side === constants_1.SwapSide.BUY)
|
|
90
|
-
return [];
|
|
91
|
-
if (this.tokenByAddress === undefined) {
|
|
92
|
-
this.logger.error(`tokenByAddress is undefined in getPoolIdentifiers`);
|
|
93
|
-
return [];
|
|
94
|
-
}
|
|
95
|
-
const _srcToken = this.dexHelper.config.wrapETH(srcToken);
|
|
96
|
-
const _destToken = this.dexHelper.config.wrapETH(destToken);
|
|
97
|
-
const _srcAddress = _srcToken.address.toLowerCase();
|
|
98
|
-
const _destAddress = _destToken.address.toLowerCase();
|
|
99
|
-
if (_srcAddress === _destAddress)
|
|
100
|
-
return [];
|
|
101
|
-
if (!this.tokenByAddress[_srcAddress] ||
|
|
102
|
-
!this.tokenByAddress[_destAddress]) {
|
|
103
|
-
return [];
|
|
104
|
-
}
|
|
105
|
-
return [this.getIdentifier()];
|
|
106
|
-
}
|
|
107
|
-
getIdentifier() {
|
|
108
|
-
return `${this.dexKey}_wooppv2`;
|
|
109
|
-
}
|
|
110
|
-
async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
|
|
111
|
-
if (side === constants_1.SwapSide.BUY)
|
|
112
|
-
return null;
|
|
113
|
-
try {
|
|
114
|
-
if (this.tokenByAddress === undefined) {
|
|
115
|
-
this.logger.error(`tokenByAddress is undefined in getPricesVolume`);
|
|
116
|
-
return null;
|
|
117
|
-
}
|
|
118
|
-
const _srcToken = this.dexHelper.config.wrapETH(srcToken);
|
|
119
|
-
const _destToken = this.dexHelper.config.wrapETH(destToken);
|
|
120
|
-
const _srcAddress = _srcToken.address.toLowerCase();
|
|
121
|
-
const _destAddress = _destToken.address.toLowerCase();
|
|
122
|
-
if (_srcAddress === _destAddress)
|
|
123
|
-
return null;
|
|
124
|
-
if (!this.tokenByAddress[_srcAddress] ||
|
|
125
|
-
!this.tokenByAddress[_destAddress])
|
|
126
|
-
return null;
|
|
127
|
-
const expectedIdentifier = this.getIdentifier();
|
|
128
|
-
if (limitPools !== undefined &&
|
|
129
|
-
!limitPools.some(p => p === expectedIdentifier))
|
|
130
|
-
return null;
|
|
131
|
-
const unitVolume = (0, utils_1.getBigIntPow)(_srcToken.decimals);
|
|
132
|
-
const _amounts = [unitVolume, ...amounts.slice(1)];
|
|
133
|
-
(0, ts_essentials_1.assert)(this.pollingPool, 'pollingPool is not initialized in getPricesVolume');
|
|
134
|
-
const state = await this.pollingPool.getState(blockNumber);
|
|
135
|
-
if (state === null) {
|
|
136
|
-
this.logger.error(`State is null in getPricesVolume`);
|
|
137
|
-
return null;
|
|
138
|
-
}
|
|
139
|
-
if (state.value.isPaused) {
|
|
140
|
-
this.logger.warn(`${this.dexKey} is paused on ${this.network} in getPricesVolume`);
|
|
141
|
-
return null;
|
|
142
|
-
}
|
|
143
|
-
this.math.state = state.value;
|
|
144
|
-
const _prices = this.math.query(_srcAddress, _destAddress, _amounts);
|
|
145
|
-
if (!_prices)
|
|
146
|
-
return null;
|
|
147
|
-
const unit = _prices[0];
|
|
148
|
-
return [
|
|
149
|
-
{
|
|
150
|
-
unit,
|
|
151
|
-
prices: [0n, ..._prices.slice(1)],
|
|
152
|
-
data: {},
|
|
153
|
-
poolIdentifier: expectedIdentifier,
|
|
154
|
-
exchange: this.dexKey,
|
|
155
|
-
gasCost: constants_2.WOO_FI_V2_GAS_COST,
|
|
156
|
-
poolAddresses: [this.config.wooPPV2Address],
|
|
157
|
-
},
|
|
158
|
-
];
|
|
159
|
-
}
|
|
160
|
-
catch (e) {
|
|
161
|
-
this.logger.error(`Error_getPricesVolume ${srcToken.symbol || srcToken.address}, ${destToken.symbol || destToken.address}, ${side}:`, e);
|
|
162
|
-
return null;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
getCalldataGasCost(poolPrices) {
|
|
166
|
-
return CALLDATA_GAS_COST.DEX_OVERHEAD + CALLDATA_GAS_COST.ADDRESS;
|
|
167
|
-
}
|
|
168
|
-
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
169
|
-
if (side === constants_1.SwapSide.BUY)
|
|
170
|
-
throw new Error(`Buy not supported`);
|
|
171
|
-
let rebateTo = this.rebateTo;
|
|
172
|
-
if (rebateTo === undefined) {
|
|
173
|
-
this.logger.error(`rebateTo is undefined in getAdapterParam`);
|
|
174
|
-
rebateTo = constants_1.NULL_ADDRESS;
|
|
175
|
-
}
|
|
176
|
-
const payload = this.abiCoder.encodeParameter('address', rebateTo);
|
|
177
|
-
return {
|
|
178
|
-
targetExchange: this.config.wooPPV2Address,
|
|
179
|
-
payload,
|
|
180
|
-
networkFee: '0',
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
184
|
-
if (side === constants_1.SwapSide.BUY)
|
|
185
|
-
throw new Error(`Buy not supported`);
|
|
186
|
-
const _srcToken = srcToken.toLowerCase();
|
|
187
|
-
const _destToken = destToken.toLowerCase();
|
|
188
|
-
let rebateTo = this.rebateTo;
|
|
189
|
-
if (rebateTo === undefined) {
|
|
190
|
-
this.logger.error(`rebateTo is undefined in getAdapterParam`);
|
|
191
|
-
rebateTo = constants_1.NULL_ADDRESS;
|
|
192
|
-
}
|
|
193
|
-
const swapData = utils_2.ifaces.PPV2.encodeFunctionData('swap', [
|
|
194
|
-
_srcToken,
|
|
195
|
-
_destToken,
|
|
196
|
-
srcAmount,
|
|
197
|
-
constants_2.MIN_CONVERSION_RATE,
|
|
198
|
-
this.augustusAddress,
|
|
199
|
-
rebateTo,
|
|
200
|
-
]);
|
|
201
|
-
const transferParams = this.erc20Interface.encodeFunctionData('transfer', [
|
|
202
|
-
this.config.wooPPV2Address,
|
|
203
|
-
srcAmount,
|
|
204
|
-
]);
|
|
205
|
-
return {
|
|
206
|
-
callees: [srcToken, this.config.wooPPV2Address],
|
|
207
|
-
calldata: [transferParams, swapData],
|
|
208
|
-
values: ['0', '0'],
|
|
209
|
-
networkFee: '0',
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
async updatePoolState() {
|
|
213
|
-
await this.initializeTokensAndAddresses();
|
|
214
|
-
this._initializePollingPool();
|
|
215
|
-
if (this.tokenByAddress === undefined) {
|
|
216
|
-
this.logger.error(`tokenByAddress is undefined in updatePoolState`);
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
(0, ts_essentials_1.assert)(this.pollingPool, 'pollingPool is not initialized in updatePoolState');
|
|
220
|
-
const state = await this.pollingPool.getState();
|
|
221
|
-
if (!state) {
|
|
222
|
-
this.logger.error(`Failed to updatePoolState. State is null. VaultUSDBalance: ${this.vaultUSDBalance} was not updated`);
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
const tokenBalancesUSD = await Promise.all(Object.values(this.tokenByAddress).map(t => this.dexHelper.getTokenUSDPrice(t, state.value.tokenInfos[t.address].reserve)));
|
|
226
|
-
this.vaultUSDBalance = tokenBalancesUSD.reduce((sum, curr) => sum + curr);
|
|
227
|
-
}
|
|
228
|
-
async getTopPoolsForToken(tokenAddress, limit) {
|
|
229
|
-
const wrappedTokenAddress = this.dexHelper.config
|
|
230
|
-
.wrapETH({ address: tokenAddress, decimals: 0 })
|
|
231
|
-
.address.toLowerCase();
|
|
232
|
-
if (this.tokenByAddress === undefined) {
|
|
233
|
-
this.logger.error(`tokenByAddress is undefined in getTopPoolsForToken`);
|
|
234
|
-
return [];
|
|
235
|
-
}
|
|
236
|
-
if (!this.tokenByAddress[wrappedTokenAddress])
|
|
237
|
-
return [];
|
|
238
|
-
(0, ts_essentials_1.assert)(this.pollingPool, 'pollingPool is not initialized in getTopPoolsForToken');
|
|
239
|
-
const latestState = await this.pollingPool.getState();
|
|
240
|
-
if (!latestState)
|
|
241
|
-
return [];
|
|
242
|
-
if (latestState.value.isPaused) {
|
|
243
|
-
this.logger.warn(`Paused on ${this.network} in getTopPoolsForToken`);
|
|
244
|
-
return [];
|
|
245
|
-
}
|
|
246
|
-
const connectorTokens = wrappedTokenAddress === this.quoteTokenAddress
|
|
247
|
-
? this.baseTokens
|
|
248
|
-
: [this.tokenByAddress[this.quoteTokenAddress]];
|
|
249
|
-
return [
|
|
250
|
-
{
|
|
251
|
-
exchange: this.dexKey,
|
|
252
|
-
address: this.config.wooPPV2Address,
|
|
253
|
-
connectorTokens,
|
|
254
|
-
liquidityUSD: this.vaultUSDBalance,
|
|
255
|
-
},
|
|
256
|
-
];
|
|
257
|
-
}
|
|
258
|
-
_initializeTokenByAddress(baseTokens) {
|
|
259
|
-
this.tokenByAddress = baseTokens.reduce((acc, cur) => {
|
|
260
|
-
acc[cur.address] = cur;
|
|
261
|
-
return acc;
|
|
262
|
-
}, { [this.quoteTokenAddress]: this.config.quoteToken });
|
|
263
|
-
}
|
|
264
|
-
async _fetchBaseTokensAndFeeWallet() {
|
|
265
|
-
return (await this.dexHelper.multiWrapper.aggregate([
|
|
266
|
-
{
|
|
267
|
-
target: this.augustusAddress,
|
|
268
|
-
callData: this.augustusInterface.encodeFunctionData('getFeeWallet', []),
|
|
269
|
-
decodeFunction: decoders_2.addressDecode,
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
target: this.config.integrationHelperAddress,
|
|
273
|
-
callData: utils_2.ifaces.integrationHelper.encodeFunctionData('allBaseTokens'),
|
|
274
|
-
decodeFunction: decoders_1.addressArrayDecode,
|
|
275
|
-
},
|
|
276
|
-
])).flat();
|
|
277
|
-
}
|
|
278
|
-
async _fetchDecimals(baseTokenAddresses) {
|
|
279
|
-
return this.dexHelper.multiWrapper.aggregate(baseTokenAddresses.map(address => {
|
|
280
|
-
return {
|
|
281
|
-
target: address,
|
|
282
|
-
callData: this.erc20Interface.encodeFunctionData('decimals'),
|
|
283
|
-
decodeFunction: decoders_1.uint8ToNumber,
|
|
284
|
-
};
|
|
285
|
-
}));
|
|
286
|
-
}
|
|
287
|
-
async initializeTokensAndAddresses() {
|
|
288
|
-
const [rebateTo, ...baseTokenAddresses] = await this._fetchBaseTokensAndFeeWallet();
|
|
289
|
-
(0, ts_essentials_1.assert)(ethers_1.ethers.utils.isAddress(rebateTo), 'Invalid rebateTo address');
|
|
290
|
-
this.rebateTo = rebateTo;
|
|
291
|
-
const decimals = await this._fetchDecimals(baseTokenAddresses);
|
|
292
|
-
(0, ts_essentials_1.assert)(decimals.length === baseTokenAddresses.length, 'Decimals length mismatch');
|
|
293
|
-
this._baseTokens = baseTokenAddresses.reduce((acc, curr, i) => {
|
|
294
|
-
acc.push({
|
|
295
|
-
address: curr,
|
|
296
|
-
decimals: decimals[i],
|
|
297
|
-
});
|
|
298
|
-
return acc;
|
|
299
|
-
}, []);
|
|
300
|
-
this._initializeTokenByAddress(this.baseTokens);
|
|
301
|
-
}
|
|
302
|
-
_initializePollingPool() {
|
|
303
|
-
(0, ts_essentials_1.assert)(this.tokenByAddress, 'tokenByAddress is not properly');
|
|
304
|
-
this.pollingPool = new woo_fi_v2_pool_1.WooFiV2PollingPool(this.dexKey, this.getIdentifier(), this.dexHelper, this.config, Object.values(this.tokenByAddress));
|
|
305
|
-
this.pollingManager.initializeAllPendingPools();
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
exports.WooFiV2 = WooFiV2;
|
|
309
|
-
WooFiV2.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.WooFiV2Config);
|
|
310
|
-
//# sourceMappingURL=woo-fi-v2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"woo-fi-v2.js","sourceRoot":"","sources":["../../../src/dex/woo-fi-v2/woo-fi-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Logger, LogLevels } from '../types';
|
|
2
|
-
export declare const DEFAULT_LOG_PUBLISH_PERIOD_MS = 60000;
|
|
3
|
-
export declare const DEFAULT_LOG_DISCARD_PERIOD_MS: number;
|
|
4
|
-
export declare const DEFAULT_LOG_MAX_IDENTITIES_TO_SHOW = 10;
|
|
5
|
-
export declare type StandardStringEnum = Readonly<Record<string, string>>;
|
|
6
|
-
export declare type MessageInfo<T extends StandardStringEnum> = {
|
|
7
|
-
key: keyof T;
|
|
8
|
-
message: T[keyof T];
|
|
9
|
-
logLevel: LogLevels;
|
|
10
|
-
};
|
|
11
|
-
export declare type MessageData = {
|
|
12
|
-
counter: number;
|
|
13
|
-
lastLoggedAtMs: number;
|
|
14
|
-
identificationInfos: string[];
|
|
15
|
-
};
|
|
16
|
-
export declare type AggregatedLogForEntity<T extends StandardStringEnum> = {
|
|
17
|
-
[key in keyof T]?: MessageData;
|
|
18
|
-
};
|
|
19
|
-
export declare class LogMessagesSuppressor<T extends StandardStringEnum> {
|
|
20
|
-
readonly entityName: string;
|
|
21
|
-
private _allMessages;
|
|
22
|
-
protected logger: Logger;
|
|
23
|
-
static instances: Record<string, LogMessagesSuppressor<any>>;
|
|
24
|
-
private _aggregatedLogs;
|
|
25
|
-
constructor(entityName: string, _allMessages: Record<keyof T, MessageInfo<T>>, logger: Logger);
|
|
26
|
-
static getLogSuppressorInstance<T extends StandardStringEnum>(entityName: string, allMessages: Record<keyof T, MessageInfo<T>>, logger: Logger): LogMessagesSuppressor<any>;
|
|
27
|
-
logMessage(msgKey: keyof T, identificationInfo?: string, ...args: unknown[]): void;
|
|
28
|
-
private _formatLogMessage;
|
|
29
|
-
private _clearMessageData;
|
|
30
|
-
}
|