@ickb/sdk 1000.0.43 → 1000.0.52
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/index.d.ts +120 -9
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +140 -34
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.d.ts +120 -9
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +141 -35
- package/dist/esm/index.js.map +1 -1
- package/package.json +9 -9
- package/src/index.ts +219 -53
package/dist/cjs/index.d.ts
CHANGED
|
@@ -3,20 +3,60 @@ import { SmartTransaction, type ScriptDeps, type UdtCell, type CapacityCell, typ
|
|
|
3
3
|
import { IckbUdtManager, LogicManager, OwnedOwnerManager, type IckbDepositCell, type ReceiptCell, type WithdrawalGroup } from "@ickb/core";
|
|
4
4
|
import { DaoManager, type DaoCell } from "@ickb/dao";
|
|
5
5
|
import { OrderManager, type OrderCell, type OrderGroup } from "@ickb/order";
|
|
6
|
+
/**
|
|
7
|
+
* Controller for managing iCKB operations.
|
|
8
|
+
*/
|
|
6
9
|
export declare class IckbController {
|
|
7
10
|
readonly ickbUdtManager: IckbUdtManager;
|
|
8
11
|
readonly logicManager: LogicManager;
|
|
9
12
|
readonly ownedOwnerManager: OwnedOwnerManager;
|
|
10
13
|
readonly orderManager: OrderManager;
|
|
11
14
|
readonly daoManager: DaoManager;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
readonly bots: ccc.Script[];
|
|
16
|
+
/**
|
|
17
|
+
* Creates an instance of IckbController.
|
|
18
|
+
* @param ickbUdtManager - The manager for iCKB UDT operations.
|
|
19
|
+
* @param logicManager - The logic manager for handling business logic.
|
|
20
|
+
* @param ownedOwnerManager - The manager for owned owner operations.
|
|
21
|
+
* @param orderManager - The manager for order operations.
|
|
22
|
+
* @param daoManager - The manager for DAO operations.
|
|
23
|
+
*/
|
|
24
|
+
constructor(ickbUdtManager: IckbUdtManager, logicManager: LogicManager, ownedOwnerManager: OwnedOwnerManager, orderManager: OrderManager, daoManager: DaoManager, bots: ccc.Script[]);
|
|
25
|
+
/**
|
|
26
|
+
* Creates an instance of IckbController from script dependencies.
|
|
27
|
+
* @param deps - The script dependencies.
|
|
28
|
+
* @param deps.udt - The script dependencies for UDT.
|
|
29
|
+
* @param deps.dao - The script dependencies for DAO.
|
|
30
|
+
* @param deps.ickbLogic - The script dependencies for iCKB logic.
|
|
31
|
+
* @param deps.ownedOwner - The script dependencies for owned owner.
|
|
32
|
+
* @param deps.order - The script dependencies for order.
|
|
33
|
+
* @returns An instance of IckbController.
|
|
34
|
+
*/
|
|
35
|
+
static fromDeps(deps: {
|
|
36
|
+
udt: ScriptDeps;
|
|
15
37
|
dao: ScriptDeps;
|
|
16
38
|
ickbLogic: ScriptDeps;
|
|
17
39
|
ownedOwner: ScriptDeps;
|
|
18
40
|
order: ScriptDeps;
|
|
19
|
-
}): IckbController;
|
|
41
|
+
}, bots: ccc.Script[]): IckbController;
|
|
42
|
+
/**
|
|
43
|
+
* Previews the conversion between CKB and UDT.
|
|
44
|
+
* @param conversion - The conversion parameters.
|
|
45
|
+
* @param conversion.isCkb2Udt - Indicates if the conversion is from CKB to UDT.
|
|
46
|
+
* @param conversion.amount - The amount to convert.
|
|
47
|
+
* @param conversion.rate - The exchange rate for conversion.
|
|
48
|
+
* @param conversion.fee - The fee for the conversion.
|
|
49
|
+
* @returns The rate and converted amount.
|
|
50
|
+
*
|
|
51
|
+
* Fee meaning examples:
|
|
52
|
+
* - 100000n => 0.001%
|
|
53
|
+
* - 10000n => 0.01%
|
|
54
|
+
* - 1000n => 0.1%
|
|
55
|
+
* - 100n => 1%
|
|
56
|
+
* - 10n => 10%
|
|
57
|
+
* - 1n => 100%
|
|
58
|
+
* - less than 1n => 0%
|
|
59
|
+
*/
|
|
20
60
|
static previewConversion(conversion: {
|
|
21
61
|
isCkb2Udt: boolean;
|
|
22
62
|
amount: ccc.FixedPoint;
|
|
@@ -26,6 +66,23 @@ export declare class IckbController {
|
|
|
26
66
|
rate: ExchangeRatio;
|
|
27
67
|
convertedAmount: ccc.FixedPoint;
|
|
28
68
|
};
|
|
69
|
+
/**
|
|
70
|
+
* Converts between CKB and UDT based on the provided options.
|
|
71
|
+
* @param options - The conversion options.
|
|
72
|
+
* @param options.conversion - The conversion parameters.
|
|
73
|
+
* @param options.conversion.isCkb2Udt - Indicates if the conversion is from CKB to UDT.
|
|
74
|
+
* @param options.conversion.amount - The amount to convert.
|
|
75
|
+
* @param options.conversion.rate - The exchange rate for conversion.
|
|
76
|
+
* @param options.conversion.ckbMinMatchLog - Minimum CKB match log (optional).
|
|
77
|
+
* @param options.conversion.ckbMinFee - Minimum CKB fee (optional).
|
|
78
|
+
* @param options.signer - The signer for the transaction.
|
|
79
|
+
* @param options.userCells - The user's cells.
|
|
80
|
+
* @param options.system - The current system state.
|
|
81
|
+
* @param options.filters - The filters for the conversion.
|
|
82
|
+
* @param options.filters.isReadyOnly - Indicates if only ready conversions should be considered.
|
|
83
|
+
* @param options.filters.isFulfilledOnly - Indicates if only fulfilled conversions should be considered.
|
|
84
|
+
* @returns A promise that resolves to the conversion result or undefined.
|
|
85
|
+
*/
|
|
29
86
|
convert(options: {
|
|
30
87
|
conversion: Parameters<typeof IckbController.previewConversion>[0] & {
|
|
31
88
|
ckbMinMatchLog?: number;
|
|
@@ -39,8 +96,31 @@ export declare class IckbController {
|
|
|
39
96
|
isFulfilledOnly: boolean;
|
|
40
97
|
};
|
|
41
98
|
}): Promise<Conversion | undefined>;
|
|
99
|
+
/**
|
|
100
|
+
* Attempts to perform a conversion based on the provided parameters.
|
|
101
|
+
* @param n - The size of deposit to make or withdraw from.
|
|
102
|
+
* @param conversion - The conversion parameters.
|
|
103
|
+
* @param conversion.isCkb2Udt - Indicates if the conversion is from CKB to UDT.
|
|
104
|
+
* @param conversion.amount - The amount to convert.
|
|
105
|
+
* @param conversion.rate - The exchange rate for conversion.
|
|
106
|
+
* @param conversion.info - Additional information for the conversion.
|
|
107
|
+
* @param conversion.ckbMinFee - Minimum CKB fee.
|
|
108
|
+
* @param conversion.lock - The script lock for the transaction.
|
|
109
|
+
* @param options - Additional options for the conversion.
|
|
110
|
+
* @returns A promise that resolves to the conversion result or undefined.
|
|
111
|
+
*/
|
|
42
112
|
private attempt;
|
|
43
|
-
|
|
113
|
+
/**
|
|
114
|
+
* Retrieves the L1 state based on the provided parameters.
|
|
115
|
+
* @param client - The client to interact with the blockchain.
|
|
116
|
+
* @param filter - The set of filters to apply.
|
|
117
|
+
* @param locks - The script locks to filter the user cells.
|
|
118
|
+
* @param options - Optional parameters for the state retrieval.
|
|
119
|
+
* @param options.minLockUp - The minimum lock-up period (optional).
|
|
120
|
+
* @param options.maxLockUp - The maximum lock-up period (optional).
|
|
121
|
+
* @returns A promise that resolves to an object containing the system state and user cells.
|
|
122
|
+
*/
|
|
123
|
+
getL1State(client: ccc.Client, filter: Set<keyof UserCells | "depositPool" | "ckbBots">, locks: ccc.Script[], options?: {
|
|
44
124
|
minLockUp?: ccc.Epoch;
|
|
45
125
|
maxLockUp?: ccc.Epoch;
|
|
46
126
|
}): Promise<{
|
|
@@ -48,32 +128,63 @@ export declare class IckbController {
|
|
|
48
128
|
user: UserCells;
|
|
49
129
|
}>;
|
|
50
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Represents the state of the system.
|
|
133
|
+
*/
|
|
51
134
|
export interface SystemState {
|
|
135
|
+
/** The fee rate for transactions. */
|
|
52
136
|
feeRate: ccc.Num;
|
|
137
|
+
/** The tip for the current block header. */
|
|
53
138
|
tip: ccc.ClientBlockHeader;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
};
|
|
139
|
+
/** The exchange ratio between CKB and UDT. */
|
|
140
|
+
exchangeRatio: ExchangeRatio;
|
|
141
|
+
/** The deposit cap expressed in CKB. */
|
|
58
142
|
ckbDepositCap: ccc.FixedPoint;
|
|
143
|
+
/** The deposit cap expressed in iCKB. */
|
|
59
144
|
udtDepositCap: ccc.FixedPoint;
|
|
145
|
+
/**
|
|
146
|
+
* The deposit pool containing iCKB deposit cells with cumulative iCKB amounts.
|
|
147
|
+
*/
|
|
60
148
|
depositPool: (IckbDepositCell & {
|
|
61
149
|
udtCumulative: bigint;
|
|
62
150
|
})[];
|
|
151
|
+
/**
|
|
152
|
+
* The order pool containing non-user order cells.
|
|
153
|
+
*/
|
|
63
154
|
orderPool: OrderCell[];
|
|
155
|
+
/**
|
|
156
|
+
* The ckb held by bots ready to match incoming iCKB to CKB conversions.
|
|
157
|
+
*/
|
|
158
|
+
ckbBots: ccc.FixedPoint;
|
|
64
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Represents the user cells in the system.
|
|
162
|
+
*/
|
|
65
163
|
export interface UserCells {
|
|
164
|
+
/** The capacities owned by the user. */
|
|
66
165
|
capacities: CapacityCell[];
|
|
166
|
+
/** The UDTs owned by the user. */
|
|
67
167
|
udts: UdtCell[];
|
|
168
|
+
/** The receipts associated with the user's transactions. */
|
|
68
169
|
receipts: ReceiptCell[];
|
|
170
|
+
/** The withdrawal groups for the user. */
|
|
69
171
|
withdrawalGroups: WithdrawalGroup[];
|
|
172
|
+
/** The orders placed by the user. */
|
|
70
173
|
orders: OrderGroup[];
|
|
174
|
+
/** The classical/non-iCKB deposits made by the user. */
|
|
71
175
|
deposits: DaoCell[];
|
|
176
|
+
/** The classical/non-iCKB withdrawal requests made by the user. */
|
|
72
177
|
withdrawalRequests: DaoCell[];
|
|
73
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Represents a conversion transaction.
|
|
181
|
+
*/
|
|
74
182
|
export interface Conversion {
|
|
183
|
+
/** The smart transaction associated with the conversion. */
|
|
75
184
|
tx: SmartTransaction;
|
|
185
|
+
/** The fee in CKB for the order created by the conversion. */
|
|
76
186
|
ckbFee: ccc.FixedPoint;
|
|
187
|
+
/** The estimated maturity epoch for conversion. */
|
|
77
188
|
maturity: ccc.Epoch;
|
|
78
189
|
}
|
|
79
190
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAIL,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,YAAY,EAIjB,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -6,32 +6,64 @@ const utils_1 = require("@ickb/utils");
|
|
|
6
6
|
const core_2 = require("@ickb/core");
|
|
7
7
|
const dao_1 = require("@ickb/dao");
|
|
8
8
|
const order_1 = require("@ickb/order");
|
|
9
|
+
/**
|
|
10
|
+
* Controller for managing iCKB operations.
|
|
11
|
+
*/
|
|
9
12
|
class IckbController {
|
|
10
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Creates an instance of IckbController.
|
|
15
|
+
* @param ickbUdtManager - The manager for iCKB UDT operations.
|
|
16
|
+
* @param logicManager - The logic manager for handling business logic.
|
|
17
|
+
* @param ownedOwnerManager - The manager for owned owner operations.
|
|
18
|
+
* @param orderManager - The manager for order operations.
|
|
19
|
+
* @param daoManager - The manager for DAO operations.
|
|
20
|
+
*/
|
|
21
|
+
constructor(ickbUdtManager, logicManager, ownedOwnerManager, orderManager, daoManager, bots) {
|
|
11
22
|
this.ickbUdtManager = ickbUdtManager;
|
|
12
23
|
this.logicManager = logicManager;
|
|
13
24
|
this.ownedOwnerManager = ownedOwnerManager;
|
|
14
25
|
this.orderManager = orderManager;
|
|
15
26
|
this.daoManager = daoManager;
|
|
27
|
+
this.bots = bots;
|
|
16
28
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Creates an instance of IckbController from script dependencies.
|
|
31
|
+
* @param deps - The script dependencies.
|
|
32
|
+
* @param deps.udt - The script dependencies for UDT.
|
|
33
|
+
* @param deps.dao - The script dependencies for DAO.
|
|
34
|
+
* @param deps.ickbLogic - The script dependencies for iCKB logic.
|
|
35
|
+
* @param deps.ownedOwner - The script dependencies for owned owner.
|
|
36
|
+
* @param deps.order - The script dependencies for order.
|
|
37
|
+
* @returns An instance of IckbController.
|
|
38
|
+
*/
|
|
39
|
+
static fromDeps(deps, bots) {
|
|
40
|
+
const { udt: { script: { codeHash, hashType }, cellDeps, }, ickbLogic: { script: ickbLogicScript }, } = deps;
|
|
41
|
+
const daoManager = dao_1.DaoManager.fromDeps(deps);
|
|
42
|
+
const udt = {
|
|
43
|
+
script: new core_1.ccc.Script(codeHash, hashType, [ickbLogicScript.hash(), "00000080"].join("")),
|
|
22
44
|
cellDeps,
|
|
23
45
|
};
|
|
24
|
-
const ickbUdtManager = core_2.IckbUdtManager.fromDeps(
|
|
25
|
-
return new IckbController(ickbUdtManager, core_2.LogicManager.fromDeps(
|
|
46
|
+
const ickbUdtManager = core_2.IckbUdtManager.fromDeps({ udt }, daoManager);
|
|
47
|
+
return new IckbController(ickbUdtManager, core_2.LogicManager.fromDeps(deps, daoManager, ickbUdtManager), core_2.OwnedOwnerManager.fromDeps(deps, daoManager, ickbUdtManager), order_1.OrderManager.fromDeps(deps, ickbUdtManager), daoManager, bots);
|
|
26
48
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Previews the conversion between CKB and UDT.
|
|
51
|
+
* @param conversion - The conversion parameters.
|
|
52
|
+
* @param conversion.isCkb2Udt - Indicates if the conversion is from CKB to UDT.
|
|
53
|
+
* @param conversion.amount - The amount to convert.
|
|
54
|
+
* @param conversion.rate - The exchange rate for conversion.
|
|
55
|
+
* @param conversion.fee - The fee for the conversion.
|
|
56
|
+
* @returns The rate and converted amount.
|
|
57
|
+
*
|
|
58
|
+
* Fee meaning examples:
|
|
59
|
+
* - 100000n => 0.001%
|
|
60
|
+
* - 10000n => 0.01%
|
|
61
|
+
* - 1000n => 0.1%
|
|
62
|
+
* - 100n => 1%
|
|
63
|
+
* - 10n => 10%
|
|
64
|
+
* - 1n => 100%
|
|
65
|
+
* - less than 1n => 0%
|
|
66
|
+
*/
|
|
35
67
|
static previewConversion(conversion) {
|
|
36
68
|
const { isCkb2Udt, amount, fee } = conversion;
|
|
37
69
|
let rate = conversion.rate;
|
|
@@ -47,6 +79,23 @@ class IckbController {
|
|
|
47
79
|
const convertedAmount = amount > core_1.ccc.Zero ? (0, core_2.convert)(isCkb2Udt, amount, rate) : core_1.ccc.Zero;
|
|
48
80
|
return { rate, convertedAmount };
|
|
49
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Converts between CKB and UDT based on the provided options.
|
|
84
|
+
* @param options - The conversion options.
|
|
85
|
+
* @param options.conversion - The conversion parameters.
|
|
86
|
+
* @param options.conversion.isCkb2Udt - Indicates if the conversion is from CKB to UDT.
|
|
87
|
+
* @param options.conversion.amount - The amount to convert.
|
|
88
|
+
* @param options.conversion.rate - The exchange rate for conversion.
|
|
89
|
+
* @param options.conversion.ckbMinMatchLog - Minimum CKB match log (optional).
|
|
90
|
+
* @param options.conversion.ckbMinFee - Minimum CKB fee (optional).
|
|
91
|
+
* @param options.signer - The signer for the transaction.
|
|
92
|
+
* @param options.userCells - The user's cells.
|
|
93
|
+
* @param options.system - The current system state.
|
|
94
|
+
* @param options.filters - The filters for the conversion.
|
|
95
|
+
* @param options.filters.isReadyOnly - Indicates if only ready conversions should be considered.
|
|
96
|
+
* @param options.filters.isFulfilledOnly - Indicates if only fulfilled conversions should be considered.
|
|
97
|
+
* @returns A promise that resolves to the conversion result or undefined.
|
|
98
|
+
*/
|
|
50
99
|
async convert(options) {
|
|
51
100
|
// Get user lock
|
|
52
101
|
const { system, signer } = options;
|
|
@@ -78,15 +127,29 @@ class IckbController {
|
|
|
78
127
|
};
|
|
79
128
|
return cachedAttempt(await (0, utils_1.asyncBinarySearch)(N, async (n) => (await cachedAttempt(n)) !== undefined));
|
|
80
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Attempts to perform a conversion based on the provided parameters.
|
|
132
|
+
* @param n - The size of deposit to make or withdraw from.
|
|
133
|
+
* @param conversion - The conversion parameters.
|
|
134
|
+
* @param conversion.isCkb2Udt - Indicates if the conversion is from CKB to UDT.
|
|
135
|
+
* @param conversion.amount - The amount to convert.
|
|
136
|
+
* @param conversion.rate - The exchange rate for conversion.
|
|
137
|
+
* @param conversion.info - Additional information for the conversion.
|
|
138
|
+
* @param conversion.ckbMinFee - Minimum CKB fee.
|
|
139
|
+
* @param conversion.lock - The script lock for the transaction.
|
|
140
|
+
* @param options - Additional options for the conversion.
|
|
141
|
+
* @returns A promise that resolves to the conversion result or undefined.
|
|
142
|
+
*/
|
|
81
143
|
async attempt(n, conversion, options) {
|
|
82
144
|
try {
|
|
83
145
|
const { isCkb2Udt, rate, info, ckbMinFee, lock } = conversion;
|
|
84
|
-
const { signer, userCells,
|
|
85
|
-
const { feeRate,
|
|
146
|
+
const { signer, userCells, filters, system } = options;
|
|
147
|
+
const { feeRate, ckbDepositCap, exchangeRatio, depositPool } = system;
|
|
86
148
|
const tx = utils_1.SmartTransaction.default();
|
|
87
|
-
const maturities = [];
|
|
149
|
+
const maturities = [[0n, 1n, 80n]]; // 3 minutes minimum
|
|
88
150
|
let ckbFee = core_1.ccc.Zero;
|
|
89
151
|
let amount = conversion.amount;
|
|
152
|
+
let udtWithdrawed = core_1.ccc.Zero;
|
|
90
153
|
// Core protocol
|
|
91
154
|
if (n > 0) {
|
|
92
155
|
if (isCkb2Udt) {
|
|
@@ -100,7 +163,8 @@ class IckbController {
|
|
|
100
163
|
else {
|
|
101
164
|
const myDeposits = depositPool.slice(0, n);
|
|
102
165
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
103
|
-
|
|
166
|
+
udtWithdrawed = myDeposits.slice(-1)[0].udtCumulative;
|
|
167
|
+
amount -= udtWithdrawed;
|
|
104
168
|
if (amount < core_1.ccc.Zero) {
|
|
105
169
|
// Too many Withdrawal Requests respectfully to the amount
|
|
106
170
|
return undefined;
|
|
@@ -119,13 +183,11 @@ class IckbController {
|
|
|
119
183
|
ckbFee = isCkb2Udt
|
|
120
184
|
? amount - (0, core_2.convert)(false, convertedAmount, exchangeRatio)
|
|
121
185
|
: (0, core_2.convert)(true, amount, exchangeRatio) - convertedAmount;
|
|
122
|
-
maturities.push(
|
|
123
|
-
//
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (ckbFee < ckbMinFee) {
|
|
128
|
-
return undefined;
|
|
186
|
+
maturities.push(orderMaturityEstimate(isCkb2Udt, amount, udtWithdrawed, system));
|
|
187
|
+
// Check that order provides enough fee to the bot for being matched
|
|
188
|
+
if (ckbFee < ckbMinFee) {
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
129
191
|
}
|
|
130
192
|
const { receipts, withdrawalGroups, orders, udts, capacities } = userCells;
|
|
131
193
|
this.logicManager.completeDeposit(tx, receipts);
|
|
@@ -148,11 +210,21 @@ class IckbController {
|
|
|
148
210
|
return undefined;
|
|
149
211
|
}
|
|
150
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Retrieves the L1 state based on the provided parameters.
|
|
215
|
+
* @param client - The client to interact with the blockchain.
|
|
216
|
+
* @param filter - The set of filters to apply.
|
|
217
|
+
* @param locks - The script locks to filter the user cells.
|
|
218
|
+
* @param options - Optional parameters for the state retrieval.
|
|
219
|
+
* @param options.minLockUp - The minimum lock-up period (optional).
|
|
220
|
+
* @param options.maxLockUp - The maximum lock-up period (optional).
|
|
221
|
+
* @returns A promise that resolves to an object containing the system state and user cells.
|
|
222
|
+
*/
|
|
151
223
|
async getL1State(client, filter, locks, options) {
|
|
152
224
|
const tip = await client.getTipHeader();
|
|
153
225
|
const onChain = true;
|
|
154
226
|
const opts = { ...options, tip, onChain };
|
|
155
|
-
const [feeRate, depositPool, capacities, udts, receipts, withdrawalGroups, orders, deposits, withdrawalRequests,] = await Promise.all([
|
|
227
|
+
const [feeRate, depositPool, capacities, udts, receipts, withdrawalGroups, orders, deposits, withdrawalRequests, botCapacities,] = await Promise.all([
|
|
156
228
|
client.getFeeRate(),
|
|
157
229
|
filter.has("depositPool")
|
|
158
230
|
? (0, utils_1.collect)(this.logicManager.findDeposits(client, opts))
|
|
@@ -176,7 +248,9 @@ class IckbController {
|
|
|
176
248
|
filter.has("withdrawalRequests")
|
|
177
249
|
? (0, utils_1.collect)(this.daoManager.findWithdrawalRequests(client, locks, opts))
|
|
178
250
|
: [],
|
|
179
|
-
|
|
251
|
+
filter.has("ckbBots")
|
|
252
|
+
? (0, utils_1.collect)(utils_1.CapacityManager.findCapacities(client, locks, opts))
|
|
253
|
+
: [],
|
|
180
254
|
]);
|
|
181
255
|
// Sort depositPool by maturity
|
|
182
256
|
depositPool.sort((a, b) => (0, utils_1.epochCompare)(a.maturity, b.maturity));
|
|
@@ -199,6 +273,11 @@ class IckbController {
|
|
|
199
273
|
}
|
|
200
274
|
const exchangeRatio = (0, core_2.ickbExchangeRatio)(tip);
|
|
201
275
|
const ckbDepositCap = (0, core_2.convert)(false, core_2.ICKB_DEPOSIT_CAP, exchangeRatio);
|
|
276
|
+
// Calculate the ckb ready to match incoming transactions
|
|
277
|
+
let ckbBots = botCapacities.reduce((acc, c) => acc + c.ckbValue, core_1.ccc.Zero);
|
|
278
|
+
// Each bot keeps a reserve of CKB for operations
|
|
279
|
+
ckbBots -= core_1.ccc.numFrom(this.bots.length) * core_1.ccc.fixedPointFrom("2000");
|
|
280
|
+
ckbBots = ckbBots > core_1.ccc.Zero ? ckbBots : core_1.ccc.Zero;
|
|
202
281
|
return {
|
|
203
282
|
system: {
|
|
204
283
|
feeRate,
|
|
@@ -208,6 +287,7 @@ class IckbController {
|
|
|
208
287
|
udtDepositCap: core_2.ICKB_DEPOSIT_CAP,
|
|
209
288
|
depositPool: cumulativeDepositPool,
|
|
210
289
|
orderPool: nonUserOrders,
|
|
290
|
+
ckbBots,
|
|
211
291
|
},
|
|
212
292
|
user: {
|
|
213
293
|
capacities,
|
|
@@ -222,14 +302,40 @@ class IckbController {
|
|
|
222
302
|
}
|
|
223
303
|
}
|
|
224
304
|
exports.IckbController = IckbController;
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
305
|
+
/**
|
|
306
|
+
* Estimates the maturity of an order based on the type of conversion and amount.
|
|
307
|
+
*
|
|
308
|
+
* @param isCkb2Udt - A boolean indicating if the order is from CKB to UDT.
|
|
309
|
+
* @param amount - The amount of CKB or UDT involved in the order.
|
|
310
|
+
* @param udtWithdrawed - The amount of UDT that has been withdrawn by the current conversion via core.
|
|
311
|
+
* @param system - The current system state, which includes the block header tip, order pool, deposit pool, CKB bots, and exchange ratio.
|
|
312
|
+
*
|
|
313
|
+
* @returns The estimated maturity epoch for the order.
|
|
314
|
+
*/
|
|
315
|
+
function orderMaturityEstimate(isCkb2Udt, amount, udtWithdrawed, system) {
|
|
316
|
+
const { tip, orderPool, depositPool, ckbBots, exchangeRatio } = system;
|
|
317
|
+
// Maturity estimate a priori, the estimation is based on:
|
|
318
|
+
// - CKB to iCKB orders at 100k CKB every minute
|
|
319
|
+
// - iCKB to CKB orders at 200 CKB every minute
|
|
320
|
+
let maturity = (0, utils_1.epochAdd)(tip.epoch, [
|
|
230
321
|
0n,
|
|
231
322
|
1n + amount / core_1.ccc.fixedPointFrom(isCkb2Udt ? 100000 : 200),
|
|
232
323
|
4n * 60n,
|
|
233
324
|
]);
|
|
325
|
+
if (isCkb2Udt) {
|
|
326
|
+
return maturity;
|
|
327
|
+
}
|
|
328
|
+
if (depositPool.length > 0) {
|
|
329
|
+
const udtWaiting = orderPool
|
|
330
|
+
.filter((o) => o.isUdt2CkbMatchable())
|
|
331
|
+
.reduce((acc, o) => acc + o.udtValue, core_1.ccc.Zero);
|
|
332
|
+
const udtAvailable = (0, core_2.convert)(isCkb2Udt, ckbBots, exchangeRatio);
|
|
333
|
+
const udtToConvert = amount + udtWithdrawed + udtWaiting - udtAvailable;
|
|
334
|
+
const i = (0, utils_1.binarySearch)(depositPool.length,
|
|
335
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
336
|
+
(n) => depositPool[n].udtCumulative >= udtToConvert);
|
|
337
|
+
maturity = depositPool[i]?.maturity ?? maturity;
|
|
338
|
+
}
|
|
339
|
+
return maturity;
|
|
234
340
|
}
|
|
235
341
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|