@mysten/deepbook-v3 2.0.1 → 2.1.3

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 (272) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/PREDICT.md +256 -0
  3. package/README.md +116 -0
  4. package/dist/account.d.mts +139 -0
  5. package/dist/account.d.mts.map +1 -0
  6. package/dist/account.mjs +181 -0
  7. package/dist/account.mjs.map +1 -0
  8. package/dist/bcs/integers.mjs +23 -0
  9. package/dist/bcs/integers.mjs.map +1 -0
  10. package/dist/contracts/account/account.d.mts +382 -0
  11. package/dist/contracts/account/account.d.mts.map +1 -0
  12. package/dist/contracts/account/account.mjs +443 -0
  13. package/dist/contracts/account/account.mjs.map +1 -0
  14. package/dist/contracts/account/account_events.d.mts +41 -0
  15. package/dist/contracts/account/account_events.d.mts.map +1 -0
  16. package/dist/contracts/account/account_events.mjs +72 -0
  17. package/dist/contracts/account/account_events.mjs.map +1 -0
  18. package/dist/contracts/account/account_registry.d.mts +210 -0
  19. package/dist/contracts/account/account_registry.d.mts.map +1 -0
  20. package/dist/contracts/account/account_registry.mjs +263 -0
  21. package/dist/contracts/account/account_registry.mjs.map +1 -0
  22. package/dist/contracts/account/config-arguments.d.mts +10 -0
  23. package/dist/contracts/account/config-arguments.d.mts.map +1 -0
  24. package/dist/contracts/account/deps/sui/bag.mjs +44 -0
  25. package/dist/contracts/account/deps/sui/bag.mjs.map +1 -0
  26. package/dist/contracts/deepbook/account.d.mts +18 -18
  27. package/dist/contracts/deepbook/balances.d.mts +4 -4
  28. package/dist/contracts/deepbook/deep_price.d.mts +3 -3
  29. package/dist/contracts/deepbook/deep_price.d.mts.map +1 -1
  30. package/dist/contracts/deepbook/order.d.mts +12 -12
  31. package/dist/contracts/deepbook_predict/builder_code_events.mjs +38 -0
  32. package/dist/contracts/deepbook_predict/builder_code_events.mjs.map +1 -0
  33. package/dist/contracts/deepbook_predict/config-arguments.d.mts +13 -0
  34. package/dist/contracts/deepbook_predict/config-arguments.d.mts.map +1 -0
  35. package/dist/contracts/deepbook_predict/deps/fixed_math/i64.mjs +25 -0
  36. package/dist/contracts/deepbook_predict/deps/fixed_math/i64.mjs.map +1 -0
  37. package/dist/contracts/deepbook_predict/deps/sui/balance.mjs +25 -0
  38. package/dist/contracts/deepbook_predict/deps/sui/balance.mjs.map +1 -0
  39. package/dist/contracts/deepbook_predict/deps/sui/coin.mjs +24 -0
  40. package/dist/contracts/deepbook_predict/deps/sui/coin.mjs.map +1 -0
  41. package/dist/contracts/deepbook_predict/deps/sui/table.mjs +39 -0
  42. package/dist/contracts/deepbook_predict/deps/sui/table.mjs.map +1 -0
  43. package/dist/contracts/deepbook_predict/deps/sui/vec_set.mjs +26 -0
  44. package/dist/contracts/deepbook_predict/deps/sui/vec_set.mjs.map +1 -0
  45. package/dist/contracts/deepbook_predict/ewma.mjs +29 -0
  46. package/dist/contracts/deepbook_predict/ewma.mjs.map +1 -0
  47. package/dist/contracts/deepbook_predict/expiry_cash.mjs +27 -0
  48. package/dist/contracts/deepbook_predict/expiry_cash.mjs.map +1 -0
  49. package/dist/contracts/deepbook_predict/expiry_market.mjs +367 -0
  50. package/dist/contracts/deepbook_predict/expiry_market.mjs.map +1 -0
  51. package/dist/contracts/deepbook_predict/lp_book.mjs +92 -0
  52. package/dist/contracts/deepbook_predict/lp_book.mjs.map +1 -0
  53. package/dist/contracts/deepbook_predict/market_manager.mjs +59 -0
  54. package/dist/contracts/deepbook_predict/market_manager.mjs.map +1 -0
  55. package/dist/contracts/deepbook_predict/order.mjs +26 -0
  56. package/dist/contracts/deepbook_predict/order.mjs.map +1 -0
  57. package/dist/contracts/deepbook_predict/order_events.mjs +84 -0
  58. package/dist/contracts/deepbook_predict/order_events.mjs.map +1 -0
  59. package/dist/contracts/deepbook_predict/plp.mjs +284 -0
  60. package/dist/contracts/deepbook_predict/plp.mjs.map +1 -0
  61. package/dist/contracts/deepbook_predict/pool_accounting.mjs +58 -0
  62. package/dist/contracts/deepbook_predict/pool_accounting.mjs.map +1 -0
  63. package/dist/contracts/deepbook_predict/predict_account.mjs +106 -0
  64. package/dist/contracts/deepbook_predict/predict_account.mjs.map +1 -0
  65. package/dist/contracts/deepbook_predict/pricing.mjs +80 -0
  66. package/dist/contracts/deepbook_predict/pricing.mjs.map +1 -0
  67. package/dist/contracts/deepbook_predict/range_codec.mjs +41 -0
  68. package/dist/contracts/deepbook_predict/range_codec.mjs.map +1 -0
  69. package/dist/contracts/deepbook_predict/registry.mjs +55 -0
  70. package/dist/contracts/deepbook_predict/registry.mjs.map +1 -0
  71. package/dist/contracts/deepbook_predict/strike_exposure.mjs +65 -0
  72. package/dist/contracts/deepbook_predict/strike_exposure.mjs.map +1 -0
  73. package/dist/contracts/deepbook_predict/strike_exposure_config.mjs +33 -0
  74. package/dist/contracts/deepbook_predict/strike_exposure_config.mjs.map +1 -0
  75. package/dist/contracts/deepbook_predict/strike_payout_tree.mjs +72 -0
  76. package/dist/contracts/deepbook_predict/strike_payout_tree.mjs.map +1 -0
  77. package/dist/contracts/deepbook_predict/vault_events.mjs +184 -0
  78. package/dist/contracts/deepbook_predict/vault_events.mjs.map +1 -0
  79. package/dist/contracts/deepbook_sessions/config-arguments.d.mts +10 -0
  80. package/dist/contracts/deepbook_sessions/config-arguments.d.mts.map +1 -0
  81. package/dist/contracts/deepbook_sessions/deps/sui/vec_map.mjs +37 -0
  82. package/dist/contracts/deepbook_sessions/deps/sui/vec_map.mjs.map +1 -0
  83. package/dist/contracts/deepbook_sessions/session_config.d.mts +63 -0
  84. package/dist/contracts/deepbook_sessions/session_config.d.mts.map +1 -0
  85. package/dist/contracts/deepbook_sessions/session_config.mjs +82 -0
  86. package/dist/contracts/deepbook_sessions/session_config.mjs.map +1 -0
  87. package/dist/contracts/deepbook_sessions/sessions.d.mts +275 -0
  88. package/dist/contracts/deepbook_sessions/sessions.d.mts.map +1 -0
  89. package/dist/contracts/deepbook_sessions/sessions.mjs +443 -0
  90. package/dist/contracts/deepbook_sessions/sessions.mjs.map +1 -0
  91. package/dist/contracts/utils/index.d.mts +18 -1
  92. package/dist/contracts/utils/index.d.mts.map +1 -1
  93. package/dist/deployments/index.d.mts +31 -0
  94. package/dist/deployments/index.d.mts.map +1 -0
  95. package/dist/deployments/index.mjs +30 -0
  96. package/dist/deployments/index.mjs.map +1 -0
  97. package/dist/deployments/testnet.d.mts +14 -0
  98. package/dist/deployments/testnet.d.mts.map +1 -0
  99. package/dist/deployments/testnet.mjs +73 -0
  100. package/dist/deployments/testnet.mjs.map +1 -0
  101. package/dist/deployments/types.d.mts +36 -0
  102. package/dist/deployments/types.d.mts.map +1 -0
  103. package/dist/index.mjs +0 -1
  104. package/dist/predict/client.d.mts +255 -0
  105. package/dist/predict/client.d.mts.map +1 -0
  106. package/dist/predict/client.mjs +436 -0
  107. package/dist/predict/client.mjs.map +1 -0
  108. package/dist/predict/config/generated.d.mts +29 -0
  109. package/dist/predict/config/generated.d.mts.map +1 -0
  110. package/dist/predict/config/generated.mjs +16 -0
  111. package/dist/predict/config/generated.mjs.map +1 -0
  112. package/dist/predict/config/index.d.mts +10 -0
  113. package/dist/predict/config/index.d.mts.map +1 -0
  114. package/dist/predict/config/index.mjs +13 -0
  115. package/dist/predict/config/index.mjs.map +1 -0
  116. package/dist/predict/config/testnet.d.mts +17 -0
  117. package/dist/predict/config/testnet.d.mts.map +1 -0
  118. package/dist/predict/config/testnet.mjs +26 -0
  119. package/dist/predict/config/testnet.mjs.map +1 -0
  120. package/dist/predict/config/types.d.mts +55 -0
  121. package/dist/predict/config/types.d.mts.map +1 -0
  122. package/dist/predict/decode.d.mts +162 -0
  123. package/dist/predict/decode.d.mts.map +1 -0
  124. package/dist/predict/decode.mjs +175 -0
  125. package/dist/predict/decode.mjs.map +1 -0
  126. package/dist/predict/errors.d.mts +42 -0
  127. package/dist/predict/errors.d.mts.map +1 -0
  128. package/dist/predict/errors.mjs +37 -0
  129. package/dist/predict/errors.mjs.map +1 -0
  130. package/dist/predict/index.d.mts +18 -0
  131. package/dist/predict/index.mjs +14 -0
  132. package/dist/predict/pricing.d.mts +73 -0
  133. package/dist/predict/pricing.d.mts.map +1 -0
  134. package/dist/predict/pricing.mjs +129 -0
  135. package/dist/predict/pricing.mjs.map +1 -0
  136. package/dist/predict/reads/balances.mjs +41 -0
  137. package/dist/predict/reads/balances.mjs.map +1 -0
  138. package/dist/predict/reads/inspect.d.mts +8 -0
  139. package/dist/predict/reads/inspect.d.mts.map +1 -0
  140. package/dist/predict/reads/inspect.mjs +37 -0
  141. package/dist/predict/reads/inspect.mjs.map +1 -0
  142. package/dist/predict/reads/markets.mjs +130 -0
  143. package/dist/predict/reads/markets.mjs.map +1 -0
  144. package/dist/predict/reads/parse.mjs +20 -0
  145. package/dist/predict/reads/parse.mjs.map +1 -0
  146. package/dist/predict/reads/pool.mjs +26 -0
  147. package/dist/predict/reads/pool.mjs.map +1 -0
  148. package/dist/predict/reads/positions.d.mts +12 -0
  149. package/dist/predict/reads/positions.d.mts.map +1 -0
  150. package/dist/predict/reads/positions.mjs +77 -0
  151. package/dist/predict/reads/positions.mjs.map +1 -0
  152. package/dist/predict/reads/pricing.d.mts +20 -0
  153. package/dist/predict/reads/pricing.d.mts.map +1 -0
  154. package/dist/predict/reads/pricing.mjs +43 -0
  155. package/dist/predict/reads/pricing.mjs.map +1 -0
  156. package/dist/predict/ticks.d.mts +11 -0
  157. package/dist/predict/ticks.d.mts.map +1 -0
  158. package/dist/predict/ticks.mjs +21 -0
  159. package/dist/predict/ticks.mjs.map +1 -0
  160. package/dist/predict/tx/authed.mjs +18 -0
  161. package/dist/predict/tx/authed.mjs.map +1 -0
  162. package/dist/predict/tx/common.d.mts +18 -0
  163. package/dist/predict/tx/common.d.mts.map +1 -0
  164. package/dist/predict/tx/common.mjs +52 -0
  165. package/dist/predict/tx/common.mjs.map +1 -0
  166. package/dist/predict/tx/trade.d.mts +15 -0
  167. package/dist/predict/tx/trade.d.mts.map +1 -0
  168. package/dist/predict/tx/trade.mjs +86 -0
  169. package/dist/predict/tx/trade.mjs.map +1 -0
  170. package/dist/predict/units.d.mts +11 -0
  171. package/dist/predict/units.d.mts.map +1 -0
  172. package/dist/predict/units.mjs +44 -0
  173. package/dist/predict/units.mjs.map +1 -0
  174. package/dist/queries/accountQueries.mjs +0 -1
  175. package/dist/queries/accountQueries.mjs.map +1 -1
  176. package/dist/queries/orderQueries.mjs +0 -1
  177. package/dist/queries/orderQueries.mjs.map +1 -1
  178. package/dist/queries/registryQueries.mjs +0 -1
  179. package/dist/queries/registryQueries.mjs.map +1 -1
  180. package/dist/sessions.d.mts +244 -0
  181. package/dist/sessions.d.mts.map +1 -0
  182. package/dist/sessions.mjs +291 -0
  183. package/dist/sessions.mjs.map +1 -0
  184. package/dist/transactions/balanceManager.d.mts +12 -12
  185. package/dist/transactions/balanceManager.d.mts.map +1 -1
  186. package/dist/transactions/deepbook.d.mts +20 -20
  187. package/dist/transactions/deepbook.d.mts.map +1 -1
  188. package/dist/transactions/deepbookAdmin.d.mts +4 -4
  189. package/dist/transactions/marginAdmin.d.mts +7 -7
  190. package/dist/transactions/marginLiquidations.d.mts +3 -3
  191. package/dist/transactions/marginMaintainer.d.mts +5 -5
  192. package/dist/transactions/marginManager.d.mts +32 -32
  193. package/dist/transactions/marginPool.d.mts +18 -18
  194. package/dist/transactions/marginRegistry.d.mts +16 -16
  195. package/dist/transactions/marginTPSL.d.mts +10 -10
  196. package/dist/transactions/poolProxy.d.mts +8 -8
  197. package/package.json +25 -4
  198. package/src/account.ts +239 -0
  199. package/src/bcs/integers.ts +35 -0
  200. package/src/contracts/account/account.ts +706 -0
  201. package/src/contracts/account/account_events.ts +64 -0
  202. package/src/contracts/account/account_registry.ts +468 -0
  203. package/src/contracts/account/config-arguments.ts +8 -0
  204. package/src/contracts/account/deps/sui/bag.ts +42 -0
  205. package/src/contracts/deepbook_predict/admin.ts +44 -0
  206. package/src/contracts/deepbook_predict/builder_code.ts +155 -0
  207. package/src/contracts/deepbook_predict/builder_code_events.ts +34 -0
  208. package/src/contracts/deepbook_predict/config-arguments.ts +11 -0
  209. package/src/contracts/deepbook_predict/config_events.ts +140 -0
  210. package/src/contracts/deepbook_predict/deps/fixed_math/i64.ts +21 -0
  211. package/src/contracts/deepbook_predict/deps/sui/balance.ts +25 -0
  212. package/src/contracts/deepbook_predict/deps/sui/coin.ts +20 -0
  213. package/src/contracts/deepbook_predict/deps/sui/table.ts +37 -0
  214. package/src/contracts/deepbook_predict/deps/sui/vec_set.ts +22 -0
  215. package/src/contracts/deepbook_predict/ewma.ts +26 -0
  216. package/src/contracts/deepbook_predict/ewma_config.ts +28 -0
  217. package/src/contracts/deepbook_predict/expiry_cash.ts +24 -0
  218. package/src/contracts/deepbook_predict/expiry_market.ts +1549 -0
  219. package/src/contracts/deepbook_predict/lp_book.ts +105 -0
  220. package/src/contracts/deepbook_predict/market_lifecycle_cap.ts +75 -0
  221. package/src/contracts/deepbook_predict/market_manager.ts +218 -0
  222. package/src/contracts/deepbook_predict/order.ts +24 -0
  223. package/src/contracts/deepbook_predict/order_events.ts +129 -0
  224. package/src/contracts/deepbook_predict/pause_cap.ts +68 -0
  225. package/src/contracts/deepbook_predict/plp.ts +987 -0
  226. package/src/contracts/deepbook_predict/pool_accounting.ts +79 -0
  227. package/src/contracts/deepbook_predict/predict_account.ts +180 -0
  228. package/src/contracts/deepbook_predict/pricing.ts +124 -0
  229. package/src/contracts/deepbook_predict/pricing_config.ts +41 -0
  230. package/src/contracts/deepbook_predict/protocol_config.ts +1066 -0
  231. package/src/contracts/deepbook_predict/range_codec.ts +53 -0
  232. package/src/contracts/deepbook_predict/registry.ts +694 -0
  233. package/src/contracts/deepbook_predict/strike_exposure.ts +77 -0
  234. package/src/contracts/deepbook_predict/strike_exposure_config.ts +46 -0
  235. package/src/contracts/deepbook_predict/strike_payout_tree.ts +89 -0
  236. package/src/contracts/deepbook_predict/vault_events.ts +222 -0
  237. package/src/contracts/deepbook_sessions/config-arguments.ts +8 -0
  238. package/src/contracts/deepbook_sessions/deps/sui/vec_map.ts +33 -0
  239. package/src/contracts/deepbook_sessions/session_config.ts +130 -0
  240. package/src/contracts/deepbook_sessions/sessions.ts +663 -0
  241. package/src/contracts/propbook/block_scholes_store.ts +842 -0
  242. package/src/contracts/propbook/deps/sui/table.ts +37 -0
  243. package/src/contracts/propbook/oracle_lane.ts +170 -0
  244. package/src/contracts/propbook/pyth_feed.ts +414 -0
  245. package/src/contracts/propbook/registry.ts +596 -0
  246. package/src/deployments/index.ts +73 -0
  247. package/src/deployments/testnet.ts +107 -0
  248. package/src/deployments/types.ts +81 -0
  249. package/src/index.ts +5 -0
  250. package/src/predict/client.ts +941 -0
  251. package/src/predict/config/generated.ts +39 -0
  252. package/src/predict/config/index.ts +25 -0
  253. package/src/predict/config/testnet.ts +27 -0
  254. package/src/predict/config/types.ts +52 -0
  255. package/src/predict/decode.ts +476 -0
  256. package/src/predict/errors.ts +83 -0
  257. package/src/predict/index.ts +94 -0
  258. package/src/predict/pricing.ts +199 -0
  259. package/src/predict/reads/balances.ts +55 -0
  260. package/src/predict/reads/inspect.ts +78 -0
  261. package/src/predict/reads/markets.ts +222 -0
  262. package/src/predict/reads/parse.ts +30 -0
  263. package/src/predict/reads/pool.ts +37 -0
  264. package/src/predict/reads/positions.ts +144 -0
  265. package/src/predict/reads/pricing.ts +79 -0
  266. package/src/predict/ticks.ts +42 -0
  267. package/src/predict/tx/authed.ts +20 -0
  268. package/src/predict/tx/common.ts +92 -0
  269. package/src/predict/tx/trade.ts +183 -0
  270. package/src/predict/units.ts +49 -0
  271. package/src/sessions.ts +471 -0
  272. package/dist/types/bcs.mjs +0 -7
@@ -0,0 +1,706 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+
5
+ /**
6
+ * Owns shared account wrappers, typed coin custody, accumulator settlement, and
7
+ * application-scoped data. Consuming `Auth` is the mutable-borrow boundary: owner
8
+ * auth is checked against the account, while package-issued app auth yields the
9
+ * same full `&mut Account` and is not bound to an owner or operation. The wrapper
10
+ * address receives accumulator funds; a distinct derived account UID identifies
11
+ * the account and anchors app data, while typed balances remain embedded in the
12
+ * account. App data is namespaced by witness type, requires `Permit<App>` to
13
+ * mutate, and remains publicly readable.
14
+ */
15
+
16
+ import {
17
+ MoveStruct,
18
+ MoveTuple,
19
+ normalizeMoveArguments,
20
+ type RawTransactionArgument,
21
+ } from '../utils/index.js';
22
+ import { bcs, type BcsType } from '@mysten/sui/bcs';
23
+ import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
24
+ import * as bag from './deps/sui/bag.js';
25
+ const $moduleName = '@local-pkg/account::account';
26
+ export const Account = new MoveStruct({
27
+ name: `${$moduleName}::Account`,
28
+ fields: {
29
+ /** Dynamic-field parent for account-owned application data. */
30
+ account_id: bcs.Address,
31
+ /** EOA address or object-ID-as-address that owns this account. */
32
+ owner: bcs.Address,
33
+ /** Wrapper-object address used as the accumulator delivery and withdrawal anchor. */
34
+ receive_address: bcs.Address,
35
+ /** Type-indexed stored `Balance<T>` values. */
36
+ balances: bag.Bag,
37
+ /** Type-indexed timestamps of the latest settlement attempt. */
38
+ settlements: bag.Bag,
39
+ /** Canonical account ID supplied at referral-based creation, if any. */
40
+ referrer_account_id: bcs.option(bcs.Address),
41
+ /** Referrer's wrapper address for accumulator delivery, if any. */
42
+ referrer_receive_address: bcs.option(bcs.Address),
43
+ },
44
+ });
45
+ export const AccountWrapper = new MoveStruct({
46
+ name: `${$moduleName}::AccountWrapper`,
47
+ fields: {
48
+ id: bcs.Address,
49
+ account: Account,
50
+ },
51
+ });
52
+ export const DataKey = new MoveTuple({
53
+ name: `${$moduleName}::DataKey<phantom App>`,
54
+ fields: [bcs.bool()],
55
+ });
56
+ export const CoinKey = new MoveTuple({
57
+ name: `${$moduleName}::CoinKey<phantom T>`,
58
+ fields: [bcs.bool()],
59
+ });
60
+ export const Auth = new MoveStruct({
61
+ name: `${$moduleName}::Auth`,
62
+ fields: {
63
+ kind: bcs.u8(),
64
+ owner: bcs.Address,
65
+ },
66
+ });
67
+ export interface IdArguments {
68
+ self: RawTransactionArgument<string>;
69
+ }
70
+ export interface IdOptions {
71
+ package?: string;
72
+ arguments: IdArguments | [self: RawTransactionArgument<string>];
73
+ config?: {
74
+ accountPackageId?: string;
75
+ };
76
+ }
77
+ /** Returns the wrapper object ID. */
78
+ export function id(options: IdOptions) {
79
+ const packageAddress =
80
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
81
+ const argumentsTypes = [null] satisfies (string | null)[];
82
+ const parameterNames = ['self'];
83
+ return (tx: Transaction) =>
84
+ tx.moveCall({
85
+ package: packageAddress,
86
+ module: 'account',
87
+ function: 'id',
88
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
89
+ });
90
+ }
91
+ export interface LoadAccountArguments {
92
+ self: RawTransactionArgument<string>;
93
+ }
94
+ export interface LoadAccountOptions {
95
+ package?: string;
96
+ arguments: LoadAccountArguments | [self: RawTransactionArgument<string>];
97
+ config?: {
98
+ accountPackageId?: string;
99
+ };
100
+ }
101
+ /** Borrows the wrapped account for read-only composition. */
102
+ export function loadAccount(options: LoadAccountOptions) {
103
+ const packageAddress =
104
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
105
+ const argumentsTypes = [null] satisfies (string | null)[];
106
+ const parameterNames = ['self'];
107
+ return (tx: Transaction) =>
108
+ tx.moveCall({
109
+ package: packageAddress,
110
+ module: 'account',
111
+ function: 'load_account',
112
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
113
+ });
114
+ }
115
+ export interface BalanceArguments {
116
+ self: TransactionArgument;
117
+ }
118
+ export interface BalanceOptions {
119
+ package?: string;
120
+ arguments: BalanceArguments | [self: TransactionArgument];
121
+ config?: {
122
+ accountPackageId?: string;
123
+ };
124
+ typeArguments: [string];
125
+ }
126
+ /**
127
+ * Returns the total balance of `T` available to the account, including funds
128
+ * delivered through the ambient accumulator but not yet settled into the account.
129
+ */
130
+ export function balance(options: BalanceOptions) {
131
+ const packageAddress =
132
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
133
+ const argumentsTypes = [
134
+ null,
135
+ '0x2::accumulator::AccumulatorRoot',
136
+ '0x2::clock::Clock',
137
+ ] satisfies (string | null)[];
138
+ const parameterNames = ['self'];
139
+ return (tx: Transaction) =>
140
+ tx.moveCall({
141
+ package: packageAddress,
142
+ module: 'account',
143
+ function: 'balance',
144
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
145
+ typeArguments: options.typeArguments,
146
+ });
147
+ }
148
+ export interface OwnerArguments {
149
+ self: TransactionArgument;
150
+ }
151
+ export interface OwnerOptions {
152
+ package?: string;
153
+ arguments: OwnerArguments | [self: TransactionArgument];
154
+ config?: {
155
+ accountPackageId?: string;
156
+ };
157
+ }
158
+ /**
159
+ * Returns the account owner address. This may be an EOA address or an
160
+ * object-ID-as-address.
161
+ */
162
+ export function owner(options: OwnerOptions) {
163
+ const packageAddress =
164
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
165
+ const argumentsTypes = [null] satisfies (string | null)[];
166
+ const parameterNames = ['self'];
167
+ return (tx: Transaction) =>
168
+ tx.moveCall({
169
+ package: packageAddress,
170
+ module: 'account',
171
+ function: 'owner',
172
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
173
+ });
174
+ }
175
+ export interface AccountIdArguments {
176
+ self: TransactionArgument;
177
+ }
178
+ export interface AccountIdOptions {
179
+ package?: string;
180
+ arguments: AccountIdArguments | [self: TransactionArgument];
181
+ config?: {
182
+ accountPackageId?: string;
183
+ };
184
+ }
185
+ /** Returns the canonical account ID. */
186
+ export function accountId(options: AccountIdOptions) {
187
+ const packageAddress =
188
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
189
+ const argumentsTypes = [null] satisfies (string | null)[];
190
+ const parameterNames = ['self'];
191
+ return (tx: Transaction) =>
192
+ tx.moveCall({
193
+ package: packageAddress,
194
+ module: 'account',
195
+ function: 'account_id',
196
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
197
+ });
198
+ }
199
+ export interface ReferrerAccountIdArguments {
200
+ self: TransactionArgument;
201
+ }
202
+ export interface ReferrerAccountIdOptions {
203
+ package?: string;
204
+ arguments: ReferrerAccountIdArguments | [self: TransactionArgument];
205
+ config?: {
206
+ accountPackageId?: string;
207
+ };
208
+ }
209
+ /**
210
+ * Returns the canonical referrer account ID recorded at creation for external Move
211
+ * composition.
212
+ */
213
+ export function referrerAccountId(options: ReferrerAccountIdOptions) {
214
+ const packageAddress =
215
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
216
+ const argumentsTypes = [null] satisfies (string | null)[];
217
+ const parameterNames = ['self'];
218
+ return (tx: Transaction) =>
219
+ tx.moveCall({
220
+ package: packageAddress,
221
+ module: 'account',
222
+ function: 'referrer_account_id',
223
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
224
+ });
225
+ }
226
+ export interface ReferrerReceiveAddressArguments {
227
+ self: TransactionArgument;
228
+ }
229
+ export interface ReferrerReceiveAddressOptions {
230
+ package?: string;
231
+ arguments: ReferrerReceiveAddressArguments | [self: TransactionArgument];
232
+ config?: {
233
+ accountPackageId?: string;
234
+ };
235
+ }
236
+ /**
237
+ * Returns the referrer's accumulator receive address for external Move
238
+ * composition.
239
+ */
240
+ export function referrerReceiveAddress(options: ReferrerReceiveAddressOptions) {
241
+ const packageAddress =
242
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
243
+ const argumentsTypes = [null] satisfies (string | null)[];
244
+ const parameterNames = ['self'];
245
+ return (tx: Transaction) =>
246
+ tx.moveCall({
247
+ package: packageAddress,
248
+ module: 'account',
249
+ function: 'referrer_receive_address',
250
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
251
+ });
252
+ }
253
+ export interface ReceiveAddressArguments {
254
+ self: TransactionArgument;
255
+ }
256
+ export interface ReceiveAddressOptions {
257
+ package?: string;
258
+ arguments: ReceiveAddressArguments | [self: TransactionArgument];
259
+ config?: {
260
+ accountPackageId?: string;
261
+ };
262
+ }
263
+ /** Returns the accumulator receive address for this account (the wrapper address). */
264
+ export function receiveAddress(options: ReceiveAddressOptions) {
265
+ const packageAddress =
266
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
267
+ const argumentsTypes = [null] satisfies (string | null)[];
268
+ const parameterNames = ['self'];
269
+ return (tx: Transaction) =>
270
+ tx.moveCall({
271
+ package: packageAddress,
272
+ module: 'account',
273
+ function: 'receive_address',
274
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
275
+ });
276
+ }
277
+ export interface GenerateAuthOptions {
278
+ package?: string;
279
+ arguments?: [];
280
+ config?: {
281
+ accountPackageId?: string;
282
+ };
283
+ }
284
+ /** Creates owner authority bound to the transaction sender. */
285
+ export function generateAuth(options: GenerateAuthOptions = {}) {
286
+ const packageAddress =
287
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
288
+ return (tx: Transaction) =>
289
+ tx.moveCall({
290
+ package: packageAddress,
291
+ module: 'account',
292
+ function: 'generate_auth',
293
+ });
294
+ }
295
+ export interface GenerateAuthAsObjectArguments {
296
+ uid: RawTransactionArgument<string>;
297
+ }
298
+ export interface GenerateAuthAsObjectOptions {
299
+ package?: string;
300
+ arguments: GenerateAuthAsObjectArguments | [uid: RawTransactionArgument<string>];
301
+ config?: {
302
+ accountPackageId?: string;
303
+ };
304
+ }
305
+ /** Creates owner authority bound to an owning object's address. */
306
+ export function generateAuthAsObject(options: GenerateAuthAsObjectOptions) {
307
+ const packageAddress =
308
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
309
+ const argumentsTypes = ['0x2::object::ID'] satisfies (string | null)[];
310
+ const parameterNames = ['uid'];
311
+ return (tx: Transaction) =>
312
+ tx.moveCall({
313
+ package: packageAddress,
314
+ module: 'account',
315
+ function: 'generate_auth_as_object',
316
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
317
+ });
318
+ }
319
+ export interface ShareArguments {
320
+ self: RawTransactionArgument<string>;
321
+ }
322
+ export interface ShareOptions {
323
+ package?: string;
324
+ arguments: ShareArguments | [self: RawTransactionArgument<string>];
325
+ config?: {
326
+ accountPackageId?: string;
327
+ };
328
+ }
329
+ /** Shares a newly created account wrapper. */
330
+ export function share(options: ShareOptions) {
331
+ const packageAddress =
332
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
333
+ const argumentsTypes = [null] satisfies (string | null)[];
334
+ const parameterNames = ['self'];
335
+ return (tx: Transaction) =>
336
+ tx.moveCall({
337
+ package: packageAddress,
338
+ module: 'account',
339
+ function: 'share',
340
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
341
+ });
342
+ }
343
+ export interface LoadAccountMutArguments {
344
+ self: RawTransactionArgument<string>;
345
+ auth: TransactionArgument;
346
+ }
347
+ export interface LoadAccountMutOptions {
348
+ package?: string;
349
+ arguments:
350
+ LoadAccountMutArguments | [self: RawTransactionArgument<string>, auth: TransactionArgument];
351
+ config?: {
352
+ accountPackageId?: string;
353
+ };
354
+ }
355
+ /**
356
+ * Consumes owner or app authority and returns the account's full mutable surface.
357
+ * Owner authority must match the stored owner; app authority is package-issued
358
+ * after registry authorization and carries no owner or operation restriction.
359
+ */
360
+ export function loadAccountMut(options: LoadAccountMutOptions) {
361
+ const packageAddress =
362
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
363
+ const argumentsTypes = [null, null] satisfies (string | null)[];
364
+ const parameterNames = ['self', 'auth'];
365
+ return (tx: Transaction) =>
366
+ tx.moveCall({
367
+ package: packageAddress,
368
+ module: 'account',
369
+ function: 'load_account_mut',
370
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
371
+ });
372
+ }
373
+ export interface SettleArguments {
374
+ wrapper: RawTransactionArgument<string>;
375
+ }
376
+ export interface SettleOptions {
377
+ package?: string;
378
+ arguments: SettleArguments | [wrapper: RawTransactionArgument<string>];
379
+ config?: {
380
+ accountPackageId?: string;
381
+ };
382
+ typeArguments: [string];
383
+ }
384
+ /**
385
+ * Permissionlessly folds accumulator-delivered `T` at the wrapper address into
386
+ * stored account balance. The per-coin timestamp is latched before reading the
387
+ * accumulator, preventing duplicate withdrawal and same-timestamp double counting
388
+ * even when no funds are available. Only the wrapper UID can authenticate the
389
+ * address-balance withdrawal; value leaving the account still requires a mutable
390
+ * borrow through `Auth`.
391
+ */
392
+ export function settle(options: SettleOptions) {
393
+ const packageAddress =
394
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
395
+ const argumentsTypes = [
396
+ null,
397
+ '0x2::accumulator::AccumulatorRoot',
398
+ '0x2::clock::Clock',
399
+ ] satisfies (string | null)[];
400
+ const parameterNames = ['wrapper'];
401
+ return (tx: Transaction) =>
402
+ tx.moveCall({
403
+ package: packageAddress,
404
+ module: 'account',
405
+ function: 'settle',
406
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
407
+ typeArguments: options.typeArguments,
408
+ });
409
+ }
410
+ export interface DepositArguments {
411
+ self: TransactionArgument;
412
+ coin: RawTransactionArgument<string>;
413
+ }
414
+ export interface DepositOptions {
415
+ package?: string;
416
+ arguments: DepositArguments | [self: TransactionArgument, coin: RawTransactionArgument<string>];
417
+ config?: {
418
+ accountPackageId?: string;
419
+ };
420
+ typeArguments: [string];
421
+ }
422
+ /**
423
+ * Deposits into stored balance only; callers that include accumulator funds must
424
+ * settle through the wrapper first.
425
+ */
426
+ export function deposit(options: DepositOptions) {
427
+ const packageAddress =
428
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
429
+ const argumentsTypes = [null, null] satisfies (string | null)[];
430
+ const parameterNames = ['self', 'coin'];
431
+ return (tx: Transaction) =>
432
+ tx.moveCall({
433
+ package: packageAddress,
434
+ module: 'account',
435
+ function: 'deposit',
436
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
437
+ typeArguments: options.typeArguments,
438
+ });
439
+ }
440
+ export interface WithdrawArguments {
441
+ self: TransactionArgument;
442
+ amount: RawTransactionArgument<number | bigint>;
443
+ }
444
+ export interface WithdrawOptions {
445
+ package?: string;
446
+ arguments:
447
+ | WithdrawArguments
448
+ | [self: TransactionArgument, amount: RawTransactionArgument<number | bigint>];
449
+ config?: {
450
+ accountPackageId?: string;
451
+ };
452
+ typeArguments: [string];
453
+ }
454
+ /**
455
+ * Withdraws from stored balance only; callers that include accumulator funds must
456
+ * settle through the wrapper first.
457
+ */
458
+ export function withdraw(options: WithdrawOptions) {
459
+ const packageAddress =
460
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
461
+ const argumentsTypes = [null, 'u64'] satisfies (string | null)[];
462
+ const parameterNames = ['self', 'amount'];
463
+ return (tx: Transaction) =>
464
+ tx.moveCall({
465
+ package: packageAddress,
466
+ module: 'account',
467
+ function: 'withdraw',
468
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
469
+ typeArguments: options.typeArguments,
470
+ });
471
+ }
472
+ export interface DepositFundsArguments {
473
+ wrapper: RawTransactionArgument<string>;
474
+ auth: TransactionArgument;
475
+ coin: RawTransactionArgument<string>;
476
+ }
477
+ export interface DepositFundsOptions {
478
+ package?: string;
479
+ arguments:
480
+ | DepositFundsArguments
481
+ | [
482
+ wrapper: RawTransactionArgument<string>,
483
+ auth: TransactionArgument,
484
+ coin: RawTransactionArgument<string>,
485
+ ];
486
+ config?: {
487
+ accountPackageId?: string;
488
+ };
489
+ typeArguments: [string];
490
+ }
491
+ /**
492
+ * PTB entrypoint that settles accumulator funds, consumes authority, and deposits
493
+ * into stored balance in one call.
494
+ */
495
+ export function depositFunds(options: DepositFundsOptions) {
496
+ const packageAddress =
497
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
498
+ const argumentsTypes = [
499
+ null,
500
+ null,
501
+ null,
502
+ '0x2::accumulator::AccumulatorRoot',
503
+ '0x2::clock::Clock',
504
+ ] satisfies (string | null)[];
505
+ const parameterNames = ['wrapper', 'auth', 'coin'];
506
+ return (tx: Transaction) =>
507
+ tx.moveCall({
508
+ package: packageAddress,
509
+ module: 'account',
510
+ function: 'deposit_funds',
511
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
512
+ typeArguments: options.typeArguments,
513
+ });
514
+ }
515
+ export interface WithdrawFundsArguments {
516
+ wrapper: RawTransactionArgument<string>;
517
+ auth: TransactionArgument;
518
+ amount: RawTransactionArgument<number | bigint>;
519
+ }
520
+ export interface WithdrawFundsOptions {
521
+ package?: string;
522
+ arguments:
523
+ | WithdrawFundsArguments
524
+ | [
525
+ wrapper: RawTransactionArgument<string>,
526
+ auth: TransactionArgument,
527
+ amount: RawTransactionArgument<number | bigint>,
528
+ ];
529
+ config?: {
530
+ accountPackageId?: string;
531
+ };
532
+ typeArguments: [string];
533
+ }
534
+ /**
535
+ * PTB entrypoint that settles accumulator funds, consumes authority, and withdraws
536
+ * from stored balance in one call.
537
+ */
538
+ export function withdrawFunds(options: WithdrawFundsOptions) {
539
+ const packageAddress =
540
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
541
+ const argumentsTypes = [
542
+ null,
543
+ null,
544
+ 'u64',
545
+ '0x2::accumulator::AccumulatorRoot',
546
+ '0x2::clock::Clock',
547
+ ] satisfies (string | null)[];
548
+ const parameterNames = ['wrapper', 'auth', 'amount'];
549
+ return (tx: Transaction) =>
550
+ tx.moveCall({
551
+ package: packageAddress,
552
+ module: 'account',
553
+ function: 'withdraw_funds',
554
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
555
+ typeArguments: options.typeArguments,
556
+ });
557
+ }
558
+ export interface AttachArguments<Data extends BcsType<any>> {
559
+ self: TransactionArgument;
560
+ Permit: TransactionArgument;
561
+ data: RawTransactionArgument<Data>;
562
+ }
563
+ export interface AttachOptions<Data extends BcsType<any>> {
564
+ package?: string;
565
+ arguments:
566
+ | AttachArguments<Data>
567
+ | [self: TransactionArgument, Permit: TransactionArgument, data: RawTransactionArgument<Data>];
568
+ config?: {
569
+ accountPackageId?: string;
570
+ };
571
+ typeArguments: [string, string];
572
+ }
573
+ /**
574
+ * Attach an app's `Data` under its witness namespace. Requires `Permit<App>`.
575
+ * Aborts if `App` already has data attached.
576
+ */
577
+ export function attach<Data extends BcsType<any>>(options: AttachOptions<Data>) {
578
+ const packageAddress =
579
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
580
+ const argumentsTypes = [null, null, `${options.typeArguments[1]}`] satisfies (string | null)[];
581
+ const parameterNames = ['self', 'Permit', 'data'];
582
+ return (tx: Transaction) =>
583
+ tx.moveCall({
584
+ package: packageAddress,
585
+ module: 'account',
586
+ function: 'attach',
587
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
588
+ typeArguments: options.typeArguments,
589
+ });
590
+ }
591
+ export interface HasDataArguments {
592
+ self: TransactionArgument;
593
+ }
594
+ export interface HasDataOptions {
595
+ package?: string;
596
+ arguments: HasDataArguments | [self: TransactionArgument];
597
+ config?: {
598
+ accountPackageId?: string;
599
+ };
600
+ typeArguments: [string];
601
+ }
602
+ /** Whether `App` has data attached to this account. */
603
+ export function hasData(options: HasDataOptions) {
604
+ const packageAddress =
605
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
606
+ const argumentsTypes = [null] satisfies (string | null)[];
607
+ const parameterNames = ['self'];
608
+ return (tx: Transaction) =>
609
+ tx.moveCall({
610
+ package: packageAddress,
611
+ module: 'account',
612
+ function: 'has_data',
613
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
614
+ typeArguments: options.typeArguments,
615
+ });
616
+ }
617
+ export interface BorrowDataArguments {
618
+ self: TransactionArgument;
619
+ }
620
+ export interface BorrowDataOptions {
621
+ package?: string;
622
+ arguments: BorrowDataArguments | [self: TransactionArgument];
623
+ config?: {
624
+ accountPackageId?: string;
625
+ };
626
+ typeArguments: [string, string];
627
+ }
628
+ /**
629
+ * Borrow an app's attached `Data`. Open (no witness): the slot is namespaced by
630
+ * `App` and on-chain state is public, so composing apps can read it. Aborts if
631
+ * nothing is attached.
632
+ */
633
+ export function borrowData(options: BorrowDataOptions) {
634
+ const packageAddress =
635
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
636
+ const argumentsTypes = [null] satisfies (string | null)[];
637
+ const parameterNames = ['self'];
638
+ return (tx: Transaction) =>
639
+ tx.moveCall({
640
+ package: packageAddress,
641
+ module: 'account',
642
+ function: 'borrow_data',
643
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
644
+ typeArguments: options.typeArguments,
645
+ });
646
+ }
647
+ export interface BorrowDataMutArguments {
648
+ self: TransactionArgument;
649
+ Permit: TransactionArgument;
650
+ }
651
+ export interface BorrowDataMutOptions {
652
+ package?: string;
653
+ arguments: BorrowDataMutArguments | [self: TransactionArgument, Permit: TransactionArgument];
654
+ config?: {
655
+ accountPackageId?: string;
656
+ };
657
+ typeArguments: [string, string];
658
+ }
659
+ /**
660
+ * Mutably borrow an app's attached `Data`. Requires `Permit<App>`. Aborts if
661
+ * nothing is attached.
662
+ */
663
+ export function borrowDataMut(options: BorrowDataMutOptions) {
664
+ const packageAddress =
665
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
666
+ const argumentsTypes = [null, null] satisfies (string | null)[];
667
+ const parameterNames = ['self', 'Permit'];
668
+ return (tx: Transaction) =>
669
+ tx.moveCall({
670
+ package: packageAddress,
671
+ module: 'account',
672
+ function: 'borrow_data_mut',
673
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
674
+ typeArguments: options.typeArguments,
675
+ });
676
+ }
677
+ export interface DetachArguments {
678
+ self: TransactionArgument;
679
+ Permit: TransactionArgument;
680
+ }
681
+ export interface DetachOptions {
682
+ package?: string;
683
+ arguments: DetachArguments | [self: TransactionArgument, Permit: TransactionArgument];
684
+ config?: {
685
+ accountPackageId?: string;
686
+ };
687
+ typeArguments: [string, string];
688
+ }
689
+ /**
690
+ * Detach and return an app's `Data`. Requires `Permit<App>`. Aborts if nothing is
691
+ * attached.
692
+ */
693
+ export function detach(options: DetachOptions) {
694
+ const packageAddress =
695
+ options.package ?? options.config?.accountPackageId ?? '@local-pkg/account';
696
+ const argumentsTypes = [null, null] satisfies (string | null)[];
697
+ const parameterNames = ['self', 'Permit'];
698
+ return (tx: Transaction) =>
699
+ tx.moveCall({
700
+ package: packageAddress,
701
+ module: 'account',
702
+ function: 'detach',
703
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
704
+ typeArguments: options.typeArguments,
705
+ });
706
+ }