wowok 2.1.40 → 2.1.41
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/dist/cjs/bcs/bcs.js +1 -253
- package/dist/cjs/bcs/effects.js +1 -199
- package/dist/cjs/bcs/index.js +1 -51
- package/dist/cjs/bcs/pure.js +1 -36
- package/dist/cjs/bcs/type-tag-serializer.js +1 -104
- package/dist/cjs/bcs/types.js +1 -3
- package/dist/cjs/client/index.js +1 -4
- package/dist/cjs/client/network.js +1 -15
- package/dist/cjs/cryptography/index.js +1 -6
- package/dist/cjs/cryptography/intent.js +1 -14
- package/dist/cjs/cryptography/keypair.js +1 -74
- package/dist/cjs/cryptography/mnemonics.js +1 -20
- package/dist/cjs/cryptography/publickey.js +1 -80
- package/dist/cjs/cryptography/signature-scheme.js +1 -22
- package/dist/cjs/cryptography/signature.js +1 -41
- package/dist/cjs/experimental/cache.js +1 -58
- package/dist/cjs/experimental/client.js +1 -19
- package/dist/cjs/experimental/core.js +1 -80
- package/dist/cjs/experimental/errors.js +1 -24
- package/dist/cjs/experimental/index.js +1 -5
- package/dist/cjs/experimental/persistent-storage.js +1 -220
- package/dist/cjs/experimental/persistent-storage.test.js +1 -144
- package/dist/cjs/experimental/transports/utils.js +1 -96
- package/dist/cjs/experimental/types.js +1 -1
- package/dist/cjs/faucet/faucet.js +1 -99
- package/dist/cjs/faucet/index.js +1 -1
- package/dist/cjs/grpc/client.js +1 -42
- package/dist/cjs/grpc/core.js +1 -587
- package/dist/cjs/grpc/index.js +1 -2
- package/dist/cjs/grpc/proto/google/protobuf/any.js +1 -106
- package/dist/cjs/grpc/proto/google/protobuf/duration.js +1 -58
- package/dist/cjs/grpc/proto/google/protobuf/empty.js +1 -7
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +1 -47
- package/dist/cjs/grpc/proto/google/protobuf/struct.js +1 -191
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +1 -91
- package/dist/cjs/grpc/proto/google/rpc/error_details.js +1 -265
- package/dist/cjs/grpc/proto/google/rpc/status.js +1 -23
- package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +1 -46
- package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +1 -29
- package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +1 -22
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +1 -54
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +1 -60
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +1 -144
- package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +1 -271
- package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +1 -64
- package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +1 -6
- package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +1 -62
- package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +1 -64
- package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +1 -481
- package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +1 -40
- package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +1 -61
- package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +1 -57
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +1 -39
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +1 -329
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +1 -447
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +1 -27
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +1 -206
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +1 -19
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +1 -109
- package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +1 -90
- package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +1 -30
- package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +1 -39
- package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +1 -30
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +1 -501
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +1 -10
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +1 -15
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +1 -62
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +1 -31
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +1 -504
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +1 -15
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +1 -37
- package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +1 -709
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1 -950
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +1 -19
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +1 -144
- package/dist/cjs/index.js +1 -22
- package/dist/cjs/jsonRpc/client.js +1 -516
- package/dist/cjs/jsonRpc/core.js +1 -587
- package/dist/cjs/jsonRpc/errors.js +1 -38
- package/dist/cjs/jsonRpc/http-transport.js +1 -70
- package/dist/cjs/jsonRpc/index.js +1 -3
- package/dist/cjs/jsonRpc/json-rpc-resolver.js +1 -296
- package/dist/cjs/jsonRpc/rpc-websocket-client.js +1 -155
- package/dist/cjs/jsonRpc/types/chain.js +1 -1
- package/dist/cjs/jsonRpc/types/changes.js +1 -1
- package/dist/cjs/jsonRpc/types/coins.js +1 -1
- package/dist/cjs/jsonRpc/types/common.js +1 -1
- package/dist/cjs/jsonRpc/types/generated.js +1 -1
- package/dist/cjs/jsonRpc/types/index.js +1 -1
- package/dist/cjs/jsonRpc/types/params.js +1 -1
- package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +1 -58
- package/dist/cjs/keypairs/ed25519/index.js +1 -2
- package/dist/cjs/keypairs/ed25519/keypair.js +1 -90
- package/dist/cjs/keypairs/ed25519/publickey.js +1 -50
- package/dist/cjs/keypairs/index.js +1 -4
- package/dist/cjs/keypairs/passkey/index.js +1 -2
- package/dist/cjs/keypairs/passkey/keypair.js +1 -155
- package/dist/cjs/keypairs/passkey/publickey.js +1 -117
- package/dist/cjs/keypairs/passkey/types.js +1 -1
- package/dist/cjs/keypairs/secp256k1/index.js +1 -2
- package/dist/cjs/keypairs/secp256k1/keypair.js +1 -82
- package/dist/cjs/keypairs/secp256k1/publickey.js +1 -51
- package/dist/cjs/keypairs/secp256r1/index.js +1 -2
- package/dist/cjs/keypairs/secp256r1/keypair.js +1 -78
- package/dist/cjs/keypairs/secp256r1/publickey.js +1 -52
- package/dist/cjs/multisig/index.js +1 -2
- package/dist/cjs/multisig/publickey.js +1 -201
- package/dist/cjs/multisig/signer.js +1 -58
- package/dist/cjs/transactions/Arguments.js +1 -9
- package/dist/cjs/transactions/Commands.js +1 -102
- package/dist/cjs/transactions/Inputs.js +1 -52
- package/dist/cjs/transactions/ObjectCache.js +1 -205
- package/dist/cjs/transactions/Transaction.js +1 -574
- package/dist/cjs/transactions/TransactionData.js +1 -409
- package/dist/cjs/transactions/__tests__/Transaction.test.js +1 -160
- package/dist/cjs/transactions/__tests__/bcs.test.js +1 -182
- package/dist/cjs/transactions/data/internal.js +1 -169
- package/dist/cjs/transactions/data/v1.js +1 -469
- package/dist/cjs/transactions/data/v2.js +1 -97
- package/dist/cjs/transactions/executor/caching.js +1 -65
- package/dist/cjs/transactions/executor/parallel.js +1 -347
- package/dist/cjs/transactions/executor/queue.js +1 -59
- package/dist/cjs/transactions/executor/serial.js +1 -99
- package/dist/cjs/transactions/hash.js +1 -8
- package/dist/cjs/transactions/index.js +1 -12
- package/dist/cjs/transactions/intents/CoinWithBalance.js +1 -145
- package/dist/cjs/transactions/object.js +1 -87
- package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +1 -11
- package/dist/cjs/transactions/pure.js +1 -36
- package/dist/cjs/transactions/resolve.js +1 -69
- package/dist/cjs/transactions/serializer.js +1 -167
- package/dist/cjs/transactions/utils.js +1 -121
- package/dist/cjs/utils/constants.js +1 -18
- package/dist/cjs/utils/derived-objects.js +1 -8
- package/dist/cjs/utils/dynamic-fields.js +1 -17
- package/dist/cjs/utils/format.js +1 -11
- package/dist/cjs/utils/index.js +1 -8
- package/dist/cjs/utils/move-registry.js +1 -24
- package/dist/cjs/utils/sui-types.js +1 -66
- package/dist/cjs/utils/suins.js +1 -33
- package/dist/cjs/verify/index.js +1 -1
- package/dist/cjs/verify/verify.js +1 -87
- package/dist/cjs/version.js +1 -2
- package/dist/cjs/w/call/allocation.js +1 -345
- package/dist/cjs/w/call/arb.js +1 -103
- package/dist/cjs/w/call/arbitration.js +1 -1192
- package/dist/cjs/w/call/base.js +1 -293
- package/dist/cjs/w/call/contact.js +1 -345
- package/dist/cjs/w/call/demand.js +1 -681
- package/dist/cjs/w/call/entity.js +1 -173
- package/dist/cjs/w/call/guard-ins.js +1 -4449
- package/dist/cjs/w/call/guard.d.ts +111 -0
- package/dist/cjs/w/call/guard.js +1 -1048
- package/dist/cjs/w/call/index.js +1 -22
- package/dist/cjs/w/call/machine.js +1 -1127
- package/dist/cjs/w/call/order.js +1 -337
- package/dist/cjs/w/call/passport.js +1 -220
- package/dist/cjs/w/call/payment.js +1 -178
- package/dist/cjs/w/call/permission.js +1 -1162
- package/dist/cjs/w/call/personal.js +1 -139
- package/dist/cjs/w/call/progress.js +1 -678
- package/dist/cjs/w/call/proof.js +1 -66
- package/dist/cjs/w/call/repository.js +1 -1024
- package/dist/cjs/w/call/resource.js +1 -108
- package/dist/cjs/w/call/reward.js +1 -675
- package/dist/cjs/w/call/service.js +1 -1960
- package/dist/cjs/w/call/treasury.js +1 -873
- package/dist/cjs/w/call/util.d.ts +1 -0
- package/dist/cjs/w/call/util.js +1 -566
- package/dist/cjs/w/common.js +1 -571
- package/dist/cjs/w/exception.js +1 -618
- package/dist/cjs/w/index.js +1 -8
- package/dist/cjs/w/local/account.js +1 -656
- package/dist/cjs/w/local/cache.js +1 -161
- package/dist/cjs/w/local/config.js +1 -43
- package/dist/cjs/w/local/index.js +1 -228
- package/dist/cjs/w/local/local.js +1 -574
- package/dist/cjs/w/local/storage.js +1 -185
- package/dist/cjs/w/local/token.js +1 -131
- package/dist/cjs/w/local/util.js +1 -26
- package/dist/cjs/w/local/wip.js +1 -864
- package/dist/cjs/w/messenger/crypto.js +1 -380
- package/dist/cjs/w/messenger/index.js +1 -4
- package/dist/cjs/w/messenger/messenger-api.js +1 -1154
- package/dist/cjs/w/messenger/messenger-manager.js +1 -1003
- package/dist/cjs/w/messenger/messenger.js +1 -1093
- package/dist/cjs/w/messenger/server.js +1 -343
- package/dist/cjs/w/messenger/session.js +1 -628
- package/dist/cjs/w/messenger/storage.js +1 -1023
- package/dist/cjs/w/messenger/templates/wts-html-template.js +1 -371
- package/dist/cjs/w/messenger/types.js +1 -76
- package/dist/cjs/w/messenger/utils.js +1 -12
- package/dist/cjs/w/query/bult-in.js +1 -95
- package/dist/cjs/w/query/event.js +1 -137
- package/dist/cjs/w/query/index.js +1 -5
- package/dist/cjs/w/query/object.js +1 -1550
- package/dist/cjs/w/query/received.js +1 -62
- package/dist/cjs/w/query/util.js +1 -49
- package/dist/cjs/w/util.js +1 -587
- package/dist/esm/bcs/bcs.js +1 -253
- package/dist/esm/bcs/effects.js +1 -199
- package/dist/esm/bcs/index.js +1 -51
- package/dist/esm/bcs/pure.js +1 -36
- package/dist/esm/bcs/type-tag-serializer.js +1 -104
- package/dist/esm/bcs/types.js +1 -3
- package/dist/esm/client/index.js +1 -4
- package/dist/esm/client/network.js +1 -15
- package/dist/esm/cryptography/index.js +1 -6
- package/dist/esm/cryptography/intent.js +1 -14
- package/dist/esm/cryptography/keypair.js +1 -74
- package/dist/esm/cryptography/mnemonics.js +1 -20
- package/dist/esm/cryptography/publickey.js +1 -80
- package/dist/esm/cryptography/signature-scheme.js +1 -22
- package/dist/esm/cryptography/signature.js +1 -41
- package/dist/esm/experimental/cache.js +1 -58
- package/dist/esm/experimental/client.js +1 -19
- package/dist/esm/experimental/core.js +1 -80
- package/dist/esm/experimental/errors.js +1 -24
- package/dist/esm/experimental/index.js +1 -5
- package/dist/esm/experimental/persistent-storage.js +1 -220
- package/dist/esm/experimental/persistent-storage.test.js +1 -144
- package/dist/esm/experimental/transports/utils.js +1 -96
- package/dist/esm/experimental/types.js +1 -1
- package/dist/esm/faucet/faucet.js +1 -99
- package/dist/esm/faucet/index.js +1 -1
- package/dist/esm/grpc/client.js +1 -42
- package/dist/esm/grpc/core.js +1 -587
- package/dist/esm/grpc/index.js +1 -2
- package/dist/esm/grpc/proto/google/protobuf/any.js +1 -106
- package/dist/esm/grpc/proto/google/protobuf/duration.js +1 -58
- package/dist/esm/grpc/proto/google/protobuf/empty.js +1 -7
- package/dist/esm/grpc/proto/google/protobuf/field_mask.js +1 -47
- package/dist/esm/grpc/proto/google/protobuf/struct.js +1 -191
- package/dist/esm/grpc/proto/google/protobuf/timestamp.js +1 -91
- package/dist/esm/grpc/proto/google/rpc/error_details.js +1 -265
- package/dist/esm/grpc/proto/google/rpc/status.js +1 -23
- package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +1 -46
- package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +1 -29
- package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +1 -22
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +1 -54
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +1 -60
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +1 -144
- package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +1 -271
- package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +1 -64
- package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +1 -6
- package/dist/esm/grpc/proto/sui/rpc/v2/event.js +1 -62
- package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +1 -64
- package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +1 -481
- package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +1 -40
- package/dist/esm/grpc/proto/sui/rpc/v2/input.js +1 -61
- package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +1 -57
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +1 -39
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +1 -329
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +1 -447
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +1 -27
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +1 -206
- package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +1 -19
- package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +1 -109
- package/dist/esm/grpc/proto/sui/rpc/v2/object.js +1 -90
- package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +1 -30
- package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +1 -39
- package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +1 -30
- package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +1 -501
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +1 -10
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +1 -15
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +1 -62
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +1 -31
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +1 -504
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +1 -15
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +1 -37
- package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +1 -709
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +1 -950
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +1 -19
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +1 -144
- package/dist/esm/index.js +1 -22
- package/dist/esm/jsonRpc/client.js +1 -516
- package/dist/esm/jsonRpc/core.js +1 -587
- package/dist/esm/jsonRpc/errors.js +1 -38
- package/dist/esm/jsonRpc/http-transport.js +1 -70
- package/dist/esm/jsonRpc/index.js +1 -3
- package/dist/esm/jsonRpc/json-rpc-resolver.js +1 -296
- package/dist/esm/jsonRpc/rpc-websocket-client.js +1 -155
- package/dist/esm/jsonRpc/types/chain.js +1 -1
- package/dist/esm/jsonRpc/types/changes.js +1 -1
- package/dist/esm/jsonRpc/types/coins.js +1 -1
- package/dist/esm/jsonRpc/types/common.js +1 -1
- package/dist/esm/jsonRpc/types/generated.js +1 -1
- package/dist/esm/jsonRpc/types/index.js +1 -1
- package/dist/esm/jsonRpc/types/params.js +1 -1
- package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +1 -58
- package/dist/esm/keypairs/ed25519/index.js +1 -2
- package/dist/esm/keypairs/ed25519/keypair.js +1 -90
- package/dist/esm/keypairs/ed25519/publickey.js +1 -50
- package/dist/esm/keypairs/index.js +1 -4
- package/dist/esm/keypairs/passkey/index.js +1 -2
- package/dist/esm/keypairs/passkey/keypair.js +1 -155
- package/dist/esm/keypairs/passkey/publickey.js +1 -117
- package/dist/esm/keypairs/passkey/types.js +1 -1
- package/dist/esm/keypairs/secp256k1/index.js +1 -2
- package/dist/esm/keypairs/secp256k1/keypair.js +1 -82
- package/dist/esm/keypairs/secp256k1/publickey.js +1 -51
- package/dist/esm/keypairs/secp256r1/index.js +1 -2
- package/dist/esm/keypairs/secp256r1/keypair.js +1 -78
- package/dist/esm/keypairs/secp256r1/publickey.js +1 -52
- package/dist/esm/multisig/index.js +1 -2
- package/dist/esm/multisig/publickey.js +1 -201
- package/dist/esm/multisig/signer.js +1 -58
- package/dist/esm/transactions/Arguments.js +1 -9
- package/dist/esm/transactions/Commands.js +1 -102
- package/dist/esm/transactions/Inputs.js +1 -52
- package/dist/esm/transactions/ObjectCache.js +1 -205
- package/dist/esm/transactions/Transaction.js +1 -574
- package/dist/esm/transactions/TransactionData.js +1 -409
- package/dist/esm/transactions/__tests__/Transaction.test.js +1 -160
- package/dist/esm/transactions/__tests__/bcs.test.js +1 -182
- package/dist/esm/transactions/data/internal.js +1 -169
- package/dist/esm/transactions/data/v1.js +1 -469
- package/dist/esm/transactions/data/v2.js +1 -97
- package/dist/esm/transactions/executor/caching.js +1 -65
- package/dist/esm/transactions/executor/parallel.js +1 -347
- package/dist/esm/transactions/executor/queue.js +1 -59
- package/dist/esm/transactions/executor/serial.js +1 -99
- package/dist/esm/transactions/hash.js +1 -8
- package/dist/esm/transactions/index.js +1 -12
- package/dist/esm/transactions/intents/CoinWithBalance.js +1 -145
- package/dist/esm/transactions/object.js +1 -87
- package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +1 -11
- package/dist/esm/transactions/pure.js +1 -36
- package/dist/esm/transactions/resolve.js +1 -69
- package/dist/esm/transactions/serializer.js +1 -167
- package/dist/esm/transactions/utils.js +1 -121
- package/dist/esm/utils/constants.js +1 -18
- package/dist/esm/utils/derived-objects.js +1 -8
- package/dist/esm/utils/dynamic-fields.js +1 -17
- package/dist/esm/utils/format.js +1 -11
- package/dist/esm/utils/index.js +1 -8
- package/dist/esm/utils/move-registry.js +1 -24
- package/dist/esm/utils/sui-types.js +1 -66
- package/dist/esm/utils/suins.js +1 -33
- package/dist/esm/verify/index.js +1 -1
- package/dist/esm/verify/verify.js +1 -87
- package/dist/esm/version.js +1 -2
- package/dist/esm/w/call/allocation.js +1 -345
- package/dist/esm/w/call/arb.js +1 -103
- package/dist/esm/w/call/arbitration.js +1 -1192
- package/dist/esm/w/call/base.js +1 -293
- package/dist/esm/w/call/contact.js +1 -345
- package/dist/esm/w/call/demand.js +1 -681
- package/dist/esm/w/call/entity.js +1 -173
- package/dist/esm/w/call/guard-ins.js +1 -4449
- package/dist/esm/w/call/guard.d.ts +111 -0
- package/dist/esm/w/call/guard.js +1 -1048
- package/dist/esm/w/call/index.js +1 -22
- package/dist/esm/w/call/machine.js +1 -1127
- package/dist/esm/w/call/order.js +1 -337
- package/dist/esm/w/call/passport.js +1 -220
- package/dist/esm/w/call/payment.js +1 -178
- package/dist/esm/w/call/permission.js +1 -1162
- package/dist/esm/w/call/personal.js +1 -139
- package/dist/esm/w/call/progress.js +1 -678
- package/dist/esm/w/call/proof.js +1 -66
- package/dist/esm/w/call/repository.js +1 -1024
- package/dist/esm/w/call/resource.js +1 -108
- package/dist/esm/w/call/reward.js +1 -675
- package/dist/esm/w/call/service.js +1 -1960
- package/dist/esm/w/call/treasury.js +1 -873
- package/dist/esm/w/call/util.d.ts +1 -0
- package/dist/esm/w/call/util.js +1 -566
- package/dist/esm/w/common.js +1 -571
- package/dist/esm/w/exception.js +1 -618
- package/dist/esm/w/index.js +1 -8
- package/dist/esm/w/local/account.js +1 -656
- package/dist/esm/w/local/cache.js +1 -161
- package/dist/esm/w/local/config.js +1 -43
- package/dist/esm/w/local/index.js +1 -228
- package/dist/esm/w/local/local.js +1 -574
- package/dist/esm/w/local/storage.js +1 -185
- package/dist/esm/w/local/token.js +1 -131
- package/dist/esm/w/local/util.js +1 -26
- package/dist/esm/w/local/wip.js +1 -864
- package/dist/esm/w/messenger/crypto.js +1 -380
- package/dist/esm/w/messenger/index.js +1 -4
- package/dist/esm/w/messenger/messenger-api.js +1 -1154
- package/dist/esm/w/messenger/messenger-manager.js +1 -1003
- package/dist/esm/w/messenger/messenger.js +1 -1093
- package/dist/esm/w/messenger/server.js +1 -343
- package/dist/esm/w/messenger/session.js +1 -628
- package/dist/esm/w/messenger/storage.js +1 -1023
- package/dist/esm/w/messenger/templates/wts-html-template.js +1 -371
- package/dist/esm/w/messenger/types.js +1 -76
- package/dist/esm/w/messenger/utils.js +1 -12
- package/dist/esm/w/query/bult-in.js +1 -95
- package/dist/esm/w/query/event.js +1 -137
- package/dist/esm/w/query/index.js +1 -5
- package/dist/esm/w/query/object.js +1 -1550
- package/dist/esm/w/query/received.js +1 -62
- package/dist/esm/w/query/util.js +1 -49
- package/dist/esm/w/util.js +1 -587
- package/package.json +5 -2
|
@@ -1,469 +1 @@
|
|
|
1
|
-
import { fromBase64, toBase64 } from "@mysten/bcs";
|
|
2
|
-
import { array, bigint, boolean, check, integer, is, lazy, literal, nullable, nullish, number, object, optional, parse, pipe, string, union, unknown, } from "valibot";
|
|
3
|
-
import { TypeTagSerializer } from "../../bcs/index.js";
|
|
4
|
-
import { JsonU64, ObjectID, safeEnum, TransactionDataSchema, } from "./internal.js";
|
|
5
|
-
export const ObjectRef = object({
|
|
6
|
-
digest: string(),
|
|
7
|
-
objectId: string(),
|
|
8
|
-
version: union([pipe(number(), integer()), string(), bigint()]),
|
|
9
|
-
});
|
|
10
|
-
const ObjectArg = safeEnum({
|
|
11
|
-
ImmOrOwned: ObjectRef,
|
|
12
|
-
Shared: object({
|
|
13
|
-
objectId: ObjectID,
|
|
14
|
-
initialSharedVersion: JsonU64,
|
|
15
|
-
mutable: boolean(),
|
|
16
|
-
}),
|
|
17
|
-
Receiving: ObjectRef,
|
|
18
|
-
});
|
|
19
|
-
export const NormalizedCallArg = safeEnum({
|
|
20
|
-
Object: ObjectArg,
|
|
21
|
-
Pure: array(pipe(number(), integer())),
|
|
22
|
-
});
|
|
23
|
-
const TransactionInput = union([
|
|
24
|
-
object({
|
|
25
|
-
kind: literal("Input"),
|
|
26
|
-
index: pipe(number(), integer()),
|
|
27
|
-
value: unknown(),
|
|
28
|
-
type: optional(literal("object")),
|
|
29
|
-
}),
|
|
30
|
-
object({
|
|
31
|
-
kind: literal("Input"),
|
|
32
|
-
index: pipe(number(), integer()),
|
|
33
|
-
value: unknown(),
|
|
34
|
-
type: literal("pure"),
|
|
35
|
-
}),
|
|
36
|
-
]);
|
|
37
|
-
const TransactionExpiration = union([
|
|
38
|
-
object({ Epoch: pipe(number(), integer()) }),
|
|
39
|
-
object({ None: nullable(literal(true)) }),
|
|
40
|
-
]);
|
|
41
|
-
const StringEncodedBigint = pipe(union([number(), string(), bigint()]), check((val) => {
|
|
42
|
-
if (!["string", "number", "bigint"].includes(typeof val))
|
|
43
|
-
return false;
|
|
44
|
-
try {
|
|
45
|
-
BigInt(val);
|
|
46
|
-
return true;
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
}));
|
|
52
|
-
export const TypeTag = union([
|
|
53
|
-
object({ bool: nullable(literal(true)) }),
|
|
54
|
-
object({ u8: nullable(literal(true)) }),
|
|
55
|
-
object({ u64: nullable(literal(true)) }),
|
|
56
|
-
object({ u128: nullable(literal(true)) }),
|
|
57
|
-
object({ address: nullable(literal(true)) }),
|
|
58
|
-
object({ signer: nullable(literal(true)) }),
|
|
59
|
-
object({ vector: lazy(() => TypeTag) }),
|
|
60
|
-
object({ struct: lazy(() => StructTag) }),
|
|
61
|
-
object({ u16: nullable(literal(true)) }),
|
|
62
|
-
object({ u32: nullable(literal(true)) }),
|
|
63
|
-
object({ u256: nullable(literal(true)) }),
|
|
64
|
-
]);
|
|
65
|
-
export const StructTag = object({
|
|
66
|
-
address: string(),
|
|
67
|
-
module: string(),
|
|
68
|
-
name: string(),
|
|
69
|
-
typeParams: array(TypeTag),
|
|
70
|
-
});
|
|
71
|
-
const GasConfig = object({
|
|
72
|
-
budget: optional(StringEncodedBigint),
|
|
73
|
-
price: optional(StringEncodedBigint),
|
|
74
|
-
payment: optional(array(ObjectRef)),
|
|
75
|
-
owner: optional(string()),
|
|
76
|
-
});
|
|
77
|
-
const TransactionArgumentTypes = [
|
|
78
|
-
TransactionInput,
|
|
79
|
-
object({ kind: literal("GasCoin") }),
|
|
80
|
-
object({ kind: literal("Result"), index: pipe(number(), integer()) }),
|
|
81
|
-
object({
|
|
82
|
-
kind: literal("NestedResult"),
|
|
83
|
-
index: pipe(number(), integer()),
|
|
84
|
-
resultIndex: pipe(number(), integer()),
|
|
85
|
-
}),
|
|
86
|
-
];
|
|
87
|
-
export const TransactionArgument = union([...TransactionArgumentTypes]);
|
|
88
|
-
const MoveCallTransaction = object({
|
|
89
|
-
kind: literal("MoveCall"),
|
|
90
|
-
target: pipe(string(), check((target) => target.split("::").length === 3)),
|
|
91
|
-
typeArguments: array(string()),
|
|
92
|
-
arguments: array(TransactionArgument),
|
|
93
|
-
});
|
|
94
|
-
const TransferObjectsTransaction = object({
|
|
95
|
-
kind: literal("TransferObjects"),
|
|
96
|
-
objects: array(TransactionArgument),
|
|
97
|
-
address: TransactionArgument,
|
|
98
|
-
});
|
|
99
|
-
const SplitCoinsTransaction = object({
|
|
100
|
-
kind: literal("SplitCoins"),
|
|
101
|
-
coin: TransactionArgument,
|
|
102
|
-
amounts: array(TransactionArgument),
|
|
103
|
-
});
|
|
104
|
-
const MergeCoinsTransaction = object({
|
|
105
|
-
kind: literal("MergeCoins"),
|
|
106
|
-
destination: TransactionArgument,
|
|
107
|
-
sources: array(TransactionArgument),
|
|
108
|
-
});
|
|
109
|
-
const MakeMoveVecTransaction = object({
|
|
110
|
-
kind: literal("MakeMoveVec"),
|
|
111
|
-
type: union([
|
|
112
|
-
object({ Some: TypeTag }),
|
|
113
|
-
object({ None: nullable(literal(true)) }),
|
|
114
|
-
]),
|
|
115
|
-
objects: array(TransactionArgument),
|
|
116
|
-
});
|
|
117
|
-
const PublishTransaction = object({
|
|
118
|
-
kind: literal("Publish"),
|
|
119
|
-
modules: array(array(pipe(number(), integer()))),
|
|
120
|
-
dependencies: array(string()),
|
|
121
|
-
});
|
|
122
|
-
const UpgradeTransaction = object({
|
|
123
|
-
kind: literal("Upgrade"),
|
|
124
|
-
modules: array(array(pipe(number(), integer()))),
|
|
125
|
-
dependencies: array(string()),
|
|
126
|
-
packageId: string(),
|
|
127
|
-
ticket: TransactionArgument,
|
|
128
|
-
});
|
|
129
|
-
const TransactionTypes = [
|
|
130
|
-
MoveCallTransaction,
|
|
131
|
-
TransferObjectsTransaction,
|
|
132
|
-
SplitCoinsTransaction,
|
|
133
|
-
MergeCoinsTransaction,
|
|
134
|
-
PublishTransaction,
|
|
135
|
-
UpgradeTransaction,
|
|
136
|
-
MakeMoveVecTransaction,
|
|
137
|
-
];
|
|
138
|
-
const TransactionType = union([...TransactionTypes]);
|
|
139
|
-
export const SerializedTransactionDataV1 = object({
|
|
140
|
-
version: literal(1),
|
|
141
|
-
sender: optional(string()),
|
|
142
|
-
expiration: nullish(TransactionExpiration),
|
|
143
|
-
gasConfig: GasConfig,
|
|
144
|
-
inputs: array(TransactionInput),
|
|
145
|
-
transactions: array(TransactionType),
|
|
146
|
-
});
|
|
147
|
-
export function serializeV1TransactionData(transactionData) {
|
|
148
|
-
const inputs = transactionData.inputs.map((input, index) => {
|
|
149
|
-
if (input.Object) {
|
|
150
|
-
return {
|
|
151
|
-
kind: "Input",
|
|
152
|
-
index,
|
|
153
|
-
value: {
|
|
154
|
-
Object: input.Object.ImmOrOwnedObject
|
|
155
|
-
? {
|
|
156
|
-
ImmOrOwned: input.Object.ImmOrOwnedObject,
|
|
157
|
-
}
|
|
158
|
-
: input.Object.Receiving
|
|
159
|
-
? {
|
|
160
|
-
Receiving: {
|
|
161
|
-
digest: input.Object.Receiving
|
|
162
|
-
.digest,
|
|
163
|
-
version: input.Object.Receiving.version,
|
|
164
|
-
objectId: input.Object.Receiving.objectId,
|
|
165
|
-
},
|
|
166
|
-
}
|
|
167
|
-
: {
|
|
168
|
-
Shared: {
|
|
169
|
-
mutable: input.Object.SharedObject
|
|
170
|
-
.mutable,
|
|
171
|
-
initialSharedVersion: input.Object.SharedObject
|
|
172
|
-
.initialSharedVersion,
|
|
173
|
-
objectId: input.Object.SharedObject
|
|
174
|
-
.objectId,
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
type: "object",
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
if (input.Pure) {
|
|
182
|
-
return {
|
|
183
|
-
kind: "Input",
|
|
184
|
-
index,
|
|
185
|
-
value: {
|
|
186
|
-
Pure: Array.from(fromBase64(input.Pure.bytes)),
|
|
187
|
-
},
|
|
188
|
-
type: "pure",
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
if (input.UnresolvedPure) {
|
|
192
|
-
return {
|
|
193
|
-
kind: "Input",
|
|
194
|
-
type: "pure",
|
|
195
|
-
index,
|
|
196
|
-
value: input.UnresolvedPure.value,
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
if (input.UnresolvedObject) {
|
|
200
|
-
return {
|
|
201
|
-
kind: "Input",
|
|
202
|
-
type: "object",
|
|
203
|
-
index,
|
|
204
|
-
value: input.UnresolvedObject.objectId,
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
throw new Error("Invalid input");
|
|
208
|
-
});
|
|
209
|
-
return {
|
|
210
|
-
version: 1,
|
|
211
|
-
sender: transactionData.sender ?? undefined,
|
|
212
|
-
expiration: transactionData.expiration?.$kind === "Epoch"
|
|
213
|
-
? { Epoch: Number(transactionData.expiration.Epoch) }
|
|
214
|
-
: transactionData.expiration
|
|
215
|
-
? { None: true }
|
|
216
|
-
: null,
|
|
217
|
-
gasConfig: {
|
|
218
|
-
owner: transactionData.gasData.owner ?? undefined,
|
|
219
|
-
budget: transactionData.gasData.budget ?? undefined,
|
|
220
|
-
price: transactionData.gasData.price ?? undefined,
|
|
221
|
-
payment: transactionData.gasData.payment ?? undefined,
|
|
222
|
-
},
|
|
223
|
-
inputs,
|
|
224
|
-
transactions: transactionData.commands.map((command) => {
|
|
225
|
-
if (command.MakeMoveVec) {
|
|
226
|
-
return {
|
|
227
|
-
kind: "MakeMoveVec",
|
|
228
|
-
type: command.MakeMoveVec.type === null
|
|
229
|
-
? { None: true }
|
|
230
|
-
: {
|
|
231
|
-
Some: TypeTagSerializer.parseFromStr(command.MakeMoveVec.type),
|
|
232
|
-
},
|
|
233
|
-
objects: command.MakeMoveVec.elements.map((arg) => convertTransactionArgument(arg, inputs)),
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
if (command.MergeCoins) {
|
|
237
|
-
return {
|
|
238
|
-
kind: "MergeCoins",
|
|
239
|
-
destination: convertTransactionArgument(command.MergeCoins.destination, inputs),
|
|
240
|
-
sources: command.MergeCoins.sources.map((arg) => convertTransactionArgument(arg, inputs)),
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
if (command.MoveCall) {
|
|
244
|
-
return {
|
|
245
|
-
kind: "MoveCall",
|
|
246
|
-
target: `${command.MoveCall.package}::${command.MoveCall.module}::${command.MoveCall.function}`,
|
|
247
|
-
typeArguments: command.MoveCall.typeArguments,
|
|
248
|
-
arguments: command.MoveCall.arguments.map((arg) => convertTransactionArgument(arg, inputs)),
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
if (command.Publish) {
|
|
252
|
-
return {
|
|
253
|
-
kind: "Publish",
|
|
254
|
-
modules: command.Publish.modules.map((mod) => Array.from(fromBase64(mod))),
|
|
255
|
-
dependencies: command.Publish.dependencies,
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
if (command.SplitCoins) {
|
|
259
|
-
return {
|
|
260
|
-
kind: "SplitCoins",
|
|
261
|
-
coin: convertTransactionArgument(command.SplitCoins.coin, inputs),
|
|
262
|
-
amounts: command.SplitCoins.amounts.map((arg) => convertTransactionArgument(arg, inputs)),
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
if (command.TransferObjects) {
|
|
266
|
-
return {
|
|
267
|
-
kind: "TransferObjects",
|
|
268
|
-
objects: command.TransferObjects.objects.map((arg) => convertTransactionArgument(arg, inputs)),
|
|
269
|
-
address: convertTransactionArgument(command.TransferObjects.address, inputs),
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
if (command.Upgrade) {
|
|
273
|
-
return {
|
|
274
|
-
kind: "Upgrade",
|
|
275
|
-
modules: command.Upgrade.modules.map((mod) => Array.from(fromBase64(mod))),
|
|
276
|
-
dependencies: command.Upgrade.dependencies,
|
|
277
|
-
packageId: command.Upgrade.package,
|
|
278
|
-
ticket: convertTransactionArgument(command.Upgrade.ticket, inputs),
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
throw new Error(`Unknown transaction ${Object.keys(command)}`);
|
|
282
|
-
}),
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
|
-
function convertTransactionArgument(arg, inputs) {
|
|
286
|
-
if (arg.$kind === "GasCoin") {
|
|
287
|
-
return { kind: "GasCoin" };
|
|
288
|
-
}
|
|
289
|
-
if (arg.$kind === "Result") {
|
|
290
|
-
return { kind: "Result", index: arg.Result };
|
|
291
|
-
}
|
|
292
|
-
if (arg.$kind === "NestedResult") {
|
|
293
|
-
return {
|
|
294
|
-
kind: "NestedResult",
|
|
295
|
-
index: arg.NestedResult[0],
|
|
296
|
-
resultIndex: arg.NestedResult[1],
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
if (arg.$kind === "Input") {
|
|
300
|
-
return inputs[arg.Input];
|
|
301
|
-
}
|
|
302
|
-
throw new Error(`Invalid argument ${Object.keys(arg)}`);
|
|
303
|
-
}
|
|
304
|
-
export function transactionDataFromV1(data) {
|
|
305
|
-
return parse(TransactionDataSchema, {
|
|
306
|
-
version: 2,
|
|
307
|
-
sender: data.sender ?? null,
|
|
308
|
-
expiration: data.expiration
|
|
309
|
-
? "Epoch" in data.expiration
|
|
310
|
-
? { Epoch: data.expiration.Epoch }
|
|
311
|
-
: { None: true }
|
|
312
|
-
: null,
|
|
313
|
-
gasData: {
|
|
314
|
-
owner: data.gasConfig.owner ?? null,
|
|
315
|
-
budget: data.gasConfig.budget?.toString() ?? null,
|
|
316
|
-
price: data.gasConfig.price?.toString() ?? null,
|
|
317
|
-
payment: data.gasConfig.payment?.map((ref) => ({
|
|
318
|
-
digest: ref.digest,
|
|
319
|
-
objectId: ref.objectId,
|
|
320
|
-
version: ref.version.toString(),
|
|
321
|
-
})) ?? null,
|
|
322
|
-
},
|
|
323
|
-
inputs: data.inputs.map((input) => {
|
|
324
|
-
if (input.kind === "Input") {
|
|
325
|
-
if (is(NormalizedCallArg, input.value)) {
|
|
326
|
-
const value = parse(NormalizedCallArg, input.value);
|
|
327
|
-
if (value.Object) {
|
|
328
|
-
if (value.Object.ImmOrOwned) {
|
|
329
|
-
return {
|
|
330
|
-
Object: {
|
|
331
|
-
ImmOrOwnedObject: {
|
|
332
|
-
objectId: value.Object.ImmOrOwned.objectId,
|
|
333
|
-
version: String(value.Object.ImmOrOwned.version),
|
|
334
|
-
digest: value.Object.ImmOrOwned.digest,
|
|
335
|
-
},
|
|
336
|
-
},
|
|
337
|
-
};
|
|
338
|
-
}
|
|
339
|
-
if (value.Object.Shared) {
|
|
340
|
-
return {
|
|
341
|
-
Object: {
|
|
342
|
-
SharedObject: {
|
|
343
|
-
mutable: value.Object.Shared.mutable ?? null,
|
|
344
|
-
initialSharedVersion: value.Object.Shared
|
|
345
|
-
.initialSharedVersion,
|
|
346
|
-
objectId: value.Object.Shared.objectId,
|
|
347
|
-
},
|
|
348
|
-
},
|
|
349
|
-
};
|
|
350
|
-
}
|
|
351
|
-
if (value.Object.Receiving) {
|
|
352
|
-
return {
|
|
353
|
-
Object: {
|
|
354
|
-
Receiving: {
|
|
355
|
-
digest: value.Object.Receiving.digest,
|
|
356
|
-
version: String(value.Object.Receiving.version),
|
|
357
|
-
objectId: value.Object.Receiving.objectId,
|
|
358
|
-
},
|
|
359
|
-
},
|
|
360
|
-
};
|
|
361
|
-
}
|
|
362
|
-
throw new Error("Invalid object input");
|
|
363
|
-
}
|
|
364
|
-
return {
|
|
365
|
-
Pure: {
|
|
366
|
-
bytes: toBase64(new Uint8Array(value.Pure)),
|
|
367
|
-
},
|
|
368
|
-
};
|
|
369
|
-
}
|
|
370
|
-
if (input.type === "object") {
|
|
371
|
-
return {
|
|
372
|
-
UnresolvedObject: {
|
|
373
|
-
objectId: input.value,
|
|
374
|
-
},
|
|
375
|
-
};
|
|
376
|
-
}
|
|
377
|
-
return {
|
|
378
|
-
UnresolvedPure: {
|
|
379
|
-
value: input.value,
|
|
380
|
-
},
|
|
381
|
-
};
|
|
382
|
-
}
|
|
383
|
-
throw new Error("Invalid input");
|
|
384
|
-
}),
|
|
385
|
-
commands: data.transactions.map((transaction) => {
|
|
386
|
-
switch (transaction.kind) {
|
|
387
|
-
case "MakeMoveVec":
|
|
388
|
-
return {
|
|
389
|
-
MakeMoveVec: {
|
|
390
|
-
type: "Some" in transaction.type
|
|
391
|
-
? TypeTagSerializer.tagToString(transaction.type.Some)
|
|
392
|
-
: null,
|
|
393
|
-
elements: transaction.objects.map((arg) => parseV1TransactionArgument(arg)),
|
|
394
|
-
},
|
|
395
|
-
};
|
|
396
|
-
case "MergeCoins": {
|
|
397
|
-
return {
|
|
398
|
-
MergeCoins: {
|
|
399
|
-
destination: parseV1TransactionArgument(transaction.destination),
|
|
400
|
-
sources: transaction.sources.map((arg) => parseV1TransactionArgument(arg)),
|
|
401
|
-
},
|
|
402
|
-
};
|
|
403
|
-
}
|
|
404
|
-
case "MoveCall": {
|
|
405
|
-
const [pkg, mod, fn] = transaction.target.split("::");
|
|
406
|
-
return {
|
|
407
|
-
MoveCall: {
|
|
408
|
-
package: pkg,
|
|
409
|
-
module: mod,
|
|
410
|
-
function: fn,
|
|
411
|
-
typeArguments: transaction.typeArguments,
|
|
412
|
-
arguments: transaction.arguments.map((arg) => parseV1TransactionArgument(arg)),
|
|
413
|
-
},
|
|
414
|
-
};
|
|
415
|
-
}
|
|
416
|
-
case "Publish": {
|
|
417
|
-
return {
|
|
418
|
-
Publish: {
|
|
419
|
-
modules: transaction.modules.map((mod) => toBase64(Uint8Array.from(mod))),
|
|
420
|
-
dependencies: transaction.dependencies,
|
|
421
|
-
},
|
|
422
|
-
};
|
|
423
|
-
}
|
|
424
|
-
case "SplitCoins": {
|
|
425
|
-
return {
|
|
426
|
-
SplitCoins: {
|
|
427
|
-
coin: parseV1TransactionArgument(transaction.coin),
|
|
428
|
-
amounts: transaction.amounts.map((arg) => parseV1TransactionArgument(arg)),
|
|
429
|
-
},
|
|
430
|
-
};
|
|
431
|
-
}
|
|
432
|
-
case "TransferObjects": {
|
|
433
|
-
return {
|
|
434
|
-
TransferObjects: {
|
|
435
|
-
objects: transaction.objects.map((arg) => parseV1TransactionArgument(arg)),
|
|
436
|
-
address: parseV1TransactionArgument(transaction.address),
|
|
437
|
-
},
|
|
438
|
-
};
|
|
439
|
-
}
|
|
440
|
-
case "Upgrade": {
|
|
441
|
-
return {
|
|
442
|
-
Upgrade: {
|
|
443
|
-
modules: transaction.modules.map((mod) => toBase64(Uint8Array.from(mod))),
|
|
444
|
-
dependencies: transaction.dependencies,
|
|
445
|
-
package: transaction.packageId,
|
|
446
|
-
ticket: parseV1TransactionArgument(transaction.ticket),
|
|
447
|
-
},
|
|
448
|
-
};
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
throw new Error(`Unknown transaction ${Object.keys(transaction)}`);
|
|
452
|
-
}),
|
|
453
|
-
});
|
|
454
|
-
}
|
|
455
|
-
function parseV1TransactionArgument(arg) {
|
|
456
|
-
switch (arg.kind) {
|
|
457
|
-
case "GasCoin": {
|
|
458
|
-
return { GasCoin: true };
|
|
459
|
-
}
|
|
460
|
-
case "Result":
|
|
461
|
-
return { Result: arg.index };
|
|
462
|
-
case "NestedResult": {
|
|
463
|
-
return { NestedResult: [arg.index, arg.resultIndex] };
|
|
464
|
-
}
|
|
465
|
-
case "Input": {
|
|
466
|
-
return { Input: arg.index };
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
}
|
|
1
|
+
import{fromBase64,toBase64}from'@mysten/bcs';import{array,bigint,boolean,check,integer,is,lazy,literal,nullable,nullish,number,object,optional,parse,pipe,string,union,unknown}from'valibot';import{TypeTagSerializer}from'../../bcs/index.js';import{JsonU64,ObjectID,safeEnum,TransactionDataSchema}from'./internal.js';export const ObjectRef=object({'digest':string(),'objectId':string(),'version':union([pipe(number(),integer()),string(),bigint()])});const ObjectArg=safeEnum({'ImmOrOwned':ObjectRef,'Shared':object({'objectId':ObjectID,'initialSharedVersion':JsonU64,'mutable':boolean()}),'Receiving':ObjectRef});export const NormalizedCallArg=safeEnum({'Object':ObjectArg,'Pure':array(pipe(number(),integer()))});const TransactionInput=union([object({'kind':literal('Input'),'index':pipe(number(),integer()),'value':unknown(),'type':optional(literal('object'))}),object({'kind':literal('Input'),'index':pipe(number(),integer()),'value':unknown(),'type':literal('pure')})]),TransactionExpiration=union([object({'Epoch':pipe(number(),integer())}),object({'None':nullable(literal(!![]))})]),StringEncodedBigint=pipe(union([number(),string(),bigint()]),check(a=>{if(!['string','number','bigint']['includes'](typeof a))return![];try{return BigInt(a),!![];}catch{return![];}}));export const TypeTag=union([object({'bool':nullable(literal(!![]))}),object({'u8':nullable(literal(!![]))}),object({'u64':nullable(literal(!![]))}),object({'u128':nullable(literal(!![]))}),object({'address':nullable(literal(!![]))}),object({'signer':nullable(literal(!![]))}),object({'vector':lazy(()=>TypeTag)}),object({'struct':lazy(()=>StructTag)}),object({'u16':nullable(literal(!![]))}),object({'u32':nullable(literal(!![]))}),object({'u256':nullable(literal(!![]))})]);export const StructTag=object({'address':string(),'module':string(),'name':string(),'typeParams':array(TypeTag)});const GasConfig=object({'budget':optional(StringEncodedBigint),'price':optional(StringEncodedBigint),'payment':optional(array(ObjectRef)),'owner':optional(string())}),TransactionArgumentTypes=[TransactionInput,object({'kind':literal('GasCoin')}),object({'kind':literal('Result'),'index':pipe(number(),integer())}),object({'kind':literal('NestedResult'),'index':pipe(number(),integer()),'resultIndex':pipe(number(),integer())})];export const TransactionArgument=union([...TransactionArgumentTypes]);const MoveCallTransaction=object({'kind':literal('MoveCall'),'target':pipe(string(),check(a=>a['split']('::')['length']===0x3)),'typeArguments':array(string()),'arguments':array(TransactionArgument)}),TransferObjectsTransaction=object({'kind':literal('TransferObjects'),'objects':array(TransactionArgument),'address':TransactionArgument}),SplitCoinsTransaction=object({'kind':literal('SplitCoins'),'coin':TransactionArgument,'amounts':array(TransactionArgument)}),MergeCoinsTransaction=object({'kind':literal('MergeCoins'),'destination':TransactionArgument,'sources':array(TransactionArgument)}),MakeMoveVecTransaction=object({'kind':literal('MakeMoveVec'),'type':union([object({'Some':TypeTag}),object({'None':nullable(literal(!![]))})]),'objects':array(TransactionArgument)}),PublishTransaction=object({'kind':literal('Publish'),'modules':array(array(pipe(number(),integer()))),'dependencies':array(string())}),UpgradeTransaction=object({'kind':literal('Upgrade'),'modules':array(array(pipe(number(),integer()))),'dependencies':array(string()),'packageId':string(),'ticket':TransactionArgument}),TransactionTypes=[MoveCallTransaction,TransferObjectsTransaction,SplitCoinsTransaction,MergeCoinsTransaction,PublishTransaction,UpgradeTransaction,MakeMoveVecTransaction],TransactionType=union([...TransactionTypes]);export const SerializedTransactionDataV1=object({'version':literal(0x1),'sender':optional(string()),'expiration':nullish(TransactionExpiration),'gasConfig':GasConfig,'inputs':array(TransactionInput),'transactions':array(TransactionType)});export function serializeV1TransactionData(a){const b=a['inputs']['map']((c,d)=>{if(c['Object'])return{'kind':'Input','index':d,'value':{'Object':c['Object']['ImmOrOwnedObject']?{'ImmOrOwned':c['Object']['ImmOrOwnedObject']}:c['Object']['Receiving']?{'Receiving':{'digest':c['Object']['Receiving']['digest'],'version':c['Object']['Receiving']['version'],'objectId':c['Object']['Receiving']['objectId']}}:{'Shared':{'mutable':c['Object']['SharedObject']['mutable'],'initialSharedVersion':c['Object']['SharedObject']['initialSharedVersion'],'objectId':c['Object']['SharedObject']['objectId']}}},'type':'object'};if(c['Pure'])return{'kind':'Input','index':d,'value':{'Pure':Array['from'](fromBase64(c['Pure']['bytes']))},'type':'pure'};if(c['UnresolvedPure'])return{'kind':'Input','type':'pure','index':d,'value':c['UnresolvedPure']['value']};if(c['UnresolvedObject'])return{'kind':'Input','type':'object','index':d,'value':c['UnresolvedObject']['objectId']};throw new Error('Invalid\x20input');});return{'version':0x1,'sender':a['sender']??undefined,'expiration':a['expiration']?.['$kind']==='Epoch'?{'Epoch':Number(a['expiration']['Epoch'])}:a['expiration']?{'None':!![]}:null,'gasConfig':{'owner':a['gasData']['owner']??undefined,'budget':a['gasData']['budget']??undefined,'price':a['gasData']['price']??undefined,'payment':a['gasData']['payment']??undefined},'inputs':b,'transactions':a['commands']['map'](c=>{if(c['MakeMoveVec'])return{'kind':'MakeMoveVec','type':c['MakeMoveVec']['type']===null?{'None':!![]}:{'Some':TypeTagSerializer['parseFromStr'](c['MakeMoveVec']['type'])},'objects':c['MakeMoveVec']['elements']['map'](d=>convertTransactionArgument(d,b))};if(c['MergeCoins'])return{'kind':'MergeCoins','destination':convertTransactionArgument(c['MergeCoins']['destination'],b),'sources':c['MergeCoins']['sources']['map'](d=>convertTransactionArgument(d,b))};if(c['MoveCall'])return{'kind':'MoveCall','target':c['MoveCall']['package']+'::'+c['MoveCall']['module']+'::'+c['MoveCall']['function'],'typeArguments':c['MoveCall']['typeArguments'],'arguments':c['MoveCall']['arguments']['map'](d=>convertTransactionArgument(d,b))};if(c['Publish'])return{'kind':'Publish','modules':c['Publish']['modules']['map'](d=>Array['from'](fromBase64(d))),'dependencies':c['Publish']['dependencies']};if(c['SplitCoins'])return{'kind':'SplitCoins','coin':convertTransactionArgument(c['SplitCoins']['coin'],b),'amounts':c['SplitCoins']['amounts']['map'](d=>convertTransactionArgument(d,b))};if(c['TransferObjects'])return{'kind':'TransferObjects','objects':c['TransferObjects']['objects']['map'](d=>convertTransactionArgument(d,b)),'address':convertTransactionArgument(c['TransferObjects']['address'],b)};if(c['Upgrade'])return{'kind':'Upgrade','modules':c['Upgrade']['modules']['map'](d=>Array['from'](fromBase64(d))),'dependencies':c['Upgrade']['dependencies'],'packageId':c['Upgrade']['package'],'ticket':convertTransactionArgument(c['Upgrade']['ticket'],b)};throw new Error('Unknown\x20transaction\x20'+Object['keys'](c));})};}function convertTransactionArgument(a,b){if(a['$kind']==='GasCoin')return{'kind':'GasCoin'};if(a['$kind']==='Result')return{'kind':'Result','index':a['Result']};if(a['$kind']==='NestedResult')return{'kind':'NestedResult','index':a['NestedResult'][0x0],'resultIndex':a['NestedResult'][0x1]};if(a['$kind']==='Input')return b[a['Input']];throw new Error('Invalid\x20argument\x20'+Object['keys'](a));}export function transactionDataFromV1(a){return parse(TransactionDataSchema,{'version':0x2,'sender':a['sender']??null,'expiration':a['expiration']?'Epoch'in a['expiration']?{'Epoch':a['expiration']['Epoch']}:{'None':!![]}:null,'gasData':{'owner':a['gasConfig']['owner']??null,'budget':a['gasConfig']['budget']?.['toString']()??null,'price':a['gasConfig']['price']?.['toString']()??null,'payment':a['gasConfig']['payment']?.['map'](b=>({'digest':b['digest'],'objectId':b['objectId'],'version':b['version']['toString']()}))??null},'inputs':a['inputs']['map'](b=>{if(b['kind']==='Input'){if(is(NormalizedCallArg,b['value'])){const c=parse(NormalizedCallArg,b['value']);if(c['Object']){if(c['Object']['ImmOrOwned'])return{'Object':{'ImmOrOwnedObject':{'objectId':c['Object']['ImmOrOwned']['objectId'],'version':String(c['Object']['ImmOrOwned']['version']),'digest':c['Object']['ImmOrOwned']['digest']}}};if(c['Object']['Shared'])return{'Object':{'SharedObject':{'mutable':c['Object']['Shared']['mutable']??null,'initialSharedVersion':c['Object']['Shared']['initialSharedVersion'],'objectId':c['Object']['Shared']['objectId']}}};if(c['Object']['Receiving'])return{'Object':{'Receiving':{'digest':c['Object']['Receiving']['digest'],'version':String(c['Object']['Receiving']['version']),'objectId':c['Object']['Receiving']['objectId']}}};throw new Error('Invalid\x20object\x20input');}return{'Pure':{'bytes':toBase64(new Uint8Array(c['Pure']))}};}if(b['type']==='object')return{'UnresolvedObject':{'objectId':b['value']}};return{'UnresolvedPure':{'value':b['value']}};}throw new Error('Invalid\x20input');}),'commands':a['transactions']['map'](b=>{switch(b['kind']){case'MakeMoveVec':return{'MakeMoveVec':{'type':'Some'in b['type']?TypeTagSerializer['tagToString'](b['type']['Some']):null,'elements':b['objects']['map'](c=>parseV1TransactionArgument(c))}};case'MergeCoins':{return{'MergeCoins':{'destination':parseV1TransactionArgument(b['destination']),'sources':b['sources']['map'](c=>parseV1TransactionArgument(c))}};}case'MoveCall':{const [c,d,e]=b['target']['split']('::');return{'MoveCall':{'package':c,'module':d,'function':e,'typeArguments':b['typeArguments'],'arguments':b['arguments']['map'](f=>parseV1TransactionArgument(f))}};}case'Publish':{return{'Publish':{'modules':b['modules']['map'](f=>toBase64(Uint8Array['from'](f))),'dependencies':b['dependencies']}};}case'SplitCoins':{return{'SplitCoins':{'coin':parseV1TransactionArgument(b['coin']),'amounts':b['amounts']['map'](f=>parseV1TransactionArgument(f))}};}case'TransferObjects':{return{'TransferObjects':{'objects':b['objects']['map'](f=>parseV1TransactionArgument(f)),'address':parseV1TransactionArgument(b['address'])}};}case'Upgrade':{return{'Upgrade':{'modules':b['modules']['map'](f=>toBase64(Uint8Array['from'](f))),'dependencies':b['dependencies'],'package':b['packageId'],'ticket':parseV1TransactionArgument(b['ticket'])}};}}throw new Error('Unknown\x20transaction\x20'+Object['keys'](b));})});}function parseV1TransactionArgument(a){switch(a['kind']){case'GasCoin':{return{'GasCoin':!![]};}case'Result':return{'Result':a['index']};case'NestedResult':{return{'NestedResult':[a['index'],a['resultIndex']]};}case'Input':{return{'Input':a['index']};}}}
|
|
@@ -1,97 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { BCSBytes, JsonU64, ObjectID, ObjectRefSchema, SuiAddress, } from "./internal.js";
|
|
3
|
-
function enumUnion(options) {
|
|
4
|
-
return union(Object.entries(options).map(([key, value]) => object({ [key]: value })));
|
|
5
|
-
}
|
|
6
|
-
const Argument = enumUnion({
|
|
7
|
-
GasCoin: literal(true),
|
|
8
|
-
Input: pipe(number(), integer()),
|
|
9
|
-
Result: pipe(number(), integer()),
|
|
10
|
-
NestedResult: tuple([pipe(number(), integer()), pipe(number(), integer())]),
|
|
11
|
-
});
|
|
12
|
-
const GasData = object({
|
|
13
|
-
budget: nullable(JsonU64),
|
|
14
|
-
price: nullable(JsonU64),
|
|
15
|
-
owner: nullable(SuiAddress),
|
|
16
|
-
payment: nullable(array(ObjectRefSchema)),
|
|
17
|
-
});
|
|
18
|
-
const ProgrammableMoveCall = object({
|
|
19
|
-
package: ObjectID,
|
|
20
|
-
module: string(),
|
|
21
|
-
function: string(),
|
|
22
|
-
typeArguments: array(string()),
|
|
23
|
-
arguments: array(Argument),
|
|
24
|
-
});
|
|
25
|
-
const $Intent = object({
|
|
26
|
-
name: string(),
|
|
27
|
-
inputs: record(string(), union([Argument, array(Argument)])),
|
|
28
|
-
data: record(string(), unknown()),
|
|
29
|
-
});
|
|
30
|
-
const Command = enumUnion({
|
|
31
|
-
MoveCall: ProgrammableMoveCall,
|
|
32
|
-
TransferObjects: object({
|
|
33
|
-
objects: array(Argument),
|
|
34
|
-
address: Argument,
|
|
35
|
-
}),
|
|
36
|
-
SplitCoins: object({
|
|
37
|
-
coin: Argument,
|
|
38
|
-
amounts: array(Argument),
|
|
39
|
-
}),
|
|
40
|
-
MergeCoins: object({
|
|
41
|
-
destination: Argument,
|
|
42
|
-
sources: array(Argument),
|
|
43
|
-
}),
|
|
44
|
-
Publish: object({
|
|
45
|
-
modules: array(BCSBytes),
|
|
46
|
-
dependencies: array(ObjectID),
|
|
47
|
-
}),
|
|
48
|
-
MakeMoveVec: object({
|
|
49
|
-
type: nullable(string()),
|
|
50
|
-
elements: array(Argument),
|
|
51
|
-
}),
|
|
52
|
-
Upgrade: object({
|
|
53
|
-
modules: array(BCSBytes),
|
|
54
|
-
dependencies: array(ObjectID),
|
|
55
|
-
package: ObjectID,
|
|
56
|
-
ticket: Argument,
|
|
57
|
-
}),
|
|
58
|
-
$Intent,
|
|
59
|
-
});
|
|
60
|
-
const ObjectArg = enumUnion({
|
|
61
|
-
ImmOrOwnedObject: ObjectRefSchema,
|
|
62
|
-
SharedObject: object({
|
|
63
|
-
objectId: ObjectID,
|
|
64
|
-
initialSharedVersion: JsonU64,
|
|
65
|
-
mutable: boolean(),
|
|
66
|
-
}),
|
|
67
|
-
Receiving: ObjectRefSchema,
|
|
68
|
-
});
|
|
69
|
-
const CallArg = enumUnion({
|
|
70
|
-
Object: ObjectArg,
|
|
71
|
-
Pure: object({
|
|
72
|
-
bytes: BCSBytes,
|
|
73
|
-
}),
|
|
74
|
-
UnresolvedPure: object({
|
|
75
|
-
value: unknown(),
|
|
76
|
-
}),
|
|
77
|
-
UnresolvedObject: object({
|
|
78
|
-
objectId: ObjectID,
|
|
79
|
-
version: optional(nullable(JsonU64)),
|
|
80
|
-
digest: optional(nullable(string())),
|
|
81
|
-
initialSharedVersion: optional(nullable(JsonU64)),
|
|
82
|
-
mutable: optional(nullable(boolean())),
|
|
83
|
-
}),
|
|
84
|
-
});
|
|
85
|
-
const TransactionExpiration = enumUnion({
|
|
86
|
-
None: literal(true),
|
|
87
|
-
Epoch: JsonU64,
|
|
88
|
-
});
|
|
89
|
-
export const SerializedTransactionDataV2Schema = object({
|
|
90
|
-
version: literal(2),
|
|
91
|
-
sender: nullish(SuiAddress),
|
|
92
|
-
expiration: nullish(TransactionExpiration),
|
|
93
|
-
gasData: GasData,
|
|
94
|
-
inputs: array(CallArg),
|
|
95
|
-
commands: array(Command),
|
|
96
|
-
digest: optional(nullable(string())),
|
|
97
|
-
});
|
|
1
|
+
import{array,boolean,integer,literal,nullable,nullish,number,object,optional,pipe,record,string,tuple,union,unknown}from'valibot';import{BCSBytes,JsonU64,ObjectID,ObjectRefSchema,SuiAddress}from'./internal.js';function enumUnion(a){return union(Object['entries'](a)['map'](([b,c])=>object({[b]:c})));}const Argument=enumUnion({'GasCoin':literal(!![]),'Input':pipe(number(),integer()),'Result':pipe(number(),integer()),'NestedResult':tuple([pipe(number(),integer()),pipe(number(),integer())])}),GasData=object({'budget':nullable(JsonU64),'price':nullable(JsonU64),'owner':nullable(SuiAddress),'payment':nullable(array(ObjectRefSchema))}),ProgrammableMoveCall=object({'package':ObjectID,'module':string(),'function':string(),'typeArguments':array(string()),'arguments':array(Argument)}),$Intent=object({'name':string(),'inputs':record(string(),union([Argument,array(Argument)])),'data':record(string(),unknown())}),Command=enumUnion({'MoveCall':ProgrammableMoveCall,'TransferObjects':object({'objects':array(Argument),'address':Argument}),'SplitCoins':object({'coin':Argument,'amounts':array(Argument)}),'MergeCoins':object({'destination':Argument,'sources':array(Argument)}),'Publish':object({'modules':array(BCSBytes),'dependencies':array(ObjectID)}),'MakeMoveVec':object({'type':nullable(string()),'elements':array(Argument)}),'Upgrade':object({'modules':array(BCSBytes),'dependencies':array(ObjectID),'package':ObjectID,'ticket':Argument}),'$Intent':$Intent}),ObjectArg=enumUnion({'ImmOrOwnedObject':ObjectRefSchema,'SharedObject':object({'objectId':ObjectID,'initialSharedVersion':JsonU64,'mutable':boolean()}),'Receiving':ObjectRefSchema}),CallArg=enumUnion({'Object':ObjectArg,'Pure':object({'bytes':BCSBytes}),'UnresolvedPure':object({'value':unknown()}),'UnresolvedObject':object({'objectId':ObjectID,'version':optional(nullable(JsonU64)),'digest':optional(nullable(string())),'initialSharedVersion':optional(nullable(JsonU64)),'mutable':optional(nullable(boolean()))})}),TransactionExpiration=enumUnion({'None':literal(!![]),'Epoch':JsonU64});export const SerializedTransactionDataV2Schema=object({'version':literal(0x2),'sender':nullish(SuiAddress),'expiration':nullish(TransactionExpiration),'gasData':GasData,'inputs':array(CallArg),'commands':array(Command),'digest':optional(nullable(string()))});
|
|
@@ -1,65 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ObjectCache } from "../ObjectCache.js";
|
|
3
|
-
import { isTransaction } from "../Transaction.js";
|
|
4
|
-
export class CachingTransactionExecutor {
|
|
5
|
-
#client;
|
|
6
|
-
#lastDigest = null;
|
|
7
|
-
cache;
|
|
8
|
-
constructor({ client, ...options }) {
|
|
9
|
-
this.#client = client;
|
|
10
|
-
this.cache = new ObjectCache(options);
|
|
11
|
-
}
|
|
12
|
-
async reset() {
|
|
13
|
-
await Promise.all([
|
|
14
|
-
this.cache.clearOwnedObjects(),
|
|
15
|
-
this.cache.clearCustom(),
|
|
16
|
-
this.waitForLastTransaction(),
|
|
17
|
-
]);
|
|
18
|
-
}
|
|
19
|
-
async buildTransaction({ transaction, ...options }) {
|
|
20
|
-
transaction.addBuildPlugin(this.cache.asPlugin());
|
|
21
|
-
return transaction.build({
|
|
22
|
-
client: this.#client,
|
|
23
|
-
...options,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
async executeTransaction({ transaction, options, ...input }) {
|
|
27
|
-
const bytes = isTransaction(transaction)
|
|
28
|
-
? await this.buildTransaction({ transaction })
|
|
29
|
-
: transaction;
|
|
30
|
-
const results = await this.#client.executeTransactionBlock({
|
|
31
|
-
...input,
|
|
32
|
-
transactionBlock: bytes,
|
|
33
|
-
options: {
|
|
34
|
-
...options,
|
|
35
|
-
showRawEffects: true,
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
if (results.rawEffects) {
|
|
39
|
-
const effects = bcs.TransactionEffects.parse(Uint8Array.from(results.rawEffects));
|
|
40
|
-
await this.applyEffects(effects);
|
|
41
|
-
}
|
|
42
|
-
return results;
|
|
43
|
-
}
|
|
44
|
-
async signAndExecuteTransaction({ options, transaction, ...input }) {
|
|
45
|
-
transaction.setSenderIfNotSet(input.signer.toWAddress());
|
|
46
|
-
const bytes = await this.buildTransaction({ transaction });
|
|
47
|
-
const { signature } = await input.signer.signTransaction(bytes);
|
|
48
|
-
const results = await this.executeTransaction({
|
|
49
|
-
transaction: bytes,
|
|
50
|
-
signature,
|
|
51
|
-
options,
|
|
52
|
-
});
|
|
53
|
-
return results;
|
|
54
|
-
}
|
|
55
|
-
async applyEffects(effects) {
|
|
56
|
-
this.#lastDigest = effects.V2?.transactionDigest ?? null;
|
|
57
|
-
await this.cache.applyEffects(effects);
|
|
58
|
-
}
|
|
59
|
-
async waitForLastTransaction() {
|
|
60
|
-
if (this.#lastDigest) {
|
|
61
|
-
await this.#client.waitForTransaction({ digest: this.#lastDigest });
|
|
62
|
-
this.#lastDigest = null;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
1
|
+
import{bcs}from'../../bcs/index.js';import{ObjectCache}from'../ObjectCache.js';import{isTransaction}from'../Transaction.js';export class CachingTransactionExecutor{#client;#lastDigest=null;['cache'];constructor({client:a,...b}){this.#client=a,this['cache']=new ObjectCache(b);}async['reset'](){await Promise['all']([this['cache']['clearOwnedObjects'](),this['cache']['clearCustom'](),this['waitForLastTransaction']()]);}async['buildTransaction']({transaction:a,...b}){return a['addBuildPlugin'](this['cache']['asPlugin']()),a['build']({'client':this.#client,...b});}async['executeTransaction']({transaction:a,options:b,...c}){const d=isTransaction(a)?await this['buildTransaction']({'transaction':a}):a,e=await this.#client['executeTransactionBlock']({...c,'transactionBlock':d,'options':{...b,'showRawEffects':!![]}});if(e['rawEffects']){const f=bcs['TransactionEffects']['parse'](Uint8Array['from'](e['rawEffects']));await this['applyEffects'](f);}return e;}async['signAndExecuteTransaction']({options:a,transaction:b,...c}){b['setSenderIfNotSet'](c['signer']['toWAddress']());const d=await this['buildTransaction']({'transaction':b}),{signature:e}=await c['signer']['signTransaction'](d),f=await this['executeTransaction']({'transaction':d,'signature':e,'options':a});return f;}async['applyEffects'](a){this.#lastDigest=a['V2']?.['transactionDigest']??null,await this['cache']['applyEffects'](a);}async['waitForLastTransaction'](){this.#lastDigest&&(await this.#client['waitForTransaction']({'digest':this.#lastDigest}),this.#lastDigest=null);}}
|