@mysten/deepbook-v3 1.5.8 → 1.6.2
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 +73 -0
- package/dist/client.d.mts +5 -0
- package/dist/client.d.mts.map +1 -1
- package/dist/client.mjs +7 -0
- package/dist/client.mjs.map +1 -1
- package/dist/contracts/deepbook/account.d.mts +18 -18
- package/dist/contracts/deepbook/account.d.mts.map +1 -1
- package/dist/contracts/deepbook/balance_manager.mjs +413 -0
- package/dist/contracts/deepbook/balance_manager.mjs.map +1 -0
- package/dist/contracts/deepbook/big_vector.mjs +43 -0
- package/dist/contracts/deepbook/big_vector.mjs.map +1 -0
- package/dist/contracts/deepbook/book.mjs +29 -0
- package/dist/contracts/deepbook/book.mjs.map +1 -0
- package/dist/contracts/deepbook/deep_price.d.mts +3 -3
- package/dist/contracts/deepbook/deep_price.d.mts.map +1 -1
- package/dist/contracts/deepbook/deep_price.mjs +1 -1
- package/dist/contracts/deepbook/deps/std/type_name.mjs +17 -0
- package/dist/contracts/deepbook/deps/std/type_name.mjs.map +1 -0
- package/dist/contracts/deepbook/deps/sui/bag.mjs +43 -0
- package/dist/contracts/deepbook/deps/sui/bag.mjs.map +1 -0
- package/dist/contracts/deepbook/deps/sui/balance.mjs +21 -0
- package/dist/contracts/deepbook/deps/sui/balance.mjs.map +1 -0
- package/dist/contracts/deepbook/deps/sui/table.mjs +38 -0
- package/dist/contracts/deepbook/deps/sui/table.mjs.map +1 -0
- package/dist/contracts/deepbook/deps/sui/vec_map.mjs +37 -0
- package/dist/contracts/deepbook/deps/sui/vec_map.mjs.map +1 -0
- package/dist/contracts/deepbook/deps/sui/versioned.mjs +19 -0
- package/dist/contracts/deepbook/deps/sui/versioned.mjs.map +1 -0
- package/dist/contracts/deepbook/governance.mjs +49 -0
- package/dist/contracts/deepbook/governance.mjs.map +1 -0
- package/dist/contracts/deepbook/history.mjs +56 -0
- package/dist/contracts/deepbook/history.mjs.map +1 -0
- package/dist/contracts/deepbook/order.d.mts +12 -12
- package/dist/contracts/deepbook/pool.mjs +1739 -0
- package/dist/contracts/deepbook/pool.mjs.map +1 -0
- package/dist/contracts/deepbook/registry.mjs +295 -0
- package/dist/contracts/deepbook/registry.mjs.map +1 -0
- package/dist/contracts/deepbook/state.mjs +89 -0
- package/dist/contracts/deepbook/state.mjs.map +1 -0
- package/dist/contracts/deepbook/trade_params.mjs +21 -0
- package/dist/contracts/deepbook/trade_params.mjs.map +1 -0
- package/dist/contracts/deepbook/vault.mjs +42 -0
- package/dist/contracts/deepbook/vault.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs +53 -0
- package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/deps/std/type_name.mjs +17 -0
- package/dist/contracts/deepbook_margin/deps/std/type_name.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/deps/sui/bag.mjs +43 -0
- package/dist/contracts/deepbook_margin/deps/sui/bag.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/deps/sui/balance.mjs +21 -0
- package/dist/contracts/deepbook_margin/deps/sui/balance.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/deps/sui/table.mjs +38 -0
- package/dist/contracts/deepbook_margin/deps/sui/table.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs +37 -0
- package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs +26 -0
- package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs +19 -0
- package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/margin_manager.mjs +989 -0
- package/dist/contracts/deepbook_margin/margin_manager.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/margin_pool.mjs +550 -0
- package/dist/contracts/deepbook_margin/margin_pool.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/margin_registry.mjs +786 -0
- package/dist/contracts/deepbook_margin/margin_registry.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/margin_state.mjs +30 -0
- package/dist/contracts/deepbook_margin/margin_state.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/oracle.mjs +82 -0
- package/dist/contracts/deepbook_margin/oracle.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/pool_proxy.mjs +644 -0
- package/dist/contracts/deepbook_margin/pool_proxy.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/position_manager.mjs +32 -0
- package/dist/contracts/deepbook_margin/position_manager.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/protocol_config.mjs +122 -0
- package/dist/contracts/deepbook_margin/protocol_config.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/protocol_fees.mjs +58 -0
- package/dist/contracts/deepbook_margin/protocol_fees.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/rate_limiter.mjs +26 -0
- package/dist/contracts/deepbook_margin/rate_limiter.mjs.map +1 -0
- package/dist/contracts/deepbook_margin/tpsl.mjs +171 -0
- package/dist/contracts/deepbook_margin/tpsl.mjs.map +1 -0
- package/dist/contracts/margin_liquidation/deps/sui/bag.mjs +43 -0
- package/dist/contracts/margin_liquidation/deps/sui/bag.mjs.map +1 -0
- package/dist/contracts/margin_liquidation/liquidation_vault.mjs +179 -0
- package/dist/contracts/margin_liquidation/liquidation_vault.mjs.map +1 -0
- package/dist/contracts/utils/index.d.mts +1 -1
- package/dist/contracts/utils/index.mjs +92 -3
- package/dist/contracts/utils/index.mjs.map +1 -1
- package/dist/queries/registryQueries.mjs +13 -0
- package/dist/queries/registryQueries.mjs.map +1 -1
- package/dist/transactions/balanceManager.d.mts.map +1 -1
- package/dist/transactions/balanceManager.mjs +119 -100
- package/dist/transactions/balanceManager.mjs.map +1 -1
- package/dist/transactions/deepbook.d.mts.map +1 -1
- package/dist/transactions/deepbook.mjs +464 -439
- package/dist/transactions/deepbook.mjs.map +1 -1
- package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
- package/dist/transactions/deepbookAdmin.mjs +151 -135
- package/dist/transactions/deepbookAdmin.mjs.map +1 -1
- package/dist/transactions/flashLoans.d.mts.map +1 -1
- package/dist/transactions/flashLoans.mjs +29 -22
- package/dist/transactions/flashLoans.mjs.map +1 -1
- package/dist/transactions/governance.d.mts.map +1 -1
- package/dist/transactions/governance.mjs +34 -33
- package/dist/transactions/governance.mjs.map +1 -1
- package/dist/transactions/marginAdmin.d.mts +17 -7
- package/dist/transactions/marginAdmin.d.mts.map +1 -1
- package/dist/transactions/marginAdmin.mjs +186 -169
- package/dist/transactions/marginAdmin.mjs.map +1 -1
- package/dist/transactions/marginLiquidations.d.mts +3 -3
- package/dist/transactions/marginLiquidations.d.mts.map +1 -1
- package/dist/transactions/marginLiquidations.mjs +53 -54
- package/dist/transactions/marginLiquidations.mjs.map +1 -1
- package/dist/transactions/marginMaintainer.d.mts +5 -5
- package/dist/transactions/marginMaintainer.d.mts.map +1 -1
- package/dist/transactions/marginMaintainer.mjs +83 -83
- package/dist/transactions/marginMaintainer.mjs.map +1 -1
- package/dist/transactions/marginManager.d.mts +32 -32
- package/dist/transactions/marginManager.d.mts.map +1 -1
- package/dist/transactions/marginManager.mjs +330 -317
- package/dist/transactions/marginManager.mjs.map +1 -1
- package/dist/transactions/marginPool.d.mts +18 -18
- package/dist/transactions/marginPool.d.mts.map +1 -1
- package/dist/transactions/marginPool.mjs +93 -89
- package/dist/transactions/marginPool.mjs.map +1 -1
- package/dist/transactions/marginRegistry.d.mts +22 -15
- package/dist/transactions/marginRegistry.d.mts.map +1 -1
- package/dist/transactions/marginRegistry.mjs +101 -68
- package/dist/transactions/marginRegistry.mjs.map +1 -1
- package/dist/transactions/marginTPSL.d.mts +27 -9
- package/dist/transactions/marginTPSL.d.mts.map +1 -1
- package/dist/transactions/marginTPSL.mjs +108 -82
- package/dist/transactions/marginTPSL.mjs.map +1 -1
- package/dist/transactions/poolProxy.d.mts +37 -5
- package/dist/transactions/poolProxy.d.mts.map +1 -1
- package/dist/transactions/poolProxy.mjs +269 -189
- package/dist/transactions/poolProxy.mjs.map +1 -1
- package/dist/utils/constants.mjs +4 -4
- package/dist/utils/constants.mjs.map +1 -1
- package/package.json +3 -3
- package/src/client.ts +8 -0
- package/src/contracts/deepbook/balance_manager.ts +46 -5
- package/src/contracts/deepbook/constants.ts +13 -0
- package/src/contracts/deepbook/pool.ts +133 -0
- package/src/contracts/deepbook/registry.ts +136 -1
- package/src/contracts/deepbook_margin/deps/deepbook/balance_manager.ts +49 -0
- package/src/contracts/deepbook_margin/deps/std/type_name.ts +24 -0
- package/src/contracts/deepbook_margin/deps/sui/bag.ts +41 -0
- package/src/contracts/deepbook_margin/deps/sui/balance.ts +19 -0
- package/src/contracts/deepbook_margin/deps/sui/table.ts +36 -0
- package/src/contracts/deepbook_margin/deps/sui/vec_map.ts +33 -0
- package/src/contracts/deepbook_margin/deps/sui/vec_set.ts +22 -0
- package/src/contracts/deepbook_margin/deps/sui/versioned.ts +13 -0
- package/src/contracts/deepbook_margin/margin_constants.ts +329 -0
- package/src/contracts/deepbook_margin/margin_manager.ts +1772 -0
- package/src/contracts/deepbook_margin/margin_pool.ts +1129 -0
- package/src/contracts/deepbook_margin/margin_registry.ts +1207 -0
- package/src/contracts/deepbook_margin/margin_state.ts +26 -0
- package/src/contracts/deepbook_margin/oracle.ts +99 -0
- package/src/contracts/deepbook_margin/pool_proxy.ts +1298 -0
- package/src/contracts/deepbook_margin/position_manager.ts +28 -0
- package/src/contracts/deepbook_margin/protocol_config.ts +163 -0
- package/src/contracts/deepbook_margin/protocol_fees.ts +153 -0
- package/src/contracts/deepbook_margin/rate_limiter.ts +80 -0
- package/src/contracts/deepbook_margin/tpsl.ts +559 -0
- package/src/contracts/margin_liquidation/deps/sui/bag.ts +41 -0
- package/src/contracts/margin_liquidation/liquidation_vault.ts +401 -0
- package/src/queries/registryQueries.ts +15 -0
- package/src/transactions/balanceManager.ts +140 -90
- package/src/transactions/deepbook.ts +586 -494
- package/src/transactions/deepbookAdmin.ts +154 -146
- package/src/transactions/flashLoans.ts +29 -20
- package/src/transactions/governance.ts +50 -37
- package/src/transactions/marginAdmin.ts +247 -188
- package/src/transactions/marginLiquidations.ts +70 -55
- package/src/transactions/marginMaintainer.ts +106 -88
- package/src/transactions/marginManager.ts +414 -348
- package/src/transactions/marginPool.ts +140 -103
- package/src/transactions/marginRegistry.ts +103 -70
- package/src/transactions/marginTPSL.ts +151 -87
- package/src/transactions/poolProxy.ts +384 -205
- package/src/utils/constants.ts +4 -4
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { convertQuantity } from "../utils/conversion.mjs";
|
|
2
|
+
import { balance, balanceManagerReferralOwner, balanceManagerReferralPoolId, deposit, depositWithCap, generateProofAsOwner, generateProofAsTrader, getBalanceManagerReferralId, id, mintDepositCap, mintTradeCap, mintWithdrawCap, newWithCustomOwner, owner, registerBalanceManager, revokeTradeCap, setBalanceManagerReferral, unsetBalanceManagerReferral, withdraw, withdrawAll, withdrawWithCap } from "../contracts/deepbook/balance_manager.mjs";
|
|
2
3
|
import { coinWithBalance } from "@mysten/sui/transactions";
|
|
3
4
|
|
|
4
5
|
//#region src/transactions/balanceManager.ts
|
|
@@ -20,10 +21,10 @@ var BalanceManagerContract = class {
|
|
|
20
21
|
});
|
|
21
22
|
};
|
|
22
23
|
this.createBalanceManagerWithOwner = (ownerAddress) => (tx) => {
|
|
23
|
-
return tx.
|
|
24
|
-
|
|
25
|
-
arguments:
|
|
26
|
-
});
|
|
24
|
+
return tx.add(newWithCustomOwner({
|
|
25
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
26
|
+
arguments: { owner: ownerAddress }
|
|
27
|
+
}));
|
|
27
28
|
};
|
|
28
29
|
this.shareBalanceManager = (manager) => (tx) => {
|
|
29
30
|
tx.moveCall({
|
|
@@ -37,82 +38,91 @@ var BalanceManagerContract = class {
|
|
|
37
38
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
38
39
|
const coin = this.#config.getCoin(coinKey);
|
|
39
40
|
const depositInput = convertQuantity(amountToDeposit, coin.scalar);
|
|
40
|
-
const deposit = coinWithBalance({
|
|
41
|
+
const deposit$1 = coinWithBalance({
|
|
41
42
|
type: coin.type,
|
|
42
43
|
balance: depositInput
|
|
43
44
|
});
|
|
44
|
-
tx.
|
|
45
|
-
|
|
46
|
-
arguments:
|
|
45
|
+
tx.add(deposit({
|
|
46
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
47
|
+
arguments: {
|
|
48
|
+
balanceManager: managerId,
|
|
49
|
+
coin: deposit$1
|
|
50
|
+
},
|
|
47
51
|
typeArguments: [coin.type]
|
|
48
|
-
});
|
|
52
|
+
}));
|
|
49
53
|
};
|
|
50
54
|
this.withdrawFromManager = (managerKey, coinKey, amountToWithdraw, recipient) => (tx) => {
|
|
51
55
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
52
56
|
const coin = this.#config.getCoin(coinKey);
|
|
53
57
|
const withdrawInput = convertQuantity(amountToWithdraw, coin.scalar);
|
|
54
|
-
const coinObject = tx.
|
|
55
|
-
|
|
56
|
-
arguments:
|
|
58
|
+
const coinObject = tx.add(withdraw({
|
|
59
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
60
|
+
arguments: {
|
|
61
|
+
balanceManager: managerId,
|
|
62
|
+
withdrawAmount: withdrawInput
|
|
63
|
+
},
|
|
57
64
|
typeArguments: [coin.type]
|
|
58
|
-
});
|
|
65
|
+
}));
|
|
59
66
|
tx.transferObjects([coinObject], recipient);
|
|
60
67
|
};
|
|
61
68
|
this.withdrawAllFromManager = (managerKey, coinKey, recipient) => (tx) => {
|
|
62
69
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
63
70
|
const coin = this.#config.getCoin(coinKey);
|
|
64
|
-
const withdrawalCoin = tx.
|
|
65
|
-
|
|
66
|
-
arguments:
|
|
71
|
+
const withdrawalCoin = tx.add(withdrawAll({
|
|
72
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
73
|
+
arguments: { balanceManager: managerId },
|
|
67
74
|
typeArguments: [coin.type]
|
|
68
|
-
});
|
|
75
|
+
}));
|
|
69
76
|
tx.transferObjects([withdrawalCoin], recipient);
|
|
70
77
|
};
|
|
71
78
|
this.checkManagerBalance = (managerKey, coinKey) => (tx) => {
|
|
72
79
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
73
80
|
const coin = this.#config.getCoin(coinKey);
|
|
74
|
-
tx.
|
|
75
|
-
|
|
76
|
-
arguments:
|
|
81
|
+
tx.add(balance({
|
|
82
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
83
|
+
arguments: { balanceManager: managerId },
|
|
77
84
|
typeArguments: [coin.type]
|
|
78
|
-
});
|
|
85
|
+
}));
|
|
79
86
|
};
|
|
80
87
|
this.generateProof = (managerKey) => (tx) => {
|
|
81
88
|
const balanceManager = this.#config.getBalanceManager(managerKey);
|
|
82
89
|
return tx.add(balanceManager.tradeCap ? this.generateProofAsTrader(balanceManager.address, balanceManager.tradeCap) : this.generateProofAsOwner(balanceManager.address));
|
|
83
90
|
};
|
|
84
91
|
this.generateProofAsOwner = (managerId) => (tx) => {
|
|
85
|
-
return tx.
|
|
86
|
-
|
|
87
|
-
arguments:
|
|
88
|
-
});
|
|
92
|
+
return tx.add(generateProofAsOwner({
|
|
93
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
94
|
+
arguments: { balanceManager: managerId }
|
|
95
|
+
}));
|
|
89
96
|
};
|
|
90
97
|
this.generateProofAsTrader = (managerId, tradeCapId) => (tx) => {
|
|
91
|
-
return tx.
|
|
92
|
-
|
|
93
|
-
arguments:
|
|
94
|
-
|
|
98
|
+
return tx.add(generateProofAsTrader({
|
|
99
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
100
|
+
arguments: {
|
|
101
|
+
balanceManager: managerId,
|
|
102
|
+
tradeCap: tradeCapId
|
|
103
|
+
}
|
|
104
|
+
}));
|
|
95
105
|
};
|
|
96
106
|
this.mintTradeCap = (managerKey) => (tx) => {
|
|
97
107
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
98
|
-
return tx.
|
|
99
|
-
|
|
100
|
-
arguments:
|
|
101
|
-
});
|
|
108
|
+
return tx.add(mintTradeCap({
|
|
109
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
110
|
+
arguments: { balanceManager: managerId }
|
|
111
|
+
}));
|
|
102
112
|
};
|
|
103
113
|
this.mintDepositCap = (managerKey) => (tx) => {
|
|
104
114
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
105
|
-
return tx.
|
|
106
|
-
|
|
107
|
-
arguments:
|
|
108
|
-
});
|
|
115
|
+
return tx.add(mintDepositCap({
|
|
116
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
117
|
+
arguments: { balanceManager: managerId }
|
|
118
|
+
}));
|
|
109
119
|
};
|
|
110
120
|
this.mintWithdrawalCap = (managerKey) => (tx) => {
|
|
111
121
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
112
|
-
return tx.
|
|
113
|
-
|
|
114
|
-
arguments:
|
|
115
|
-
});
|
|
122
|
+
return tx.add(mintWithdrawCap({
|
|
123
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
124
|
+
arguments: { balanceManager: managerId }
|
|
125
|
+
}));
|
|
116
126
|
};
|
|
117
127
|
this.depositWithCap = (managerKey, coinKey, amountToDeposit) => (tx) => {
|
|
118
128
|
tx.setSenderIfNotSet(this.#config.address);
|
|
@@ -122,19 +132,19 @@ var BalanceManagerContract = class {
|
|
|
122
132
|
const depositCapId = manager.depositCap;
|
|
123
133
|
const coin = this.#config.getCoin(coinKey);
|
|
124
134
|
const depositInput = convertQuantity(amountToDeposit, coin.scalar);
|
|
125
|
-
const deposit = coinWithBalance({
|
|
135
|
+
const deposit$1 = coinWithBalance({
|
|
126
136
|
type: coin.type,
|
|
127
137
|
balance: depositInput
|
|
128
138
|
});
|
|
129
|
-
tx.
|
|
130
|
-
|
|
131
|
-
arguments:
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
deposit
|
|
135
|
-
|
|
139
|
+
tx.add(depositWithCap({
|
|
140
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
141
|
+
arguments: {
|
|
142
|
+
balanceManager: managerId,
|
|
143
|
+
depositCap: depositCapId,
|
|
144
|
+
coin: deposit$1
|
|
145
|
+
},
|
|
136
146
|
typeArguments: [coin.type]
|
|
137
|
-
});
|
|
147
|
+
}));
|
|
138
148
|
};
|
|
139
149
|
this.withdrawWithCap = (managerKey, coinKey, amountToWithdraw) => (tx) => {
|
|
140
150
|
tx.setSenderIfNotSet(this.#config.address);
|
|
@@ -144,86 +154,95 @@ var BalanceManagerContract = class {
|
|
|
144
154
|
const withdrawCapId = manager.withdrawCap;
|
|
145
155
|
const coin = this.#config.getCoin(coinKey);
|
|
146
156
|
const withdrawAmount = convertQuantity(amountToWithdraw, coin.scalar);
|
|
147
|
-
return tx.
|
|
148
|
-
|
|
149
|
-
arguments:
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
157
|
+
return tx.add(withdrawWithCap({
|
|
158
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
159
|
+
arguments: {
|
|
160
|
+
balanceManager: managerId,
|
|
161
|
+
withdrawCap: withdrawCapId,
|
|
162
|
+
withdrawAmount
|
|
163
|
+
},
|
|
154
164
|
typeArguments: [coin.type]
|
|
155
|
-
});
|
|
165
|
+
}));
|
|
156
166
|
};
|
|
157
167
|
this.setBalanceManagerReferral = (managerKey, referral, tradeCap) => (tx) => {
|
|
158
168
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
159
|
-
tx.
|
|
160
|
-
|
|
161
|
-
arguments:
|
|
162
|
-
|
|
163
|
-
|
|
169
|
+
tx.add(setBalanceManagerReferral({
|
|
170
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
171
|
+
arguments: {
|
|
172
|
+
balanceManager: managerId,
|
|
173
|
+
referral,
|
|
164
174
|
tradeCap
|
|
165
|
-
|
|
166
|
-
});
|
|
175
|
+
}
|
|
176
|
+
}));
|
|
167
177
|
};
|
|
168
178
|
this.unsetBalanceManagerReferral = (managerKey, poolKey, tradeCap) => (tx) => {
|
|
169
179
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
170
180
|
const poolId = this.#config.getPool(poolKey).address;
|
|
171
|
-
tx.
|
|
172
|
-
|
|
173
|
-
arguments:
|
|
174
|
-
|
|
175
|
-
|
|
181
|
+
tx.add(unsetBalanceManagerReferral({
|
|
182
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
183
|
+
arguments: {
|
|
184
|
+
balanceManager: managerId,
|
|
185
|
+
poolId,
|
|
176
186
|
tradeCap
|
|
177
|
-
|
|
178
|
-
});
|
|
187
|
+
}
|
|
188
|
+
}));
|
|
179
189
|
};
|
|
180
190
|
this.registerBalanceManager = (managerKey) => (tx) => {
|
|
181
191
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
182
|
-
tx.
|
|
183
|
-
|
|
184
|
-
arguments:
|
|
185
|
-
|
|
192
|
+
tx.add(registerBalanceManager({
|
|
193
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
194
|
+
arguments: {
|
|
195
|
+
balanceManager: managerId,
|
|
196
|
+
registry: this.#config.REGISTRY_ID
|
|
197
|
+
}
|
|
198
|
+
}));
|
|
186
199
|
};
|
|
187
200
|
this.owner = (managerKey) => (tx) => {
|
|
188
201
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
189
|
-
tx.
|
|
190
|
-
|
|
191
|
-
arguments:
|
|
192
|
-
});
|
|
202
|
+
tx.add(owner({
|
|
203
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
204
|
+
arguments: { balanceManager: managerId }
|
|
205
|
+
}));
|
|
193
206
|
};
|
|
194
207
|
this.id = (managerKey) => (tx) => {
|
|
195
208
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
196
|
-
tx.
|
|
197
|
-
|
|
198
|
-
arguments:
|
|
199
|
-
});
|
|
209
|
+
tx.add(id({
|
|
210
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
211
|
+
arguments: { balanceManager: managerId }
|
|
212
|
+
}));
|
|
200
213
|
};
|
|
201
214
|
this.balanceManagerReferralOwner = (referralId) => (tx) => {
|
|
202
|
-
return tx.
|
|
203
|
-
|
|
204
|
-
arguments:
|
|
205
|
-
});
|
|
215
|
+
return tx.add(balanceManagerReferralOwner({
|
|
216
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
217
|
+
arguments: { referral: referralId }
|
|
218
|
+
}));
|
|
206
219
|
};
|
|
207
220
|
this.balanceManagerReferralPoolId = (referralId) => (tx) => {
|
|
208
|
-
return tx.
|
|
209
|
-
|
|
210
|
-
arguments:
|
|
211
|
-
});
|
|
221
|
+
return tx.add(balanceManagerReferralPoolId({
|
|
222
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
223
|
+
arguments: { referral: referralId }
|
|
224
|
+
}));
|
|
212
225
|
};
|
|
213
226
|
this.getBalanceManagerReferralId = (managerKey, poolKey) => (tx) => {
|
|
214
227
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
215
228
|
const poolId = this.#config.getPool(poolKey).address;
|
|
216
|
-
return tx.
|
|
217
|
-
|
|
218
|
-
arguments:
|
|
219
|
-
|
|
229
|
+
return tx.add(getBalanceManagerReferralId({
|
|
230
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
231
|
+
arguments: {
|
|
232
|
+
balanceManager: managerId,
|
|
233
|
+
poolId
|
|
234
|
+
}
|
|
235
|
+
}));
|
|
220
236
|
};
|
|
221
237
|
this.revokeTradeCap = (managerKey, tradeCapId) => (tx) => {
|
|
222
238
|
const managerId = this.#config.getBalanceManager(managerKey).address;
|
|
223
|
-
tx.
|
|
224
|
-
|
|
225
|
-
arguments:
|
|
226
|
-
|
|
239
|
+
tx.add(revokeTradeCap({
|
|
240
|
+
package: this.#config.DEEPBOOK_PACKAGE_ID,
|
|
241
|
+
arguments: {
|
|
242
|
+
balanceManager: managerId,
|
|
243
|
+
tradeCapId
|
|
244
|
+
}
|
|
245
|
+
}));
|
|
227
246
|
};
|
|
228
247
|
this.#config = config;
|
|
229
248
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balanceManager.mjs","names":["#config"],"sources":["../../src/transactions/balanceManager.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport { coinWithBalance } from '@mysten/sui/transactions';\nimport type { Transaction, TransactionArgument } from '@mysten/sui/transactions';\n\nimport type { DeepBookConfig } from '../utils/config.js';\nimport { convertQuantity } from '../utils/conversion.js';\n\n/**\n * BalanceManagerContract class for managing BalanceManager operations.\n */\nexport class BalanceManagerContract {\n\t#config: DeepBookConfig;\n\n\t/**\n\t * @param {DeepBookConfig} config Configuration for BalanceManagerContract\n\t */\n\tconstructor(config: DeepBookConfig) {\n\t\tthis.#config = config;\n\t}\n\n\t/**\n\t * @description Create and share a new BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tcreateAndShareBalanceManager = () => (tx: Transaction) => {\n\t\tconst manager = tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::new`,\n\t\t});\n\n\t\ttx.moveCall({\n\t\t\ttarget: '0x2::transfer::public_share_object',\n\t\t\targuments: [manager],\n\t\t\ttypeArguments: [`${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::BalanceManager`],\n\t\t});\n\t};\n\n\t/**\n\t * @description Create a new BalanceManager, manually set the owner. Returns the manager.\n\t * @returns A function that takes a Transaction object\n\t */\n\tcreateBalanceManagerWithOwner = (ownerAddress: string) => (tx: Transaction) => {\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::new_with_custom_owner`,\n\t\t\targuments: [tx.pure.address(ownerAddress)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Share the BalanceManager\n\t * @param {TransactionArgument} manager The BalanceManager to share\n\t * @returns A function that takes a Transaction object\n\t */\n\tshareBalanceManager = (manager: TransactionArgument) => (tx: Transaction) => {\n\t\ttx.moveCall({\n\t\t\ttarget: '0x2::transfer::public_share_object',\n\t\t\targuments: [manager],\n\t\t\ttypeArguments: [`${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::BalanceManager`],\n\t\t});\n\t};\n\n\t/**\n\t * @description Deposit funds into the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @param {string} coinKey The key of the coin to deposit\n\t * @param {number} amountToDeposit The amount to deposit\n\t * @returns A function that takes a Transaction object\n\t */\n\tdepositIntoManager =\n\t\t(managerKey: string, coinKey: string, amountToDeposit: number) => (tx: Transaction) => {\n\t\t\ttx.setSenderIfNotSet(this.#config.address);\n\t\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\t\tconst coin = this.#config.getCoin(coinKey);\n\t\t\tconst depositInput = convertQuantity(amountToDeposit, coin.scalar);\n\t\t\tconst deposit = coinWithBalance({\n\t\t\t\ttype: coin.type,\n\t\t\t\tbalance: depositInput,\n\t\t\t});\n\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::deposit`,\n\t\t\t\targuments: [tx.object(managerId), deposit],\n\t\t\t\ttypeArguments: [coin.type],\n\t\t\t});\n\t\t};\n\n\t/**\n\t * @description Withdraw funds from the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @param {string} coinKey The key of the coin to withdraw\n\t * @param {number} amountToWithdraw The amount to withdraw\n\t * @param {string} recipient The recipient of the withdrawn funds\n\t * @returns A function that takes a Transaction object\n\t */\n\twithdrawFromManager =\n\t\t(managerKey: string, coinKey: string, amountToWithdraw: number, recipient: string) =>\n\t\t(tx: Transaction) => {\n\t\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\t\tconst coin = this.#config.getCoin(coinKey);\n\t\t\tconst withdrawInput = convertQuantity(amountToWithdraw, coin.scalar);\n\t\t\tconst coinObject = tx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::withdraw`,\n\t\t\t\targuments: [tx.object(managerId), tx.pure.u64(withdrawInput)],\n\t\t\t\ttypeArguments: [coin.type],\n\t\t\t});\n\n\t\t\ttx.transferObjects([coinObject], recipient);\n\t\t};\n\n\t/**\n\t * @description Withdraw all funds from the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @param {string} coinKey The key of the coin to withdraw\n\t * @param {string} recipient The recipient of the withdrawn funds\n\t * @returns A function that takes a Transaction object\n\t */\n\twithdrawAllFromManager =\n\t\t(managerKey: string, coinKey: string, recipient: string) => (tx: Transaction) => {\n\t\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\t\tconst coin = this.#config.getCoin(coinKey);\n\t\t\tconst withdrawalCoin = tx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::withdraw_all`,\n\t\t\t\targuments: [tx.object(managerId)],\n\t\t\t\ttypeArguments: [coin.type],\n\t\t\t});\n\n\t\t\ttx.transferObjects([withdrawalCoin], recipient);\n\t\t};\n\n\t/**\n\t * @description Check the balance of the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @param {string} coinKey The key of the coin to check the balance of\n\t * @returns A function that takes a Transaction object\n\t */\n\tcheckManagerBalance = (managerKey: string, coinKey: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\tconst coin = this.#config.getCoin(coinKey);\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::balance`,\n\t\t\targuments: [tx.object(managerId)],\n\t\t\ttypeArguments: [coin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Generate a trade proof for the BalanceManager. Calls the appropriate function based on whether tradeCap is set.\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tgenerateProof = (managerKey: string) => (tx: Transaction) => {\n\t\tconst balanceManager = this.#config.getBalanceManager(managerKey);\n\t\treturn tx.add(\n\t\t\tbalanceManager.tradeCap\n\t\t\t\t? this.generateProofAsTrader(balanceManager.address, balanceManager.tradeCap)\n\t\t\t\t: this.generateProofAsOwner(balanceManager.address),\n\t\t);\n\t};\n\n\t/**\n\t * @description Generate a trade proof as the owner\n\t * @param {string} managerId The ID of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tgenerateProofAsOwner = (managerId: string) => (tx: Transaction) => {\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::generate_proof_as_owner`,\n\t\t\targuments: [tx.object(managerId)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Generate a trade proof as a trader\n\t * @param {string} managerId The ID of the BalanceManager\n\t * @param {string} tradeCapId The ID of the tradeCap\n\t * @returns A function that takes a Transaction object\n\t */\n\tgenerateProofAsTrader = (managerId: string, tradeCapId: string) => (tx: Transaction) => {\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::generate_proof_as_trader`,\n\t\t\targuments: [tx.object(managerId), tx.object(tradeCapId)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Mint a TradeCap\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tmintTradeCap = (managerKey: string) => (tx: Transaction) => {\n\t\tconst manager = this.#config.getBalanceManager(managerKey);\n\t\tconst managerId = manager.address;\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::mint_trade_cap`,\n\t\t\targuments: [tx.object(managerId)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Mint a DepositCap\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tmintDepositCap = (managerKey: string) => (tx: Transaction) => {\n\t\tconst manager = this.#config.getBalanceManager(managerKey);\n\t\tconst managerId = manager.address;\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::mint_deposit_cap`,\n\t\t\targuments: [tx.object(managerId)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Mint a WithdrawalCap\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tmintWithdrawalCap = (managerKey: string) => (tx: Transaction) => {\n\t\tconst manager = this.#config.getBalanceManager(managerKey);\n\t\tconst managerId = manager.address;\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::mint_withdraw_cap`,\n\t\t\targuments: [tx.object(managerId)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Deposit using the DepositCap\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} coinKey The name of the coin to deposit\n\t * @param {number} amountToDeposit The amount to deposit\n\t * @returns A function that takes a Transaction object\n\t */\n\tdepositWithCap =\n\t\t(managerKey: string, coinKey: string, amountToDeposit: number) => (tx: Transaction) => {\n\t\t\ttx.setSenderIfNotSet(this.#config.address);\n\t\t\tconst manager = this.#config.getBalanceManager(managerKey);\n\t\t\tconst managerId = manager.address;\n\t\t\tif (!manager.depositCap) {\n\t\t\t\tthrow new Error(`DepositCap not set for ${managerKey}`);\n\t\t\t}\n\t\t\tconst depositCapId = manager.depositCap;\n\t\t\tconst coin = this.#config.getCoin(coinKey);\n\t\t\tconst depositInput = convertQuantity(amountToDeposit, coin.scalar);\n\t\t\tconst deposit = coinWithBalance({\n\t\t\t\ttype: coin.type,\n\t\t\t\tbalance: depositInput,\n\t\t\t});\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::deposit_with_cap`,\n\t\t\t\targuments: [tx.object(managerId), tx.object(depositCapId), deposit],\n\t\t\t\ttypeArguments: [coin.type],\n\t\t\t});\n\t\t};\n\n\t/**\n\t * @description Withdraw using the WithdrawCap\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} coinKey The name of the coin to withdraw\n\t * @param {number} amountToWithdraw The amount to withdraw\n\t * @returns A function that takes a Transaction object\n\t */\n\twithdrawWithCap =\n\t\t(managerKey: string, coinKey: string, amountToWithdraw: number) => (tx: Transaction) => {\n\t\t\ttx.setSenderIfNotSet(this.#config.address);\n\t\t\tconst manager = this.#config.getBalanceManager(managerKey);\n\t\t\tconst managerId = manager.address;\n\t\t\tif (!manager.withdrawCap) {\n\t\t\t\tthrow new Error(`WithdrawCap not set for ${managerKey}`);\n\t\t\t}\n\t\t\tconst withdrawCapId = manager.withdrawCap;\n\t\t\tconst coin = this.#config.getCoin(coinKey);\n\t\t\tconst withdrawAmount = convertQuantity(amountToWithdraw, coin.scalar);\n\t\t\treturn tx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::withdraw_with_cap`,\n\t\t\t\targuments: [tx.object(managerId), tx.object(withdrawCapId), tx.pure.u64(withdrawAmount)],\n\t\t\t\ttypeArguments: [coin.type],\n\t\t\t});\n\t\t};\n\n\t/**\n\t * @description Set the referral for the BalanceManager for a specific pool\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} referral The referral (DeepBookPoolReferral) to set the BalanceManager to\n\t * @param {TransactionArgument} tradeCap The tradeCap for permission checking\n\t * @returns A function that takes a Transaction object\n\t */\n\tsetBalanceManagerReferral =\n\t\t(managerKey: string, referral: string, tradeCap: TransactionArgument) => (tx: Transaction) => {\n\t\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::set_balance_manager_referral`,\n\t\t\t\targuments: [tx.object(managerId), tx.object(referral), tradeCap],\n\t\t\t});\n\t\t};\n\n\t/**\n\t * @description Unset the referral for the BalanceManager for a specific pool\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} poolKey The key of the pool to unset the referral for\n\t * @param {TransactionArgument} tradeCap The tradeCap for permission checking\n\t * @returns A function that takes a Transaction object\n\t */\n\tunsetBalanceManagerReferral =\n\t\t(managerKey: string, poolKey: string, tradeCap: TransactionArgument) => (tx: Transaction) => {\n\t\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\t\tconst poolId = this.#config.getPool(poolKey).address;\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::unset_balance_manager_referral`,\n\t\t\t\targuments: [tx.object(managerId), tx.pure.id(poolId), tradeCap],\n\t\t\t});\n\t\t};\n\n\tregisterBalanceManager = (managerKey: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::register_balance_manager`,\n\t\t\targuments: [tx.object(managerId), tx.object(this.#config.REGISTRY_ID)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the owner of the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\towner = (managerKey: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::owner`,\n\t\t\targuments: [tx.object(managerId)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the ID of the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tid = (managerKey: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::id`,\n\t\t\targuments: [tx.object(managerId)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the owner of the referral (DeepBookPoolReferral)\n\t * @param {string} referralId The ID of the referral to get the owner of\n\t * @returns A function that takes a Transaction object\n\t */\n\tbalanceManagerReferralOwner = (referralId: string) => (tx: Transaction) => {\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::balance_manager_referral_owner`,\n\t\t\targuments: [tx.object(referralId)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the pool ID associated with a referral (DeepBookPoolReferral)\n\t * @param {string} referralId The ID of the referral to get the pool ID of\n\t * @returns A function that takes a Transaction object\n\t */\n\tbalanceManagerReferralPoolId = (referralId: string) => (tx: Transaction) => {\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::balance_manager_referral_pool_id`,\n\t\t\targuments: [tx.object(referralId)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the referral ID from the balance manager for a specific pool\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} poolKey Key of the pool to get the referral for\n\t * @returns A function that takes a Transaction object\n\t */\n\tgetBalanceManagerReferralId = (managerKey: string, poolKey: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\tconst poolId = this.#config.getPool(poolKey).address;\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::get_balance_manager_referral_id`,\n\t\t\targuments: [tx.object(managerId), tx.pure.id(poolId)],\n\t\t});\n\t};\n\n\t/**\n\t * @description Revoke a TradeCap. This also revokes the associated DepositCap and WithdrawCap.\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} tradeCapId The ID of the TradeCap to revoke\n\t * @returns A function that takes a Transaction object\n\t */\n\trevokeTradeCap = (managerKey: string, tradeCapId: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::revoke_trade_cap`,\n\t\t\targuments: [tx.object(managerId), tx.pure.id(tradeCapId)],\n\t\t});\n\t};\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"balanceManager.mjs","names":["#config","balanceManagerMoveCalls.newWithCustomOwner","deposit","balanceManagerMoveCalls.deposit","balanceManagerMoveCalls.withdraw","balanceManagerMoveCalls.withdrawAll","balanceManagerMoveCalls.balance","balanceManagerMoveCalls.generateProofAsOwner","balanceManagerMoveCalls.generateProofAsTrader","balanceManagerMoveCalls.mintTradeCap","balanceManagerMoveCalls.mintDepositCap","balanceManagerMoveCalls.mintWithdrawCap","balanceManagerMoveCalls.depositWithCap","balanceManagerMoveCalls.withdrawWithCap","balanceManagerMoveCalls.setBalanceManagerReferral","balanceManagerMoveCalls.unsetBalanceManagerReferral","balanceManagerMoveCalls.registerBalanceManager","balanceManagerMoveCalls.owner","balanceManagerMoveCalls.id","balanceManagerMoveCalls.balanceManagerReferralOwner","balanceManagerMoveCalls.balanceManagerReferralPoolId","balanceManagerMoveCalls.getBalanceManagerReferralId","balanceManagerMoveCalls.revokeTradeCap"],"sources":["../../src/transactions/balanceManager.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport { coinWithBalance } from '@mysten/sui/transactions';\nimport type { Transaction, TransactionArgument } from '@mysten/sui/transactions';\n\nimport type { DeepBookConfig } from '../utils/config.js';\nimport { convertQuantity } from '../utils/conversion.js';\nimport * as balanceManagerMoveCalls from '../contracts/deepbook/balance_manager.js';\n\n/**\n * BalanceManagerContract class for managing BalanceManager operations.\n */\nexport class BalanceManagerContract {\n\t#config: DeepBookConfig;\n\n\t/**\n\t * @param {DeepBookConfig} config Configuration for BalanceManagerContract\n\t */\n\tconstructor(config: DeepBookConfig) {\n\t\tthis.#config = config;\n\t}\n\n\t/**\n\t * @description Create and share a new BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tcreateAndShareBalanceManager = () => (tx: Transaction) => {\n\t\t// NOTE: left as positional moveCalls (not codegen). `balance_manager::new`\n\t\t// is called with no args here, but the generated binding's `new` takes an\n\t\t// `Owner` (the current core source drifted from the deployed zero-arg form);\n\t\t// and `0x2::transfer::public_share_object` is a framework call with no\n\t\t// @deepbook/core binding. Kept verbatim to stay byte-identical.\n\t\tconst manager = tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::new`,\n\t\t});\n\n\t\ttx.moveCall({\n\t\t\ttarget: '0x2::transfer::public_share_object',\n\t\t\targuments: [manager],\n\t\t\ttypeArguments: [`${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::BalanceManager`],\n\t\t});\n\t};\n\n\t/**\n\t * @description Create a new BalanceManager, manually set the owner. Returns the manager.\n\t * @returns A function that takes a Transaction object\n\t */\n\tcreateBalanceManagerWithOwner = (ownerAddress: string) => (tx: Transaction) => {\n\t\treturn tx.add(\n\t\t\tbalanceManagerMoveCalls.newWithCustomOwner({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { owner: ownerAddress },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Share the BalanceManager\n\t * @param {TransactionArgument} manager The BalanceManager to share\n\t * @returns A function that takes a Transaction object\n\t */\n\tshareBalanceManager = (manager: TransactionArgument) => (tx: Transaction) => {\n\t\t// Framework call (`0x2::transfer::public_share_object`) — no @deepbook/core\n\t\t// binding exists, so this stays a positional moveCall.\n\t\ttx.moveCall({\n\t\t\ttarget: '0x2::transfer::public_share_object',\n\t\t\targuments: [manager],\n\t\t\ttypeArguments: [`${this.#config.DEEPBOOK_PACKAGE_ID}::balance_manager::BalanceManager`],\n\t\t});\n\t};\n\n\t/**\n\t * @description Deposit funds into the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @param {string} coinKey The key of the coin to deposit\n\t * @param {number} amountToDeposit The amount to deposit\n\t * @returns A function that takes a Transaction object\n\t */\n\tdepositIntoManager =\n\t\t(managerKey: string, coinKey: string, amountToDeposit: number) => (tx: Transaction) => {\n\t\t\ttx.setSenderIfNotSet(this.#config.address);\n\t\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\t\tconst coin = this.#config.getCoin(coinKey);\n\t\t\tconst depositInput = convertQuantity(amountToDeposit, coin.scalar);\n\t\t\tconst deposit = coinWithBalance({\n\t\t\t\ttype: coin.type,\n\t\t\t\tbalance: depositInput,\n\t\t\t});\n\n\t\t\ttx.add(\n\t\t\t\tbalanceManagerMoveCalls.deposit({\n\t\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\t\targuments: { balanceManager: managerId, coin: deposit },\n\t\t\t\t\ttypeArguments: [coin.type],\n\t\t\t\t}),\n\t\t\t);\n\t\t};\n\n\t/**\n\t * @description Withdraw funds from the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @param {string} coinKey The key of the coin to withdraw\n\t * @param {number} amountToWithdraw The amount to withdraw\n\t * @param {string} recipient The recipient of the withdrawn funds\n\t * @returns A function that takes a Transaction object\n\t */\n\twithdrawFromManager =\n\t\t(managerKey: string, coinKey: string, amountToWithdraw: number, recipient: string) =>\n\t\t(tx: Transaction) => {\n\t\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\t\tconst coin = this.#config.getCoin(coinKey);\n\t\t\tconst withdrawInput = convertQuantity(amountToWithdraw, coin.scalar);\n\t\t\tconst coinObject = tx.add(\n\t\t\t\tbalanceManagerMoveCalls.withdraw({\n\t\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\t\targuments: { balanceManager: managerId, withdrawAmount: withdrawInput },\n\t\t\t\t\ttypeArguments: [coin.type],\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\ttx.transferObjects([coinObject], recipient);\n\t\t};\n\n\t/**\n\t * @description Withdraw all funds from the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @param {string} coinKey The key of the coin to withdraw\n\t * @param {string} recipient The recipient of the withdrawn funds\n\t * @returns A function that takes a Transaction object\n\t */\n\twithdrawAllFromManager =\n\t\t(managerKey: string, coinKey: string, recipient: string) => (tx: Transaction) => {\n\t\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\t\tconst coin = this.#config.getCoin(coinKey);\n\t\t\tconst withdrawalCoin = tx.add(\n\t\t\t\tbalanceManagerMoveCalls.withdrawAll({\n\t\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\t\targuments: { balanceManager: managerId },\n\t\t\t\t\ttypeArguments: [coin.type],\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\ttx.transferObjects([withdrawalCoin], recipient);\n\t\t};\n\n\t/**\n\t * @description Check the balance of the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @param {string} coinKey The key of the coin to check the balance of\n\t * @returns A function that takes a Transaction object\n\t */\n\tcheckManagerBalance = (managerKey: string, coinKey: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\tconst coin = this.#config.getCoin(coinKey);\n\t\ttx.add(\n\t\t\tbalanceManagerMoveCalls.balance({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId },\n\t\t\t\ttypeArguments: [coin.type],\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Generate a trade proof for the BalanceManager. Calls the appropriate function based on whether tradeCap is set.\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tgenerateProof = (managerKey: string) => (tx: Transaction) => {\n\t\tconst balanceManager = this.#config.getBalanceManager(managerKey);\n\t\treturn tx.add(\n\t\t\tbalanceManager.tradeCap\n\t\t\t\t? this.generateProofAsTrader(balanceManager.address, balanceManager.tradeCap)\n\t\t\t\t: this.generateProofAsOwner(balanceManager.address),\n\t\t);\n\t};\n\n\t/**\n\t * @description Generate a trade proof as the owner\n\t * @param {string} managerId The ID of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tgenerateProofAsOwner = (managerId: string) => (tx: Transaction) => {\n\t\treturn tx.add(\n\t\t\tbalanceManagerMoveCalls.generateProofAsOwner({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Generate a trade proof as a trader\n\t * @param {string} managerId The ID of the BalanceManager\n\t * @param {string} tradeCapId The ID of the tradeCap\n\t * @returns A function that takes a Transaction object\n\t */\n\tgenerateProofAsTrader = (managerId: string, tradeCapId: string) => (tx: Transaction) => {\n\t\treturn tx.add(\n\t\t\tbalanceManagerMoveCalls.generateProofAsTrader({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId, tradeCap: tradeCapId },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Mint a TradeCap\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tmintTradeCap = (managerKey: string) => (tx: Transaction) => {\n\t\tconst manager = this.#config.getBalanceManager(managerKey);\n\t\tconst managerId = manager.address;\n\t\treturn tx.add(\n\t\t\tbalanceManagerMoveCalls.mintTradeCap({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Mint a DepositCap\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tmintDepositCap = (managerKey: string) => (tx: Transaction) => {\n\t\tconst manager = this.#config.getBalanceManager(managerKey);\n\t\tconst managerId = manager.address;\n\t\treturn tx.add(\n\t\t\tbalanceManagerMoveCalls.mintDepositCap({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Mint a WithdrawalCap\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tmintWithdrawalCap = (managerKey: string) => (tx: Transaction) => {\n\t\tconst manager = this.#config.getBalanceManager(managerKey);\n\t\tconst managerId = manager.address;\n\t\treturn tx.add(\n\t\t\tbalanceManagerMoveCalls.mintWithdrawCap({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Deposit using the DepositCap\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} coinKey The name of the coin to deposit\n\t * @param {number} amountToDeposit The amount to deposit\n\t * @returns A function that takes a Transaction object\n\t */\n\tdepositWithCap =\n\t\t(managerKey: string, coinKey: string, amountToDeposit: number) => (tx: Transaction) => {\n\t\t\ttx.setSenderIfNotSet(this.#config.address);\n\t\t\tconst manager = this.#config.getBalanceManager(managerKey);\n\t\t\tconst managerId = manager.address;\n\t\t\tif (!manager.depositCap) {\n\t\t\t\tthrow new Error(`DepositCap not set for ${managerKey}`);\n\t\t\t}\n\t\t\tconst depositCapId = manager.depositCap;\n\t\t\tconst coin = this.#config.getCoin(coinKey);\n\t\t\tconst depositInput = convertQuantity(amountToDeposit, coin.scalar);\n\t\t\tconst deposit = coinWithBalance({\n\t\t\t\ttype: coin.type,\n\t\t\t\tbalance: depositInput,\n\t\t\t});\n\t\t\ttx.add(\n\t\t\t\tbalanceManagerMoveCalls.depositWithCap({\n\t\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\t\targuments: { balanceManager: managerId, depositCap: depositCapId, coin: deposit },\n\t\t\t\t\ttypeArguments: [coin.type],\n\t\t\t\t}),\n\t\t\t);\n\t\t};\n\n\t/**\n\t * @description Withdraw using the WithdrawCap\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} coinKey The name of the coin to withdraw\n\t * @param {number} amountToWithdraw The amount to withdraw\n\t * @returns A function that takes a Transaction object\n\t */\n\twithdrawWithCap =\n\t\t(managerKey: string, coinKey: string, amountToWithdraw: number) => (tx: Transaction) => {\n\t\t\ttx.setSenderIfNotSet(this.#config.address);\n\t\t\tconst manager = this.#config.getBalanceManager(managerKey);\n\t\t\tconst managerId = manager.address;\n\t\t\tif (!manager.withdrawCap) {\n\t\t\t\tthrow new Error(`WithdrawCap not set for ${managerKey}`);\n\t\t\t}\n\t\t\tconst withdrawCapId = manager.withdrawCap;\n\t\t\tconst coin = this.#config.getCoin(coinKey);\n\t\t\tconst withdrawAmount = convertQuantity(amountToWithdraw, coin.scalar);\n\t\t\treturn tx.add(\n\t\t\t\tbalanceManagerMoveCalls.withdrawWithCap({\n\t\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\t\targuments: { balanceManager: managerId, withdrawCap: withdrawCapId, withdrawAmount },\n\t\t\t\t\ttypeArguments: [coin.type],\n\t\t\t\t}),\n\t\t\t);\n\t\t};\n\n\t/**\n\t * @description Set the referral for the BalanceManager for a specific pool\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} referral The referral (DeepBookPoolReferral) to set the BalanceManager to\n\t * @param {TransactionArgument} tradeCap The tradeCap for permission checking\n\t * @returns A function that takes a Transaction object\n\t */\n\tsetBalanceManagerReferral =\n\t\t(managerKey: string, referral: string, tradeCap: TransactionArgument) => (tx: Transaction) => {\n\t\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\t\ttx.add(\n\t\t\t\tbalanceManagerMoveCalls.setBalanceManagerReferral({\n\t\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\t\targuments: { balanceManager: managerId, referral, tradeCap },\n\t\t\t\t}),\n\t\t\t);\n\t\t};\n\n\t/**\n\t * @description Unset the referral for the BalanceManager for a specific pool\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} poolKey The key of the pool to unset the referral for\n\t * @param {TransactionArgument} tradeCap The tradeCap for permission checking\n\t * @returns A function that takes a Transaction object\n\t */\n\tunsetBalanceManagerReferral =\n\t\t(managerKey: string, poolKey: string, tradeCap: TransactionArgument) => (tx: Transaction) => {\n\t\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\t\tconst poolId = this.#config.getPool(poolKey).address;\n\t\t\ttx.add(\n\t\t\t\tbalanceManagerMoveCalls.unsetBalanceManagerReferral({\n\t\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\t\targuments: { balanceManager: managerId, poolId, tradeCap },\n\t\t\t\t}),\n\t\t\t);\n\t\t};\n\n\tregisterBalanceManager = (managerKey: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\ttx.add(\n\t\t\tbalanceManagerMoveCalls.registerBalanceManager({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId, registry: this.#config.REGISTRY_ID },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the owner of the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\towner = (managerKey: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\ttx.add(\n\t\t\tbalanceManagerMoveCalls.owner({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the ID of the BalanceManager\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tid = (managerKey: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\ttx.add(\n\t\t\tbalanceManagerMoveCalls.id({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the owner of the referral (DeepBookPoolReferral)\n\t * @param {string} referralId The ID of the referral to get the owner of\n\t * @returns A function that takes a Transaction object\n\t */\n\tbalanceManagerReferralOwner = (referralId: string) => (tx: Transaction) => {\n\t\treturn tx.add(\n\t\t\tbalanceManagerMoveCalls.balanceManagerReferralOwner({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { referral: referralId },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the pool ID associated with a referral (DeepBookPoolReferral)\n\t * @param {string} referralId The ID of the referral to get the pool ID of\n\t * @returns A function that takes a Transaction object\n\t */\n\tbalanceManagerReferralPoolId = (referralId: string) => (tx: Transaction) => {\n\t\treturn tx.add(\n\t\t\tbalanceManagerMoveCalls.balanceManagerReferralPoolId({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { referral: referralId },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the referral ID from the balance manager for a specific pool\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} poolKey Key of the pool to get the referral for\n\t * @returns A function that takes a Transaction object\n\t */\n\tgetBalanceManagerReferralId = (managerKey: string, poolKey: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\tconst poolId = this.#config.getPool(poolKey).address;\n\t\treturn tx.add(\n\t\t\tbalanceManagerMoveCalls.getBalanceManagerReferralId({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId, poolId },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Revoke a TradeCap. This also revokes the associated DepositCap and WithdrawCap.\n\t * @param {string} managerKey The name of the BalanceManager\n\t * @param {string} tradeCapId The ID of the TradeCap to revoke\n\t * @returns A function that takes a Transaction object\n\t */\n\trevokeTradeCap = (managerKey: string, tradeCapId: string) => (tx: Transaction) => {\n\t\tconst managerId = this.#config.getBalanceManager(managerKey).address;\n\t\ttx.add(\n\t\t\tbalanceManagerMoveCalls.revokeTradeCap({\n\t\t\t\tpackage: this.#config.DEEPBOOK_PACKAGE_ID,\n\t\t\t\targuments: { balanceManager: managerId, tradeCapId },\n\t\t\t}),\n\t\t);\n\t};\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepbook.d.mts","names":[],"sources":["../../src/transactions/deepbook.ts"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"deepbook.d.mts","names":[],"sources":["../../src/transactions/deepbook.ts"],"mappings":"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"}
|