@mysten/deepbook-v3 1.5.9 → 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.
Files changed (177) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/dist/client.d.mts +5 -0
  3. package/dist/client.d.mts.map +1 -1
  4. package/dist/client.mjs +7 -0
  5. package/dist/client.mjs.map +1 -1
  6. package/dist/contracts/deepbook/balance_manager.mjs +413 -0
  7. package/dist/contracts/deepbook/balance_manager.mjs.map +1 -0
  8. package/dist/contracts/deepbook/balances.d.mts +4 -4
  9. package/dist/contracts/deepbook/big_vector.mjs +43 -0
  10. package/dist/contracts/deepbook/big_vector.mjs.map +1 -0
  11. package/dist/contracts/deepbook/book.mjs +29 -0
  12. package/dist/contracts/deepbook/book.mjs.map +1 -0
  13. package/dist/contracts/deepbook/deep_price.d.mts +3 -3
  14. package/dist/contracts/deepbook/deep_price.mjs +1 -1
  15. package/dist/contracts/deepbook/deps/std/type_name.mjs +17 -0
  16. package/dist/contracts/deepbook/deps/std/type_name.mjs.map +1 -0
  17. package/dist/contracts/deepbook/deps/sui/bag.mjs +43 -0
  18. package/dist/contracts/deepbook/deps/sui/bag.mjs.map +1 -0
  19. package/dist/contracts/deepbook/deps/sui/balance.mjs +21 -0
  20. package/dist/contracts/deepbook/deps/sui/balance.mjs.map +1 -0
  21. package/dist/contracts/deepbook/deps/sui/table.mjs +38 -0
  22. package/dist/contracts/deepbook/deps/sui/table.mjs.map +1 -0
  23. package/dist/contracts/deepbook/deps/sui/vec_map.mjs +37 -0
  24. package/dist/contracts/deepbook/deps/sui/vec_map.mjs.map +1 -0
  25. package/dist/contracts/deepbook/deps/sui/versioned.mjs +19 -0
  26. package/dist/contracts/deepbook/deps/sui/versioned.mjs.map +1 -0
  27. package/dist/contracts/deepbook/governance.mjs +49 -0
  28. package/dist/contracts/deepbook/governance.mjs.map +1 -0
  29. package/dist/contracts/deepbook/history.mjs +56 -0
  30. package/dist/contracts/deepbook/history.mjs.map +1 -0
  31. package/dist/contracts/deepbook/order.d.mts +12 -12
  32. package/dist/contracts/deepbook/pool.mjs +1739 -0
  33. package/dist/contracts/deepbook/pool.mjs.map +1 -0
  34. package/dist/contracts/deepbook/registry.mjs +295 -0
  35. package/dist/contracts/deepbook/registry.mjs.map +1 -0
  36. package/dist/contracts/deepbook/state.mjs +89 -0
  37. package/dist/contracts/deepbook/state.mjs.map +1 -0
  38. package/dist/contracts/deepbook/trade_params.mjs +21 -0
  39. package/dist/contracts/deepbook/trade_params.mjs.map +1 -0
  40. package/dist/contracts/deepbook/vault.mjs +42 -0
  41. package/dist/contracts/deepbook/vault.mjs.map +1 -0
  42. package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs +53 -0
  43. package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs.map +1 -0
  44. package/dist/contracts/deepbook_margin/deps/std/type_name.mjs +17 -0
  45. package/dist/contracts/deepbook_margin/deps/std/type_name.mjs.map +1 -0
  46. package/dist/contracts/deepbook_margin/deps/sui/bag.mjs +43 -0
  47. package/dist/contracts/deepbook_margin/deps/sui/bag.mjs.map +1 -0
  48. package/dist/contracts/deepbook_margin/deps/sui/balance.mjs +21 -0
  49. package/dist/contracts/deepbook_margin/deps/sui/balance.mjs.map +1 -0
  50. package/dist/contracts/deepbook_margin/deps/sui/table.mjs +38 -0
  51. package/dist/contracts/deepbook_margin/deps/sui/table.mjs.map +1 -0
  52. package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs +37 -0
  53. package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs.map +1 -0
  54. package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs +26 -0
  55. package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs.map +1 -0
  56. package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs +19 -0
  57. package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs.map +1 -0
  58. package/dist/contracts/deepbook_margin/margin_manager.mjs +989 -0
  59. package/dist/contracts/deepbook_margin/margin_manager.mjs.map +1 -0
  60. package/dist/contracts/deepbook_margin/margin_pool.mjs +550 -0
  61. package/dist/contracts/deepbook_margin/margin_pool.mjs.map +1 -0
  62. package/dist/contracts/deepbook_margin/margin_registry.mjs +786 -0
  63. package/dist/contracts/deepbook_margin/margin_registry.mjs.map +1 -0
  64. package/dist/contracts/deepbook_margin/margin_state.mjs +30 -0
  65. package/dist/contracts/deepbook_margin/margin_state.mjs.map +1 -0
  66. package/dist/contracts/deepbook_margin/oracle.mjs +82 -0
  67. package/dist/contracts/deepbook_margin/oracle.mjs.map +1 -0
  68. package/dist/contracts/deepbook_margin/pool_proxy.mjs +644 -0
  69. package/dist/contracts/deepbook_margin/pool_proxy.mjs.map +1 -0
  70. package/dist/contracts/deepbook_margin/position_manager.mjs +32 -0
  71. package/dist/contracts/deepbook_margin/position_manager.mjs.map +1 -0
  72. package/dist/contracts/deepbook_margin/protocol_config.mjs +122 -0
  73. package/dist/contracts/deepbook_margin/protocol_config.mjs.map +1 -0
  74. package/dist/contracts/deepbook_margin/protocol_fees.mjs +58 -0
  75. package/dist/contracts/deepbook_margin/protocol_fees.mjs.map +1 -0
  76. package/dist/contracts/deepbook_margin/rate_limiter.mjs +26 -0
  77. package/dist/contracts/deepbook_margin/rate_limiter.mjs.map +1 -0
  78. package/dist/contracts/deepbook_margin/tpsl.mjs +171 -0
  79. package/dist/contracts/deepbook_margin/tpsl.mjs.map +1 -0
  80. package/dist/contracts/margin_liquidation/deps/sui/bag.mjs +43 -0
  81. package/dist/contracts/margin_liquidation/deps/sui/bag.mjs.map +1 -0
  82. package/dist/contracts/margin_liquidation/liquidation_vault.mjs +179 -0
  83. package/dist/contracts/margin_liquidation/liquidation_vault.mjs.map +1 -0
  84. package/dist/contracts/utils/index.d.mts +1 -1
  85. package/dist/contracts/utils/index.mjs +92 -3
  86. package/dist/contracts/utils/index.mjs.map +1 -1
  87. package/dist/queries/registryQueries.mjs +13 -0
  88. package/dist/queries/registryQueries.mjs.map +1 -1
  89. package/dist/transactions/balanceManager.d.mts.map +1 -1
  90. package/dist/transactions/balanceManager.mjs +119 -100
  91. package/dist/transactions/balanceManager.mjs.map +1 -1
  92. package/dist/transactions/deepbook.d.mts.map +1 -1
  93. package/dist/transactions/deepbook.mjs +464 -439
  94. package/dist/transactions/deepbook.mjs.map +1 -1
  95. package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
  96. package/dist/transactions/deepbookAdmin.mjs +151 -135
  97. package/dist/transactions/deepbookAdmin.mjs.map +1 -1
  98. package/dist/transactions/flashLoans.d.mts.map +1 -1
  99. package/dist/transactions/flashLoans.mjs +29 -22
  100. package/dist/transactions/flashLoans.mjs.map +1 -1
  101. package/dist/transactions/governance.d.mts.map +1 -1
  102. package/dist/transactions/governance.mjs +34 -33
  103. package/dist/transactions/governance.mjs.map +1 -1
  104. package/dist/transactions/marginAdmin.d.mts +10 -0
  105. package/dist/transactions/marginAdmin.d.mts.map +1 -1
  106. package/dist/transactions/marginAdmin.mjs +186 -169
  107. package/dist/transactions/marginAdmin.mjs.map +1 -1
  108. package/dist/transactions/marginLiquidations.d.mts +3 -3
  109. package/dist/transactions/marginLiquidations.d.mts.map +1 -1
  110. package/dist/transactions/marginLiquidations.mjs +53 -54
  111. package/dist/transactions/marginLiquidations.mjs.map +1 -1
  112. package/dist/transactions/marginMaintainer.d.mts.map +1 -1
  113. package/dist/transactions/marginMaintainer.mjs +83 -83
  114. package/dist/transactions/marginMaintainer.mjs.map +1 -1
  115. package/dist/transactions/marginManager.d.mts.map +1 -1
  116. package/dist/transactions/marginManager.mjs +330 -311
  117. package/dist/transactions/marginManager.mjs.map +1 -1
  118. package/dist/transactions/marginPool.d.mts.map +1 -1
  119. package/dist/transactions/marginPool.mjs +93 -89
  120. package/dist/transactions/marginPool.mjs.map +1 -1
  121. package/dist/transactions/marginRegistry.d.mts +22 -15
  122. package/dist/transactions/marginRegistry.d.mts.map +1 -1
  123. package/dist/transactions/marginRegistry.mjs +101 -68
  124. package/dist/transactions/marginRegistry.mjs.map +1 -1
  125. package/dist/transactions/marginTPSL.d.mts +27 -9
  126. package/dist/transactions/marginTPSL.d.mts.map +1 -1
  127. package/dist/transactions/marginTPSL.mjs +108 -82
  128. package/dist/transactions/marginTPSL.mjs.map +1 -1
  129. package/dist/transactions/poolProxy.d.mts +32 -0
  130. package/dist/transactions/poolProxy.d.mts.map +1 -1
  131. package/dist/transactions/poolProxy.mjs +269 -189
  132. package/dist/transactions/poolProxy.mjs.map +1 -1
  133. package/dist/utils/constants.mjs +4 -4
  134. package/dist/utils/constants.mjs.map +1 -1
  135. package/package.json +2 -2
  136. package/src/client.ts +8 -0
  137. package/src/contracts/deepbook/balance_manager.ts +46 -5
  138. package/src/contracts/deepbook/constants.ts +13 -0
  139. package/src/contracts/deepbook/pool.ts +133 -0
  140. package/src/contracts/deepbook/registry.ts +136 -1
  141. package/src/contracts/deepbook_margin/deps/deepbook/balance_manager.ts +49 -0
  142. package/src/contracts/deepbook_margin/deps/std/type_name.ts +24 -0
  143. package/src/contracts/deepbook_margin/deps/sui/bag.ts +41 -0
  144. package/src/contracts/deepbook_margin/deps/sui/balance.ts +19 -0
  145. package/src/contracts/deepbook_margin/deps/sui/table.ts +36 -0
  146. package/src/contracts/deepbook_margin/deps/sui/vec_map.ts +33 -0
  147. package/src/contracts/deepbook_margin/deps/sui/vec_set.ts +22 -0
  148. package/src/contracts/deepbook_margin/deps/sui/versioned.ts +13 -0
  149. package/src/contracts/deepbook_margin/margin_constants.ts +329 -0
  150. package/src/contracts/deepbook_margin/margin_manager.ts +1772 -0
  151. package/src/contracts/deepbook_margin/margin_pool.ts +1129 -0
  152. package/src/contracts/deepbook_margin/margin_registry.ts +1207 -0
  153. package/src/contracts/deepbook_margin/margin_state.ts +26 -0
  154. package/src/contracts/deepbook_margin/oracle.ts +99 -0
  155. package/src/contracts/deepbook_margin/pool_proxy.ts +1298 -0
  156. package/src/contracts/deepbook_margin/position_manager.ts +28 -0
  157. package/src/contracts/deepbook_margin/protocol_config.ts +163 -0
  158. package/src/contracts/deepbook_margin/protocol_fees.ts +153 -0
  159. package/src/contracts/deepbook_margin/rate_limiter.ts +80 -0
  160. package/src/contracts/deepbook_margin/tpsl.ts +559 -0
  161. package/src/contracts/margin_liquidation/deps/sui/bag.ts +41 -0
  162. package/src/contracts/margin_liquidation/liquidation_vault.ts +401 -0
  163. package/src/queries/registryQueries.ts +15 -0
  164. package/src/transactions/balanceManager.ts +140 -90
  165. package/src/transactions/deepbook.ts +586 -494
  166. package/src/transactions/deepbookAdmin.ts +154 -146
  167. package/src/transactions/flashLoans.ts +29 -20
  168. package/src/transactions/governance.ts +50 -37
  169. package/src/transactions/marginAdmin.ts +247 -188
  170. package/src/transactions/marginLiquidations.ts +70 -55
  171. package/src/transactions/marginMaintainer.ts +106 -88
  172. package/src/transactions/marginManager.ts +414 -348
  173. package/src/transactions/marginPool.ts +140 -103
  174. package/src/transactions/marginRegistry.ts +103 -70
  175. package/src/transactions/marginTPSL.ts +151 -87
  176. package/src/transactions/poolProxy.ts +384 -205
  177. package/src/utils/constants.ts +4 -4
@@ -0,0 +1,28 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+
5
+ /**
6
+ * Position manager is responsible for managing users' positions. It is used to
7
+ * track the supply and loan shares of the users.
8
+ */
9
+
10
+ import { MoveStruct } from '../utils/index.js';
11
+ import { bcs } from '@mysten/sui/bcs';
12
+ import * as table from './deps/sui/table.js';
13
+ import * as vec_map from './deps/sui/vec_map.js';
14
+ const $moduleName = '@deepbook/margin::position_manager';
15
+ export const PositionManager = new MoveStruct({
16
+ name: `${$moduleName}::PositionManager`,
17
+ fields: {
18
+ positions: table.Table,
19
+ extra_fields: vec_map.VecMap(bcs.string(), bcs.u64()),
20
+ },
21
+ });
22
+ export const Position = new MoveStruct({
23
+ name: `${$moduleName}::Position`,
24
+ fields: {
25
+ shares: bcs.u64(),
26
+ referral: bcs.option(bcs.Address),
27
+ },
28
+ });
@@ -0,0 +1,163 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+ import { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';
5
+ import { bcs } from '@mysten/sui/bcs';
6
+ import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
7
+ import * as vec_map from './deps/sui/vec_map.js';
8
+ const $moduleName = '@deepbook/margin::protocol_config';
9
+ export const MarginPoolConfig = new MoveStruct({
10
+ name: `${$moduleName}::MarginPoolConfig`,
11
+ fields: {
12
+ supply_cap: bcs.u64(),
13
+ max_utilization_rate: bcs.u64(),
14
+ protocol_spread: bcs.u64(),
15
+ min_borrow: bcs.u64(),
16
+ rate_limit_capacity: bcs.u64(),
17
+ rate_limit_refill_rate_per_ms: bcs.u64(),
18
+ rate_limit_enabled: bcs.bool(),
19
+ },
20
+ });
21
+ export const InterestConfig = new MoveStruct({
22
+ name: `${$moduleName}::InterestConfig`,
23
+ fields: {
24
+ base_rate: bcs.u64(),
25
+ base_slope: bcs.u64(),
26
+ optimal_utilization: bcs.u64(),
27
+ excess_slope: bcs.u64(),
28
+ },
29
+ });
30
+ export const ProtocolConfig = new MoveStruct({
31
+ name: `${$moduleName}::ProtocolConfig`,
32
+ fields: {
33
+ margin_pool_config: MarginPoolConfig,
34
+ interest_config: InterestConfig,
35
+ extra_fields: vec_map.VecMap(bcs.string(), bcs.u64()),
36
+ },
37
+ });
38
+ export interface NewProtocolConfigArguments {
39
+ marginPoolConfig: TransactionArgument;
40
+ interestConfig: TransactionArgument;
41
+ }
42
+ export interface NewProtocolConfigOptions {
43
+ package?: string;
44
+ arguments:
45
+ | NewProtocolConfigArguments
46
+ | [marginPoolConfig: TransactionArgument, interestConfig: TransactionArgument];
47
+ }
48
+ export function newProtocolConfig(options: NewProtocolConfigOptions) {
49
+ const packageAddress = options.package ?? '@deepbook/margin';
50
+ const argumentsTypes = [null, null] satisfies (string | null)[];
51
+ const parameterNames = ['marginPoolConfig', 'interestConfig'];
52
+ return (tx: Transaction) =>
53
+ tx.moveCall({
54
+ package: packageAddress,
55
+ module: 'protocol_config',
56
+ function: 'new_protocol_config',
57
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
58
+ });
59
+ }
60
+ export interface NewMarginPoolConfigArguments {
61
+ supplyCap: RawTransactionArgument<number | bigint>;
62
+ maxUtilizationRate: RawTransactionArgument<number | bigint>;
63
+ protocolSpread: RawTransactionArgument<number | bigint>;
64
+ minBorrow: RawTransactionArgument<number | bigint>;
65
+ }
66
+ export interface NewMarginPoolConfigOptions {
67
+ package?: string;
68
+ arguments:
69
+ | NewMarginPoolConfigArguments
70
+ | [
71
+ supplyCap: RawTransactionArgument<number | bigint>,
72
+ maxUtilizationRate: RawTransactionArgument<number | bigint>,
73
+ protocolSpread: RawTransactionArgument<number | bigint>,
74
+ minBorrow: RawTransactionArgument<number | bigint>,
75
+ ];
76
+ }
77
+ export function newMarginPoolConfig(options: NewMarginPoolConfigOptions) {
78
+ const packageAddress = options.package ?? '@deepbook/margin';
79
+ const argumentsTypes = ['u64', 'u64', 'u64', 'u64'] satisfies (string | null)[];
80
+ const parameterNames = ['supplyCap', 'maxUtilizationRate', 'protocolSpread', 'minBorrow'];
81
+ return (tx: Transaction) =>
82
+ tx.moveCall({
83
+ package: packageAddress,
84
+ module: 'protocol_config',
85
+ function: 'new_margin_pool_config',
86
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
87
+ });
88
+ }
89
+ export interface NewMarginPoolConfigWithRateLimitArguments {
90
+ supplyCap: RawTransactionArgument<number | bigint>;
91
+ maxUtilizationRate: RawTransactionArgument<number | bigint>;
92
+ protocolSpread: RawTransactionArgument<number | bigint>;
93
+ minBorrow: RawTransactionArgument<number | bigint>;
94
+ rateLimitCapacity: RawTransactionArgument<number | bigint>;
95
+ rateLimitRefillRatePerMs: RawTransactionArgument<number | bigint>;
96
+ rateLimitEnabled: RawTransactionArgument<boolean>;
97
+ }
98
+ export interface NewMarginPoolConfigWithRateLimitOptions {
99
+ package?: string;
100
+ arguments:
101
+ | NewMarginPoolConfigWithRateLimitArguments
102
+ | [
103
+ supplyCap: RawTransactionArgument<number | bigint>,
104
+ maxUtilizationRate: RawTransactionArgument<number | bigint>,
105
+ protocolSpread: RawTransactionArgument<number | bigint>,
106
+ minBorrow: RawTransactionArgument<number | bigint>,
107
+ rateLimitCapacity: RawTransactionArgument<number | bigint>,
108
+ rateLimitRefillRatePerMs: RawTransactionArgument<number | bigint>,
109
+ rateLimitEnabled: RawTransactionArgument<boolean>,
110
+ ];
111
+ }
112
+ export function newMarginPoolConfigWithRateLimit(options: NewMarginPoolConfigWithRateLimitOptions) {
113
+ const packageAddress = options.package ?? '@deepbook/margin';
114
+ const argumentsTypes = ['u64', 'u64', 'u64', 'u64', 'u64', 'u64', 'bool'] satisfies (
115
+ | string
116
+ | null
117
+ )[];
118
+ const parameterNames = [
119
+ 'supplyCap',
120
+ 'maxUtilizationRate',
121
+ 'protocolSpread',
122
+ 'minBorrow',
123
+ 'rateLimitCapacity',
124
+ 'rateLimitRefillRatePerMs',
125
+ 'rateLimitEnabled',
126
+ ];
127
+ return (tx: Transaction) =>
128
+ tx.moveCall({
129
+ package: packageAddress,
130
+ module: 'protocol_config',
131
+ function: 'new_margin_pool_config_with_rate_limit',
132
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
133
+ });
134
+ }
135
+ export interface NewInterestConfigArguments {
136
+ baseRate: RawTransactionArgument<number | bigint>;
137
+ baseSlope: RawTransactionArgument<number | bigint>;
138
+ optimalUtilization: RawTransactionArgument<number | bigint>;
139
+ excessSlope: RawTransactionArgument<number | bigint>;
140
+ }
141
+ export interface NewInterestConfigOptions {
142
+ package?: string;
143
+ arguments:
144
+ | NewInterestConfigArguments
145
+ | [
146
+ baseRate: RawTransactionArgument<number | bigint>,
147
+ baseSlope: RawTransactionArgument<number | bigint>,
148
+ optimalUtilization: RawTransactionArgument<number | bigint>,
149
+ excessSlope: RawTransactionArgument<number | bigint>,
150
+ ];
151
+ }
152
+ export function newInterestConfig(options: NewInterestConfigOptions) {
153
+ const packageAddress = options.package ?? '@deepbook/margin';
154
+ const argumentsTypes = ['u64', 'u64', 'u64', 'u64'] satisfies (string | null)[];
155
+ const parameterNames = ['baseRate', 'baseSlope', 'optimalUtilization', 'excessSlope'];
156
+ return (tx: Transaction) =>
157
+ tx.moveCall({
158
+ package: packageAddress,
159
+ module: 'protocol_config',
160
+ function: 'new_interest_config',
161
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
162
+ });
163
+ }
@@ -0,0 +1,153 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+ import { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';
5
+ import { bcs } from '@mysten/sui/bcs';
6
+ import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
7
+ import * as table from './deps/sui/table.js';
8
+ import * as vec_map from './deps/sui/vec_map.js';
9
+ const $moduleName = '@deepbook/margin::protocol_fees';
10
+ export const ProtocolFees = new MoveStruct({
11
+ name: `${$moduleName}::ProtocolFees`,
12
+ fields: {
13
+ referrals: table.Table,
14
+ total_shares: bcs.u64(),
15
+ fees_per_share: bcs.u64(),
16
+ maintainer_fees: bcs.u64(),
17
+ protocol_fees: bcs.u64(),
18
+ extra_fields: vec_map.VecMap(bcs.string(), bcs.u64()),
19
+ },
20
+ });
21
+ export const ReferralTracker = new MoveStruct({
22
+ name: `${$moduleName}::ReferralTracker`,
23
+ fields: {
24
+ current_shares: bcs.u64(),
25
+ last_fees_per_share: bcs.u64(),
26
+ unclaimed_fees: bcs.u64(),
27
+ },
28
+ });
29
+ export const SupplyReferral = new MoveStruct({
30
+ name: `${$moduleName}::SupplyReferral`,
31
+ fields: {
32
+ id: bcs.Address,
33
+ owner: bcs.Address,
34
+ },
35
+ });
36
+ export const ProtocolFeesIncreasedEvent = new MoveStruct({
37
+ name: `${$moduleName}::ProtocolFeesIncreasedEvent`,
38
+ fields: {
39
+ margin_pool_id: bcs.Address,
40
+ total_shares: bcs.u64(),
41
+ referral_fees: bcs.u64(),
42
+ maintainer_fees: bcs.u64(),
43
+ protocol_fees: bcs.u64(),
44
+ },
45
+ });
46
+ export const ReferralFeesClaimedEvent = new MoveStruct({
47
+ name: `${$moduleName}::ReferralFeesClaimedEvent`,
48
+ fields: {
49
+ referral_id: bcs.Address,
50
+ owner: bcs.Address,
51
+ fees: bcs.u64(),
52
+ },
53
+ });
54
+ export interface MaintainerFeesArguments {
55
+ self: TransactionArgument;
56
+ }
57
+ export interface MaintainerFeesOptions {
58
+ package?: string;
59
+ arguments: MaintainerFeesArguments | [self: TransactionArgument];
60
+ }
61
+ /** Get the maintainer fees. */
62
+ export function maintainerFees(options: MaintainerFeesOptions) {
63
+ const packageAddress = options.package ?? '@deepbook/margin';
64
+ const argumentsTypes = [null] satisfies (string | null)[];
65
+ const parameterNames = ['self'];
66
+ return (tx: Transaction) =>
67
+ tx.moveCall({
68
+ package: packageAddress,
69
+ module: 'protocol_fees',
70
+ function: 'maintainer_fees',
71
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
72
+ });
73
+ }
74
+ export interface ProtocolFeesArguments {
75
+ self: TransactionArgument;
76
+ }
77
+ export interface ProtocolFeesOptions {
78
+ package?: string;
79
+ arguments: ProtocolFeesArguments | [self: TransactionArgument];
80
+ }
81
+ /** Get the protocol fees. */
82
+ export function protocolFees(options: ProtocolFeesOptions) {
83
+ const packageAddress = options.package ?? '@deepbook/margin';
84
+ const argumentsTypes = [null] satisfies (string | null)[];
85
+ const parameterNames = ['self'];
86
+ return (tx: Transaction) =>
87
+ tx.moveCall({
88
+ package: packageAddress,
89
+ module: 'protocol_fees',
90
+ function: 'protocol_fees',
91
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
92
+ });
93
+ }
94
+ export interface ReferralTrackerArguments {
95
+ self: TransactionArgument;
96
+ referral: RawTransactionArgument<string>;
97
+ }
98
+ export interface ReferralTrackerOptions {
99
+ package?: string;
100
+ arguments:
101
+ | ReferralTrackerArguments
102
+ | [self: TransactionArgument, referral: RawTransactionArgument<string>];
103
+ }
104
+ export function referralTracker(options: ReferralTrackerOptions) {
105
+ const packageAddress = options.package ?? '@deepbook/margin';
106
+ const argumentsTypes = [null, '0x2::object::ID'] satisfies (string | null)[];
107
+ const parameterNames = ['self', 'referral'];
108
+ return (tx: Transaction) =>
109
+ tx.moveCall({
110
+ package: packageAddress,
111
+ module: 'protocol_fees',
112
+ function: 'referral_tracker',
113
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
114
+ });
115
+ }
116
+ export interface TotalSharesArguments {
117
+ self: TransactionArgument;
118
+ }
119
+ export interface TotalSharesOptions {
120
+ package?: string;
121
+ arguments: TotalSharesArguments | [self: TransactionArgument];
122
+ }
123
+ export function totalShares(options: TotalSharesOptions) {
124
+ const packageAddress = options.package ?? '@deepbook/margin';
125
+ const argumentsTypes = [null] satisfies (string | null)[];
126
+ const parameterNames = ['self'];
127
+ return (tx: Transaction) =>
128
+ tx.moveCall({
129
+ package: packageAddress,
130
+ module: 'protocol_fees',
131
+ function: 'total_shares',
132
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
133
+ });
134
+ }
135
+ export interface FeesPerShareArguments {
136
+ self: TransactionArgument;
137
+ }
138
+ export interface FeesPerShareOptions {
139
+ package?: string;
140
+ arguments: FeesPerShareArguments | [self: TransactionArgument];
141
+ }
142
+ export function feesPerShare(options: FeesPerShareOptions) {
143
+ const packageAddress = options.package ?? '@deepbook/margin';
144
+ const argumentsTypes = [null] satisfies (string | null)[];
145
+ const parameterNames = ['self'];
146
+ return (tx: Transaction) =>
147
+ tx.moveCall({
148
+ package: packageAddress,
149
+ module: 'protocol_fees',
150
+ function: 'fees_per_share',
151
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
152
+ });
153
+ }
@@ -0,0 +1,80 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+
5
+ /**
6
+ * Token Bucket rate limiter for controlling withdrawal rates. Reference:
7
+ * https://github.com/code-423n4/2024-11-chainlink/blob/main/contracts/src/ccip/libraries/RateLimiter.sol
8
+ */
9
+
10
+ import { MoveStruct, normalizeMoveArguments } from '../utils/index.js';
11
+ import { bcs } from '@mysten/sui/bcs';
12
+ import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
13
+ const $moduleName = '@deepbook/margin::rate_limiter';
14
+ export const RateLimiter = new MoveStruct({
15
+ name: `${$moduleName}::RateLimiter`,
16
+ fields: {
17
+ available: bcs.u64(),
18
+ last_updated_ms: bcs.u64(),
19
+ capacity: bcs.u64(),
20
+ refill_rate_per_ms: bcs.u64(),
21
+ enabled: bcs.bool(),
22
+ },
23
+ });
24
+ export interface IsEnabledArguments {
25
+ self: TransactionArgument;
26
+ }
27
+ export interface IsEnabledOptions {
28
+ package?: string;
29
+ arguments: IsEnabledArguments | [self: TransactionArgument];
30
+ }
31
+ export function isEnabled(options: IsEnabledOptions) {
32
+ const packageAddress = options.package ?? '@deepbook/margin';
33
+ const argumentsTypes = [null] satisfies (string | null)[];
34
+ const parameterNames = ['self'];
35
+ return (tx: Transaction) =>
36
+ tx.moveCall({
37
+ package: packageAddress,
38
+ module: 'rate_limiter',
39
+ function: 'is_enabled',
40
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
41
+ });
42
+ }
43
+ export interface CapacityArguments {
44
+ self: TransactionArgument;
45
+ }
46
+ export interface CapacityOptions {
47
+ package?: string;
48
+ arguments: CapacityArguments | [self: TransactionArgument];
49
+ }
50
+ export function capacity(options: CapacityOptions) {
51
+ const packageAddress = options.package ?? '@deepbook/margin';
52
+ const argumentsTypes = [null] satisfies (string | null)[];
53
+ const parameterNames = ['self'];
54
+ return (tx: Transaction) =>
55
+ tx.moveCall({
56
+ package: packageAddress,
57
+ module: 'rate_limiter',
58
+ function: 'capacity',
59
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
60
+ });
61
+ }
62
+ export interface RefillRatePerMsArguments {
63
+ self: TransactionArgument;
64
+ }
65
+ export interface RefillRatePerMsOptions {
66
+ package?: string;
67
+ arguments: RefillRatePerMsArguments | [self: TransactionArgument];
68
+ }
69
+ export function refillRatePerMs(options: RefillRatePerMsOptions) {
70
+ const packageAddress = options.package ?? '@deepbook/margin';
71
+ const argumentsTypes = [null] satisfies (string | null)[];
72
+ const parameterNames = ['self'];
73
+ return (tx: Transaction) =>
74
+ tx.moveCall({
75
+ package: packageAddress,
76
+ module: 'rate_limiter',
77
+ function: 'refill_rate_per_ms',
78
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
79
+ });
80
+ }