@mysten/deepbook-v3 1.4.1 → 1.5.1

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 CHANGED
@@ -1,5 +1,29 @@
1
1
  # @mysten/deepbook-v3
2
2
 
3
+ ## 1.5.1
4
+
5
+ ## 1.5.0
6
+
7
+ ### Minor Changes
8
+
9
+ - bbf63cb: Add `typeTag` and `resolveTypeTag` methods to the generated `MoveStruct`, `MoveEnum`, and
10
+ `MoveTuple` classes.
11
+
12
+ - `typeTag(options?)` builds the type tag string for a generated type. `typeArguments` is the full
13
+ positional list of type arguments in Move declaration order; each entry is a type tag string,
14
+ another `typeTag()` result, or a BCS type (its name is used). Types with unfilled phantom
15
+ parameters require `typeArguments` at compile time, and argument arity is validated at runtime.
16
+ - `resolveTypeTag({ client, ... })` builds the tag, resolves MVR names through
17
+ `client.core.mvr.resolveType`, and returns the normalized address-only form suitable for queries
18
+ and comparisons against on-chain data.
19
+
20
+ - bbf63cb: Updated dependencies
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies [bbf63cb]
25
+ - @mysten/bcs@2.1.0
26
+
3
27
  ## 1.4.1
4
28
 
5
29
  ### Patch Changes
package/dist/client.d.mts CHANGED
@@ -160,7 +160,7 @@ declare class DeepBookClient {
160
160
  }[] | null>;
161
161
  getLevel2Range(poolKey: string, priceLow: number | bigint, priceHigh: number | bigint, isBid: boolean): Promise<Level2Range>;
162
162
  getLevel2TicksFromMid(poolKey: string, ticks: number): Promise<Level2TicksFromMid>;
163
- getAccountOrderDetails(poolKey: string, managerKey: string): Promise<{
163
+ getAccountOrderDetails(poolKey: string, managerKey: string): Promise<[] | {
164
164
  balance_manager_id: string;
165
165
  order_id: string;
166
166
  client_order_id: string;
@@ -174,7 +174,7 @@ declare class DeepBookClient {
174
174
  epoch: string;
175
175
  status: number;
176
176
  expire_timestamp: string;
177
- }[] | []>;
177
+ }[]>;
178
178
  account(poolKey: string, managerKey: string): Promise<AccountInfo>;
179
179
  lockedBalance(poolKey: string, balanceManagerKey: string): Promise<LockedBalances>;
180
180
  getPoolDeepPrice(poolKey: string): Promise<PoolDeepPrice>;
@@ -1,35 +1,35 @@
1
1
  import { MoveStruct } from "../utils/index.mjs";
2
- import * as _mysten_sui_bcs44 from "@mysten/sui/bcs";
2
+ import * as _mysten_sui_bcs0 from "@mysten/sui/bcs";
3
3
  import { Transaction, TransactionArgument } from "@mysten/sui/transactions";
4
4
 
5
5
  //#region src/contracts/deepbook/account.d.ts
6
6
  declare const Account: MoveStruct<{
7
- epoch: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
7
+ epoch: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
8
8
  open_orders: MoveStruct<{
9
- contents: _mysten_sui_bcs44.BcsType<string[], Iterable<string | number | bigint> & {
9
+ contents: _mysten_sui_bcs0.BcsType<string[], Iterable<string | number | bigint> & {
10
10
  length: number;
11
11
  }, string>;
12
12
  }, "0x2::vec_set::VecSet<u128>">;
13
- taker_volume: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u128">;
14
- maker_volume: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u128">;
15
- active_stake: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
16
- inactive_stake: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
17
- created_proposal: _mysten_sui_bcs44.BcsType<boolean, boolean, "bool">;
18
- voted_proposal: _mysten_sui_bcs44.BcsType<string | null, string | Uint8Array<ArrayBufferLike> | null | undefined, "Option<bytes[32]>">;
13
+ taker_volume: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u128">;
14
+ maker_volume: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u128">;
15
+ active_stake: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
16
+ inactive_stake: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
17
+ created_proposal: _mysten_sui_bcs0.BcsType<boolean, boolean, "bool">;
18
+ voted_proposal: _mysten_sui_bcs0.BcsType<string | null, string | Uint8Array<ArrayBufferLike> | null | undefined, "Option<bytes[32]>">;
19
19
  unclaimed_rebates: MoveStruct<{
20
- base: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
21
- quote: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
22
- deep: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
20
+ base: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
21
+ quote: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
22
+ deep: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
23
23
  }, "@deepbook/core::balances::Balances">;
24
24
  settled_balances: MoveStruct<{
25
- base: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
26
- quote: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
27
- deep: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
25
+ base: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
26
+ quote: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
27
+ deep: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
28
28
  }, "@deepbook/core::balances::Balances">;
29
29
  owed_balances: MoveStruct<{
30
- base: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
31
- quote: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
32
- deep: _mysten_sui_bcs44.BcsType<string, string | number | bigint, "u64">;
30
+ base: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
31
+ quote: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
32
+ deep: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
33
33
  }, "@deepbook/core::balances::Balances">;
34
34
  }, "@deepbook/core::account::Account">;
35
35
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.mts","names":[],"sources":["../../../src/contracts/deepbook/account.ts"],"mappings":";;;;;cAYa,OAAA,EAAO,UAAA;SAelB,iBAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"account.d.mts","names":[],"sources":["../../../src/contracts/deepbook/account.ts"],"mappings":";;;;;cAYa,OAAA,EAAO,UAAA;SAelB,gBAAA,CAAA,OAAA"}
@@ -1,11 +1,11 @@
1
1
  import { MoveStruct } from "../utils/index.mjs";
2
- import * as _mysten_sui_bcs61 from "@mysten/sui/bcs";
2
+ import * as _mysten_sui_bcs16 from "@mysten/sui/bcs";
3
3
 
4
4
  //#region src/contracts/deepbook/balances.d.ts
5
5
  declare const Balances: MoveStruct<{
6
- base: _mysten_sui_bcs61.BcsType<string, string | number | bigint, "u64">;
7
- quote: _mysten_sui_bcs61.BcsType<string, string | number | bigint, "u64">;
8
- deep: _mysten_sui_bcs61.BcsType<string, string | number | bigint, "u64">;
6
+ base: _mysten_sui_bcs16.BcsType<string, string | number | bigint, "u64">;
7
+ quote: _mysten_sui_bcs16.BcsType<string, string | number | bigint, "u64">;
8
+ deep: _mysten_sui_bcs16.BcsType<string, string | number | bigint, "u64">;
9
9
  }, "@deepbook/core::balances::Balances">;
10
10
  //#endregion
11
11
  export { Balances };
@@ -1,11 +1,11 @@
1
1
  import { MoveStruct } from "../utils/index.mjs";
2
- import * as _mysten_sui_bcs0 from "@mysten/sui/bcs";
2
+ import * as _mysten_sui_bcs19 from "@mysten/sui/bcs";
3
3
  import { Transaction, TransactionArgument } from "@mysten/sui/transactions";
4
4
 
5
5
  //#region src/contracts/deepbook/deep_price.d.ts
6
6
  declare const OrderDeepPrice: MoveStruct<{
7
- asset_is_base: _mysten_sui_bcs0.BcsType<boolean, boolean, "bool">;
8
- deep_per_asset: _mysten_sui_bcs0.BcsType<string, string | number | bigint, "u64">;
7
+ asset_is_base: _mysten_sui_bcs19.BcsType<boolean, boolean, "bool">;
8
+ deep_per_asset: _mysten_sui_bcs19.BcsType<string, string | number | bigint, "u64">;
9
9
  }, "@deepbook/core::deep_price::OrderDeepPrice">;
10
10
  //#endregion
11
11
  export { OrderDeepPrice };
@@ -1 +1 @@
1
- {"version":3,"file":"deep_price.d.mts","names":[],"sources":["../../../src/contracts/deepbook/deep_price.ts"],"mappings":";;;;;cAuCa,cAAA,EAAc,UAAA;iBAMzB,gBAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"deep_price.d.mts","names":[],"sources":["../../../src/contracts/deepbook/deep_price.ts"],"mappings":";;;;;cAuCa,cAAA,EAAc,UAAA;iBAMzB,iBAAA,CAAA,OAAA"}
@@ -1,22 +1,22 @@
1
1
  import { MoveStruct } from "../utils/index.mjs";
2
- import * as _mysten_sui_bcs12 from "@mysten/sui/bcs";
2
+ import * as _mysten_sui_bcs32 from "@mysten/sui/bcs";
3
3
  import { Transaction, TransactionArgument } from "@mysten/sui/transactions";
4
4
 
5
5
  //#region src/contracts/deepbook/order.d.ts
6
6
  declare const Order: MoveStruct<{
7
- balance_manager_id: _mysten_sui_bcs12.BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
8
- order_id: _mysten_sui_bcs12.BcsType<string, string | number | bigint, "u128">;
9
- client_order_id: _mysten_sui_bcs12.BcsType<string, string | number | bigint, "u64">;
10
- quantity: _mysten_sui_bcs12.BcsType<string, string | number | bigint, "u64">;
11
- filled_quantity: _mysten_sui_bcs12.BcsType<string, string | number | bigint, "u64">;
12
- fee_is_deep: _mysten_sui_bcs12.BcsType<boolean, boolean, "bool">;
7
+ balance_manager_id: _mysten_sui_bcs32.BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
8
+ order_id: _mysten_sui_bcs32.BcsType<string, string | number | bigint, "u128">;
9
+ client_order_id: _mysten_sui_bcs32.BcsType<string, string | number | bigint, "u64">;
10
+ quantity: _mysten_sui_bcs32.BcsType<string, string | number | bigint, "u64">;
11
+ filled_quantity: _mysten_sui_bcs32.BcsType<string, string | number | bigint, "u64">;
12
+ fee_is_deep: _mysten_sui_bcs32.BcsType<boolean, boolean, "bool">;
13
13
  order_deep_price: MoveStruct<{
14
- asset_is_base: _mysten_sui_bcs12.BcsType<boolean, boolean, "bool">;
15
- deep_per_asset: _mysten_sui_bcs12.BcsType<string, string | number | bigint, "u64">;
14
+ asset_is_base: _mysten_sui_bcs32.BcsType<boolean, boolean, "bool">;
15
+ deep_per_asset: _mysten_sui_bcs32.BcsType<string, string | number | bigint, "u64">;
16
16
  }, "@deepbook/core::deep_price::OrderDeepPrice">;
17
- epoch: _mysten_sui_bcs12.BcsType<string, string | number | bigint, "u64">;
18
- status: _mysten_sui_bcs12.BcsType<number, number, "u8">;
19
- expire_timestamp: _mysten_sui_bcs12.BcsType<string, string | number | bigint, "u64">;
17
+ epoch: _mysten_sui_bcs32.BcsType<string, string | number | bigint, "u64">;
18
+ status: _mysten_sui_bcs32.BcsType<number, number, "u8">;
19
+ expire_timestamp: _mysten_sui_bcs32.BcsType<string, string | number | bigint, "u64">;
20
20
  }, "@deepbook/core::order::Order">;
21
21
  //#endregion
22
22
  export { Order };
@@ -9,7 +9,42 @@ type GetOptions<Include extends Omit<SuiClientTypes.ObjectInclude, 'content'> =
9
9
  type GetManyOptions<Include extends Omit<SuiClientTypes.ObjectInclude, 'content'> = {}> = SuiClientTypes.GetObjectsOptions<Include> & {
10
10
  client: ClientWithCoreApi;
11
11
  };
12
+ /** A type argument: a type tag string, or a BCS type whose name is a Move type. */
13
+ type TypeArgument = string | BcsType<any>;
14
+ interface TypeTagOptions {
15
+ package?: string;
16
+ typeArguments?: readonly TypeArgument[];
17
+ }
18
+ /**
19
+ * `typeArguments` is required when the type's name contains unfilled
20
+ * `phantom X` parameters (at any depth). Everything else — argument arity,
21
+ * position contents, and tag validity — is validated at runtime.
22
+ */
23
+ type TypeTagParams<Name extends string> = Name extends `${string}phantom ${string}` ? [options: TypeTagOptions & {
24
+ typeArguments: readonly TypeArgument[];
25
+ }] : [options?: TypeTagOptions];
26
+ type ResolveTypeTagOptions<Name extends string> = {
27
+ client: ClientWithCoreApi;
28
+ } & (Name extends `${string}phantom ${string}` ? TypeTagOptions & {
29
+ typeArguments: readonly TypeArgument[];
30
+ } : TypeTagOptions);
12
31
  declare class MoveStruct<T extends Record<string, BcsType<any>>, const Name extends string = string> extends BcsStruct<T, Name> {
32
+ /**
33
+ * Build the type tag for this struct.
34
+ *
35
+ * `typeArguments` is the full positional list, in Move declaration order, and
36
+ * is required when the struct has unfilled phantom parameters. The result may
37
+ * contain MVR names: those are valid in transaction `typeArguments`, but for
38
+ * queries or comparisons against on-chain data use `resolveTypeTag` instead.
39
+ */
40
+ typeTag(...args: TypeTagParams<Name>): string;
41
+ /**
42
+ * Build the type tag for this struct, then resolve any MVR names through the
43
+ * client (using its configured overrides and the MVR API) and return the
44
+ * normalized, address-only form suitable for queries and comparisons against
45
+ * on-chain data.
46
+ */
47
+ resolveTypeTag(options: ResolveTypeTagOptions<Name>): Promise<string>;
13
48
  get<Include extends Omit<SuiClientTypes.ObjectInclude, 'content' | 'json'> = {}>({
14
49
  objectId,
15
50
  ...options
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/contracts/utils/index.ts"],"mappings":";;;;;KAkBY,UAAA,iBAA2B,IAAA,CAAK,cAAA,CAAe,aAAA,qBAC1D,cAAA,CAAe,gBAAA,CAAiB,OAAA;EAAa,MAAA,EAAQ,iBAAA;AAAA;AAAA,KAE1C,cAAA,iBAA+B,IAAA,CAAK,cAAA,CAAe,aAAA,qBAC9D,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAAa,MAAA,EAAQ,iBAAA;AAAA;AAAA,cAyI1C,UAAA,WACF,MAAA,SAAe,OAAA,oDAEhB,SAAA,CAAU,CAAA,EAAG,IAAA;EAChB,GAAA,iBAAoB,IAAA,CAAK,cAAA,CAAe,aAAA,2BAAA,CAAA;IAC7C,QAAA;IAAA,GACG;EAAA,GACD,UAAA,CAAW,OAAA,IAAW,OAAA,CACxB,cAAA,CAAe,MAAA,CAAO,OAAA;IAAY,OAAA;IAAe,IAAA;EAAA;IAChD,IAAA,EAAM,SAAA,CAAU,CAAA;EAAA;EAeZ,OAAA,iBAAwB,IAAA,CAAK,cAAA,CAAe,aAAA,2BAAA,CAAA;IACjD,MAAA;IAAA,GACG;EAAA,GACD,cAAA,CAAe,OAAA,IAAW,OAAA,CAC5B,KAAA,CACC,cAAA,CAAe,MAAA,CAAO,OAAA;IAAY,OAAA;IAAe,IAAA;EAAA;IAChD,IAAA,EAAM,SAAA,CAAU,CAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/contracts/utils/index.ts"],"mappings":";;;;;KAkBY,UAAA,iBAA2B,IAAA,CAAK,cAAA,CAAe,aAAA,qBAC1D,cAAA,CAAe,gBAAA,CAAiB,OAAA;EAAa,MAAA,EAAQ,iBAAA;AAAA;AAAA,KAE1C,cAAA,iBAA+B,IAAA,CAAK,cAAA,CAAe,aAAA,qBAC9D,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAAa,MAAA,EAAQ,iBAAA;AAAA;;KA4I3C,YAAA,YAAwB,OAAA;AAAA,UAEnB,cAAA;EAChB,OAAA;EACA,aAAA,YAAyB,YAAA;AAAA;;;;;;KAQrB,aAAA,wBAAqC,IAAA,yCACtC,OAAA,EAAS,cAAA;EAAmB,aAAA,WAAwB,YAAA;AAAA,MACpD,OAAA,GAAU,cAAA;AAAA,KAET,qBAAA;EACJ,MAAA,EAAQ,iBAAA;AAAA,KACJ,IAAA,wCACF,cAAA;EAAmB,aAAA,WAAwB,YAAA;AAAA,IAC3C,cAAA;AAAA,cAqFU,UAAA,WACF,MAAA,SAAe,OAAA,oDAEhB,SAAA,CAAU,CAAA,EAAG,IAAA;EAxPtB;;;;;;;;EAiQA,OAAA,CAAA,GAAW,IAAA,EAAM,aAAA,CAAc,IAAA;EAjQhB;;;;;;EA2QT,cAAA,CAAe,OAAA,EAAS,qBAAA,CAAsB,IAAA,IAAQ,OAAA;EAOtD,GAAA,iBAAoB,IAAA,CAAK,cAAA,CAAe,aAAA,2BAAA,CAAA;IAC7C,QAAA;IAAA,GACG;EAAA,GACD,UAAA,CAAW,OAAA,IAAW,OAAA,CACxB,cAAA,CAAe,MAAA,CAAO,OAAA;IAAY,OAAA;IAAe,IAAA;EAAA;IAChD,IAAA,EAAM,SAAA,CAAU,CAAA;EAAA;EAeZ,OAAA,iBAAwB,IAAA,CAAK,cAAA,CAAe,aAAA,2BAAA,CAAA;IACjD,MAAA;IAAA,GACG;EAAA,GACD,cAAA,CAAe,OAAA,IAAW,OAAA,CAC5B,KAAA,CACC,cAAA,CAAe,MAAA,CAAO,OAAA;IAAY,OAAA;IAAe,IAAA;EAAA;IAChD,IAAA,EAAM,SAAA,CAAU,CAAA;EAAA;AAAA"}
@@ -1,11 +1,77 @@
1
- import { BcsStruct, bcs } from "@mysten/sui/bcs";
1
+ import { BcsStruct, TypeTagSerializer, bcs } from "@mysten/sui/bcs";
2
2
  import "@mysten/sui/transactions";
3
- import { normalizeSuiAddress } from "@mysten/sui/utils";
3
+ import { normalizeStructTag, normalizeSuiAddress } from "@mysten/sui/utils";
4
4
 
5
5
  //#region src/contracts/utils/index.ts
6
6
  const MOVE_STDLIB_ADDRESS = normalizeSuiAddress("0x1");
7
7
  const SUI_FRAMEWORK_ADDRESS = normalizeSuiAddress("0x2");
8
+ const HAS_PHANTOM_REGEX = /phantom [A-Za-z_$][A-Za-z0-9_$]*/;
9
+ function splitTopLevelTypeArgs(inner) {
10
+ const parts = [];
11
+ let depth = 0;
12
+ let current = "";
13
+ for (const char of inner) {
14
+ if (char === "," && depth === 0) {
15
+ parts.push(current.trim());
16
+ current = "";
17
+ continue;
18
+ }
19
+ if (char === "<") depth++;
20
+ if (char === ">") depth--;
21
+ current += char;
22
+ }
23
+ if (current) parts.push(current.trim());
24
+ return parts;
25
+ }
26
+ function buildTypeTag(name, options) {
27
+ const lt = name.indexOf("<");
28
+ const base = lt === -1 ? name : name.slice(0, lt);
29
+ if (base.split("::").length !== 3) throw new Error(`${name} is not a top-level Move type`);
30
+ let result = name;
31
+ if (options?.typeArguments) {
32
+ const baked = lt === -1 ? [] : splitTopLevelTypeArgs(name.slice(lt + 1, -1));
33
+ const supplied = options.typeArguments.map((arg) => {
34
+ if (typeof arg === "string") return arg;
35
+ if (arg && typeof arg.serialize === "function" && typeof arg.name === "string") return arg.name;
36
+ throw new Error(`Invalid type argument ${stringify(arg)}`);
37
+ });
38
+ if (supplied.length !== baked.length) throw new Error(`Expected ${baked.length} type arguments for ${base}, got ${supplied.length}`);
39
+ result = supplied.length === 0 ? base : `${base}<${supplied.join(", ")}>`;
40
+ }
41
+ if (HAS_PHANTOM_REGEX.test(result)) throw new Error(options?.typeArguments ? `A type argument contains an unfilled phantom parameter in ${result}` : `Missing type arguments for ${result}`);
42
+ if (options?.package) {
43
+ const [, ...rest] = result.split("::");
44
+ result = [options.package, ...rest].join("::");
45
+ }
46
+ if (!HAS_PHANTOM_REGEX.test(result) && !/[@/]/.test(result)) TypeTagSerializer.parseFromStr(result);
47
+ return result;
48
+ }
49
+ async function resolveBuiltTypeTag(name, options) {
50
+ const { client, ...rest } = options;
51
+ const { type } = await client.core.mvr.resolveType({ type: buildTypeTag(name, rest) });
52
+ return normalizeStructTag(type);
53
+ }
8
54
  var MoveStruct = class extends BcsStruct {
55
+ /**
56
+ * Build the type tag for this struct.
57
+ *
58
+ * `typeArguments` is the full positional list, in Move declaration order, and
59
+ * is required when the struct has unfilled phantom parameters. The result may
60
+ * contain MVR names: those are valid in transaction `typeArguments`, but for
61
+ * queries or comparisons against on-chain data use `resolveTypeTag` instead.
62
+ */
63
+ typeTag(...args) {
64
+ return buildTypeTag(this.name, args[0]);
65
+ }
66
+ /**
67
+ * Build the type tag for this struct, then resolve any MVR names through the
68
+ * client (using its configured overrides and the MVR API) and return the
69
+ * normalized, address-only form suitable for queries and comparisons against
70
+ * on-chain data.
71
+ */
72
+ async resolveTypeTag(options) {
73
+ return resolveBuiltTypeTag(this.name, options);
74
+ }
9
75
  async get({ objectId, ...options }) {
10
76
  const [res] = await this.getMany({
11
77
  ...options,
@@ -30,6 +96,11 @@ var MoveStruct = class extends BcsStruct {
30
96
  });
31
97
  }
32
98
  };
99
+ function stringify(val) {
100
+ if (typeof val === "object") return JSON.stringify(val, (_key, value) => typeof value === "bigint" ? value.toString() : value);
101
+ if (typeof val === "bigint") return val.toString();
102
+ return val;
103
+ }
33
104
 
34
105
  //#endregion
35
106
  export { MoveStruct };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/contracts/utils/index.ts"],"sourcesContent":["import {\n\tbcs,\n\ttype BcsType,\n\ttype TypeTag,\n\tTypeTagSerializer,\n\tBcsStruct,\n\tBcsEnum,\n\tBcsTuple,\n} from '@mysten/sui/bcs';\nimport { normalizeSuiAddress } from '@mysten/sui/utils';\nimport { type TransactionArgument, isArgument } from '@mysten/sui/transactions';\nimport { type ClientWithCoreApi, type SuiClientTypes } from '@mysten/sui/client';\n\nconst MOVE_STDLIB_ADDRESS = normalizeSuiAddress('0x1');\nconst SUI_FRAMEWORK_ADDRESS = normalizeSuiAddress('0x2');\n\nexport type RawTransactionArgument<T> = T | TransactionArgument;\n\nexport type GetOptions<Include extends Omit<SuiClientTypes.ObjectInclude, 'content'> = {}> =\n\tSuiClientTypes.GetObjectOptions<Include> & { client: ClientWithCoreApi };\n\nexport type GetManyOptions<Include extends Omit<SuiClientTypes.ObjectInclude, 'content'> = {}> =\n\tSuiClientTypes.GetObjectsOptions<Include> & { client: ClientWithCoreApi };\n\nexport function getPureBcsSchema(typeTag: string | TypeTag): BcsType<any> | null {\n\tconst parsedTag = typeof typeTag === 'string' ? TypeTagSerializer.parseFromStr(typeTag) : typeTag;\n\n\tif ('u8' in parsedTag) {\n\t\treturn bcs.U8;\n\t} else if ('u16' in parsedTag) {\n\t\treturn bcs.U16;\n\t} else if ('u32' in parsedTag) {\n\t\treturn bcs.U32;\n\t} else if ('u64' in parsedTag) {\n\t\treturn bcs.U64;\n\t} else if ('u128' in parsedTag) {\n\t\treturn bcs.U128;\n\t} else if ('u256' in parsedTag) {\n\t\treturn bcs.U256;\n\t} else if ('address' in parsedTag) {\n\t\treturn bcs.Address;\n\t} else if ('bool' in parsedTag) {\n\t\treturn bcs.Bool;\n\t} else if ('vector' in parsedTag) {\n\t\tconst type = getPureBcsSchema(parsedTag.vector);\n\t\treturn type ? bcs.vector(type) : null;\n\t} else if ('struct' in parsedTag) {\n\t\tconst structTag = parsedTag.struct;\n\t\tconst pkg = normalizeSuiAddress(structTag.address);\n\n\t\tif (pkg === MOVE_STDLIB_ADDRESS) {\n\t\t\tif (\n\t\t\t\t(structTag.module === 'ascii' || structTag.module === 'string') &&\n\t\t\t\tstructTag.name === 'String'\n\t\t\t) {\n\t\t\t\treturn bcs.String;\n\t\t\t}\n\n\t\t\tif (structTag.module === 'option' && structTag.name === 'Option') {\n\t\t\t\tconst inner = structTag.typeParams[0];\n\t\t\t\tconst type = inner ? getPureBcsSchema(inner) : null;\n\t\t\t\treturn type ? bcs.option(type) : null;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tpkg === SUI_FRAMEWORK_ADDRESS &&\n\t\t\tstructTag.module === 'object' &&\n\t\t\t(structTag.name === 'ID' || structTag.name === 'UID')\n\t\t) {\n\t\t\treturn bcs.Address;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function normalizeMoveArguments(\n\targs: unknown[] | object,\n\targTypes: readonly (string | null)[],\n\tparameterNames?: string[],\n) {\n\tconst argLen = Array.isArray(args) ? args.length : Object.keys(args).length;\n\tif (parameterNames && argLen !== parameterNames.length) {\n\t\tthrow new Error(\n\t\t\t`Invalid number of arguments, expected ${parameterNames.length}, got ${argLen}`,\n\t\t);\n\t}\n\n\tconst normalizedArgs: TransactionArgument[] = [];\n\n\tlet index = 0;\n\tfor (const argType of argTypes) {\n\t\tif (argType === '0x2::clock::Clock') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.clock());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x2::random::Random') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.random());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x2::deny_list::DenyList') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.denyList());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x3::sui_system::SuiSystemState') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.system());\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet arg;\n\t\tif (Array.isArray(args)) {\n\t\t\tif (index >= args.length) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid number of arguments, expected at least ${index + 1}, got ${args.length}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\targ = args[index];\n\t\t} else {\n\t\t\tif (!parameterNames) {\n\t\t\t\tthrow new Error(`Expected arguments to be passed as an array`);\n\t\t\t}\n\t\t\tconst name = parameterNames[index];\n\t\t\targ = args[name as keyof typeof args];\n\n\t\t\tif (arg === undefined) {\n\t\t\t\tthrow new Error(`Parameter ${name} is required`);\n\t\t\t}\n\t\t}\n\n\t\tindex += 1;\n\n\t\tif (typeof arg === 'function' || isArgument(arg)) {\n\t\t\tnormalizedArgs.push(arg as TransactionArgument);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst bcsType = argType === null ? null : getPureBcsSchema(argType);\n\n\t\tif (bcsType) {\n\t\t\tconst bytes = bcsType.serialize(arg as never);\n\t\t\tnormalizedArgs.push((tx) => tx.pure(bytes));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof arg === 'string') {\n\t\t\tnormalizedArgs.push((tx) => tx.object(arg));\n\t\t\tcontinue;\n\t\t}\n\n\t\tthrow new Error(`Invalid argument ${stringify(arg)} for type ${argType}`);\n\t}\n\n\treturn normalizedArgs;\n}\n\nexport class MoveStruct<\n\tT extends Record<string, BcsType<any>>,\n\tconst Name extends string = string,\n> extends BcsStruct<T, Name> {\n\tasync get<Include extends Omit<SuiClientTypes.ObjectInclude, 'content' | 'json'> = {}>({\n\t\tobjectId,\n\t\t...options\n\t}: GetOptions<Include>): Promise<\n\t\tSuiClientTypes.Object<Include & { content: true; json: true }> & {\n\t\t\tjson: BcsStruct<T>['$inferType'];\n\t\t}\n\t> {\n\t\tconst [res] = await this.getMany<Include>({\n\t\t\t...options,\n\t\t\tobjectIds: [objectId],\n\t\t});\n\n\t\tif (!res) {\n\t\t\tthrow new Error(`No object found for id ${objectId}`);\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tasync getMany<Include extends Omit<SuiClientTypes.ObjectInclude, 'content' | 'json'> = {}>({\n\t\tclient,\n\t\t...options\n\t}: GetManyOptions<Include>): Promise<\n\t\tArray<\n\t\t\tSuiClientTypes.Object<Include & { content: true; json: true }> & {\n\t\t\t\tjson: BcsStruct<T>['$inferType'];\n\t\t\t}\n\t\t>\n\t> {\n\t\tconst response = (await client.core.getObjects({\n\t\t\t...options,\n\t\t\tinclude: {\n\t\t\t\t...options.include,\n\t\t\t\tcontent: true,\n\t\t\t},\n\t\t})) as SuiClientTypes.GetObjectsResponse<Include & { content: true }>;\n\n\t\treturn response.objects.map((obj) => {\n\t\t\tif (obj instanceof Error) {\n\t\t\t\tthrow obj;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...obj,\n\t\t\t\tjson: this.parse(obj.content),\n\t\t\t};\n\t\t});\n\t}\n}\n\nexport class MoveEnum<\n\tT extends Record<string, BcsType<any> | null>,\n\tconst Name extends string,\n> extends BcsEnum<T, Name> {}\n\nexport class MoveTuple<\n\tconst T extends readonly BcsType<any>[],\n\tconst Name extends string,\n> extends BcsTuple<T, Name> {}\n\nfunction stringify(val: unknown) {\n\tif (typeof val === 'object') {\n\t\treturn JSON.stringify(val, (val: unknown) => val);\n\t}\n\tif (typeof val === 'bigint') {\n\t\treturn val.toString();\n\t}\n\n\treturn val;\n}\n"],"mappings":";;;;;AAaA,MAAM,sBAAsB,oBAAoB,MAAM;AACtD,MAAM,wBAAwB,oBAAoB,MAAM;AAiJxD,IAAa,aAAb,cAGU,UAAmB;CAC5B,MAAM,IAAiF,EACtF,UACA,GAAG,WAKF;EACD,MAAM,CAAC,OAAO,MAAM,KAAK,QAAiB;GACzC,GAAG;GACH,WAAW,CAAC,SAAS;GACrB,CAAC;AAEF,MAAI,CAAC,IACJ,OAAM,IAAI,MAAM,0BAA0B,WAAW;AAGtD,SAAO;;CAGR,MAAM,QAAqF,EAC1F,QACA,GAAG,WAOF;AASD,UARkB,MAAM,OAAO,KAAK,WAAW;GAC9C,GAAG;GACH,SAAS;IACR,GAAG,QAAQ;IACX,SAAS;IACT;GACD,CAAC,EAEc,QAAQ,KAAK,QAAQ;AACpC,OAAI,eAAe,MAClB,OAAM;AAGP,UAAO;IACN,GAAG;IACH,MAAM,KAAK,MAAM,IAAI,QAAQ;IAC7B;IACA"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/contracts/utils/index.ts"],"sourcesContent":["import {\n\tbcs,\n\ttype BcsType,\n\ttype TypeTag,\n\tTypeTagSerializer,\n\tBcsStruct,\n\tBcsEnum,\n\tBcsTuple,\n} from '@mysten/sui/bcs';\nimport { normalizeStructTag, normalizeSuiAddress } from '@mysten/sui/utils';\nimport { type TransactionArgument, isArgument } from '@mysten/sui/transactions';\nimport { type ClientWithCoreApi, type SuiClientTypes } from '@mysten/sui/client';\n\nconst MOVE_STDLIB_ADDRESS = normalizeSuiAddress('0x1');\nconst SUI_FRAMEWORK_ADDRESS = normalizeSuiAddress('0x2');\n\nexport type RawTransactionArgument<T> = T | TransactionArgument;\n\nexport type GetOptions<Include extends Omit<SuiClientTypes.ObjectInclude, 'content'> = {}> =\n\tSuiClientTypes.GetObjectOptions<Include> & { client: ClientWithCoreApi };\n\nexport type GetManyOptions<Include extends Omit<SuiClientTypes.ObjectInclude, 'content'> = {}> =\n\tSuiClientTypes.GetObjectsOptions<Include> & { client: ClientWithCoreApi };\n\nexport function getPureBcsSchema(typeTag: string | TypeTag): BcsType<any> | null {\n\tconst parsedTag = typeof typeTag === 'string' ? TypeTagSerializer.parseFromStr(typeTag) : typeTag;\n\n\tif ('u8' in parsedTag) {\n\t\treturn bcs.U8;\n\t} else if ('u16' in parsedTag) {\n\t\treturn bcs.U16;\n\t} else if ('u32' in parsedTag) {\n\t\treturn bcs.U32;\n\t} else if ('u64' in parsedTag) {\n\t\treturn bcs.U64;\n\t} else if ('u128' in parsedTag) {\n\t\treturn bcs.U128;\n\t} else if ('u256' in parsedTag) {\n\t\treturn bcs.U256;\n\t} else if ('address' in parsedTag) {\n\t\treturn bcs.Address;\n\t} else if ('bool' in parsedTag) {\n\t\treturn bcs.Bool;\n\t} else if ('vector' in parsedTag) {\n\t\tconst type = getPureBcsSchema(parsedTag.vector);\n\t\treturn type ? bcs.vector(type) : null;\n\t} else if ('struct' in parsedTag) {\n\t\tconst structTag = parsedTag.struct;\n\t\tconst pkg = normalizeSuiAddress(structTag.address);\n\n\t\tif (pkg === MOVE_STDLIB_ADDRESS) {\n\t\t\tif (\n\t\t\t\t(structTag.module === 'ascii' || structTag.module === 'string') &&\n\t\t\t\tstructTag.name === 'String'\n\t\t\t) {\n\t\t\t\treturn bcs.String;\n\t\t\t}\n\n\t\t\tif (structTag.module === 'option' && structTag.name === 'Option') {\n\t\t\t\tconst inner = structTag.typeParams[0];\n\t\t\t\tconst type = inner ? getPureBcsSchema(inner) : null;\n\t\t\t\treturn type ? bcs.option(type) : null;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tpkg === SUI_FRAMEWORK_ADDRESS &&\n\t\t\tstructTag.module === 'object' &&\n\t\t\t(structTag.name === 'ID' || structTag.name === 'UID')\n\t\t) {\n\t\t\treturn bcs.Address;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function normalizeMoveArguments(\n\targs: unknown[] | object,\n\targTypes: readonly (string | null)[],\n\tparameterNames?: string[],\n) {\n\tconst argLen = Array.isArray(args) ? args.length : Object.keys(args).length;\n\tif (parameterNames && argLen !== parameterNames.length) {\n\t\tthrow new Error(\n\t\t\t`Invalid number of arguments, expected ${parameterNames.length}, got ${argLen}`,\n\t\t);\n\t}\n\n\tconst normalizedArgs: TransactionArgument[] = [];\n\n\tlet index = 0;\n\tfor (const argType of argTypes) {\n\t\tif (argType === '0x2::clock::Clock') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.clock());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x2::random::Random') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.random());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x2::deny_list::DenyList') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.denyList());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x3::sui_system::SuiSystemState') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.system());\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet arg;\n\t\tif (Array.isArray(args)) {\n\t\t\tif (index >= args.length) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid number of arguments, expected at least ${index + 1}, got ${args.length}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\targ = args[index];\n\t\t} else {\n\t\t\tif (!parameterNames) {\n\t\t\t\tthrow new Error(`Expected arguments to be passed as an array`);\n\t\t\t}\n\t\t\tconst name = parameterNames[index];\n\t\t\targ = args[name as keyof typeof args];\n\n\t\t\tif (arg === undefined) {\n\t\t\t\tthrow new Error(`Parameter ${name} is required`);\n\t\t\t}\n\t\t}\n\n\t\tindex += 1;\n\n\t\tif (typeof arg === 'function' || isArgument(arg)) {\n\t\t\tnormalizedArgs.push(arg as TransactionArgument);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst bcsType = argType === null ? null : getPureBcsSchema(argType);\n\n\t\tif (bcsType) {\n\t\t\tconst bytes = bcsType.serialize(arg as never);\n\t\t\tnormalizedArgs.push((tx) => tx.pure(bytes));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof arg === 'string') {\n\t\t\tnormalizedArgs.push((tx) => tx.object(arg));\n\t\t\tcontinue;\n\t\t}\n\n\t\tthrow new Error(`Invalid argument ${stringify(arg)} for type ${argType}`);\n\t}\n\n\treturn normalizedArgs;\n}\n\n/* -------------------------- Move type tags -------------------------- */\n\n/** A type argument: a type tag string, or a BCS type whose name is a Move type. */\nexport type TypeArgument = string | BcsType<any>;\n\nexport interface TypeTagOptions {\n\tpackage?: string;\n\ttypeArguments?: readonly TypeArgument[];\n}\n\n/**\n * `typeArguments` is required when the type's name contains unfilled\n * `phantom X` parameters (at any depth). Everything else — argument arity,\n * position contents, and tag validity — is validated at runtime.\n */\ntype TypeTagParams<Name extends string> = Name extends `${string}phantom ${string}`\n\t? [options: TypeTagOptions & { typeArguments: readonly TypeArgument[] }]\n\t: [options?: TypeTagOptions];\n\ntype ResolveTypeTagOptions<Name extends string> = {\n\tclient: ClientWithCoreApi;\n} & (Name extends `${string}phantom ${string}`\n\t? TypeTagOptions & { typeArguments: readonly TypeArgument[] }\n\t: TypeTagOptions);\n\nconst HAS_PHANTOM_REGEX = /phantom [A-Za-z_$][A-Za-z0-9_$]*/;\n\nfunction splitTopLevelTypeArgs(inner: string): string[] {\n\tconst parts: string[] = [];\n\tlet depth = 0;\n\tlet current = '';\n\tfor (const char of inner) {\n\t\tif (char === ',' && depth === 0) {\n\t\t\tparts.push(current.trim());\n\t\t\tcurrent = '';\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === '<') depth++;\n\t\tif (char === '>') depth--;\n\t\tcurrent += char;\n\t}\n\tif (current) parts.push(current.trim());\n\treturn parts;\n}\n\nfunction buildTypeTag(name: string, options: TypeTagOptions | undefined): string {\n\tconst lt = name.indexOf('<');\n\tconst base = lt === -1 ? name : name.slice(0, lt);\n\n\tif (base.split('::').length !== 3) {\n\t\tthrow new Error(`${name} is not a top-level Move type`);\n\t}\n\n\tlet result = name;\n\n\tif (options?.typeArguments) {\n\t\tconst baked = lt === -1 ? [] : splitTopLevelTypeArgs(name.slice(lt + 1, -1));\n\t\tconst supplied = options.typeArguments.map((arg) => {\n\t\t\tif (typeof arg === 'string') {\n\t\t\t\treturn arg;\n\t\t\t}\n\t\t\tif (arg && typeof arg.serialize === 'function' && typeof arg.name === 'string') {\n\t\t\t\treturn arg.name;\n\t\t\t}\n\t\t\tthrow new Error(`Invalid type argument ${stringify(arg)}`);\n\t\t});\n\n\t\tif (supplied.length !== baked.length) {\n\t\t\tthrow new Error(\n\t\t\t\t`Expected ${baked.length} type arguments for ${base}, got ${supplied.length}`,\n\t\t\t);\n\t\t}\n\n\t\tresult = supplied.length === 0 ? base : `${base}<${supplied.join(', ')}>`;\n\t}\n\n\tif (HAS_PHANTOM_REGEX.test(result)) {\n\t\tthrow new Error(\n\t\t\toptions?.typeArguments\n\t\t\t\t? `A type argument contains an unfilled phantom parameter in ${result}`\n\t\t\t\t: `Missing type arguments for ${result}`,\n\t\t);\n\t}\n\n\tif (options?.package) {\n\t\tconst [, ...rest] = result.split('::');\n\t\tresult = [options.package, ...rest].join('::');\n\t}\n\n\t// fully validate address-only tags (MVR names can't be parsed as type tags)\n\tif (!HAS_PHANTOM_REGEX.test(result) && !/[@/]/.test(result)) {\n\t\tTypeTagSerializer.parseFromStr(result);\n\t}\n\n\treturn result;\n}\n\nasync function resolveBuiltTypeTag(\n\tname: string,\n\toptions: { client: ClientWithCoreApi } & TypeTagOptions,\n): Promise<string> {\n\tconst { client, ...rest } = options;\n\tconst { type } = await client.core.mvr.resolveType({\n\t\ttype: buildTypeTag(name, rest),\n\t});\n\treturn normalizeStructTag(type);\n}\n\nexport class MoveStruct<\n\tT extends Record<string, BcsType<any>>,\n\tconst Name extends string = string,\n> extends BcsStruct<T, Name> {\n\t/**\n\t * Build the type tag for this struct.\n\t *\n\t * `typeArguments` is the full positional list, in Move declaration order, and\n\t * is required when the struct has unfilled phantom parameters. The result may\n\t * contain MVR names: those are valid in transaction `typeArguments`, but for\n\t * queries or comparisons against on-chain data use `resolveTypeTag` instead.\n\t */\n\ttypeTag(...args: TypeTagParams<Name>): string {\n\t\treturn buildTypeTag(this.name, args[0] as TypeTagOptions | undefined);\n\t}\n\n\t/**\n\t * Build the type tag for this struct, then resolve any MVR names through the\n\t * client (using its configured overrides and the MVR API) and return the\n\t * normalized, address-only form suitable for queries and comparisons against\n\t * on-chain data.\n\t */\n\tasync resolveTypeTag(options: ResolveTypeTagOptions<Name>): Promise<string> {\n\t\treturn resolveBuiltTypeTag(\n\t\t\tthis.name,\n\t\t\toptions as { client: ClientWithCoreApi } & TypeTagOptions,\n\t\t);\n\t}\n\n\tasync get<Include extends Omit<SuiClientTypes.ObjectInclude, 'content' | 'json'> = {}>({\n\t\tobjectId,\n\t\t...options\n\t}: GetOptions<Include>): Promise<\n\t\tSuiClientTypes.Object<Include & { content: true; json: true }> & {\n\t\t\tjson: BcsStruct<T>['$inferType'];\n\t\t}\n\t> {\n\t\tconst [res] = await this.getMany<Include>({\n\t\t\t...options,\n\t\t\tobjectIds: [objectId],\n\t\t});\n\n\t\tif (!res) {\n\t\t\tthrow new Error(`No object found for id ${objectId}`);\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tasync getMany<Include extends Omit<SuiClientTypes.ObjectInclude, 'content' | 'json'> = {}>({\n\t\tclient,\n\t\t...options\n\t}: GetManyOptions<Include>): Promise<\n\t\tArray<\n\t\t\tSuiClientTypes.Object<Include & { content: true; json: true }> & {\n\t\t\t\tjson: BcsStruct<T>['$inferType'];\n\t\t\t}\n\t\t>\n\t> {\n\t\tconst response = (await client.core.getObjects({\n\t\t\t...options,\n\t\t\tinclude: {\n\t\t\t\t...options.include,\n\t\t\t\tcontent: true,\n\t\t\t},\n\t\t})) as SuiClientTypes.GetObjectsResponse<Include & { content: true }>;\n\n\t\treturn response.objects.map((obj) => {\n\t\t\tif (obj instanceof Error) {\n\t\t\t\tthrow obj;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...obj,\n\t\t\t\tjson: this.parse(obj.content),\n\t\t\t};\n\t\t});\n\t}\n}\n\nexport class MoveEnum<\n\tT extends Record<string, BcsType<any> | null>,\n\tconst Name extends string,\n> extends BcsEnum<T, Name> {\n\t/** Build the type tag for this enum. See `MoveStruct.typeTag` for semantics. */\n\ttypeTag(...args: TypeTagParams<Name>): string {\n\t\treturn buildTypeTag(this.name, args[0] as TypeTagOptions | undefined);\n\t}\n\n\t/** Build and resolve the type tag for this enum. See `MoveStruct.resolveTypeTag`. */\n\tasync resolveTypeTag(options: ResolveTypeTagOptions<Name>): Promise<string> {\n\t\treturn resolveBuiltTypeTag(\n\t\t\tthis.name,\n\t\t\toptions as { client: ClientWithCoreApi } & TypeTagOptions,\n\t\t);\n\t}\n}\n\nexport class MoveTuple<\n\tconst T extends readonly BcsType<any>[],\n\tconst Name extends string,\n> extends BcsTuple<T, Name> {\n\t/** Build the type tag for this struct. See `MoveStruct.typeTag` for semantics. */\n\ttypeTag(...args: TypeTagParams<Name>): string {\n\t\treturn buildTypeTag(this.name, args[0] as TypeTagOptions | undefined);\n\t}\n\n\t/** Build and resolve the type tag for this struct. See `MoveStruct.resolveTypeTag`. */\n\tasync resolveTypeTag(options: ResolveTypeTagOptions<Name>): Promise<string> {\n\t\treturn resolveBuiltTypeTag(\n\t\t\tthis.name,\n\t\t\toptions as { client: ClientWithCoreApi } & TypeTagOptions,\n\t\t);\n\t}\n}\n\nfunction stringify(val: unknown) {\n\tif (typeof val === 'object') {\n\t\treturn JSON.stringify(val, (_key, value) =>\n\t\t\ttypeof value === 'bigint' ? value.toString() : value,\n\t\t);\n\t}\n\tif (typeof val === 'bigint') {\n\t\treturn val.toString();\n\t}\n\n\treturn val;\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { DeepBookConfig } from "../utils/config.mjs";
2
- import * as _mysten_sui_transactions0 from "@mysten/sui/transactions";
2
+ import * as _mysten_sui_transactions69 from "@mysten/sui/transactions";
3
3
  import { Transaction, TransactionArgument } from "@mysten/sui/transactions";
4
4
 
5
5
  //#region src/transactions/balanceManager.d.ts
@@ -21,7 +21,7 @@ declare class BalanceManagerContract {
21
21
  * @description Create a new BalanceManager, manually set the owner. Returns the manager.
22
22
  * @returns A function that takes a Transaction object
23
23
  */
24
- createBalanceManagerWithOwner: (ownerAddress: string) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
24
+ createBalanceManagerWithOwner: (ownerAddress: string) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
25
25
  /**
26
26
  * @description Share the BalanceManager
27
27
  * @param {TransactionArgument} manager The BalanceManager to share
@@ -65,38 +65,38 @@ declare class BalanceManagerContract {
65
65
  * @param {string} managerKey The key of the BalanceManager
66
66
  * @returns A function that takes a Transaction object
67
67
  */
68
- generateProof: (managerKey: string) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
68
+ generateProof: (managerKey: string) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
69
69
  /**
70
70
  * @description Generate a trade proof as the owner
71
71
  * @param {string} managerId The ID of the BalanceManager
72
72
  * @returns A function that takes a Transaction object
73
73
  */
74
- generateProofAsOwner: (managerId: string) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
74
+ generateProofAsOwner: (managerId: string) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
75
75
  /**
76
76
  * @description Generate a trade proof as a trader
77
77
  * @param {string} managerId The ID of the BalanceManager
78
78
  * @param {string} tradeCapId The ID of the tradeCap
79
79
  * @returns A function that takes a Transaction object
80
80
  */
81
- generateProofAsTrader: (managerId: string, tradeCapId: string) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
81
+ generateProofAsTrader: (managerId: string, tradeCapId: string) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
82
82
  /**
83
83
  * @description Mint a TradeCap
84
84
  * @param {string} managerKey The name of the BalanceManager
85
85
  * @returns A function that takes a Transaction object
86
86
  */
87
- mintTradeCap: (managerKey: string) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
87
+ mintTradeCap: (managerKey: string) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
88
88
  /**
89
89
  * @description Mint a DepositCap
90
90
  * @param {string} managerKey The name of the BalanceManager
91
91
  * @returns A function that takes a Transaction object
92
92
  */
93
- mintDepositCap: (managerKey: string) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
93
+ mintDepositCap: (managerKey: string) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
94
94
  /**
95
95
  * @description Mint a WithdrawalCap
96
96
  * @param {string} managerKey The name of the BalanceManager
97
97
  * @returns A function that takes a Transaction object
98
98
  */
99
- mintWithdrawalCap: (managerKey: string) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
99
+ mintWithdrawalCap: (managerKey: string) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
100
100
  /**
101
101
  * @description Deposit using the DepositCap
102
102
  * @param {string} managerKey The name of the BalanceManager
@@ -112,7 +112,7 @@ declare class BalanceManagerContract {
112
112
  * @param {number} amountToWithdraw The amount to withdraw
113
113
  * @returns A function that takes a Transaction object
114
114
  */
115
- withdrawWithCap: (managerKey: string, coinKey: string, amountToWithdraw: number) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
115
+ withdrawWithCap: (managerKey: string, coinKey: string, amountToWithdraw: number) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
116
116
  /**
117
117
  * @description Set the referral for the BalanceManager for a specific pool
118
118
  * @param {string} managerKey The name of the BalanceManager
@@ -147,20 +147,20 @@ declare class BalanceManagerContract {
147
147
  * @param {string} referralId The ID of the referral to get the owner of
148
148
  * @returns A function that takes a Transaction object
149
149
  */
150
- balanceManagerReferralOwner: (referralId: string) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
150
+ balanceManagerReferralOwner: (referralId: string) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
151
151
  /**
152
152
  * @description Get the pool ID associated with a referral (DeepBookPoolReferral)
153
153
  * @param {string} referralId The ID of the referral to get the pool ID of
154
154
  * @returns A function that takes a Transaction object
155
155
  */
156
- balanceManagerReferralPoolId: (referralId: string) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
156
+ balanceManagerReferralPoolId: (referralId: string) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
157
157
  /**
158
158
  * @description Get the referral ID from the balance manager for a specific pool
159
159
  * @param {string} managerKey The name of the BalanceManager
160
160
  * @param {string} poolKey Key of the pool to get the referral for
161
161
  * @returns A function that takes a Transaction object
162
162
  */
163
- getBalanceManagerReferralId: (managerKey: string, poolKey: string) => (tx: Transaction) => _mysten_sui_transactions0.TransactionResult;
163
+ getBalanceManagerReferralId: (managerKey: string, poolKey: string) => (tx: Transaction) => _mysten_sui_transactions69.TransactionResult;
164
164
  /**
165
165
  * @description Revoke a TradeCap. This also revokes the associated DepositCap and WithdrawCap.
166
166
  * @param {string} managerKey The name of the BalanceManager
@@ -1 +1 @@
1
- {"version":3,"file":"balanceManager.d.mts","names":[],"sources":["../../src/transactions/balanceManager.ts"],"mappings":";;;;;;;;cAWa,sBAAA;EAAA;;;;cAMA,MAAA,EAAQ,cAAA;EAwBsD;;;;EAhB1E,4BAAA,SAAsC,EAAA,EAAI,WAAA;EA4FwB;;;;EA5ElE,6BAAA,GAAiC,YAAA,cAA0B,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EA2HZ;;;;;EA/G9D,mBAAA,GAAuB,OAAA,EAAS,mBAAA,MAAyB,EAAA,EAAI,WAAA;EAsJJ;;;;;;;EAvIzD,kBAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA;EA2OvB;;;;;;;;EAlNjD,mBAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,gBAAA,UAA0B,SAAA,cAC/D,EAAA,EAAI,WAAA;EAyRsE;;;;;;;EArQ5E,sBAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,SAAA,cAAuB,EAAA,EAAI,WAAA;EApGtD;;;;;;EAsHZ,mBAAA,GAAuB,UAAA,UAAoB,OAAA,cAAqB,EAAA,EAAI,WAAA;EA9FT;;;;;EA6G3D,aAAA,GAAiB,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EAjGC;;;;;EA+GzD,oBAAA,GAAwB,SAAA,cAAuB,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EA/FM;;;;;;EA4GpE,qBAAA,GAAyB,SAAA,UAAmB,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EAjFjF;;;;;EA6FF,YAAA,GAAgB,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EAxEO;;;;;EAsF9D,cAAA,GAAkB,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EArDzD;;;;;EAmEA,iBAAA,GAAqB,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EArDpC;;;;;;;EAqExB,cAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA;EAzDJ;;;;;;;EAqFpE,eAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,gBAAA,cAA8B,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EA5DlE;;;;;;;EAoFlB,yBAAA,GACE,UAAA,UAAoB,QAAA,UAAkB,QAAA,EAAU,mBAAA,MAAyB,EAAA,EAAI,WAAA;EAvEnB;;;;;;;EAsF5D,2BAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,QAAA,EAAU,mBAAA,MAAyB,EAAA,EAAI,WAAA;EAS9E,sBAAA,GAA0B,UAAA,cAAwB,EAAA,EAAI,WAAA;EAlDhC;;;;;EA+DtB,KAAA,GAAS,UAAA,cAAwB,EAAA,EAAI,WAAA;EAtCnC;;;;;EAmDF,EAAA,GAAM,UAAA,cAAwB,EAAA,EAAI,WAAA;EApClC;;;;;EAiDA,2BAAA,GAA+B,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EAhDI;;;;;EA4D1E,4BAAA,GAAgC,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EAtC9D;;;;;;EAmDT,2BAAA,GAA+B,UAAA,UAAoB,OAAA,cAAqB,EAAA,EAAI,WAAA,KAAW,yBAAA,CAAA,iBAAA;EAzBvF;;;;;;EAwCA,cAAA,GAAkB,UAAA,UAAoB,UAAA,cAAwB,EAAA,EAAI,WAAA;AAAA"}
1
+ {"version":3,"file":"balanceManager.d.mts","names":[],"sources":["../../src/transactions/balanceManager.ts"],"mappings":";;;;;;;;cAWa,sBAAA;EAAA;;;;cAMA,MAAA,EAAQ,cAAA;EAwBsD;;;;EAhB1E,4BAAA,SAAsC,EAAA,EAAI,WAAA;EA4FwB;;;;EA5ElE,6BAAA,GAAiC,YAAA,cAA0B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EA2HZ;;;;;EA/G9D,mBAAA,GAAuB,OAAA,EAAS,mBAAA,MAAyB,EAAA,EAAI,WAAA;EAsJJ;;;;;;;EAvIzD,kBAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA;EA2OvB;;;;;;;;EAlNjD,mBAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,gBAAA,UAA0B,SAAA,cAC/D,EAAA,EAAI,WAAA;EAyRsE;;;;;;;EArQ5E,sBAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,SAAA,cAAuB,EAAA,EAAI,WAAA;EApGtD;;;;;;EAsHZ,mBAAA,GAAuB,UAAA,UAAoB,OAAA,cAAqB,EAAA,EAAI,WAAA;EA9FT;;;;;EA6G3D,aAAA,GAAiB,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAjGC;;;;;EA+GzD,oBAAA,GAAwB,SAAA,cAAuB,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EA/FM;;;;;;EA4GpE,qBAAA,GAAyB,SAAA,UAAmB,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAjFjF;;;;;EA6FF,YAAA,GAAgB,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAxEO;;;;;EAsF9D,cAAA,GAAkB,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EArDzD;;;;;EAmEA,iBAAA,GAAqB,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EArDpC;;;;;;;EAqExB,cAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA;EAzDJ;;;;;;;EAqFpE,eAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,gBAAA,cAA8B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EA5DlE;;;;;;;EAoFlB,yBAAA,GACE,UAAA,UAAoB,QAAA,UAAkB,QAAA,EAAU,mBAAA,MAAyB,EAAA,EAAI,WAAA;EAvEnB;;;;;;;EAsF5D,2BAAA,GACE,UAAA,UAAoB,OAAA,UAAiB,QAAA,EAAU,mBAAA,MAAyB,EAAA,EAAI,WAAA;EAS9E,sBAAA,GAA0B,UAAA,cAAwB,EAAA,EAAI,WAAA;EAlDhC;;;;;EA+DtB,KAAA,GAAS,UAAA,cAAwB,EAAA,EAAI,WAAA;EAtCnC;;;;;EAmDF,EAAA,GAAM,UAAA,cAAwB,EAAA,EAAI,WAAA;EApClC;;;;;EAiDA,2BAAA,GAA+B,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAhDI;;;;;EA4D1E,4BAAA,GAAgC,UAAA,cAAwB,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAtC9D;;;;;;EAmDT,2BAAA,GAA+B,UAAA,UAAoB,OAAA,cAAqB,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAzBvF;;;;;;EAwCA,cAAA,GAAkB,UAAA,UAAoB,UAAA,cAAwB,EAAA,EAAI,WAAA;AAAA"}