@mysten/sui 1.24.0 → 1.26.0

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 (98) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/client/client.d.ts +12 -2
  3. package/dist/cjs/client/client.js +16 -4
  4. package/dist/cjs/client/client.js.map +2 -2
  5. package/dist/cjs/experimental/client.d.ts +8 -0
  6. package/dist/cjs/experimental/client.js +43 -0
  7. package/dist/cjs/experimental/client.js.map +7 -0
  8. package/dist/cjs/experimental/core.d.ts +14 -0
  9. package/dist/cjs/experimental/core.js +31 -0
  10. package/dist/cjs/experimental/core.js.map +7 -0
  11. package/dist/cjs/experimental/errors.d.ts +8 -0
  12. package/dist/cjs/experimental/errors.js +54 -0
  13. package/dist/cjs/experimental/errors.js.map +7 -0
  14. package/dist/cjs/experimental/transports/jsonRPC.d.ts +62 -0
  15. package/dist/cjs/experimental/transports/jsonRPC.js +255 -0
  16. package/dist/cjs/experimental/transports/jsonRPC.js.map +7 -0
  17. package/dist/cjs/experimental/types.d.ts +211 -0
  18. package/dist/cjs/experimental/types.js +17 -0
  19. package/dist/cjs/experimental/types.js.map +7 -0
  20. package/dist/cjs/transactions/Arguments.d.ts +2 -2
  21. package/dist/cjs/transactions/Transaction.d.ts +4 -4
  22. package/dist/cjs/transactions/TransactionData.d.ts +2 -2
  23. package/dist/cjs/transactions/data/v1.d.ts +4 -4
  24. package/dist/cjs/transactions/data/v2.d.ts +4 -4
  25. package/dist/cjs/transactions/executor/parallel.d.ts +1 -1
  26. package/dist/cjs/transactions/executor/parallel.js +4 -4
  27. package/dist/cjs/transactions/executor/parallel.js.map +2 -2
  28. package/dist/cjs/transactions/executor/serial.d.ts +1 -1
  29. package/dist/cjs/transactions/executor/serial.js +2 -2
  30. package/dist/cjs/transactions/executor/serial.js.map +2 -2
  31. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.d.ts +5 -7
  32. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +84 -43
  33. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js.map +3 -3
  34. package/dist/cjs/transactions/plugins/utils.d.ts +10 -6
  35. package/dist/cjs/transactions/plugins/utils.js +64 -37
  36. package/dist/cjs/transactions/plugins/utils.js.map +2 -2
  37. package/dist/cjs/utils/sui-types.d.ts +1 -2
  38. package/dist/cjs/utils/sui-types.js +3 -1
  39. package/dist/cjs/utils/sui-types.js.map +2 -2
  40. package/dist/cjs/version.d.ts +2 -2
  41. package/dist/cjs/version.js +2 -2
  42. package/dist/cjs/version.js.map +1 -1
  43. package/dist/esm/client/client.d.ts +12 -2
  44. package/dist/esm/client/client.js +16 -4
  45. package/dist/esm/client/client.js.map +2 -2
  46. package/dist/esm/experimental/client.d.ts +8 -0
  47. package/dist/esm/experimental/client.js +23 -0
  48. package/dist/esm/experimental/client.js.map +7 -0
  49. package/dist/esm/experimental/core.d.ts +14 -0
  50. package/dist/esm/experimental/core.js +11 -0
  51. package/dist/esm/experimental/core.js.map +7 -0
  52. package/dist/esm/experimental/errors.d.ts +8 -0
  53. package/dist/esm/experimental/errors.js +34 -0
  54. package/dist/esm/experimental/errors.js.map +7 -0
  55. package/dist/esm/experimental/transports/jsonRPC.d.ts +62 -0
  56. package/dist/esm/experimental/transports/jsonRPC.js +235 -0
  57. package/dist/esm/experimental/transports/jsonRPC.js.map +7 -0
  58. package/dist/esm/experimental/types.d.ts +211 -0
  59. package/dist/esm/experimental/types.js +1 -0
  60. package/dist/esm/experimental/types.js.map +7 -0
  61. package/dist/esm/transactions/Arguments.d.ts +2 -2
  62. package/dist/esm/transactions/Transaction.d.ts +4 -4
  63. package/dist/esm/transactions/TransactionData.d.ts +2 -2
  64. package/dist/esm/transactions/data/v1.d.ts +4 -4
  65. package/dist/esm/transactions/data/v2.d.ts +4 -4
  66. package/dist/esm/transactions/executor/parallel.d.ts +1 -1
  67. package/dist/esm/transactions/executor/parallel.js +4 -4
  68. package/dist/esm/transactions/executor/parallel.js.map +2 -2
  69. package/dist/esm/transactions/executor/serial.d.ts +1 -1
  70. package/dist/esm/transactions/executor/serial.js +2 -2
  71. package/dist/esm/transactions/executor/serial.js.map +2 -2
  72. package/dist/esm/transactions/plugins/NamedPackagesPlugin.d.ts +5 -7
  73. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +91 -44
  74. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js.map +3 -3
  75. package/dist/esm/transactions/plugins/utils.d.ts +10 -6
  76. package/dist/esm/transactions/plugins/utils.js +64 -37
  77. package/dist/esm/transactions/plugins/utils.js.map +2 -2
  78. package/dist/esm/utils/sui-types.d.ts +1 -2
  79. package/dist/esm/utils/sui-types.js +3 -1
  80. package/dist/esm/utils/sui-types.js.map +2 -2
  81. package/dist/esm/version.d.ts +2 -2
  82. package/dist/esm/version.js +2 -2
  83. package/dist/esm/version.js.map +1 -1
  84. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  85. package/dist/tsconfig.tsbuildinfo +1 -1
  86. package/package.json +1 -1
  87. package/src/client/client.ts +21 -2
  88. package/src/experimental/client.ts +61 -0
  89. package/src/experimental/core.ts +46 -0
  90. package/src/experimental/errors.ts +37 -0
  91. package/src/experimental/transports/jsonRPC.ts +263 -0
  92. package/src/experimental/types.ts +293 -0
  93. package/src/transactions/executor/parallel.ts +8 -3
  94. package/src/transactions/executor/serial.ts +2 -1
  95. package/src/transactions/plugins/NamedPackagesPlugin.ts +118 -62
  96. package/src/transactions/plugins/utils.ts +115 -47
  97. package/src/utils/sui-types.ts +6 -2
  98. package/src/version.ts +2 -2
@@ -0,0 +1,23 @@
1
+ class Experimental_SuiClient {
2
+ constructor({ network }) {
3
+ this.network = network;
4
+ }
5
+ $extend(...registrations) {
6
+ return Object.create(
7
+ this,
8
+ Object.fromEntries(
9
+ registrations.map((registration) => {
10
+ if ("experimental_asClientExtension" in registration) {
11
+ const { name, register } = registration.experimental_asClientExtension();
12
+ return [name, { value: register(this) }];
13
+ }
14
+ return [registration.name, { value: registration.register(this) }];
15
+ })
16
+ )
17
+ );
18
+ }
19
+ }
20
+ export {
21
+ Experimental_SuiClient
22
+ };
23
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/experimental/client.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n/* eslint-disable @typescript-eslint/ban-types */\n\nimport type { Experimental_CoreClient } from './core.js';\nimport type {\n\tClientWithExtensions,\n\tExperimental_SuiClientTypes,\n\tSimplify,\n\tSuiClientRegistration,\n\tUnionToIntersection,\n} from './types.js';\n\nexport abstract class Experimental_SuiClient {\n\tnetwork: Experimental_SuiClientTypes.Network;\n\n\tconstructor({ network }: Experimental_SuiClientTypes.SuiClientOptions) {\n\t\tthis.network = network;\n\t}\n\n\tabstract core: Experimental_CoreClient;\n\n\t$extend<const Registrations extends SuiClientRegistration<this>[]>(\n\t\t...registrations: Registrations\n\t) {\n\t\treturn Object.create(\n\t\t\tthis,\n\t\t\tObject.fromEntries(\n\t\t\t\tregistrations.map((registration) => {\n\t\t\t\t\tif ('experimental_asClientExtension' in registration) {\n\t\t\t\t\t\tconst { name, register } = registration.experimental_asClientExtension();\n\t\t\t\t\t\treturn [name, { value: register(this) }];\n\t\t\t\t\t}\n\t\t\t\t\treturn [registration.name, { value: registration.register(this) }];\n\t\t\t\t}),\n\t\t\t),\n\t\t) as ClientWithExtensions<\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\t{\n\t\t\t\t\t\t[K in keyof this]: this[K];\n\t\t\t\t\t},\n\t\t\t\t\tkeyof Experimental_SuiClient\n\t\t\t\t> &\n\t\t\t\t\tUnionToIntersection<\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[K in keyof Registrations]: Registrations[K] extends SuiClientRegistration<\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\tinfer Name extends string,\n\t\t\t\t\t\t\t\tinfer Extension\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[K2 in Name]: Extension;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: never;\n\t\t\t\t\t\t}[number]\n\t\t\t\t\t>\n\t\t\t>\n\t\t>;\n\t}\n}\n"],
5
+ "mappings": "AAaO,MAAe,uBAAuB;AAAA,EAG5C,YAAY,EAAE,QAAQ,GAAiD;AACtE,SAAK,UAAU;AAAA,EAChB;AAAA,EAIA,WACI,eACF;AACD,WAAO,OAAO;AAAA,MACb;AAAA,MACA,OAAO;AAAA,QACN,cAAc,IAAI,CAAC,iBAAiB;AACnC,cAAI,oCAAoC,cAAc;AACrD,kBAAM,EAAE,MAAM,SAAS,IAAI,aAAa,+BAA+B;AACvE,mBAAO,CAAC,MAAM,EAAE,OAAO,SAAS,IAAI,EAAE,CAAC;AAAA,UACxC;AACA,iBAAO,CAAC,aAAa,MAAM,EAAE,OAAO,aAAa,SAAS,IAAI,EAAE,CAAC;AAAA,QAClE,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EAuBD;AACD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ import { Experimental_SuiClient } from './client.js';
2
+ import type { Experimental_SuiClientTypes } from './types.js';
3
+ export declare abstract class Experimental_CoreClient extends Experimental_SuiClient implements Experimental_SuiClientTypes.TransportMethods {
4
+ core: this;
5
+ abstract getObjects(options: Experimental_SuiClientTypes.GetObjectsOptions): Promise<Experimental_SuiClientTypes.GetObjectsResponse>;
6
+ abstract getCoins(options: Experimental_SuiClientTypes.GetCoinsOptions): Promise<Experimental_SuiClientTypes.GetCoinsResponse>;
7
+ abstract getOwnedObjects(options: Experimental_SuiClientTypes.GetOwnedObjectsOptions): Promise<Experimental_SuiClientTypes.GetOwnedObjectsResponse>;
8
+ abstract getBalance(options: Experimental_SuiClientTypes.GetBalanceOptions): Promise<Experimental_SuiClientTypes.GetBalanceResponse>;
9
+ abstract getAllBalances(options: Experimental_SuiClientTypes.GetAllBalancesOptions): Promise<Experimental_SuiClientTypes.GetAllBalancesResponse>;
10
+ abstract getTransaction(options: Experimental_SuiClientTypes.GetTransactionOptions): Promise<Experimental_SuiClientTypes.GetTransactionResponse>;
11
+ abstract executeTransaction(options: Experimental_SuiClientTypes.ExecuteTransactionOptions): Promise<Experimental_SuiClientTypes.ExecuteTransactionResponse>;
12
+ abstract dryRunTransaction(options: Experimental_SuiClientTypes.DryRunTransactionOptions): Promise<Experimental_SuiClientTypes.DryRunTransactionResponse>;
13
+ abstract getReferenceGasPrice(): Promise<Experimental_SuiClientTypes.GetReferenceGasPriceResponse>;
14
+ }
@@ -0,0 +1,11 @@
1
+ import { Experimental_SuiClient } from "./client.js";
2
+ class Experimental_CoreClient extends Experimental_SuiClient {
3
+ constructor() {
4
+ super(...arguments);
5
+ this.core = this;
6
+ }
7
+ }
8
+ export {
9
+ Experimental_CoreClient
10
+ };
11
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/experimental/core.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Experimental_SuiClient } from './client.js';\nimport type { Experimental_SuiClientTypes } from './types.js';\n\nexport abstract class Experimental_CoreClient\n\textends Experimental_SuiClient\n\timplements Experimental_SuiClientTypes.TransportMethods\n{\n\tcore = this;\n\n\tabstract getObjects(\n\t\toptions: Experimental_SuiClientTypes.GetObjectsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetObjectsResponse>;\n\n\tabstract getCoins(\n\t\toptions: Experimental_SuiClientTypes.GetCoinsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetCoinsResponse>;\n\n\tabstract getOwnedObjects(\n\t\toptions: Experimental_SuiClientTypes.GetOwnedObjectsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetOwnedObjectsResponse>;\n\n\tabstract getBalance(\n\t\toptions: Experimental_SuiClientTypes.GetBalanceOptions,\n\t): Promise<Experimental_SuiClientTypes.GetBalanceResponse>;\n\n\tabstract getAllBalances(\n\t\toptions: Experimental_SuiClientTypes.GetAllBalancesOptions,\n\t): Promise<Experimental_SuiClientTypes.GetAllBalancesResponse>;\n\n\tabstract getTransaction(\n\t\toptions: Experimental_SuiClientTypes.GetTransactionOptions,\n\t): Promise<Experimental_SuiClientTypes.GetTransactionResponse>;\n\n\tabstract executeTransaction(\n\t\toptions: Experimental_SuiClientTypes.ExecuteTransactionOptions,\n\t): Promise<Experimental_SuiClientTypes.ExecuteTransactionResponse>;\n\n\tabstract dryRunTransaction(\n\t\toptions: Experimental_SuiClientTypes.DryRunTransactionOptions,\n\t): Promise<Experimental_SuiClientTypes.DryRunTransactionResponse>;\n\n\tabstract getReferenceGasPrice(): Promise<Experimental_SuiClientTypes.GetReferenceGasPriceResponse>;\n}\n"],
5
+ "mappings": "AAGA,SAAS,8BAA8B;AAGhC,MAAe,gCACb,uBAET;AAAA,EAHO;AAAA;AAIN,gBAAO;AAAA;AAmCR;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ import type { ObjectResponseError } from '../client/index.js';
2
+ export declare class SuiClientError extends Error {
3
+ }
4
+ export declare class ObjectError extends SuiClientError {
5
+ code: string;
6
+ constructor(code: string, message: string);
7
+ static fromResponse(response: ObjectResponseError, objectId?: string): ObjectError;
8
+ }
@@ -0,0 +1,34 @@
1
+ class SuiClientError extends Error {
2
+ }
3
+ class ObjectError extends SuiClientError {
4
+ constructor(code, message) {
5
+ super(message);
6
+ this.code = code;
7
+ }
8
+ static fromResponse(response, objectId) {
9
+ switch (response.code) {
10
+ case "notExists":
11
+ return new ObjectError(response.code, `Object ${response.object_id} does not exist`);
12
+ case "dynamicFieldNotFound":
13
+ return new ObjectError(
14
+ response.code,
15
+ `Dynamic field not found for object ${response.parent_object_id}`
16
+ );
17
+ case "deleted":
18
+ return new ObjectError(response.code, `Object ${response.object_id} has been deleted`);
19
+ case "displayError":
20
+ return new ObjectError(response.code, `Display error: ${response.error}`);
21
+ case "unknown":
22
+ default:
23
+ return new ObjectError(
24
+ response.code,
25
+ `Unknown error while loading object${objectId ? ` ${objectId}` : ""}`
26
+ );
27
+ }
28
+ }
29
+ }
30
+ export {
31
+ ObjectError,
32
+ SuiClientError
33
+ };
34
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/experimental/errors.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ObjectResponseError } from '../client/index.js';\n\nexport class SuiClientError extends Error {}\n\nexport class ObjectError extends SuiClientError {\n\tcode: string;\n\n\tconstructor(code: string, message: string) {\n\t\tsuper(message);\n\t\tthis.code = code;\n\t}\n\n\tstatic fromResponse(response: ObjectResponseError, objectId?: string): ObjectError {\n\t\tswitch (response.code) {\n\t\t\tcase 'notExists':\n\t\t\t\treturn new ObjectError(response.code, `Object ${response.object_id} does not exist`);\n\t\t\tcase 'dynamicFieldNotFound':\n\t\t\t\treturn new ObjectError(\n\t\t\t\t\tresponse.code,\n\t\t\t\t\t`Dynamic field not found for object ${response.parent_object_id}`,\n\t\t\t\t);\n\t\t\tcase 'deleted':\n\t\t\t\treturn new ObjectError(response.code, `Object ${response.object_id} has been deleted`);\n\t\t\tcase 'displayError':\n\t\t\t\treturn new ObjectError(response.code, `Display error: ${response.error}`);\n\t\t\tcase 'unknown':\n\t\t\tdefault:\n\t\t\t\treturn new ObjectError(\n\t\t\t\t\tresponse.code,\n\t\t\t\t\t`Unknown error while loading object${objectId ? ` ${objectId}` : ''}`,\n\t\t\t\t);\n\t\t}\n\t}\n}\n"],
5
+ "mappings": "AAKO,MAAM,uBAAuB,MAAM;AAAC;AAEpC,MAAM,oBAAoB,eAAe;AAAA,EAG/C,YAAY,MAAc,SAAiB;AAC1C,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACb;AAAA,EAEA,OAAO,aAAa,UAA+B,UAAgC;AAClF,YAAQ,SAAS,MAAM;AAAA,MACtB,KAAK;AACJ,eAAO,IAAI,YAAY,SAAS,MAAM,UAAU,SAAS,SAAS,iBAAiB;AAAA,MACpF,KAAK;AACJ,eAAO,IAAI;AAAA,UACV,SAAS;AAAA,UACT,sCAAsC,SAAS,gBAAgB;AAAA,QAChE;AAAA,MACD,KAAK;AACJ,eAAO,IAAI,YAAY,SAAS,MAAM,UAAU,SAAS,SAAS,mBAAmB;AAAA,MACtF,KAAK;AACJ,eAAO,IAAI,YAAY,SAAS,MAAM,kBAAkB,SAAS,KAAK,EAAE;AAAA,MACzE,KAAK;AAAA,MACL;AACC,eAAO,IAAI;AAAA,UACV,SAAS;AAAA,UACT,qCAAqC,WAAW,IAAI,QAAQ,KAAK,EAAE;AAAA,QACpE;AAAA,IACF;AAAA,EACD;AACD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,62 @@
1
+ import type { SuiClient } from '../../client/index.js';
2
+ import { Experimental_CoreClient } from '../core.js';
3
+ import type { Experimental_SuiClientTypes } from '../types.js';
4
+ export declare class JSONRpcTransport extends Experimental_CoreClient {
5
+ #private;
6
+ constructor(jsonRpcClient: SuiClient);
7
+ getObjects(options: Experimental_SuiClientTypes.GetObjectsOptions): Promise<{
8
+ objects: (Error | Experimental_SuiClientTypes.ObjectResponse)[];
9
+ }>;
10
+ getOwnedObjects(options: Experimental_SuiClientTypes.GetOwnedObjectsOptions): Promise<{
11
+ objects: Experimental_SuiClientTypes.ObjectResponse[];
12
+ hasNextPage: boolean;
13
+ cursor: string | null;
14
+ }>;
15
+ getCoins(options: Experimental_SuiClientTypes.GetCoinsOptions): Promise<{
16
+ objects: {
17
+ id: string;
18
+ version: string;
19
+ digest: string;
20
+ balance: bigint;
21
+ type: string;
22
+ content: Uint8Array<ArrayBufferLike>;
23
+ owner: {
24
+ $kind: "ObjectOwner";
25
+ ObjectOwner: string;
26
+ };
27
+ }[];
28
+ hasNextPage: boolean;
29
+ cursor: string | null;
30
+ }>;
31
+ getBalance(options: Experimental_SuiClientTypes.GetBalanceOptions): Promise<{
32
+ balance: {
33
+ coinType: string;
34
+ balance: bigint;
35
+ };
36
+ }>;
37
+ getAllBalances(options: Experimental_SuiClientTypes.GetAllBalancesOptions): Promise<{
38
+ balances: {
39
+ coinType: string;
40
+ balance: bigint;
41
+ }[];
42
+ hasNextPage: boolean;
43
+ cursor: null;
44
+ }>;
45
+ getTransaction(options: Experimental_SuiClientTypes.GetTransactionOptions): Promise<{
46
+ transaction: Experimental_SuiClientTypes.TransactionResponse;
47
+ }>;
48
+ executeTransaction(options: Experimental_SuiClientTypes.ExecuteTransactionOptions): Promise<{
49
+ transaction: Experimental_SuiClientTypes.TransactionResponse;
50
+ }>;
51
+ dryRunTransaction(options: Experimental_SuiClientTypes.DryRunTransactionOptions): Promise<{
52
+ transaction: {
53
+ digest: string;
54
+ effects: never;
55
+ signatures: never[];
56
+ bcs: Uint8Array<ArrayBufferLike>;
57
+ };
58
+ }>;
59
+ getReferenceGasPrice(): Promise<{
60
+ referenceGasPrice: bigint;
61
+ }>;
62
+ }
@@ -0,0 +1,235 @@
1
+ var __typeError = (msg) => {
2
+ throw TypeError(msg);
3
+ };
4
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
+ var _jsonRpcClient;
9
+ import { fromBase64 } from "@mysten/bcs";
10
+ import { bcs } from "../../bcs/index.js";
11
+ import { batch } from "../../transactions/plugins/utils.js";
12
+ import { Transaction } from "../../transactions/Transaction.js";
13
+ import { Experimental_CoreClient } from "../core.js";
14
+ import { ObjectError } from "../errors.js";
15
+ class JSONRpcTransport extends Experimental_CoreClient {
16
+ constructor(jsonRpcClient) {
17
+ super({ network: jsonRpcClient.network });
18
+ __privateAdd(this, _jsonRpcClient);
19
+ __privateSet(this, _jsonRpcClient, jsonRpcClient);
20
+ }
21
+ async getObjects(options) {
22
+ const batches = batch(options.objectIds, 50);
23
+ const results = [];
24
+ for (const batch2 of batches) {
25
+ const objects = await __privateGet(this, _jsonRpcClient).multiGetObjects({
26
+ ids: batch2,
27
+ options: {
28
+ showOwner: true,
29
+ showType: true
30
+ }
31
+ });
32
+ for (const [idx, object] of objects.entries()) {
33
+ if (object.error) {
34
+ results.push(ObjectError.fromResponse(object.error, batch2[idx]));
35
+ } else {
36
+ results.push(parseObject(object.data));
37
+ }
38
+ }
39
+ }
40
+ return {
41
+ objects: results
42
+ };
43
+ }
44
+ async getOwnedObjects(options) {
45
+ const objects = await __privateGet(this, _jsonRpcClient).getOwnedObjects({
46
+ owner: options.address,
47
+ limit: options.limit,
48
+ cursor: options.cursor
49
+ });
50
+ return {
51
+ objects: objects.data.map((result) => {
52
+ if (result.error) {
53
+ throw ObjectError.fromResponse(result.error);
54
+ }
55
+ return parseObject(result.data);
56
+ }),
57
+ hasNextPage: objects.hasNextPage,
58
+ cursor: objects.nextCursor ?? null
59
+ };
60
+ }
61
+ async getCoins(options) {
62
+ const coins = await __privateGet(this, _jsonRpcClient).getCoins({
63
+ owner: options.address,
64
+ coinType: options.coinType
65
+ });
66
+ return {
67
+ objects: coins.data.map((coin) => {
68
+ return {
69
+ id: coin.coinObjectId,
70
+ version: coin.version,
71
+ digest: coin.digest,
72
+ balance: BigInt(coin.balance),
73
+ type: `0x2::coin::Coin<${coin.coinType}>`,
74
+ content: Coin.serialize({
75
+ id: coin.coinObjectId,
76
+ balance: {
77
+ value: coin.balance
78
+ }
79
+ }).toBytes(),
80
+ owner: {
81
+ $kind: "ObjectOwner",
82
+ ObjectOwner: options.address
83
+ }
84
+ };
85
+ }),
86
+ hasNextPage: coins.hasNextPage,
87
+ cursor: coins.nextCursor ?? null
88
+ };
89
+ }
90
+ async getBalance(options) {
91
+ const balance = await __privateGet(this, _jsonRpcClient).getBalance({
92
+ owner: options.address,
93
+ coinType: options.coinType
94
+ });
95
+ return {
96
+ balance: {
97
+ coinType: balance.coinType,
98
+ balance: BigInt(balance.totalBalance)
99
+ }
100
+ };
101
+ }
102
+ async getAllBalances(options) {
103
+ const balances = await __privateGet(this, _jsonRpcClient).getAllBalances({
104
+ owner: options.address
105
+ });
106
+ return {
107
+ balances: balances.map((balance) => ({
108
+ coinType: balance.coinType,
109
+ balance: BigInt(balance.totalBalance)
110
+ })),
111
+ hasNextPage: false,
112
+ cursor: null
113
+ };
114
+ }
115
+ async getTransaction(options) {
116
+ const transaction = await __privateGet(this, _jsonRpcClient).getTransactionBlock({
117
+ digest: options.digest,
118
+ options: {
119
+ showRawInput: true,
120
+ showObjectChanges: true,
121
+ showRawEffects: true,
122
+ showEvents: true
123
+ }
124
+ });
125
+ return {
126
+ transaction: parseTransaction(transaction)
127
+ };
128
+ }
129
+ async executeTransaction(options) {
130
+ const transaction = await __privateGet(this, _jsonRpcClient).executeTransactionBlock({
131
+ transactionBlock: options.transaction,
132
+ signature: options.signatures,
133
+ options: {
134
+ showEffects: true,
135
+ showEvents: true
136
+ }
137
+ });
138
+ return {
139
+ transaction: parseTransaction(transaction)
140
+ };
141
+ }
142
+ async dryRunTransaction(options) {
143
+ const tx = Transaction.from(options.transaction);
144
+ const result = await __privateGet(this, _jsonRpcClient).dryRunTransactionBlock({
145
+ transactionBlock: options.transaction
146
+ });
147
+ return {
148
+ transaction: {
149
+ digest: await tx.getDigest(),
150
+ // TODO: Effects aren't returned as bcs from dryRun, once we define structured effects we can return those instead
151
+ effects: result.effects,
152
+ signatures: [],
153
+ bcs: options.transaction
154
+ }
155
+ };
156
+ }
157
+ async getReferenceGasPrice() {
158
+ const referenceGasPrice = await __privateGet(this, _jsonRpcClient).getReferenceGasPrice();
159
+ return {
160
+ referenceGasPrice
161
+ };
162
+ }
163
+ }
164
+ _jsonRpcClient = new WeakMap();
165
+ function parseObject(object) {
166
+ return {
167
+ id: object.objectId,
168
+ version: object.version,
169
+ digest: object.digest,
170
+ type: object.type,
171
+ content: object.bcs?.dataType === "moveObject" ? fromBase64(object.bcs.bcsBytes) : new Uint8Array(),
172
+ owner: parseOwner(object.owner)
173
+ };
174
+ }
175
+ function parseOwner(owner) {
176
+ if (owner === "Immutable") {
177
+ return {
178
+ $kind: "Immutable",
179
+ Immutable: true
180
+ };
181
+ }
182
+ if ("ConsensusV2" in owner) {
183
+ return {
184
+ $kind: "ConsensusV2",
185
+ ConsensusV2Owner: {
186
+ authenticator: {
187
+ $kind: "SingleOwner",
188
+ SingleOwner: owner.ConsensusV2.authenticator.SingleOwner
189
+ },
190
+ startVersion: owner.ConsensusV2.start_version
191
+ }
192
+ };
193
+ }
194
+ if ("AddressOwner" in owner) {
195
+ return {
196
+ $kind: "AddressOwner",
197
+ AddressOwner: owner.AddressOwner
198
+ };
199
+ }
200
+ if ("ObjectOwner" in owner) {
201
+ return {
202
+ $kind: "ObjectOwner",
203
+ ObjectOwner: owner.ObjectOwner
204
+ };
205
+ }
206
+ if ("Shared" in owner) {
207
+ return {
208
+ $kind: "Shared",
209
+ Shared: {
210
+ initialSharedVersion: owner.Shared.initial_shared_version
211
+ }
212
+ };
213
+ }
214
+ throw new Error(`Unknown owner type: ${JSON.stringify(owner)}`);
215
+ }
216
+ function parseTransaction(transaction) {
217
+ const parsedTx = bcs.SenderSignedData.parse(fromBase64(transaction.rawTransaction))[0];
218
+ return {
219
+ digest: transaction.digest,
220
+ effects: new Uint8Array(transaction.rawEffects),
221
+ bcs: bcs.TransactionData.serialize(parsedTx.intentMessage.value).toBytes(),
222
+ signatures: parsedTx.txSignatures
223
+ };
224
+ }
225
+ const Balance = bcs.struct("Balance", {
226
+ value: bcs.u64()
227
+ });
228
+ const Coin = bcs.struct("Coin", {
229
+ id: bcs.Address,
230
+ balance: Balance
231
+ });
232
+ export {
233
+ JSONRpcTransport
234
+ };
235
+ //# sourceMappingURL=jsonRPC.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/experimental/transports/jsonRPC.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@mysten/bcs';\n\nimport { bcs } from '../../bcs/index.js';\nimport type {\n\tObjectOwner,\n\tSuiClient,\n\tSuiObjectData,\n\tSuiTransactionBlockResponse,\n} from '../../client/index.js';\nimport { batch } from '../../transactions/plugins/utils.js';\nimport { Transaction } from '../../transactions/Transaction.js';\nimport { Experimental_CoreClient } from '../core.js';\nimport { ObjectError } from '../errors.js';\nimport type { Experimental_SuiClientTypes } from '../types.js';\n\nexport class JSONRpcTransport extends Experimental_CoreClient {\n\t#jsonRpcClient: SuiClient;\n\n\tconstructor(jsonRpcClient: SuiClient) {\n\t\tsuper({ network: jsonRpcClient.network });\n\t\tthis.#jsonRpcClient = jsonRpcClient;\n\t}\n\n\tasync getObjects(options: Experimental_SuiClientTypes.GetObjectsOptions) {\n\t\tconst batches = batch(options.objectIds, 50);\n\t\tconst results: Experimental_SuiClientTypes.GetObjectsResponse['objects'] = [];\n\n\t\tfor (const batch of batches) {\n\t\t\tconst objects = await this.#jsonRpcClient.multiGetObjects({\n\t\t\t\tids: batch,\n\t\t\t\toptions: {\n\t\t\t\t\tshowOwner: true,\n\t\t\t\t\tshowType: true,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tfor (const [idx, object] of objects.entries()) {\n\t\t\t\tif (object.error) {\n\t\t\t\t\tresults.push(ObjectError.fromResponse(object.error, batch[idx]));\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(parseObject(object.data!));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: results,\n\t\t};\n\t}\n\tasync getOwnedObjects(options: Experimental_SuiClientTypes.GetOwnedObjectsOptions) {\n\t\tconst objects = await this.#jsonRpcClient.getOwnedObjects({\n\t\t\towner: options.address,\n\t\t\tlimit: options.limit,\n\t\t\tcursor: options.cursor,\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: objects.data.map((result) => {\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthrow ObjectError.fromResponse(result.error);\n\t\t\t\t}\n\n\t\t\t\treturn parseObject(result.data!);\n\t\t\t}),\n\t\t\thasNextPage: objects.hasNextPage,\n\t\t\tcursor: objects.nextCursor ?? null,\n\t\t};\n\t}\n\n\tasync getCoins(options: Experimental_SuiClientTypes.GetCoinsOptions) {\n\t\tconst coins = await this.#jsonRpcClient.getCoins({\n\t\t\towner: options.address,\n\t\t\tcoinType: options.coinType,\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: coins.data.map((coin) => {\n\t\t\t\treturn {\n\t\t\t\t\tid: coin.coinObjectId,\n\t\t\t\t\tversion: coin.version,\n\t\t\t\t\tdigest: coin.digest,\n\t\t\t\t\tbalance: BigInt(coin.balance),\n\t\t\t\t\ttype: `0x2::coin::Coin<${coin.coinType}>`,\n\t\t\t\t\tcontent: Coin.serialize({\n\t\t\t\t\t\tid: coin.coinObjectId,\n\t\t\t\t\t\tbalance: {\n\t\t\t\t\t\t\tvalue: coin.balance,\n\t\t\t\t\t\t},\n\t\t\t\t\t}).toBytes(),\n\t\t\t\t\towner: {\n\t\t\t\t\t\t$kind: 'ObjectOwner' as const,\n\t\t\t\t\t\tObjectOwner: options.address,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}),\n\t\t\thasNextPage: coins.hasNextPage,\n\t\t\tcursor: coins.nextCursor ?? null,\n\t\t};\n\t}\n\n\tasync getBalance(options: Experimental_SuiClientTypes.GetBalanceOptions) {\n\t\tconst balance = await this.#jsonRpcClient.getBalance({\n\t\t\towner: options.address,\n\t\t\tcoinType: options.coinType,\n\t\t});\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: balance.coinType,\n\t\t\t\tbalance: BigInt(balance.totalBalance),\n\t\t\t},\n\t\t};\n\t}\n\tasync getAllBalances(options: Experimental_SuiClientTypes.GetAllBalancesOptions) {\n\t\tconst balances = await this.#jsonRpcClient.getAllBalances({\n\t\t\towner: options.address,\n\t\t});\n\n\t\treturn {\n\t\t\tbalances: balances.map((balance) => ({\n\t\t\t\tcoinType: balance.coinType,\n\t\t\t\tbalance: BigInt(balance.totalBalance),\n\t\t\t})),\n\t\t\thasNextPage: false,\n\t\t\tcursor: null,\n\t\t};\n\t}\n\tasync getTransaction(options: Experimental_SuiClientTypes.GetTransactionOptions) {\n\t\tconst transaction = await this.#jsonRpcClient.getTransactionBlock({\n\t\t\tdigest: options.digest,\n\t\t\toptions: {\n\t\t\t\tshowRawInput: true,\n\t\t\t\tshowObjectChanges: true,\n\t\t\t\tshowRawEffects: true,\n\t\t\t\tshowEvents: true,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(transaction),\n\t\t};\n\t}\n\tasync executeTransaction(options: Experimental_SuiClientTypes.ExecuteTransactionOptions) {\n\t\tconst transaction = await this.#jsonRpcClient.executeTransactionBlock({\n\t\t\ttransactionBlock: options.transaction,\n\t\t\tsignature: options.signatures,\n\t\t\toptions: {\n\t\t\t\tshowEffects: true,\n\t\t\t\tshowEvents: true,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(transaction),\n\t\t};\n\t}\n\tasync dryRunTransaction(options: Experimental_SuiClientTypes.DryRunTransactionOptions) {\n\t\tconst tx = Transaction.from(options.transaction);\n\t\tconst result = await this.#jsonRpcClient.dryRunTransactionBlock({\n\t\t\ttransactionBlock: options.transaction,\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: {\n\t\t\t\tdigest: await tx.getDigest(),\n\t\t\t\t// TODO: Effects aren't returned as bcs from dryRun, once we define structured effects we can return those instead\n\t\t\t\teffects: result.effects as never,\n\t\t\t\tsignatures: [],\n\t\t\t\tbcs: options.transaction,\n\t\t\t},\n\t\t};\n\t}\n\tasync getReferenceGasPrice() {\n\t\tconst referenceGasPrice = await this.#jsonRpcClient.getReferenceGasPrice();\n\t\treturn {\n\t\t\treferenceGasPrice,\n\t\t};\n\t}\n}\n\nfunction parseObject(object: SuiObjectData): Experimental_SuiClientTypes.ObjectResponse {\n\treturn {\n\t\tid: object.objectId,\n\t\tversion: object.version,\n\t\tdigest: object.digest,\n\t\ttype: object.type!,\n\t\tcontent:\n\t\t\tobject.bcs?.dataType === 'moveObject' ? fromBase64(object.bcs.bcsBytes) : new Uint8Array(),\n\t\towner: parseOwner(object.owner!),\n\t};\n}\n\nfunction parseOwner(owner: ObjectOwner): Experimental_SuiClientTypes.ObjectOwner {\n\tif (owner === 'Immutable') {\n\t\treturn {\n\t\t\t$kind: 'Immutable',\n\t\t\tImmutable: true,\n\t\t};\n\t}\n\n\tif ('ConsensusV2' in owner) {\n\t\treturn {\n\t\t\t$kind: 'ConsensusV2',\n\t\t\tConsensusV2Owner: {\n\t\t\t\tauthenticator: {\n\t\t\t\t\t$kind: 'SingleOwner',\n\t\t\t\t\tSingleOwner: owner.ConsensusV2.authenticator.SingleOwner,\n\t\t\t\t},\n\t\t\t\tstartVersion: owner.ConsensusV2.start_version,\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('AddressOwner' in owner) {\n\t\treturn {\n\t\t\t$kind: 'AddressOwner',\n\t\t\tAddressOwner: owner.AddressOwner,\n\t\t};\n\t}\n\n\tif ('ObjectOwner' in owner) {\n\t\treturn {\n\t\t\t$kind: 'ObjectOwner',\n\t\t\tObjectOwner: owner.ObjectOwner,\n\t\t};\n\t}\n\n\tif ('Shared' in owner) {\n\t\treturn {\n\t\t\t$kind: 'Shared',\n\t\t\tShared: {\n\t\t\t\tinitialSharedVersion: owner.Shared.initial_shared_version,\n\t\t\t},\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown owner type: ${JSON.stringify(owner)}`);\n}\n\nfunction parseTransaction(\n\ttransaction: SuiTransactionBlockResponse,\n): Experimental_SuiClientTypes.TransactionResponse {\n\tconst parsedTx = bcs.SenderSignedData.parse(fromBase64(transaction.rawTransaction!))[0];\n\n\treturn {\n\t\tdigest: transaction.digest,\n\t\teffects: new Uint8Array(transaction.rawEffects!),\n\t\tbcs: bcs.TransactionData.serialize(parsedTx.intentMessage.value).toBytes(),\n\t\tsignatures: parsedTx.txSignatures,\n\t};\n}\n\nconst Balance = bcs.struct('Balance', {\n\tvalue: bcs.u64(),\n});\n\nconst Coin = bcs.struct('Coin', {\n\tid: bcs.Address,\n\tbalance: Balance,\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["batch"]
7
+ }
@@ -0,0 +1,211 @@
1
+ import type { Experimental_SuiClient } from './client.js';
2
+ export type SuiClientRegistration<T extends Experimental_SuiClient = Experimental_SuiClient, Name extends string = string, Extension = unknown> = {
3
+ readonly name: Name;
4
+ readonly register: (client: T) => Extension;
5
+ } | SelfRegisteringClientExtension<T, Name, Extension>;
6
+ export interface SelfRegisteringClientExtension<T extends Experimental_SuiClient = Experimental_SuiClient, Name extends string = string, Extension = unknown> {
7
+ experimental_asClientExtension: () => {
8
+ readonly name: Name;
9
+ readonly register: (client: T) => Extension;
10
+ };
11
+ }
12
+ export type Simplify<T> = {
13
+ [K in keyof T]: T[K];
14
+ } & {};
15
+ export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
16
+ export type ClientWithExtensions<T> = Experimental_SuiClient & T;
17
+ export declare namespace Experimental_SuiClientTypes {
18
+ type Network = 'mainnet' | 'testnet' | 'devnet' | 'localnet' | (string & {});
19
+ interface SuiClientOptions {
20
+ network: Network;
21
+ }
22
+ /** Object methods */
23
+ interface TransportMethods {
24
+ getObjects?: (options: GetObjectsOptions) => Promise<GetObjectsResponse>;
25
+ getOwnedObjects?: (options: GetOwnedObjectsOptions) => Promise<GetOwnedObjectsResponse>;
26
+ getCoins?: (options: GetCoinsOptions) => Promise<GetCoinsResponse>;
27
+ }
28
+ interface GetObjectsOptions {
29
+ objectIds: string[];
30
+ }
31
+ interface GetOwnedObjectsOptions {
32
+ address: string;
33
+ limit?: number;
34
+ cursor?: string | null;
35
+ type?: string;
36
+ }
37
+ interface GetCoinsOptions {
38
+ address: string;
39
+ coinType: string;
40
+ }
41
+ interface GetObjectsResponse {
42
+ objects: (ObjectResponse | Error)[];
43
+ }
44
+ interface GetOwnedObjectsResponse {
45
+ objects: ObjectResponse[];
46
+ hasNextPage: boolean;
47
+ cursor: string | null;
48
+ }
49
+ interface GetCoinsResponse {
50
+ objects: CoinResponse[];
51
+ hasNextPage: boolean;
52
+ cursor: string | null;
53
+ }
54
+ interface ObjectResponse {
55
+ id: string;
56
+ version: string;
57
+ digest: string;
58
+ owner: ObjectOwner;
59
+ type: string;
60
+ content: Uint8Array;
61
+ }
62
+ interface CoinResponse extends ObjectResponse {
63
+ balance: bigint;
64
+ }
65
+ /** Balance methods */
66
+ interface TransportMethods {
67
+ getBalance?: (options: GetBalanceOptions) => Promise<GetBalanceResponse>;
68
+ getAllBalances?: (options: GetAllBalancesOptions) => Promise<GetAllBalancesResponse>;
69
+ }
70
+ interface GetBalanceOptions {
71
+ address: string;
72
+ coinType: string;
73
+ }
74
+ interface CoinBalance {
75
+ coinType: string;
76
+ balance: bigint;
77
+ }
78
+ interface GetBalanceResponse {
79
+ balance: CoinBalance;
80
+ }
81
+ interface GetAllBalancesOptions {
82
+ address: string;
83
+ limit?: number;
84
+ cursor?: string | null;
85
+ }
86
+ interface GetAllBalancesResponse {
87
+ balances: CoinBalance[];
88
+ hasNextPage: boolean;
89
+ cursor: string | null;
90
+ }
91
+ /** Transaction methods */
92
+ interface TransportMethods {
93
+ getTransaction?: (options: GetTransactionOptions) => Promise<GetTransactionResponse>;
94
+ executeTransaction?: (options: ExecuteTransactionOptions) => Promise<ExecuteTransactionResponse>;
95
+ dryRunTransaction?: (options: DryRunTransactionOptions) => Promise<DryRunTransactionResponse>;
96
+ }
97
+ interface TransactionResponse {
98
+ digest: string;
99
+ signatures: string[];
100
+ bcs: Uint8Array;
101
+ effects: Uint8Array;
102
+ events?: Uint8Array;
103
+ }
104
+ interface GetTransactionOptions {
105
+ digest: string;
106
+ }
107
+ interface GetTransactionResponse {
108
+ transaction: TransactionResponse;
109
+ }
110
+ interface ExecuteTransactionOptions {
111
+ transaction: Uint8Array;
112
+ signatures: string[];
113
+ }
114
+ interface DryRunTransactionOptions {
115
+ transaction: Uint8Array;
116
+ }
117
+ interface DryRunTransactionResponse {
118
+ transaction: TransactionResponse;
119
+ }
120
+ interface ExecuteTransactionResponse {
121
+ transaction: TransactionResponse;
122
+ }
123
+ interface TransportMethods {
124
+ getReferenceGasPrice?: () => Promise<GetReferenceGasPriceResponse>;
125
+ }
126
+ interface GetReferenceGasPriceResponse {
127
+ referenceGasPrice: bigint;
128
+ }
129
+ /** ObjectOwner types */
130
+ interface AddressOwner {
131
+ $kind: 'AddressOwner';
132
+ AddressOwner: string;
133
+ }
134
+ interface ParentOwner {
135
+ $kind: 'ObjectOwner';
136
+ ObjectOwner: string;
137
+ }
138
+ interface SharedOwner {
139
+ $kind: 'Shared';
140
+ Shared: {
141
+ initialSharedVersion: string;
142
+ };
143
+ }
144
+ interface ImmutableOwner {
145
+ $kind: 'Immutable';
146
+ Immutable: true;
147
+ }
148
+ interface ConsensusV2Owner {
149
+ $kind: 'ConsensusV2';
150
+ ConsensusV2Owner: {
151
+ authenticator: ConsensusV2Authenticator;
152
+ startVersion: string;
153
+ };
154
+ }
155
+ interface SingleOwnerAuthenticator {
156
+ $kind: 'SingleOwner';
157
+ SingleOwner: string;
158
+ }
159
+ type ConsensusV2Authenticator = SingleOwnerAuthenticator;
160
+ type ObjectOwner = AddressOwner | ParentOwner | SharedOwner | ImmutableOwner | ConsensusV2Owner;
161
+ /** Effects */
162
+ interface TransactionEffects {
163
+ bcs: Uint8Array;
164
+ digest: string;
165
+ version: number;
166
+ status: ExecutionStatus;
167
+ epoch: bigint | null;
168
+ gasUsed: GasCostSummary;
169
+ transactionDigest: string;
170
+ gasObject: ChangedObject;
171
+ eventsDigest: string | null;
172
+ dependencies: string[];
173
+ lamportVersion: bigint | null;
174
+ changedObjects: ChangedObject[];
175
+ unchangedSharedObjects: UnchangedSharedObject[];
176
+ auxiliaryDataDigest: string | null;
177
+ }
178
+ interface ChangedObject {
179
+ id: string;
180
+ inputState: 'Unknown' | 'DoesNotExist' | 'Exists';
181
+ inputVersion: bigint | null;
182
+ inputDigest: string | null;
183
+ inputOwner: ObjectOwner | null;
184
+ outputState: 'Unknown' | 'DoesNotExist' | 'ObjectWrite' | 'PackageWrite';
185
+ outputVersion: bigint | null;
186
+ outputDigest: string | null;
187
+ outputOwner: ObjectOwner | null;
188
+ idOperation: 'Unknown' | 'None' | 'Created' | 'Deleted';
189
+ objectType: string | null;
190
+ }
191
+ interface GasCostSummary {
192
+ computationCost: bigint;
193
+ storageCost: bigint;
194
+ storageRebate: bigint;
195
+ nonRefundableStorageFee: bigint;
196
+ }
197
+ type ExecutionStatus = {
198
+ success: true;
199
+ error: null;
200
+ } | {
201
+ success: false;
202
+ error: string;
203
+ };
204
+ interface UnchangedSharedObject {
205
+ kind: 'Unknown' | 'ReadOnlyRoot' | 'MutateDeleted' | 'ReadDeleted' | 'Canceled' | 'PerEpochConfig';
206
+ objectId: string;
207
+ version: bigint;
208
+ digest: string;
209
+ objectType: string;
210
+ }
211
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map