@mysten/sui 2.12.1 → 2.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/bcs/bcs.d.mts +0 -1
- package/dist/bcs/bcs.d.mts.map +1 -1
- package/dist/bcs/index.d.mts +20 -20
- package/dist/bcs/index.d.mts.map +1 -1
- package/dist/bcs/pure.d.mts.map +1 -1
- package/dist/bcs/type-tag-serializer.d.mts.map +1 -1
- package/dist/bcs/types.d.mts +0 -1
- package/dist/bcs/types.d.mts.map +1 -1
- package/dist/client/cache.d.mts.map +1 -1
- package/dist/client/client.d.mts.map +1 -1
- package/dist/client/core-resolver.d.mts.map +1 -1
- package/dist/client/core-resolver.mjs +96 -82
- package/dist/client/core-resolver.mjs.map +1 -1
- package/dist/client/core.d.mts.map +1 -1
- package/dist/client/errors.d.mts.map +1 -1
- package/dist/client/mvr.d.mts +0 -1
- package/dist/client/mvr.d.mts.map +1 -1
- package/dist/client/types.d.mts.map +1 -1
- package/dist/client/utils.d.mts.map +1 -1
- package/dist/cryptography/intent.d.mts.map +1 -1
- package/dist/cryptography/keypair.d.mts.map +1 -1
- package/dist/cryptography/mnemonics.d.mts.map +1 -1
- package/dist/cryptography/publickey.d.mts +0 -1
- package/dist/cryptography/publickey.d.mts.map +1 -1
- package/dist/cryptography/signature-scheme.d.mts.map +1 -1
- package/dist/cryptography/signature.d.mts +16 -19
- package/dist/cryptography/signature.d.mts.map +1 -1
- package/dist/faucet/faucet.d.mts.map +1 -1
- package/dist/graphql/client.d.mts.map +1 -1
- package/dist/graphql/core.d.mts.map +1 -1
- package/dist/graphql/generated/queries.d.mts +0 -1
- package/dist/graphql/generated/queries.d.mts.map +1 -1
- package/dist/graphql/generated/tada-env.d.mts.map +1 -1
- package/dist/graphql/schema/index.d.mts +0 -1
- package/dist/graphql/schema/index.d.mts.map +1 -1
- package/dist/graphql/types.d.mts.map +1 -1
- package/dist/grpc/client.d.mts.map +1 -1
- package/dist/grpc/core.d.mts.map +1 -1
- package/dist/grpc/proto/google/protobuf/any.d.mts +0 -1
- package/dist/grpc/proto/google/protobuf/any.d.mts.map +1 -1
- package/dist/grpc/proto/google/protobuf/duration.d.mts +0 -1
- package/dist/grpc/proto/google/protobuf/duration.d.mts.map +1 -1
- package/dist/grpc/proto/google/protobuf/field_mask.d.mts +0 -1
- package/dist/grpc/proto/google/protobuf/field_mask.d.mts.map +1 -1
- package/dist/grpc/proto/google/protobuf/struct.d.mts +1 -2
- package/dist/grpc/proto/google/protobuf/struct.d.mts.map +1 -1
- package/dist/grpc/proto/google/protobuf/timestamp.d.mts +0 -1
- package/dist/grpc/proto/google/protobuf/timestamp.d.mts.map +1 -1
- package/dist/grpc/proto/google/rpc/status.d.mts +0 -1
- package/dist/grpc/proto/google/rpc/status.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/argument.d.mts +1 -2
- package/dist/grpc/proto/sui/rpc/v2/argument.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/balance_change.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/balance_change.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/bcs.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/bcs.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/checkpoint.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/checkpoint.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/checkpoint_contents.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/checkpoint_contents.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/checkpoint_summary.d.mts +1 -2
- package/dist/grpc/proto/sui/rpc/v2/checkpoint_summary.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/effects.d.mts +5 -6
- package/dist/grpc/proto/sui/rpc/v2/effects.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/epoch.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/epoch.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/error_reason.d.mts +1 -1
- package/dist/grpc/proto/sui/rpc/v2/error_reason.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/event.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/event.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/executed_transaction.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/executed_transaction.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/execution_status.d.mts +4 -5
- package/dist/grpc/proto/sui/rpc/v2/execution_status.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/gas_cost_summary.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/gas_cost_summary.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/input.d.mts +3 -4
- package/dist/grpc/proto/sui/rpc/v2/input.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/jwk.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/jwk.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/ledger_service.client.d.mts +4 -5
- package/dist/grpc/proto/sui/rpc/v2/ledger_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/ledger_service.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/ledger_service.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/move_package.d.mts +5 -6
- package/dist/grpc/proto/sui/rpc/v2/move_package.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/move_package_service.client.d.mts +4 -5
- package/dist/grpc/proto/sui/rpc/v2/move_package_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/move_package_service.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/move_package_service.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/name_service.client.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/name_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/name_service.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/name_service.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/object.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/object.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/object_reference.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/object_reference.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/owner.d.mts +1 -2
- package/dist/grpc/proto/sui/rpc/v2/owner.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/protocol_config.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/protocol_config.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/signature.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/signature.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/signature_scheme.d.mts +1 -1
- package/dist/grpc/proto/sui/rpc/v2/signature_scheme.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.mts +4 -5
- package/dist/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/signature_verification_service.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/signature_verification_service.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/state_service.client.d.mts +4 -5
- package/dist/grpc/proto/sui/rpc/v2/state_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/state_service.d.mts +4 -5
- package/dist/grpc/proto/sui/rpc/v2/state_service.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/subscription_service.client.d.mts +4 -5
- package/dist/grpc/proto/sui/rpc/v2/subscription_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/subscription_service.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/subscription_service.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/system_state.d.mts +0 -1
- package/dist/grpc/proto/sui/rpc/v2/system_state.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/transaction.d.mts +4 -5
- package/dist/grpc/proto/sui/rpc/v2/transaction.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.mts +4 -5
- package/dist/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/transaction_execution_service.d.mts +1 -2
- package/dist/grpc/proto/sui/rpc/v2/transaction_execution_service.d.mts.map +1 -1
- package/dist/grpc/proto/types.d.mts.map +1 -1
- package/dist/jsonRpc/client.d.mts +2 -5
- package/dist/jsonRpc/client.d.mts.map +1 -1
- package/dist/jsonRpc/client.mjs +1 -30
- package/dist/jsonRpc/client.mjs.map +1 -1
- package/dist/jsonRpc/core.d.mts.map +1 -1
- package/dist/jsonRpc/core.mjs +11 -4
- package/dist/jsonRpc/core.mjs.map +1 -1
- package/dist/jsonRpc/errors.d.mts.map +1 -1
- package/dist/jsonRpc/http-transport.d.mts.map +1 -1
- package/dist/jsonRpc/network.d.mts.map +1 -1
- package/dist/jsonRpc/types/chain.d.mts.map +1 -1
- package/dist/jsonRpc/types/changes.d.mts.map +1 -1
- package/dist/jsonRpc/types/coins.d.mts.map +1 -1
- package/dist/jsonRpc/types/common.d.mts.map +1 -1
- package/dist/jsonRpc/types/generated.d.mts +99 -127
- package/dist/jsonRpc/types/generated.d.mts.map +1 -1
- package/dist/jsonRpc/types/params.d.mts +4 -9
- package/dist/jsonRpc/types/params.d.mts.map +1 -1
- package/dist/keypairs/ed25519/keypair.d.mts.map +1 -1
- package/dist/keypairs/ed25519/publickey.d.mts +0 -1
- package/dist/keypairs/ed25519/publickey.d.mts.map +1 -1
- package/dist/keypairs/passkey/keypair.d.mts.map +1 -1
- package/dist/keypairs/passkey/publickey.d.mts +0 -1
- package/dist/keypairs/passkey/publickey.d.mts.map +1 -1
- package/dist/keypairs/passkey/types.d.mts.map +1 -1
- package/dist/keypairs/secp256k1/keypair.d.mts.map +1 -1
- package/dist/keypairs/secp256k1/publickey.d.mts +0 -1
- package/dist/keypairs/secp256k1/publickey.d.mts.map +1 -1
- package/dist/keypairs/secp256r1/keypair.d.mts.map +1 -1
- package/dist/keypairs/secp256r1/publickey.d.mts +0 -1
- package/dist/keypairs/secp256r1/publickey.d.mts.map +1 -1
- package/dist/multisig/publickey.d.mts +1 -0
- package/dist/multisig/publickey.d.mts.map +1 -1
- package/dist/multisig/signer.d.mts.map +1 -1
- package/dist/transactions/Arguments.d.mts.map +1 -1
- package/dist/transactions/Commands.d.mts +1 -1
- package/dist/transactions/Commands.d.mts.map +1 -1
- package/dist/transactions/Inputs.d.mts.map +1 -1
- package/dist/transactions/ObjectCache.d.mts.map +1 -1
- package/dist/transactions/Transaction.d.mts +29 -3
- package/dist/transactions/Transaction.d.mts.map +1 -1
- package/dist/transactions/Transaction.mjs +23 -1
- package/dist/transactions/Transaction.mjs.map +1 -1
- package/dist/transactions/TransactionData.d.mts.map +1 -1
- package/dist/transactions/data/internal.d.mts.map +1 -1
- package/dist/transactions/data/v1.d.mts +0 -1
- package/dist/transactions/data/v1.d.mts.map +1 -1
- package/dist/transactions/data/v2.d.mts.map +1 -1
- package/dist/transactions/executor/parallel.d.mts.map +1 -1
- package/dist/transactions/executor/serial.d.mts.map +1 -1
- package/dist/transactions/intents/CoinWithBalance.d.mts.map +1 -1
- package/dist/transactions/intents/CoinWithBalance.mjs +169 -92
- package/dist/transactions/intents/CoinWithBalance.mjs.map +1 -1
- package/dist/transactions/object.d.mts.map +1 -1
- package/dist/transactions/pure.d.mts.map +1 -1
- package/dist/transactions/resolve.d.mts.map +1 -1
- package/dist/transactions/serializer.d.mts.map +1 -1
- package/dist/transactions/utils.d.mts +0 -1
- package/dist/transactions/utils.d.mts.map +1 -1
- package/dist/utils/coin-reservation.mjs +67 -0
- package/dist/utils/coin-reservation.mjs.map +1 -0
- package/dist/utils/constants.d.mts.map +1 -1
- package/dist/utils/derived-objects.d.mts +0 -1
- package/dist/utils/derived-objects.d.mts.map +1 -1
- package/dist/utils/dynamic-fields.d.mts.map +1 -1
- package/dist/utils/format.d.mts.map +1 -1
- package/dist/utils/move-registry.d.mts.map +1 -1
- package/dist/utils/sui-types.d.mts.map +1 -1
- package/dist/utils/suins.d.mts.map +1 -1
- package/dist/verify/verify.d.mts.map +1 -1
- package/dist/version.mjs +2 -2
- package/dist/version.mjs.map +1 -1
- package/dist/zklogin/address.d.mts.map +1 -1
- package/dist/zklogin/bcs.d.mts.map +1 -1
- package/dist/zklogin/jwt-decode.d.mts +0 -1
- package/dist/zklogin/jwt-decode.d.mts.map +1 -1
- package/dist/zklogin/jwt-utils.d.mts +0 -1
- package/dist/zklogin/jwt-utils.d.mts.map +1 -1
- package/dist/zklogin/nonce.d.mts.map +1 -1
- package/dist/zklogin/poseidon.d.mts.map +1 -1
- package/dist/zklogin/publickey.d.mts +0 -1
- package/dist/zklogin/publickey.d.mts.map +1 -1
- package/dist/zklogin/signature.d.mts.map +1 -1
- package/dist/zklogin/utils.d.mts.map +1 -1
- package/package.json +3 -3
- package/src/client/core-resolver.ts +166 -125
- package/src/jsonRpc/client.ts +1 -19
- package/src/jsonRpc/core.ts +15 -14
- package/src/transactions/Transaction.ts +38 -1
- package/src/transactions/intents/CoinWithBalance.ts +243 -117
- package/src/utils/coin-reservation.ts +84 -0
- package/src/version.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @mysten/sui.js
|
|
2
2
|
|
|
3
|
+
## 2.13.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 82c2386: Fix JSON-RPC simulateTransaction includes when dryRun fails for non-public functions with
|
|
8
|
+
checksEnabled: false. balanceChanges and objectTypes no longer return incorrect data from failed
|
|
9
|
+
dryRun, and the transaction include no longer crashes for unbuilt Transaction objects.
|
|
10
|
+
|
|
11
|
+
## 2.13.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- 329350a: Add `tx.coin()` and `tx.balance()` methods and rewrite CoinWithBalance intent resolution.
|
|
16
|
+
- `tx.coin({ type, balance })` — produces a `Coin<T>` of the requested balance, sourced from owned
|
|
17
|
+
coins and gas
|
|
18
|
+
- `tx.balance({ type, balance })` — produces a `Balance<T>` of the requested balance, sourced from
|
|
19
|
+
address balance or owned coins
|
|
20
|
+
- When balance intents are used, the merged pool remainder is converted to Balance and returned to
|
|
21
|
+
the sender's address balance via `send_funds`
|
|
22
|
+
- Multiple intents of the same coin type are now resolved with a single combined `SplitCoins`
|
|
23
|
+
instead of per-intent splits
|
|
24
|
+
|
|
25
|
+
- 3c83909: Optimize transaction resolver to parallelize independent network requests (system state,
|
|
26
|
+
balance, coins, protocol config) and add coin reservation compat mode for address balance gas
|
|
27
|
+
payment when `coin_reservation` feature flag is enabled.
|
|
28
|
+
|
|
3
29
|
## 2.12.1
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
package/dist/bcs/bcs.d.mts
CHANGED
|
@@ -3,7 +3,6 @@ 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
|
-
|
|
7
6
|
declare const TypeTag: BcsType<string, string | TypeTag$1, string>;
|
|
8
7
|
declare function IntentMessage<T extends BcsType<any>>(T: T): _mysten_bcs830.BcsStruct<{
|
|
9
8
|
intent: _mysten_bcs830.BcsStruct<{
|
package/dist/bcs/bcs.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bcs.d.mts","names":[],"sources":["../../src/bcs/bcs.ts"],"
|
|
1
|
+
{"version":3,"file":"bcs.d.mts","names":[],"sources":["../../src/bcs/bcs.ts"],"mappings":";;;;;cAoIa,OAAA,EAAO,OAAA,kBAAA,SAAA;AAAA,iBAuKJ,aAAA,WAAwB,OAAA,MAAA,CAAc,CAAA,EAAG,CAAA,kBAAC,SAAA;;WAAA,cAAA,CAAA,OAAA"}
|
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
|
+
}, "Receiving" | "ImmOrOwnedObject" | "SharedObject">;
|
|
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
|
+
}, "Object" | "Pure" | "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
|
+
}, "TransactionEffects" | "TransactionData" | "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
|
+
}, "Receiving" | "ImmOrOwnedObject" | "SharedObject">;
|
|
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
|
+
}, "Object" | "Pure" | "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
|
+
}, "Epoch" | "None" | "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
|
+
}, "Receiving" | "ImmOrOwnedObject" | "SharedObject">;
|
|
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
|
+
}, "Object" | "Pure" | "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
|
+
}, "Receiving" | "ImmOrOwnedObject" | "SharedObject">;
|
|
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
|
+
}, "Object" | "Pure" | "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
|
+
}, "Receiving" | "ImmOrOwnedObject" | "SharedObject">;
|
|
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
|
+
}, "Object" | "Pure" | "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" | "ConsensusAddressOwner" | "Immutable" | "ObjectOwner" | "Shared">][], 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" | "ConsensusAddressOwner" | "Immutable" | "ObjectOwner" | "Shared">][], 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" | "ConsensusAddressOwner" | "Immutable" | "ObjectOwner" | "Shared">][], 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" | "ConsensusAddressOwner" | "Immutable" | "ObjectOwner" | "Shared">];
|
|
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" | "ConsensusAddressOwner" | "Immutable" | "ObjectOwner" | "Shared">];
|
|
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
|
+
}, "MutateConsensusStreamEnded" | "PerEpochConfig" | "ReadConsensusStreamEnded" | "ReadOnlyRoot" | "Cancelled">][], 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
|
+
}, "Receiving" | "ImmOrOwnedObject" | "SharedObject">;
|
|
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
|
+
}, "Object" | "Pure" | "FundsWithdrawal">[], Iterable<_mysten_bcs0.EnumInputShape<{
|
|
2770
2770
|
Pure: {
|
|
2771
2771
|
bytes: string | Uint8Array<ArrayBufferLike>;
|
|
2772
2772
|
};
|
package/dist/bcs/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/bcs/index.ts"],"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/bcs/index.ts"],"mappings":";;;;;;;;cA2DM,MAAA;MAkDL,YAAA,CAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mQAQ22J,YAAA,CAAA,cAAA,2BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAA,YAAA,CAAA,OAAA,mBAAA,GAAA,4BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAA,YAAA,CAAA,OAAA,mBAAA,GAAA,YAAA,IAAA,IAAA,YAAA,CAAA,QAAA,CAAA,CAAA,EAAA,IAAA;kCAAA,YAAA,CAAA,OAAA"}
|
package/dist/bcs/pure.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pure.d.mts","names":[],"sources":["../../src/bcs/pure.ts"],"
|
|
1
|
+
{"version":3,"file":"pure.d.mts","names":[],"sources":["../../src/bcs/pure.ts"],"mappings":";;;KAQY,YAAA;AAAA,UAYF,eAAA;EACT,EAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,IAAA;EACA,IAAA;EACA,IAAA;EACA,MAAA;EACA,EAAA,WAAa,UAAA;EACb,OAAA,WAAkB,UAAA;AAAA;AAAA,KAGP,YAAA,GAAe,YAAA;AAAA,KACf,iBAAA,qBAAsC,CAAA,SAAU,YAAA,GACzD,YAAA,GACA,CAAA,gCACC,iBAAA,CAAkB,CAAA,IAClB,CAAA,gCACC,iBAAA,CAAkB,CAAA,IAClB,uBAAA,CAAwB,CAAA;AAAA,KAEjB,qBAAA,WAAgC,YAAA,IAAgB,CAAA,SAAU,YAAA,GACnE,eAAA,CAAgB,CAAA,IAChB,CAAA,mCAAoC,YAAA,MACnC,qBAAA,CAAsB,CAAA,MACtB,CAAA,mCAAoC,YAAA,MACnC,qBAAA,CAAsB,CAAA;AAAA,KAGtB,uBAAA;EACJ,KAAA,6BAAkC,CAAA;AAAA;AAAA,iBAGnB,yBAAA,WAAoC,YAAA,CAAA,CACnD,IAAA,EAAM,CAAA,SAAU,YAAA,GAAe,iBAAA,CAAkB,CAAA,IAAK,CAAA,GACpD,OAAA,CAAQ,qBAAA,CAAsB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-tag-serializer.d.mts","names":[],"sources":["../../src/bcs/type-tag-serializer.ts"],"
|
|
1
|
+
{"version":3,"file":"type-tag-serializer.d.mts","names":[],"sources":["../../src/bcs/type-tag-serializer.ts"],"mappings":";;;cAWa,iBAAA;EAAA,OACL,YAAA,CAAa,GAAA,UAAa,gBAAA,aAA2B,OAAA;EAAA,OA+CrD,mBAAA,CAAoB,GAAA,UAAa,gBAAA,aAA2B,OAAA;EAAA,OAM5D,WAAA,CAAY,GAAA,EAAK,OAAA;AAAA;AAAA,iBA0CT,gBAAA,CAAiB,IAAA"}
|
package/dist/bcs/types.d.mts
CHANGED
package/dist/bcs/types.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/bcs/types.ts"],"
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/bcs/types.ts"],"mappings":";;;;KAoFY,SAAA;EACX,OAAA;EACA,MAAA;EACA,IAAA;EACA,UAAA,EAAY,OAAA;AAAA;;;;KAMD,OAAA;EACP,IAAA;AAAA;EACA,EAAA;AAAA;EACA,GAAA;AAAA;EACA,IAAA;AAAA;EACA,OAAA;AAAA;EACA,MAAA;AAAA;EACA,MAAA,EAAQ,OAAA;AAAA;EACR,MAAA,EAAQ,SAAA;AAAA;EACR,GAAA;AAAA;EACA,GAAA;AAAA;EACA,IAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.mts","names":[],"sources":["../../src/client/cache.ts"],"
|
|
1
|
+
{"version":3,"file":"cache.d.mts","names":[],"sources":["../../src/client/cache.ts"],"mappings":";UAGiB,kBAAA;EAChB,MAAA;EACA,KAAA,GAAQ,GAAA;AAAA;AAAA,cAGI,WAAA;EAAA;;IAIE,MAAA;IAAQ;EAAA,IAAS,kBAAA;EAK/B,IAAA,GAAA,CAAQ,GAAA,yBAA4B,IAAA,QAAY,CAAA,GAAI,OAAA,CAAQ,CAAA,IAAK,CAAA,GAAI,OAAA,CAAQ,CAAA;EA0B7E,QAAA,GAAA,CAAY,GAAA,yBAA4B,IAAA,QAAY,CAAA,GAAI,CAAA;EAcxD,KAAA,CAAM,MAAA;EAcN,KAAA,CAAM,MAAA,sBAAyB,WAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.mts","names":[],"sources":["../../src/client/client.ts"],"
|
|
1
|
+
{"version":3,"file":"client.d.mts","names":[],"sources":["../../src/client/client.ts"],"mappings":";;;;;;uBAQsB,UAAA;EACrB,OAAA,EAAS,cAAA,CAAe,OAAA;EACxB,KAAA,EAAO,WAAA;EACP,IAAA,EAAM,UAAA;;IAGL,OAAA;IACA,IAAA;IACA;EAAA,GACE,cAAA,CAAe,gBAAA;EAAA,SAMT,IAAA,EAAM,UAAA;EAEf,OAAA,6BAAoC,qBAAA,SAAA,CAAA,GAChC,aAAA,EAAe,aAAA,GA2BZ,oBAAA,CACL,QAAA,CACC,mBAAA,eAEc,aAAA,GAAgB,aAAA,CAAc,CAAA,UAAW,qBAAA,8DAM3C,IAAA,GAAO,SAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-resolver.d.mts","names":[],"sources":["../../src/client/core-resolver.ts"],"
|
|
1
|
+
{"version":3,"file":"core-resolver.d.mts","names":[],"sources":["../../src/client/core-resolver.ts"],"mappings":";;;;;iBAkDsB,kCAAA,CACrB,eAAA,EAAiB,sBAAA,EACjB,OAAA,EAAS,uBAAA,EACT,IAAA,QAAY,OAAA,SAAa,OAAA"}
|
|
@@ -1,36 +1,78 @@
|
|
|
1
|
-
import { normalizeSuiAddress, normalizeSuiObjectId } from "../utils/sui-types.mjs";
|
|
2
|
-
import { ObjectRefSchema } from "../transactions/data/internal.mjs";
|
|
1
|
+
import { normalizeStructTag, normalizeSuiAddress, normalizeSuiObjectId } from "../utils/sui-types.mjs";
|
|
3
2
|
import { SimulationError } from "./errors.mjs";
|
|
4
3
|
import { SUI_TYPE_ARG } from "../utils/constants.mjs";
|
|
4
|
+
import { createCoinReservationRef } from "../utils/coin-reservation.mjs";
|
|
5
5
|
import { Inputs } from "../transactions/Inputs.mjs";
|
|
6
6
|
import { getPureBcsSchema, isTxContext } from "../transactions/serializer.mjs";
|
|
7
7
|
import { chunk } from "@mysten/utils";
|
|
8
|
-
import { parse } from "valibot";
|
|
9
8
|
|
|
10
9
|
//#region src/client/core-resolver.ts
|
|
11
10
|
const MAX_OBJECTS_PER_FETCH = 50;
|
|
12
11
|
const GAS_SAFE_OVERHEAD = 1000n;
|
|
13
12
|
const MAX_GAS = 5e10;
|
|
13
|
+
/** Compute a gas budget from gasUsed effects data. */
|
|
14
|
+
function computeGasBudget(gasUsed, gasPrice = 1n) {
|
|
15
|
+
const safeOverhead = GAS_SAFE_OVERHEAD * BigInt(gasPrice);
|
|
16
|
+
const baseComputationCostWithOverhead = BigInt(gasUsed.computationCost) + safeOverhead;
|
|
17
|
+
const gasBudget = baseComputationCostWithOverhead + BigInt(gasUsed.storageCost) - BigInt(gasUsed.storageRebate);
|
|
18
|
+
return String(gasBudget > baseComputationCostWithOverhead ? gasBudget : baseComputationCostWithOverhead);
|
|
19
|
+
}
|
|
14
20
|
function getClient(options) {
|
|
15
21
|
if (!options.client) throw new Error(`No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.`);
|
|
16
22
|
return options.client;
|
|
17
23
|
}
|
|
18
24
|
async function coreClientResolveTransactionPlugin(transactionData, options, next) {
|
|
19
25
|
const client = getClient(options);
|
|
20
|
-
|
|
26
|
+
const needsGasPrice = !options.onlyTransactionKind && !transactionData.gasData.price;
|
|
27
|
+
const needsPayment = !options.onlyTransactionKind && !transactionData.gasData.payment;
|
|
28
|
+
const gasPayer = transactionData.gasData.owner ?? transactionData.sender;
|
|
29
|
+
let usesGasCoin = false;
|
|
30
|
+
let withdrawals = 0n;
|
|
31
|
+
transactionData.mapArguments((arg) => {
|
|
32
|
+
if (arg.$kind === "GasCoin") usesGasCoin = true;
|
|
33
|
+
return arg;
|
|
34
|
+
});
|
|
35
|
+
const normalizedGasPayer = gasPayer ? normalizeSuiAddress(gasPayer) : null;
|
|
36
|
+
for (const input of transactionData.inputs) {
|
|
37
|
+
if (input.$kind !== "FundsWithdrawal" || !normalizedGasPayer) continue;
|
|
38
|
+
if (normalizeStructTag(input.FundsWithdrawal.typeArg.Balance) !== SUI_TYPE_ARG) continue;
|
|
39
|
+
const withdrawalOwner = input.FundsWithdrawal.withdrawFrom.Sender ? transactionData.sender : gasPayer;
|
|
40
|
+
if (withdrawalOwner && normalizeSuiAddress(withdrawalOwner) === normalizedGasPayer && input.FundsWithdrawal.reservation.$kind === "MaxAmountU64") withdrawals += BigInt(input.FundsWithdrawal.reservation.MaxAmountU64);
|
|
41
|
+
}
|
|
42
|
+
const needsSystemState = needsGasPrice || needsPayment && usesGasCoin;
|
|
43
|
+
const [, systemStateResult, balanceResult, coinsResult, protocolConfigResult, chainIdResult] = await Promise.all([
|
|
44
|
+
normalizeInputs(transactionData, client),
|
|
45
|
+
needsSystemState ? client.core.getCurrentSystemState() : null,
|
|
46
|
+
needsPayment && gasPayer ? client.core.getBalance({ owner: gasPayer }) : null,
|
|
47
|
+
needsPayment && gasPayer ? client.core.listCoins({
|
|
48
|
+
owner: gasPayer,
|
|
49
|
+
coinType: SUI_TYPE_ARG
|
|
50
|
+
}) : null,
|
|
51
|
+
needsPayment && usesGasCoin ? client.core.getProtocolConfig() : null,
|
|
52
|
+
needsPayment && usesGasCoin ? client.core.getChainIdentifier() : null
|
|
53
|
+
]);
|
|
21
54
|
await resolveObjectReferences(transactionData, client);
|
|
22
|
-
if (!options.onlyTransactionKind)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
55
|
+
if (!options.onlyTransactionKind) {
|
|
56
|
+
const systemState = systemStateResult?.systemState ?? null;
|
|
57
|
+
if (systemState && !transactionData.gasData.price) transactionData.gasData.price = systemState.referenceGasPrice;
|
|
58
|
+
await setGasBudget(transactionData, client);
|
|
59
|
+
if (needsPayment) {
|
|
60
|
+
if (!balanceResult || !coinsResult) throw new Error("Could not resolve gas payment: a gas owner or sender must be set to fetch balance and coins.");
|
|
61
|
+
setGasPayment({
|
|
62
|
+
transactionData,
|
|
63
|
+
balance: balanceResult,
|
|
64
|
+
coins: coinsResult,
|
|
65
|
+
usesGasCoin,
|
|
66
|
+
withdrawals,
|
|
67
|
+
protocolConfig: protocolConfigResult?.protocolConfig,
|
|
68
|
+
gasPayer,
|
|
69
|
+
chainIdentifier: chainIdResult?.chainIdentifier ?? null,
|
|
70
|
+
epoch: systemState?.epoch ?? null
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
if (!transactionData.expiration && transactionData.gasData.payment?.length === 0) await setExpiration(transactionData, client, systemState, chainIdResult?.chainIdentifier ?? null);
|
|
30
74
|
}
|
|
31
|
-
await
|
|
32
|
-
await setGasPayment(transactionData, client);
|
|
33
|
-
if (!transactionData.expiration) await setExpiration(transactionData, client, systemState);
|
|
75
|
+
return await next();
|
|
34
76
|
}
|
|
35
77
|
async function setGasBudget(transactionData, client) {
|
|
36
78
|
if (transactionData.gasData.budget) return;
|
|
@@ -48,58 +90,34 @@ async function setGasBudget(transactionData, client) {
|
|
|
48
90
|
executionError
|
|
49
91
|
});
|
|
50
92
|
}
|
|
51
|
-
|
|
52
|
-
const safeOverhead = GAS_SAFE_OVERHEAD * BigInt(transactionData.gasData.price || 1n);
|
|
53
|
-
const baseComputationCostWithOverhead = BigInt(gasUsed.computationCost) + safeOverhead;
|
|
54
|
-
const gasBudget = baseComputationCostWithOverhead + BigInt(gasUsed.storageCost) - BigInt(gasUsed.storageRebate);
|
|
55
|
-
transactionData.gasData.budget = String(gasBudget > baseComputationCostWithOverhead ? gasBudget : baseComputationCostWithOverhead);
|
|
93
|
+
transactionData.gasData.budget = computeGasBudget(simulateResult.Transaction.effects.gasUsed, transactionData.gasData.price ? String(transactionData.gasData.price) : void 0);
|
|
56
94
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
let withdrawals = 0n;
|
|
64
|
-
transactionData.mapArguments((arg) => {
|
|
65
|
-
if (arg.$kind === "GasCoin") usesGasCoin = true;
|
|
66
|
-
else if (arg.$kind === "Input") {
|
|
67
|
-
const input = transactionData.inputs[arg.Input];
|
|
68
|
-
if (input.$kind === "FundsWithdrawal") {
|
|
69
|
-
const withdrawalOwner = input.FundsWithdrawal.withdrawFrom.Sender ? transactionData.sender : gasPayer;
|
|
70
|
-
if (withdrawalOwner && normalizeSuiAddress(withdrawalOwner) === normalizedGasPayer) {
|
|
71
|
-
if (input.FundsWithdrawal.reservation.$kind === "MaxAmountU64") withdrawals += BigInt(input.FundsWithdrawal.reservation.MaxAmountU64);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return arg;
|
|
76
|
-
});
|
|
77
|
-
const [suiBalance, coins] = await Promise.all([usesGasCoin ? null : client.core.getBalance({ owner: gasPayer }), client.core.listCoins({
|
|
78
|
-
owner: gasPayer,
|
|
79
|
-
coinType: SUI_TYPE_ARG
|
|
80
|
-
})]);
|
|
81
|
-
if (suiBalance?.balance.addressBalance && BigInt(suiBalance.balance.addressBalance) >= BigInt(transactionData.gasData.budget || "0") + withdrawals) {
|
|
82
|
-
transactionData.gasData.payment = [];
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
const paymentCoins = coins.objects.filter((coin) => {
|
|
86
|
-
return !transactionData.inputs.find((input) => {
|
|
87
|
-
if (input.Object?.ImmOrOwnedObject) return coin.objectId === input.Object.ImmOrOwnedObject.objectId;
|
|
88
|
-
return false;
|
|
89
|
-
});
|
|
90
|
-
}).map((coin) => parse(ObjectRefSchema, {
|
|
91
|
-
objectId: coin.objectId,
|
|
92
|
-
digest: coin.digest,
|
|
93
|
-
version: coin.version
|
|
94
|
-
}));
|
|
95
|
-
if (!paymentCoins.length) throw new Error("No valid gas coins found for the transaction.");
|
|
96
|
-
transactionData.gasData.payment = paymentCoins;
|
|
95
|
+
function setGasPayment({ transactionData, balance, coins, usesGasCoin, withdrawals, protocolConfig, gasPayer, chainIdentifier, epoch }) {
|
|
96
|
+
const budget = BigInt(transactionData.gasData.budget);
|
|
97
|
+
const addressBalance = BigInt(balance.balance.addressBalance);
|
|
98
|
+
if (budget === 0n || !usesGasCoin && addressBalance >= budget + withdrawals) {
|
|
99
|
+
transactionData.gasData.payment = [];
|
|
100
|
+
return;
|
|
97
101
|
}
|
|
102
|
+
const filteredCoins = coins.objects.filter((coin) => {
|
|
103
|
+
return !transactionData.inputs.find((input) => {
|
|
104
|
+
if (input.Object?.ImmOrOwnedObject) return coin.objectId === input.Object.ImmOrOwnedObject.objectId;
|
|
105
|
+
return false;
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
const paymentCoins = filteredCoins.map((coin) => ({
|
|
109
|
+
objectId: coin.objectId,
|
|
110
|
+
digest: coin.digest,
|
|
111
|
+
version: coin.version
|
|
112
|
+
}));
|
|
113
|
+
const reservationAmount = addressBalance - withdrawals;
|
|
114
|
+
if (usesGasCoin && reservationAmount > 0n && protocolConfig?.featureFlags?.["enable_coin_reservation_obj_refs"] && chainIdentifier && epoch) transactionData.gasData.payment = [createCoinReservationRef(reservationAmount, gasPayer, chainIdentifier, epoch), ...paymentCoins];
|
|
115
|
+
else if (!filteredCoins.length) throw new Error("No valid gas coins found for the transaction.");
|
|
116
|
+
else transactionData.gasData.payment = paymentCoins;
|
|
98
117
|
}
|
|
99
|
-
async function setExpiration(transactionData, client,
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
const currentEpoch = BigInt(systemState.epoch);
|
|
118
|
+
async function setExpiration(transactionData, client, systemState, existingChainIdentifier = null) {
|
|
119
|
+
const [chainIdentifier, resolvedSystemState] = await Promise.all([existingChainIdentifier ?? client.core.getChainIdentifier().then((r) => r.chainIdentifier), systemState ?? client.core.getCurrentSystemState().then((r) => r.systemState)]);
|
|
120
|
+
const currentEpoch = BigInt(resolvedSystemState.epoch);
|
|
103
121
|
transactionData.expiration = {
|
|
104
122
|
$kind: "ValidDuring",
|
|
105
123
|
ValidDuring: {
|
|
@@ -112,10 +130,6 @@ async function setExpiration(transactionData, client, existingSystemState) {
|
|
|
112
130
|
}
|
|
113
131
|
};
|
|
114
132
|
}
|
|
115
|
-
function hasVersionedInputs(transactionData) {
|
|
116
|
-
if (transactionData.gasData.payment?.length) return true;
|
|
117
|
-
return transactionData.inputs.some((input) => input.Object?.ImmOrOwnedObject || input.UnresolvedObject && input.UnresolvedObject.version);
|
|
118
|
-
}
|
|
119
133
|
async function resolveObjectReferences(transactionData, client) {
|
|
120
134
|
const objectsToResolve = transactionData.inputs.filter((input) => {
|
|
121
135
|
return input.UnresolvedObject && !(input.UnresolvedObject.version || input.UnresolvedObject?.initialSharedVersion);
|
|
@@ -128,14 +142,14 @@ async function resolveObjectReferences(transactionData, client) {
|
|
|
128
142
|
}));
|
|
129
143
|
const invalidObjects = Array.from(responsesById).filter(([_, obj]) => obj instanceof Error).map(([_, obj]) => obj.message);
|
|
130
144
|
if (invalidObjects.length) throw new Error(`The following input objects are invalid: ${invalidObjects.join(", ")}`);
|
|
131
|
-
const objects = resolved.map((object
|
|
132
|
-
if (object
|
|
133
|
-
const owner = object
|
|
145
|
+
const objects = resolved.map((object) => {
|
|
146
|
+
if (object instanceof Error) throw new Error(`Failed to fetch object: ${object.message}`);
|
|
147
|
+
const owner = object.owner;
|
|
134
148
|
const initialSharedVersion = owner && typeof owner === "object" ? owner.$kind === "Shared" ? owner.Shared.initialSharedVersion : owner.$kind === "ConsensusAddressOwner" ? owner.ConsensusAddressOwner.startVersion : null : null;
|
|
135
149
|
return {
|
|
136
|
-
objectId: object
|
|
137
|
-
digest: object
|
|
138
|
-
version: object
|
|
150
|
+
objectId: object.objectId,
|
|
151
|
+
digest: object.digest,
|
|
152
|
+
version: object.version,
|
|
139
153
|
initialSharedVersion
|
|
140
154
|
};
|
|
141
155
|
});
|
|
@@ -146,21 +160,21 @@ async function resolveObjectReferences(transactionData, client) {
|
|
|
146
160
|
if (!input.UnresolvedObject) continue;
|
|
147
161
|
let updated;
|
|
148
162
|
const id = normalizeSuiAddress(input.UnresolvedObject.objectId);
|
|
149
|
-
const object
|
|
150
|
-
if (input.UnresolvedObject.initialSharedVersion ?? object
|
|
163
|
+
const object = objectsById.get(id);
|
|
164
|
+
if (input.UnresolvedObject.initialSharedVersion ?? object?.initialSharedVersion) updated = Inputs.SharedObjectRef({
|
|
151
165
|
objectId: id,
|
|
152
|
-
initialSharedVersion: input.UnresolvedObject.initialSharedVersion || object
|
|
166
|
+
initialSharedVersion: input.UnresolvedObject.initialSharedVersion || object?.initialSharedVersion,
|
|
153
167
|
mutable: input.UnresolvedObject.mutable || isUsedAsMutable(transactionData, index)
|
|
154
168
|
});
|
|
155
169
|
else if (isUsedAsReceiving(transactionData, index)) updated = Inputs.ReceivingRef({
|
|
156
170
|
objectId: id,
|
|
157
|
-
digest: input.UnresolvedObject.digest ?? object
|
|
158
|
-
version: input.UnresolvedObject.version ?? object
|
|
171
|
+
digest: input.UnresolvedObject.digest ?? object?.digest,
|
|
172
|
+
version: input.UnresolvedObject.version ?? object?.version
|
|
159
173
|
});
|
|
160
174
|
transactionData.inputs[transactionData.inputs.indexOf(input)] = updated ?? Inputs.ObjectRef({
|
|
161
175
|
objectId: id,
|
|
162
|
-
digest: input.UnresolvedObject.digest ?? object
|
|
163
|
-
version: input.UnresolvedObject.version ?? object
|
|
176
|
+
digest: input.UnresolvedObject.digest ?? object?.digest,
|
|
177
|
+
version: input.UnresolvedObject.version ?? object?.version
|
|
164
178
|
});
|
|
165
179
|
}
|
|
166
180
|
}
|
|
@@ -253,5 +267,5 @@ function isReceivingType(type) {
|
|
|
253
267
|
}
|
|
254
268
|
|
|
255
269
|
//#endregion
|
|
256
|
-
export { coreClientResolveTransactionPlugin };
|
|
270
|
+
export { computeGasBudget, coreClientResolveTransactionPlugin };
|
|
257
271
|
//# sourceMappingURL=core-resolver.mjs.map
|