@ickb/sdk 1000.0.43 → 1000.0.71

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.
@@ -0,0 +1,152 @@
1
+ import { ccc } from "@ckb-ccc/core";
2
+ import { IckbUdtManager, LogicManager, OwnedOwnerManager } from "@ickb/core";
3
+ import { DaoManager } from "@ickb/dao";
4
+ import { OrderManager } from "@ickb/order";
5
+ import { CapacityManager, unique } from "@ickb/utils";
6
+ /**
7
+ * The iCKB UDT name.
8
+ */
9
+ export const UDT_NAME = "iCKB";
10
+ /**
11
+ * The iCKB UDT symbol.
12
+ */
13
+ export const UDT_SYMBOL = "iCKB";
14
+ /**
15
+ * The iCKB UDT number of decimals.
16
+ */
17
+ export const UDT_DECIMALS = 8;
18
+ /**
19
+ * Retrieves the configuration for the given deployment environment.
20
+ *
21
+ * Accepts either a string identifier ("mainnet" or "testnet") or a custom configuration
22
+ * object containing script dependencies for a devnet.
23
+ *
24
+ * It sets up various managers (UDT, Logic, OwnedOwner, Order, Dao, Capacity) and also
25
+ * aggregates a unique list of known bot scripts.
26
+ *
27
+ * @param deps - Either a network identifier ("mainnet"/"testnet") or an object containing
28
+ * explicit script dependencies for devnet.
29
+ * @param bots - An optional array of bot script-like objects to augment the list of known bots.
30
+ * @returns An object containing the instantiated managers and bots.
31
+ */
32
+ export function getConfig(deps, bots = []) {
33
+ // If deps is provided as a network string, use the pre-defined constants.
34
+ if (deps === "mainnet" || deps === "testnet") {
35
+ bots = bots.concat(deps === "mainnet" ? MAINNET_KNOWN_BOTS : TESTNET_KNOWN_BOTS);
36
+ const depGroup = deps === "mainnet" ? MAINNET_DEP_GROUP : TESTNET_DEP_GROUP;
37
+ deps = {
38
+ udt: from(UDT, depGroup),
39
+ ickbLogic: from(ICKB_LOGIC, depGroup),
40
+ ownedOwner: from(OWNED_OWNER, depGroup),
41
+ order: from(ORDER, depGroup),
42
+ dao: from(DAO, depGroup),
43
+ };
44
+ }
45
+ const daoManager = DaoManager.fromDeps(deps);
46
+ const ickbUdtManager = IckbUdtManager.fromDeps(deps, daoManager);
47
+ return {
48
+ managers: {
49
+ udt: ickbUdtManager,
50
+ ickbLogic: LogicManager.fromDeps(deps, daoManager, ickbUdtManager),
51
+ ownedOwner: OwnedOwnerManager.fromDeps(deps, daoManager, ickbUdtManager),
52
+ order: OrderManager.fromDeps(deps, ickbUdtManager),
53
+ dao: daoManager,
54
+ capacity: CapacityManager.withAnyData(),
55
+ },
56
+ bots: [...unique(bots.map((b) => ccc.Script.from(b)))],
57
+ };
58
+ }
59
+ /**
60
+ * Wraps a script-like object into a ScriptDeps structure.
61
+ *
62
+ * @param script - The script or script-like object.
63
+ * @param cellDeps - Additional cell dependencies that the script may require.
64
+ * @returns An object containing the script and its associated cell dependencies.
65
+ */
66
+ function from(script, ...cellDeps) {
67
+ return {
68
+ script: ccc.Script.from(script),
69
+ cellDeps,
70
+ };
71
+ }
72
+ /**
73
+ * UDT (User Defined Token) lock script information used for onchain validation.
74
+ */
75
+ const UDT = {
76
+ codeHash: "0x50bd8d6680b8b9cf98b73f3c08faf8b2a21914311954118ad6609be6e78a1b95",
77
+ hashType: "data1",
78
+ args: "0xb73b6ab39d79390c6de90a09c96b290c331baf1798ed6f97aed02590929734e800000080",
79
+ };
80
+ /**
81
+ * DAO (Decentralized Autonomous Organization) lock script information.
82
+ */
83
+ const DAO = {
84
+ codeHash: "0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e",
85
+ hashType: "type",
86
+ args: "0x",
87
+ };
88
+ /**
89
+ * Logic script information for the iCKB logic contract.
90
+ */
91
+ const ICKB_LOGIC = {
92
+ codeHash: "0x2a8100ab5990fa055ab1b50891702e1e895c7bd1df6322cd725c1a6115873bd3",
93
+ hashType: "data1",
94
+ args: "0x",
95
+ };
96
+ /**
97
+ * OwnedOwner lock script information.
98
+ */
99
+ const OWNED_OWNER = {
100
+ codeHash: "0xacc79e07d107831feef4c70c9e683dac5644d5993b9cb106dca6e74baa381bd0",
101
+ hashType: "data1",
102
+ args: "0x",
103
+ };
104
+ /**
105
+ * Order lock script information.
106
+ */
107
+ const ORDER = {
108
+ codeHash: "0x49dfb6afee5cc8ac4225aeea8cb8928b150caf3cd92fea33750683c74b13254a",
109
+ hashType: "data1",
110
+ args: "0x",
111
+ };
112
+ /**
113
+ * Mainnet dependency group cell dep.
114
+ */
115
+ const MAINNET_DEP_GROUP = ccc.CellDep.from({
116
+ outPoint: {
117
+ txHash: "0x621a6f38de3b9f453016780edac3b26bfcbfa3e2ecb47c2da275471a5d3ed165",
118
+ index: "0x0",
119
+ },
120
+ depType: "depGroup",
121
+ });
122
+ /**
123
+ * Testnet dependency group cell dep.
124
+ */
125
+ const TESTNET_DEP_GROUP = ccc.CellDep.from({
126
+ outPoint: {
127
+ txHash: "0xf7ece4fb33d8378344cab11fcd6a4c6f382fd4207ac921cf5821f30712dcd311",
128
+ index: "0x0",
129
+ },
130
+ depType: "depGroup",
131
+ });
132
+ /**
133
+ * Array of known bot scripts on the mainnet.
134
+ */
135
+ const MAINNET_KNOWN_BOTS = [
136
+ {
137
+ codeHash: "0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8",
138
+ hashType: "type",
139
+ args: "0xd096cb29e2f68a85a46bd6bf6cbee6327959ba64",
140
+ },
141
+ ];
142
+ /**
143
+ * Array of known bot scripts on the testnet.
144
+ */
145
+ const TESTNET_KNOWN_BOTS = [
146
+ {
147
+ codeHash: "0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8",
148
+ hashType: "type",
149
+ args: "0xb4380110f7679ac31cefe4925485645d82bf619f",
150
+ },
151
+ ];
152
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1,79 +1,4 @@
1
- import { ccc } from "@ckb-ccc/core";
2
- import { SmartTransaction, type ScriptDeps, type UdtCell, type CapacityCell, type ExchangeRatio } from "@ickb/utils";
3
- import { IckbUdtManager, LogicManager, OwnedOwnerManager, type IckbDepositCell, type ReceiptCell, type WithdrawalGroup } from "@ickb/core";
4
- import { DaoManager, type DaoCell } from "@ickb/dao";
5
- import { OrderManager, type OrderCell, type OrderGroup } from "@ickb/order";
6
- export declare class IckbController {
7
- readonly ickbUdtManager: IckbUdtManager;
8
- readonly logicManager: LogicManager;
9
- readonly ownedOwnerManager: OwnedOwnerManager;
10
- readonly orderManager: OrderManager;
11
- readonly daoManager: DaoManager;
12
- constructor(ickbUdtManager: IckbUdtManager, logicManager: LogicManager, ownedOwnerManager: OwnedOwnerManager, orderManager: OrderManager, daoManager: DaoManager);
13
- static fromDeps({ xudt, dao, ickbLogic, ownedOwner, order, }: {
14
- xudt: ScriptDeps;
15
- dao: ScriptDeps;
16
- ickbLogic: ScriptDeps;
17
- ownedOwner: ScriptDeps;
18
- order: ScriptDeps;
19
- }): IckbController;
20
- static previewConversion(conversion: {
21
- isCkb2Udt: boolean;
22
- amount: ccc.FixedPoint;
23
- rate: ExchangeRatio | ccc.ClientBlockHeader;
24
- fee: ccc.Num;
25
- }): {
26
- rate: ExchangeRatio;
27
- convertedAmount: ccc.FixedPoint;
28
- };
29
- convert(options: {
30
- conversion: Parameters<typeof IckbController.previewConversion>[0] & {
31
- ckbMinMatchLog?: number;
32
- ckbMinFee?: ccc.Num;
33
- };
34
- signer: ccc.Signer;
35
- userCells: UserCells;
36
- system: SystemState;
37
- filters: {
38
- isReadyOnly: boolean;
39
- isFulfilledOnly: boolean;
40
- };
41
- }): Promise<Conversion | undefined>;
42
- private attempt;
43
- getL1State(client: ccc.Client, filter: Set<keyof UserCells | "depositPool">, locks: ccc.Script[], options?: {
44
- minLockUp?: ccc.Epoch;
45
- maxLockUp?: ccc.Epoch;
46
- }): Promise<{
47
- system: SystemState;
48
- user: UserCells;
49
- }>;
50
- }
51
- export interface SystemState {
52
- feeRate: ccc.Num;
53
- tip: ccc.ClientBlockHeader;
54
- exchangeRatio: {
55
- ckbScale: ccc.Num;
56
- udtScale: ccc.Num;
57
- };
58
- ckbDepositCap: ccc.FixedPoint;
59
- udtDepositCap: ccc.FixedPoint;
60
- depositPool: (IckbDepositCell & {
61
- udtCumulative: bigint;
62
- })[];
63
- orderPool: OrderCell[];
64
- }
65
- export interface UserCells {
66
- capacities: CapacityCell[];
67
- udts: UdtCell[];
68
- receipts: ReceiptCell[];
69
- withdrawalGroups: WithdrawalGroup[];
70
- orders: OrderGroup[];
71
- deposits: DaoCell[];
72
- withdrawalRequests: DaoCell[];
73
- }
74
- export interface Conversion {
75
- tx: SmartTransaction;
76
- ckbFee: ccc.FixedPoint;
77
- maturity: ccc.Epoch;
78
- }
1
+ export * from "./sdk.js";
2
+ export * from "./codec.js";
3
+ export * from "./constants.js";
79
4
  //# sourceMappingURL=index.d.ts.map
@@ -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,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAIL,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAEL,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AAErB,qBAAa,cAAc;aAEP,cAAc,EAAE,cAAc;aAC9B,YAAY,EAAE,YAAY;aAC1B,iBAAiB,EAAE,iBAAiB;aACpC,YAAY,EAAE,YAAY;aAC1B,UAAU,EAAE,UAAU;gBAJtB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU;IAGxC,MAAM,CAAC,QAAQ,CAAC,EACd,IAAI,EACJ,GAAG,EACH,SAAS,EACT,UAAU,EACV,KAAK,GACN,EAAE;QACD,IAAI,EAAE,UAAU,CAAC;QACjB,GAAG,EAAE,UAAU,CAAC;QAChB,SAAS,EAAE,UAAU,CAAC;QACtB,UAAU,EAAE,UAAU,CAAC;QACvB,KAAK,EAAE,UAAU,CAAC;KACnB,GAAG,cAAc;IAkClB,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE;QACnC,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC;QACvB,IAAI,EAAE,aAAa,GAAG,GAAG,CAAC,iBAAiB,CAAC;QAC5C,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;KACd,GAAG;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,eAAe,EAAE,GAAG,CAAC,UAAU,CAAA;KAAE;IAoBtD,OAAO,CAAC,OAAO,EAAE;QACrB,UAAU,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG;YACnE,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;SACrB,CAAC;QACF,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,SAAS,CAAC;QACrB,MAAM,EAAE,WAAW,CAAC;QACpB,OAAO,EAAE;YACP,WAAW,EAAE,OAAO,CAAC;YACrB,eAAe,EAAE,OAAO,CAAC;SAC1B,CAAC;KACH,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YA2CrB,OAAO;IAgGf,UAAU,CACd,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,MAAM,EAAE,GAAG,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,EAC5C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,EACnB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;QACtB,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;KACvB,GACA,OAAO,CAAC;QACT,MAAM,EAAE,WAAW,CAAC;QACpB,IAAI,EAAE,SAAS,CAAC;KACjB,CAAC;CAuFH;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC;IACjB,GAAG,EAAE,GAAG,CAAC,iBAAiB,CAAC;IAC3B,aAAa,EAAE;QACb,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC;QAClB,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC;KACnB,CAAC;IACF,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC;IAC9B,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC;IAC9B,WAAW,EAAE,CAAC,eAAe,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAC7D,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,kBAAkB,EAAE,OAAO,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,gBAAgB,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC;CACrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,231 +1,4 @@
1
- import { ccc } from "@ckb-ccc/core";
2
- import { collect, epochCompare, CapacityManager, SmartTransaction, epochAdd, asyncBinarySearch, RestrictedTransaction, } from "@ickb/utils";
3
- import { convert, ICKB_DEPOSIT_CAP, ickbExchangeRatio, IckbUdtManager, LogicManager, OwnedOwnerManager, } from "@ickb/core";
4
- import { DaoManager } from "@ickb/dao";
5
- import { Info, OrderManager, } from "@ickb/order";
6
- export class IckbController {
7
- constructor(ickbUdtManager, logicManager, ownedOwnerManager, orderManager, daoManager) {
8
- this.ickbUdtManager = ickbUdtManager;
9
- this.logicManager = logicManager;
10
- this.ownedOwnerManager = ownedOwnerManager;
11
- this.orderManager = orderManager;
12
- this.daoManager = daoManager;
13
- }
14
- static fromDeps({ xudt, dao, ickbLogic, ownedOwner, order, }) {
15
- const daoManager = DaoManager.fromDeps(dao);
16
- const { script: { codeHash, hashType }, cellDeps, } = xudt;
17
- const ickbXudt = {
18
- script: new ccc.Script(codeHash, hashType, [ickbLogic.script.hash(), "00000080"].join("")),
19
- cellDeps,
20
- };
21
- const ickbUdtManager = IckbUdtManager.fromDeps(ickbXudt, daoManager);
22
- return new IckbController(ickbUdtManager, LogicManager.fromDeps(ickbLogic, daoManager, ickbUdtManager), OwnedOwnerManager.fromDeps(ownedOwner, daoManager, ickbUdtManager), OrderManager.fromDeps(order, ickbUdtManager), daoManager);
23
- }
24
- // fee examples:
25
- // 100000n => 0.001%
26
- // 10000n => 0.01%
27
- // 1000n => 0.1%
28
- // 100n => 1%
29
- // 10n => 10%
30
- // 1n => 100%
31
- // less than 1n => 0%
32
- static previewConversion(conversion) {
33
- const { isCkb2Udt, amount, fee } = conversion;
34
- let rate = conversion.rate;
35
- rate = "dao" in rate ? ickbExchangeRatio(rate) : rate;
36
- if (fee > ccc.Zero) {
37
- const { ckbScale, udtScale } = rate;
38
- rate = {
39
- ckbScale,
40
- // Worst case scenario where fee applies to the full amount
41
- udtScale: udtScale + (isCkb2Udt ? 1n : -1n) * (udtScale / fee),
42
- };
43
- }
44
- const convertedAmount = amount > ccc.Zero ? convert(isCkb2Udt, amount, rate) : ccc.Zero;
45
- return { rate, convertedAmount };
46
- }
47
- async convert(options) {
48
- // Get user lock
49
- const { system, signer } = options;
50
- const lock = (await signer.getRecommendedAddressObj()).script;
51
- // Normalize rate
52
- const { rate } = IckbController.previewConversion({
53
- ...options.conversion,
54
- amount: ccc.Zero,
55
- });
56
- const { isCkb2Udt, amount, ckbMinMatchLog } = options.conversion;
57
- const info = Info.create(isCkb2Udt, rate, ckbMinMatchLog);
58
- // feeRate is a good approximation of the bot tx size matching the order
59
- const ckbMinFee = options.conversion.ckbMinFee ?? 10n * system.feeRate;
60
- const conversion = {
61
- isCkb2Udt,
62
- amount,
63
- rate,
64
- info,
65
- ckbMinFee,
66
- lock,
67
- };
68
- const N = isCkb2Udt
69
- ? Number(amount / system.ckbDepositCap)
70
- : system.depositPool.slice(0, 30).length;
71
- const cache = Array(N);
72
- const cachedAttempt = (n) => {
73
- n = N - n;
74
- return (cache[n] = cache[n] ?? this.attempt(n, conversion, options));
75
- };
76
- return cachedAttempt(await asyncBinarySearch(N, async (n) => (await cachedAttempt(n)) !== undefined));
77
- }
78
- async attempt(n, conversion, options) {
79
- try {
80
- const { isCkb2Udt, rate, info, ckbMinFee, lock } = conversion;
81
- const { signer, userCells, system, filters } = options;
82
- const { feeRate, depositPool, ckbDepositCap, exchangeRatio } = system;
83
- const tx = SmartTransaction.default();
84
- const maturities = [];
85
- let ckbFee = ccc.Zero;
86
- let amount = conversion.amount;
87
- // Core protocol
88
- if (n > 0) {
89
- if (isCkb2Udt) {
90
- amount -= ckbDepositCap * BigInt(n);
91
- if (amount < ccc.Zero) {
92
- // Too many Deposits respectfully to the amount
93
- return undefined;
94
- }
95
- this.logicManager.deposit(tx, n, ckbDepositCap, lock);
96
- }
97
- else {
98
- const myDeposits = depositPool.slice(0, n);
99
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
100
- amount -= myDeposits.slice(-1)[0].udtCumulative;
101
- if (amount < ccc.Zero) {
102
- // Too many Withdrawal Requests respectfully to the amount
103
- return undefined;
104
- }
105
- this.ownedOwnerManager.requestWithdrawal(tx, myDeposits, lock);
106
- maturities.push(...myDeposits.map((d) => d.maturity));
107
- }
108
- }
109
- // Order protocol
110
- if (amount > ccc.Zero) {
111
- this.orderManager.mint(tx, lock, info, {
112
- ckbValue: isCkb2Udt ? amount : ccc.Zero,
113
- udtValue: isCkb2Udt ? ccc.Zero : amount,
114
- });
115
- const convertedAmount = convert(isCkb2Udt, amount, rate);
116
- ckbFee = isCkb2Udt
117
- ? amount - convert(false, convertedAmount, exchangeRatio)
118
- : convert(true, amount, exchangeRatio) - convertedAmount;
119
- maturities.push(
120
- // TODO: use real world data from deposits, open orders and bot balances
121
- orderMaturityEstimate(isCkb2Udt, amount, system.tip));
122
- }
123
- // Check that order provides enough fee to the bot for being matched
124
- if (ckbFee < ckbMinFee) {
125
- return undefined;
126
- }
127
- const { receipts, withdrawalGroups, orders, udts, capacities } = userCells;
128
- this.logicManager.completeDeposit(tx, receipts);
129
- this.ownedOwnerManager.withdraw(tx, withdrawalGroups, filters);
130
- this.orderManager.melt(tx, orders, filters);
131
- this.ickbUdtManager.addUdts(tx, udts);
132
- CapacityManager.addCapacities(tx, capacities);
133
- // Throw an error if inputs do not cover for outputs
134
- await new RestrictedTransaction(tx).completeFeeBy(signer, feeRate);
135
- // Find the maturity most distant in the future
136
- const maturity = maturities.reduce((a, b) => epochCompare(a, b) === -1 ? b : a);
137
- return {
138
- tx,
139
- ckbFee,
140
- maturity,
141
- };
142
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
143
- }
144
- catch (_) {
145
- return undefined;
146
- }
147
- }
148
- async getL1State(client, filter, locks, options) {
149
- const tip = await client.getTipHeader();
150
- const onChain = true;
151
- const opts = { ...options, tip, onChain };
152
- const [feeRate, depositPool, capacities, udts, receipts, withdrawalGroups, orders, deposits, withdrawalRequests,] = await Promise.all([
153
- client.getFeeRate(),
154
- filter.has("depositPool")
155
- ? collect(this.logicManager.findDeposits(client, opts))
156
- : [],
157
- filter.has("capacities")
158
- ? collect(CapacityManager.findCapacities(client, locks, opts))
159
- : [],
160
- filter.has("udts")
161
- ? collect(this.ickbUdtManager.findUdts(client, locks, opts))
162
- : [],
163
- filter.has("receipts")
164
- ? collect(this.logicManager.findReceipts(client, locks, opts))
165
- : [],
166
- filter.has("withdrawalGroups")
167
- ? collect(this.ownedOwnerManager.findWithdrawalGroups(client, locks, opts))
168
- : [],
169
- filter.has("orders") ? collect(this.orderManager.findOrders(client)) : [],
170
- filter.has("deposits")
171
- ? collect(this.daoManager.findDeposits(client, locks, opts))
172
- : [],
173
- filter.has("withdrawalRequests")
174
- ? collect(this.daoManager.findWithdrawalRequests(client, locks, opts))
175
- : [],
176
- // TODO: fetch bot cells for estimating timings
177
- ]);
178
- // Sort depositPool by maturity
179
- depositPool.sort((a, b) => epochCompare(a.maturity, b.maturity));
180
- // Calculate cumulative value of deposits in the pool
181
- let udtCumulative = 0n;
182
- const cumulativeDepositPool = [];
183
- for (const deposit of depositPool) {
184
- udtCumulative += deposit.udtValue;
185
- cumulativeDepositPool.push({ ...deposit, udtCumulative });
186
- }
187
- const userOrders = [];
188
- const nonUserOrders = [];
189
- for (const group of orders) {
190
- if (group.isOwner(...locks)) {
191
- userOrders.push(group);
192
- }
193
- else {
194
- nonUserOrders.push(group.order);
195
- }
196
- }
197
- const exchangeRatio = ickbExchangeRatio(tip);
198
- const ckbDepositCap = convert(false, ICKB_DEPOSIT_CAP, exchangeRatio);
199
- return {
200
- system: {
201
- feeRate,
202
- tip,
203
- exchangeRatio,
204
- ckbDepositCap,
205
- udtDepositCap: ICKB_DEPOSIT_CAP,
206
- depositPool: cumulativeDepositPool,
207
- orderPool: nonUserOrders,
208
- },
209
- user: {
210
- capacities,
211
- udts,
212
- receipts,
213
- withdrawalGroups,
214
- orders: userOrders,
215
- deposits,
216
- withdrawalRequests,
217
- },
218
- };
219
- }
220
- }
221
- // Estimate bot ability to fulfill orders:
222
- // - CKB to iCKB orders at 100k CKB every minute
223
- // - iCKB to CKB orders at 200 CKB every minute
224
- function orderMaturityEstimate(isCkb2Udt, amount, tip) {
225
- return epochAdd(tip.epoch, [
226
- 0n,
227
- 1n + amount / ccc.fixedPointFrom(isCkb2Udt ? 100000 : 200),
228
- 4n * 60n,
229
- ]);
230
- }
1
+ export * from "./sdk.js";
2
+ export * from "./codec.js";
3
+ export * from "./constants.js";
231
4
  //# sourceMappingURL=index.js.map
@@ -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":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}