@mysten/sui 1.26.1 → 1.27.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 +13 -0
- package/dist/cjs/bcs/bcs.d.ts +3 -2
- package/dist/cjs/bcs/bcs.js +3 -3
- package/dist/cjs/bcs/bcs.js.map +2 -2
- package/dist/cjs/bcs/effects.d.ts +18 -12
- package/dist/cjs/bcs/index.d.ts +460 -453
- package/dist/cjs/bcs/index.js +4 -4
- package/dist/cjs/bcs/index.js.map +1 -1
- package/dist/cjs/client/client.d.ts +38 -16
- package/dist/cjs/client/client.js +142 -62
- package/dist/cjs/client/client.js.map +2 -2
- package/dist/cjs/client/http-transport.d.ts +2 -0
- package/dist/cjs/client/http-transport.js +7 -0
- package/dist/cjs/client/http-transport.js.map +2 -2
- package/dist/cjs/client/rpc-websocket-client.d.ts +2 -1
- package/dist/cjs/client/rpc-websocket-client.js +7 -2
- package/dist/cjs/client/rpc-websocket-client.js.map +2 -2
- package/dist/cjs/client/types/generated.d.ts +1 -0
- package/dist/cjs/client/types/generated.js.map +1 -1
- package/dist/cjs/client/types/params.d.ts +56 -0
- package/dist/cjs/client/types/params.js.map +1 -1
- package/dist/cjs/experimental/cache.d.ts +11 -0
- package/dist/cjs/experimental/cache.js +79 -0
- package/dist/cjs/experimental/cache.js.map +7 -0
- package/dist/cjs/experimental/client.d.ts +4 -2
- package/dist/cjs/experimental/client.js +4 -2
- package/dist/cjs/experimental/client.js.map +2 -2
- package/dist/cjs/experimental/core.d.ts +10 -2
- package/dist/cjs/experimental/core.js +59 -1
- package/dist/cjs/experimental/core.js.map +2 -2
- package/dist/cjs/experimental/index.d.ts +5 -0
- package/dist/cjs/experimental/index.js +29 -0
- package/dist/cjs/experimental/index.js.map +7 -0
- package/dist/cjs/experimental/transports/jsonRPC.d.ts +19 -5
- package/dist/cjs/experimental/transports/jsonRPC.js +270 -12
- package/dist/cjs/experimental/transports/jsonRPC.js.map +2 -2
- package/dist/cjs/experimental/types.d.ts +84 -41
- package/dist/cjs/experimental/types.js.map +1 -1
- package/dist/cjs/keypairs/secp256k1/keypair.js +1 -1
- package/dist/cjs/keypairs/secp256k1/keypair.js.map +2 -2
- package/dist/cjs/keypairs/secp256r1/keypair.js +1 -1
- package/dist/cjs/keypairs/secp256r1/keypair.js.map +2 -2
- package/dist/cjs/multisig/publickey.js +5 -5
- package/dist/cjs/multisig/publickey.js.map +2 -2
- package/dist/cjs/multisig/signer.js +2 -2
- package/dist/cjs/multisig/signer.js.map +2 -2
- package/dist/cjs/transactions/intents/CoinWithBalance.d.ts +2 -2
- package/dist/cjs/transactions/intents/CoinWithBalance.js +6 -1
- package/dist/cjs/transactions/intents/CoinWithBalance.js.map +2 -2
- package/dist/cjs/transactions/plugins/utils.js +2 -2
- package/dist/cjs/transactions/plugins/utils.js.map +2 -2
- package/dist/cjs/version.d.ts +2 -2
- package/dist/cjs/version.js +2 -2
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/bcs/bcs.d.ts +3 -2
- package/dist/esm/bcs/bcs.js +3 -3
- package/dist/esm/bcs/bcs.js.map +2 -2
- package/dist/esm/bcs/effects.d.ts +18 -12
- package/dist/esm/bcs/index.d.ts +460 -453
- package/dist/esm/bcs/index.js +4 -4
- package/dist/esm/bcs/index.js.map +1 -1
- package/dist/esm/client/client.d.ts +38 -16
- package/dist/esm/client/client.js +143 -63
- package/dist/esm/client/client.js.map +2 -2
- package/dist/esm/client/http-transport.d.ts +2 -0
- package/dist/esm/client/http-transport.js +7 -0
- package/dist/esm/client/http-transport.js.map +2 -2
- package/dist/esm/client/rpc-websocket-client.d.ts +2 -1
- package/dist/esm/client/rpc-websocket-client.js +7 -2
- package/dist/esm/client/rpc-websocket-client.js.map +2 -2
- package/dist/esm/client/types/generated.d.ts +1 -0
- package/dist/esm/client/types/params.d.ts +56 -0
- package/dist/esm/experimental/cache.d.ts +11 -0
- package/dist/esm/experimental/cache.js +59 -0
- package/dist/esm/experimental/cache.js.map +7 -0
- package/dist/esm/experimental/client.d.ts +4 -2
- package/dist/esm/experimental/client.js +4 -2
- package/dist/esm/experimental/client.js.map +2 -2
- package/dist/esm/experimental/core.d.ts +10 -2
- package/dist/esm/experimental/core.js +60 -2
- package/dist/esm/experimental/core.js.map +2 -2
- package/dist/esm/experimental/index.d.ts +5 -0
- package/dist/esm/experimental/index.js +9 -0
- package/dist/esm/experimental/index.js.map +7 -0
- package/dist/esm/experimental/transports/jsonRPC.d.ts +19 -5
- package/dist/esm/experimental/transports/jsonRPC.js +270 -12
- package/dist/esm/experimental/transports/jsonRPC.js.map +2 -2
- package/dist/esm/experimental/types.d.ts +84 -41
- package/dist/esm/keypairs/secp256k1/keypair.js +1 -1
- package/dist/esm/keypairs/secp256k1/keypair.js.map +2 -2
- package/dist/esm/keypairs/secp256r1/keypair.js +1 -1
- package/dist/esm/keypairs/secp256r1/keypair.js.map +2 -2
- package/dist/esm/multisig/publickey.js +5 -5
- package/dist/esm/multisig/publickey.js.map +2 -2
- package/dist/esm/multisig/signer.js +2 -2
- package/dist/esm/multisig/signer.js.map +2 -2
- package/dist/esm/transactions/intents/CoinWithBalance.d.ts +2 -2
- package/dist/esm/transactions/intents/CoinWithBalance.js +6 -1
- package/dist/esm/transactions/intents/CoinWithBalance.js.map +2 -2
- package/dist/esm/transactions/plugins/utils.js +2 -2
- package/dist/esm/transactions/plugins/utils.js.map +2 -2
- package/dist/esm/version.d.ts +2 -2
- package/dist/esm/version.js +2 -2
- package/dist/esm/version.js.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/experimental/package.json +6 -0
- package/package.json +7 -2
- package/src/bcs/bcs.ts +3 -3
- package/src/bcs/index.ts +3 -3
- package/src/client/client.ts +119 -26
- package/src/client/http-transport.ts +10 -0
- package/src/client/rpc-websocket-client.ts +8 -1
- package/src/client/types/generated.ts +1 -0
- package/src/client/types/params.ts +68 -6
- package/src/experimental/cache.ts +64 -0
- package/src/experimental/client.ts +4 -2
- package/src/experimental/core.ts +89 -2
- package/src/experimental/index.ts +20 -0
- package/src/experimental/transports/jsonRPC.ts +319 -9
- package/src/experimental/types.ts +92 -48
- package/src/keypairs/secp256k1/keypair.ts +1 -1
- package/src/keypairs/secp256r1/keypair.ts +1 -1
- package/src/multisig/publickey.ts +5 -5
- package/src/multisig/signer.ts +2 -2
- package/src/transactions/__tests__/bcs.test.ts +2 -2
- package/src/transactions/intents/CoinWithBalance.ts +11 -3
- package/src/transactions/plugins/utils.ts +2 -2
- package/src/version.ts +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n/* eslint-disable @typescript-eslint/ban-types */\n\nimport { ClientCache } from './cache.js';\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_BaseClient {\n\tnetwork: Experimental_SuiClientTypes.Network;\n\tcache = new ClientCache();\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_BaseClient\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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,mBAA4B;AAUrB,MAAe,wBAAwB;AAAA,EAI7C,YAAY,EAAE,QAAQ,GAAiD;AAFvE,iBAAQ,IAAI,yBAAY;AAGvB,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
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Experimental_BaseClient } from './client.js';
|
|
2
2
|
import type { Experimental_SuiClientTypes } from './types.js';
|
|
3
|
-
export declare abstract class Experimental_CoreClient extends
|
|
3
|
+
export declare abstract class Experimental_CoreClient extends Experimental_BaseClient implements Experimental_SuiClientTypes.TransportMethods {
|
|
4
4
|
core: this;
|
|
5
5
|
abstract getObjects(options: Experimental_SuiClientTypes.GetObjectsOptions): Promise<Experimental_SuiClientTypes.GetObjectsResponse>;
|
|
6
6
|
abstract getCoins(options: Experimental_SuiClientTypes.GetCoinsOptions): Promise<Experimental_SuiClientTypes.GetCoinsResponse>;
|
|
@@ -11,4 +11,12 @@ export declare abstract class Experimental_CoreClient extends Experimental_SuiCl
|
|
|
11
11
|
abstract executeTransaction(options: Experimental_SuiClientTypes.ExecuteTransactionOptions): Promise<Experimental_SuiClientTypes.ExecuteTransactionResponse>;
|
|
12
12
|
abstract dryRunTransaction(options: Experimental_SuiClientTypes.DryRunTransactionOptions): Promise<Experimental_SuiClientTypes.DryRunTransactionResponse>;
|
|
13
13
|
abstract getReferenceGasPrice(): Promise<Experimental_SuiClientTypes.GetReferenceGasPriceResponse>;
|
|
14
|
+
abstract getDynamicFields(options: Experimental_SuiClientTypes.GetDynamicFieldsOptions): Promise<Experimental_SuiClientTypes.GetDynamicFieldsResponse>;
|
|
15
|
+
getDynamicField(options: Experimental_SuiClientTypes.GetDynamicFieldOptions): Promise<Experimental_SuiClientTypes.GetDynamicFieldResponse>;
|
|
16
|
+
waitForTransaction({ signal, timeout, ...input }: {
|
|
17
|
+
/** An optional abort signal that can be used to cancel the wait. */
|
|
18
|
+
signal?: AbortSignal;
|
|
19
|
+
/** The amount of time to wait for transaction. Defaults to one minute. */
|
|
20
|
+
timeout?: number;
|
|
21
|
+
} & Experimental_SuiClientTypes.GetTransactionOptions): Promise<Experimental_SuiClientTypes.GetTransactionResponse>;
|
|
14
22
|
}
|
|
@@ -21,11 +21,69 @@ __export(core_exports, {
|
|
|
21
21
|
Experimental_CoreClient: () => Experimental_CoreClient
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(core_exports);
|
|
24
|
+
var import_type_tag_serializer = require("../bcs/type-tag-serializer.js");
|
|
25
|
+
var import_dynamic_fields = require("../utils/dynamic-fields.js");
|
|
26
|
+
var import_sui_types = require("../utils/sui-types.js");
|
|
24
27
|
var import_client = require("./client.js");
|
|
25
|
-
class Experimental_CoreClient extends import_client.
|
|
28
|
+
class Experimental_CoreClient extends import_client.Experimental_BaseClient {
|
|
26
29
|
constructor() {
|
|
27
30
|
super(...arguments);
|
|
28
31
|
this.core = this;
|
|
29
32
|
}
|
|
33
|
+
async getDynamicField(options) {
|
|
34
|
+
const fieldId = (0, import_dynamic_fields.deriveDynamicFieldID)(
|
|
35
|
+
options.parentId,
|
|
36
|
+
import_type_tag_serializer.TypeTagSerializer.parseFromStr(options.name.type),
|
|
37
|
+
options.name.bcs
|
|
38
|
+
);
|
|
39
|
+
const {
|
|
40
|
+
objects: [fieldObject]
|
|
41
|
+
} = await this.getObjects({
|
|
42
|
+
objectIds: [fieldId]
|
|
43
|
+
});
|
|
44
|
+
if (fieldObject instanceof Error) {
|
|
45
|
+
throw fieldObject;
|
|
46
|
+
}
|
|
47
|
+
const fieldType = (0, import_sui_types.parseStructTag)(fieldObject.type);
|
|
48
|
+
return {
|
|
49
|
+
dynamicField: {
|
|
50
|
+
id: fieldObject.id,
|
|
51
|
+
digest: fieldObject.digest,
|
|
52
|
+
version: fieldObject.version,
|
|
53
|
+
type: fieldObject.type,
|
|
54
|
+
name: {
|
|
55
|
+
type: typeof fieldType.typeParams[0] === "string" ? fieldType.typeParams[0] : (0, import_sui_types.normalizeStructTag)(fieldType.typeParams[0]),
|
|
56
|
+
bcs: options.name.bcs
|
|
57
|
+
},
|
|
58
|
+
value: {
|
|
59
|
+
type: typeof fieldType.typeParams[1] === "string" ? fieldType.typeParams[1] : (0, import_sui_types.normalizeStructTag)(fieldType.typeParams[1]),
|
|
60
|
+
bcs: fieldObject.content.slice(import_sui_types.SUI_ADDRESS_LENGTH + options.name.bcs.length)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
async waitForTransaction({
|
|
66
|
+
signal,
|
|
67
|
+
timeout = 60 * 1e3,
|
|
68
|
+
...input
|
|
69
|
+
}) {
|
|
70
|
+
const abortSignal = signal ? AbortSignal.any([AbortSignal.timeout(timeout), signal]) : AbortSignal.timeout(timeout);
|
|
71
|
+
const abortPromise = new Promise((_, reject) => {
|
|
72
|
+
abortSignal.addEventListener("abort", () => reject(abortSignal.reason));
|
|
73
|
+
});
|
|
74
|
+
abortPromise.catch(() => {
|
|
75
|
+
});
|
|
76
|
+
while (true) {
|
|
77
|
+
abortSignal.throwIfAborted();
|
|
78
|
+
try {
|
|
79
|
+
return await this.getTransaction({
|
|
80
|
+
...input,
|
|
81
|
+
signal: abortSignal
|
|
82
|
+
});
|
|
83
|
+
} catch (e) {
|
|
84
|
+
await Promise.race([new Promise((resolve) => setTimeout(resolve, 2e3)), abortPromise]);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
30
88
|
}
|
|
31
89
|
//# sourceMappingURL=core.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/experimental/core.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { TypeTagSerializer } from '../bcs/type-tag-serializer.js';\nimport { deriveDynamicFieldID } from '../utils/dynamic-fields.js';\nimport { normalizeStructTag, parseStructTag, SUI_ADDRESS_LENGTH } from '../utils/sui-types.js';\nimport { Experimental_BaseClient } from './client.js';\nimport type { Experimental_SuiClientTypes } from './types.js';\n\nexport abstract class Experimental_CoreClient\n\textends Experimental_BaseClient\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\tabstract getDynamicFields(\n\t\toptions: Experimental_SuiClientTypes.GetDynamicFieldsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetDynamicFieldsResponse>;\n\n\tasync getDynamicField(\n\t\toptions: Experimental_SuiClientTypes.GetDynamicFieldOptions,\n\t): Promise<Experimental_SuiClientTypes.GetDynamicFieldResponse> {\n\t\tconst fieldId = deriveDynamicFieldID(\n\t\t\toptions.parentId,\n\t\t\tTypeTagSerializer.parseFromStr(options.name.type),\n\t\t\toptions.name.bcs,\n\t\t);\n\t\tconst {\n\t\t\tobjects: [fieldObject],\n\t\t} = await this.getObjects({\n\t\t\tobjectIds: [fieldId],\n\t\t});\n\n\t\tif (fieldObject instanceof Error) {\n\t\t\tthrow fieldObject;\n\t\t}\n\n\t\tconst fieldType = parseStructTag(fieldObject.type);\n\n\t\treturn {\n\t\t\tdynamicField: {\n\t\t\t\tid: fieldObject.id,\n\t\t\t\tdigest: fieldObject.digest,\n\t\t\t\tversion: fieldObject.version,\n\t\t\t\ttype: fieldObject.type,\n\t\t\t\tname: {\n\t\t\t\t\ttype:\n\t\t\t\t\t\ttypeof fieldType.typeParams[0] === 'string'\n\t\t\t\t\t\t\t? fieldType.typeParams[0]\n\t\t\t\t\t\t\t: normalizeStructTag(fieldType.typeParams[0]),\n\t\t\t\t\tbcs: options.name.bcs,\n\t\t\t\t},\n\t\t\t\tvalue: {\n\t\t\t\t\ttype:\n\t\t\t\t\t\ttypeof fieldType.typeParams[1] === 'string'\n\t\t\t\t\t\t\t? fieldType.typeParams[1]\n\t\t\t\t\t\t\t: normalizeStructTag(fieldType.typeParams[1]),\n\t\t\t\t\tbcs: fieldObject.content.slice(SUI_ADDRESS_LENGTH + options.name.bcs.length),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync waitForTransaction({\n\t\tsignal,\n\t\ttimeout = 60 * 1000,\n\t\t...input\n\t}: {\n\t\t/** An optional abort signal that can be used to cancel the wait. */\n\t\tsignal?: AbortSignal;\n\t\t/** The amount of time to wait for transaction. Defaults to one minute. */\n\t\ttimeout?: number;\n\t} & Experimental_SuiClientTypes.GetTransactionOptions): Promise<Experimental_SuiClientTypes.GetTransactionResponse> {\n\t\tconst abortSignal = signal\n\t\t\t? AbortSignal.any([AbortSignal.timeout(timeout), signal])\n\t\t\t: AbortSignal.timeout(timeout);\n\n\t\tconst abortPromise = new Promise((_, reject) => {\n\t\t\tabortSignal.addEventListener('abort', () => reject(abortSignal.reason));\n\t\t});\n\n\t\tabortPromise.catch(() => {\n\t\t\t// Swallow unhandled rejections that might be thrown after early return\n\t\t});\n\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\tabortSignal.throwIfAborted();\n\t\t\ttry {\n\t\t\t\treturn await this.getTransaction({\n\t\t\t\t\t...input,\n\t\t\t\t\tsignal: abortSignal,\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tawait Promise.race([new Promise((resolve) => setTimeout(resolve, 2_000)), abortPromise]);\n\t\t\t}\n\t\t}\n\t}\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iCAAkC;AAClC,4BAAqC;AACrC,uBAAuE;AACvE,oBAAwC;AAGjC,MAAe,gCACb,sCAET;AAAA,EAHO;AAAA;AAIN,gBAAO;AAAA;AAAA,EAwCP,MAAM,gBACL,SAC+D;AAC/D,UAAM,cAAU;AAAA,MACf,QAAQ;AAAA,MACR,6CAAkB,aAAa,QAAQ,KAAK,IAAI;AAAA,MAChD,QAAQ,KAAK;AAAA,IACd;AACA,UAAM;AAAA,MACL,SAAS,CAAC,WAAW;AAAA,IACtB,IAAI,MAAM,KAAK,WAAW;AAAA,MACzB,WAAW,CAAC,OAAO;AAAA,IACpB,CAAC;AAED,QAAI,uBAAuB,OAAO;AACjC,YAAM;AAAA,IACP;AAEA,UAAM,gBAAY,iCAAe,YAAY,IAAI;AAEjD,WAAO;AAAA,MACN,cAAc;AAAA,QACb,IAAI,YAAY;AAAA,QAChB,QAAQ,YAAY;AAAA,QACpB,SAAS,YAAY;AAAA,QACrB,MAAM,YAAY;AAAA,QAClB,MAAM;AAAA,UACL,MACC,OAAO,UAAU,WAAW,CAAC,MAAM,WAChC,UAAU,WAAW,CAAC,QACtB,qCAAmB,UAAU,WAAW,CAAC,CAAC;AAAA,UAC9C,KAAK,QAAQ,KAAK;AAAA,QACnB;AAAA,QACA,OAAO;AAAA,UACN,MACC,OAAO,UAAU,WAAW,CAAC,MAAM,WAChC,UAAU,WAAW,CAAC,QACtB,qCAAmB,UAAU,WAAW,CAAC,CAAC;AAAA,UAC9C,KAAK,YAAY,QAAQ,MAAM,sCAAqB,QAAQ,KAAK,IAAI,MAAM;AAAA,QAC5E;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,mBAAmB;AAAA,IACxB;AAAA,IACA,UAAU,KAAK;AAAA,IACf,GAAG;AAAA,EACJ,GAKoH;AACnH,UAAM,cAAc,SACjB,YAAY,IAAI,CAAC,YAAY,QAAQ,OAAO,GAAG,MAAM,CAAC,IACtD,YAAY,QAAQ,OAAO;AAE9B,UAAM,eAAe,IAAI,QAAQ,CAAC,GAAG,WAAW;AAC/C,kBAAY,iBAAiB,SAAS,MAAM,OAAO,YAAY,MAAM,CAAC;AAAA,IACvE,CAAC;AAED,iBAAa,MAAM,MAAM;AAAA,IAEzB,CAAC;AAGD,WAAO,MAAM;AACZ,kBAAY,eAAe;AAC3B,UAAI;AACH,eAAO,MAAM,KAAK,eAAe;AAAA,UAChC,GAAG;AAAA,UACH,QAAQ;AAAA,QACT,CAAC;AAAA,MACF,SAAS,GAAG;AACX,cAAM,QAAQ,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAK,CAAC,GAAG,YAAY,CAAC;AAAA,MACxF;AAAA,IACD;AAAA,EACD;AACD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Experimental_BaseClient } from './client.js';
|
|
2
|
+
import { Experimental_CoreClient } from './core.js';
|
|
3
|
+
import type { ClientWithExtensions, Experimental_SuiClientTypes, SuiClientRegistration } from './types.js';
|
|
4
|
+
export { Experimental_BaseClient, Experimental_CoreClient, type ClientWithExtensions, type Experimental_SuiClientTypes, type SuiClientRegistration, };
|
|
5
|
+
export { ClientCache, type ClientCacheOptions } from './cache.js';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var experimental_exports = {};
|
|
20
|
+
__export(experimental_exports, {
|
|
21
|
+
ClientCache: () => import_cache.ClientCache,
|
|
22
|
+
Experimental_BaseClient: () => import_client.Experimental_BaseClient,
|
|
23
|
+
Experimental_CoreClient: () => import_core.Experimental_CoreClient
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(experimental_exports);
|
|
26
|
+
var import_client = require("./client.js");
|
|
27
|
+
var import_core = require("./core.js");
|
|
28
|
+
var import_cache = require("./cache.js");
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/experimental/index.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Experimental_BaseClient } from './client.js';\nimport { Experimental_CoreClient } from './core.js';\nimport type {\n\tClientWithExtensions,\n\tExperimental_SuiClientTypes,\n\tSuiClientRegistration,\n} from './types.js';\n\nexport {\n\tExperimental_BaseClient,\n\tExperimental_CoreClient,\n\ttype ClientWithExtensions,\n\ttype Experimental_SuiClientTypes,\n\ttype SuiClientRegistration,\n};\n\nexport { ClientCache, type ClientCacheOptions } from './cache.js';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAAwC;AACxC,kBAAwC;AAexC,mBAAqD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -17,7 +17,7 @@ export declare class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
17
17
|
id: string;
|
|
18
18
|
version: string;
|
|
19
19
|
digest: string;
|
|
20
|
-
balance:
|
|
20
|
+
balance: string;
|
|
21
21
|
type: string;
|
|
22
22
|
content: Uint8Array<ArrayBufferLike>;
|
|
23
23
|
owner: {
|
|
@@ -31,13 +31,13 @@ export declare class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
31
31
|
getBalance(options: Experimental_SuiClientTypes.GetBalanceOptions): Promise<{
|
|
32
32
|
balance: {
|
|
33
33
|
coinType: string;
|
|
34
|
-
balance:
|
|
34
|
+
balance: string;
|
|
35
35
|
};
|
|
36
36
|
}>;
|
|
37
37
|
getAllBalances(options: Experimental_SuiClientTypes.GetAllBalancesOptions): Promise<{
|
|
38
38
|
balances: {
|
|
39
39
|
coinType: string;
|
|
40
|
-
balance:
|
|
40
|
+
balance: string;
|
|
41
41
|
}[];
|
|
42
42
|
hasNextPage: boolean;
|
|
43
43
|
cursor: null;
|
|
@@ -51,12 +51,26 @@ export declare class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
51
51
|
dryRunTransaction(options: Experimental_SuiClientTypes.DryRunTransactionOptions): Promise<{
|
|
52
52
|
transaction: {
|
|
53
53
|
digest: string;
|
|
54
|
-
effects:
|
|
54
|
+
effects: Experimental_SuiClientTypes.TransactionEffects;
|
|
55
55
|
signatures: never[];
|
|
56
56
|
bcs: Uint8Array<ArrayBufferLike>;
|
|
57
57
|
};
|
|
58
58
|
}>;
|
|
59
59
|
getReferenceGasPrice(): Promise<{
|
|
60
|
-
referenceGasPrice:
|
|
60
|
+
referenceGasPrice: string;
|
|
61
|
+
}>;
|
|
62
|
+
getDynamicFields(options: Experimental_SuiClientTypes.GetDynamicFieldsOptions): Promise<{
|
|
63
|
+
dynamicFields: {
|
|
64
|
+
id: string;
|
|
65
|
+
version: string;
|
|
66
|
+
digest: string;
|
|
67
|
+
type: string;
|
|
68
|
+
name: {
|
|
69
|
+
type: string;
|
|
70
|
+
bcs: Uint8Array<ArrayBufferLike>;
|
|
71
|
+
};
|
|
72
|
+
}[];
|
|
73
|
+
hasNextPage: boolean;
|
|
74
|
+
cursor: string | null;
|
|
61
75
|
}>;
|
|
62
76
|
}
|
|
@@ -32,6 +32,7 @@ var import_bcs = require("@mysten/bcs");
|
|
|
32
32
|
var import_bcs2 = require("../../bcs/index.js");
|
|
33
33
|
var import_utils = require("../../transactions/plugins/utils.js");
|
|
34
34
|
var import_Transaction = require("../../transactions/Transaction.js");
|
|
35
|
+
var import_sui_types = require("../../utils/sui-types.js");
|
|
35
36
|
var import_core = require("../core.js");
|
|
36
37
|
var import_errors = require("../errors.js");
|
|
37
38
|
var _jsonRpcClient;
|
|
@@ -49,7 +50,8 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
|
|
|
49
50
|
ids: batch2,
|
|
50
51
|
options: {
|
|
51
52
|
showOwner: true,
|
|
52
|
-
showType: true
|
|
53
|
+
showType: true,
|
|
54
|
+
showBcs: true
|
|
53
55
|
}
|
|
54
56
|
});
|
|
55
57
|
for (const [idx, object] of objects.entries()) {
|
|
@@ -68,7 +70,12 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
|
|
|
68
70
|
const objects = await __privateGet(this, _jsonRpcClient).getOwnedObjects({
|
|
69
71
|
owner: options.address,
|
|
70
72
|
limit: options.limit,
|
|
71
|
-
cursor: options.cursor
|
|
73
|
+
cursor: options.cursor,
|
|
74
|
+
options: {
|
|
75
|
+
showOwner: true,
|
|
76
|
+
showType: true,
|
|
77
|
+
showBcs: true
|
|
78
|
+
}
|
|
72
79
|
});
|
|
73
80
|
return {
|
|
74
81
|
objects: objects.data.map((result) => {
|
|
@@ -92,7 +99,7 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
|
|
|
92
99
|
id: coin.coinObjectId,
|
|
93
100
|
version: coin.version,
|
|
94
101
|
digest: coin.digest,
|
|
95
|
-
balance:
|
|
102
|
+
balance: coin.balance,
|
|
96
103
|
type: `0x2::coin::Coin<${coin.coinType}>`,
|
|
97
104
|
content: Coin.serialize({
|
|
98
105
|
id: coin.coinObjectId,
|
|
@@ -118,7 +125,7 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
|
|
|
118
125
|
return {
|
|
119
126
|
balance: {
|
|
120
127
|
coinType: balance.coinType,
|
|
121
|
-
balance:
|
|
128
|
+
balance: balance.totalBalance
|
|
122
129
|
}
|
|
123
130
|
};
|
|
124
131
|
}
|
|
@@ -129,7 +136,7 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
|
|
|
129
136
|
return {
|
|
130
137
|
balances: balances.map((balance) => ({
|
|
131
138
|
coinType: balance.coinType,
|
|
132
|
-
balance:
|
|
139
|
+
balance: balance.totalBalance
|
|
133
140
|
})),
|
|
134
141
|
hasNextPage: false,
|
|
135
142
|
cursor: null
|
|
@@ -154,8 +161,10 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
|
|
|
154
161
|
transactionBlock: options.transaction,
|
|
155
162
|
signature: options.signatures,
|
|
156
163
|
options: {
|
|
157
|
-
|
|
158
|
-
showEvents: true
|
|
164
|
+
showRawEffects: true,
|
|
165
|
+
showEvents: true,
|
|
166
|
+
showObjectChanges: true,
|
|
167
|
+
showRawInput: true
|
|
159
168
|
}
|
|
160
169
|
});
|
|
161
170
|
return {
|
|
@@ -170,8 +179,10 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
|
|
|
170
179
|
return {
|
|
171
180
|
transaction: {
|
|
172
181
|
digest: await tx.getDigest(),
|
|
173
|
-
|
|
174
|
-
|
|
182
|
+
effects: parseTransactionEffectsJson({
|
|
183
|
+
effects: result.effects,
|
|
184
|
+
objectChanges: result.objectChanges
|
|
185
|
+
}),
|
|
175
186
|
signatures: [],
|
|
176
187
|
bcs: options.transaction
|
|
177
188
|
}
|
|
@@ -180,7 +191,28 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
|
|
|
180
191
|
async getReferenceGasPrice() {
|
|
181
192
|
const referenceGasPrice = await __privateGet(this, _jsonRpcClient).getReferenceGasPrice();
|
|
182
193
|
return {
|
|
183
|
-
referenceGasPrice
|
|
194
|
+
referenceGasPrice: String(referenceGasPrice)
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
async getDynamicFields(options) {
|
|
198
|
+
const dynamicFields = await __privateGet(this, _jsonRpcClient).getDynamicFields({
|
|
199
|
+
parentId: options.parentId,
|
|
200
|
+
limit: options.limit,
|
|
201
|
+
cursor: options.cursor
|
|
202
|
+
});
|
|
203
|
+
return {
|
|
204
|
+
dynamicFields: dynamicFields.data.map((dynamicField) => ({
|
|
205
|
+
id: dynamicField.objectId,
|
|
206
|
+
version: dynamicField.version,
|
|
207
|
+
digest: dynamicField.digest,
|
|
208
|
+
type: dynamicField.objectType,
|
|
209
|
+
name: {
|
|
210
|
+
type: dynamicField.name.type,
|
|
211
|
+
bcs: (0, import_bcs.fromBase64)(dynamicField.bcsName)
|
|
212
|
+
}
|
|
213
|
+
})),
|
|
214
|
+
hasNextPage: dynamicFields.hasNextPage,
|
|
215
|
+
cursor: dynamicFields.nextCursor
|
|
184
216
|
};
|
|
185
217
|
}
|
|
186
218
|
}
|
|
@@ -205,7 +237,7 @@ function parseOwner(owner) {
|
|
|
205
237
|
if ("ConsensusV2" in owner) {
|
|
206
238
|
return {
|
|
207
239
|
$kind: "ConsensusV2",
|
|
208
|
-
|
|
240
|
+
ConsensusV2: {
|
|
209
241
|
authenticator: {
|
|
210
242
|
$kind: "SingleOwner",
|
|
211
243
|
SingleOwner: owner.ConsensusV2.authenticator.SingleOwner
|
|
@@ -240,11 +272,237 @@ function parseTransaction(transaction) {
|
|
|
240
272
|
const parsedTx = import_bcs2.bcs.SenderSignedData.parse((0, import_bcs.fromBase64)(transaction.rawTransaction))[0];
|
|
241
273
|
return {
|
|
242
274
|
digest: transaction.digest,
|
|
243
|
-
effects:
|
|
275
|
+
effects: parseTransactionEffects({
|
|
276
|
+
effects: new Uint8Array(transaction.rawEffects),
|
|
277
|
+
objectChanges: transaction.objectChanges ?? null
|
|
278
|
+
}),
|
|
244
279
|
bcs: import_bcs2.bcs.TransactionData.serialize(parsedTx.intentMessage.value).toBytes(),
|
|
245
280
|
signatures: parsedTx.txSignatures
|
|
246
281
|
};
|
|
247
282
|
}
|
|
283
|
+
function parseTransactionEffects({
|
|
284
|
+
effects,
|
|
285
|
+
epoch,
|
|
286
|
+
objectChanges
|
|
287
|
+
}) {
|
|
288
|
+
const parsed = import_bcs2.bcs.TransactionEffects.parse(effects);
|
|
289
|
+
const objectTypes = {};
|
|
290
|
+
objectChanges?.forEach((change) => {
|
|
291
|
+
if (change.type !== "published") {
|
|
292
|
+
objectTypes[change.objectId] = change.objectType;
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
switch (parsed.$kind) {
|
|
296
|
+
case "V1":
|
|
297
|
+
return parseTransactionEffectsV1({ bytes: effects, effects: parsed.V1, epoch, objectTypes });
|
|
298
|
+
case "V2":
|
|
299
|
+
return parseTransactionEffectsV2({ bytes: effects, effects: parsed.V2, epoch, objectTypes });
|
|
300
|
+
default:
|
|
301
|
+
throw new Error(
|
|
302
|
+
`Unknown transaction effects version: ${parsed.$kind}`
|
|
303
|
+
);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
function parseTransactionEffectsV1(_) {
|
|
307
|
+
throw new Error("V1 effects are not supported yet");
|
|
308
|
+
}
|
|
309
|
+
function parseTransactionEffectsV2({
|
|
310
|
+
bytes,
|
|
311
|
+
effects,
|
|
312
|
+
epoch,
|
|
313
|
+
objectTypes
|
|
314
|
+
}) {
|
|
315
|
+
const changedObjects = effects.changedObjects.map(
|
|
316
|
+
([id, change]) => {
|
|
317
|
+
return {
|
|
318
|
+
id,
|
|
319
|
+
inputState: change.inputState.$kind === "Exist" ? "Exists" : "DoesNotExist",
|
|
320
|
+
inputVersion: change.inputState.Exist?.[0][0] ?? null,
|
|
321
|
+
inputDigest: change.inputState.Exist?.[0][1] ?? null,
|
|
322
|
+
inputOwner: change.inputState.Exist?.[1] ?? null,
|
|
323
|
+
outputState: change.outputState.$kind === "NotExist" ? "DoesNotExist" : change.outputState.$kind,
|
|
324
|
+
outputVersion: change.outputState.$kind === "PackageWrite" ? change.outputState.PackageWrite?.[0] : change.outputState.ObjectWrite ? effects.lamportVersion : null,
|
|
325
|
+
outputDigest: change.outputState.$kind === "PackageWrite" ? change.outputState.PackageWrite?.[1] : change.outputState.ObjectWrite?.[0] ?? null,
|
|
326
|
+
outputOwner: change.outputState.ObjectWrite ? change.outputState.ObjectWrite[1] : null,
|
|
327
|
+
idOperation: change.idOperation.$kind,
|
|
328
|
+
objectType: objectTypes[id] ?? null
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
);
|
|
332
|
+
return {
|
|
333
|
+
bcs: bytes,
|
|
334
|
+
digest: effects.transactionDigest,
|
|
335
|
+
version: 2,
|
|
336
|
+
status: effects.status.$kind === "Success" ? {
|
|
337
|
+
success: true,
|
|
338
|
+
error: null
|
|
339
|
+
} : {
|
|
340
|
+
success: false,
|
|
341
|
+
// TODO: add command
|
|
342
|
+
error: effects.status.Failed.error.$kind
|
|
343
|
+
},
|
|
344
|
+
epoch: epoch ?? null,
|
|
345
|
+
gasUsed: effects.gasUsed,
|
|
346
|
+
transactionDigest: effects.transactionDigest,
|
|
347
|
+
gasObject: effects.gasObjectIndex === null ? null : changedObjects[effects.gasObjectIndex] ?? null,
|
|
348
|
+
eventsDigest: effects.eventsDigest,
|
|
349
|
+
dependencies: effects.dependencies,
|
|
350
|
+
lamportVersion: effects.lamportVersion,
|
|
351
|
+
changedObjects,
|
|
352
|
+
unchangedSharedObjects: effects.unchangedSharedObjects.map(
|
|
353
|
+
([objectId, object]) => {
|
|
354
|
+
return {
|
|
355
|
+
kind: object.$kind,
|
|
356
|
+
objectId,
|
|
357
|
+
version: object.$kind === "ReadOnlyRoot" ? object.ReadOnlyRoot[0] : object[object.$kind],
|
|
358
|
+
digest: object.$kind === "ReadOnlyRoot" ? object.ReadOnlyRoot[1] : null,
|
|
359
|
+
objectType: objectTypes[objectId] ?? null
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
),
|
|
363
|
+
auxiliaryDataDigest: effects.auxDataDigest
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
function parseTransactionEffectsJson({
|
|
367
|
+
bytes,
|
|
368
|
+
effects,
|
|
369
|
+
epoch,
|
|
370
|
+
objectChanges
|
|
371
|
+
}) {
|
|
372
|
+
const changedObjects = [];
|
|
373
|
+
const unchangedSharedObjects = [];
|
|
374
|
+
objectChanges?.forEach((change) => {
|
|
375
|
+
switch (change.type) {
|
|
376
|
+
case "published":
|
|
377
|
+
changedObjects.push({
|
|
378
|
+
id: change.packageId,
|
|
379
|
+
inputState: "DoesNotExist",
|
|
380
|
+
inputVersion: null,
|
|
381
|
+
inputDigest: null,
|
|
382
|
+
inputOwner: null,
|
|
383
|
+
outputState: "PackageWrite",
|
|
384
|
+
outputVersion: change.version,
|
|
385
|
+
outputDigest: change.digest,
|
|
386
|
+
outputOwner: null,
|
|
387
|
+
idOperation: "Created",
|
|
388
|
+
objectType: null
|
|
389
|
+
});
|
|
390
|
+
break;
|
|
391
|
+
case "transferred":
|
|
392
|
+
changedObjects.push({
|
|
393
|
+
id: change.objectId,
|
|
394
|
+
inputState: "Exists",
|
|
395
|
+
inputVersion: change.version,
|
|
396
|
+
inputDigest: change.digest,
|
|
397
|
+
inputOwner: {
|
|
398
|
+
$kind: "AddressOwner",
|
|
399
|
+
AddressOwner: change.sender
|
|
400
|
+
},
|
|
401
|
+
outputState: "ObjectWrite",
|
|
402
|
+
outputVersion: change.version,
|
|
403
|
+
outputDigest: change.digest,
|
|
404
|
+
outputOwner: parseOwner(change.recipient),
|
|
405
|
+
idOperation: "None",
|
|
406
|
+
objectType: change.objectType
|
|
407
|
+
});
|
|
408
|
+
break;
|
|
409
|
+
case "mutated":
|
|
410
|
+
changedObjects.push({
|
|
411
|
+
id: change.objectId,
|
|
412
|
+
inputState: "Exists",
|
|
413
|
+
inputVersion: change.previousVersion,
|
|
414
|
+
inputDigest: null,
|
|
415
|
+
inputOwner: parseOwner(change.owner),
|
|
416
|
+
outputState: "ObjectWrite",
|
|
417
|
+
outputVersion: change.version,
|
|
418
|
+
outputDigest: change.digest,
|
|
419
|
+
outputOwner: parseOwner(change.owner),
|
|
420
|
+
idOperation: "None",
|
|
421
|
+
objectType: change.objectType
|
|
422
|
+
});
|
|
423
|
+
break;
|
|
424
|
+
case "deleted":
|
|
425
|
+
changedObjects.push({
|
|
426
|
+
id: change.objectId,
|
|
427
|
+
inputState: "Exists",
|
|
428
|
+
inputVersion: change.version,
|
|
429
|
+
inputDigest: effects.deleted?.find((d) => d.objectId === change.objectId)?.digest ?? null,
|
|
430
|
+
inputOwner: null,
|
|
431
|
+
outputState: "DoesNotExist",
|
|
432
|
+
outputVersion: null,
|
|
433
|
+
outputDigest: null,
|
|
434
|
+
outputOwner: null,
|
|
435
|
+
idOperation: "Deleted",
|
|
436
|
+
objectType: change.objectType
|
|
437
|
+
});
|
|
438
|
+
break;
|
|
439
|
+
case "wrapped":
|
|
440
|
+
changedObjects.push({
|
|
441
|
+
id: change.objectId,
|
|
442
|
+
inputState: "Exists",
|
|
443
|
+
inputVersion: change.version,
|
|
444
|
+
inputDigest: null,
|
|
445
|
+
inputOwner: {
|
|
446
|
+
$kind: "AddressOwner",
|
|
447
|
+
AddressOwner: change.sender
|
|
448
|
+
},
|
|
449
|
+
outputState: "ObjectWrite",
|
|
450
|
+
outputVersion: change.version,
|
|
451
|
+
outputDigest: effects.wrapped?.find((w) => w.objectId === change.objectId)?.digest ?? null,
|
|
452
|
+
outputOwner: {
|
|
453
|
+
$kind: "ObjectOwner",
|
|
454
|
+
ObjectOwner: change.sender
|
|
455
|
+
},
|
|
456
|
+
idOperation: "None",
|
|
457
|
+
objectType: change.objectType
|
|
458
|
+
});
|
|
459
|
+
break;
|
|
460
|
+
case "created":
|
|
461
|
+
changedObjects.push({
|
|
462
|
+
id: change.objectId,
|
|
463
|
+
inputState: "DoesNotExist",
|
|
464
|
+
inputVersion: null,
|
|
465
|
+
inputDigest: null,
|
|
466
|
+
inputOwner: null,
|
|
467
|
+
outputState: "ObjectWrite",
|
|
468
|
+
outputVersion: change.version,
|
|
469
|
+
outputDigest: change.digest,
|
|
470
|
+
outputOwner: parseOwner(change.owner),
|
|
471
|
+
idOperation: "Created",
|
|
472
|
+
objectType: change.objectType
|
|
473
|
+
});
|
|
474
|
+
break;
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
return {
|
|
478
|
+
bcs: bytes ?? null,
|
|
479
|
+
digest: effects.transactionDigest,
|
|
480
|
+
version: 2,
|
|
481
|
+
status: effects.status.status === "success" ? { success: true, error: null } : { success: false, error: effects.status.error },
|
|
482
|
+
epoch: epoch ?? null,
|
|
483
|
+
gasUsed: effects.gasUsed,
|
|
484
|
+
transactionDigest: effects.transactionDigest,
|
|
485
|
+
gasObject: {
|
|
486
|
+
id: effects.gasObject?.reference.objectId,
|
|
487
|
+
inputState: "Exists",
|
|
488
|
+
inputVersion: null,
|
|
489
|
+
inputDigest: null,
|
|
490
|
+
inputOwner: null,
|
|
491
|
+
outputState: "ObjectWrite",
|
|
492
|
+
outputVersion: effects.gasObject.reference.version,
|
|
493
|
+
outputDigest: effects.gasObject.reference.digest,
|
|
494
|
+
outputOwner: parseOwner(effects.gasObject.owner),
|
|
495
|
+
idOperation: "None",
|
|
496
|
+
objectType: (0, import_sui_types.normalizeStructTag)("0x2::coin::Coin<0x2::sui::SUI>")
|
|
497
|
+
},
|
|
498
|
+
eventsDigest: effects.eventsDigest ?? null,
|
|
499
|
+
dependencies: effects.dependencies ?? [],
|
|
500
|
+
lamportVersion: effects.gasObject.reference.version,
|
|
501
|
+
changedObjects,
|
|
502
|
+
unchangedSharedObjects,
|
|
503
|
+
auxiliaryDataDigest: null
|
|
504
|
+
};
|
|
505
|
+
}
|
|
248
506
|
const Balance = import_bcs2.bcs.struct("Balance", {
|
|
249
507
|
value: import_bcs2.bcs.u64()
|
|
250
508
|
});
|