@ninsei-labs/sdk 0.39.0 → 0.39.1
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/CHANGELOG.md +15 -0
- package/engine/core/chainSource.js +306 -306
- package/engine/core/sellWindow.js +43 -43
- package/engine/core/swap.js +1153 -1153
- package/engine/evm/claimGas.js +87 -87
- package/engine/evm/dex.js +836 -836
- package/engine/evm/gasReserve.js +88 -88
- package/engine/evm/prices.js +179 -179
- package/package.json +1 -1
- package/src/actions.mjs +72 -72
- package/src/adapters/node-test-evm-wallet.mjs +345 -345
- package/src/engine.mjs +53 -53
- package/src/lock.mjs +140 -140
- package/src/order.mjs +212 -212
- package/src/quotes.mjs +465 -465
- package/src/swaps.mjs +935 -935
- package/src/xmr-arrival.mjs +289 -289
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
// GENERATED FILE - a byte-for-byte copy of the engine module www/js/core/sellWindow.js for the SDK package.
|
|
2
|
-
// Edit the source under www/js, then run: node tools/build-sdk-engine.mjs
|
|
3
|
-
// tools/check-sdk-engine.mjs reddens on any drift, so a stale copy cannot ship silently.
|
|
4
|
-
// Everything below this header is identical to the source.
|
|
5
|
-
|
|
6
|
-
// ОКНО ПРОДАЖИ XMR (issue #111): ОДНО ПРАВИЛО НА ДВЕ СТОРОНЫ, А НЕ ДВА ЧИСЛА.
|
|
7
|
-
//
|
|
8
|
-
// ЗАЧЕМ ОТДЕЛЬНЫЙ МОДУЛЬ. У окна продажи XMR (человек отдаёт XMR, получает натив сети) два числа, и они
|
|
9
|
-
// разной природы:
|
|
10
|
-
// * ЖЁСТКОЕ (hard) - срок отметки готовности ИЗ КОНТРАКТА. Позже него отметку не примет никто, и он входит
|
|
11
|
-
// в ПРИВЯЗКУ ордера (termsHash), поэтому после выдачи билета не меняется. В контракт ВСЕГДА идёт максимум:
|
|
12
|
-
// 10 подтверждений Monero - это примерно 1200 с, и меньше контрактного окна быть не может, иначе отметить
|
|
13
|
-
// готовность было бы нечем (отметку контракт после readyBy запрещает, XMR заперлись бы для обоих).
|
|
14
|
-
// * МЯГКОЕ (soft) - ОБЕЩАНИЕ НА ЭКРАНЕ: сколько провайдер держит цену, пока человек отправляет XMR.
|
|
15
|
-
// "Десять минут" владельца и партнёра.
|
|
16
|
-
// ПРАВИЛО ПРОДЛЕНИЯ ОДНО. Пока в пуле НЕ видно ПОЛНОЙ ожидаемой суммы, обещание продлевается до контрактного
|
|
17
|
-
// максимума: человек мог отправить, и ему нужен первый блок. Как только полная сумма видна в пуле, окно
|
|
18
|
-
// мягкое - обещание сдержано, и продлевать нечего.
|
|
19
|
-
//
|
|
20
|
-
// ПОЧЕМУ ФУНКЦИЯ, А НЕ ДВА ЧИСЛА В ДВУХ МЕСТАХ. Это правило решает НОДА (rfq/reverseArrival.mjs - отметка,
|
|
21
|
-
// тревога, ранний возврат) и показывает СТРАНИЦА (www/js/core/swap.js - отсчёт на экране). Вторая редакция
|
|
22
|
-
// разошлась бы с первой молча: человек видел бы одно окно, а нода жила бы по другому. Направление импорта
|
|
23
|
-
// rfq -> www в проекте уже принято (образец: rfq/reverseGas.mjs импортирует ../www/js/evm/claimGas.js).
|
|
24
|
-
export const SELL_WINDOW = {
|
|
25
|
-
softSec: 600, // "десять минут": обещание провайдера на экране
|
|
26
|
-
hardSec: 1200, // контрактное окно: 10 подтверждений Monero, максимум, попадающий в termsHash
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const positiveSec = (v, dflt) => {
|
|
30
|
-
const n = Number(v);
|
|
31
|
-
return Number.isFinite(n) && n > 0 ? Math.floor(n) : dflt;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
// СКОЛЬКО СЕКУНД ИДЁТ ОКНО ПРОДАЖИ при названном состоянии пула. poolSeen - в пуле видна ПОЛНАЯ ожидаемая
|
|
35
|
-
// сумма, и только она (не "что-то видно" и не недоплата: сделка повисла бы на чужой копейке - см. poolCoverage
|
|
36
|
-
// в rfq/reverseArrival.mjs). Контрактное окно - ПОТОЛОК: мягкое обещание не может быть длиннее контрактного,
|
|
37
|
-
// иначе мы обещали бы то, чего цепь не даст.
|
|
38
|
-
export function sellWindowSec({ poolSeen, soft = SELL_WINDOW.softSec, hard = SELL_WINDOW.hardSec } = {}) {
|
|
39
|
-
const s = positiveSec(soft, SELL_WINDOW.softSec);
|
|
40
|
-
const h = positiveSec(hard, SELL_WINDOW.hardSec);
|
|
41
|
-
const promised = Math.min(s, h);
|
|
42
|
-
return poolSeen ? promised : h;
|
|
43
|
-
}
|
|
1
|
+
// GENERATED FILE - a byte-for-byte copy of the engine module www/js/core/sellWindow.js for the SDK package.
|
|
2
|
+
// Edit the source under www/js, then run: node tools/build-sdk-engine.mjs
|
|
3
|
+
// tools/check-sdk-engine.mjs reddens on any drift, so a stale copy cannot ship silently.
|
|
4
|
+
// Everything below this header is identical to the source.
|
|
5
|
+
|
|
6
|
+
// ОКНО ПРОДАЖИ XMR (issue #111): ОДНО ПРАВИЛО НА ДВЕ СТОРОНЫ, А НЕ ДВА ЧИСЛА.
|
|
7
|
+
//
|
|
8
|
+
// ЗАЧЕМ ОТДЕЛЬНЫЙ МОДУЛЬ. У окна продажи XMR (человек отдаёт XMR, получает натив сети) два числа, и они
|
|
9
|
+
// разной природы:
|
|
10
|
+
// * ЖЁСТКОЕ (hard) - срок отметки готовности ИЗ КОНТРАКТА. Позже него отметку не примет никто, и он входит
|
|
11
|
+
// в ПРИВЯЗКУ ордера (termsHash), поэтому после выдачи билета не меняется. В контракт ВСЕГДА идёт максимум:
|
|
12
|
+
// 10 подтверждений Monero - это примерно 1200 с, и меньше контрактного окна быть не может, иначе отметить
|
|
13
|
+
// готовность было бы нечем (отметку контракт после readyBy запрещает, XMR заперлись бы для обоих).
|
|
14
|
+
// * МЯГКОЕ (soft) - ОБЕЩАНИЕ НА ЭКРАНЕ: сколько провайдер держит цену, пока человек отправляет XMR.
|
|
15
|
+
// "Десять минут" владельца и партнёра.
|
|
16
|
+
// ПРАВИЛО ПРОДЛЕНИЯ ОДНО. Пока в пуле НЕ видно ПОЛНОЙ ожидаемой суммы, обещание продлевается до контрактного
|
|
17
|
+
// максимума: человек мог отправить, и ему нужен первый блок. Как только полная сумма видна в пуле, окно
|
|
18
|
+
// мягкое - обещание сдержано, и продлевать нечего.
|
|
19
|
+
//
|
|
20
|
+
// ПОЧЕМУ ФУНКЦИЯ, А НЕ ДВА ЧИСЛА В ДВУХ МЕСТАХ. Это правило решает НОДА (rfq/reverseArrival.mjs - отметка,
|
|
21
|
+
// тревога, ранний возврат) и показывает СТРАНИЦА (www/js/core/swap.js - отсчёт на экране). Вторая редакция
|
|
22
|
+
// разошлась бы с первой молча: человек видел бы одно окно, а нода жила бы по другому. Направление импорта
|
|
23
|
+
// rfq -> www в проекте уже принято (образец: rfq/reverseGas.mjs импортирует ../www/js/evm/claimGas.js).
|
|
24
|
+
export const SELL_WINDOW = {
|
|
25
|
+
softSec: 600, // "десять минут": обещание провайдера на экране
|
|
26
|
+
hardSec: 1200, // контрактное окно: 10 подтверждений Monero, максимум, попадающий в termsHash
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const positiveSec = (v, dflt) => {
|
|
30
|
+
const n = Number(v);
|
|
31
|
+
return Number.isFinite(n) && n > 0 ? Math.floor(n) : dflt;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// СКОЛЬКО СЕКУНД ИДЁТ ОКНО ПРОДАЖИ при названном состоянии пула. poolSeen - в пуле видна ПОЛНАЯ ожидаемая
|
|
35
|
+
// сумма, и только она (не "что-то видно" и не недоплата: сделка повисла бы на чужой копейке - см. poolCoverage
|
|
36
|
+
// в rfq/reverseArrival.mjs). Контрактное окно - ПОТОЛОК: мягкое обещание не может быть длиннее контрактного,
|
|
37
|
+
// иначе мы обещали бы то, чего цепь не даст.
|
|
38
|
+
export function sellWindowSec({ poolSeen, soft = SELL_WINDOW.softSec, hard = SELL_WINDOW.hardSec } = {}) {
|
|
39
|
+
const s = positiveSec(soft, SELL_WINDOW.softSec);
|
|
40
|
+
const h = positiveSec(hard, SELL_WINDOW.hardSec);
|
|
41
|
+
const promised = Math.min(s, h);
|
|
42
|
+
return poolSeen ? promised : h;
|
|
43
|
+
}
|