@mysten/sui 2.20.0 → 2.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/bcs/bcs.d.mts +6 -6
- package/dist/bcs/index.d.mts +20 -20
- package/dist/graphql/core.d.mts.map +1 -1
- package/dist/graphql/core.mjs +5 -1
- package/dist/graphql/core.mjs.map +1 -1
- package/dist/grpc/core.d.mts.map +1 -1
- package/dist/grpc/core.mjs +1 -0
- package/dist/grpc/core.mjs.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/ledger_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/move_package_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/name_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/state_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/subscription_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.mts +4 -4
- package/dist/transactions/Transaction.d.mts +9 -9
- package/dist/transactions/Transaction.d.mts.map +1 -1
- package/dist/transactions/data/v1.d.mts +220 -220
- package/dist/transactions/data/v1.d.mts.map +1 -1
- package/dist/transactions/data/v2.d.mts +16 -16
- package/dist/transactions/data/v2.d.mts.map +1 -1
- package/dist/transactions/intents/CoinWithBalance.d.mts.map +1 -1
- package/dist/transactions/intents/CoinWithBalance.mjs +7 -3
- package/dist/transactions/intents/CoinWithBalance.mjs.map +1 -1
- package/dist/version.mjs +1 -1
- package/dist/version.mjs.map +1 -1
- package/dist/zklogin/bcs.d.mts +14 -14
- package/dist/zklogin/bcs.d.mts.map +1 -1
- package/docs/cryptography/index.md +225 -0
- package/docs/cryptography/keypairs.md +36 -143
- package/docs/cryptography/signers/aws-kms.md +110 -0
- package/docs/cryptography/signers/gcp-kms.md +91 -0
- package/docs/cryptography/signers/index.md +78 -0
- package/docs/cryptography/signers/ledger.md +76 -0
- package/docs/cryptography/{multisig.md → signers/multisig.md} +2 -2
- package/docs/cryptography/{passkey.md → signers/passkey.md} +1 -1
- package/docs/cryptography/{webcrypto-signer.md → signers/webcrypto.md} +6 -6
- package/docs/index.md +4 -5
- package/docs/llms-index.md +9 -4
- package/docs/migrations/sui-2.0/index.md +14 -1
- package/docs/zklogin.md +2 -2
- package/package.json +1 -1
- package/src/graphql/core.ts +5 -1
- package/src/grpc/core.ts +1 -0
- package/src/transactions/intents/CoinWithBalance.ts +21 -6
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @mysten/sui.js
|
|
2
2
|
|
|
3
|
+
## 2.20.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 36ab719: Fix pagination options being dropped on the unified core client.
|
|
8
|
+
|
|
9
|
+
`GraphQLCoreClient.listBalances` now forwards the `limit` and `cursor` options to the underlying
|
|
10
|
+
query (previously both were ignored, so it always returned the full, unpaginated list).
|
|
11
|
+
`GrpcCoreClient.listCoins` now forwards `limit` as the request `pageSize` (previously only
|
|
12
|
+
`cursor` was passed, so `limit` had no effect). This brings both methods in line with the other
|
|
13
|
+
transports and list methods.
|
|
14
|
+
|
|
15
|
+
## 2.20.1
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- 91c4ef5: Fix `CoinWithBalance` intent failing to build after a `toJSON`/`Transaction.from`
|
|
20
|
+
round-trip. Serializing a transaction with `CoinWithBalance` as a supported intent turns the
|
|
21
|
+
intent's `balance` into a string, which was not coerced back to a `bigint` on deserialization,
|
|
22
|
+
causing `ValiError: Invalid type: Expected bigint` when building the restored transaction.
|
|
23
|
+
|
|
3
24
|
## 2.20.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|
package/dist/bcs/bcs.d.mts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { TypeTag as TypeTag$1 } from "./types.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _mysten_bcs830 from "@mysten/bcs";
|
|
3
3
|
import { BcsType } from "@mysten/bcs";
|
|
4
4
|
|
|
5
5
|
//#region src/bcs/bcs.d.ts
|
|
6
6
|
declare const TypeTag: BcsType<string, string | TypeTag$1, string>;
|
|
7
|
-
declare function IntentMessage<T extends BcsType<any>>(T: T):
|
|
8
|
-
intent:
|
|
9
|
-
scope:
|
|
7
|
+
declare function IntentMessage<T extends BcsType<any>>(T: T): _mysten_bcs830.BcsStruct<{
|
|
8
|
+
intent: _mysten_bcs830.BcsStruct<{
|
|
9
|
+
scope: _mysten_bcs830.BcsEnum<{
|
|
10
10
|
TransactionData: null;
|
|
11
11
|
TransactionEffects: null;
|
|
12
12
|
CheckpointSummary: null;
|
|
13
13
|
PersonalMessage: null;
|
|
14
14
|
}, "IntentScope">;
|
|
15
|
-
version:
|
|
15
|
+
version: _mysten_bcs830.BcsEnum<{
|
|
16
16
|
V0: null;
|
|
17
17
|
}, "IntentVersion">;
|
|
18
|
-
appId:
|
|
18
|
+
appId: _mysten_bcs830.BcsEnum<{
|
|
19
19
|
Sui: null;
|
|
20
20
|
}, "AppId">;
|
|
21
21
|
}, string>;
|
package/dist/bcs/index.d.mts
CHANGED
|
@@ -545,7 +545,7 @@ declare const suiBcs: {
|
|
|
545
545
|
version: string;
|
|
546
546
|
digest: string;
|
|
547
547
|
};
|
|
548
|
-
}, "
|
|
548
|
+
}, "ImmOrOwnedObject" | "SharedObject" | "Receiving">;
|
|
549
549
|
FundsWithdrawal: {
|
|
550
550
|
reservation: {
|
|
551
551
|
MaxAmountU64: string;
|
|
@@ -560,7 +560,7 @@ declare const suiBcs: {
|
|
|
560
560
|
Sponsor: true;
|
|
561
561
|
}, "Sender" | "Sponsor">;
|
|
562
562
|
};
|
|
563
|
-
}, "
|
|
563
|
+
}, "Pure" | "Object" | "FundsWithdrawal">[], Iterable<_mysten_bcs0.EnumInputShape<{
|
|
564
564
|
Pure: {
|
|
565
565
|
bytes: string | Uint8Array<ArrayBufferLike>;
|
|
566
566
|
};
|
|
@@ -793,7 +793,7 @@ declare const suiBcs: {
|
|
|
793
793
|
TransactionEffects: true;
|
|
794
794
|
CheckpointSummary: true;
|
|
795
795
|
PersonalMessage: true;
|
|
796
|
-
}, "
|
|
796
|
+
}, "TransactionData" | "TransactionEffects" | "CheckpointSummary" | "PersonalMessage">;
|
|
797
797
|
version: {
|
|
798
798
|
V0: true;
|
|
799
799
|
$kind: "V0";
|
|
@@ -827,7 +827,7 @@ declare const suiBcs: {
|
|
|
827
827
|
version: string;
|
|
828
828
|
digest: string;
|
|
829
829
|
};
|
|
830
|
-
}, "
|
|
830
|
+
}, "ImmOrOwnedObject" | "SharedObject" | "Receiving">;
|
|
831
831
|
FundsWithdrawal: {
|
|
832
832
|
reservation: {
|
|
833
833
|
MaxAmountU64: string;
|
|
@@ -842,7 +842,7 @@ declare const suiBcs: {
|
|
|
842
842
|
Sponsor: true;
|
|
843
843
|
}, "Sender" | "Sponsor">;
|
|
844
844
|
};
|
|
845
|
-
}, "
|
|
845
|
+
}, "Pure" | "Object" | "FundsWithdrawal">[];
|
|
846
846
|
commands: _mysten_bcs0.EnumOutputShapeWithKeys<{
|
|
847
847
|
MoveCall: {
|
|
848
848
|
package: string;
|
|
@@ -950,7 +950,7 @@ declare const suiBcs: {
|
|
|
950
950
|
chain: string;
|
|
951
951
|
nonce: number;
|
|
952
952
|
};
|
|
953
|
-
}, "
|
|
953
|
+
}, "None" | "Epoch" | "ValidDuring">;
|
|
954
954
|
};
|
|
955
955
|
$kind: "V1";
|
|
956
956
|
};
|
|
@@ -1193,7 +1193,7 @@ declare const suiBcs: {
|
|
|
1193
1193
|
version: string;
|
|
1194
1194
|
digest: string;
|
|
1195
1195
|
};
|
|
1196
|
-
}, "
|
|
1196
|
+
}, "ImmOrOwnedObject" | "SharedObject" | "Receiving">;
|
|
1197
1197
|
FundsWithdrawal: {
|
|
1198
1198
|
reservation: {
|
|
1199
1199
|
MaxAmountU64: string;
|
|
@@ -1208,7 +1208,7 @@ declare const suiBcs: {
|
|
|
1208
1208
|
Sponsor: true;
|
|
1209
1209
|
}, "Sender" | "Sponsor">;
|
|
1210
1210
|
};
|
|
1211
|
-
}, "
|
|
1211
|
+
}, "Pure" | "Object" | "FundsWithdrawal">[], Iterable<_mysten_bcs0.EnumInputShape<{
|
|
1212
1212
|
Pure: {
|
|
1213
1213
|
bytes: string | Uint8Array<ArrayBufferLike>;
|
|
1214
1214
|
};
|
|
@@ -1508,7 +1508,7 @@ declare const suiBcs: {
|
|
|
1508
1508
|
version: string;
|
|
1509
1509
|
digest: string;
|
|
1510
1510
|
};
|
|
1511
|
-
}, "
|
|
1511
|
+
}, "ImmOrOwnedObject" | "SharedObject" | "Receiving">;
|
|
1512
1512
|
FundsWithdrawal: {
|
|
1513
1513
|
reservation: {
|
|
1514
1514
|
MaxAmountU64: string;
|
|
@@ -1523,7 +1523,7 @@ declare const suiBcs: {
|
|
|
1523
1523
|
Sponsor: true;
|
|
1524
1524
|
}, "Sender" | "Sponsor">;
|
|
1525
1525
|
};
|
|
1526
|
-
}, "
|
|
1526
|
+
}, "Pure" | "Object" | "FundsWithdrawal">[], Iterable<_mysten_bcs0.EnumInputShape<{
|
|
1527
1527
|
Pure: {
|
|
1528
1528
|
bytes: string | Uint8Array<ArrayBufferLike>;
|
|
1529
1529
|
};
|
|
@@ -1799,7 +1799,7 @@ declare const suiBcs: {
|
|
|
1799
1799
|
version: string;
|
|
1800
1800
|
digest: string;
|
|
1801
1801
|
};
|
|
1802
|
-
}, "
|
|
1802
|
+
}, "ImmOrOwnedObject" | "SharedObject" | "Receiving">;
|
|
1803
1803
|
FundsWithdrawal: {
|
|
1804
1804
|
reservation: {
|
|
1805
1805
|
MaxAmountU64: string;
|
|
@@ -1814,7 +1814,7 @@ declare const suiBcs: {
|
|
|
1814
1814
|
Sponsor: true;
|
|
1815
1815
|
}, "Sender" | "Sponsor">;
|
|
1816
1816
|
};
|
|
1817
|
-
}, "
|
|
1817
|
+
}, "Pure" | "Object" | "FundsWithdrawal">[], Iterable<_mysten_bcs0.EnumInputShape<{
|
|
1818
1818
|
Pure: {
|
|
1819
1819
|
bytes: string | Uint8Array<ArrayBufferLike>;
|
|
1820
1820
|
};
|
|
@@ -2271,7 +2271,7 @@ declare const suiBcs: {
|
|
|
2271
2271
|
startVersion: string;
|
|
2272
2272
|
owner: string;
|
|
2273
2273
|
};
|
|
2274
|
-
}, "AddressOwner" | "
|
|
2274
|
+
}, "AddressOwner" | "ObjectOwner" | "Shared" | "Immutable" | "ConsensusAddressOwner">][], Iterable<readonly [{
|
|
2275
2275
|
objectId: string | Uint8Array<ArrayBufferLike>;
|
|
2276
2276
|
version: string | number | bigint;
|
|
2277
2277
|
digest: string;
|
|
@@ -2304,7 +2304,7 @@ declare const suiBcs: {
|
|
|
2304
2304
|
startVersion: string;
|
|
2305
2305
|
owner: string;
|
|
2306
2306
|
};
|
|
2307
|
-
}, "AddressOwner" | "
|
|
2307
|
+
}, "AddressOwner" | "ObjectOwner" | "Shared" | "Immutable" | "ConsensusAddressOwner">][], Iterable<readonly [{
|
|
2308
2308
|
objectId: string | Uint8Array<ArrayBufferLike>;
|
|
2309
2309
|
version: string | number | bigint;
|
|
2310
2310
|
digest: string;
|
|
@@ -2337,7 +2337,7 @@ declare const suiBcs: {
|
|
|
2337
2337
|
startVersion: string;
|
|
2338
2338
|
owner: string;
|
|
2339
2339
|
};
|
|
2340
|
-
}, "AddressOwner" | "
|
|
2340
|
+
}, "AddressOwner" | "ObjectOwner" | "Shared" | "Immutable" | "ConsensusAddressOwner">][], Iterable<readonly [{
|
|
2341
2341
|
objectId: string | Uint8Array<ArrayBufferLike>;
|
|
2342
2342
|
version: string | number | bigint;
|
|
2343
2343
|
digest: string;
|
|
@@ -2604,7 +2604,7 @@ declare const suiBcs: {
|
|
|
2604
2604
|
startVersion: string;
|
|
2605
2605
|
owner: string;
|
|
2606
2606
|
};
|
|
2607
|
-
}, "AddressOwner" | "
|
|
2607
|
+
}, "AddressOwner" | "ObjectOwner" | "Shared" | "Immutable" | "ConsensusAddressOwner">];
|
|
2608
2608
|
}, "NotExist" | "Exist">;
|
|
2609
2609
|
outputState: _mysten_bcs0.EnumOutputShapeWithKeys<{
|
|
2610
2610
|
NotExist: true;
|
|
@@ -2619,7 +2619,7 @@ declare const suiBcs: {
|
|
|
2619
2619
|
startVersion: string;
|
|
2620
2620
|
owner: string;
|
|
2621
2621
|
};
|
|
2622
|
-
}, "AddressOwner" | "
|
|
2622
|
+
}, "AddressOwner" | "ObjectOwner" | "Shared" | "Immutable" | "ConsensusAddressOwner">];
|
|
2623
2623
|
PackageWrite: [string, string];
|
|
2624
2624
|
AccumulatorWriteV1: {
|
|
2625
2625
|
address: {
|
|
@@ -2705,7 +2705,7 @@ declare const suiBcs: {
|
|
|
2705
2705
|
ReadConsensusStreamEnded: string;
|
|
2706
2706
|
Cancelled: string;
|
|
2707
2707
|
PerEpochConfig: true;
|
|
2708
|
-
}, "
|
|
2708
|
+
}, "ReadOnlyRoot" | "MutateConsensusStreamEnded" | "ReadConsensusStreamEnded" | "Cancelled" | "PerEpochConfig">][], Iterable<readonly [string | Uint8Array<ArrayBufferLike>, _mysten_bcs0.EnumInputShape<{
|
|
2709
2709
|
ReadOnlyRoot: readonly [string | number | bigint, string];
|
|
2710
2710
|
MutateConsensusStreamEnded: string | number | bigint;
|
|
2711
2711
|
ReadConsensusStreamEnded: string | number | bigint;
|
|
@@ -2751,7 +2751,7 @@ declare const suiBcs: {
|
|
|
2751
2751
|
version: string;
|
|
2752
2752
|
digest: string;
|
|
2753
2753
|
};
|
|
2754
|
-
}, "
|
|
2754
|
+
}, "ImmOrOwnedObject" | "SharedObject" | "Receiving">;
|
|
2755
2755
|
FundsWithdrawal: {
|
|
2756
2756
|
reservation: {
|
|
2757
2757
|
MaxAmountU64: string;
|
|
@@ -2766,7 +2766,7 @@ declare const suiBcs: {
|
|
|
2766
2766
|
Sponsor: true;
|
|
2767
2767
|
}, "Sender" | "Sponsor">;
|
|
2768
2768
|
};
|
|
2769
|
-
}, "
|
|
2769
|
+
}, "Pure" | "Object" | "FundsWithdrawal">[], Iterable<_mysten_bcs0.EnumInputShape<{
|
|
2770
2770
|
Pure: {
|
|
2771
2771
|
bytes: string | Uint8Array<ArrayBufferLike>;
|
|
2772
2772
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.mts","names":[],"sources":["../../src/graphql/core.ts"],"mappings":";;;;;;;;cAoDa,iBAAA,SAA0B,UAAA;EAAA;;IAIrC,aAAA;IACA;EAAA;IAEA,aAAA,EAAe,gBAAA;IACf,GAAA,GAAM,cAAA,CAAe,UAAA;EAAA;EA2BhB,UAAA,iBAA2B,cAAA,CAAe,aAAA,MAAA,CAC/C,OAAA,EAAS,cAAA,CAAe,iBAAA,CAAkB,OAAA,IACxC,OAAA,CAAQ,cAAA,CAAe,kBAAA,CAAmB,OAAA;EAgFvC,gBAAA,iBAAiC,cAAA,CAAe,aAAA,MAAA,CACrD,OAAA,EAAS,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EAoD7C,SAAA,CACL,OAAA,EAAS,cAAA,CAAe,gBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,iBAAA;EA+BpB,UAAA,CACL,OAAA,EAAS,cAAA,CAAe,iBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,kBAAA;EAyBpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EA4BpB,YAAA,CACL,OAAA,EAAS,cAAA,CAAe,mBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,oBAAA;
|
|
1
|
+
{"version":3,"file":"core.d.mts","names":[],"sources":["../../src/graphql/core.ts"],"mappings":";;;;;;;;cAoDa,iBAAA,SAA0B,UAAA;EAAA;;IAIrC,aAAA;IACA;EAAA;IAEA,aAAA,EAAe,gBAAA;IACf,GAAA,GAAM,cAAA,CAAe,UAAA;EAAA;EA2BhB,UAAA,iBAA2B,cAAA,CAAe,aAAA,MAAA,CAC/C,OAAA,EAAS,cAAA,CAAe,iBAAA,CAAkB,OAAA,IACxC,OAAA,CAAQ,cAAA,CAAe,kBAAA,CAAmB,OAAA;EAgFvC,gBAAA,iBAAiC,cAAA,CAAe,aAAA,MAAA,CACrD,OAAA,EAAS,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EAoD7C,SAAA,CACL,OAAA,EAAS,cAAA,CAAe,gBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,iBAAA;EA+BpB,UAAA,CACL,OAAA,EAAS,cAAA,CAAe,iBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,kBAAA;EAyBpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EA4BpB,YAAA,CACL,OAAA,EAAS,cAAA,CAAe,mBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,oBAAA;EA4BpB,cAAA,iBAA+B,cAAA,CAAe,kBAAA,MAAA,CACnD,OAAA,EAAS,cAAA,CAAe,qBAAA,CAAsB,OAAA,IAC5C,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAmBtC,kBAAA,iBAAmC,cAAA,CAAe,kBAAA,MAAA,CACvD,OAAA,EAAS,cAAA,CAAe,yBAAA,CAA0B,OAAA,IAChD,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAoBtC,mBAAA,iBAAoC,cAAA,CAAe,0BAAA,MAAA,CACxD,OAAA,EAAS,cAAA,CAAe,0BAAA,CAA2B,OAAA,IACjD,OAAA,CAAQ,cAAA,CAAe,yBAAA,CAA0B,OAAA;EA4D9C,oBAAA,CAAA,GAAwB,OAAA,CAAQ,cAAA,CAAe,4BAAA;EAa/C,iBAAA,CAAA,GAAqB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EA0B5C,qBAAA,CAAA,GAAyB,OAAA,CAAQ,cAAA,CAAe,6BAAA;EAqGhD,iBAAA,CACL,OAAA,EAAS,cAAA,CAAe,wBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EAIpB,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,qBAAA;EAsBpB,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,8BAAA;EAiBpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EA8DpB,kBAAA,CACL,QAAA,GAAW,cAAA,CAAe,yBAAA,GACxB,OAAA,CAAQ,cAAA,CAAe,0BAAA;EAiB1B,wBAAA,CAAA,IAGE,eAAA,EAAiB,sBAAA,EACjB,OAAA,EAAS,uBAAA,EACT,IAAA,QAAY,OAAA,WAAa,OAAA;AAAA"}
|
package/dist/graphql/core.mjs
CHANGED
|
@@ -164,7 +164,11 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
164
164
|
async listBalances(options) {
|
|
165
165
|
const balances = await this.#graphqlQuery({
|
|
166
166
|
query: GetAllBalancesDocument,
|
|
167
|
-
variables: {
|
|
167
|
+
variables: {
|
|
168
|
+
owner: options.owner,
|
|
169
|
+
limit: options.limit,
|
|
170
|
+
cursor: options.cursor
|
|
171
|
+
}
|
|
168
172
|
}, (result) => result.address?.balances);
|
|
169
173
|
return {
|
|
170
174
|
cursor: balances.pageInfo.endCursor ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.mjs","names":["#graphqlClient","#graphqlQuery","result","GrpcTransactionType","TransactionEffectsType","BalanceChangeType"],"sources":["../../src/graphql/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { CoreClient } from '../client/core.js';\nimport type { SuiClientTypes } from '../client/types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { GraphQLQueryOptions, SuiGraphQLClient } from './client.js';\nimport type {\n\tObject_Owner_FieldsFragment,\n\tTransaction_FieldsFragment,\n} from './generated/queries.js';\n\ntype GraphQLExecutionError = NonNullable<\n\tNonNullable<Transaction_FieldsFragment['effects']>['executionError']\n>;\nimport {\n\tDefaultSuinsNameDocument,\n\tExecuteTransactionDocument,\n\tExecutionStatus,\n\tGetAllBalancesDocument,\n\tGetBalanceDocument,\n\tGetChainIdentifierDocument,\n\tGetCoinMetadataDocument,\n\tGetCoinsDocument,\n\tGetCurrentSystemStateDocument,\n\tGetMoveFunctionDocument,\n\tGetProtocolConfigDocument,\n\tGetOwnedObjectsDocument,\n\tGetReferenceGasPriceDocument,\n\tGetTransactionBlockDocument,\n\tMultiGetObjectsDocument,\n\tResolveTransactionDocument,\n\tSimulateTransactionDocument,\n\tVerifyZkLoginSignatureDocument,\n\tZkLoginIntentScope,\n} from './generated/queries.js';\nimport { ObjectError, SimulationError } from '../client/errors.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport { formatMoveAbortMessage, parseTransactionEffectsBcs } from '../client/utils.js';\nimport type { OpenMoveTypeSignatureBody, OpenMoveTypeSignature } from './types.js';\nimport {\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcJson,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { BalanceChange as BalanceChangeType } from '../grpc/proto/sui/rpc/v2/balance_change.js';\nimport { TransactionEffects as TransactionEffectsType } from '../grpc/proto/sui/rpc/v2/effects.js';\nimport { Transaction as GrpcTransactionType } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\n\nexport class GraphQLCoreClient extends CoreClient {\n\t#graphqlClient: SuiGraphQLClient;\n\n\tconstructor({\n\t\tgraphqlClient,\n\t\tmvr,\n\t}: {\n\t\tgraphqlClient: SuiGraphQLClient;\n\t\tmvr?: SuiClientTypes.MvrOptions;\n\t}) {\n\t\tsuper({ network: graphqlClient.network, base: graphqlClient, mvr });\n\t\tthis.#graphqlClient = graphqlClient;\n\t}\n\n\tasync #graphqlQuery<\n\t\tResult = Record<string, unknown>,\n\t\tVariables = Record<string, unknown>,\n\t\tData = Result,\n\t>(\n\t\toptions: GraphQLQueryOptions<Result, Variables>,\n\t\tgetData?: (result: Result) => Data,\n\t): Promise<NonNullable<Data>> {\n\t\tconst { data, errors } = await this.#graphqlClient.query(options);\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tconst extractedData = data && (getData ? getData(data) : data);\n\n\t\tif (extractedData == null) {\n\t\t\tthrow new Error('Missing response data');\n\t\t}\n\n\t\treturn extractedData as NonNullable<Data>;\n\t}\n\n\tasync getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\tconst batches = chunk(options.objectIds, 50);\n\t\tconst results: SuiClientTypes.GetObjectsResponse<Include>['objects'] = [];\n\n\t\tfor (const batch of batches) {\n\t\t\tconst page = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: MultiGetObjectsDocument,\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tobjectKeys: batch.map((address) => ({ address })),\n\t\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t(result) => result.multiGetObjects,\n\t\t\t);\n\t\t\tresults.push(\n\t\t\t\t...batch\n\t\t\t\t\t.map((id) => normalizeSuiAddress(id))\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(id) =>\n\t\t\t\t\t\t\tpage.find((obj) => obj?.address === id) ??\n\t\t\t\t\t\t\tnew ObjectError('notFound', `Object ${id} not found`),\n\t\t\t\t\t)\n\t\t\t\t\t.map((obj) => {\n\t\t\t\t\t\tif (obj instanceof ObjectError) {\n\t\t\t\t\t\t\treturn obj;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst bcsContent = obj.asMoveObject?.contents?.bcs\n\t\t\t\t\t\t\t? fromBase64(obj.asMoveObject.contents.bcs)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst objectBcs = obj.objectBcs ? fromBase64(obj.objectBcs) : undefined;\n\n\t\t\t\t\t\t// Determine object type: package or Move object\n\t\t\t\t\t\t// GraphQL already returns normalized struct tags\n\t\t\t\t\t\tlet type: string;\n\t\t\t\t\t\tif (obj.asMovePackage) {\n\t\t\t\t\t\t\ttype = 'package';\n\t\t\t\t\t\t} else if (obj.asMoveObject?.contents?.type?.repr) {\n\t\t\t\t\t\t\ttype = obj.asMoveObject.contents.type.repr;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttype = '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t\t? obj.asMoveObject?.contents?.json\n\t\t\t\t\t\t\t\t? (obj.asMoveObject.contents.json as Record<string, unknown>)\n\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst displayData = mapDisplay(\n\t\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\t\tobj.asMoveObject?.contents?.display,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\n\t\t\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\t\t\tobjectBcs: objectBcs as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\t\t\tjson: jsonContent as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\t\t\tdisplay: displayData as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t\t\t};\n\t\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 listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\tconst objects = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetOwnedObjectsDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfilter: options.type\n\t\t\t\t\t\t? { type: (await this.mvr.resolveType({ type: options.type })).type }\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tobjects: objects.nodes.map(\n\t\t\t\t(obj): SuiClientTypes.Object<Include> => ({\n\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\ttype: obj.contents?.type?.repr!,\n\t\t\t\t\tcontent: (obj.contents?.bcs\n\t\t\t\t\t\t? fromBase64(obj.contents.bcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\n\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\tobjectBcs: (obj.objectBcs\n\t\t\t\t\t\t? fromBase64(obj.objectBcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t\t? obj.contents?.json\n\t\t\t\t\t\t\t? (obj.contents.json as Record<string, unknown>)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\tdisplay: mapDisplay(\n\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\tobj.contents?.display,\n\t\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t}),\n\t\t\t),\n\t\t\thasNextPage: objects.pageInfo.hasNextPage,\n\t\t\tcursor: objects.pageInfo.endCursor ?? null,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst coins = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCoinsDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfirst: options.limit,\n\t\t\t\t\ttype: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType })).type}>`,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: coins.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: coins.pageInfo.hasNextPage,\n\t\t\tobjects: coins.nodes.map(\n\t\t\t\t(coin): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: coin.address,\n\t\t\t\t\tversion: coin.version?.toString()!,\n\t\t\t\t\tdigest: coin.digest!,\n\t\t\t\t\towner: mapOwner(coin.owner!),\n\t\t\t\t\ttype: coin.contents?.type?.repr!,\n\t\t\t\t\tbalance: (coin.contents?.json as { balance: string })?.balance,\n\t\t\t\t}),\n\t\t\t),\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetBalanceDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType })).type,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.balance,\n\t\t);\n\n\t\tconst addressBalance = BigInt(result.addressBalance ?? '0');\n\t\tconst coinBalance = BigInt(result.totalBalance ?? '0') - addressBalance;\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: result.coinType?.repr ?? coinType,\n\t\t\t\tbalance: result.totalBalance ?? '0',\n\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t},\n\t\t};\n\t}\n\tasync getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\tconst coinType = (await this.mvr.resolveType({ type: options.coinType })).type;\n\n\t\tconst { data, errors } = await this.#graphqlClient.query({\n\t\t\tquery: GetCoinMetadataDocument,\n\t\t\tvariables: {\n\t\t\t\tcoinType,\n\t\t\t},\n\t\t});\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tif (!data?.coinMetadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: data.coinMetadata.address!,\n\t\t\t\tdecimals: data.coinMetadata.decimals!,\n\t\t\t\tname: data.coinMetadata.name!,\n\t\t\t\tsymbol: data.coinMetadata.symbol!,\n\t\t\t\tdescription: data.coinMetadata.description!,\n\t\t\t\ticonUrl: data.coinMetadata.iconUrl ?? null,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\tconst balances = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetAllBalancesDocument,\n\t\t\t\tvariables: { owner: options.owner },\n\t\t\t},\n\t\t\t(result) => result.address?.balances,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: balances.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: balances.pageInfo.hasNextPage,\n\t\t\tbalances: balances.nodes.map((balance) => {\n\t\t\t\tconst addressBalance = BigInt(balance.addressBalance ?? '0');\n\t\t\t\tconst coinBalance = BigInt(balance.totalBalance ?? '0') - addressBalance;\n\t\t\t\treturn {\n\t\t\t\t\tcoinType: balance.coinType?.repr!,\n\t\t\t\t\tbalance: balance.totalBalance!,\n\t\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t\t};\n\t\t\t}),\n\t\t};\n\t}\n\tasync getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetTransactionBlockDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tdigest: options.digest,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.transaction,\n\t\t);\n\n\t\treturn parseTransaction(result, options.include);\n\t}\n\tasync executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ExecuteTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransactionDataBcs: toBase64(options.transaction),\n\t\t\t\t\tsignatures: options.signatures,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.executeTransaction,\n\t\t);\n\n\t\treturn parseTransaction(result.effects?.transaction!, options.include);\n\t}\n\tasync simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\tif (!(options.transaction instanceof Uint8Array)) {\n\t\t\tawait options.transaction.prepareForSerialization({ client: this });\n\t\t}\n\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: SimulateTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction:\n\t\t\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\t\t\tvalue: toBase64(options.transaction),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: transactionToGrpcJson(options.transaction),\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeCommandResults: options.include?.commandResults ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t\tchecksEnabled: options.checksEnabled ?? true,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.simulateTransaction,\n\t\t);\n\n\t\tconst transactionResult = parseTransaction(result.effects?.transaction!, options.include);\n\n\t\tconst commandResults =\n\t\t\toptions.include?.commandResults && result.outputs\n\t\t\t\t? result.outputs.map((output) => ({\n\t\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\t\tbcs: rv.value?.bcs ? fromBase64(rv.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tmutatedReferences: (output.mutatedReferences ?? []).map((mr) => ({\n\t\t\t\t\t\t\tbcs: mr.value?.bcs ? fromBase64(mr.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t}))\n\t\t\t\t: undefined;\n\n\t\tif (transactionResult.$kind === 'Transaction') {\n\t\t\treturn {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: transactionResult.Transaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: transactionResult.FailedTransaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t}\n\t}\n\tasync getReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetReferenceGasPriceDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch?.referenceGasPrice,\n\t\t);\n\n\t\treturn {\n\t\t\treferenceGasPrice: result ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetProtocolConfigDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch?.protocolConfigs,\n\t\t);\n\n\t\tconst featureFlags: Record<string, boolean> = {};\n\t\tfor (const flag of result?.featureFlags ?? []) {\n\t\t\tfeatureFlags[flag.key] = flag.value;\n\t\t}\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tfor (const config of result?.configs ?? []) {\n\t\t\tattributes[config.key] = config.value ?? null;\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: result?.protocolVersion?.toString() ?? (null as never),\n\t\t\t\tfeatureFlags,\n\t\t\t\tattributes,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCurrentSystemState(): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCurrentSystemStateDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch,\n\t\t);\n\n\t\tif (!result) {\n\t\t\tthrow new Error('Epoch data not found in response');\n\t\t}\n\n\t\tconst startMs = result.startTimestamp\n\t\t\t? new Date(result.startTimestamp).getTime().toString()\n\t\t\t: (null as never);\n\n\t\t// Parse the system state JSON from the MoveValue\n\t\tconst systemStateJson = result.systemState?.json as\n\t\t\t| {\n\t\t\t\t\tsystem_state_version?: string | number;\n\t\t\t\t\tsafe_mode?: boolean;\n\t\t\t\t\tsafe_mode_storage_rewards?: string;\n\t\t\t\t\tsafe_mode_computation_rewards?: string;\n\t\t\t\t\tsafe_mode_storage_rebates?: string | number;\n\t\t\t\t\tsafe_mode_non_refundable_storage_fee?: string | number;\n\t\t\t\t\tparameters?: {\n\t\t\t\t\t\tepoch_duration_ms?: string | number;\n\t\t\t\t\t\tstake_subsidy_start_epoch?: string | number;\n\t\t\t\t\t\tmax_validator_count?: string | number;\n\t\t\t\t\t\tmin_validator_joining_stake?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_threshold?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_grace_period?: string | number;\n\t\t\t\t\t};\n\t\t\t\t\tstorage_fund?: {\n\t\t\t\t\t\ttotal_object_storage_rebates?: string;\n\t\t\t\t\t\tnon_refundable_balance?: string;\n\t\t\t\t\t};\n\t\t\t\t\tstake_subsidy?: {\n\t\t\t\t\t\tbalance?: string;\n\t\t\t\t\t\tdistribution_counter?: string | number;\n\t\t\t\t\t\tcurrent_distribution_amount?: string | number;\n\t\t\t\t\t\tstake_subsidy_period_length?: string | number;\n\t\t\t\t\t\tstake_subsidy_decrease_rate?: number;\n\t\t\t\t\t};\n\t\t\t }\n\t\t\t| undefined;\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemStateJson?.system_state_version?.toString() ?? (null as never),\n\t\t\t\tepoch: result.epochId?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: result.protocolConfigs?.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: result.referenceGasPrice ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs,\n\t\t\t\tsafeMode: systemStateJson?.safe_mode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemStateJson?.safe_mode_storage_rewards ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemStateJson?.safe_mode_computation_rewards ?? (null as never),\n\t\t\t\tsafeModeStorageRebates:\n\t\t\t\t\tsystemStateJson?.safe_mode_storage_rebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemStateJson?.safe_mode_non_refundable_storage_fee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs:\n\t\t\t\t\t\tsystemStateJson?.parameters?.epoch_duration_ms?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemStateJson?.parameters?.stake_subsidy_start_epoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemStateJson?.parameters?.max_validator_count?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemStateJson?.parameters?.min_validator_joining_stake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_threshold?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_grace_period?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t},\n\t\t\t\tstorageFund: {\n\t\t\t\t\ttotalObjectStorageRebates:\n\t\t\t\t\t\tsystemStateJson?.storage_fund?.total_object_storage_rebates ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemStateJson?.storage_fund?.non_refundable_balance ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemStateJson?.stake_subsidy?.balance ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.distribution_counter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.current_distribution_amount?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_period_length?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_decrease_rate ?? (null as never),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse> {\n\t\treturn this.#graphqlClient.listDynamicFields(options);\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst intentScope =\n\t\t\toptions.intentScope === 'TransactionData'\n\t\t\t\t? ZkLoginIntentScope.TransactionData\n\t\t\t\t: ZkLoginIntentScope.PersonalMessage;\n\n\t\tconst { data } = await this.#graphqlClient.query({\n\t\t\tquery: VerifyZkLoginSignatureDocument,\n\t\t\tvariables: {\n\t\t\t\tbytes: options.bytes,\n\t\t\t\tsignature: options.signature,\n\t\t\t\tintentScope,\n\t\t\t\tauthor: options.address,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tsuccess: data?.verifyZkLoginSignature?.success ?? false,\n\t\t\terrors: [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: DefaultSuinsNameDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\taddress: options.address,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.defaultNameRecord?.domain ?? null,\n\t\t);\n\n\t\treturn {\n\t\t\tdata: { name: name },\n\t\t};\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst moveFunction = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetMoveFunctionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tpackage: (await this.mvr.resolvePackage({ package: options.packageId })).package,\n\t\t\t\t\tmodule: options.moduleName,\n\t\t\t\t\tfunction: options.name,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.package?.module?.function,\n\t\t);\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (moveFunction.visibility) {\n\t\t\tcase 'PUBLIC':\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase 'PRIVATE':\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase 'FRIEND':\n\t\t\t\tvisibility = 'friend';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\tfunction: {\n\t\t\t\tpackageId: normalizeSuiAddress(options.packageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: moveFunction.name,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: moveFunction.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tmoveFunction.typeParameters?.map(({ constraints }) => ({\n\t\t\t\t\t\tisPhantom: false,\n\t\t\t\t\t\tconstraints:\n\t\t\t\t\t\t\tconstraints.map((constraint) => {\n\t\t\t\t\t\t\t\tswitch (constraint) {\n\t\t\t\t\t\t\t\t\tcase 'COPY':\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase 'DROP':\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase 'STORE':\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase 'KEY':\n\t\t\t\t\t\t\t\t\t\treturn 'key';\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn 'unknown';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}) ?? [],\n\t\t\t\t\t})) ?? [],\n\t\t\t\tparameters:\n\t\t\t\t\tmoveFunction.parameters?.map((param) => parseNormalizedSuiMoveType(param.signature)) ??\n\t\t\t\t\t[],\n\t\t\t\treturns:\n\t\t\t\t\tmoveFunction.return?.map(({ signature }) => parseNormalizedSuiMoveType(signature)) ?? [],\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getChainIdentifier(\n\t\t_options?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\treturn this.cache.read(['chainIdentifier'], async () => {\n\t\t\tconst checkpoint = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: GetChainIdentifierDocument,\n\t\t\t\t},\n\t\t\t\t(result) => result.checkpoint,\n\t\t\t);\n\t\t\tif (!checkpoint?.digest) {\n\t\t\t\tthrow new Error('Genesis checkpoint digest not found');\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchainIdentifier: checkpoint.digest,\n\t\t\t};\n\t\t});\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst graphqlClient = this.#graphqlClient;\n\t\treturn async function resolveTransactionData(\n\t\t\ttransactionData: TransactionDataBuilder,\n\t\t\toptions: BuildTransactionOptions,\n\t\t\tnext: () => Promise<void>,\n\t\t) {\n\t\t\tconst snapshot = transactionData.snapshot();\n\t\t\t// If sender is not set, use a dummy address for resolution purposes\n\t\t\tif (!snapshot.sender) {\n\t\t\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t\t\t}\n\t\t\tconst grpcTransaction = transactionDataToGrpcTransaction(snapshot);\n\t\t\tconst transactionJson = GrpcTransactionType.toJson(grpcTransaction);\n\n\t\t\tconst { data, errors } = await graphqlClient.query({\n\t\t\t\tquery: ResolveTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction: transactionJson,\n\t\t\t\t\tdoGasSelection:\n\t\t\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\t\t\t(snapshot.gasData.budget == null || snapshot.gasData.payment == null),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\thandleGraphQLErrors(errors);\n\n\t\t\tconst transactionEffects = data?.simulateTransaction?.effects?.transaction?.effects;\n\t\t\tif (!options.onlyTransactionKind && transactionEffects?.status === ExecutionStatus.Failure) {\n\t\t\t\tconst executionError = parseGraphQLExecutionError(transactionEffects.executionError);\n\t\t\t\tconst errorMessage = executionError?.message ?? 'Transaction failed';\n\t\t\t\tthrow new SimulationError(`Transaction resolution failed: ${errorMessage}`, {\n\t\t\t\t\texecutionError,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst resolvedTransactionBcs =\n\t\t\t\tdata?.simulateTransaction?.effects?.transaction?.transactionBcs;\n\n\t\t\tif (!resolvedTransactionBcs) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tconst resolvedBuilder = TransactionDataBuilder.fromBytes(fromBase64(resolvedTransactionBcs));\n\t\t\tconst resolved = resolvedBuilder.snapshot();\n\n\t\t\tif (options.onlyTransactionKind) {\n\t\t\t\ttransactionData.applyResolvedData({\n\t\t\t\t\t...resolved,\n\t\t\t\t\tgasData: {\n\t\t\t\t\t\tbudget: null,\n\t\t\t\t\t\towner: null,\n\t\t\t\t\t\tpayment: null,\n\t\t\t\t\t\tprice: null,\n\t\t\t\t\t},\n\t\t\t\t\texpiration: null,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttransactionData.applyResolvedData(resolved);\n\t\t\t}\n\n\t\t\treturn await next();\n\t\t};\n\t}\n}\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\n}>;\n\nfunction mapDisplay(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: unknown | null; errors?: unknown | null } | null | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (!display) return null;\n\treturn {\n\t\toutput: (display.output as Record<string, unknown> | null) ?? null,\n\t\terrors: (display.errors as Record<string, string> | null) ?? null,\n\t};\n}\n\nfunction handleGraphQLErrors(errors: GraphQLResponseErrors | undefined): void {\n\tif (!errors || errors.length === 0) return;\n\n\tconst errorInstances = errors.map((error) => new GraphQLResponseError(error));\n\n\tif (errorInstances.length === 1) {\n\t\tthrow errorInstances[0];\n\t}\n\n\tthrow new AggregateError(errorInstances);\n}\n\nclass GraphQLResponseError extends Error {\n\tlocations?: Array<{ line: number; column: number }>;\n\n\tconstructor(error: GraphQLResponseErrors[0]) {\n\t\tsuper(error.message);\n\t\tthis.locations = error.locations;\n\t}\n}\n\nfunction mapOwner(owner: Object_Owner_FieldsFragment): SuiClientTypes.ObjectOwner {\n\tswitch (owner.__typename) {\n\t\tcase 'AddressOwner':\n\t\t\treturn { $kind: 'AddressOwner', AddressOwner: owner.address?.address! };\n\t\tcase 'ConsensusAddressOwner':\n\t\t\treturn {\n\t\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\t\tConsensusAddressOwner: {\n\t\t\t\t\towner: owner?.address?.address!,\n\t\t\t\t\tstartVersion: String(owner.startVersion),\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'ObjectOwner':\n\t\t\treturn { $kind: 'ObjectOwner', ObjectOwner: owner.address?.address! };\n\t\tcase 'Immutable':\n\t\t\treturn { $kind: 'Immutable', Immutable: true };\n\t\tcase 'Shared':\n\t\t\treturn {\n\t\t\t\t$kind: 'Shared',\n\t\t\t\tShared: { initialSharedVersion: String(owner.initialSharedVersion) },\n\t\t\t};\n\t}\n}\n\nfunction parseTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\ttransaction: Transaction_FieldsFragment,\n\tinclude?: Include,\n): SuiClientTypes.TransactionResult<Include> {\n\tconst objectTypes: Record<string, string> = {};\n\n\tif (include?.objectTypes) {\n\t\tconst effectsJson = transaction.effects?.effectsJson;\n\t\tif (effectsJson) {\n\t\t\tconst effects = TransactionEffectsType.fromJson(\n\t\t\t\teffectsJson as Parameters<typeof TransactionEffectsType.fromJson>[0],\n\t\t\t);\n\t\t\teffects.changedObjects?.forEach((change) => {\n\t\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tconst objectChanges = transaction.effects?.objectChanges?.nodes;\n\t\tif (objectChanges) {\n\t\t\tfor (const change of objectChanges) {\n\t\t\t\tconst type = change.outputState?.asMoveObject?.contents?.type?.repr;\n\t\t\t\tif (change.address && type) {\n\t\t\t\t\tobjectTypes[change.address] = type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tlet balanceChanges: SuiClientTypes.BalanceChange[] | undefined;\n\tif (include?.balanceChanges) {\n\t\tconst balanceChangesJson = transaction.effects?.balanceChangesJson;\n\t\tif (Array.isArray(balanceChangesJson)) {\n\t\t\tbalanceChanges = balanceChangesJson.map((json) => {\n\t\t\t\tconst change = BalanceChangeType.fromJson(\n\t\t\t\t\tjson as Parameters<typeof BalanceChangeType.fromJson>[0],\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tcoinType: change.coinType!,\n\t\t\t\t\taddress: change.address!,\n\t\t\t\t\tamount: change.amount!,\n\t\t\t\t};\n\t\t\t});\n\t\t} else {\n\t\t\tbalanceChanges = [];\n\t\t}\n\t}\n\n\t// Get status from GraphQL response\n\tconst status: SuiClientTypes.ExecutionStatus =\n\t\ttransaction.effects?.status === ExecutionStatus.Success\n\t\t\t? { success: true, error: null }\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGraphQLExecutionError(transaction.effects?.executionError),\n\t\t\t\t};\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction && transaction.transactionJson) {\n\t\tconst grpcTx = GrpcTransactionType.fromJson(\n\t\t\ttransaction.transactionJson as Parameters<typeof GrpcTransactionType.fromJson>[0],\n\t\t);\n\t\tconst resolved = grpcTransactionToTransactionData(grpcTx);\n\t\ttransactionData = {\n\t\t\tgasData: resolved.gasData,\n\t\t\tsender: resolved.sender,\n\t\t\texpiration: resolved.expiration,\n\t\t\tcommands: resolved.commands,\n\t\t\tinputs: resolved.inputs,\n\t\t\tversion: resolved.version,\n\t\t};\n\t}\n\n\tconst bcsBytes =\n\t\tinclude?.bcs && transaction.transactionBcs ? fromBase64(transaction.transactionBcs) : undefined;\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tstatus,\n\t\teffects: (include?.effects\n\t\t\t? parseTransactionEffectsBcs(fromBase64(transaction.effects?.effectsBcs!))\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['effects'],\n\t\tepoch: transaction.effects?.epoch?.epochId?.toString() ?? null,\n\t\tobjectTypes: (include?.objectTypes\n\t\t\t? objectTypes\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['objectTypes'],\n\t\ttransaction: transactionData as SuiClientTypes.Transaction<Include>['transaction'],\n\t\tbcs: bcsBytes as SuiClientTypes.Transaction<Include>['bcs'],\n\t\tsignatures: transaction.signatures.map((sig) => sig.signatureBytes!),\n\t\tbalanceChanges: balanceChanges as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.effects?.events?.nodes.map((event) => {\n\t\t\t\t\tconst eventType = event.contents?.type?.repr!;\n\t\t\t\t\tconst [packageId, module] = eventType.split('::');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpackageId,\n\t\t\t\t\t\tmodule,\n\t\t\t\t\t\tsender: event.sender?.address!,\n\t\t\t\t\t\teventType,\n\t\t\t\t\t\tbcs: event.contents?.bcs ? fromBase64(event.contents.bcs) : new Uint8Array(),\n\t\t\t\t\t\tjson: (event.contents?.json as Record<string, unknown>) ?? null,\n\t\t\t\t\t};\n\t\t\t\t}) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['events'],\n\t};\n\n\treturn status.success\n\t\t? { $kind: 'Transaction', Transaction: result, FailedTransaction: undefined as never }\n\t\t: { $kind: 'FailedTransaction', Transaction: undefined as never, FailedTransaction: result };\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenMoveTypeSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.ref === '&') {\n\t\treference = 'immutable';\n\t} else if (type.ref === '&mut') {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body),\n\t};\n}\n\nfunction parseGraphQLExecutionError(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): SuiClientTypes.ExecutionError {\n\tconst name = mapGraphQLExecutionErrorKind(executionError);\n\n\tif (name === 'MoveAbort' && executionError?.abortCode != null) {\n\t\tconst location = parseGraphQLMoveLocation(executionError);\n\t\tconst cleverError = parseGraphQLCleverError(executionError);\n\t\tconst commandMatch = executionError.message?.match(/in (\\d+)\\w* command/);\n\t\tconst command = commandMatch ? parseInt(commandMatch[1], 10) - 1 : undefined;\n\n\t\treturn {\n\t\t\t$kind: 'MoveAbort',\n\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\tcommand,\n\t\t\t\tlocation: location\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tpackage: location.package,\n\t\t\t\t\t\t\tmodule: location.module,\n\t\t\t\t\t\t\tfunctionName: location.functionName,\n\t\t\t\t\t\t\tinstruction: location.instruction,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tcleverError: cleverError\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tlineNumber: cleverError.lineNumber,\n\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\tvalue: cleverError.value,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t}),\n\t\t\tcommand,\n\t\t\tMoveAbort: {\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tlocation,\n\t\t\t\tcleverError,\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\t$kind: 'Unknown',\n\t\tmessage: executionError?.message ?? 'Transaction failed',\n\t\tUnknown: null,\n\t};\n}\n\nfunction mapGraphQLExecutionErrorKind(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): string {\n\tif (executionError?.abortCode != null) {\n\t\treturn 'MoveAbort';\n\t}\n\n\tconst match = executionError?.message?.match(/^(\\w+)/);\n\treturn match?.[1] ?? 'Unknown';\n}\n\nfunction parseGraphQLMoveLocation(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.MoveLocation | undefined {\n\tconst hasLocation = executionError.module?.package?.address && executionError.module?.name;\n\tif (!hasLocation) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tpackage: executionError.module?.package?.address,\n\t\tmodule: executionError.module?.name,\n\t\tfunctionName: executionError.function?.name,\n\t\tinstruction: executionError.instructionOffset ?? undefined,\n\t};\n}\n\nfunction parseGraphQLCleverError(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.CleverError | undefined {\n\tconst hasCleverError = executionError.identifier || executionError.constant;\n\tif (!hasCleverError) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tconstantName: executionError.identifier ?? undefined,\n\t\tvalue: executionError.constant ?? undefined,\n\t\tlineNumber: executionError.sourceLineNumber ?? undefined,\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(\n\ttype: OpenMoveTypeSignatureBody,\n): SuiClientTypes.OpenSignatureBody {\n\tswitch (type) {\n\t\tcase 'address':\n\t\t\treturn { $kind: 'address' };\n\t\tcase 'bool':\n\t\t\treturn { $kind: 'bool' };\n\t\tcase 'u8':\n\t\t\treturn { $kind: 'u8' };\n\t\tcase 'u16':\n\t\t\treturn { $kind: 'u16' };\n\t\tcase 'u32':\n\t\t\treturn { $kind: 'u32' };\n\t\tcase 'u64':\n\t\t\treturn { $kind: 'u64' };\n\t\tcase 'u128':\n\t\t\treturn { $kind: 'u128' };\n\t\tcase 'u256':\n\t\t\treturn { $kind: 'u256' };\n\t}\n\n\tif (typeof type === 'string') {\n\t\tthrow new Error(`Unknown type: ${type}`);\n\t}\n\n\tif ('vector' in type) {\n\t\treturn {\n\t\t\t$kind: 'vector',\n\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.vector),\n\t\t};\n\t}\n\n\tif ('datatype' in type) {\n\t\treturn {\n\t\t\t$kind: 'datatype',\n\t\t\tdatatype: {\n\t\t\t\ttypeName: `${normalizeSuiAddress(type.datatype.package)}::${type.datatype.module}::${type.datatype.type}`,\n\t\t\t\ttypeParameters: type.datatype.typeParameters.map((t) => parseNormalizedSuiMoveTypeBody(t)),\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('typeParameter' in type) {\n\t\treturn {\n\t\t\t$kind: 'typeParameter',\n\t\t\tindex: type.typeParameter,\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown type: ${JSON.stringify(type)}`);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.mjs","names":["#graphqlClient","#graphqlQuery","result","GrpcTransactionType","TransactionEffectsType","BalanceChangeType"],"sources":["../../src/graphql/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { CoreClient } from '../client/core.js';\nimport type { SuiClientTypes } from '../client/types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { GraphQLQueryOptions, SuiGraphQLClient } from './client.js';\nimport type {\n\tObject_Owner_FieldsFragment,\n\tTransaction_FieldsFragment,\n} from './generated/queries.js';\n\ntype GraphQLExecutionError = NonNullable<\n\tNonNullable<Transaction_FieldsFragment['effects']>['executionError']\n>;\nimport {\n\tDefaultSuinsNameDocument,\n\tExecuteTransactionDocument,\n\tExecutionStatus,\n\tGetAllBalancesDocument,\n\tGetBalanceDocument,\n\tGetChainIdentifierDocument,\n\tGetCoinMetadataDocument,\n\tGetCoinsDocument,\n\tGetCurrentSystemStateDocument,\n\tGetMoveFunctionDocument,\n\tGetProtocolConfigDocument,\n\tGetOwnedObjectsDocument,\n\tGetReferenceGasPriceDocument,\n\tGetTransactionBlockDocument,\n\tMultiGetObjectsDocument,\n\tResolveTransactionDocument,\n\tSimulateTransactionDocument,\n\tVerifyZkLoginSignatureDocument,\n\tZkLoginIntentScope,\n} from './generated/queries.js';\nimport { ObjectError, SimulationError } from '../client/errors.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport { formatMoveAbortMessage, parseTransactionEffectsBcs } from '../client/utils.js';\nimport type { OpenMoveTypeSignatureBody, OpenMoveTypeSignature } from './types.js';\nimport {\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcJson,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { BalanceChange as BalanceChangeType } from '../grpc/proto/sui/rpc/v2/balance_change.js';\nimport { TransactionEffects as TransactionEffectsType } from '../grpc/proto/sui/rpc/v2/effects.js';\nimport { Transaction as GrpcTransactionType } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\n\nexport class GraphQLCoreClient extends CoreClient {\n\t#graphqlClient: SuiGraphQLClient;\n\n\tconstructor({\n\t\tgraphqlClient,\n\t\tmvr,\n\t}: {\n\t\tgraphqlClient: SuiGraphQLClient;\n\t\tmvr?: SuiClientTypes.MvrOptions;\n\t}) {\n\t\tsuper({ network: graphqlClient.network, base: graphqlClient, mvr });\n\t\tthis.#graphqlClient = graphqlClient;\n\t}\n\n\tasync #graphqlQuery<\n\t\tResult = Record<string, unknown>,\n\t\tVariables = Record<string, unknown>,\n\t\tData = Result,\n\t>(\n\t\toptions: GraphQLQueryOptions<Result, Variables>,\n\t\tgetData?: (result: Result) => Data,\n\t): Promise<NonNullable<Data>> {\n\t\tconst { data, errors } = await this.#graphqlClient.query(options);\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tconst extractedData = data && (getData ? getData(data) : data);\n\n\t\tif (extractedData == null) {\n\t\t\tthrow new Error('Missing response data');\n\t\t}\n\n\t\treturn extractedData as NonNullable<Data>;\n\t}\n\n\tasync getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\tconst batches = chunk(options.objectIds, 50);\n\t\tconst results: SuiClientTypes.GetObjectsResponse<Include>['objects'] = [];\n\n\t\tfor (const batch of batches) {\n\t\t\tconst page = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: MultiGetObjectsDocument,\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tobjectKeys: batch.map((address) => ({ address })),\n\t\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t(result) => result.multiGetObjects,\n\t\t\t);\n\t\t\tresults.push(\n\t\t\t\t...batch\n\t\t\t\t\t.map((id) => normalizeSuiAddress(id))\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(id) =>\n\t\t\t\t\t\t\tpage.find((obj) => obj?.address === id) ??\n\t\t\t\t\t\t\tnew ObjectError('notFound', `Object ${id} not found`),\n\t\t\t\t\t)\n\t\t\t\t\t.map((obj) => {\n\t\t\t\t\t\tif (obj instanceof ObjectError) {\n\t\t\t\t\t\t\treturn obj;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst bcsContent = obj.asMoveObject?.contents?.bcs\n\t\t\t\t\t\t\t? fromBase64(obj.asMoveObject.contents.bcs)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst objectBcs = obj.objectBcs ? fromBase64(obj.objectBcs) : undefined;\n\n\t\t\t\t\t\t// Determine object type: package or Move object\n\t\t\t\t\t\t// GraphQL already returns normalized struct tags\n\t\t\t\t\t\tlet type: string;\n\t\t\t\t\t\tif (obj.asMovePackage) {\n\t\t\t\t\t\t\ttype = 'package';\n\t\t\t\t\t\t} else if (obj.asMoveObject?.contents?.type?.repr) {\n\t\t\t\t\t\t\ttype = obj.asMoveObject.contents.type.repr;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttype = '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t\t? obj.asMoveObject?.contents?.json\n\t\t\t\t\t\t\t\t? (obj.asMoveObject.contents.json as Record<string, unknown>)\n\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst displayData = mapDisplay(\n\t\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\t\tobj.asMoveObject?.contents?.display,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\n\t\t\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\t\t\tobjectBcs: objectBcs as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\t\t\tjson: jsonContent as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\t\t\tdisplay: displayData as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t\t\t};\n\t\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 listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\tconst objects = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetOwnedObjectsDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfilter: options.type\n\t\t\t\t\t\t? { type: (await this.mvr.resolveType({ type: options.type })).type }\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tobjects: objects.nodes.map(\n\t\t\t\t(obj): SuiClientTypes.Object<Include> => ({\n\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\ttype: obj.contents?.type?.repr!,\n\t\t\t\t\tcontent: (obj.contents?.bcs\n\t\t\t\t\t\t? fromBase64(obj.contents.bcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\n\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\tobjectBcs: (obj.objectBcs\n\t\t\t\t\t\t? fromBase64(obj.objectBcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t\t? obj.contents?.json\n\t\t\t\t\t\t\t? (obj.contents.json as Record<string, unknown>)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\tdisplay: mapDisplay(\n\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\tobj.contents?.display,\n\t\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t}),\n\t\t\t),\n\t\t\thasNextPage: objects.pageInfo.hasNextPage,\n\t\t\tcursor: objects.pageInfo.endCursor ?? null,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst coins = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCoinsDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfirst: options.limit,\n\t\t\t\t\ttype: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType })).type}>`,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: coins.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: coins.pageInfo.hasNextPage,\n\t\t\tobjects: coins.nodes.map(\n\t\t\t\t(coin): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: coin.address,\n\t\t\t\t\tversion: coin.version?.toString()!,\n\t\t\t\t\tdigest: coin.digest!,\n\t\t\t\t\towner: mapOwner(coin.owner!),\n\t\t\t\t\ttype: coin.contents?.type?.repr!,\n\t\t\t\t\tbalance: (coin.contents?.json as { balance: string })?.balance,\n\t\t\t\t}),\n\t\t\t),\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetBalanceDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType })).type,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.balance,\n\t\t);\n\n\t\tconst addressBalance = BigInt(result.addressBalance ?? '0');\n\t\tconst coinBalance = BigInt(result.totalBalance ?? '0') - addressBalance;\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: result.coinType?.repr ?? coinType,\n\t\t\t\tbalance: result.totalBalance ?? '0',\n\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t},\n\t\t};\n\t}\n\tasync getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\tconst coinType = (await this.mvr.resolveType({ type: options.coinType })).type;\n\n\t\tconst { data, errors } = await this.#graphqlClient.query({\n\t\t\tquery: GetCoinMetadataDocument,\n\t\t\tvariables: {\n\t\t\t\tcoinType,\n\t\t\t},\n\t\t});\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tif (!data?.coinMetadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: data.coinMetadata.address!,\n\t\t\t\tdecimals: data.coinMetadata.decimals!,\n\t\t\t\tname: data.coinMetadata.name!,\n\t\t\t\tsymbol: data.coinMetadata.symbol!,\n\t\t\t\tdescription: data.coinMetadata.description!,\n\t\t\t\ticonUrl: data.coinMetadata.iconUrl ?? null,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\tconst balances = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetAllBalancesDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.balances,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: balances.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: balances.pageInfo.hasNextPage,\n\t\t\tbalances: balances.nodes.map((balance) => {\n\t\t\t\tconst addressBalance = BigInt(balance.addressBalance ?? '0');\n\t\t\t\tconst coinBalance = BigInt(balance.totalBalance ?? '0') - addressBalance;\n\t\t\t\treturn {\n\t\t\t\t\tcoinType: balance.coinType?.repr!,\n\t\t\t\t\tbalance: balance.totalBalance!,\n\t\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t\t};\n\t\t\t}),\n\t\t};\n\t}\n\tasync getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetTransactionBlockDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tdigest: options.digest,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.transaction,\n\t\t);\n\n\t\treturn parseTransaction(result, options.include);\n\t}\n\tasync executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ExecuteTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransactionDataBcs: toBase64(options.transaction),\n\t\t\t\t\tsignatures: options.signatures,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.executeTransaction,\n\t\t);\n\n\t\treturn parseTransaction(result.effects?.transaction!, options.include);\n\t}\n\tasync simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\tif (!(options.transaction instanceof Uint8Array)) {\n\t\t\tawait options.transaction.prepareForSerialization({ client: this });\n\t\t}\n\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: SimulateTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction:\n\t\t\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\t\t\tvalue: toBase64(options.transaction),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: transactionToGrpcJson(options.transaction),\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeCommandResults: options.include?.commandResults ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t\tchecksEnabled: options.checksEnabled ?? true,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.simulateTransaction,\n\t\t);\n\n\t\tconst transactionResult = parseTransaction(result.effects?.transaction!, options.include);\n\n\t\tconst commandResults =\n\t\t\toptions.include?.commandResults && result.outputs\n\t\t\t\t? result.outputs.map((output) => ({\n\t\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\t\tbcs: rv.value?.bcs ? fromBase64(rv.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tmutatedReferences: (output.mutatedReferences ?? []).map((mr) => ({\n\t\t\t\t\t\t\tbcs: mr.value?.bcs ? fromBase64(mr.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t}))\n\t\t\t\t: undefined;\n\n\t\tif (transactionResult.$kind === 'Transaction') {\n\t\t\treturn {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: transactionResult.Transaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: transactionResult.FailedTransaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t}\n\t}\n\tasync getReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetReferenceGasPriceDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch?.referenceGasPrice,\n\t\t);\n\n\t\treturn {\n\t\t\treferenceGasPrice: result ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetProtocolConfigDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch?.protocolConfigs,\n\t\t);\n\n\t\tconst featureFlags: Record<string, boolean> = {};\n\t\tfor (const flag of result?.featureFlags ?? []) {\n\t\t\tfeatureFlags[flag.key] = flag.value;\n\t\t}\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tfor (const config of result?.configs ?? []) {\n\t\t\tattributes[config.key] = config.value ?? null;\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: result?.protocolVersion?.toString() ?? (null as never),\n\t\t\t\tfeatureFlags,\n\t\t\t\tattributes,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCurrentSystemState(): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCurrentSystemStateDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch,\n\t\t);\n\n\t\tif (!result) {\n\t\t\tthrow new Error('Epoch data not found in response');\n\t\t}\n\n\t\tconst startMs = result.startTimestamp\n\t\t\t? new Date(result.startTimestamp).getTime().toString()\n\t\t\t: (null as never);\n\n\t\t// Parse the system state JSON from the MoveValue\n\t\tconst systemStateJson = result.systemState?.json as\n\t\t\t| {\n\t\t\t\t\tsystem_state_version?: string | number;\n\t\t\t\t\tsafe_mode?: boolean;\n\t\t\t\t\tsafe_mode_storage_rewards?: string;\n\t\t\t\t\tsafe_mode_computation_rewards?: string;\n\t\t\t\t\tsafe_mode_storage_rebates?: string | number;\n\t\t\t\t\tsafe_mode_non_refundable_storage_fee?: string | number;\n\t\t\t\t\tparameters?: {\n\t\t\t\t\t\tepoch_duration_ms?: string | number;\n\t\t\t\t\t\tstake_subsidy_start_epoch?: string | number;\n\t\t\t\t\t\tmax_validator_count?: string | number;\n\t\t\t\t\t\tmin_validator_joining_stake?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_threshold?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_grace_period?: string | number;\n\t\t\t\t\t};\n\t\t\t\t\tstorage_fund?: {\n\t\t\t\t\t\ttotal_object_storage_rebates?: string;\n\t\t\t\t\t\tnon_refundable_balance?: string;\n\t\t\t\t\t};\n\t\t\t\t\tstake_subsidy?: {\n\t\t\t\t\t\tbalance?: string;\n\t\t\t\t\t\tdistribution_counter?: string | number;\n\t\t\t\t\t\tcurrent_distribution_amount?: string | number;\n\t\t\t\t\t\tstake_subsidy_period_length?: string | number;\n\t\t\t\t\t\tstake_subsidy_decrease_rate?: number;\n\t\t\t\t\t};\n\t\t\t }\n\t\t\t| undefined;\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemStateJson?.system_state_version?.toString() ?? (null as never),\n\t\t\t\tepoch: result.epochId?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: result.protocolConfigs?.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: result.referenceGasPrice ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs,\n\t\t\t\tsafeMode: systemStateJson?.safe_mode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemStateJson?.safe_mode_storage_rewards ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemStateJson?.safe_mode_computation_rewards ?? (null as never),\n\t\t\t\tsafeModeStorageRebates:\n\t\t\t\t\tsystemStateJson?.safe_mode_storage_rebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemStateJson?.safe_mode_non_refundable_storage_fee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs:\n\t\t\t\t\t\tsystemStateJson?.parameters?.epoch_duration_ms?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemStateJson?.parameters?.stake_subsidy_start_epoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemStateJson?.parameters?.max_validator_count?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemStateJson?.parameters?.min_validator_joining_stake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_threshold?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_grace_period?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t},\n\t\t\t\tstorageFund: {\n\t\t\t\t\ttotalObjectStorageRebates:\n\t\t\t\t\t\tsystemStateJson?.storage_fund?.total_object_storage_rebates ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemStateJson?.storage_fund?.non_refundable_balance ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemStateJson?.stake_subsidy?.balance ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.distribution_counter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.current_distribution_amount?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_period_length?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_decrease_rate ?? (null as never),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse> {\n\t\treturn this.#graphqlClient.listDynamicFields(options);\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst intentScope =\n\t\t\toptions.intentScope === 'TransactionData'\n\t\t\t\t? ZkLoginIntentScope.TransactionData\n\t\t\t\t: ZkLoginIntentScope.PersonalMessage;\n\n\t\tconst { data } = await this.#graphqlClient.query({\n\t\t\tquery: VerifyZkLoginSignatureDocument,\n\t\t\tvariables: {\n\t\t\t\tbytes: options.bytes,\n\t\t\t\tsignature: options.signature,\n\t\t\t\tintentScope,\n\t\t\t\tauthor: options.address,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tsuccess: data?.verifyZkLoginSignature?.success ?? false,\n\t\t\terrors: [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: DefaultSuinsNameDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\taddress: options.address,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.defaultNameRecord?.domain ?? null,\n\t\t);\n\n\t\treturn {\n\t\t\tdata: { name: name },\n\t\t};\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst moveFunction = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetMoveFunctionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tpackage: (await this.mvr.resolvePackage({ package: options.packageId })).package,\n\t\t\t\t\tmodule: options.moduleName,\n\t\t\t\t\tfunction: options.name,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.package?.module?.function,\n\t\t);\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (moveFunction.visibility) {\n\t\t\tcase 'PUBLIC':\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase 'PRIVATE':\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase 'FRIEND':\n\t\t\t\tvisibility = 'friend';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\tfunction: {\n\t\t\t\tpackageId: normalizeSuiAddress(options.packageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: moveFunction.name,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: moveFunction.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tmoveFunction.typeParameters?.map(({ constraints }) => ({\n\t\t\t\t\t\tisPhantom: false,\n\t\t\t\t\t\tconstraints:\n\t\t\t\t\t\t\tconstraints.map((constraint) => {\n\t\t\t\t\t\t\t\tswitch (constraint) {\n\t\t\t\t\t\t\t\t\tcase 'COPY':\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase 'DROP':\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase 'STORE':\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase 'KEY':\n\t\t\t\t\t\t\t\t\t\treturn 'key';\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn 'unknown';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}) ?? [],\n\t\t\t\t\t})) ?? [],\n\t\t\t\tparameters:\n\t\t\t\t\tmoveFunction.parameters?.map((param) => parseNormalizedSuiMoveType(param.signature)) ??\n\t\t\t\t\t[],\n\t\t\t\treturns:\n\t\t\t\t\tmoveFunction.return?.map(({ signature }) => parseNormalizedSuiMoveType(signature)) ?? [],\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getChainIdentifier(\n\t\t_options?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\treturn this.cache.read(['chainIdentifier'], async () => {\n\t\t\tconst checkpoint = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: GetChainIdentifierDocument,\n\t\t\t\t},\n\t\t\t\t(result) => result.checkpoint,\n\t\t\t);\n\t\t\tif (!checkpoint?.digest) {\n\t\t\t\tthrow new Error('Genesis checkpoint digest not found');\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchainIdentifier: checkpoint.digest,\n\t\t\t};\n\t\t});\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst graphqlClient = this.#graphqlClient;\n\t\treturn async function resolveTransactionData(\n\t\t\ttransactionData: TransactionDataBuilder,\n\t\t\toptions: BuildTransactionOptions,\n\t\t\tnext: () => Promise<void>,\n\t\t) {\n\t\t\tconst snapshot = transactionData.snapshot();\n\t\t\t// If sender is not set, use a dummy address for resolution purposes\n\t\t\tif (!snapshot.sender) {\n\t\t\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t\t\t}\n\t\t\tconst grpcTransaction = transactionDataToGrpcTransaction(snapshot);\n\t\t\tconst transactionJson = GrpcTransactionType.toJson(grpcTransaction);\n\n\t\t\tconst { data, errors } = await graphqlClient.query({\n\t\t\t\tquery: ResolveTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction: transactionJson,\n\t\t\t\t\tdoGasSelection:\n\t\t\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\t\t\t(snapshot.gasData.budget == null || snapshot.gasData.payment == null),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\thandleGraphQLErrors(errors);\n\n\t\t\tconst transactionEffects = data?.simulateTransaction?.effects?.transaction?.effects;\n\t\t\tif (!options.onlyTransactionKind && transactionEffects?.status === ExecutionStatus.Failure) {\n\t\t\t\tconst executionError = parseGraphQLExecutionError(transactionEffects.executionError);\n\t\t\t\tconst errorMessage = executionError?.message ?? 'Transaction failed';\n\t\t\t\tthrow new SimulationError(`Transaction resolution failed: ${errorMessage}`, {\n\t\t\t\t\texecutionError,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst resolvedTransactionBcs =\n\t\t\t\tdata?.simulateTransaction?.effects?.transaction?.transactionBcs;\n\n\t\t\tif (!resolvedTransactionBcs) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tconst resolvedBuilder = TransactionDataBuilder.fromBytes(fromBase64(resolvedTransactionBcs));\n\t\t\tconst resolved = resolvedBuilder.snapshot();\n\n\t\t\tif (options.onlyTransactionKind) {\n\t\t\t\ttransactionData.applyResolvedData({\n\t\t\t\t\t...resolved,\n\t\t\t\t\tgasData: {\n\t\t\t\t\t\tbudget: null,\n\t\t\t\t\t\towner: null,\n\t\t\t\t\t\tpayment: null,\n\t\t\t\t\t\tprice: null,\n\t\t\t\t\t},\n\t\t\t\t\texpiration: null,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttransactionData.applyResolvedData(resolved);\n\t\t\t}\n\n\t\t\treturn await next();\n\t\t};\n\t}\n}\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\n}>;\n\nfunction mapDisplay(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: unknown | null; errors?: unknown | null } | null | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (!display) return null;\n\treturn {\n\t\toutput: (display.output as Record<string, unknown> | null) ?? null,\n\t\terrors: (display.errors as Record<string, string> | null) ?? null,\n\t};\n}\n\nfunction handleGraphQLErrors(errors: GraphQLResponseErrors | undefined): void {\n\tif (!errors || errors.length === 0) return;\n\n\tconst errorInstances = errors.map((error) => new GraphQLResponseError(error));\n\n\tif (errorInstances.length === 1) {\n\t\tthrow errorInstances[0];\n\t}\n\n\tthrow new AggregateError(errorInstances);\n}\n\nclass GraphQLResponseError extends Error {\n\tlocations?: Array<{ line: number; column: number }>;\n\n\tconstructor(error: GraphQLResponseErrors[0]) {\n\t\tsuper(error.message);\n\t\tthis.locations = error.locations;\n\t}\n}\n\nfunction mapOwner(owner: Object_Owner_FieldsFragment): SuiClientTypes.ObjectOwner {\n\tswitch (owner.__typename) {\n\t\tcase 'AddressOwner':\n\t\t\treturn { $kind: 'AddressOwner', AddressOwner: owner.address?.address! };\n\t\tcase 'ConsensusAddressOwner':\n\t\t\treturn {\n\t\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\t\tConsensusAddressOwner: {\n\t\t\t\t\towner: owner?.address?.address!,\n\t\t\t\t\tstartVersion: String(owner.startVersion),\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'ObjectOwner':\n\t\t\treturn { $kind: 'ObjectOwner', ObjectOwner: owner.address?.address! };\n\t\tcase 'Immutable':\n\t\t\treturn { $kind: 'Immutable', Immutable: true };\n\t\tcase 'Shared':\n\t\t\treturn {\n\t\t\t\t$kind: 'Shared',\n\t\t\t\tShared: { initialSharedVersion: String(owner.initialSharedVersion) },\n\t\t\t};\n\t}\n}\n\nfunction parseTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\ttransaction: Transaction_FieldsFragment,\n\tinclude?: Include,\n): SuiClientTypes.TransactionResult<Include> {\n\tconst objectTypes: Record<string, string> = {};\n\n\tif (include?.objectTypes) {\n\t\tconst effectsJson = transaction.effects?.effectsJson;\n\t\tif (effectsJson) {\n\t\t\tconst effects = TransactionEffectsType.fromJson(\n\t\t\t\teffectsJson as Parameters<typeof TransactionEffectsType.fromJson>[0],\n\t\t\t);\n\t\t\teffects.changedObjects?.forEach((change) => {\n\t\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tconst objectChanges = transaction.effects?.objectChanges?.nodes;\n\t\tif (objectChanges) {\n\t\t\tfor (const change of objectChanges) {\n\t\t\t\tconst type = change.outputState?.asMoveObject?.contents?.type?.repr;\n\t\t\t\tif (change.address && type) {\n\t\t\t\t\tobjectTypes[change.address] = type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tlet balanceChanges: SuiClientTypes.BalanceChange[] | undefined;\n\tif (include?.balanceChanges) {\n\t\tconst balanceChangesJson = transaction.effects?.balanceChangesJson;\n\t\tif (Array.isArray(balanceChangesJson)) {\n\t\t\tbalanceChanges = balanceChangesJson.map((json) => {\n\t\t\t\tconst change = BalanceChangeType.fromJson(\n\t\t\t\t\tjson as Parameters<typeof BalanceChangeType.fromJson>[0],\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tcoinType: change.coinType!,\n\t\t\t\t\taddress: change.address!,\n\t\t\t\t\tamount: change.amount!,\n\t\t\t\t};\n\t\t\t});\n\t\t} else {\n\t\t\tbalanceChanges = [];\n\t\t}\n\t}\n\n\t// Get status from GraphQL response\n\tconst status: SuiClientTypes.ExecutionStatus =\n\t\ttransaction.effects?.status === ExecutionStatus.Success\n\t\t\t? { success: true, error: null }\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGraphQLExecutionError(transaction.effects?.executionError),\n\t\t\t\t};\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction && transaction.transactionJson) {\n\t\tconst grpcTx = GrpcTransactionType.fromJson(\n\t\t\ttransaction.transactionJson as Parameters<typeof GrpcTransactionType.fromJson>[0],\n\t\t);\n\t\tconst resolved = grpcTransactionToTransactionData(grpcTx);\n\t\ttransactionData = {\n\t\t\tgasData: resolved.gasData,\n\t\t\tsender: resolved.sender,\n\t\t\texpiration: resolved.expiration,\n\t\t\tcommands: resolved.commands,\n\t\t\tinputs: resolved.inputs,\n\t\t\tversion: resolved.version,\n\t\t};\n\t}\n\n\tconst bcsBytes =\n\t\tinclude?.bcs && transaction.transactionBcs ? fromBase64(transaction.transactionBcs) : undefined;\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tstatus,\n\t\teffects: (include?.effects\n\t\t\t? parseTransactionEffectsBcs(fromBase64(transaction.effects?.effectsBcs!))\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['effects'],\n\t\tepoch: transaction.effects?.epoch?.epochId?.toString() ?? null,\n\t\tobjectTypes: (include?.objectTypes\n\t\t\t? objectTypes\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['objectTypes'],\n\t\ttransaction: transactionData as SuiClientTypes.Transaction<Include>['transaction'],\n\t\tbcs: bcsBytes as SuiClientTypes.Transaction<Include>['bcs'],\n\t\tsignatures: transaction.signatures.map((sig) => sig.signatureBytes!),\n\t\tbalanceChanges: balanceChanges as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.effects?.events?.nodes.map((event) => {\n\t\t\t\t\tconst eventType = event.contents?.type?.repr!;\n\t\t\t\t\tconst [packageId, module] = eventType.split('::');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpackageId,\n\t\t\t\t\t\tmodule,\n\t\t\t\t\t\tsender: event.sender?.address!,\n\t\t\t\t\t\teventType,\n\t\t\t\t\t\tbcs: event.contents?.bcs ? fromBase64(event.contents.bcs) : new Uint8Array(),\n\t\t\t\t\t\tjson: (event.contents?.json as Record<string, unknown>) ?? null,\n\t\t\t\t\t};\n\t\t\t\t}) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['events'],\n\t};\n\n\treturn status.success\n\t\t? { $kind: 'Transaction', Transaction: result, FailedTransaction: undefined as never }\n\t\t: { $kind: 'FailedTransaction', Transaction: undefined as never, FailedTransaction: result };\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenMoveTypeSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.ref === '&') {\n\t\treference = 'immutable';\n\t} else if (type.ref === '&mut') {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body),\n\t};\n}\n\nfunction parseGraphQLExecutionError(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): SuiClientTypes.ExecutionError {\n\tconst name = mapGraphQLExecutionErrorKind(executionError);\n\n\tif (name === 'MoveAbort' && executionError?.abortCode != null) {\n\t\tconst location = parseGraphQLMoveLocation(executionError);\n\t\tconst cleverError = parseGraphQLCleverError(executionError);\n\t\tconst commandMatch = executionError.message?.match(/in (\\d+)\\w* command/);\n\t\tconst command = commandMatch ? parseInt(commandMatch[1], 10) - 1 : undefined;\n\n\t\treturn {\n\t\t\t$kind: 'MoveAbort',\n\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\tcommand,\n\t\t\t\tlocation: location\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tpackage: location.package,\n\t\t\t\t\t\t\tmodule: location.module,\n\t\t\t\t\t\t\tfunctionName: location.functionName,\n\t\t\t\t\t\t\tinstruction: location.instruction,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tcleverError: cleverError\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tlineNumber: cleverError.lineNumber,\n\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\tvalue: cleverError.value,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t}),\n\t\t\tcommand,\n\t\t\tMoveAbort: {\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tlocation,\n\t\t\t\tcleverError,\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\t$kind: 'Unknown',\n\t\tmessage: executionError?.message ?? 'Transaction failed',\n\t\tUnknown: null,\n\t};\n}\n\nfunction mapGraphQLExecutionErrorKind(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): string {\n\tif (executionError?.abortCode != null) {\n\t\treturn 'MoveAbort';\n\t}\n\n\tconst match = executionError?.message?.match(/^(\\w+)/);\n\treturn match?.[1] ?? 'Unknown';\n}\n\nfunction parseGraphQLMoveLocation(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.MoveLocation | undefined {\n\tconst hasLocation = executionError.module?.package?.address && executionError.module?.name;\n\tif (!hasLocation) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tpackage: executionError.module?.package?.address,\n\t\tmodule: executionError.module?.name,\n\t\tfunctionName: executionError.function?.name,\n\t\tinstruction: executionError.instructionOffset ?? undefined,\n\t};\n}\n\nfunction parseGraphQLCleverError(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.CleverError | undefined {\n\tconst hasCleverError = executionError.identifier || executionError.constant;\n\tif (!hasCleverError) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tconstantName: executionError.identifier ?? undefined,\n\t\tvalue: executionError.constant ?? undefined,\n\t\tlineNumber: executionError.sourceLineNumber ?? undefined,\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(\n\ttype: OpenMoveTypeSignatureBody,\n): SuiClientTypes.OpenSignatureBody {\n\tswitch (type) {\n\t\tcase 'address':\n\t\t\treturn { $kind: 'address' };\n\t\tcase 'bool':\n\t\t\treturn { $kind: 'bool' };\n\t\tcase 'u8':\n\t\t\treturn { $kind: 'u8' };\n\t\tcase 'u16':\n\t\t\treturn { $kind: 'u16' };\n\t\tcase 'u32':\n\t\t\treturn { $kind: 'u32' };\n\t\tcase 'u64':\n\t\t\treturn { $kind: 'u64' };\n\t\tcase 'u128':\n\t\t\treturn { $kind: 'u128' };\n\t\tcase 'u256':\n\t\t\treturn { $kind: 'u256' };\n\t}\n\n\tif (typeof type === 'string') {\n\t\tthrow new Error(`Unknown type: ${type}`);\n\t}\n\n\tif ('vector' in type) {\n\t\treturn {\n\t\t\t$kind: 'vector',\n\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.vector),\n\t\t};\n\t}\n\n\tif ('datatype' in type) {\n\t\treturn {\n\t\t\t$kind: 'datatype',\n\t\t\tdatatype: {\n\t\t\t\ttypeName: `${normalizeSuiAddress(type.datatype.package)}::${type.datatype.module}::${type.datatype.type}`,\n\t\t\t\ttypeParameters: type.datatype.typeParameters.map((t) => parseNormalizedSuiMoveTypeBody(t)),\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('typeParameter' in type) {\n\t\treturn {\n\t\t\t$kind: 'typeParameter',\n\t\t\tindex: type.typeParameter,\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown type: ${JSON.stringify(type)}`);\n}\n"],"mappings":"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"}
|
package/dist/grpc/core.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.mts","names":[],"sources":["../../src/grpc/core.ts"],"mappings":";;;;;;;;;;UAgDiB,qBAAA,SAA8B,iBAAA;EAC9C,MAAA,EAAQ,aAAA;AAAA;AAAA,cAEI,cAAA,SAAuB,UAAA;EAAA;;IAErB,MAAA;IAAA,GAAW;EAAA,GAAW,qBAAA;EAK9B,UAAA,iBAA2B,cAAA,CAAe,aAAA,MAAA,CAC/C,OAAA,EAAS,cAAA,CAAe,iBAAA,CAAkB,OAAA,IACxC,OAAA,CAAQ,cAAA,CAAe,kBAAA,CAAmB,OAAA;EAkFvC,gBAAA,iBAAiC,cAAA,CAAe,aAAA,MAAA,CACrD,OAAA,EAAS,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EA2D7C,SAAA,CACL,OAAA,EAAS,cAAA,CAAe,gBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,iBAAA;
|
|
1
|
+
{"version":3,"file":"core.d.mts","names":[],"sources":["../../src/grpc/core.ts"],"mappings":";;;;;;;;;;UAgDiB,qBAAA,SAA8B,iBAAA;EAC9C,MAAA,EAAQ,aAAA;AAAA;AAAA,cAEI,cAAA,SAAuB,UAAA;EAAA;;IAErB,MAAA;IAAA,GAAW;EAAA,GAAW,qBAAA;EAK9B,UAAA,iBAA2B,cAAA,CAAe,aAAA,MAAA,CAC/C,OAAA,EAAS,cAAA,CAAe,iBAAA,CAAkB,OAAA,IACxC,OAAA,CAAQ,cAAA,CAAe,kBAAA,CAAmB,OAAA;EAkFvC,gBAAA,iBAAiC,cAAA,CAAe,aAAA,MAAA,CACrD,OAAA,EAAS,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EA2D7C,SAAA,CACL,OAAA,EAAS,cAAA,CAAe,gBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,iBAAA;EA8BpB,UAAA,CACL,OAAA,EAAS,cAAA,CAAe,iBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,kBAAA;EAiBpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EA4BpB,YAAA,CACL,OAAA,EAAS,cAAA,CAAe,mBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,oBAAA;EAkBpB,cAAA,iBAA+B,cAAA,CAAe,kBAAA,MAAA,CACnD,OAAA,EAAS,cAAA,CAAe,qBAAA,CAAsB,OAAA,IAC5C,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAwCtC,kBAAA,iBAAmC,cAAA,CAAe,kBAAA,MAAA,CACvD,OAAA,EAAS,cAAA,CAAe,yBAAA,CAA0B,OAAA,IAChD,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAgDtC,mBAAA,iBAAoC,cAAA,CAAe,0BAAA,MAAA,CACxD,OAAA,EAAS,cAAA,CAAe,0BAAA,CAA2B,OAAA,IACjD,OAAA,CAAQ,cAAA,CAAe,yBAAA,CAA0B,OAAA;EA0F9C,oBAAA,CAAA,GAAwB,OAAA,CAAQ,cAAA,CAAe,4BAAA;EAY/C,iBAAA,CAAA,GAAqB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EA2B5C,qBAAA,CAAA,GAAyB,OAAA,CAAQ,cAAA,CAAe,6BAAA;EAiFhD,iBAAA,CACL,OAAA,EAAS,cAAA,CAAe,wBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EAIpB,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,qBAAA;EAiCpB,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,8BAAA;EAcpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EAwDpB,kBAAA,CACL,QAAA,GAAW,cAAA,CAAe,yBAAA,GACxB,OAAA,CAAQ,cAAA,CAAe,0BAAA;EAY1B,wBAAA,CAAA,IAGE,eAAA,EAAiB,sBAAA,EACjB,OAAA,EAAS,uBAAA,EACT,IAAA,QAAY,OAAA,WAAa,OAAA;AAAA"}
|
package/dist/grpc/core.mjs
CHANGED
|
@@ -116,6 +116,7 @@ var GrpcCoreClient = class extends CoreClient {
|
|
|
116
116
|
owner: options.owner,
|
|
117
117
|
objectType: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType })).type}>`,
|
|
118
118
|
pageToken: options.cursor ? fromBase64(options.cursor) : void 0,
|
|
119
|
+
pageSize: options.limit,
|
|
119
120
|
readMask: { paths }
|
|
120
121
|
});
|
|
121
122
|
return {
|