@mysten/sui 1.40.0 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/client/index.d.ts +4 -4
- package/dist/cjs/client/index.js +6 -6
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/experimental/core.js +1 -1
- package/dist/cjs/experimental/core.js.map +2 -2
- package/dist/cjs/faucet/faucet.d.ts +3 -3
- package/dist/cjs/faucet/faucet.js +1 -1
- package/dist/cjs/faucet/faucet.js.map +2 -2
- package/dist/cjs/graphql/client.d.ts +2 -2
- package/dist/cjs/graphql/client.js +2 -2
- package/dist/cjs/graphql/client.js.map +3 -3
- package/dist/cjs/{experimental/transports/graphql.d.ts → graphql/core.d.ts} +4 -4
- package/dist/cjs/{experimental/transports/graphql.js → graphql/core.js} +28 -28
- package/dist/cjs/graphql/core.js.map +7 -0
- package/dist/cjs/grpc/client.d.ts +31 -0
- package/dist/cjs/grpc/client.js +51 -0
- package/dist/cjs/grpc/client.js.map +7 -0
- package/dist/cjs/grpc/core.d.ts +27 -0
- package/dist/cjs/grpc/core.js +644 -0
- package/dist/cjs/grpc/core.js.map +7 -0
- package/dist/cjs/grpc/index.d.ts +4 -0
- package/dist/cjs/grpc/index.js +27 -0
- package/dist/cjs/grpc/index.js.map +7 -0
- package/dist/cjs/grpc/proto/google/protobuf/any.d.ts +173 -0
- package/dist/cjs/grpc/proto/google/protobuf/any.js +139 -0
- package/dist/cjs/grpc/proto/google/protobuf/any.js.map +7 -0
- package/dist/cjs/grpc/proto/google/protobuf/duration.d.ts +104 -0
- package/dist/cjs/grpc/proto/google/protobuf/duration.js +88 -0
- package/dist/cjs/grpc/proto/google/protobuf/duration.js.map +7 -0
- package/dist/cjs/grpc/proto/google/protobuf/empty.d.ts +25 -0
- package/dist/cjs/grpc/proto/google/protobuf/empty.js +31 -0
- package/dist/cjs/grpc/proto/google/protobuf/empty.js.map +7 -0
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.d.ts +231 -0
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +73 -0
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.js.map +7 -0
- package/dist/cjs/grpc/proto/google/protobuf/struct.d.ts +169 -0
- package/dist/cjs/grpc/proto/google/protobuf/struct.js +199 -0
- package/dist/cjs/grpc/proto/google/protobuf/struct.js.map +7 -0
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.d.ts +145 -0
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +123 -0
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.js.map +7 -0
- package/dist/cjs/grpc/proto/google/rpc/error_details.d.ts +525 -0
- package/dist/cjs/grpc/proto/google/rpc/error_details.js +332 -0
- package/dist/cjs/grpc/proto/google/rpc/error_details.js.map +7 -0
- package/dist/cjs/grpc/proto/google/rpc/status.d.ts +46 -0
- package/dist/cjs/grpc/proto/google/rpc/status.js +48 -0
- package/dist/cjs/grpc/proto/google/rpc/status.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/argument.d.ts +66 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/argument.js +71 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/argument.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/balance_change.d.ts +34 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/balance_change.js +56 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/balance_change.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/bcs.d.ts +30 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/bcs.js +48 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/bcs.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/checkpoint.d.ts +55 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/checkpoint.js +62 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/checkpoint.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/checkpoint_contents.d.ts +74 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/checkpoint_contents.js +89 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/checkpoint_contents.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/checkpoint_summary.d.ts +195 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/checkpoint_summary.js +165 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/checkpoint_summary.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/effects.d.ts +333 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/effects.js +286 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/effects.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/epoch.d.ts +62 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/epoch.js +73 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/epoch.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/error_reason.d.ts +17 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/error_reason.js +30 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/error_reason.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/event.d.ts +88 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/event.js +86 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/event.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/executed_transaction.d.ts +85 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/executed_transaction.js +87 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/executed_transaction.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/execution_status.d.ts +843 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/execution_status.js +513 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/execution_status.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/gas_cost_summary.d.ts +41 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/gas_cost_summary.js +64 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/gas_cost_summary.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/input.d.ts +98 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/input.js +90 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/input.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/ledger_service.client.d.ts +95 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/ledger_service.client.js +127 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/ledger_service.client.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/ledger_service.d.ts +420 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/ledger_service.js +327 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/ledger_service.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/live_data_service.client.d.ts +81 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/live_data_service.client.js +0 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/live_data_service.client.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/live_data_service.d.ts +808 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/live_data_service.js +652 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/live_data_service.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/move_package.d.ts +579 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/move_package.js +483 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/move_package.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/move_package_service.client.d.ts +61 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/move_package_service.client.js +86 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/move_package_service.client.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/move_package_service.d.ts +229 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/move_package_service.js +226 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/move_package_service.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/name_service.client.d.ts +41 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/name_service.client.js +60 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/name_service.client.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/name_service.d.ts +144 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/name_service.js +138 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/name_service.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/object.d.ts +107 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/object.js +104 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/object.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/object_reference.d.ts +34 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/object_reference.js +56 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/object_reference.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/owner.d.ts +61 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/owner.js +65 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/owner.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/protocol_config.d.ts +30 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/protocol_config.js +62 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/protocol_config.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature.d.ts +617 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature.js +509 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature_scheme.d.ts +40 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature_scheme.js +34 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature_scheme.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature_verification_service.client.d.ts +35 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature_verification_service.client.js +49 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature_verification_service.client.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature_verification_service.d.ts +79 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature_verification_service.js +76 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/signature_verification_service.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/subscription_service.client.d.ts +55 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/subscription_service.client.js +59 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/subscription_service.client.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/subscription_service.d.ts +57 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/subscription_service.js +63 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/subscription_service.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/system_state.d.ts +684 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/system_state.js +674 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/system_state.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/transaction.d.ts +1301 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/transaction.js +987 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/transaction.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.client.d.ts +37 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.client.js +50 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.client.js.map +7 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.d.ts +115 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.js +94 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.js.map +7 -0
- package/dist/cjs/{client → jsonRpc}/client.d.ts +12 -12
- package/dist/cjs/{client → jsonRpc}/client.js +9 -9
- package/dist/cjs/jsonRpc/client.js.map +7 -0
- package/dist/cjs/{experimental/transports/jsonRPC.d.ts → jsonRpc/core.d.ts} +7 -7
- package/dist/cjs/{experimental/transports/jsonRPC.js → jsonRpc/core.js} +18 -18
- package/dist/cjs/jsonRpc/core.js.map +7 -0
- package/dist/cjs/{client → jsonRpc}/errors.js.map +1 -1
- package/dist/{esm/client → cjs/jsonRpc}/http-transport.d.ts +10 -10
- package/dist/cjs/{client → jsonRpc}/http-transport.js +6 -6
- package/dist/cjs/jsonRpc/http-transport.js.map +7 -0
- package/dist/cjs/jsonRpc/index.d.ts +4 -0
- package/dist/cjs/jsonRpc/index.js +32 -0
- package/dist/cjs/jsonRpc/index.js.map +7 -0
- package/dist/cjs/jsonRpc/json-rpc-resolver.d.ts +4 -0
- package/dist/cjs/{experimental/transports → jsonRpc}/json-rpc-resolver.js +6 -6
- package/dist/cjs/jsonRpc/json-rpc-resolver.js.map +7 -0
- package/dist/cjs/{client → jsonRpc}/rpc-websocket-client.js.map +1 -1
- package/dist/cjs/{client → jsonRpc}/types/chain.js.map +1 -1
- package/dist/cjs/{client → jsonRpc}/types/changes.js.map +1 -1
- package/dist/cjs/{client → jsonRpc}/types/coins.js.map +1 -1
- package/dist/cjs/{client → jsonRpc}/types/common.js.map +1 -1
- package/dist/cjs/{client → jsonRpc}/types/generated.js.map +1 -1
- package/dist/cjs/{client → jsonRpc}/types/index.js.map +1 -1
- package/dist/cjs/{client → jsonRpc}/types/params.js.map +1 -1
- package/dist/cjs/multisig/signer.d.ts +1 -0
- package/dist/cjs/multisig/signer.js +1 -0
- package/dist/cjs/multisig/signer.js.map +2 -2
- package/dist/cjs/transactions/ObjectCache.js +1 -1
- package/dist/cjs/transactions/ObjectCache.js.map +2 -2
- package/dist/cjs/transactions/Transaction.js +2 -2
- package/dist/cjs/transactions/Transaction.js.map +2 -2
- package/dist/cjs/transactions/resolve.js +2 -2
- package/dist/cjs/transactions/resolve.js.map +2 -2
- package/dist/cjs/utils/sui-types.js +1 -1
- package/dist/cjs/utils/sui-types.js.map +2 -2
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/zklogin/jwt-decode.js +1 -1
- package/dist/cjs/zklogin/jwt-decode.js.map +2 -2
- package/dist/esm/client/index.d.ts +4 -4
- package/dist/esm/client/index.js +9 -9
- package/dist/esm/client/index.js.map +2 -2
- package/dist/esm/experimental/core.js +1 -1
- package/dist/esm/experimental/core.js.map +2 -2
- package/dist/esm/faucet/faucet.d.ts +3 -3
- package/dist/esm/faucet/faucet.js +1 -1
- package/dist/esm/faucet/faucet.js.map +2 -2
- package/dist/esm/graphql/client.d.ts +2 -2
- package/dist/esm/graphql/client.js +2 -2
- package/dist/esm/graphql/client.js.map +2 -2
- package/dist/esm/{experimental/transports/graphql.d.ts → graphql/core.d.ts} +4 -4
- package/dist/esm/{experimental/transports/graphql.js → graphql/core.js} +28 -25
- package/dist/esm/graphql/core.js.map +7 -0
- package/dist/esm/grpc/client.d.ts +31 -0
- package/dist/esm/grpc/client.js +31 -0
- package/dist/esm/grpc/client.js.map +7 -0
- package/dist/esm/grpc/core.d.ts +27 -0
- package/dist/esm/grpc/core.js +633 -0
- package/dist/esm/grpc/core.js.map +7 -0
- package/dist/esm/grpc/index.d.ts +4 -0
- package/dist/esm/grpc/index.js +7 -0
- package/dist/esm/grpc/index.js.map +7 -0
- package/dist/esm/grpc/proto/google/protobuf/any.d.ts +173 -0
- package/dist/esm/grpc/proto/google/protobuf/any.js +119 -0
- package/dist/esm/grpc/proto/google/protobuf/any.js.map +7 -0
- package/dist/esm/grpc/proto/google/protobuf/duration.d.ts +104 -0
- package/dist/esm/grpc/proto/google/protobuf/duration.js +68 -0
- package/dist/esm/grpc/proto/google/protobuf/duration.js.map +7 -0
- package/dist/esm/grpc/proto/google/protobuf/empty.d.ts +25 -0
- package/dist/esm/grpc/proto/google/protobuf/empty.js +11 -0
- package/dist/esm/grpc/proto/google/protobuf/empty.js.map +7 -0
- package/dist/esm/grpc/proto/google/protobuf/field_mask.d.ts +231 -0
- package/dist/esm/grpc/proto/google/protobuf/field_mask.js +53 -0
- package/dist/esm/grpc/proto/google/protobuf/field_mask.js.map +7 -0
- package/dist/esm/grpc/proto/google/protobuf/struct.d.ts +169 -0
- package/dist/esm/grpc/proto/google/protobuf/struct.js +179 -0
- package/dist/esm/grpc/proto/google/protobuf/struct.js.map +7 -0
- package/dist/esm/grpc/proto/google/protobuf/timestamp.d.ts +145 -0
- package/dist/esm/grpc/proto/google/protobuf/timestamp.js +103 -0
- package/dist/esm/grpc/proto/google/protobuf/timestamp.js.map +7 -0
- package/dist/esm/grpc/proto/google/rpc/error_details.d.ts +525 -0
- package/dist/esm/grpc/proto/google/rpc/error_details.js +312 -0
- package/dist/esm/grpc/proto/google/rpc/error_details.js.map +7 -0
- package/dist/esm/grpc/proto/google/rpc/status.d.ts +46 -0
- package/dist/esm/grpc/proto/google/rpc/status.js +28 -0
- package/dist/esm/grpc/proto/google/rpc/status.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/argument.d.ts +66 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/argument.js +51 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/argument.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/balance_change.d.ts +34 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/balance_change.js +36 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/balance_change.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/bcs.d.ts +30 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/bcs.js +28 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/bcs.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/checkpoint.d.ts +55 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/checkpoint.js +42 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/checkpoint.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/checkpoint_contents.d.ts +74 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/checkpoint_contents.js +69 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/checkpoint_contents.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/checkpoint_summary.d.ts +195 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/checkpoint_summary.js +145 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/checkpoint_summary.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/effects.d.ts +333 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/effects.js +266 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/effects.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/epoch.d.ts +62 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/epoch.js +53 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/epoch.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/error_reason.d.ts +17 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/error_reason.js +10 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/error_reason.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/event.d.ts +88 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/event.js +66 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/event.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/executed_transaction.d.ts +85 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/executed_transaction.js +67 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/executed_transaction.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/execution_status.d.ts +843 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/execution_status.js +493 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/execution_status.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/gas_cost_summary.d.ts +41 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/gas_cost_summary.js +44 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/gas_cost_summary.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/input.d.ts +98 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/input.js +70 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/input.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/ledger_service.client.d.ts +95 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/ledger_service.client.js +107 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/ledger_service.client.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/ledger_service.d.ts +420 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/ledger_service.js +307 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/ledger_service.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/live_data_service.client.d.ts +81 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/live_data_service.client.js +92 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/live_data_service.client.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/live_data_service.d.ts +808 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/live_data_service.js +632 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/live_data_service.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/move_package.d.ts +579 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/move_package.js +463 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/move_package.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/move_package_service.client.d.ts +61 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/move_package_service.client.js +66 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/move_package_service.client.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/move_package_service.d.ts +229 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/move_package_service.js +206 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/move_package_service.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/name_service.client.d.ts +41 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/name_service.client.js +40 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/name_service.client.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/name_service.d.ts +144 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/name_service.js +118 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/name_service.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/object.d.ts +107 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/object.js +84 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/object.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/object_reference.d.ts +34 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/object_reference.js +36 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/object_reference.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/owner.d.ts +61 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/owner.js +45 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/owner.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/protocol_config.d.ts +30 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/protocol_config.js +42 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/protocol_config.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature.d.ts +617 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature.js +489 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature_scheme.d.ts +40 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature_scheme.js +14 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature_scheme.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature_verification_service.client.d.ts +35 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature_verification_service.client.js +29 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature_verification_service.client.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature_verification_service.d.ts +79 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature_verification_service.js +56 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/signature_verification_service.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/subscription_service.client.d.ts +55 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/subscription_service.client.js +39 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/subscription_service.client.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/subscription_service.d.ts +57 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/subscription_service.js +43 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/subscription_service.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/system_state.d.ts +684 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/system_state.js +654 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/system_state.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/transaction.d.ts +1301 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/transaction.js +967 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/transaction.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.client.d.ts +37 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.client.js +30 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.client.js.map +7 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.d.ts +115 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.js +74 -0
- package/dist/esm/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.js.map +7 -0
- package/dist/esm/{client → jsonRpc}/client.d.ts +12 -12
- package/dist/esm/{client → jsonRpc}/client.js +10 -10
- package/dist/esm/jsonRpc/client.js.map +7 -0
- package/dist/esm/{experimental/transports/jsonRPC.d.ts → jsonRpc/core.d.ts} +7 -7
- package/dist/esm/{experimental/transports/jsonRPC.js → jsonRpc/core.js} +12 -12
- package/dist/esm/jsonRpc/core.js.map +7 -0
- package/dist/esm/{client → jsonRpc}/errors.js.map +1 -1
- package/dist/{cjs/client → esm/jsonRpc}/http-transport.d.ts +10 -10
- package/dist/esm/{client → jsonRpc}/http-transport.js +6 -6
- package/dist/esm/jsonRpc/http-transport.js.map +7 -0
- package/dist/esm/jsonRpc/index.d.ts +4 -0
- package/dist/esm/jsonRpc/index.js +17 -0
- package/dist/esm/jsonRpc/index.js.map +7 -0
- package/dist/esm/jsonRpc/json-rpc-resolver.d.ts +4 -0
- package/dist/esm/{experimental/transports → jsonRpc}/json-rpc-resolver.js +6 -6
- package/dist/esm/jsonRpc/json-rpc-resolver.js.map +7 -0
- package/dist/esm/{client → jsonRpc}/rpc-websocket-client.js.map +1 -1
- package/dist/esm/multisig/signer.d.ts +1 -0
- package/dist/esm/multisig/signer.js +1 -0
- package/dist/esm/multisig/signer.js.map +2 -2
- package/dist/esm/transactions/ObjectCache.js +1 -1
- package/dist/esm/transactions/ObjectCache.js.map +2 -2
- package/dist/esm/transactions/Transaction.js +2 -2
- package/dist/esm/transactions/Transaction.js.map +2 -2
- package/dist/esm/transactions/resolve.js +2 -2
- package/dist/esm/transactions/resolve.js.map +2 -2
- package/dist/esm/utils/sui-types.js +1 -1
- package/dist/esm/utils/sui-types.js.map +2 -2
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/zklogin/jwt-decode.js +1 -1
- package/dist/esm/zklogin/jwt-decode.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/grpc/package.json +6 -0
- package/jsonRpc/package.json +6 -0
- package/package.json +20 -3
- package/src/client/index.ts +12 -12
- package/src/experimental/core.ts +1 -1
- package/src/faucet/faucet.ts +4 -4
- package/src/graphql/client.ts +3 -3
- package/src/{experimental/transports/graphql.ts → graphql/core.ts} +14 -11
- package/src/grpc/client.ts +59 -0
- package/src/grpc/core.ts +727 -0
- package/src/grpc/index.ts +7 -0
- package/src/grpc/proto/google/protobuf/any.ts +296 -0
- package/src/grpc/proto/google/protobuf/duration.ts +187 -0
- package/src/grpc/proto/google/protobuf/empty.ts +64 -0
- package/src/grpc/proto/google/protobuf/field_mask.ts +309 -0
- package/src/grpc/proto/google/protobuf/struct.ts +327 -0
- package/src/grpc/proto/google/protobuf/timestamp.ts +260 -0
- package/src/grpc/proto/google/rpc/error_details.ts +667 -0
- package/src/grpc/proto/google/rpc/status.ts +74 -0
- package/src/grpc/proto/sui/rpc/v2beta2/argument.ts +90 -0
- package/src/grpc/proto/sui/rpc/v2beta2/balance_change.ts +51 -0
- package/src/grpc/proto/sui/rpc/v2beta2/bcs.ts +46 -0
- package/src/grpc/proto/sui/rpc/v2beta2/checkpoint.ts +88 -0
- package/src/grpc/proto/sui/rpc/v2beta2/checkpoint_contents.ts +111 -0
- package/src/grpc/proto/sui/rpc/v2beta2/checkpoint_summary.ts +295 -0
- package/src/grpc/proto/sui/rpc/v2beta2/effects.ts +479 -0
- package/src/grpc/proto/sui/rpc/v2beta2/epoch.ts +113 -0
- package/src/grpc/proto/sui/rpc/v2beta2/error_reason.ts +28 -0
- package/src/grpc/proto/sui/rpc/v2beta2/event.ts +115 -0
- package/src/grpc/proto/sui/rpc/v2beta2/executed_transaction.ts +140 -0
- package/src/grpc/proto/sui/rpc/v2beta2/execution_status.ts +1079 -0
- package/src/grpc/proto/sui/rpc/v2beta2/gas_cost_summary.ts +87 -0
- package/src/grpc/proto/sui/rpc/v2beta2/input.ts +132 -0
- package/src/grpc/proto/sui/rpc/v2beta2/ledger_service.client.ts +217 -0
- package/src/grpc/proto/sui/rpc/v2beta2/ledger_service.ts +625 -0
- package/src/grpc/proto/sui/rpc/v2beta2/live_data_service.client.ts +187 -0
- package/src/grpc/proto/sui/rpc/v2beta2/live_data_service.ts +1066 -0
- package/src/grpc/proto/sui/rpc/v2beta2/move_package.ts +803 -0
- package/src/grpc/proto/sui/rpc/v2beta2/move_package_service.client.ts +135 -0
- package/src/grpc/proto/sui/rpc/v2beta2/move_package_service.ts +315 -0
- package/src/grpc/proto/sui/rpc/v2beta2/name_service.client.ts +83 -0
- package/src/grpc/proto/sui/rpc/v2beta2/name_service.ts +198 -0
- package/src/grpc/proto/sui/rpc/v2beta2/object.ts +161 -0
- package/src/grpc/proto/sui/rpc/v2beta2/object_reference.ts +58 -0
- package/src/grpc/proto/sui/rpc/v2beta2/owner.ts +91 -0
- package/src/grpc/proto/sui/rpc/v2beta2/protocol_config.ts +66 -0
- package/src/grpc/proto/sui/rpc/v2beta2/signature.ts +861 -0
- package/src/grpc/proto/sui/rpc/v2beta2/signature_scheme.ts +51 -0
- package/src/grpc/proto/sui/rpc/v2beta2/signature_verification_service.client.ts +63 -0
- package/src/grpc/proto/sui/rpc/v2beta2/signature_verification_service.ts +106 -0
- package/src/grpc/proto/sui/rpc/v2beta2/subscription_service.client.ts +81 -0
- package/src/grpc/proto/sui/rpc/v2beta2/subscription_service.ts +93 -0
- package/src/grpc/proto/sui/rpc/v2beta2/system_state.ts +1184 -0
- package/src/grpc/proto/sui/rpc/v2beta2/transaction.ts +2012 -0
- package/src/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.client.ts +65 -0
- package/src/grpc/proto/sui/rpc/v2beta2/transaction_execution_service.ts +178 -0
- package/src/{client → jsonRpc}/client.ts +21 -16
- package/src/{experimental/transports/jsonRPC.ts → jsonRpc/core.ts} +15 -15
- package/src/{client → jsonRpc}/http-transport.ts +13 -11
- package/src/jsonRpc/index.ts +20 -0
- package/src/{experimental/transports → jsonRpc}/json-rpc-resolver.ts +17 -14
- package/src/multisig/signer.ts +1 -0
- package/src/transactions/ObjectCache.ts +1 -1
- package/src/transactions/Transaction.ts +2 -2
- package/src/transactions/resolve.ts +3 -3
- package/src/utils/sui-types.ts +1 -1
- package/src/version.ts +1 -1
- package/src/zklogin/jwt-decode.ts +2 -1
- package/dist/cjs/client/client.js.map +0 -7
- package/dist/cjs/client/http-transport.js.map +0 -7
- package/dist/cjs/experimental/transports/graphql.js.map +0 -7
- package/dist/cjs/experimental/transports/json-rpc-resolver.d.ts +0 -4
- package/dist/cjs/experimental/transports/json-rpc-resolver.js.map +0 -7
- package/dist/cjs/experimental/transports/jsonRPC.js.map +0 -7
- package/dist/esm/client/client.js.map +0 -7
- package/dist/esm/client/http-transport.js.map +0 -7
- package/dist/esm/experimental/transports/graphql.js.map +0 -7
- package/dist/esm/experimental/transports/json-rpc-resolver.d.ts +0 -4
- package/dist/esm/experimental/transports/json-rpc-resolver.js.map +0 -7
- package/dist/esm/experimental/transports/jsonRPC.js.map +0 -7
- /package/dist/cjs/{client → jsonRpc}/errors.d.ts +0 -0
- /package/dist/cjs/{client → jsonRpc}/errors.js +0 -0
- /package/dist/cjs/{client → jsonRpc}/rpc-websocket-client.d.ts +0 -0
- /package/dist/cjs/{client → jsonRpc}/rpc-websocket-client.js +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/chain.d.ts +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/chain.js +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/changes.d.ts +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/changes.js +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/coins.d.ts +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/coins.js +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/common.d.ts +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/common.js +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/generated.d.ts +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/generated.js +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/index.d.ts +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/index.js +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/params.d.ts +0 -0
- /package/dist/cjs/{client → jsonRpc}/types/params.js +0 -0
- /package/dist/esm/{client → jsonRpc}/errors.d.ts +0 -0
- /package/dist/esm/{client → jsonRpc}/errors.js +0 -0
- /package/dist/esm/{client → jsonRpc}/rpc-websocket-client.d.ts +0 -0
- /package/dist/esm/{client → jsonRpc}/rpc-websocket-client.js +0 -0
- /package/dist/esm/{client → jsonRpc}/types/chain.d.ts +0 -0
- /package/dist/esm/{client → jsonRpc}/types/chain.js +0 -0
- /package/dist/esm/{client → jsonRpc}/types/chain.js.map +0 -0
- /package/dist/esm/{client → jsonRpc}/types/changes.d.ts +0 -0
- /package/dist/esm/{client → jsonRpc}/types/changes.js +0 -0
- /package/dist/esm/{client → jsonRpc}/types/changes.js.map +0 -0
- /package/dist/esm/{client → jsonRpc}/types/coins.d.ts +0 -0
- /package/dist/esm/{client → jsonRpc}/types/coins.js +0 -0
- /package/dist/esm/{client → jsonRpc}/types/coins.js.map +0 -0
- /package/dist/esm/{client → jsonRpc}/types/common.d.ts +0 -0
- /package/dist/esm/{client → jsonRpc}/types/common.js +0 -0
- /package/dist/esm/{client → jsonRpc}/types/common.js.map +0 -0
- /package/dist/esm/{client → jsonRpc}/types/generated.d.ts +0 -0
- /package/dist/esm/{client → jsonRpc}/types/generated.js +0 -0
- /package/dist/esm/{client → jsonRpc}/types/generated.js.map +0 -0
- /package/dist/esm/{client → jsonRpc}/types/index.d.ts +0 -0
- /package/dist/esm/{client → jsonRpc}/types/index.js +0 -0
- /package/dist/esm/{client → jsonRpc}/types/index.js.map +0 -0
- /package/dist/esm/{client → jsonRpc}/types/params.d.ts +0 -0
- /package/dist/esm/{client → jsonRpc}/types/params.js +0 -0
- /package/dist/esm/{client → jsonRpc}/types/params.js.map +0 -0
- /package/src/{client → jsonRpc}/errors.ts +0 -0
- /package/src/{client → jsonRpc}/rpc-websocket-client.ts +0 -0
- /package/src/{client → jsonRpc}/types/chain.ts +0 -0
- /package/src/{client → jsonRpc}/types/changes.ts +0 -0
- /package/src/{client → jsonRpc}/types/coins.ts +0 -0
- /package/src/{client → jsonRpc}/types/common.ts +0 -0
- /package/src/{client → jsonRpc}/types/generated.ts +0 -0
- /package/src/{client → jsonRpc}/types/index.ts +0 -0
- /package/src/{client → jsonRpc}/types/params.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/multisig/signer.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport { toBase64 } from '@mysten/bcs';\n\nimport type { SignatureScheme } from '../cryptography/index.js';\nimport { Signer } from '../cryptography/index.js';\nimport type { MultiSigPublicKey } from './publickey.js';\n\nexport class MultiSigSigner extends Signer {\n\t#pubkey: MultiSigPublicKey;\n\t#signers: Signer[];\n\n\tconstructor(pubkey: MultiSigPublicKey, signers: Signer[] = []) {\n\t\tsuper();\n\t\tthis.#pubkey = pubkey;\n\t\tthis.#signers = signers;\n\n\t\tconst uniqueKeys = new Set();\n\t\tlet combinedWeight = 0;\n\n\t\tconst weights = pubkey.getPublicKeys().map(({ weight, publicKey }) => ({\n\t\t\tweight,\n\t\t\taddress: publicKey.toSuiAddress(),\n\t\t}));\n\n\t\tfor (const signer of signers) {\n\t\t\tconst address = signer.toSuiAddress();\n\t\t\tif (uniqueKeys.has(address)) {\n\t\t\t\tthrow new Error(`Can't create MultiSigSigner with duplicate signers`);\n\t\t\t}\n\t\t\tuniqueKeys.add(address);\n\n\t\t\tconst weight = weights.find((w) => w.address === address)?.weight;\n\n\t\t\tif (!weight) {\n\t\t\t\tthrow new Error(`Signer ${address} is not part of the MultiSig public key`);\n\t\t\t}\n\n\t\t\tcombinedWeight += weight;\n\t\t}\n\n\t\tif (combinedWeight < pubkey.getThreshold()) {\n\t\t\tthrow new Error(`Combined weight of signers is less than threshold`);\n\t\t}\n\t}\n\n\tgetKeyScheme(): SignatureScheme {\n\t\treturn 'MultiSig';\n\t}\n\n\tgetPublicKey(): MultiSigPublicKey {\n\t\treturn this.#pubkey;\n\t}\n\n\tsign(_data: Uint8Array): never {\n\t\tthrow new Error(\n\t\t\t'MultiSigSigner does not support signing directly. Use signTransaction or signPersonalMessage instead',\n\t\t);\n\t}\n\n\tsignData(_data: Uint8Array): never {\n\t\tthrow new Error(\n\t\t\t'MultiSigSigner does not support signing directly. Use signTransaction or signPersonalMessage instead',\n\t\t);\n\t}\n\n\tasync signTransaction(bytes: Uint8Array) {\n\t\tconst signature = this.#pubkey.combinePartialSignatures(\n\t\t\tawait Promise.all(\n\t\t\t\tthis.#signers.map(async (signer) => (await signer.signTransaction(bytes)).signature),\n\t\t\t),\n\t\t);\n\n\t\treturn {\n\t\t\tsignature,\n\t\t\tbytes: toBase64(bytes),\n\t\t};\n\t}\n\n\tasync signPersonalMessage(bytes: Uint8Array) {\n\t\tconst signature = this.#pubkey.combinePartialSignatures(\n\t\t\tawait Promise.all(\n\t\t\t\tthis.#signers.map(async (signer) => (await signer.signPersonalMessage(bytes)).signature),\n\t\t\t),\n\t\t);\n\n\t\treturn {\n\t\t\tsignature,\n\t\t\tbytes: toBase64(bytes),\n\t\t};\n\t}\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAAA;AAEA,SAAS,gBAAgB;AAGzB,SAAS,cAAc;AAGhB,MAAM,uBAAuB,OAAO;AAAA,EAI1C,YAAY,QAA2B,UAAoB,CAAC,GAAG;AAC9D,UAAM;AAJP;AACA;AAIC,uBAAK,SAAU;AACf,uBAAK,UAAW;AAEhB,UAAM,aAAa,oBAAI,IAAI;AAC3B,QAAI,iBAAiB;AAErB,UAAM,UAAU,OAAO,cAAc,EAAE,IAAI,CAAC,EAAE,QAAQ,UAAU,OAAO;AAAA,MACtE;AAAA,MACA,SAAS,UAAU,aAAa;AAAA,IACjC,EAAE;AAEF,eAAW,UAAU,SAAS;AAC7B,YAAM,UAAU,OAAO,aAAa;AACpC,UAAI,WAAW,IAAI,OAAO,GAAG;AAC5B,cAAM,IAAI,MAAM,oDAAoD;AAAA,MACrE;AACA,iBAAW,IAAI,OAAO;AAEtB,YAAM,SAAS,QAAQ,KAAK,CAAC,MAAM,EAAE,YAAY,OAAO,GAAG;AAE3D,UAAI,CAAC,QAAQ;AACZ,cAAM,IAAI,MAAM,UAAU,OAAO,yCAAyC;AAAA,MAC3E;AAEA,wBAAkB;AAAA,IACnB;AAEA,QAAI,iBAAiB,OAAO,aAAa,GAAG;AAC3C,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACpE;AAAA,EACD;AAAA,EAEA,eAAgC;AAC/B,WAAO;AAAA,EACR;AAAA,EAEA,eAAkC;AACjC,WAAO,mBAAK;AAAA,EACb;AAAA,EAEA,KAAK,OAA0B;AAC9B,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAAA,
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport { toBase64 } from '@mysten/bcs';\n\nimport type { SignatureScheme } from '../cryptography/index.js';\nimport { Signer } from '../cryptography/index.js';\nimport type { MultiSigPublicKey } from './publickey.js';\n\nexport class MultiSigSigner extends Signer {\n\t#pubkey: MultiSigPublicKey;\n\t#signers: Signer[];\n\n\tconstructor(pubkey: MultiSigPublicKey, signers: Signer[] = []) {\n\t\tsuper();\n\t\tthis.#pubkey = pubkey;\n\t\tthis.#signers = signers;\n\n\t\tconst uniqueKeys = new Set();\n\t\tlet combinedWeight = 0;\n\n\t\tconst weights = pubkey.getPublicKeys().map(({ weight, publicKey }) => ({\n\t\t\tweight,\n\t\t\taddress: publicKey.toSuiAddress(),\n\t\t}));\n\n\t\tfor (const signer of signers) {\n\t\t\tconst address = signer.toSuiAddress();\n\t\t\tif (uniqueKeys.has(address)) {\n\t\t\t\tthrow new Error(`Can't create MultiSigSigner with duplicate signers`);\n\t\t\t}\n\t\t\tuniqueKeys.add(address);\n\n\t\t\tconst weight = weights.find((w) => w.address === address)?.weight;\n\n\t\t\tif (!weight) {\n\t\t\t\tthrow new Error(`Signer ${address} is not part of the MultiSig public key`);\n\t\t\t}\n\n\t\t\tcombinedWeight += weight;\n\t\t}\n\n\t\tif (combinedWeight < pubkey.getThreshold()) {\n\t\t\tthrow new Error(`Combined weight of signers is less than threshold`);\n\t\t}\n\t}\n\n\tgetKeyScheme(): SignatureScheme {\n\t\treturn 'MultiSig';\n\t}\n\n\tgetPublicKey(): MultiSigPublicKey {\n\t\treturn this.#pubkey;\n\t}\n\n\tsign(_data: Uint8Array): never {\n\t\tthrow new Error(\n\t\t\t'MultiSigSigner does not support signing directly. Use signTransaction or signPersonalMessage instead',\n\t\t);\n\t}\n\n\t/** @deprecated use `sign` instead */\n\tsignData(_data: Uint8Array): never {\n\t\tthrow new Error(\n\t\t\t'MultiSigSigner does not support signing directly. Use signTransaction or signPersonalMessage instead',\n\t\t);\n\t}\n\n\tasync signTransaction(bytes: Uint8Array) {\n\t\tconst signature = this.#pubkey.combinePartialSignatures(\n\t\t\tawait Promise.all(\n\t\t\t\tthis.#signers.map(async (signer) => (await signer.signTransaction(bytes)).signature),\n\t\t\t),\n\t\t);\n\n\t\treturn {\n\t\t\tsignature,\n\t\t\tbytes: toBase64(bytes),\n\t\t};\n\t}\n\n\tasync signPersonalMessage(bytes: Uint8Array) {\n\t\tconst signature = this.#pubkey.combinePartialSignatures(\n\t\t\tawait Promise.all(\n\t\t\t\tthis.#signers.map(async (signer) => (await signer.signPersonalMessage(bytes)).signature),\n\t\t\t),\n\t\t);\n\n\t\treturn {\n\t\t\tsignature,\n\t\t\tbytes: toBase64(bytes),\n\t\t};\n\t}\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAAA;AAEA,SAAS,gBAAgB;AAGzB,SAAS,cAAc;AAGhB,MAAM,uBAAuB,OAAO;AAAA,EAI1C,YAAY,QAA2B,UAAoB,CAAC,GAAG;AAC9D,UAAM;AAJP;AACA;AAIC,uBAAK,SAAU;AACf,uBAAK,UAAW;AAEhB,UAAM,aAAa,oBAAI,IAAI;AAC3B,QAAI,iBAAiB;AAErB,UAAM,UAAU,OAAO,cAAc,EAAE,IAAI,CAAC,EAAE,QAAQ,UAAU,OAAO;AAAA,MACtE;AAAA,MACA,SAAS,UAAU,aAAa;AAAA,IACjC,EAAE;AAEF,eAAW,UAAU,SAAS;AAC7B,YAAM,UAAU,OAAO,aAAa;AACpC,UAAI,WAAW,IAAI,OAAO,GAAG;AAC5B,cAAM,IAAI,MAAM,oDAAoD;AAAA,MACrE;AACA,iBAAW,IAAI,OAAO;AAEtB,YAAM,SAAS,QAAQ,KAAK,CAAC,MAAM,EAAE,YAAY,OAAO,GAAG;AAE3D,UAAI,CAAC,QAAQ;AACZ,cAAM,IAAI,MAAM,UAAU,OAAO,yCAAyC;AAAA,MAC3E;AAEA,wBAAkB;AAAA,IACnB;AAEA,QAAI,iBAAiB,OAAO,aAAa,GAAG;AAC3C,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACpE;AAAA,EACD;AAAA,EAEA,eAAgC;AAC/B,WAAO;AAAA,EACR;AAAA,EAEA,eAAkC;AACjC,WAAO,mBAAK;AAAA,EACb;AAAA,EAEA,KAAK,OAA0B;AAC9B,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAAA;AAAA,EAGA,SAAS,OAA0B;AAClC,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,gBAAgB,OAAmB;AACxC,UAAM,YAAY,mBAAK,SAAQ;AAAA,MAC9B,MAAM,QAAQ;AAAA,QACb,mBAAK,UAAS,IAAI,OAAO,YAAY,MAAM,OAAO,gBAAgB,KAAK,GAAG,SAAS;AAAA,MACpF;AAAA,IACD;AAEA,WAAO;AAAA,MACN;AAAA,MACA,OAAO,SAAS,KAAK;AAAA,IACtB;AAAA,EACD;AAAA,EAEA,MAAM,oBAAoB,OAAmB;AAC5C,UAAM,YAAY,mBAAK,SAAQ;AAAA,MAC9B,MAAM,QAAQ;AAAA,QACb,mBAAK,UAAS,IAAI,OAAO,YAAY,MAAM,OAAO,oBAAoB,KAAK,GAAG,SAAS;AAAA,MACxF;AAAA,IACD;AAEA,WAAO;AAAA,MACN;AAAA,MACA,OAAO,SAAS,KAAK;AAAA,IACtB;AAAA,EACD;AACD;AAnFC;AACA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -16,7 +16,7 @@ class AsyncCache {
|
|
|
16
16
|
return owned ?? shared ?? null;
|
|
17
17
|
}
|
|
18
18
|
async getObjects(ids) {
|
|
19
|
-
return Promise.all(
|
|
19
|
+
return Promise.all(ids.map((id) => this.getObject(id)));
|
|
20
20
|
}
|
|
21
21
|
async addObject(object) {
|
|
22
22
|
if (object.owner) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/transactions/ObjectCache.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { bcs } from '../bcs/index.js';\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport type { OpenMoveTypeSignature } from './data/internal.js';\nimport type { TransactionPlugin } from './resolve.js';\n\nexport interface ObjectCacheEntry {\n\tobjectId: string;\n\tversion: string;\n\tdigest: string;\n\towner: string | null;\n\tinitialSharedVersion: string | null;\n}\n\nexport interface MoveFunctionCacheEntry {\n\tpackage: string;\n\tmodule: string;\n\tfunction: string;\n\tparameters: OpenMoveTypeSignature[];\n}\n\nexport interface CacheEntryTypes {\n\tOwnedObject: ObjectCacheEntry;\n\tSharedOrImmutableObject: ObjectCacheEntry;\n\tMoveFunction: MoveFunctionCacheEntry;\n\tCustom: unknown;\n}\nexport abstract class AsyncCache {\n\tprotected abstract get<T extends keyof CacheEntryTypes>(\n\t\ttype: T,\n\t\tkey: string,\n\t): Promise<CacheEntryTypes[T] | null>;\n\tprotected abstract set<T extends keyof CacheEntryTypes>(\n\t\ttype: T,\n\t\tkey: string,\n\t\tvalue: CacheEntryTypes[T],\n\t): Promise<void>;\n\tprotected abstract delete<T extends keyof CacheEntryTypes>(type: T, key: string): Promise<void>;\n\tabstract clear<T extends keyof CacheEntryTypes>(type?: T): Promise<void>;\n\n\tasync getObject(id: string) {\n\t\tconst [owned, shared] = await Promise.all([\n\t\t\tthis.get('OwnedObject', id),\n\t\t\tthis.get('SharedOrImmutableObject', id),\n\t\t]);\n\n\t\treturn owned ?? shared ?? null;\n\t}\n\n\tasync getObjects(ids: string[]) {\n\t\treturn Promise.all(
|
|
5
|
-
"mappings": ";;;;;;;AAAA;AAIA,SAAS,2BAA2B;AAyB7B,MAAe,WAAW;AAAA,EAahC,MAAM,UAAU,IAAY;AAC3B,UAAM,CAAC,OAAO,MAAM,IAAI,MAAM,QAAQ,IAAI;AAAA,MACzC,KAAK,IAAI,eAAe,EAAE;AAAA,MAC1B,KAAK,IAAI,2BAA2B,EAAE;AAAA,IACvC,CAAC;AAED,WAAO,SAAS,UAAU;AAAA,EAC3B;AAAA,EAEA,MAAM,WAAW,KAAe;AAC/B,WAAO,QAAQ,IAAI,
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { bcs } from '../bcs/index.js';\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport type { OpenMoveTypeSignature } from './data/internal.js';\nimport type { TransactionPlugin } from './resolve.js';\n\nexport interface ObjectCacheEntry {\n\tobjectId: string;\n\tversion: string;\n\tdigest: string;\n\towner: string | null;\n\tinitialSharedVersion: string | null;\n}\n\nexport interface MoveFunctionCacheEntry {\n\tpackage: string;\n\tmodule: string;\n\tfunction: string;\n\tparameters: OpenMoveTypeSignature[];\n}\n\nexport interface CacheEntryTypes {\n\tOwnedObject: ObjectCacheEntry;\n\tSharedOrImmutableObject: ObjectCacheEntry;\n\tMoveFunction: MoveFunctionCacheEntry;\n\tCustom: unknown;\n}\nexport abstract class AsyncCache {\n\tprotected abstract get<T extends keyof CacheEntryTypes>(\n\t\ttype: T,\n\t\tkey: string,\n\t): Promise<CacheEntryTypes[T] | null>;\n\tprotected abstract set<T extends keyof CacheEntryTypes>(\n\t\ttype: T,\n\t\tkey: string,\n\t\tvalue: CacheEntryTypes[T],\n\t): Promise<void>;\n\tprotected abstract delete<T extends keyof CacheEntryTypes>(type: T, key: string): Promise<void>;\n\tabstract clear<T extends keyof CacheEntryTypes>(type?: T): Promise<void>;\n\n\tasync getObject(id: string) {\n\t\tconst [owned, shared] = await Promise.all([\n\t\t\tthis.get('OwnedObject', id),\n\t\t\tthis.get('SharedOrImmutableObject', id),\n\t\t]);\n\n\t\treturn owned ?? shared ?? null;\n\t}\n\n\tasync getObjects(ids: string[]) {\n\t\treturn Promise.all(ids.map((id) => this.getObject(id)));\n\t}\n\n\tasync addObject(object: ObjectCacheEntry) {\n\t\tif (object.owner) {\n\t\t\tawait this.set('OwnedObject', object.objectId, object);\n\t\t} else {\n\t\t\tawait this.set('SharedOrImmutableObject', object.objectId, object);\n\t\t}\n\n\t\treturn object;\n\t}\n\n\tasync addObjects(objects: ObjectCacheEntry[]) {\n\t\tawait Promise.all(objects.map(async (object) => this.addObject(object)));\n\t}\n\n\tasync deleteObject(id: string) {\n\t\tawait Promise.all([this.delete('OwnedObject', id), this.delete('SharedOrImmutableObject', id)]);\n\t}\n\n\tasync deleteObjects(ids: string[]) {\n\t\tawait Promise.all(ids.map((id) => this.deleteObject(id)));\n\t}\n\n\tasync getMoveFunctionDefinition(ref: { package: string; module: string; function: string }) {\n\t\tconst functionName = `${normalizeSuiAddress(ref.package)}::${ref.module}::${ref.function}`;\n\t\treturn this.get('MoveFunction', functionName);\n\t}\n\n\tasync addMoveFunctionDefinition(functionEntry: MoveFunctionCacheEntry) {\n\t\tconst pkg = normalizeSuiAddress(functionEntry.package);\n\t\tconst functionName = `${pkg}::${functionEntry.module}::${functionEntry.function}`;\n\t\tconst entry = {\n\t\t\t...functionEntry,\n\t\t\tpackage: pkg,\n\t\t};\n\n\t\tawait this.set('MoveFunction', functionName, entry);\n\n\t\treturn entry;\n\t}\n\n\tasync deleteMoveFunctionDefinition(ref: { package: string; module: string; function: string }) {\n\t\tconst functionName = `${normalizeSuiAddress(ref.package)}::${ref.module}::${ref.function}`;\n\t\tawait this.delete('MoveFunction', functionName);\n\t}\n\n\tasync getCustom<T>(key: string) {\n\t\treturn this.get('Custom', key) as Promise<T | null>;\n\t}\n\n\tasync setCustom<T>(key: string, value: T) {\n\t\treturn this.set('Custom', key, value);\n\t}\n\n\tasync deleteCustom(key: string) {\n\t\treturn this.delete('Custom', key);\n\t}\n}\n\nexport class InMemoryCache extends AsyncCache {\n\t#caches = {\n\t\tOwnedObject: new Map<string, ObjectCacheEntry>(),\n\t\tSharedOrImmutableObject: new Map<string, ObjectCacheEntry>(),\n\t\tMoveFunction: new Map<string, MoveFunctionCacheEntry>(),\n\t\tCustom: new Map<string, unknown>(),\n\t};\n\n\tprotected async get<T extends keyof CacheEntryTypes>(type: T, key: string) {\n\t\treturn (this.#caches[type].get(key) as CacheEntryTypes[T]) ?? null;\n\t}\n\n\tprotected async set<T extends keyof CacheEntryTypes>(\n\t\ttype: T,\n\t\tkey: string,\n\t\tvalue: CacheEntryTypes[T],\n\t) {\n\t\t(this.#caches[type] as Map<string, typeof value>).set(key, value as never);\n\t}\n\n\tprotected async delete<T extends keyof CacheEntryTypes>(type: T, key: string) {\n\t\tthis.#caches[type].delete(key);\n\t}\n\n\tasync clear<T extends keyof CacheEntryTypes>(type?: T) {\n\t\tif (type) {\n\t\t\tthis.#caches[type].clear();\n\t\t} else {\n\t\t\tfor (const cache of Object.values(this.#caches)) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface ObjectCacheOptions {\n\tcache?: AsyncCache;\n\tonEffects?: (effects: typeof bcs.TransactionEffects.$inferType) => Promise<void>;\n}\n\nexport class ObjectCache {\n\t#cache: AsyncCache;\n\t#onEffects?: (effects: typeof bcs.TransactionEffects.$inferType) => Promise<void>;\n\n\tconstructor({ cache = new InMemoryCache(), onEffects }: ObjectCacheOptions) {\n\t\tthis.#cache = cache;\n\t\tthis.#onEffects = onEffects;\n\t}\n\n\tasPlugin(): TransactionPlugin {\n\t\treturn async (transactionData, _options, next) => {\n\t\t\tconst unresolvedObjects = transactionData.inputs\n\t\t\t\t.filter((input) => input.UnresolvedObject)\n\t\t\t\t.map((input) => input.UnresolvedObject!.objectId);\n\n\t\t\tconst cached = (await this.#cache.getObjects(unresolvedObjects)).filter(\n\t\t\t\t(obj) => obj !== null,\n\t\t\t);\n\n\t\t\tconst byId = new Map(cached.map((obj) => [obj!.objectId, obj]));\n\n\t\t\tfor (const input of transactionData.inputs) {\n\t\t\t\tif (!input.UnresolvedObject) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst cached = byId.get(input.UnresolvedObject.objectId);\n\n\t\t\t\tif (!cached) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (cached.initialSharedVersion && !input.UnresolvedObject.initialSharedVersion) {\n\t\t\t\t\tinput.UnresolvedObject.initialSharedVersion = cached.initialSharedVersion;\n\t\t\t\t} else {\n\t\t\t\t\tif (cached.version && !input.UnresolvedObject.version) {\n\t\t\t\t\t\tinput.UnresolvedObject.version = cached.version;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (cached.digest && !input.UnresolvedObject.digest) {\n\t\t\t\t\t\tinput.UnresolvedObject.digest = cached.digest;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait Promise.all(\n\t\t\t\ttransactionData.commands.map(async (commands) => {\n\t\t\t\t\tif (commands.MoveCall) {\n\t\t\t\t\t\tconst def = await this.getMoveFunctionDefinition({\n\t\t\t\t\t\t\tpackage: commands.MoveCall.package,\n\t\t\t\t\t\t\tmodule: commands.MoveCall.module,\n\t\t\t\t\t\t\tfunction: commands.MoveCall.function,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (def) {\n\t\t\t\t\t\t\tcommands.MoveCall._argumentTypes = def.parameters;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\tawait next();\n\n\t\t\tawait Promise.all(\n\t\t\t\ttransactionData.commands.map(async (commands) => {\n\t\t\t\t\tif (commands.MoveCall?._argumentTypes) {\n\t\t\t\t\t\tawait this.#cache.addMoveFunctionDefinition({\n\t\t\t\t\t\t\tpackage: commands.MoveCall.package,\n\t\t\t\t\t\t\tmodule: commands.MoveCall.module,\n\t\t\t\t\t\t\tfunction: commands.MoveCall.function,\n\t\t\t\t\t\t\tparameters: commands.MoveCall._argumentTypes,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\t\t};\n\t}\n\n\tasync clear() {\n\t\tawait this.#cache.clear();\n\t}\n\n\tasync getMoveFunctionDefinition(ref: { package: string; module: string; function: string }) {\n\t\treturn this.#cache.getMoveFunctionDefinition(ref);\n\t}\n\n\tasync getObjects(ids: string[]) {\n\t\treturn this.#cache.getObjects(ids);\n\t}\n\n\tasync deleteObjects(ids: string[]) {\n\t\treturn this.#cache.deleteObjects(ids);\n\t}\n\n\tasync clearOwnedObjects() {\n\t\tawait this.#cache.clear('OwnedObject');\n\t}\n\n\tasync clearCustom() {\n\t\tawait this.#cache.clear('Custom');\n\t}\n\n\tasync getCustom<T>(key: string) {\n\t\treturn this.#cache.getCustom<T>(key);\n\t}\n\n\tasync setCustom<T>(key: string, value: T) {\n\t\treturn this.#cache.setCustom(key, value);\n\t}\n\n\tasync deleteCustom(key: string) {\n\t\treturn this.#cache.deleteCustom(key);\n\t}\n\n\tasync applyEffects(effects: typeof bcs.TransactionEffects.$inferType) {\n\t\tif (!effects.V2) {\n\t\t\tthrow new Error(`Unsupported transaction effects version ${effects.$kind}`);\n\t\t}\n\n\t\tconst { lamportVersion, changedObjects } = effects.V2;\n\n\t\tconst deletedIds: string[] = [];\n\t\tconst addedObjects: ObjectCacheEntry[] = [];\n\n\t\tchangedObjects.forEach(([id, change]) => {\n\t\t\tif (change.outputState.NotExist) {\n\t\t\t\tdeletedIds.push(id);\n\t\t\t} else if (change.outputState.ObjectWrite) {\n\t\t\t\tconst [digest, owner] = change.outputState.ObjectWrite;\n\n\t\t\t\taddedObjects.push({\n\t\t\t\t\tobjectId: id,\n\t\t\t\t\tdigest,\n\t\t\t\t\tversion: lamportVersion,\n\t\t\t\t\towner: owner.AddressOwner ?? owner.ObjectOwner ?? null,\n\t\t\t\t\tinitialSharedVersion: owner.Shared?.initialSharedVersion ?? null,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tawait Promise.all([\n\t\t\tthis.#cache.addObjects(addedObjects),\n\t\t\tthis.#cache.deleteObjects(deletedIds),\n\t\t\tthis.#onEffects?.(effects),\n\t\t]);\n\t}\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["cached"]
|
|
7
7
|
}
|
|
@@ -85,7 +85,7 @@ function getGlobalPluginRegistry() {
|
|
|
85
85
|
target[TRANSACTION_REGISTRY_KEY] = modulePluginRegistry;
|
|
86
86
|
}
|
|
87
87
|
return target[TRANSACTION_REGISTRY_KEY];
|
|
88
|
-
} catch
|
|
88
|
+
} catch {
|
|
89
89
|
return modulePluginRegistry;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -654,7 +654,7 @@ sortCommandsAndInputs_fn = function() {
|
|
|
654
654
|
if (cmd.$Intent?.name === "AsyncTransactionThunk") {
|
|
655
655
|
try {
|
|
656
656
|
cmd.$Intent.data.resultIndex = getOriginalIndex(i);
|
|
657
|
-
} catch
|
|
657
|
+
} catch {
|
|
658
658
|
}
|
|
659
659
|
}
|
|
660
660
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/transactions/Transaction.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SerializedBcs } from '@mysten/bcs';\nimport { fromBase64, isSerializedBcs } from '@mysten/bcs';\nimport type { InferInput } from 'valibot';\nimport { is, parse } from 'valibot';\n\nimport type { SuiClient } from '../client/index.js';\nimport type { SignatureWithBytes, Signer } from '../cryptography/index.js';\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport type { TransactionArgument } from './Commands.js';\nimport { Commands } from './Commands.js';\nimport type { CallArg, Command, Argument, ObjectRef } from './data/internal.js';\nimport {\n\tArgumentSchema,\n\tNormalizedCallArg,\n\tObjectRefSchema,\n\tTransactionExpiration,\n} from './data/internal.js';\nimport { serializeV1TransactionData } from './data/v1.js';\nimport { SerializedTransactionDataV2Schema } from './data/v2.js';\nimport { Inputs } from './Inputs.js';\nimport { needsTransactionResolution, resolveTransactionPlugin } from './resolve.js';\nimport type {\n\tBuildTransactionOptions,\n\tSerializeTransactionOptions,\n\tTransactionPlugin,\n} from './resolve.js';\nimport { createObjectMethods } from './object.js';\nimport { createPure } from './pure.js';\nimport { TransactionDataBuilder } from './TransactionData.js';\nimport { getIdFromCallArg } from './utils.js';\nimport { namedPackagesPlugin } from './plugins/NamedPackagesPlugin.js';\n\nexport type TransactionObjectArgument =\n\t| Exclude<InferInput<typeof ArgumentSchema>, { Input: unknown; type?: 'pure' }>\n\t| ((\n\t\t\ttx: Transaction,\n\t ) => Exclude<InferInput<typeof ArgumentSchema>, { Input: unknown; type?: 'pure' }>)\n\t| AsyncTransactionThunk<TransactionResultArgument>;\n\nexport type TransactionResult = Extract<Argument, { Result: unknown }> &\n\tExtract<Argument, { NestedResult: unknown }>[];\n\nexport type TransactionResultArgument =\n\t| Extract<Argument, { Result: unknown }>\n\t| readonly Extract<Argument, { NestedResult: unknown }>[];\n\nexport type AsyncTransactionThunk<\n\tT extends TransactionResultArgument | void = TransactionResultArgument | void,\n> = (tx: Transaction) => Promise<T | void>;\n\nfunction createTransactionResult(\n\tindex: number | (() => number),\n\tlength = Infinity,\n): TransactionResult {\n\tconst baseResult = {\n\t\t$kind: 'Result' as const,\n\t\tget Result() {\n\t\t\treturn typeof index === 'function' ? index() : index;\n\t\t},\n\t};\n\n\tconst nestedResults: {\n\t\t$kind: 'NestedResult';\n\t\tNestedResult: [number, number];\n\t}[] = [];\n\tconst nestedResultFor = (\n\t\tresultIndex: number,\n\t): {\n\t\t$kind: 'NestedResult';\n\t\tNestedResult: [number, number];\n\t} =>\n\t\t(nestedResults[resultIndex] ??= {\n\t\t\t$kind: 'NestedResult' as const,\n\t\t\tget NestedResult() {\n\t\t\t\treturn [typeof index === 'function' ? index() : index, resultIndex] as [number, number];\n\t\t\t},\n\t\t});\n\n\treturn new Proxy(baseResult, {\n\t\tset() {\n\t\t\tthrow new Error(\n\t\t\t\t'The transaction result is a proxy, and does not support setting properties directly',\n\t\t\t);\n\t\t},\n\t\t// TODO: Instead of making this return a concrete argument, we should ideally\n\t\t// make it reference-based (so that this gets resolved at build-time), which\n\t\t// allows re-ordering transactions.\n\t\tget(target, property) {\n\t\t\t// This allows this transaction argument to be used in the singular form:\n\t\t\tif (property in target) {\n\t\t\t\treturn Reflect.get(target, property);\n\t\t\t}\n\n\t\t\t// Support destructuring:\n\t\t\tif (property === Symbol.iterator) {\n\t\t\t\treturn function* () {\n\t\t\t\t\tlet i = 0;\n\t\t\t\t\twhile (i < length) {\n\t\t\t\t\t\tyield nestedResultFor(i);\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (typeof property === 'symbol') return;\n\n\t\t\tconst resultIndex = parseInt(property, 10);\n\t\t\tif (Number.isNaN(resultIndex) || resultIndex < 0) return;\n\t\t\treturn nestedResultFor(resultIndex);\n\t\t},\n\t}) as TransactionResult;\n}\n\nconst TRANSACTION_BRAND = Symbol.for('@mysten/transaction') as never;\n\ninterface SignOptions extends BuildTransactionOptions {\n\tsigner: Signer;\n}\n\nexport function isTransaction(obj: unknown): obj is TransactionLike {\n\treturn !!obj && typeof obj === 'object' && (obj as any)[TRANSACTION_BRAND] === true;\n}\n\nexport type TransactionObjectInput = string | CallArg | TransactionObjectArgument;\n\ninterface TransactionPluginRegistry {\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tbuildPlugins: Map<string | Function, TransactionPlugin>;\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tserializationPlugins: Map<string | Function, TransactionPlugin>;\n}\n\nconst modulePluginRegistry: TransactionPluginRegistry = {\n\tbuildPlugins: new Map(),\n\tserializationPlugins: new Map(),\n};\n\nconst TRANSACTION_REGISTRY_KEY = Symbol.for('@mysten/transaction/registry');\nfunction getGlobalPluginRegistry() {\n\ttry {\n\t\tconst target = globalThis as {\n\t\t\t[TRANSACTION_REGISTRY_KEY]?: TransactionPluginRegistry;\n\t\t};\n\n\t\tif (!target[TRANSACTION_REGISTRY_KEY]) {\n\t\t\ttarget[TRANSACTION_REGISTRY_KEY] = modulePluginRegistry;\n\t\t}\n\n\t\treturn target[TRANSACTION_REGISTRY_KEY];\n\t} catch (e) {\n\t\treturn modulePluginRegistry;\n\t}\n}\n\ntype InputSection = (CallArg | InputSection)[];\ntype CommandSection = (Command | CommandSection)[];\n\ntype TransactionLike = {\n\tgetData(): unknown;\n};\n\n/**\n * Transaction Builder\n */\nexport class Transaction {\n\t#serializationPlugins: TransactionPlugin[];\n\t#buildPlugins: TransactionPlugin[];\n\t#intentResolvers = new Map<string, TransactionPlugin>();\n\t#inputSection: InputSection = [];\n\t#commandSection: CommandSection = [];\n\t#availableResults: Set<number> = new Set();\n\t#pendingPromises = new Set<Promise<unknown>>();\n\t#added = new Map<(...args: any[]) => unknown, unknown>();\n\n\t/**\n\t * Converts from a serialize transaction kind (built with `build({ onlyTransactionKind: true })`) to a `Transaction` class.\n\t * Supports either a byte array, or base64-encoded bytes.\n\t */\n\tstatic fromKind(serialized: string | Uint8Array) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.#data = TransactionDataBuilder.fromKindBytes(\n\t\t\ttypeof serialized === 'string' ? fromBase64(serialized) : serialized,\n\t\t);\n\n\t\ttx.#inputSection = tx.#data.inputs.slice();\n\t\ttx.#commandSection = tx.#data.commands.slice();\n\t\ttx.#availableResults = new Set(tx.#commandSection.map((_, i) => i));\n\n\t\treturn tx;\n\t}\n\n\t/**\n\t * Converts from a serialized transaction format to a `Transaction` class.\n\t * There are two supported serialized formats:\n\t * - A string returned from `Transaction#serialize`. The serialized format must be compatible, or it will throw an error.\n\t * - A byte array (or base64-encoded bytes) containing BCS transaction data.\n\t */\n\tstatic from(transaction: string | Uint8Array | TransactionLike) {\n\t\tconst newTransaction = new Transaction();\n\n\t\tif (isTransaction(transaction)) {\n\t\t\tnewTransaction.#data = TransactionDataBuilder.restore(\n\t\t\t\ttransaction.getData() as InferInput<typeof SerializedTransactionDataV2Schema>,\n\t\t\t);\n\t\t} else if (typeof transaction !== 'string' || !transaction.startsWith('{')) {\n\t\t\tnewTransaction.#data = TransactionDataBuilder.fromBytes(\n\t\t\t\ttypeof transaction === 'string' ? fromBase64(transaction) : transaction,\n\t\t\t);\n\t\t} else {\n\t\t\tnewTransaction.#data = TransactionDataBuilder.restore(JSON.parse(transaction));\n\t\t}\n\n\t\tnewTransaction.#inputSection = newTransaction.#data.inputs.slice();\n\t\tnewTransaction.#commandSection = newTransaction.#data.commands.slice();\n\t\tnewTransaction.#availableResults = new Set(newTransaction.#commandSection.map((_, i) => i));\n\n\t\treturn newTransaction;\n\t}\n\n\t/** @deprecated global plugins should be registered with a name */\n\tstatic registerGlobalSerializationPlugin(step: TransactionPlugin): void;\n\tstatic registerGlobalSerializationPlugin(name: string, step: TransactionPlugin): void;\n\tstatic registerGlobalSerializationPlugin(\n\t\tstepOrStep: TransactionPlugin | string,\n\t\tstep?: TransactionPlugin,\n\t) {\n\t\tgetGlobalPluginRegistry().serializationPlugins.set(\n\t\t\tstepOrStep,\n\t\t\tstep ?? (stepOrStep as TransactionPlugin),\n\t\t);\n\t}\n\n\tstatic unregisterGlobalSerializationPlugin(name: string) {\n\t\tgetGlobalPluginRegistry().serializationPlugins.delete(name);\n\t}\n\n\t/** @deprecated global plugins should be registered with a name */\n\tstatic registerGlobalBuildPlugin(step: TransactionPlugin): void;\n\tstatic registerGlobalBuildPlugin(name: string, step: TransactionPlugin): void;\n\tstatic registerGlobalBuildPlugin(\n\t\tstepOrStep: TransactionPlugin | string,\n\t\tstep?: TransactionPlugin,\n\t) {\n\t\tgetGlobalPluginRegistry().buildPlugins.set(\n\t\t\tstepOrStep,\n\t\t\tstep ?? (stepOrStep as TransactionPlugin),\n\t\t);\n\t}\n\n\tstatic unregisterGlobalBuildPlugin(name: string) {\n\t\tgetGlobalPluginRegistry().buildPlugins.delete(name);\n\t}\n\n\taddSerializationPlugin(step: TransactionPlugin) {\n\t\tthis.#serializationPlugins.push(step);\n\t}\n\n\taddBuildPlugin(step: TransactionPlugin) {\n\t\tthis.#buildPlugins.push(step);\n\t}\n\n\taddIntentResolver(intent: string, resolver: TransactionPlugin) {\n\t\tif (this.#intentResolvers.has(intent) && this.#intentResolvers.get(intent) !== resolver) {\n\t\t\tthrow new Error(`Intent resolver for ${intent} already exists`);\n\t\t}\n\n\t\tthis.#intentResolvers.set(intent, resolver);\n\t}\n\n\tsetSender(sender: string) {\n\t\tthis.#data.sender = sender;\n\t}\n\t/**\n\t * Sets the sender only if it has not already been set.\n\t * This is useful for sponsored transaction flows where the sender may not be the same as the signer address.\n\t */\n\tsetSenderIfNotSet(sender: string) {\n\t\tif (!this.#data.sender) {\n\t\t\tthis.#data.sender = sender;\n\t\t}\n\t}\n\tsetExpiration(expiration?: InferInput<typeof TransactionExpiration> | null) {\n\t\tthis.#data.expiration = expiration ? parse(TransactionExpiration, expiration) : null;\n\t}\n\tsetGasPrice(price: number | bigint) {\n\t\tthis.#data.gasConfig.price = String(price);\n\t}\n\tsetGasBudget(budget: number | bigint) {\n\t\tthis.#data.gasConfig.budget = String(budget);\n\t}\n\n\tsetGasBudgetIfNotSet(budget: number | bigint) {\n\t\tif (this.#data.gasData.budget == null) {\n\t\t\tthis.#data.gasConfig.budget = String(budget);\n\t\t}\n\t}\n\n\tsetGasOwner(owner: string) {\n\t\tthis.#data.gasConfig.owner = owner;\n\t}\n\tsetGasPayment(payments: ObjectRef[]) {\n\t\tthis.#data.gasConfig.payment = payments.map((payment) => parse(ObjectRefSchema, payment));\n\t}\n\n\t#data: TransactionDataBuilder;\n\n\t/** @deprecated Use `getData()` instead. */\n\tget blockData() {\n\t\treturn serializeV1TransactionData(this.#data.snapshot());\n\t}\n\n\t/** Get a snapshot of the transaction data, in JSON form: */\n\tgetData() {\n\t\treturn this.#data.snapshot();\n\t}\n\n\t// Used to brand transaction classes so that they can be identified, even between multiple copies\n\t// of the builder.\n\tget [TRANSACTION_BRAND]() {\n\t\treturn true;\n\t}\n\n\t// Temporary workaround for the wallet interface accidentally serializing transactions via postMessage\n\tget pure(): ReturnType<typeof createPure<Argument>> {\n\t\tObject.defineProperty(this, 'pure', {\n\t\t\tenumerable: false,\n\t\t\tvalue: createPure<Argument>((value): Argument => {\n\t\t\t\tif (isSerializedBcs(value)) {\n\t\t\t\t\treturn this.#addInput('pure', {\n\t\t\t\t\t\t$kind: 'Pure',\n\t\t\t\t\t\tPure: {\n\t\t\t\t\t\t\tbytes: value.toBase64(),\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// TODO: we can also do some deduplication here\n\t\t\t\treturn this.#addInput(\n\t\t\t\t\t'pure',\n\t\t\t\t\tis(NormalizedCallArg, value)\n\t\t\t\t\t\t? parse(NormalizedCallArg, value)\n\t\t\t\t\t\t: value instanceof Uint8Array\n\t\t\t\t\t\t\t? Inputs.Pure(value)\n\t\t\t\t\t\t\t: { $kind: 'UnresolvedPure', UnresolvedPure: { value } },\n\t\t\t\t);\n\t\t\t}),\n\t\t});\n\n\t\treturn this.pure;\n\t}\n\n\tconstructor() {\n\t\tconst globalPlugins = getGlobalPluginRegistry();\n\t\tthis.#data = new TransactionDataBuilder();\n\t\tthis.#buildPlugins = [...globalPlugins.buildPlugins.values()];\n\t\tthis.#serializationPlugins = [...globalPlugins.serializationPlugins.values()];\n\t}\n\n\t/** Returns an argument for the gas coin, to be used in a transaction. */\n\tget gas() {\n\t\treturn { $kind: 'GasCoin' as const, GasCoin: true as const };\n\t}\n\n\t/**\n\t * Add a new object input to the transaction.\n\t */\n\tobject: ReturnType<\n\t\ttypeof createObjectMethods<{ $kind: 'Input'; Input: number; type?: 'object' }>\n\t> = createObjectMethods(\n\t\t(value: TransactionObjectInput): { $kind: 'Input'; Input: number; type?: 'object' } => {\n\t\t\tif (typeof value === 'function') {\n\t\t\t\treturn this.object(this.add(value as (tx: Transaction) => TransactionObjectArgument));\n\t\t\t}\n\n\t\t\tif (typeof value === 'object' && is(ArgumentSchema, value)) {\n\t\t\t\treturn value as { $kind: 'Input'; Input: number; type?: 'object' };\n\t\t\t}\n\n\t\t\tconst id = getIdFromCallArg(value);\n\n\t\t\tconst inserted = this.#data.inputs.find((i) => id === getIdFromCallArg(i));\n\n\t\t\t// Upgrade shared object inputs to mutable if needed:\n\t\t\tif (\n\t\t\t\tinserted?.Object?.SharedObject &&\n\t\t\t\ttypeof value === 'object' &&\n\t\t\t\tvalue.Object?.SharedObject\n\t\t\t) {\n\t\t\t\tinserted.Object.SharedObject.mutable =\n\t\t\t\t\tinserted.Object.SharedObject.mutable || value.Object.SharedObject.mutable;\n\t\t\t}\n\n\t\t\treturn inserted\n\t\t\t\t? { $kind: 'Input', Input: this.#data.inputs.indexOf(inserted), type: 'object' }\n\t\t\t\t: this.#addInput(\n\t\t\t\t\t\t'object',\n\t\t\t\t\t\ttypeof value === 'string'\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t$kind: 'UnresolvedObject',\n\t\t\t\t\t\t\t\t\tUnresolvedObject: { objectId: normalizeSuiAddress(value) },\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: value,\n\t\t\t\t\t);\n\t\t},\n\t);\n\n\t/**\n\t * Add a new object input to the transaction using the fully-resolved object reference.\n\t * If you only have an object ID, use `builder.object(id)` instead.\n\t */\n\tobjectRef(...args: Parameters<(typeof Inputs)['ObjectRef']>) {\n\t\treturn this.object(Inputs.ObjectRef(...args));\n\t}\n\n\t/**\n\t * Add a new receiving input to the transaction using the fully-resolved object reference.\n\t * If you only have an object ID, use `builder.object(id)` instead.\n\t */\n\treceivingRef(...args: Parameters<(typeof Inputs)['ReceivingRef']>) {\n\t\treturn this.object(Inputs.ReceivingRef(...args));\n\t}\n\n\t/**\n\t * Add a new shared object input to the transaction using the fully-resolved shared object reference.\n\t * If you only have an object ID, use `builder.object(id)` instead.\n\t */\n\tsharedObjectRef(...args: Parameters<(typeof Inputs)['SharedObjectRef']>) {\n\t\treturn this.object(Inputs.SharedObjectRef(...args));\n\t}\n\n\t#fork() {\n\t\tconst fork = new Transaction();\n\n\t\tfork.#data = this.#data;\n\t\tfork.#serializationPlugins = this.#serializationPlugins;\n\t\tfork.#buildPlugins = this.#buildPlugins;\n\t\tfork.#intentResolvers = this.#intentResolvers;\n\t\tfork.#pendingPromises = this.#pendingPromises;\n\t\tfork.#availableResults = new Set(this.#availableResults);\n\t\tfork.#added = this.#added;\n\t\tthis.#inputSection.push(fork.#inputSection);\n\t\tthis.#commandSection.push(fork.#commandSection);\n\n\t\treturn fork;\n\t}\n\n\t/** Add a transaction to the transaction */\n\n\tadd<T extends Command>(command: T): TransactionResult;\n\tadd<T extends void | TransactionResultArgument | TransactionArgument | Command>(\n\t\tthunk: (tx: Transaction) => T,\n\t): T;\n\tadd<T extends TransactionResultArgument | void>(\n\t\tasyncTransactionThunk: AsyncTransactionThunk<T>,\n\t): T;\n\tadd(command: Command | AsyncTransactionThunk | ((tx: Transaction) => unknown)): unknown {\n\t\tif (typeof command === 'function') {\n\t\t\tif (this.#added.has(command)) {\n\t\t\t\treturn this.#added.get(command);\n\t\t\t}\n\n\t\t\tconst fork = this.#fork();\n\t\t\tconst result = command(fork);\n\n\t\t\tif (!(result && typeof result === 'object' && 'then' in result)) {\n\t\t\t\tthis.#availableResults = fork.#availableResults;\n\t\t\t\tthis.#added.set(command, result);\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tconst placeholder = this.#addCommand({\n\t\t\t\t$kind: '$Intent',\n\t\t\t\t$Intent: {\n\t\t\t\t\tname: 'AsyncTransactionThunk',\n\t\t\t\t\tinputs: {},\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tresultIndex: this.#data.commands.length,\n\t\t\t\t\t\tresult: null as TransactionResult | null,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tthis.#pendingPromises.add(\n\t\t\t\tPromise.resolve(result as Promise<TransactionResult>).then((result) => {\n\t\t\t\t\tplaceholder.$Intent.data.result = result;\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst txResult = createTransactionResult(() => placeholder.$Intent.data.resultIndex);\n\t\t\tthis.#added.set(command, txResult);\n\t\t\treturn txResult;\n\t\t} else {\n\t\t\tthis.#addCommand(command);\n\t\t}\n\n\t\treturn createTransactionResult(this.#data.commands.length - 1);\n\t}\n\n\t#addCommand<T extends Command>(command: T) {\n\t\tconst resultIndex = this.#data.commands.length;\n\t\tthis.#commandSection.push(command);\n\t\tthis.#availableResults.add(resultIndex);\n\t\tthis.#data.commands.push(command);\n\n\t\tthis.#data.mapCommandArguments(resultIndex, (arg) => {\n\t\t\tif (arg.$kind === 'Result' && !this.#availableResults.has(arg.Result)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Result { Result: ${arg.Result} } is not available to use the current transaction`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (arg.$kind === 'NestedResult' && !this.#availableResults.has(arg.NestedResult[0])) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Result { NestedResult: [${arg.NestedResult[0]}, ${arg.NestedResult[1]}] } is not available to use the current transaction`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (arg.$kind === 'Input' && arg.Input >= this.#data.inputs.length) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Input { Input: ${arg.Input} } references an input that does not exist in the current transaction`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn arg;\n\t\t});\n\n\t\treturn command;\n\t}\n\n\t#addInput<T extends 'pure' | 'object'>(type: T, input: CallArg) {\n\t\tthis.#inputSection.push(input);\n\t\treturn this.#data.addInput(type, input);\n\t}\n\n\t#normalizeTransactionArgument(arg: TransactionArgument | SerializedBcs<any>) {\n\t\tif (isSerializedBcs(arg)) {\n\t\t\treturn this.pure(arg);\n\t\t}\n\n\t\treturn this.#resolveArgument(arg as TransactionArgument);\n\t}\n\n\t#resolveArgument(arg: TransactionArgument): Argument {\n\t\tif (typeof arg === 'function') {\n\t\t\tconst resolved = this.add(arg as never);\n\n\t\t\tif (typeof resolved === 'function') {\n\t\t\t\treturn this.#resolveArgument(resolved);\n\t\t\t}\n\n\t\t\treturn parse(ArgumentSchema, resolved);\n\t\t}\n\n\t\treturn parse(ArgumentSchema, arg);\n\t}\n\n\t// Method shorthands:\n\n\tsplitCoins<\n\t\tconst Amounts extends (TransactionArgument | SerializedBcs<any> | number | string | bigint)[],\n\t>(coin: TransactionObjectArgument | string, amounts: Amounts) {\n\t\tconst command = Commands.SplitCoins(\n\t\t\ttypeof coin === 'string' ? this.object(coin) : this.#resolveArgument(coin),\n\t\t\tamounts.map((amount) =>\n\t\t\t\ttypeof amount === 'number' || typeof amount === 'bigint' || typeof amount === 'string'\n\t\t\t\t\t? this.pure.u64(amount)\n\t\t\t\t\t: this.#normalizeTransactionArgument(amount),\n\t\t\t),\n\t\t);\n\t\tthis.#addCommand(command);\n\t\treturn createTransactionResult(this.#data.commands.length - 1, amounts.length) as Extract<\n\t\t\tArgument,\n\t\t\t{ Result: unknown }\n\t\t> & {\n\t\t\t[K in keyof Amounts]: Extract<Argument, { NestedResult: unknown }>;\n\t\t};\n\t}\n\tmergeCoins(\n\t\tdestination: TransactionObjectArgument | string,\n\t\tsources: (TransactionObjectArgument | string)[],\n\t) {\n\t\treturn this.add(\n\t\t\tCommands.MergeCoins(\n\t\t\t\tthis.object(destination),\n\t\t\t\tsources.map((src) => this.object(src)),\n\t\t\t),\n\t\t);\n\t}\n\tpublish({ modules, dependencies }: { modules: number[][] | string[]; dependencies: string[] }) {\n\t\treturn this.add(\n\t\t\tCommands.Publish({\n\t\t\t\tmodules,\n\t\t\t\tdependencies,\n\t\t\t}),\n\t\t);\n\t}\n\tupgrade({\n\t\tmodules,\n\t\tdependencies,\n\t\tpackage: packageId,\n\t\tticket,\n\t}: {\n\t\tmodules: number[][] | string[];\n\t\tdependencies: string[];\n\t\tpackage: string;\n\t\tticket: TransactionObjectArgument | string;\n\t}) {\n\t\treturn this.add(\n\t\t\tCommands.Upgrade({\n\t\t\t\tmodules,\n\t\t\t\tdependencies,\n\t\t\t\tpackage: packageId,\n\t\t\t\tticket: this.object(ticket),\n\t\t\t}),\n\t\t);\n\t}\n\tmoveCall({\n\t\targuments: args,\n\t\t...input\n\t}:\n\t\t| {\n\t\t\t\tpackage: string;\n\t\t\t\tmodule: string;\n\t\t\t\tfunction: string;\n\t\t\t\targuments?: (TransactionArgument | SerializedBcs<any>)[];\n\t\t\t\ttypeArguments?: string[];\n\t\t }\n\t\t| {\n\t\t\t\ttarget: string;\n\t\t\t\targuments?: (TransactionArgument | SerializedBcs<any>)[];\n\t\t\t\ttypeArguments?: string[];\n\t\t }) {\n\t\treturn this.add(\n\t\t\tCommands.MoveCall({\n\t\t\t\t...input,\n\t\t\t\targuments: args?.map((arg) => this.#normalizeTransactionArgument(arg)),\n\t\t\t} as Parameters<typeof Commands.MoveCall>[0]),\n\t\t);\n\t}\n\ttransferObjects(\n\t\tobjects: (TransactionObjectArgument | string)[],\n\t\taddress: TransactionArgument | SerializedBcs<any> | string,\n\t) {\n\t\treturn this.add(\n\t\t\tCommands.TransferObjects(\n\t\t\t\tobjects.map((obj) => this.object(obj)),\n\t\t\t\ttypeof address === 'string'\n\t\t\t\t\t? this.pure.address(address)\n\t\t\t\t\t: this.#normalizeTransactionArgument(address),\n\t\t\t),\n\t\t);\n\t}\n\tmakeMoveVec({\n\t\ttype,\n\t\telements,\n\t}: {\n\t\telements: (TransactionObjectArgument | string)[];\n\t\ttype?: string;\n\t}) {\n\t\treturn this.add(\n\t\t\tCommands.MakeMoveVec({\n\t\t\t\ttype,\n\t\t\t\telements: elements.map((obj) => this.object(obj)),\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * @deprecated Use toJSON instead.\n\t * For synchronous serialization, you can use `getData()`\n\t * */\n\tserialize() {\n\t\treturn JSON.stringify(serializeV1TransactionData(this.#data.snapshot()));\n\t}\n\n\tasync toJSON(options: SerializeTransactionOptions = {}): Promise<string> {\n\t\tawait this.prepareForSerialization(options);\n\t\tconst fullyResolved = this.isFullyResolved();\n\t\treturn JSON.stringify(\n\t\t\tparse(\n\t\t\t\tSerializedTransactionDataV2Schema,\n\t\t\t\tfullyResolved\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...this.#data.snapshot(),\n\t\t\t\t\t\t\tdigest: this.#data.getDigest(),\n\t\t\t\t\t\t}\n\t\t\t\t\t: this.#data.snapshot(),\n\t\t\t),\n\t\t\t(_key, value) => (typeof value === 'bigint' ? value.toString() : value),\n\t\t\t2,\n\t\t);\n\t}\n\n\t/** Build the transaction to BCS bytes, and sign it with the provided keypair. */\n\tasync sign(options: SignOptions): Promise<SignatureWithBytes> {\n\t\tconst { signer, ...buildOptions } = options;\n\t\tconst bytes = await this.build(buildOptions);\n\t\treturn signer.signTransaction(bytes);\n\t}\n\n\t/**\n\t * Ensures that:\n\t * - All objects have been fully resolved to a specific version\n\t * - All pure inputs have been serialized to bytes\n\t * - All async thunks have been fully resolved\n\t * - All transaction intents have been resolved\n\t * \t- The gas payment, budget, and price have been set\n\t * - The transaction sender has been set\n\t *\n\t * When true, the transaction will always be built to the same bytes and digest (unless the transaction is mutated)\n\t */\n\tisFullyResolved() {\n\t\tif (!this.#data.sender) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.#pendingPromises.size > 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.#data.commands.some((cmd) => cmd.$Intent)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (needsTransactionResolution(this.#data, {})) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/** Build the transaction to BCS bytes. */\n\tasync build(options: BuildTransactionOptions = {}): Promise<Uint8Array<ArrayBuffer>> {\n\t\tawait this.prepareForSerialization(options);\n\t\tawait this.#prepareBuild(options);\n\t\treturn this.#data.build({\n\t\t\tonlyTransactionKind: options.onlyTransactionKind,\n\t\t});\n\t}\n\n\t/** Derive transaction digest */\n\tasync getDigest(\n\t\toptions: {\n\t\t\tclient?: SuiClient;\n\t\t} = {},\n\t): Promise<string> {\n\t\tawait this.prepareForSerialization(options);\n\t\tawait this.#prepareBuild(options);\n\t\treturn this.#data.getDigest();\n\t}\n\n\t/**\n\t * Prepare the transaction by validating the transaction data and resolving all inputs\n\t * so that it can be built into bytes.\n\t */\n\tasync #prepareBuild(options: BuildTransactionOptions) {\n\t\tif (!options.onlyTransactionKind && !this.#data.sender) {\n\t\t\tthrow new Error('Missing transaction sender');\n\t\t}\n\n\t\tawait this.#runPlugins([...this.#buildPlugins, resolveTransactionPlugin], options);\n\t}\n\n\tasync #runPlugins(plugins: TransactionPlugin[], options: SerializeTransactionOptions) {\n\t\ttry {\n\t\t\tconst createNext = (i: number) => {\n\t\t\t\tif (i >= plugins.length) {\n\t\t\t\t\treturn () => {};\n\t\t\t\t}\n\t\t\t\tconst plugin = plugins[i];\n\n\t\t\t\treturn async () => {\n\t\t\t\t\tconst next = createNext(i + 1);\n\t\t\t\t\tlet calledNext = false;\n\t\t\t\t\tlet nextResolved = false;\n\n\t\t\t\t\tawait plugin(this.#data, options, async () => {\n\t\t\t\t\t\tif (calledNext) {\n\t\t\t\t\t\t\tthrow new Error(`next() was call multiple times in TransactionPlugin ${i}`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcalledNext = true;\n\n\t\t\t\t\t\tawait next();\n\n\t\t\t\t\t\tnextResolved = true;\n\t\t\t\t\t});\n\n\t\t\t\t\tif (!calledNext) {\n\t\t\t\t\t\tthrow new Error(`next() was not called in TransactionPlugin ${i}`);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!nextResolved) {\n\t\t\t\t\t\tthrow new Error(`next() was not awaited in TransactionPlugin ${i}`);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\tawait createNext(0)();\n\t\t} finally {\n\t\t\tthis.#inputSection = this.#data.inputs.slice();\n\t\t\tthis.#commandSection = this.#data.commands.slice();\n\t\t}\n\t}\n\n\tasync #waitForPendingTasks() {\n\t\twhile (this.#pendingPromises.size > 0) {\n\t\t\tconst newPromise = Promise.all(this.#pendingPromises);\n\t\t\tthis.#pendingPromises.clear();\n\t\t\tthis.#pendingPromises.add(newPromise);\n\t\t\tawait newPromise;\n\t\t\tthis.#pendingPromises.delete(newPromise);\n\t\t}\n\t}\n\n\t#sortCommandsAndInputs() {\n\t\tconst unorderedCommands = this.#data.commands;\n\t\tconst unorderedInputs = this.#data.inputs;\n\n\t\tconst orderedCommands = (this.#commandSection as Command[]).flat(Infinity);\n\t\tconst orderedInputs = (this.#inputSection as CallArg[]).flat(Infinity);\n\n\t\tif (orderedCommands.length !== unorderedCommands.length) {\n\t\t\tthrow new Error('Unexpected number of commands found in transaction data');\n\t\t}\n\n\t\tif (orderedInputs.length !== unorderedInputs.length) {\n\t\t\tthrow new Error('Unexpected number of inputs found in transaction data');\n\t\t}\n\n\t\tconst filteredCommands = orderedCommands.filter(\n\t\t\t(cmd) => cmd.$Intent?.name !== 'AsyncTransactionThunk',\n\t\t);\n\n\t\tthis.#data.commands = filteredCommands;\n\t\tthis.#data.inputs = orderedInputs;\n\t\tthis.#commandSection = filteredCommands;\n\t\tthis.#inputSection = orderedInputs;\n\t\tthis.#availableResults = new Set(filteredCommands.map((_, i) => i));\n\n\t\tfunction getOriginalIndex(index: number): number {\n\t\t\tconst command = unorderedCommands[index];\n\t\t\tif (command.$Intent?.name === 'AsyncTransactionThunk') {\n\t\t\t\tconst result = command.$Intent.data.result as TransactionResult | null;\n\n\t\t\t\tif (result == null) {\n\t\t\t\t\tthrow new Error('AsyncTransactionThunk has not been resolved');\n\t\t\t\t}\n\n\t\t\t\treturn getOriginalIndex(result.Result);\n\t\t\t}\n\n\t\t\tconst updated = filteredCommands.indexOf(command);\n\n\t\t\tif (updated === -1) {\n\t\t\t\tthrow new Error('Unable to find original index for command');\n\t\t\t}\n\n\t\t\treturn updated;\n\t\t}\n\n\t\tthis.#data.mapArguments((arg) => {\n\t\t\tif (arg.$kind === 'Input') {\n\t\t\t\tconst updated = orderedInputs.indexOf(unorderedInputs[arg.Input]);\n\n\t\t\t\tif (updated === -1) {\n\t\t\t\t\tthrow new Error('Input has not been resolved');\n\t\t\t\t}\n\n\t\t\t\treturn { ...arg, Input: updated };\n\t\t\t} else if (arg.$kind === 'Result') {\n\t\t\t\tconst updated = getOriginalIndex(arg.Result);\n\n\t\t\t\treturn { ...arg, Result: updated };\n\t\t\t} else if (arg.$kind === 'NestedResult') {\n\t\t\t\tconst updated = getOriginalIndex(arg.NestedResult[0]);\n\n\t\t\t\treturn { ...arg, NestedResult: [updated, arg.NestedResult[1]] };\n\t\t\t}\n\n\t\t\treturn arg;\n\t\t});\n\n\t\tfor (const [i, cmd] of unorderedCommands.entries()) {\n\t\t\tif (cmd.$Intent?.name === 'AsyncTransactionThunk') {\n\t\t\t\ttry {\n\t\t\t\t\tcmd.$Intent.data.resultIndex = getOriginalIndex(i);\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// If async thunk did not return a result, this will error, but is safe to ignore\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync prepareForSerialization(options: SerializeTransactionOptions) {\n\t\tawait this.#waitForPendingTasks();\n\t\tthis.#sortCommandsAndInputs();\n\t\tconst intents = new Set<string>();\n\t\tfor (const command of this.#data.commands) {\n\t\t\tif (command.$Intent) {\n\t\t\t\tintents.add(command.$Intent.name);\n\t\t\t}\n\t\t}\n\n\t\tconst steps = [...this.#serializationPlugins];\n\n\t\tfor (const intent of intents) {\n\t\t\tif (options.supportedIntents?.includes(intent)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!this.#intentResolvers.has(intent)) {\n\t\t\t\tthrow new Error(`Missing intent resolver for ${intent}`);\n\t\t\t}\n\n\t\t\tsteps.push(this.#intentResolvers.get(intent)!);\n\t\t}\n\n\t\tsteps.push(namedPackagesPlugin());\n\n\t\tawait this.#runPlugins(steps, options);\n\t}\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SerializedBcs } from '@mysten/bcs';\nimport { fromBase64, isSerializedBcs } from '@mysten/bcs';\nimport type { InferInput } from 'valibot';\nimport { is, parse } from 'valibot';\n\nimport type { SuiClient } from '../client/index.js';\nimport type { SignatureWithBytes, Signer } from '../cryptography/index.js';\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport type { TransactionArgument } from './Commands.js';\nimport { Commands } from './Commands.js';\nimport type { CallArg, Command, Argument, ObjectRef } from './data/internal.js';\nimport {\n\tArgumentSchema,\n\tNormalizedCallArg,\n\tObjectRefSchema,\n\tTransactionExpiration,\n} from './data/internal.js';\nimport { serializeV1TransactionData } from './data/v1.js';\nimport { SerializedTransactionDataV2Schema } from './data/v2.js';\nimport { Inputs } from './Inputs.js';\nimport { needsTransactionResolution, resolveTransactionPlugin } from './resolve.js';\nimport type {\n\tBuildTransactionOptions,\n\tSerializeTransactionOptions,\n\tTransactionPlugin,\n} from './resolve.js';\nimport { createObjectMethods } from './object.js';\nimport { createPure } from './pure.js';\nimport { TransactionDataBuilder } from './TransactionData.js';\nimport { getIdFromCallArg } from './utils.js';\nimport { namedPackagesPlugin } from './plugins/NamedPackagesPlugin.js';\n\nexport type TransactionObjectArgument =\n\t| Exclude<InferInput<typeof ArgumentSchema>, { Input: unknown; type?: 'pure' }>\n\t| ((\n\t\t\ttx: Transaction,\n\t ) => Exclude<InferInput<typeof ArgumentSchema>, { Input: unknown; type?: 'pure' }>)\n\t| AsyncTransactionThunk<TransactionResultArgument>;\n\nexport type TransactionResult = Extract<Argument, { Result: unknown }> &\n\tExtract<Argument, { NestedResult: unknown }>[];\n\nexport type TransactionResultArgument =\n\t| Extract<Argument, { Result: unknown }>\n\t| readonly Extract<Argument, { NestedResult: unknown }>[];\n\nexport type AsyncTransactionThunk<\n\tT extends TransactionResultArgument | void = TransactionResultArgument | void,\n> = (tx: Transaction) => Promise<T | void>;\n\nfunction createTransactionResult(\n\tindex: number | (() => number),\n\tlength = Infinity,\n): TransactionResult {\n\tconst baseResult = {\n\t\t$kind: 'Result' as const,\n\t\tget Result() {\n\t\t\treturn typeof index === 'function' ? index() : index;\n\t\t},\n\t};\n\n\tconst nestedResults: {\n\t\t$kind: 'NestedResult';\n\t\tNestedResult: [number, number];\n\t}[] = [];\n\tconst nestedResultFor = (\n\t\tresultIndex: number,\n\t): {\n\t\t$kind: 'NestedResult';\n\t\tNestedResult: [number, number];\n\t} =>\n\t\t(nestedResults[resultIndex] ??= {\n\t\t\t$kind: 'NestedResult' as const,\n\t\t\tget NestedResult() {\n\t\t\t\treturn [typeof index === 'function' ? index() : index, resultIndex] as [number, number];\n\t\t\t},\n\t\t});\n\n\treturn new Proxy(baseResult, {\n\t\tset() {\n\t\t\tthrow new Error(\n\t\t\t\t'The transaction result is a proxy, and does not support setting properties directly',\n\t\t\t);\n\t\t},\n\t\t// TODO: Instead of making this return a concrete argument, we should ideally\n\t\t// make it reference-based (so that this gets resolved at build-time), which\n\t\t// allows re-ordering transactions.\n\t\tget(target, property) {\n\t\t\t// This allows this transaction argument to be used in the singular form:\n\t\t\tif (property in target) {\n\t\t\t\treturn Reflect.get(target, property);\n\t\t\t}\n\n\t\t\t// Support destructuring:\n\t\t\tif (property === Symbol.iterator) {\n\t\t\t\treturn function* () {\n\t\t\t\t\tlet i = 0;\n\t\t\t\t\twhile (i < length) {\n\t\t\t\t\t\tyield nestedResultFor(i);\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (typeof property === 'symbol') return;\n\n\t\t\tconst resultIndex = parseInt(property, 10);\n\t\t\tif (Number.isNaN(resultIndex) || resultIndex < 0) return;\n\t\t\treturn nestedResultFor(resultIndex);\n\t\t},\n\t}) as TransactionResult;\n}\n\nconst TRANSACTION_BRAND = Symbol.for('@mysten/transaction') as never;\n\ninterface SignOptions extends BuildTransactionOptions {\n\tsigner: Signer;\n}\n\nexport function isTransaction(obj: unknown): obj is TransactionLike {\n\treturn !!obj && typeof obj === 'object' && (obj as any)[TRANSACTION_BRAND] === true;\n}\n\nexport type TransactionObjectInput = string | CallArg | TransactionObjectArgument;\n\ninterface TransactionPluginRegistry {\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tbuildPlugins: Map<string | Function, TransactionPlugin>;\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tserializationPlugins: Map<string | Function, TransactionPlugin>;\n}\n\nconst modulePluginRegistry: TransactionPluginRegistry = {\n\tbuildPlugins: new Map(),\n\tserializationPlugins: new Map(),\n};\n\nconst TRANSACTION_REGISTRY_KEY = Symbol.for('@mysten/transaction/registry');\nfunction getGlobalPluginRegistry() {\n\ttry {\n\t\tconst target = globalThis as {\n\t\t\t[TRANSACTION_REGISTRY_KEY]?: TransactionPluginRegistry;\n\t\t};\n\n\t\tif (!target[TRANSACTION_REGISTRY_KEY]) {\n\t\t\ttarget[TRANSACTION_REGISTRY_KEY] = modulePluginRegistry;\n\t\t}\n\n\t\treturn target[TRANSACTION_REGISTRY_KEY];\n\t} catch {\n\t\treturn modulePluginRegistry;\n\t}\n}\n\ntype InputSection = (CallArg | InputSection)[];\ntype CommandSection = (Command | CommandSection)[];\n\ntype TransactionLike = {\n\tgetData(): unknown;\n};\n\n/**\n * Transaction Builder\n */\nexport class Transaction {\n\t#serializationPlugins: TransactionPlugin[];\n\t#buildPlugins: TransactionPlugin[];\n\t#intentResolvers = new Map<string, TransactionPlugin>();\n\t#inputSection: InputSection = [];\n\t#commandSection: CommandSection = [];\n\t#availableResults: Set<number> = new Set();\n\t#pendingPromises = new Set<Promise<unknown>>();\n\t#added = new Map<(...args: any[]) => unknown, unknown>();\n\n\t/**\n\t * Converts from a serialize transaction kind (built with `build({ onlyTransactionKind: true })`) to a `Transaction` class.\n\t * Supports either a byte array, or base64-encoded bytes.\n\t */\n\tstatic fromKind(serialized: string | Uint8Array) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.#data = TransactionDataBuilder.fromKindBytes(\n\t\t\ttypeof serialized === 'string' ? fromBase64(serialized) : serialized,\n\t\t);\n\n\t\ttx.#inputSection = tx.#data.inputs.slice();\n\t\ttx.#commandSection = tx.#data.commands.slice();\n\t\ttx.#availableResults = new Set(tx.#commandSection.map((_, i) => i));\n\n\t\treturn tx;\n\t}\n\n\t/**\n\t * Converts from a serialized transaction format to a `Transaction` class.\n\t * There are two supported serialized formats:\n\t * - A string returned from `Transaction#serialize`. The serialized format must be compatible, or it will throw an error.\n\t * - A byte array (or base64-encoded bytes) containing BCS transaction data.\n\t */\n\tstatic from(transaction: string | Uint8Array | TransactionLike) {\n\t\tconst newTransaction = new Transaction();\n\n\t\tif (isTransaction(transaction)) {\n\t\t\tnewTransaction.#data = TransactionDataBuilder.restore(\n\t\t\t\ttransaction.getData() as InferInput<typeof SerializedTransactionDataV2Schema>,\n\t\t\t);\n\t\t} else if (typeof transaction !== 'string' || !transaction.startsWith('{')) {\n\t\t\tnewTransaction.#data = TransactionDataBuilder.fromBytes(\n\t\t\t\ttypeof transaction === 'string' ? fromBase64(transaction) : transaction,\n\t\t\t);\n\t\t} else {\n\t\t\tnewTransaction.#data = TransactionDataBuilder.restore(JSON.parse(transaction));\n\t\t}\n\n\t\tnewTransaction.#inputSection = newTransaction.#data.inputs.slice();\n\t\tnewTransaction.#commandSection = newTransaction.#data.commands.slice();\n\t\tnewTransaction.#availableResults = new Set(newTransaction.#commandSection.map((_, i) => i));\n\n\t\treturn newTransaction;\n\t}\n\n\t/** @deprecated global plugins should be registered with a name */\n\tstatic registerGlobalSerializationPlugin(step: TransactionPlugin): void;\n\tstatic registerGlobalSerializationPlugin(name: string, step: TransactionPlugin): void;\n\tstatic registerGlobalSerializationPlugin(\n\t\tstepOrStep: TransactionPlugin | string,\n\t\tstep?: TransactionPlugin,\n\t) {\n\t\tgetGlobalPluginRegistry().serializationPlugins.set(\n\t\t\tstepOrStep,\n\t\t\tstep ?? (stepOrStep as TransactionPlugin),\n\t\t);\n\t}\n\n\tstatic unregisterGlobalSerializationPlugin(name: string) {\n\t\tgetGlobalPluginRegistry().serializationPlugins.delete(name);\n\t}\n\n\t/** @deprecated global plugins should be registered with a name */\n\tstatic registerGlobalBuildPlugin(step: TransactionPlugin): void;\n\tstatic registerGlobalBuildPlugin(name: string, step: TransactionPlugin): void;\n\tstatic registerGlobalBuildPlugin(\n\t\tstepOrStep: TransactionPlugin | string,\n\t\tstep?: TransactionPlugin,\n\t) {\n\t\tgetGlobalPluginRegistry().buildPlugins.set(\n\t\t\tstepOrStep,\n\t\t\tstep ?? (stepOrStep as TransactionPlugin),\n\t\t);\n\t}\n\n\tstatic unregisterGlobalBuildPlugin(name: string) {\n\t\tgetGlobalPluginRegistry().buildPlugins.delete(name);\n\t}\n\n\taddSerializationPlugin(step: TransactionPlugin) {\n\t\tthis.#serializationPlugins.push(step);\n\t}\n\n\taddBuildPlugin(step: TransactionPlugin) {\n\t\tthis.#buildPlugins.push(step);\n\t}\n\n\taddIntentResolver(intent: string, resolver: TransactionPlugin) {\n\t\tif (this.#intentResolvers.has(intent) && this.#intentResolvers.get(intent) !== resolver) {\n\t\t\tthrow new Error(`Intent resolver for ${intent} already exists`);\n\t\t}\n\n\t\tthis.#intentResolvers.set(intent, resolver);\n\t}\n\n\tsetSender(sender: string) {\n\t\tthis.#data.sender = sender;\n\t}\n\t/**\n\t * Sets the sender only if it has not already been set.\n\t * This is useful for sponsored transaction flows where the sender may not be the same as the signer address.\n\t */\n\tsetSenderIfNotSet(sender: string) {\n\t\tif (!this.#data.sender) {\n\t\t\tthis.#data.sender = sender;\n\t\t}\n\t}\n\tsetExpiration(expiration?: InferInput<typeof TransactionExpiration> | null) {\n\t\tthis.#data.expiration = expiration ? parse(TransactionExpiration, expiration) : null;\n\t}\n\tsetGasPrice(price: number | bigint) {\n\t\tthis.#data.gasConfig.price = String(price);\n\t}\n\tsetGasBudget(budget: number | bigint) {\n\t\tthis.#data.gasConfig.budget = String(budget);\n\t}\n\n\tsetGasBudgetIfNotSet(budget: number | bigint) {\n\t\tif (this.#data.gasData.budget == null) {\n\t\t\tthis.#data.gasConfig.budget = String(budget);\n\t\t}\n\t}\n\n\tsetGasOwner(owner: string) {\n\t\tthis.#data.gasConfig.owner = owner;\n\t}\n\tsetGasPayment(payments: ObjectRef[]) {\n\t\tthis.#data.gasConfig.payment = payments.map((payment) => parse(ObjectRefSchema, payment));\n\t}\n\n\t#data: TransactionDataBuilder;\n\n\t/** @deprecated Use `getData()` instead. */\n\tget blockData() {\n\t\treturn serializeV1TransactionData(this.#data.snapshot());\n\t}\n\n\t/** Get a snapshot of the transaction data, in JSON form: */\n\tgetData() {\n\t\treturn this.#data.snapshot();\n\t}\n\n\t// Used to brand transaction classes so that they can be identified, even between multiple copies\n\t// of the builder.\n\tget [TRANSACTION_BRAND]() {\n\t\treturn true;\n\t}\n\n\t// Temporary workaround for the wallet interface accidentally serializing transactions via postMessage\n\tget pure(): ReturnType<typeof createPure<Argument>> {\n\t\tObject.defineProperty(this, 'pure', {\n\t\t\tenumerable: false,\n\t\t\tvalue: createPure<Argument>((value): Argument => {\n\t\t\t\tif (isSerializedBcs(value)) {\n\t\t\t\t\treturn this.#addInput('pure', {\n\t\t\t\t\t\t$kind: 'Pure',\n\t\t\t\t\t\tPure: {\n\t\t\t\t\t\t\tbytes: value.toBase64(),\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// TODO: we can also do some deduplication here\n\t\t\t\treturn this.#addInput(\n\t\t\t\t\t'pure',\n\t\t\t\t\tis(NormalizedCallArg, value)\n\t\t\t\t\t\t? parse(NormalizedCallArg, value)\n\t\t\t\t\t\t: value instanceof Uint8Array\n\t\t\t\t\t\t\t? Inputs.Pure(value)\n\t\t\t\t\t\t\t: { $kind: 'UnresolvedPure', UnresolvedPure: { value } },\n\t\t\t\t);\n\t\t\t}),\n\t\t});\n\n\t\treturn this.pure;\n\t}\n\n\tconstructor() {\n\t\tconst globalPlugins = getGlobalPluginRegistry();\n\t\tthis.#data = new TransactionDataBuilder();\n\t\tthis.#buildPlugins = [...globalPlugins.buildPlugins.values()];\n\t\tthis.#serializationPlugins = [...globalPlugins.serializationPlugins.values()];\n\t}\n\n\t/** Returns an argument for the gas coin, to be used in a transaction. */\n\tget gas() {\n\t\treturn { $kind: 'GasCoin' as const, GasCoin: true as const };\n\t}\n\n\t/**\n\t * Add a new object input to the transaction.\n\t */\n\tobject: ReturnType<\n\t\ttypeof createObjectMethods<{ $kind: 'Input'; Input: number; type?: 'object' }>\n\t> = createObjectMethods(\n\t\t(value: TransactionObjectInput): { $kind: 'Input'; Input: number; type?: 'object' } => {\n\t\t\tif (typeof value === 'function') {\n\t\t\t\treturn this.object(this.add(value as (tx: Transaction) => TransactionObjectArgument));\n\t\t\t}\n\n\t\t\tif (typeof value === 'object' && is(ArgumentSchema, value)) {\n\t\t\t\treturn value as { $kind: 'Input'; Input: number; type?: 'object' };\n\t\t\t}\n\n\t\t\tconst id = getIdFromCallArg(value);\n\n\t\t\tconst inserted = this.#data.inputs.find((i) => id === getIdFromCallArg(i));\n\n\t\t\t// Upgrade shared object inputs to mutable if needed:\n\t\t\tif (\n\t\t\t\tinserted?.Object?.SharedObject &&\n\t\t\t\ttypeof value === 'object' &&\n\t\t\t\tvalue.Object?.SharedObject\n\t\t\t) {\n\t\t\t\tinserted.Object.SharedObject.mutable =\n\t\t\t\t\tinserted.Object.SharedObject.mutable || value.Object.SharedObject.mutable;\n\t\t\t}\n\n\t\t\treturn inserted\n\t\t\t\t? { $kind: 'Input', Input: this.#data.inputs.indexOf(inserted), type: 'object' }\n\t\t\t\t: this.#addInput(\n\t\t\t\t\t\t'object',\n\t\t\t\t\t\ttypeof value === 'string'\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t$kind: 'UnresolvedObject',\n\t\t\t\t\t\t\t\t\tUnresolvedObject: { objectId: normalizeSuiAddress(value) },\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: value,\n\t\t\t\t\t);\n\t\t},\n\t);\n\n\t/**\n\t * Add a new object input to the transaction using the fully-resolved object reference.\n\t * If you only have an object ID, use `builder.object(id)` instead.\n\t */\n\tobjectRef(...args: Parameters<(typeof Inputs)['ObjectRef']>) {\n\t\treturn this.object(Inputs.ObjectRef(...args));\n\t}\n\n\t/**\n\t * Add a new receiving input to the transaction using the fully-resolved object reference.\n\t * If you only have an object ID, use `builder.object(id)` instead.\n\t */\n\treceivingRef(...args: Parameters<(typeof Inputs)['ReceivingRef']>) {\n\t\treturn this.object(Inputs.ReceivingRef(...args));\n\t}\n\n\t/**\n\t * Add a new shared object input to the transaction using the fully-resolved shared object reference.\n\t * If you only have an object ID, use `builder.object(id)` instead.\n\t */\n\tsharedObjectRef(...args: Parameters<(typeof Inputs)['SharedObjectRef']>) {\n\t\treturn this.object(Inputs.SharedObjectRef(...args));\n\t}\n\n\t#fork() {\n\t\tconst fork = new Transaction();\n\n\t\tfork.#data = this.#data;\n\t\tfork.#serializationPlugins = this.#serializationPlugins;\n\t\tfork.#buildPlugins = this.#buildPlugins;\n\t\tfork.#intentResolvers = this.#intentResolvers;\n\t\tfork.#pendingPromises = this.#pendingPromises;\n\t\tfork.#availableResults = new Set(this.#availableResults);\n\t\tfork.#added = this.#added;\n\t\tthis.#inputSection.push(fork.#inputSection);\n\t\tthis.#commandSection.push(fork.#commandSection);\n\n\t\treturn fork;\n\t}\n\n\t/** Add a transaction to the transaction */\n\n\tadd<T extends Command>(command: T): TransactionResult;\n\tadd<T extends void | TransactionResultArgument | TransactionArgument | Command>(\n\t\tthunk: (tx: Transaction) => T,\n\t): T;\n\tadd<T extends TransactionResultArgument | void>(\n\t\tasyncTransactionThunk: AsyncTransactionThunk<T>,\n\t): T;\n\tadd(command: Command | AsyncTransactionThunk | ((tx: Transaction) => unknown)): unknown {\n\t\tif (typeof command === 'function') {\n\t\t\tif (this.#added.has(command)) {\n\t\t\t\treturn this.#added.get(command);\n\t\t\t}\n\n\t\t\tconst fork = this.#fork();\n\t\t\tconst result = command(fork);\n\n\t\t\tif (!(result && typeof result === 'object' && 'then' in result)) {\n\t\t\t\tthis.#availableResults = fork.#availableResults;\n\t\t\t\tthis.#added.set(command, result);\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tconst placeholder = this.#addCommand({\n\t\t\t\t$kind: '$Intent',\n\t\t\t\t$Intent: {\n\t\t\t\t\tname: 'AsyncTransactionThunk',\n\t\t\t\t\tinputs: {},\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tresultIndex: this.#data.commands.length,\n\t\t\t\t\t\tresult: null as TransactionResult | null,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tthis.#pendingPromises.add(\n\t\t\t\tPromise.resolve(result as Promise<TransactionResult>).then((result) => {\n\t\t\t\t\tplaceholder.$Intent.data.result = result;\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst txResult = createTransactionResult(() => placeholder.$Intent.data.resultIndex);\n\t\t\tthis.#added.set(command, txResult);\n\t\t\treturn txResult;\n\t\t} else {\n\t\t\tthis.#addCommand(command);\n\t\t}\n\n\t\treturn createTransactionResult(this.#data.commands.length - 1);\n\t}\n\n\t#addCommand<T extends Command>(command: T) {\n\t\tconst resultIndex = this.#data.commands.length;\n\t\tthis.#commandSection.push(command);\n\t\tthis.#availableResults.add(resultIndex);\n\t\tthis.#data.commands.push(command);\n\n\t\tthis.#data.mapCommandArguments(resultIndex, (arg) => {\n\t\t\tif (arg.$kind === 'Result' && !this.#availableResults.has(arg.Result)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Result { Result: ${arg.Result} } is not available to use the current transaction`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (arg.$kind === 'NestedResult' && !this.#availableResults.has(arg.NestedResult[0])) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Result { NestedResult: [${arg.NestedResult[0]}, ${arg.NestedResult[1]}] } is not available to use the current transaction`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (arg.$kind === 'Input' && arg.Input >= this.#data.inputs.length) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Input { Input: ${arg.Input} } references an input that does not exist in the current transaction`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn arg;\n\t\t});\n\n\t\treturn command;\n\t}\n\n\t#addInput<T extends 'pure' | 'object'>(type: T, input: CallArg) {\n\t\tthis.#inputSection.push(input);\n\t\treturn this.#data.addInput(type, input);\n\t}\n\n\t#normalizeTransactionArgument(arg: TransactionArgument | SerializedBcs<any>) {\n\t\tif (isSerializedBcs(arg)) {\n\t\t\treturn this.pure(arg);\n\t\t}\n\n\t\treturn this.#resolveArgument(arg as TransactionArgument);\n\t}\n\n\t#resolveArgument(arg: TransactionArgument): Argument {\n\t\tif (typeof arg === 'function') {\n\t\t\tconst resolved = this.add(arg as never);\n\n\t\t\tif (typeof resolved === 'function') {\n\t\t\t\treturn this.#resolveArgument(resolved);\n\t\t\t}\n\n\t\t\treturn parse(ArgumentSchema, resolved);\n\t\t}\n\n\t\treturn parse(ArgumentSchema, arg);\n\t}\n\n\t// Method shorthands:\n\n\tsplitCoins<\n\t\tconst Amounts extends (TransactionArgument | SerializedBcs<any> | number | string | bigint)[],\n\t>(coin: TransactionObjectArgument | string, amounts: Amounts) {\n\t\tconst command = Commands.SplitCoins(\n\t\t\ttypeof coin === 'string' ? this.object(coin) : this.#resolveArgument(coin),\n\t\t\tamounts.map((amount) =>\n\t\t\t\ttypeof amount === 'number' || typeof amount === 'bigint' || typeof amount === 'string'\n\t\t\t\t\t? this.pure.u64(amount)\n\t\t\t\t\t: this.#normalizeTransactionArgument(amount),\n\t\t\t),\n\t\t);\n\t\tthis.#addCommand(command);\n\t\treturn createTransactionResult(this.#data.commands.length - 1, amounts.length) as Extract<\n\t\t\tArgument,\n\t\t\t{ Result: unknown }\n\t\t> & {\n\t\t\t[K in keyof Amounts]: Extract<Argument, { NestedResult: unknown }>;\n\t\t};\n\t}\n\tmergeCoins(\n\t\tdestination: TransactionObjectArgument | string,\n\t\tsources: (TransactionObjectArgument | string)[],\n\t) {\n\t\treturn this.add(\n\t\t\tCommands.MergeCoins(\n\t\t\t\tthis.object(destination),\n\t\t\t\tsources.map((src) => this.object(src)),\n\t\t\t),\n\t\t);\n\t}\n\tpublish({ modules, dependencies }: { modules: number[][] | string[]; dependencies: string[] }) {\n\t\treturn this.add(\n\t\t\tCommands.Publish({\n\t\t\t\tmodules,\n\t\t\t\tdependencies,\n\t\t\t}),\n\t\t);\n\t}\n\tupgrade({\n\t\tmodules,\n\t\tdependencies,\n\t\tpackage: packageId,\n\t\tticket,\n\t}: {\n\t\tmodules: number[][] | string[];\n\t\tdependencies: string[];\n\t\tpackage: string;\n\t\tticket: TransactionObjectArgument | string;\n\t}) {\n\t\treturn this.add(\n\t\t\tCommands.Upgrade({\n\t\t\t\tmodules,\n\t\t\t\tdependencies,\n\t\t\t\tpackage: packageId,\n\t\t\t\tticket: this.object(ticket),\n\t\t\t}),\n\t\t);\n\t}\n\tmoveCall({\n\t\targuments: args,\n\t\t...input\n\t}:\n\t\t| {\n\t\t\t\tpackage: string;\n\t\t\t\tmodule: string;\n\t\t\t\tfunction: string;\n\t\t\t\targuments?: (TransactionArgument | SerializedBcs<any>)[];\n\t\t\t\ttypeArguments?: string[];\n\t\t }\n\t\t| {\n\t\t\t\ttarget: string;\n\t\t\t\targuments?: (TransactionArgument | SerializedBcs<any>)[];\n\t\t\t\ttypeArguments?: string[];\n\t\t }) {\n\t\treturn this.add(\n\t\t\tCommands.MoveCall({\n\t\t\t\t...input,\n\t\t\t\targuments: args?.map((arg) => this.#normalizeTransactionArgument(arg)),\n\t\t\t} as Parameters<typeof Commands.MoveCall>[0]),\n\t\t);\n\t}\n\ttransferObjects(\n\t\tobjects: (TransactionObjectArgument | string)[],\n\t\taddress: TransactionArgument | SerializedBcs<any> | string,\n\t) {\n\t\treturn this.add(\n\t\t\tCommands.TransferObjects(\n\t\t\t\tobjects.map((obj) => this.object(obj)),\n\t\t\t\ttypeof address === 'string'\n\t\t\t\t\t? this.pure.address(address)\n\t\t\t\t\t: this.#normalizeTransactionArgument(address),\n\t\t\t),\n\t\t);\n\t}\n\tmakeMoveVec({\n\t\ttype,\n\t\telements,\n\t}: {\n\t\telements: (TransactionObjectArgument | string)[];\n\t\ttype?: string;\n\t}) {\n\t\treturn this.add(\n\t\t\tCommands.MakeMoveVec({\n\t\t\t\ttype,\n\t\t\t\telements: elements.map((obj) => this.object(obj)),\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * @deprecated Use toJSON instead.\n\t * For synchronous serialization, you can use `getData()`\n\t * */\n\tserialize() {\n\t\treturn JSON.stringify(serializeV1TransactionData(this.#data.snapshot()));\n\t}\n\n\tasync toJSON(options: SerializeTransactionOptions = {}): Promise<string> {\n\t\tawait this.prepareForSerialization(options);\n\t\tconst fullyResolved = this.isFullyResolved();\n\t\treturn JSON.stringify(\n\t\t\tparse(\n\t\t\t\tSerializedTransactionDataV2Schema,\n\t\t\t\tfullyResolved\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...this.#data.snapshot(),\n\t\t\t\t\t\t\tdigest: this.#data.getDigest(),\n\t\t\t\t\t\t}\n\t\t\t\t\t: this.#data.snapshot(),\n\t\t\t),\n\t\t\t(_key, value) => (typeof value === 'bigint' ? value.toString() : value),\n\t\t\t2,\n\t\t);\n\t}\n\n\t/** Build the transaction to BCS bytes, and sign it with the provided keypair. */\n\tasync sign(options: SignOptions): Promise<SignatureWithBytes> {\n\t\tconst { signer, ...buildOptions } = options;\n\t\tconst bytes = await this.build(buildOptions);\n\t\treturn signer.signTransaction(bytes);\n\t}\n\n\t/**\n\t * Ensures that:\n\t * - All objects have been fully resolved to a specific version\n\t * - All pure inputs have been serialized to bytes\n\t * - All async thunks have been fully resolved\n\t * - All transaction intents have been resolved\n\t * \t- The gas payment, budget, and price have been set\n\t * - The transaction sender has been set\n\t *\n\t * When true, the transaction will always be built to the same bytes and digest (unless the transaction is mutated)\n\t */\n\tisFullyResolved() {\n\t\tif (!this.#data.sender) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.#pendingPromises.size > 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.#data.commands.some((cmd) => cmd.$Intent)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (needsTransactionResolution(this.#data, {})) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/** Build the transaction to BCS bytes. */\n\tasync build(options: BuildTransactionOptions = {}): Promise<Uint8Array<ArrayBuffer>> {\n\t\tawait this.prepareForSerialization(options);\n\t\tawait this.#prepareBuild(options);\n\t\treturn this.#data.build({\n\t\t\tonlyTransactionKind: options.onlyTransactionKind,\n\t\t});\n\t}\n\n\t/** Derive transaction digest */\n\tasync getDigest(\n\t\toptions: {\n\t\t\tclient?: SuiClient;\n\t\t} = {},\n\t): Promise<string> {\n\t\tawait this.prepareForSerialization(options);\n\t\tawait this.#prepareBuild(options);\n\t\treturn this.#data.getDigest();\n\t}\n\n\t/**\n\t * Prepare the transaction by validating the transaction data and resolving all inputs\n\t * so that it can be built into bytes.\n\t */\n\tasync #prepareBuild(options: BuildTransactionOptions) {\n\t\tif (!options.onlyTransactionKind && !this.#data.sender) {\n\t\t\tthrow new Error('Missing transaction sender');\n\t\t}\n\n\t\tawait this.#runPlugins([...this.#buildPlugins, resolveTransactionPlugin], options);\n\t}\n\n\tasync #runPlugins(plugins: TransactionPlugin[], options: SerializeTransactionOptions) {\n\t\ttry {\n\t\t\tconst createNext = (i: number) => {\n\t\t\t\tif (i >= plugins.length) {\n\t\t\t\t\treturn () => {};\n\t\t\t\t}\n\t\t\t\tconst plugin = plugins[i];\n\n\t\t\t\treturn async () => {\n\t\t\t\t\tconst next = createNext(i + 1);\n\t\t\t\t\tlet calledNext = false;\n\t\t\t\t\tlet nextResolved = false;\n\n\t\t\t\t\tawait plugin(this.#data, options, async () => {\n\t\t\t\t\t\tif (calledNext) {\n\t\t\t\t\t\t\tthrow new Error(`next() was call multiple times in TransactionPlugin ${i}`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcalledNext = true;\n\n\t\t\t\t\t\tawait next();\n\n\t\t\t\t\t\tnextResolved = true;\n\t\t\t\t\t});\n\n\t\t\t\t\tif (!calledNext) {\n\t\t\t\t\t\tthrow new Error(`next() was not called in TransactionPlugin ${i}`);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!nextResolved) {\n\t\t\t\t\t\tthrow new Error(`next() was not awaited in TransactionPlugin ${i}`);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\tawait createNext(0)();\n\t\t} finally {\n\t\t\tthis.#inputSection = this.#data.inputs.slice();\n\t\t\tthis.#commandSection = this.#data.commands.slice();\n\t\t}\n\t}\n\n\tasync #waitForPendingTasks() {\n\t\twhile (this.#pendingPromises.size > 0) {\n\t\t\tconst newPromise = Promise.all(this.#pendingPromises);\n\t\t\tthis.#pendingPromises.clear();\n\t\t\tthis.#pendingPromises.add(newPromise);\n\t\t\tawait newPromise;\n\t\t\tthis.#pendingPromises.delete(newPromise);\n\t\t}\n\t}\n\n\t#sortCommandsAndInputs() {\n\t\tconst unorderedCommands = this.#data.commands;\n\t\tconst unorderedInputs = this.#data.inputs;\n\n\t\tconst orderedCommands = (this.#commandSection as Command[]).flat(Infinity);\n\t\tconst orderedInputs = (this.#inputSection as CallArg[]).flat(Infinity);\n\n\t\tif (orderedCommands.length !== unorderedCommands.length) {\n\t\t\tthrow new Error('Unexpected number of commands found in transaction data');\n\t\t}\n\n\t\tif (orderedInputs.length !== unorderedInputs.length) {\n\t\t\tthrow new Error('Unexpected number of inputs found in transaction data');\n\t\t}\n\n\t\tconst filteredCommands = orderedCommands.filter(\n\t\t\t(cmd) => cmd.$Intent?.name !== 'AsyncTransactionThunk',\n\t\t);\n\n\t\tthis.#data.commands = filteredCommands;\n\t\tthis.#data.inputs = orderedInputs;\n\t\tthis.#commandSection = filteredCommands;\n\t\tthis.#inputSection = orderedInputs;\n\t\tthis.#availableResults = new Set(filteredCommands.map((_, i) => i));\n\n\t\tfunction getOriginalIndex(index: number): number {\n\t\t\tconst command = unorderedCommands[index];\n\t\t\tif (command.$Intent?.name === 'AsyncTransactionThunk') {\n\t\t\t\tconst result = command.$Intent.data.result as TransactionResult | null;\n\n\t\t\t\tif (result == null) {\n\t\t\t\t\tthrow new Error('AsyncTransactionThunk has not been resolved');\n\t\t\t\t}\n\n\t\t\t\treturn getOriginalIndex(result.Result);\n\t\t\t}\n\n\t\t\tconst updated = filteredCommands.indexOf(command);\n\n\t\t\tif (updated === -1) {\n\t\t\t\tthrow new Error('Unable to find original index for command');\n\t\t\t}\n\n\t\t\treturn updated;\n\t\t}\n\n\t\tthis.#data.mapArguments((arg) => {\n\t\t\tif (arg.$kind === 'Input') {\n\t\t\t\tconst updated = orderedInputs.indexOf(unorderedInputs[arg.Input]);\n\n\t\t\t\tif (updated === -1) {\n\t\t\t\t\tthrow new Error('Input has not been resolved');\n\t\t\t\t}\n\n\t\t\t\treturn { ...arg, Input: updated };\n\t\t\t} else if (arg.$kind === 'Result') {\n\t\t\t\tconst updated = getOriginalIndex(arg.Result);\n\n\t\t\t\treturn { ...arg, Result: updated };\n\t\t\t} else if (arg.$kind === 'NestedResult') {\n\t\t\t\tconst updated = getOriginalIndex(arg.NestedResult[0]);\n\n\t\t\t\treturn { ...arg, NestedResult: [updated, arg.NestedResult[1]] };\n\t\t\t}\n\n\t\t\treturn arg;\n\t\t});\n\n\t\tfor (const [i, cmd] of unorderedCommands.entries()) {\n\t\t\tif (cmd.$Intent?.name === 'AsyncTransactionThunk') {\n\t\t\t\ttry {\n\t\t\t\t\tcmd.$Intent.data.resultIndex = getOriginalIndex(i);\n\t\t\t\t} catch {\n\t\t\t\t\t// If async thunk did not return a result, this will error, but is safe to ignore\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync prepareForSerialization(options: SerializeTransactionOptions) {\n\t\tawait this.#waitForPendingTasks();\n\t\tthis.#sortCommandsAndInputs();\n\t\tconst intents = new Set<string>();\n\t\tfor (const command of this.#data.commands) {\n\t\t\tif (command.$Intent) {\n\t\t\t\tintents.add(command.$Intent.name);\n\t\t\t}\n\t\t}\n\n\t\tconst steps = [...this.#serializationPlugins];\n\n\t\tfor (const intent of intents) {\n\t\t\tif (options.supportedIntents?.includes(intent)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!this.#intentResolvers.has(intent)) {\n\t\t\t\tthrow new Error(`Missing intent resolver for ${intent}`);\n\t\t\t}\n\n\t\t\tsteps.push(this.#intentResolvers.get(intent)!);\n\t\t}\n\n\t\tsteps.push(namedPackagesPlugin());\n\n\t\tawait this.#runPlugins(steps, options);\n\t}\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["result"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Inputs } from "./Inputs.js";
|
|
2
2
|
import { bcs } from "../bcs/index.js";
|
|
3
|
-
import {
|
|
3
|
+
import { jsonRpcClientResolveTransactionPlugin } from "../jsonRpc/json-rpc-resolver.js";
|
|
4
4
|
function needsTransactionResolution(data, options) {
|
|
5
5
|
if (data.inputs.some((input) => {
|
|
6
6
|
return input.UnresolvedObject || input.UnresolvedPure;
|
|
@@ -21,7 +21,7 @@ async function resolveTransactionPlugin(transactionData, options, next) {
|
|
|
21
21
|
return next();
|
|
22
22
|
}
|
|
23
23
|
const client = getClient(options);
|
|
24
|
-
const plugin = client.core?.resolveTransactionPlugin() ??
|
|
24
|
+
const plugin = client.core?.resolveTransactionPlugin() ?? jsonRpcClientResolveTransactionPlugin(client);
|
|
25
25
|
return plugin(transactionData, options, async () => {
|
|
26
26
|
await validate(transactionData);
|
|
27
27
|
await next();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/transactions/resolve.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Argument } from './data/internal.js';\n\nimport type { ClientWithCoreApi } from '../experimental/index.js';\nimport type { TransactionDataBuilder } from './TransactionData.js';\nimport type { BcsType } from '@mysten/bcs';\nimport { Inputs } from './Inputs.js';\nimport { bcs } from '../bcs/index.js';\nimport {
|
|
5
|
-
"mappings": "AAQA,SAAS,cAAc;AACvB,SAAS,WAAW;AACpB,SAAS,
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Argument } from './data/internal.js';\n\nimport type { ClientWithCoreApi } from '../experimental/index.js';\nimport type { TransactionDataBuilder } from './TransactionData.js';\nimport type { BcsType } from '@mysten/bcs';\nimport { Inputs } from './Inputs.js';\nimport { bcs } from '../bcs/index.js';\nimport { jsonRpcClientResolveTransactionPlugin } from '../jsonRpc/json-rpc-resolver.js';\nimport type { SuiJsonRpcClient } from '../jsonRpc/client.js';\n\nexport interface BuildTransactionOptions {\n\tclient?: ClientWithCoreApi;\n\tonlyTransactionKind?: boolean;\n}\n\nexport interface SerializeTransactionOptions extends BuildTransactionOptions {\n\tsupportedIntents?: string[];\n}\n\nexport type TransactionPlugin = (\n\ttransactionData: TransactionDataBuilder,\n\toptions: BuildTransactionOptions,\n\tnext: () => Promise<void>,\n) => Promise<void>;\n\nexport function needsTransactionResolution(\n\tdata: TransactionDataBuilder,\n\toptions: BuildTransactionOptions,\n): boolean {\n\tif (\n\t\tdata.inputs.some((input) => {\n\t\t\treturn input.UnresolvedObject || input.UnresolvedPure;\n\t\t})\n\t) {\n\t\treturn true;\n\t}\n\n\tif (!options.onlyTransactionKind) {\n\t\tif (!data.gasConfig.price || !data.gasConfig.budget || !data.gasConfig.payment) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nexport async function resolveTransactionPlugin(\n\ttransactionData: TransactionDataBuilder,\n\toptions: BuildTransactionOptions,\n\tnext: () => Promise<void>,\n) {\n\tnormalizeRawArguments(transactionData);\n\tif (!needsTransactionResolution(transactionData, options)) {\n\t\tawait validate(transactionData);\n\t\treturn next();\n\t}\n\n\tconst client = getClient(options);\n\tconst plugin =\n\t\tclient.core?.resolveTransactionPlugin() ??\n\t\tjsonRpcClientResolveTransactionPlugin(client as SuiJsonRpcClient);\n\n\treturn plugin(transactionData, options, async () => {\n\t\tawait validate(transactionData);\n\t\tawait next();\n\t});\n}\n\nfunction validate(transactionData: TransactionDataBuilder) {\n\ttransactionData.inputs.forEach((input, index) => {\n\t\tif (input.$kind !== 'Object' && input.$kind !== 'Pure') {\n\t\t\tthrow new Error(\n\t\t\t\t`Input at index ${index} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(\n\t\t\t\t\tinput,\n\t\t\t\t)}`,\n\t\t\t);\n\t\t}\n\t});\n}\n\nexport function getClient(options: BuildTransactionOptions) {\n\tif (!options.client) {\n\t\tthrow new Error(\n\t\t\t`No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.`,\n\t\t);\n\t}\n\n\treturn options.client;\n}\n\nfunction normalizeRawArguments(transactionData: TransactionDataBuilder) {\n\tfor (const command of transactionData.commands) {\n\t\tswitch (command.$kind) {\n\t\t\tcase 'SplitCoins':\n\t\t\t\tcommand.SplitCoins.amounts.forEach((amount) => {\n\t\t\t\t\tnormalizeRawArgument(amount, bcs.U64, transactionData);\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'TransferObjects':\n\t\t\t\tnormalizeRawArgument(command.TransferObjects.address, bcs.Address, transactionData);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nfunction normalizeRawArgument(\n\targ: Argument,\n\tschema: BcsType<any>,\n\ttransactionData: TransactionDataBuilder,\n) {\n\tif (arg.$kind !== 'Input') {\n\t\treturn;\n\t}\n\tconst input = transactionData.inputs[arg.Input];\n\n\tif (input.$kind !== 'UnresolvedPure') {\n\t\treturn;\n\t}\n\n\ttransactionData.inputs[arg.Input] = Inputs.Pure(schema.serialize(input.UnresolvedPure.value));\n}\n"],
|
|
5
|
+
"mappings": "AAQA,SAAS,cAAc;AACvB,SAAS,WAAW;AACpB,SAAS,6CAA6C;AAkB/C,SAAS,2BACf,MACA,SACU;AACV,MACC,KAAK,OAAO,KAAK,CAAC,UAAU;AAC3B,WAAO,MAAM,oBAAoB,MAAM;AAAA,EACxC,CAAC,GACA;AACD,WAAO;AAAA,EACR;AAEA,MAAI,CAAC,QAAQ,qBAAqB;AACjC,QAAI,CAAC,KAAK,UAAU,SAAS,CAAC,KAAK,UAAU,UAAU,CAAC,KAAK,UAAU,SAAS;AAC/E,aAAO;AAAA,IACR;AAAA,EACD;AAEA,SAAO;AACR;AAEA,eAAsB,yBACrB,iBACA,SACA,MACC;AACD,wBAAsB,eAAe;AACrC,MAAI,CAAC,2BAA2B,iBAAiB,OAAO,GAAG;AAC1D,UAAM,SAAS,eAAe;AAC9B,WAAO,KAAK;AAAA,EACb;AAEA,QAAM,SAAS,UAAU,OAAO;AAChC,QAAM,SACL,OAAO,MAAM,yBAAyB,KACtC,sCAAsC,MAA0B;AAEjE,SAAO,OAAO,iBAAiB,SAAS,YAAY;AACnD,UAAM,SAAS,eAAe;AAC9B,UAAM,KAAK;AAAA,EACZ,CAAC;AACF;AAEA,SAAS,SAAS,iBAAyC;AAC1D,kBAAgB,OAAO,QAAQ,CAAC,OAAO,UAAU;AAChD,QAAI,MAAM,UAAU,YAAY,MAAM,UAAU,QAAQ;AACvD,YAAM,IAAI;AAAA,QACT,kBAAkB,KAAK,uEAAuE,KAAK;AAAA,UAClG;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD,CAAC;AACF;AAEO,SAAS,UAAU,SAAkC;AAC3D,MAAI,CAAC,QAAQ,QAAQ;AACpB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO,QAAQ;AAChB;AAEA,SAAS,sBAAsB,iBAAyC;AACvE,aAAW,WAAW,gBAAgB,UAAU;AAC/C,YAAQ,QAAQ,OAAO;AAAA,MACtB,KAAK;AACJ,gBAAQ,WAAW,QAAQ,QAAQ,CAAC,WAAW;AAC9C,+BAAqB,QAAQ,IAAI,KAAK,eAAe;AAAA,QACtD,CAAC;AACD;AAAA,MACD,KAAK;AACJ,6BAAqB,QAAQ,gBAAgB,SAAS,IAAI,SAAS,eAAe;AAClF;AAAA,IACF;AAAA,EACD;AACD;AAEA,SAAS,qBACR,KACA,QACA,iBACC;AACD,MAAI,IAAI,UAAU,SAAS;AAC1B;AAAA,EACD;AACA,QAAM,QAAQ,gBAAgB,OAAO,IAAI,KAAK;AAE9C,MAAI,MAAM,UAAU,kBAAkB;AACrC;AAAA,EACD;AAEA,kBAAgB,OAAO,IAAI,KAAK,IAAI,OAAO,KAAK,OAAO,UAAU,MAAM,eAAe,KAAK,CAAC;AAC7F;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/utils/sui-types.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase58, splitGenericParameters } from '@mysten/bcs';\n\nimport { isValidNamedPackage } from './move-registry.js';\n\nconst TX_DIGEST_LENGTH = 32;\n\n/** Returns whether the tx digest is valid based on the serialization format */\nexport function isValidTransactionDigest(value: string): value is string {\n\ttry {\n\t\tconst buffer = fromBase58(value);\n\t\treturn buffer.length === TX_DIGEST_LENGTH;\n\t} catch
|
|
5
|
-
"mappings": "AAGA,SAAS,YAAY,8BAA8B;AAEnD,SAAS,2BAA2B;AAEpC,MAAM,mBAAmB;AAGlB,SAAS,yBAAyB,OAAgC;AACxE,MAAI;AACH,UAAM,SAAS,WAAW,KAAK;AAC/B,WAAO,OAAO,WAAW;AAAA,EAC1B,
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase58, splitGenericParameters } from '@mysten/bcs';\n\nimport { isValidNamedPackage } from './move-registry.js';\n\nconst TX_DIGEST_LENGTH = 32;\n\n/** Returns whether the tx digest is valid based on the serialization format */\nexport function isValidTransactionDigest(value: string): value is string {\n\ttry {\n\t\tconst buffer = fromBase58(value);\n\t\treturn buffer.length === TX_DIGEST_LENGTH;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n// TODO - can we automatically sync this with rust length definition?\n// Source of truth is\n// https://github.com/MystenLabs/sui/blob/acb2b97ae21f47600e05b0d28127d88d0725561d/crates/sui-types/src/base_types.rs#L67\n// which uses the Move account address length\n// https://github.com/move-language/move/blob/67ec40dc50c66c34fd73512fcc412f3b68d67235/language/move-core/types/src/account_address.rs#L23 .\n\nexport const SUI_ADDRESS_LENGTH = 32;\nexport function isValidSuiAddress(value: string): value is string {\n\treturn isHex(value) && getHexByteLength(value) === SUI_ADDRESS_LENGTH;\n}\n\nexport function isValidSuiObjectId(value: string): boolean {\n\treturn isValidSuiAddress(value);\n}\n\nexport type StructTag = {\n\taddress: string;\n\tmodule: string;\n\tname: string;\n\ttypeParams: (string | StructTag)[];\n};\n\nfunction parseTypeTag(type: string): string | StructTag {\n\tif (!type.includes('::')) return type;\n\n\treturn parseStructTag(type);\n}\n\nexport function parseStructTag(type: string): StructTag {\n\tconst [address, module] = type.split('::');\n\n\tconst isMvrPackage = isValidNamedPackage(address);\n\n\tconst rest = type.slice(address.length + module.length + 4);\n\tconst name = rest.includes('<') ? rest.slice(0, rest.indexOf('<')) : rest;\n\tconst typeParams = rest.includes('<')\n\t\t? splitGenericParameters(rest.slice(rest.indexOf('<') + 1, rest.lastIndexOf('>'))).map(\n\t\t\t\t(typeParam) => parseTypeTag(typeParam.trim()),\n\t\t\t)\n\t\t: [];\n\n\treturn {\n\t\taddress: isMvrPackage ? address : normalizeSuiAddress(address),\n\t\tmodule,\n\t\tname,\n\t\ttypeParams,\n\t};\n}\n\nexport function normalizeStructTag(type: string | StructTag): string {\n\tconst { address, module, name, typeParams } =\n\t\ttypeof type === 'string' ? parseStructTag(type) : type;\n\n\tconst formattedTypeParams =\n\t\ttypeParams?.length > 0\n\t\t\t? `<${typeParams\n\t\t\t\t\t.map((typeParam) =>\n\t\t\t\t\t\ttypeof typeParam === 'string' ? typeParam : normalizeStructTag(typeParam),\n\t\t\t\t\t)\n\t\t\t\t\t.join(',')}>`\n\t\t\t: '';\n\n\treturn `${address}::${module}::${name}${formattedTypeParams}`;\n}\n\n/**\n * Perform the following operations:\n * 1. Make the address lower case\n * 2. Prepend `0x` if the string does not start with `0x`.\n * 3. Add more zeros if the length of the address(excluding `0x`) is less than `SUI_ADDRESS_LENGTH`\n *\n * WARNING: if the address value itself starts with `0x`, e.g., `0x0x`, the default behavior\n * is to treat the first `0x` not as part of the address. The default behavior can be overridden by\n * setting `forceAdd0x` to true\n *\n */\nexport function normalizeSuiAddress(value: string, forceAdd0x: boolean = false): string {\n\tlet address = value.toLowerCase();\n\tif (!forceAdd0x && address.startsWith('0x')) {\n\t\taddress = address.slice(2);\n\t}\n\treturn `0x${address.padStart(SUI_ADDRESS_LENGTH * 2, '0')}`;\n}\n\nexport function normalizeSuiObjectId(value: string, forceAdd0x: boolean = false): string {\n\treturn normalizeSuiAddress(value, forceAdd0x);\n}\n\nfunction isHex(value: string): boolean {\n\treturn /^(0x|0X)?[a-fA-F0-9]+$/.test(value) && value.length % 2 === 0;\n}\n\nfunction getHexByteLength(value: string): number {\n\treturn /^(0x|0X)/.test(value) ? (value.length - 2) / 2 : value.length / 2;\n}\n"],
|
|
5
|
+
"mappings": "AAGA,SAAS,YAAY,8BAA8B;AAEnD,SAAS,2BAA2B;AAEpC,MAAM,mBAAmB;AAGlB,SAAS,yBAAyB,OAAgC;AACxE,MAAI;AACH,UAAM,SAAS,WAAW,KAAK;AAC/B,WAAO,OAAO,WAAW;AAAA,EAC1B,QAAQ;AACP,WAAO;AAAA,EACR;AACD;AAQO,MAAM,qBAAqB;AAC3B,SAAS,kBAAkB,OAAgC;AACjE,SAAO,MAAM,KAAK,KAAK,iBAAiB,KAAK,MAAM;AACpD;AAEO,SAAS,mBAAmB,OAAwB;AAC1D,SAAO,kBAAkB,KAAK;AAC/B;AASA,SAAS,aAAa,MAAkC;AACvD,MAAI,CAAC,KAAK,SAAS,IAAI,EAAG,QAAO;AAEjC,SAAO,eAAe,IAAI;AAC3B;AAEO,SAAS,eAAe,MAAyB;AACvD,QAAM,CAAC,SAAS,MAAM,IAAI,KAAK,MAAM,IAAI;AAEzC,QAAM,eAAe,oBAAoB,OAAO;AAEhD,QAAM,OAAO,KAAK,MAAM,QAAQ,SAAS,OAAO,SAAS,CAAC;AAC1D,QAAM,OAAO,KAAK,SAAS,GAAG,IAAI,KAAK,MAAM,GAAG,KAAK,QAAQ,GAAG,CAAC,IAAI;AACrE,QAAM,aAAa,KAAK,SAAS,GAAG,IACjC,uBAAuB,KAAK,MAAM,KAAK,QAAQ,GAAG,IAAI,GAAG,KAAK,YAAY,GAAG,CAAC,CAAC,EAAE;AAAA,IACjF,CAAC,cAAc,aAAa,UAAU,KAAK,CAAC;AAAA,EAC7C,IACC,CAAC;AAEJ,SAAO;AAAA,IACN,SAAS,eAAe,UAAU,oBAAoB,OAAO;AAAA,IAC7D;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,mBAAmB,MAAkC;AACpE,QAAM,EAAE,SAAS,QAAQ,MAAM,WAAW,IACzC,OAAO,SAAS,WAAW,eAAe,IAAI,IAAI;AAEnD,QAAM,sBACL,YAAY,SAAS,IAClB,IAAI,WACH;AAAA,IAAI,CAAC,cACL,OAAO,cAAc,WAAW,YAAY,mBAAmB,SAAS;AAAA,EACzE,EACC,KAAK,GAAG,CAAC,MACV;AAEJ,SAAO,GAAG,OAAO,KAAK,MAAM,KAAK,IAAI,GAAG,mBAAmB;AAC5D;AAaO,SAAS,oBAAoB,OAAe,aAAsB,OAAe;AACvF,MAAI,UAAU,MAAM,YAAY;AAChC,MAAI,CAAC,cAAc,QAAQ,WAAW,IAAI,GAAG;AAC5C,cAAU,QAAQ,MAAM,CAAC;AAAA,EAC1B;AACA,SAAO,KAAK,QAAQ,SAAS,qBAAqB,GAAG,GAAG,CAAC;AAC1D;AAEO,SAAS,qBAAqB,OAAe,aAAsB,OAAe;AACxF,SAAO,oBAAoB,OAAO,UAAU;AAC7C;AAEA,SAAS,MAAM,OAAwB;AACtC,SAAO,yBAAyB,KAAK,KAAK,KAAK,MAAM,SAAS,MAAM;AACrE;AAEA,SAAS,iBAAiB,OAAuB;AAChD,SAAO,WAAW,KAAK,KAAK,KAAK,MAAM,SAAS,KAAK,IAAI,MAAM,SAAS;AACzE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PACKAGE_VERSION = "1.
|
|
1
|
+
export declare const PACKAGE_VERSION = "1.41.0";
|
|
2
2
|
export declare const TARGETED_RPC_VERSION = "1.59.0";
|
package/dist/esm/version.js
CHANGED
package/dist/esm/version.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/version.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '1.
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '1.41.0';\nexport const TARGETED_RPC_VERSION = '1.59.0';\n"],
|
|
5
5
|
"mappings": "AAKO,MAAM,kBAAkB;AACxB,MAAM,uBAAuB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/zklogin/jwt-decode.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n/** Copied from https://github.com/auth0/jwt-decode/blob/3d372e9875ff673228a9f2d9df74e84690842a9c/lib/index.ts */\n\n/**\nThe MIT License (MIT)\n\nCopyright (c) 2015 Auth0, Inc. <support@auth0.com> (http://auth0.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\n\nexport interface JwtDecodeOptions {\n\theader?: boolean;\n}\n\nexport interface JwtHeader {\n\ttyp?: string;\n\talg?: string;\n\tkid?: string;\n}\n\nexport interface JwtPayload {\n\tiss?: string;\n\tsub?: string;\n\taud?: string[] | string;\n\texp?: number;\n\tnbf?: number;\n\tiat?: number;\n\tjti?: string;\n}\n\nexport class InvalidTokenError extends Error {}\n\nInvalidTokenError.prototype.name = 'InvalidTokenError';\n\nfunction b64DecodeUnicode(str: string) {\n\treturn decodeURIComponent(\n\t\tatob(str).replace(/(.)/g, (_m, p) => {\n\t\t\tlet code = (p as string).charCodeAt(0).toString(16).toUpperCase();\n\t\t\tif (code.length < 2) {\n\t\t\t\tcode = '0' + code;\n\t\t\t}\n\t\t\treturn '%' + code;\n\t\t}),\n\t);\n}\n\nfunction base64UrlDecode(str: string) {\n\tlet output = str.replace(/-/g, '+').replace(/_/g, '/');\n\tswitch (output.length % 4) {\n\t\tcase 0:\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\toutput += '==';\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\toutput += '=';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error('base64 string is not of the correct length');\n\t}\n\n\ttry {\n\t\treturn b64DecodeUnicode(output);\n\t} catch
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n// oxlint-disable check-tag-names\n\n/** Copied from https://github.com/auth0/jwt-decode/blob/3d372e9875ff673228a9f2d9df74e84690842a9c/lib/index.ts */\n\n/**\nThe MIT License (MIT)\n\nCopyright (c) 2015 Auth0, Inc. <support@auth0.com> (http://auth0.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\n\nexport interface JwtDecodeOptions {\n\theader?: boolean;\n}\n\nexport interface JwtHeader {\n\ttyp?: string;\n\talg?: string;\n\tkid?: string;\n}\n\nexport interface JwtPayload {\n\tiss?: string;\n\tsub?: string;\n\taud?: string[] | string;\n\texp?: number;\n\tnbf?: number;\n\tiat?: number;\n\tjti?: string;\n}\n\nexport class InvalidTokenError extends Error {}\n\nInvalidTokenError.prototype.name = 'InvalidTokenError';\n\nfunction b64DecodeUnicode(str: string) {\n\treturn decodeURIComponent(\n\t\tatob(str).replace(/(.)/g, (_m, p) => {\n\t\t\tlet code = (p as string).charCodeAt(0).toString(16).toUpperCase();\n\t\t\tif (code.length < 2) {\n\t\t\t\tcode = '0' + code;\n\t\t\t}\n\t\t\treturn '%' + code;\n\t\t}),\n\t);\n}\n\nfunction base64UrlDecode(str: string) {\n\tlet output = str.replace(/-/g, '+').replace(/_/g, '/');\n\tswitch (output.length % 4) {\n\t\tcase 0:\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\toutput += '==';\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\toutput += '=';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error('base64 string is not of the correct length');\n\t}\n\n\ttry {\n\t\treturn b64DecodeUnicode(output);\n\t} catch {\n\t\treturn atob(output);\n\t}\n}\n\nexport function jwtDecode<T = JwtHeader>(\n\ttoken: string,\n\toptions: JwtDecodeOptions & { header: true },\n): T;\nexport function jwtDecode<T = JwtPayload>(token: string, options?: JwtDecodeOptions): T;\nexport function jwtDecode<T = JwtHeader | JwtPayload>(\n\ttoken: string,\n\toptions?: JwtDecodeOptions,\n): T {\n\tif (typeof token !== 'string') {\n\t\tthrow new InvalidTokenError('Invalid token specified: must be a string');\n\t}\n\n\toptions ||= {};\n\n\tconst pos = options.header === true ? 0 : 1;\n\tconst part = token.split('.')[pos];\n\n\tif (typeof part !== 'string') {\n\t\tthrow new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n\t}\n\n\tlet decoded: string;\n\ttry {\n\t\tdecoded = base64UrlDecode(part);\n\t} catch (e) {\n\t\tthrow new InvalidTokenError(\n\t\t\t`Invalid token specified: invalid base64 for part #${pos + 1} (${(e as Error).message})`,\n\t\t);\n\t}\n\n\ttry {\n\t\treturn JSON.parse(decoded) as T;\n\t} catch (e) {\n\t\tthrow new InvalidTokenError(\n\t\t\t`Invalid token specified: invalid json for part #${pos + 1} (${(e as Error).message})`,\n\t\t);\n\t}\n}\n"],
|
|
5
|
+
"mappings": "AAkDO,MAAM,0BAA0B,MAAM;AAAC;AAE9C,kBAAkB,UAAU,OAAO;AAEnC,SAAS,iBAAiB,KAAa;AACtC,SAAO;AAAA,IACN,KAAK,GAAG,EAAE,QAAQ,QAAQ,CAAC,IAAI,MAAM;AACpC,UAAI,OAAQ,EAAa,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,YAAY;AAChE,UAAI,KAAK,SAAS,GAAG;AACpB,eAAO,MAAM;AAAA,MACd;AACA,aAAO,MAAM;AAAA,IACd,CAAC;AAAA,EACF;AACD;AAEA,SAAS,gBAAgB,KAAa;AACrC,MAAI,SAAS,IAAI,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AACrD,UAAQ,OAAO,SAAS,GAAG;AAAA,IAC1B,KAAK;AACJ;AAAA,IACD,KAAK;AACJ,gBAAU;AACV;AAAA,IACD,KAAK;AACJ,gBAAU;AACV;AAAA,IACD;AACC,YAAM,IAAI,MAAM,4CAA4C;AAAA,EAC9D;AAEA,MAAI;AACH,WAAO,iBAAiB,MAAM;AAAA,EAC/B,QAAQ;AACP,WAAO,KAAK,MAAM;AAAA,EACnB;AACD;AAOO,SAAS,UACf,OACA,SACI;AACJ,MAAI,OAAO,UAAU,UAAU;AAC9B,UAAM,IAAI,kBAAkB,2CAA2C;AAAA,EACxE;AAEA,wBAAY,CAAC;AAEb,QAAM,MAAM,QAAQ,WAAW,OAAO,IAAI;AAC1C,QAAM,OAAO,MAAM,MAAM,GAAG,EAAE,GAAG;AAEjC,MAAI,OAAO,SAAS,UAAU;AAC7B,UAAM,IAAI,kBAAkB,0CAA0C,MAAM,CAAC,EAAE;AAAA,EAChF;AAEA,MAAI;AACJ,MAAI;AACH,cAAU,gBAAgB,IAAI;AAAA,EAC/B,SAAS,GAAG;AACX,UAAM,IAAI;AAAA,MACT,qDAAqD,MAAM,CAAC,KAAM,EAAY,OAAO;AAAA,IACtF;AAAA,EACD;AAEA,MAAI;AACH,WAAO,KAAK,MAAM,OAAO;AAAA,EAC1B,SAAS,GAAG;AACX,UAAM,IAAI;AAAA,MACT,mDAAmD,MAAM,CAAC,KAAM,EAAY,OAAO;AAAA,IACpF;AAAA,EACD;AACD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|