wowok 2.1.10 → 2.1.13
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.d.ts +199 -199
- package/dist/cjs/bcs/bcs.js +273 -318
- package/dist/cjs/bcs/bcs.js.map +1 -0
- package/dist/cjs/bcs/effects.d.ts +109 -109
- package/dist/cjs/bcs/effects.js +205 -230
- package/dist/cjs/bcs/effects.js.map +1 -0
- package/dist/cjs/bcs/index.d.ts +1 -2584
- package/dist/cjs/bcs/index.js +61 -76
- package/dist/cjs/bcs/index.js.map +1 -0
- package/dist/cjs/bcs/pure.js +38 -58
- package/dist/cjs/bcs/pure.js.map +1 -0
- package/dist/cjs/bcs/type-tag-serializer.js +102 -114
- package/dist/cjs/bcs/type-tag-serializer.js.map +1 -0
- package/dist/cjs/bcs/types.js +6 -23
- package/dist/cjs/bcs/types.js.map +1 -0
- package/dist/cjs/client/index.js +17 -33
- package/dist/cjs/client/index.js.map +1 -0
- package/dist/cjs/client/network.js +25 -40
- package/dist/cjs/client/network.js.map +1 -0
- package/dist/cjs/cryptography/index.js +29 -45
- package/dist/cjs/cryptography/index.js.map +1 -0
- package/dist/cjs/cryptography/intent.d.ts +1 -1
- package/dist/cjs/cryptography/intent.js +20 -31
- package/dist/cjs/cryptography/intent.js.map +1 -0
- package/dist/cjs/cryptography/keypair.js +102 -116
- package/dist/cjs/cryptography/keypair.js.map +1 -0
- package/dist/cjs/cryptography/mnemonics.js +43 -41
- package/dist/cjs/cryptography/mnemonics.js.map +1 -0
- package/dist/cjs/cryptography/publickey.js +112 -134
- package/dist/cjs/cryptography/publickey.js.map +1 -0
- package/dist/cjs/cryptography/signature-scheme.js +24 -43
- package/dist/cjs/cryptography/signature-scheme.js.map +1 -0
- package/dist/cjs/cryptography/signature.d.ts +2 -24
- package/dist/cjs/cryptography/signature.js +50 -67
- package/dist/cjs/cryptography/signature.js.map +1 -0
- package/dist/cjs/experimental/cache.js +65 -0
- package/dist/cjs/experimental/cache.js.map +1 -0
- package/dist/cjs/experimental/client.js +27 -0
- package/dist/cjs/experimental/client.js.map +1 -0
- package/dist/cjs/experimental/core.js +89 -0
- package/dist/cjs/experimental/core.js.map +1 -0
- package/dist/cjs/experimental/errors.js +32 -0
- package/dist/cjs/experimental/errors.js.map +1 -0
- package/dist/cjs/experimental/index.js +15 -0
- package/dist/cjs/experimental/index.js.map +1 -0
- package/dist/cjs/experimental/persistent-storage.js +343 -0
- package/dist/cjs/experimental/persistent-storage.js.map +1 -0
- package/dist/cjs/experimental/persistent-storage.test.js +200 -0
- package/dist/cjs/experimental/persistent-storage.test.js.map +1 -0
- package/dist/cjs/experimental/transports/utils.js +104 -0
- package/dist/cjs/experimental/transports/utils.js.map +1 -0
- package/dist/cjs/experimental/types.js +6 -0
- package/dist/cjs/experimental/types.js.map +1 -0
- package/dist/cjs/faucet/faucet.js +106 -124
- package/dist/cjs/faucet/faucet.js.map +1 -0
- package/dist/cjs/faucet/index.js +12 -28
- package/dist/cjs/faucet/index.js.map +1 -0
- package/dist/cjs/grpc/client.js +47 -62
- package/dist/cjs/grpc/client.js.map +1 -0
- package/dist/cjs/grpc/core.js +580 -617
- package/dist/cjs/grpc/core.js.map +1 -0
- package/dist/cjs/grpc/index.js +9 -25
- package/dist/cjs/grpc/index.js.map +1 -0
- package/dist/cjs/grpc/proto/google/protobuf/any.js +168 -135
- package/dist/cjs/grpc/proto/google/protobuf/any.js.map +1 -0
- package/dist/cjs/grpc/proto/google/protobuf/duration.js +105 -90
- package/dist/cjs/grpc/proto/google/protobuf/duration.js.map +1 -0
- package/dist/cjs/grpc/proto/google/protobuf/empty.js +50 -28
- package/dist/cjs/grpc/proto/google/protobuf/empty.js.map +1 -0
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +96 -75
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.js.map +1 -0
- package/dist/cjs/grpc/proto/google/protobuf/struct.js +266 -215
- package/dist/cjs/grpc/proto/google/protobuf/struct.js.map +1 -0
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +150 -131
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.js.map +1 -0
- package/dist/cjs/grpc/proto/google/rpc/error_details.js +331 -302
- package/dist/cjs/grpc/proto/google/rpc/error_details.js.map +1 -0
- package/dist/cjs/grpc/proto/google/rpc/status.js +50 -50
- package/dist/cjs/grpc/proto/google/rpc/status.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +84 -68
- package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +45 -50
- package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +38 -43
- package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +70 -75
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +79 -81
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +183 -166
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +369 -296
- package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +80 -85
- package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +31 -28
- package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +81 -83
- package/dist/cjs/grpc/proto/sui/rpc/v2/event.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +80 -85
- package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +876 -506
- package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +56 -61
- package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +103 -83
- package/dist/cjs/grpc/proto/sui/rpc/v2/input.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +76 -78
- package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +69 -119
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +392 -350
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +599 -473
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +46 -78
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +242 -224
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +32 -52
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +139 -134
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +109 -111
- package/dist/cjs/grpc/proto/sui/rpc/v2/object.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +46 -51
- package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +76 -61
- package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +46 -59
- package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +568 -522
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +54 -32
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +27 -47
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +83 -86
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +53 -85
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +645 -529
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +37 -51
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +58 -61
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +749 -730
- package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1218 -975
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +32 -46
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -0
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +186 -167
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -0
- package/dist/cjs/index.js +96 -91
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/jsonRpc/client.js +654 -743
- package/dist/cjs/jsonRpc/client.js.map +1 -0
- package/dist/cjs/jsonRpc/core.d.ts +7 -7
- package/dist/cjs/jsonRpc/core.js +562 -606
- package/dist/cjs/jsonRpc/core.js.map +1 -0
- package/dist/cjs/jsonRpc/errors.js +38 -56
- package/dist/cjs/jsonRpc/errors.js.map +1 -0
- package/dist/cjs/jsonRpc/http-transport.js +70 -114
- package/dist/cjs/jsonRpc/http-transport.js.map +1 -0
- package/dist/cjs/jsonRpc/index.js +14 -30
- package/dist/cjs/jsonRpc/index.js.map +1 -0
- package/dist/cjs/jsonRpc/json-rpc-resolver.js +286 -290
- package/dist/cjs/jsonRpc/json-rpc-resolver.js.map +1 -0
- package/dist/cjs/jsonRpc/rpc-websocket-client.js +150 -207
- package/dist/cjs/jsonRpc/rpc-websocket-client.js.map +1 -0
- package/dist/cjs/jsonRpc/types/chain.js +4 -15
- package/dist/cjs/jsonRpc/types/chain.js.map +1 -0
- package/dist/cjs/jsonRpc/types/changes.js +4 -15
- package/dist/cjs/jsonRpc/types/changes.js.map +1 -0
- package/dist/cjs/jsonRpc/types/coins.js +4 -15
- package/dist/cjs/jsonRpc/types/coins.js.map +1 -0
- package/dist/cjs/jsonRpc/types/common.js +4 -15
- package/dist/cjs/jsonRpc/types/common.js.map +1 -0
- package/dist/cjs/jsonRpc/types/generated.d.ts +1 -1
- package/dist/cjs/jsonRpc/types/generated.js +4 -15
- package/dist/cjs/jsonRpc/types/generated.js.map +1 -0
- package/dist/cjs/jsonRpc/types/index.js +4 -15
- package/dist/cjs/jsonRpc/types/index.js.map +1 -0
- package/dist/cjs/jsonRpc/types/params.js +4 -15
- package/dist/cjs/jsonRpc/types/params.js.map +1 -0
- package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +54 -69
- package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js.map +1 -0
- package/dist/cjs/keypairs/ed25519/index.js +10 -26
- package/dist/cjs/keypairs/ed25519/index.js.map +1 -0
- package/dist/cjs/keypairs/ed25519/keypair.js +134 -159
- package/dist/cjs/keypairs/ed25519/keypair.js.map +1 -0
- package/dist/cjs/keypairs/ed25519/publickey.js +70 -84
- package/dist/cjs/keypairs/ed25519/publickey.js.map +1 -0
- package/dist/cjs/keypairs/index.js +21 -19
- package/dist/cjs/keypairs/index.js.map +1 -0
- package/dist/cjs/keypairs/passkey/index.js +11 -27
- package/dist/cjs/keypairs/passkey/index.js.map +1 -0
- package/dist/cjs/keypairs/passkey/keypair.js +245 -256
- package/dist/cjs/keypairs/passkey/keypair.js.map +1 -0
- package/dist/cjs/keypairs/passkey/publickey.js +163 -162
- package/dist/cjs/keypairs/passkey/publickey.js.map +1 -0
- package/dist/cjs/keypairs/passkey/types.js +4 -15
- package/dist/cjs/keypairs/passkey/types.js.map +1 -0
- package/dist/cjs/keypairs/secp256k1/index.js +10 -26
- package/dist/cjs/keypairs/secp256k1/index.js.map +1 -0
- package/dist/cjs/keypairs/secp256k1/keypair.js +129 -151
- package/dist/cjs/keypairs/secp256k1/keypair.js.map +1 -0
- package/dist/cjs/keypairs/secp256k1/publickey.js +71 -89
- package/dist/cjs/keypairs/secp256k1/publickey.js.map +1 -0
- package/dist/cjs/keypairs/secp256r1/index.js +10 -26
- package/dist/cjs/keypairs/secp256r1/index.js.map +1 -0
- package/dist/cjs/keypairs/secp256r1/keypair.js +127 -148
- package/dist/cjs/keypairs/secp256r1/keypair.js.map +1 -0
- package/dist/cjs/keypairs/secp256r1/publickey.js +72 -90
- package/dist/cjs/keypairs/secp256r1/publickey.js.map +1 -0
- package/dist/cjs/multisig/index.js +10 -26
- package/dist/cjs/multisig/index.js.map +1 -0
- package/dist/cjs/multisig/publickey.d.ts +1 -1
- package/dist/cjs/multisig/publickey.js +228 -276
- package/dist/cjs/multisig/publickey.js.map +1 -0
- package/dist/cjs/multisig/signer.js +62 -110
- package/dist/cjs/multisig/signer.js.map +1 -0
- package/dist/cjs/transactions/Arguments.d.ts +4 -4
- package/dist/cjs/transactions/Arguments.js +13 -34
- package/dist/cjs/transactions/Arguments.js.map +1 -0
- package/dist/cjs/transactions/Commands.js +111 -141
- package/dist/cjs/transactions/Commands.js.map +1 -0
- package/dist/cjs/transactions/Inputs.js +53 -82
- package/dist/cjs/transactions/Inputs.js.map +1 -0
- package/dist/cjs/transactions/ObjectCache.d.ts +8 -8
- package/dist/cjs/transactions/ObjectCache.js +204 -241
- package/dist/cjs/transactions/ObjectCache.js.map +1 -0
- package/dist/cjs/transactions/Transaction.d.ts +31 -31
- package/dist/cjs/transactions/Transaction.js +628 -719
- package/dist/cjs/transactions/Transaction.js.map +1 -0
- package/dist/cjs/transactions/TransactionData.d.ts +9 -9
- package/dist/cjs/transactions/TransactionData.js +396 -440
- package/dist/cjs/transactions/TransactionData.js.map +1 -0
- package/dist/cjs/transactions/__tests__/Transaction.test.js +169 -0
- package/dist/cjs/transactions/__tests__/Transaction.test.js.map +1 -0
- package/dist/cjs/transactions/__tests__/bcs.test.js +202 -0
- package/dist/cjs/transactions/__tests__/bcs.test.js.map +1 -0
- package/dist/cjs/transactions/data/internal.js +166 -207
- package/dist/cjs/transactions/data/internal.js.map +1 -0
- package/dist/cjs/transactions/data/v1.js +436 -495
- package/dist/cjs/transactions/data/v1.js.map +1 -0
- package/dist/cjs/transactions/data/v2.d.ts +5 -5
- package/dist/cjs/transactions/data/v2.js +94 -107
- package/dist/cjs/transactions/data/v2.js.map +1 -0
- package/dist/cjs/transactions/executor/caching.js +71 -113
- package/dist/cjs/transactions/executor/caching.js.map +1 -0
- package/dist/cjs/transactions/executor/parallel.js +339 -378
- package/dist/cjs/transactions/executor/parallel.js.map +1 -0
- package/dist/cjs/transactions/executor/queue.js +60 -80
- package/dist/cjs/transactions/executor/queue.js.map +1 -0
- package/dist/cjs/transactions/executor/serial.d.ts +4 -4
- package/dist/cjs/transactions/executor/serial.js +102 -131
- package/dist/cjs/transactions/executor/serial.js.map +1 -0
- package/dist/cjs/transactions/hash.js +17 -28
- package/dist/cjs/transactions/hash.js.map +1 -0
- package/dist/cjs/transactions/index.js +33 -49
- package/dist/cjs/transactions/index.js.map +1 -0
- package/dist/cjs/transactions/intents/CoinWithBalance.js +137 -191
- package/dist/cjs/transactions/intents/CoinWithBalance.js.map +1 -0
- package/dist/cjs/transactions/object.js +88 -111
- package/dist/cjs/transactions/object.js.map +1 -0
- package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +20 -32
- package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js.map +1 -0
- package/dist/cjs/transactions/pure.js +38 -60
- package/dist/cjs/transactions/pure.js.map +1 -0
- package/dist/cjs/transactions/resolve.js +62 -88
- package/dist/cjs/transactions/resolve.js.map +1 -0
- package/dist/cjs/transactions/serializer.js +150 -163
- package/dist/cjs/transactions/serializer.js.map +1 -0
- package/dist/cjs/transactions/utils.d.ts +1 -1
- package/dist/cjs/transactions/utils.js +114 -125
- package/dist/cjs/transactions/utils.js.map +1 -0
- package/dist/cjs/utils/constants.js +29 -56
- package/dist/cjs/utils/constants.js.map +1 -0
- package/dist/cjs/utils/derived-objects.js +14 -30
- package/dist/cjs/utils/derived-objects.js.map +1 -0
- package/dist/cjs/utils/dynamic-fields.js +20 -37
- package/dist/cjs/utils/dynamic-fields.js.map +1 -0
- package/dist/cjs/utils/format.js +14 -30
- package/dist/cjs/utils/format.js.map +1 -0
- package/dist/cjs/utils/index.js +50 -64
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/move-registry.js +37 -35
- package/dist/cjs/utils/move-registry.js.map +1 -0
- package/dist/cjs/utils/sui-types.js +74 -68
- package/dist/cjs/utils/sui-types.js.map +1 -0
- package/dist/cjs/utils/suins.js +30 -46
- package/dist/cjs/utils/suins.js.map +1 -0
- package/dist/cjs/verify/index.js +12 -27
- package/dist/cjs/verify/index.js.map +1 -0
- package/dist/cjs/verify/verify.js +83 -110
- package/dist/cjs/verify/verify.js.map +1 -0
- package/dist/cjs/version.js +8 -25
- package/dist/cjs/version.js.map +1 -0
- package/dist/cjs/w/call/allocation.js +323 -413
- package/dist/cjs/w/call/allocation.js.map +1 -0
- package/dist/cjs/w/call/arb.js +105 -136
- package/dist/cjs/w/call/arb.js.map +1 -0
- package/dist/cjs/w/call/arbitration.js +1206 -1581
- package/dist/cjs/w/call/arbitration.js.map +1 -0
- package/dist/cjs/w/call/base.js +303 -333
- package/dist/cjs/w/call/base.js.map +1 -0
- package/dist/cjs/w/call/contact.js +335 -452
- package/dist/cjs/w/call/contact.js.map +1 -0
- package/dist/cjs/w/call/demand.js +690 -844
- package/dist/cjs/w/call/demand.js.map +1 -0
- package/dist/cjs/w/call/entity.js +167 -201
- package/dist/cjs/w/call/entity.js.map +1 -0
- package/dist/cjs/w/call/guard-ins.js +4376 -4389
- package/dist/cjs/w/call/guard-ins.js.map +1 -0
- package/dist/cjs/w/call/guard.js +1078 -1112
- package/dist/cjs/w/call/guard.js.map +1 -0
- package/dist/cjs/w/call/index.js +69 -70
- package/dist/cjs/w/call/index.js.map +1 -0
- package/dist/cjs/w/call/machine.js +1105 -1419
- package/dist/cjs/w/call/machine.js.map +1 -0
- package/dist/cjs/w/call/order.js +314 -454
- package/dist/cjs/w/call/order.js.map +1 -0
- package/dist/cjs/w/call/passport.js +214 -253
- package/dist/cjs/w/call/passport.js.map +1 -0
- package/dist/cjs/w/call/payment.js +187 -224
- package/dist/cjs/w/call/payment.js.map +1 -0
- package/dist/cjs/w/call/permission.js +1183 -1294
- package/dist/cjs/w/call/permission.js.map +1 -0
- package/dist/cjs/w/call/personal.js +132 -170
- package/dist/cjs/w/call/personal.js.map +1 -0
- package/dist/cjs/w/call/progress.js +634 -794
- package/dist/cjs/w/call/progress.js.map +1 -0
- package/dist/cjs/w/call/proof.js +67 -116
- package/dist/cjs/w/call/proof.js.map +1 -0
- package/dist/cjs/w/call/repository.js +1037 -1251
- package/dist/cjs/w/call/repository.js.map +1 -0
- package/dist/cjs/w/call/resource.js +111 -131
- package/dist/cjs/w/call/resource.js.map +1 -0
- package/dist/cjs/w/call/reward.js +675 -853
- package/dist/cjs/w/call/reward.js.map +1 -0
- package/dist/cjs/w/call/service.js +1879 -2385
- package/dist/cjs/w/call/service.js.map +1 -0
- package/dist/cjs/w/call/treasury.js +841 -1138
- package/dist/cjs/w/call/treasury.js.map +1 -0
- package/dist/cjs/w/call/util.js +593 -624
- package/dist/cjs/w/call/util.js.map +1 -0
- package/dist/cjs/w/common.d.ts +1 -1
- package/dist/cjs/w/common.js +548 -518
- package/dist/cjs/w/common.js.map +1 -0
- package/dist/cjs/w/exception.js +574 -584
- package/dist/cjs/w/exception.js.map +1 -0
- package/dist/cjs/w/index.js +26 -23
- package/dist/cjs/w/index.js.map +1 -0
- package/dist/cjs/w/local/account.js +664 -741
- package/dist/cjs/w/local/account.js.map +1 -0
- package/dist/cjs/w/local/cache.js +180 -166
- package/dist/cjs/w/local/cache.js.map +1 -0
- package/dist/cjs/w/local/config.js +51 -80
- package/dist/cjs/w/local/config.js.map +1 -0
- package/dist/cjs/w/local/index.js +225 -290
- package/dist/cjs/w/local/index.js.map +1 -0
- package/dist/cjs/w/local/local.d.ts +2 -2
- package/dist/cjs/w/local/local.js +638 -646
- package/dist/cjs/w/local/local.js.map +1 -0
- package/dist/cjs/w/local/storage.js +210 -164
- package/dist/cjs/w/local/storage.js.map +1 -0
- package/dist/cjs/w/local/token.js +158 -175
- package/dist/cjs/w/local/token.js.map +1 -0
- package/dist/cjs/w/local/util.js +80 -51
- package/dist/cjs/w/local/util.js.map +1 -0
- package/dist/cjs/w/local/wip.js +1078 -802
- package/dist/cjs/w/local/wip.js.map +1 -0
- package/dist/cjs/w/messenger/crypto.js +496 -389
- package/dist/cjs/w/messenger/crypto.js.map +1 -0
- package/dist/cjs/w/messenger/index.js +53 -35
- package/dist/cjs/w/messenger/index.js.map +1 -0
- package/dist/cjs/w/messenger/messenger-api.js +1159 -1035
- package/dist/cjs/w/messenger/messenger-api.js.map +1 -0
- package/dist/cjs/w/messenger/messenger-manager.js +954 -1083
- package/dist/cjs/w/messenger/messenger-manager.js.map +1 -0
- package/dist/cjs/w/messenger/messenger.d.ts +1 -1
- package/dist/cjs/w/messenger/messenger.js +1304 -1450
- package/dist/cjs/w/messenger/messenger.js.map +1 -0
- package/dist/cjs/w/messenger/server.js +390 -512
- package/dist/cjs/w/messenger/server.js.map +1 -0
- package/dist/cjs/w/messenger/session.js +399 -403
- package/dist/cjs/w/messenger/session.js.map +1 -0
- package/dist/cjs/w/messenger/storage.js +881 -777
- package/dist/cjs/w/messenger/storage.js.map +1 -0
- package/dist/cjs/w/messenger/types.d.ts +2 -2
- package/dist/cjs/w/messenger/types.js +83 -103
- package/dist/cjs/w/messenger/types.js.map +1 -0
- package/dist/cjs/w/messenger/utils.js +29 -34
- package/dist/cjs/w/messenger/utils.js.map +1 -0
- package/dist/cjs/w/query/bult-in.js +101 -110
- package/dist/cjs/w/query/bult-in.js.map +1 -0
- package/dist/cjs/w/query/event.js +134 -146
- package/dist/cjs/w/query/event.js.map +1 -0
- package/dist/cjs/w/query/index.js +22 -20
- package/dist/cjs/w/query/index.js.map +1 -0
- package/dist/cjs/w/query/object.js +1576 -1576
- package/dist/cjs/w/query/object.js.map +1 -0
- package/dist/cjs/w/query/received.js +66 -88
- package/dist/cjs/w/query/received.js.map +1 -0
- package/dist/cjs/w/query/util.js +53 -77
- package/dist/cjs/w/query/util.js.map +1 -0
- package/dist/cjs/w/util.js +589 -675
- package/dist/cjs/w/util.js.map +1 -0
- package/dist/esm/bcs/bcs.d.ts +199 -199
- package/dist/esm/bcs/bcs.js +269 -310
- package/dist/esm/bcs/bcs.js.map +1 -0
- package/dist/esm/bcs/effects.d.ts +109 -109
- package/dist/esm/bcs/effects.js +171 -179
- package/dist/esm/bcs/effects.js.map +1 -0
- package/dist/esm/bcs/index.d.ts +1 -2584
- package/dist/esm/bcs/index.js +51 -94
- package/dist/esm/bcs/index.js.map +1 -0
- package/dist/esm/bcs/pure.js +35 -38
- package/dist/esm/bcs/pure.js.map +1 -0
- package/dist/esm/bcs/type-tag-serializer.js +98 -95
- package/dist/esm/bcs/type-tag-serializer.js.map +1 -0
- package/dist/esm/bcs/types.js +5 -5
- package/dist/esm/bcs/types.js.map +1 -0
- package/dist/esm/client/index.js +7 -23
- package/dist/esm/client/index.js.map +1 -0
- package/dist/esm/client/network.js +23 -22
- package/dist/esm/client/network.js.map +1 -0
- package/dist/esm/cryptography/index.js +9 -46
- package/dist/esm/cryptography/index.js.map +1 -0
- package/dist/esm/cryptography/intent.d.ts +1 -1
- package/dist/esm/cryptography/intent.js +18 -12
- package/dist/esm/cryptography/intent.js.map +1 -0
- package/dist/esm/cryptography/keypair.js +95 -99
- package/dist/esm/cryptography/keypair.js.map +1 -0
- package/dist/esm/cryptography/mnemonics.js +40 -24
- package/dist/esm/cryptography/mnemonics.js.map +1 -0
- package/dist/esm/cryptography/publickey.js +104 -115
- package/dist/esm/cryptography/publickey.js.map +1 -0
- package/dist/esm/cryptography/signature-scheme.js +22 -24
- package/dist/esm/cryptography/signature-scheme.js.map +1 -0
- package/dist/esm/cryptography/signature.d.ts +2 -24
- package/dist/esm/cryptography/signature.js +44 -48
- package/dist/esm/cryptography/signature.js.map +1 -0
- package/dist/esm/experimental/cache.js +61 -0
- package/dist/esm/experimental/cache.js.map +1 -0
- package/dist/esm/experimental/client.js +23 -0
- package/dist/esm/experimental/client.js.map +1 -0
- package/dist/esm/experimental/core.js +85 -0
- package/dist/esm/experimental/core.js.map +1 -0
- package/dist/esm/experimental/errors.js +27 -0
- package/dist/esm/experimental/errors.js.map +1 -0
- package/dist/esm/experimental/index.js +8 -0
- package/dist/esm/experimental/index.js.map +1 -0
- package/dist/esm/experimental/persistent-storage.js +337 -0
- package/dist/esm/experimental/persistent-storage.js.map +1 -0
- package/dist/esm/experimental/persistent-storage.test.js +198 -0
- package/dist/esm/experimental/persistent-storage.test.js.map +1 -0
- package/dist/esm/experimental/transports/utils.js +100 -0
- package/dist/esm/experimental/transports/utils.js.map +1 -0
- package/dist/esm/experimental/types.js +5 -0
- package/dist/esm/experimental/types.js.map +1 -0
- package/dist/esm/faucet/faucet.js +104 -111
- package/dist/esm/faucet/faucet.js.map +1 -0
- package/dist/esm/faucet/index.js +4 -16
- package/dist/esm/faucet/index.js.map +1 -0
- package/dist/esm/grpc/client.js +34 -34
- package/dist/esm/grpc/client.js.map +1 -0
- package/dist/esm/grpc/core.js +570 -601
- package/dist/esm/grpc/core.js.map +1 -0
- package/dist/esm/grpc/index.js +5 -6
- package/dist/esm/grpc/index.js.map +1 -0
- package/dist/esm/grpc/proto/google/protobuf/any.js +161 -111
- package/dist/esm/grpc/proto/google/protobuf/any.js.map +1 -0
- package/dist/esm/grpc/proto/google/protobuf/duration.js +99 -67
- package/dist/esm/grpc/proto/google/protobuf/duration.js.map +1 -0
- package/dist/esm/grpc/proto/google/protobuf/empty.js +46 -7
- package/dist/esm/grpc/proto/google/protobuf/empty.js.map +1 -0
- package/dist/esm/grpc/proto/google/protobuf/field_mask.js +90 -52
- package/dist/esm/grpc/proto/google/protobuf/field_mask.js.map +1 -0
- package/dist/esm/grpc/proto/google/protobuf/struct.js +258 -190
- package/dist/esm/grpc/proto/google/protobuf/struct.js.map +1 -0
- package/dist/esm/grpc/proto/google/protobuf/timestamp.js +144 -108
- package/dist/esm/grpc/proto/google/protobuf/timestamp.js.map +1 -0
- package/dist/esm/grpc/proto/google/rpc/error_details.js +313 -267
- package/dist/esm/grpc/proto/google/rpc/error_details.js.map +1 -0
- package/dist/esm/grpc/proto/google/rpc/status.js +45 -28
- package/dist/esm/grpc/proto/google/rpc/status.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +80 -47
- package/dist/esm/grpc/proto/sui/rpc/v2/argument.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +41 -29
- package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +34 -22
- package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +61 -49
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +72 -57
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +173 -139
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +358 -268
- package/dist/esm/grpc/proto/sui/rpc/v2/effects.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +72 -60
- package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +29 -9
- package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/event.js +74 -59
- package/dist/esm/grpc/proto/sui/rpc/v2/event.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +69 -57
- package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +861 -474
- package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +52 -40
- package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/input.js +98 -61
- package/dist/esm/grpc/proto/sui/rpc/v2/input.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +71 -56
- package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +65 -100
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +365 -306
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +585 -442
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +42 -59
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +226 -191
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +28 -33
- package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +129 -107
- package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/object.js +100 -85
- package/dist/esm/grpc/proto/sui/rpc/v2/object.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +42 -30
- package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +72 -40
- package/dist/esm/grpc/proto/sui/rpc/v2/owner.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +42 -38
- package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +544 -481
- package/dist/esm/grpc/proto/sui/rpc/v2/signature.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +52 -13
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +23 -28
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +74 -60
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +49 -66
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +623 -490
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +33 -32
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +50 -36
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +737 -701
- package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +1177 -917
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +28 -27
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -0
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +169 -133
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -0
- package/dist/esm/index.js +21 -107
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/jsonRpc/client.js +646 -727
- package/dist/esm/jsonRpc/client.js.map +1 -0
- package/dist/esm/jsonRpc/core.d.ts +7 -7
- package/dist/esm/jsonRpc/core.js +550 -581
- package/dist/esm/jsonRpc/core.js.map +1 -0
- package/dist/esm/jsonRpc/errors.js +36 -41
- package/dist/esm/jsonRpc/errors.js.map +1 -0
- package/dist/esm/jsonRpc/http-transport.js +65 -93
- package/dist/esm/jsonRpc/http-transport.js.map +1 -0
- package/dist/esm/jsonRpc/index.js +6 -20
- package/dist/esm/jsonRpc/index.js.map +1 -0
- package/dist/esm/jsonRpc/json-rpc-resolver.js +281 -276
- package/dist/esm/jsonRpc/json-rpc-resolver.js.map +1 -0
- package/dist/esm/jsonRpc/rpc-websocket-client.js +147 -189
- package/dist/esm/jsonRpc/rpc-websocket-client.js.map +1 -0
- package/dist/esm/jsonRpc/types/chain.js +4 -0
- package/dist/esm/jsonRpc/types/chain.js.map +1 -0
- package/dist/esm/jsonRpc/types/changes.js +4 -0
- package/dist/esm/jsonRpc/types/changes.js.map +1 -0
- package/dist/esm/jsonRpc/types/coins.js +4 -0
- package/dist/esm/jsonRpc/types/coins.js.map +1 -0
- package/dist/esm/jsonRpc/types/common.js +4 -0
- package/dist/esm/jsonRpc/types/common.js.map +1 -0
- package/dist/esm/jsonRpc/types/generated.d.ts +1 -1
- package/dist/esm/jsonRpc/types/generated.js +4 -0
- package/dist/esm/jsonRpc/types/generated.js.map +1 -0
- package/dist/esm/jsonRpc/types/index.js +4 -0
- package/dist/esm/jsonRpc/types/index.js.map +1 -0
- package/dist/esm/jsonRpc/types/params.js +4 -0
- package/dist/esm/jsonRpc/types/params.js.map +1 -0
- package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +49 -48
- package/dist/esm/keypairs/ed25519/ed25519-hd-key.js.map +1 -0
- package/dist/esm/keypairs/ed25519/index.js +5 -10
- package/dist/esm/keypairs/ed25519/index.js.map +1 -0
- package/dist/esm/keypairs/ed25519/keypair.js +128 -146
- package/dist/esm/keypairs/ed25519/keypair.js.map +1 -0
- package/dist/esm/keypairs/ed25519/publickey.js +64 -67
- package/dist/esm/keypairs/ed25519/publickey.js.map +1 -0
- package/dist/esm/keypairs/index.js +3 -0
- package/dist/esm/keypairs/index.js.map +1 -0
- package/dist/esm/keypairs/passkey/index.js +5 -12
- package/dist/esm/keypairs/passkey/index.js.map +1 -0
- package/dist/esm/keypairs/passkey/keypair.js +236 -243
- package/dist/esm/keypairs/passkey/keypair.js.map +1 -0
- package/dist/esm/keypairs/passkey/publickey.js +154 -140
- package/dist/esm/keypairs/passkey/publickey.js.map +1 -0
- package/dist/esm/keypairs/passkey/types.js +4 -0
- package/dist/esm/keypairs/passkey/types.js.map +1 -0
- package/dist/esm/keypairs/secp256k1/index.js +5 -10
- package/dist/esm/keypairs/secp256k1/index.js.map +1 -0
- package/dist/esm/keypairs/secp256k1/keypair.js +120 -134
- package/dist/esm/keypairs/secp256k1/keypair.js.map +1 -0
- package/dist/esm/keypairs/secp256k1/publickey.js +64 -71
- package/dist/esm/keypairs/secp256k1/publickey.js.map +1 -0
- package/dist/esm/keypairs/secp256r1/index.js +5 -10
- package/dist/esm/keypairs/secp256r1/index.js.map +1 -0
- package/dist/esm/keypairs/secp256r1/keypair.js +118 -131
- package/dist/esm/keypairs/secp256r1/keypair.js.map +1 -0
- package/dist/esm/keypairs/secp256r1/publickey.js +63 -66
- package/dist/esm/keypairs/secp256r1/publickey.js.map +1 -0
- package/dist/esm/multisig/index.js +5 -10
- package/dist/esm/multisig/index.js.map +1 -0
- package/dist/esm/multisig/publickey.d.ts +1 -1
- package/dist/esm/multisig/publickey.js +216 -253
- package/dist/esm/multisig/publickey.js.map +1 -0
- package/dist/esm/multisig/signer.js +57 -89
- package/dist/esm/multisig/signer.js.map +1 -0
- package/dist/esm/transactions/Arguments.d.ts +4 -4
- package/dist/esm/transactions/Arguments.js +9 -13
- package/dist/esm/transactions/Arguments.js.map +1 -0
- package/dist/esm/transactions/Commands.js +105 -118
- package/dist/esm/transactions/Commands.js.map +1 -0
- package/dist/esm/transactions/Inputs.js +49 -61
- package/dist/esm/transactions/Inputs.js.map +1 -0
- package/dist/esm/transactions/ObjectCache.d.ts +8 -8
- package/dist/esm/transactions/ObjectCache.js +200 -223
- package/dist/esm/transactions/ObjectCache.js.map +1 -0
- package/dist/esm/transactions/Transaction.d.ts +32 -32
- package/dist/esm/transactions/Transaction.js +611 -696
- package/dist/esm/transactions/Transaction.js.map +1 -0
- package/dist/esm/transactions/TransactionData.d.ts +9 -9
- package/dist/esm/transactions/TransactionData.js +386 -415
- package/dist/esm/transactions/TransactionData.js.map +1 -0
- package/dist/esm/transactions/__tests__/Transaction.test.js +167 -0
- package/dist/esm/transactions/__tests__/Transaction.test.js.map +1 -0
- package/dist/esm/transactions/__tests__/bcs.test.js +200 -0
- package/dist/esm/transactions/__tests__/bcs.test.js.map +1 -0
- package/dist/esm/transactions/data/internal.js +158 -205
- package/dist/esm/transactions/data/internal.js.map +1 -0
- package/dist/esm/transactions/data/v1.js +419 -487
- package/dist/esm/transactions/data/v1.js.map +1 -0
- package/dist/esm/transactions/data/v2.d.ts +5 -5
- package/dist/esm/transactions/data/v2.js +89 -107
- package/dist/esm/transactions/data/v2.js.map +1 -0
- package/dist/esm/transactions/executor/caching.d.ts +2 -2
- package/dist/esm/transactions/executor/caching.js +66 -93
- package/dist/esm/transactions/executor/caching.js.map +1 -0
- package/dist/esm/transactions/executor/parallel.js +329 -352
- package/dist/esm/transactions/executor/parallel.js.map +1 -0
- package/dist/esm/transactions/executor/queue.js +58 -64
- package/dist/esm/transactions/executor/queue.js.map +1 -0
- package/dist/esm/transactions/executor/serial.d.ts +5 -5
- package/dist/esm/transactions/executor/serial.js +96 -110
- package/dist/esm/transactions/executor/serial.js.map +1 -0
- package/dist/esm/transactions/hash.js +15 -9
- package/dist/esm/transactions/hash.js.map +1 -0
- package/dist/esm/transactions/index.js +15 -41
- package/dist/esm/transactions/index.js.map +1 -0
- package/dist/esm/transactions/intents/CoinWithBalance.js +127 -165
- package/dist/esm/transactions/intents/CoinWithBalance.js.map +1 -0
- package/dist/esm/transactions/object.js +86 -92
- package/dist/esm/transactions/object.js.map +1 -0
- package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +18 -15
- package/dist/esm/transactions/plugins/NamedPackagesPlugin.js.map +1 -0
- package/dist/esm/transactions/pure.js +34 -39
- package/dist/esm/transactions/pure.js.map +1 -0
- package/dist/esm/transactions/resolve.js +58 -69
- package/dist/esm/transactions/resolve.js.map +1 -0
- package/dist/esm/transactions/serializer.js +145 -144
- package/dist/esm/transactions/serializer.js.map +1 -0
- package/dist/esm/transactions/utils.d.ts +1 -1
- package/dist/esm/transactions/utils.js +110 -109
- package/dist/esm/transactions/utils.js.map +1 -0
- package/dist/esm/utils/constants.js +26 -36
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/derived-objects.js +11 -10
- package/dist/esm/utils/derived-objects.js.map +1 -0
- package/dist/esm/utils/dynamic-fields.js +16 -16
- package/dist/esm/utils/dynamic-fields.js.map +1 -0
- package/dist/esm/utils/format.js +13 -13
- package/dist/esm/utils/format.js.map +1 -0
- package/dist/esm/utils/index.js +15 -76
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/move-registry.js +34 -17
- package/dist/esm/utils/move-registry.js.map +1 -0
- package/dist/esm/utils/sui-types.js +70 -54
- package/dist/esm/utils/sui-types.js.map +1 -0
- package/dist/esm/utils/suins.js +29 -29
- package/dist/esm/utils/suins.js.map +1 -0
- package/dist/esm/verify/index.js +5 -14
- package/dist/esm/verify/index.js.map +1 -0
- package/dist/esm/verify/verify.js +76 -93
- package/dist/esm/verify/verify.js.map +1 -0
- package/dist/esm/version.js +6 -6
- package/dist/esm/version.js.map +1 -0
- package/dist/esm/w/call/allocation.js +307 -402
- package/dist/esm/w/call/allocation.js.map +1 -0
- package/dist/esm/w/call/arb.js +100 -129
- package/dist/esm/w/call/arb.js.map +1 -0
- package/dist/esm/w/call/arbitration.js +1170 -1568
- package/dist/esm/w/call/arbitration.js.map +1 -0
- package/dist/esm/w/call/base.js +288 -315
- package/dist/esm/w/call/base.js.map +1 -0
- package/dist/esm/w/call/contact.js +318 -442
- package/dist/esm/w/call/contact.js.map +1 -0
- package/dist/esm/w/call/demand.js +673 -841
- package/dist/esm/w/call/demand.js.map +1 -0
- package/dist/esm/w/call/entity.js +162 -203
- package/dist/esm/w/call/entity.js.map +1 -0
- package/dist/esm/w/call/guard-ins.js +4373 -4371
- package/dist/esm/w/call/guard-ins.js.map +1 -0
- package/dist/esm/w/call/guard.js +1061 -1108
- package/dist/esm/w/call/guard.js.map +1 -0
- package/dist/esm/w/call/index.js +24 -56
- package/dist/esm/w/call/index.js.map +1 -0
- package/dist/esm/w/call/machine.js +1086 -1433
- package/dist/esm/w/call/machine.js.map +1 -0
- package/dist/esm/w/call/order.js +301 -448
- package/dist/esm/w/call/order.js.map +1 -0
- package/dist/esm/w/call/passport.js +204 -240
- package/dist/esm/w/call/passport.js.map +1 -0
- package/dist/esm/w/call/payment.js +177 -215
- package/dist/esm/w/call/payment.js.map +1 -0
- package/dist/esm/w/call/permission.js +1172 -1320
- package/dist/esm/w/call/permission.js.map +1 -0
- package/dist/esm/w/call/personal.js +121 -156
- package/dist/esm/w/call/personal.js.map +1 -0
- package/dist/esm/w/call/progress.js +625 -797
- package/dist/esm/w/call/progress.js.map +1 -0
- package/dist/esm/w/call/proof.js +61 -103
- package/dist/esm/w/call/proof.js.map +1 -0
- package/dist/esm/w/call/repository.js +1017 -1251
- package/dist/esm/w/call/repository.js.map +1 -0
- package/dist/esm/w/call/resource.js +108 -124
- package/dist/esm/w/call/resource.js.map +1 -0
- package/dist/esm/w/call/reward.js +660 -847
- package/dist/esm/w/call/reward.js.map +1 -0
- package/dist/esm/w/call/service.js +1849 -2400
- package/dist/esm/w/call/service.js.map +1 -0
- package/dist/esm/w/call/treasury.js +815 -1125
- package/dist/esm/w/call/treasury.js.map +1 -0
- package/dist/esm/w/call/util.js +553 -576
- package/dist/esm/w/call/util.js.map +1 -0
- package/dist/esm/w/common.d.ts +1 -1
- package/dist/esm/w/common.js +579 -580
- package/dist/esm/w/common.js.map +1 -0
- package/dist/esm/w/exception.js +570 -573
- package/dist/esm/w/exception.js.map +1 -0
- package/dist/esm/w/index.js +4 -0
- package/dist/esm/w/index.js.map +1 -0
- package/dist/esm/w/local/account.js +652 -709
- package/dist/esm/w/local/account.js.map +1 -0
- package/dist/esm/w/local/cache.js +176 -147
- package/dist/esm/w/local/cache.js.map +1 -0
- package/dist/esm/w/local/config.js +46 -60
- package/dist/esm/w/local/config.js.map +1 -0
- package/dist/esm/w/local/index.js +196 -273
- package/dist/esm/w/local/index.js.map +1 -0
- package/dist/esm/w/local/local.d.ts +2 -2
- package/dist/esm/w/local/local.js +631 -626
- package/dist/esm/w/local/local.js.map +1 -0
- package/dist/esm/w/local/storage.js +168 -136
- package/dist/esm/w/local/storage.js.map +1 -0
- package/dist/esm/w/local/token.js +149 -151
- package/dist/esm/w/local/token.js.map +1 -0
- package/dist/esm/w/local/util.js +45 -22
- package/dist/esm/w/local/util.js.map +1 -0
- package/dist/esm/w/local/wip.js +1038 -781
- package/dist/esm/w/local/wip.js.map +1 -0
- package/dist/esm/w/messenger/crypto.js +491 -387
- package/dist/esm/w/messenger/crypto.js.map +1 -0
- package/dist/esm/w/messenger/index.js +27 -24
- package/dist/esm/w/messenger/index.js.map +1 -0
- package/dist/esm/w/messenger/messenger-api.js +1111 -1017
- package/dist/esm/w/messenger/messenger-api.js.map +1 -0
- package/dist/esm/w/messenger/messenger-manager.js +944 -1052
- package/dist/esm/w/messenger/messenger-manager.js.map +1 -0
- package/dist/esm/w/messenger/messenger.d.ts +1 -1
- package/dist/esm/w/messenger/messenger.js +1258 -1421
- package/dist/esm/w/messenger/messenger.js.map +1 -0
- package/dist/esm/w/messenger/server.js +388 -499
- package/dist/esm/w/messenger/server.js.map +1 -0
- package/dist/esm/w/messenger/session.js +394 -399
- package/dist/esm/w/messenger/session.js.map +1 -0
- package/dist/esm/w/messenger/storage.js +840 -751
- package/dist/esm/w/messenger/storage.js.map +1 -0
- package/dist/esm/w/messenger/types.d.ts +2 -2
- package/dist/esm/w/messenger/types.js +80 -85
- package/dist/esm/w/messenger/types.js.map +1 -0
- package/dist/esm/w/messenger/utils.js +28 -16
- package/dist/esm/w/messenger/utils.js.map +1 -0
- package/dist/esm/w/query/bult-in.js +95 -100
- package/dist/esm/w/query/bult-in.js.map +1 -0
- package/dist/esm/w/query/event.js +128 -125
- package/dist/esm/w/query/event.js.map +1 -0
- package/dist/esm/w/query/index.js +3 -0
- package/dist/esm/w/query/index.js.map +1 -0
- package/dist/esm/w/query/object.js +1560 -1574
- package/dist/esm/w/query/object.js.map +1 -0
- package/dist/esm/w/query/received.js +57 -63
- package/dist/esm/w/query/received.js.map +1 -0
- package/dist/esm/w/query/util.js +48 -56
- package/dist/esm/w/query/util.js.map +1 -0
- package/dist/esm/w/util.js +578 -673
- package/dist/esm/w/util.js.map +1 -0
- package/package.json +13 -7
- package/prebuilds/better-sqlite3-v12.9.0-node-v115-darwin-arm64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v115-darwin-x64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v115-linux-arm.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v115-linux-arm64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v115-linux-x64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v115-win32-arm64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v115-win32-x64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v127-darwin-arm64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v127-darwin-x64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v127-linux-arm.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v127-linux-arm64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v127-linux-x64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v127-win32-arm64.node +0 -0
- package/prebuilds/better-sqlite3-v12.9.0-node-v127-win32-x64.node +0 -0
- package/scripts/download-prebuilds.js +234 -0
- package/scripts/install-better-sqlite3.js +377 -0
- package/dist/cjs/graphql/client.js +0 -98
- package/dist/cjs/graphql/core.js +0 -506
- package/dist/cjs/graphql/generated/2024.1/tada-env.js +0 -13141
- package/dist/cjs/graphql/generated/2024.1/tsconfig.tada.js +0 -11
- package/dist/cjs/graphql/generated/2024.4/tada-env.js +0 -13287
- package/dist/cjs/graphql/generated/2024.4/tsconfig.tada.js +0 -11
- package/dist/cjs/graphql/generated/latest/tada-env.js +0 -12925
- package/dist/cjs/graphql/generated/latest/tsconfig.tada.js +0 -11
- package/dist/cjs/graphql/generated/queries.js +0 -807
- package/dist/cjs/graphql/index.js +0 -25
- package/dist/cjs/graphql/schemas/2024.1/index.js +0 -28
- package/dist/cjs/graphql/schemas/2024.4/index.js +0 -28
- package/dist/cjs/graphql/schemas/latest/index.js +0 -28
- package/dist/cjs/graphql/types.js +0 -16
- package/dist/cjs/package.json +0 -5
- package/dist/cjs/w/local/.eslintrc.js +0 -15
- package/dist/cjs/w/messenger/.eslintrc.js +0 -15
- package/dist/cjs/zklogin/address.js +0 -93
- package/dist/cjs/zklogin/bcs.js +0 -41
- package/dist/cjs/zklogin/index.js +0 -45
- package/dist/cjs/zklogin/jwt-decode.js +0 -88
- package/dist/cjs/zklogin/jwt-utils.js +0 -128
- package/dist/cjs/zklogin/nonce.js +0 -60
- package/dist/cjs/zklogin/poseidon.js +0 -64
- package/dist/cjs/zklogin/publickey.js +0 -281
- package/dist/cjs/zklogin/signature.js +0 -57
- package/dist/cjs/zklogin/utils.js +0 -98
- package/dist/esm/graphql/client.js +0 -79
- package/dist/esm/graphql/core.js +0 -505
- package/dist/esm/graphql/generated/2024.1/tada-env.js +0 -13121
- package/dist/esm/graphql/generated/2024.1/tsconfig.tada.js +0 -16
- package/dist/esm/graphql/generated/2024.4/tada-env.js +0 -13267
- package/dist/esm/graphql/generated/2024.4/tsconfig.tada.js +0 -16
- package/dist/esm/graphql/generated/latest/tada-env.js +0 -12905
- package/dist/esm/graphql/generated/latest/tsconfig.tada.js +0 -16
- package/dist/esm/graphql/generated/queries.js +0 -788
- package/dist/esm/graphql/index.js +0 -8
- package/dist/esm/graphql/schemas/2024.1/index.js +0 -8
- package/dist/esm/graphql/schemas/2024.4/index.js +0 -8
- package/dist/esm/graphql/schemas/latest/index.js +0 -8
- package/dist/esm/graphql/types.js +0 -0
- package/dist/esm/package.json +0 -5
- package/dist/esm/w/local/.eslintrc.js +0 -23
- package/dist/esm/w/messenger/.eslintrc.js +0 -23
- package/dist/esm/zklogin/address.js +0 -78
- package/dist/esm/zklogin/bcs.js +0 -21
- package/dist/esm/zklogin/index.js +0 -38
- package/dist/esm/zklogin/jwt-decode.js +0 -68
- package/dist/esm/zklogin/jwt-utils.js +0 -108
- package/dist/esm/zklogin/nonce.js +0 -40
- package/dist/esm/zklogin/poseidon.js +0 -61
- package/dist/esm/zklogin/publickey.js +0 -265
- package/dist/esm/zklogin/signature.js +0 -37
- package/dist/esm/zklogin/utils.js +0 -78
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,415 +1,410 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
// Copyright (c) Wowok.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* Messenger 会话管理模块
|
|
5
|
+
*
|
|
6
|
+
* 基于 Signal Protocol 的双棘轮算法实现端到端加密
|
|
7
|
+
* 负责:
|
|
8
|
+
* 1. 身份密钥管理(与 wowok 账户体系集成)
|
|
9
|
+
* 2. 会话建立和维护
|
|
10
|
+
* 3. 消息加密和解密
|
|
11
|
+
*/
|
|
12
|
+
import { KeyHelper, SessionBuilder, SessionCipher, SignalProtocolAddress, } from "libsignal-protocol-typescript";
|
|
10
13
|
import { Account } from "../local/account.js";
|
|
11
14
|
import { SignalProtocolStorage } from "./storage.js";
|
|
12
15
|
import { MessengerServerClient } from "./server.js";
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
DEFAULT_DEVICE_ID
|
|
25
|
-
} from "./types.js";
|
|
26
|
-
class MessengerSession {
|
|
27
|
-
constructor(userAddress, config) {
|
|
28
|
-
__publicField(this, "store");
|
|
29
|
-
__publicField(this, "serverClient");
|
|
30
|
-
__publicField(this, "config");
|
|
31
|
-
__publicField(this, "identity", null);
|
|
32
|
-
this.store = new SignalProtocolStorage(userAddress);
|
|
33
|
-
this.config = { ...DEFAULT_MESSENGER_CONFIG, ...config };
|
|
34
|
-
this.serverClient = new MessengerServerClient(this.config);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* 获取或创建本地身份
|
|
38
|
-
*
|
|
39
|
-
* 从 wowok 账户的 ED25519 私钥确定性派生 X25519 密钥对,
|
|
40
|
-
* 确保恢复钱包后加密身份不变。
|
|
41
|
-
*/
|
|
42
|
-
async ensureIdentity(userAddress) {
|
|
43
|
-
if (this.identity) {
|
|
44
|
-
return this.identity;
|
|
16
|
+
import { recoverXed25519FromX25519PrivateKey, arrayBufferToUint8Array, bytesToBase64, base64ToBytes, } from "./crypto.js";
|
|
17
|
+
import { MessageType, DEFAULT_MESSENGER_CONFIG, MessengerError, MessengerErrorCode, DEFAULT_DEVICE_ID, } from "./types.js";
|
|
18
|
+
export class MessengerSession {
|
|
19
|
+
store;
|
|
20
|
+
serverClient;
|
|
21
|
+
config;
|
|
22
|
+
identity = null;
|
|
23
|
+
constructor(userAddress, config) {
|
|
24
|
+
this.store = new SignalProtocolStorage(userAddress);
|
|
25
|
+
this.config = { ...DEFAULT_MESSENGER_CONFIG, ...config };
|
|
26
|
+
this.serverClient = new MessengerServerClient(this.config);
|
|
45
27
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
privateKey
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
deriveRegistrationId(publicKey) {
|
|
95
|
-
const id = publicKey[0] << 8 | publicKey[1];
|
|
96
|
-
return id === 0 ? 1 : id;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* 注册设备到服务器
|
|
100
|
-
*/
|
|
101
|
-
async registerDevice(userAddress) {
|
|
102
|
-
const identity = await this.ensureIdentity(userAddress);
|
|
103
|
-
const prekeys = await this.generatePreKeyBatch(
|
|
104
|
-
this.config.prekey_count
|
|
105
|
-
);
|
|
106
|
-
const prefixedIdentityKey = arrayBufferToUint8Array(
|
|
107
|
-
identity.signalIdentity.pubKey
|
|
108
|
-
);
|
|
109
|
-
const account = await Account.Instance().get(userAddress, false);
|
|
110
|
-
if (!account?.pubkey) {
|
|
111
|
-
throw new MessengerError(
|
|
112
|
-
MessengerErrorCode.IDENTITY_NOT_FOUND,
|
|
113
|
-
`Account not found for ${userAddress}`
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
const timestamp = Date.now();
|
|
117
|
-
const nonce = this.generateNonce();
|
|
118
|
-
const message = `register:${account.pubkey}:${timestamp}:${nonce}`;
|
|
119
|
-
const signResult = await Account.Instance().signData(
|
|
120
|
-
userAddress,
|
|
121
|
-
message
|
|
122
|
-
);
|
|
123
|
-
const signature = Buffer.from(signResult.signature.slice(2), "hex");
|
|
124
|
-
const registerRequest = {
|
|
125
|
-
userAddress,
|
|
126
|
-
deviceId: DEFAULT_DEVICE_ID,
|
|
127
|
-
registrationId: identity.registrationId,
|
|
128
|
-
identityKey: bytesToBase64(prefixedIdentityKey),
|
|
129
|
-
prekeys,
|
|
130
|
-
publicKey: account.pubkey,
|
|
131
|
-
signatureScheme: "ED25519",
|
|
132
|
-
signature: bytesToBase64(signature),
|
|
133
|
-
timestamp,
|
|
134
|
-
nonce
|
|
135
|
-
};
|
|
136
|
-
await this.serverClient.registerDevice(registerRequest);
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* 生成预密钥批次
|
|
140
|
-
*/
|
|
141
|
-
async generatePreKeyBatch(count) {
|
|
142
|
-
if (count <= 0) return [];
|
|
143
|
-
const identity = await this.ensureIdentity();
|
|
144
|
-
const meta = await this.store.getMeta();
|
|
145
|
-
let nextPreKeyId = meta.nextPreKeyId || 1;
|
|
146
|
-
const prekeys = [];
|
|
147
|
-
for (let i = 0; i < count; i++) {
|
|
148
|
-
const keyId = nextPreKeyId + i;
|
|
149
|
-
const signedPreKey = await KeyHelper.generateSignedPreKey(
|
|
150
|
-
identity.signalIdentity,
|
|
151
|
-
keyId
|
|
152
|
-
);
|
|
153
|
-
const prekeyPublicKey = arrayBufferToUint8Array(
|
|
154
|
-
signedPreKey.keyPair.pubKey
|
|
155
|
-
);
|
|
156
|
-
const prefixedPublicKey = prekeyPublicKey;
|
|
157
|
-
const signature = arrayBufferToUint8Array(signedPreKey.signature);
|
|
158
|
-
await this.store.storePreKey(keyId, signedPreKey.keyPair);
|
|
159
|
-
await this.store.storeSignedPreKey(keyId, signedPreKey.keyPair);
|
|
160
|
-
prekeys.push({
|
|
161
|
-
keyId,
|
|
162
|
-
publicKey: bytesToBase64(prefixedPublicKey),
|
|
163
|
-
signature: bytesToBase64(signature)
|
|
164
|
-
});
|
|
28
|
+
/**
|
|
29
|
+
* 获取或创建本地身份
|
|
30
|
+
*
|
|
31
|
+
* 从 wowok 账户的 ED25519 私钥确定性派生 X25519 密钥对,
|
|
32
|
+
* 确保恢复钱包后加密身份不变。
|
|
33
|
+
*/
|
|
34
|
+
async ensureIdentity(userAddress) {
|
|
35
|
+
if (this.identity) {
|
|
36
|
+
return this.identity;
|
|
37
|
+
}
|
|
38
|
+
// 尝试从存储加载
|
|
39
|
+
const existingSignalIdentity = await this.store.getIdentityKeyPair();
|
|
40
|
+
const existingRegId = await this.store.getLocalRegistrationId();
|
|
41
|
+
if (existingSignalIdentity && existingRegId) {
|
|
42
|
+
const x25519PrivateKey = new Uint8Array(existingSignalIdentity.privKey);
|
|
43
|
+
const xed25519 = recoverXed25519FromX25519PrivateKey(x25519PrivateKey);
|
|
44
|
+
this.identity = {
|
|
45
|
+
xed25519,
|
|
46
|
+
signalIdentity: existingSignalIdentity,
|
|
47
|
+
registrationId: existingRegId,
|
|
48
|
+
};
|
|
49
|
+
return this.identity;
|
|
50
|
+
}
|
|
51
|
+
// 从 ED25519 私钥确定性派生 X25519 密钥对
|
|
52
|
+
if (!userAddress) {
|
|
53
|
+
throw new MessengerError(MessengerErrorCode.IDENTITY_NOT_FOUND, "userAddress is required to derive identity");
|
|
54
|
+
}
|
|
55
|
+
// 从 Account 派生 X25519 密钥对
|
|
56
|
+
const { privateKey, publicKey } = await Account.Instance().deriveX25519KeyPair(userAddress);
|
|
57
|
+
// 生成注册 ID(可以从公钥派生,确保确定性)
|
|
58
|
+
const registrationId = this.deriveRegistrationId(publicKey);
|
|
59
|
+
// 转换为 Signal Protocol 格式
|
|
60
|
+
// Signal Protocol 要求公钥带 0x05 前缀(33字节),私钥32字节
|
|
61
|
+
const prefixedPublicKey = new Uint8Array(33);
|
|
62
|
+
prefixedPublicKey[0] = 0x05; // Signal Protocol 标准前缀
|
|
63
|
+
prefixedPublicKey.set(publicKey, 1);
|
|
64
|
+
const signalIdentity = {
|
|
65
|
+
privKey: privateKey.buffer.slice(privateKey.byteOffset, privateKey.byteOffset + privateKey.byteLength),
|
|
66
|
+
pubKey: prefixedPublicKey.buffer.slice(prefixedPublicKey.byteOffset, prefixedPublicKey.byteOffset + prefixedPublicKey.byteLength),
|
|
67
|
+
};
|
|
68
|
+
await this.store.setIdentity(signalIdentity, registrationId);
|
|
69
|
+
const xed25519 = recoverXed25519FromX25519PrivateKey(privateKey);
|
|
70
|
+
this.identity = {
|
|
71
|
+
xed25519,
|
|
72
|
+
signalIdentity,
|
|
73
|
+
registrationId,
|
|
74
|
+
};
|
|
75
|
+
return this.identity;
|
|
165
76
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
async ensurePreKeys(userAddress, force = false) {
|
|
176
|
-
const status = await this.serverClient.getPrekeyStatus(userAddress);
|
|
177
|
-
if (!force && status.currentCount >= status.maxAllowed) {
|
|
178
|
-
throw new MessengerError(
|
|
179
|
-
MessengerErrorCode.PREKEYS_FULL,
|
|
180
|
-
`Prekeys already full on server: ${status.currentCount}/${status.maxAllowed}`
|
|
181
|
-
);
|
|
77
|
+
/**
|
|
78
|
+
* 从公钥确定性派生注册 ID
|
|
79
|
+
* 确保同一账户的注册 ID 始终相同
|
|
80
|
+
*/
|
|
81
|
+
deriveRegistrationId(publicKey) {
|
|
82
|
+
// 取公钥前 2 字节作为注册 ID(范围 0-65535)
|
|
83
|
+
// 确保不为 0(Signal Protocol 要求)
|
|
84
|
+
const id = (publicKey[0] << 8) | publicKey[1];
|
|
85
|
+
return id === 0 ? 1 : id;
|
|
182
86
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
87
|
+
/**
|
|
88
|
+
* 注册设备到服务器
|
|
89
|
+
*/
|
|
90
|
+
async registerDevice(userAddress) {
|
|
91
|
+
const identity = await this.ensureIdentity(userAddress);
|
|
92
|
+
// 首次注册时上传最大数量的预密钥
|
|
93
|
+
const prekeys = await this.generatePreKeyBatch(this.config.prekey_count);
|
|
94
|
+
// 注意:KeyHelper.generateIdentityKeyPair 返回的 identityKey 已经带有 0x05 前缀了
|
|
95
|
+
// 不要再次 encodeX25519PublicKey,否则会有双重前缀!
|
|
96
|
+
const prefixedIdentityKey = arrayBufferToUint8Array(identity.signalIdentity.pubKey);
|
|
97
|
+
// 获取账户信息用于签名
|
|
98
|
+
const account = await Account.Instance().get(userAddress, false);
|
|
99
|
+
if (!account?.pubkey) {
|
|
100
|
+
throw new MessengerError(MessengerErrorCode.IDENTITY_NOT_FOUND, `Account not found for ${userAddress}`);
|
|
101
|
+
}
|
|
102
|
+
// 构造签名
|
|
103
|
+
const timestamp = Date.now();
|
|
104
|
+
const nonce = this.generateNonce();
|
|
105
|
+
const message = `register:${account.pubkey}:${timestamp}:${nonce}`;
|
|
106
|
+
const signResult = await Account.Instance().signData(userAddress, message);
|
|
107
|
+
const signature = Buffer.from(signResult.signature.slice(2), "hex");
|
|
108
|
+
const registerRequest = {
|
|
109
|
+
userAddress,
|
|
110
|
+
deviceId: DEFAULT_DEVICE_ID,
|
|
111
|
+
registrationId: identity.registrationId,
|
|
112
|
+
identityKey: bytesToBase64(prefixedIdentityKey),
|
|
113
|
+
prekeys,
|
|
114
|
+
publicKey: account.pubkey,
|
|
115
|
+
signatureScheme: "ED25519",
|
|
116
|
+
signature: bytesToBase64(signature),
|
|
117
|
+
timestamp,
|
|
118
|
+
nonce,
|
|
119
|
+
};
|
|
120
|
+
await this.serverClient.registerDevice(registerRequest);
|
|
186
121
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
122
|
+
/**
|
|
123
|
+
* 生成预密钥批次
|
|
124
|
+
*/
|
|
125
|
+
async generatePreKeyBatch(count) {
|
|
126
|
+
if (count <= 0)
|
|
127
|
+
return [];
|
|
128
|
+
const identity = await this.ensureIdentity();
|
|
129
|
+
const meta = await this.store.getMeta();
|
|
130
|
+
let nextPreKeyId = meta.nextPreKeyId || 1;
|
|
131
|
+
const prekeys = [];
|
|
132
|
+
for (let i = 0; i < count; i++) {
|
|
133
|
+
const keyId = nextPreKeyId + i;
|
|
134
|
+
// 使用双棘轮库的 KeyHelper.generateSignedPreKey 生成带 X25519 签名的 signed prekey
|
|
135
|
+
const signedPreKey = await KeyHelper.generateSignedPreKey(identity.signalIdentity, keyId);
|
|
136
|
+
const prekeyPublicKey = arrayBufferToUint8Array(signedPreKey.keyPair.pubKey);
|
|
137
|
+
// 注意:KeyHelper.generateSignedPreKey 返回的 prekey 已经带有 0x05 前缀了
|
|
138
|
+
// 不要再次 encodeX25519PublicKey,否则会有双重前缀!
|
|
139
|
+
const prefixedPublicKey = prekeyPublicKey;
|
|
140
|
+
// 双棘轮库已经生成了 X25519 签名,直接使用
|
|
141
|
+
const signature = arrayBufferToUint8Array(signedPreKey.signature);
|
|
142
|
+
await this.store.storePreKey(keyId, signedPreKey.keyPair);
|
|
143
|
+
await this.store.storeSignedPreKey(keyId, signedPreKey.keyPair);
|
|
144
|
+
prekeys.push({
|
|
145
|
+
keyId,
|
|
146
|
+
publicKey: bytesToBase64(prefixedPublicKey),
|
|
147
|
+
signature: bytesToBase64(signature),
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
nextPreKeyId += count;
|
|
151
|
+
await this.store.setMeta({ nextPreKeyId });
|
|
152
|
+
return prekeys;
|
|
195
153
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
154
|
+
/**
|
|
155
|
+
* 确保服务器上有足够可用的预密钥
|
|
156
|
+
*
|
|
157
|
+
* 逻辑:查询服务器当前预密钥数量,按需生成并上传,补充到服务器最大容量
|
|
158
|
+
*/
|
|
159
|
+
async ensurePreKeys(userAddress, force = false) {
|
|
160
|
+
// 1. 查询服务器当前预密钥状态
|
|
161
|
+
const status = await this.serverClient.getPrekeyStatus(userAddress);
|
|
162
|
+
// 2. 如果服务器已满且非强制模式,直接返回
|
|
163
|
+
if (!force && status.currentCount >= status.maxAllowed) {
|
|
164
|
+
throw new MessengerError(MessengerErrorCode.PREKEYS_FULL, `Prekeys already full on server: ${status.currentCount}/${status.maxAllowed}`);
|
|
165
|
+
}
|
|
166
|
+
// 3. 计算需要补充的数量
|
|
167
|
+
const needCount = status.maxAllowed - status.currentCount;
|
|
168
|
+
if (needCount <= 0) {
|
|
169
|
+
/*console.log(
|
|
170
|
+
`No need to refill prekeys, server has ${status.currentCount}/${status.maxAllowed}`,
|
|
171
|
+
);*/
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
/*console.log(
|
|
175
|
+
`Refilling prekeys: server has ${status.currentCount}/${status.maxAllowed}, need ${needCount}`,
|
|
176
|
+
);*/
|
|
177
|
+
// 4. 确保身份已初始化
|
|
178
|
+
await this.ensureIdentity(userAddress);
|
|
179
|
+
// 5. 生成所需数量的预密钥
|
|
180
|
+
const prekeys = await this.generatePreKeyBatch(needCount);
|
|
181
|
+
// 6. 获取账户信息用于签名
|
|
182
|
+
const account = await Account.Instance().get(userAddress, false);
|
|
183
|
+
if (!account?.pubkey) {
|
|
184
|
+
throw new MessengerError(MessengerErrorCode.IDENTITY_NOT_FOUND, `Account not found for ${userAddress}`);
|
|
185
|
+
}
|
|
186
|
+
// 7. 构造上传请求(包含签名)
|
|
187
|
+
// 8. 生成签名
|
|
188
|
+
const timestamp = Date.now();
|
|
189
|
+
const nonce = this.generateNonce();
|
|
190
|
+
const message = `upload_prekeys:${account.pubkey}:${timestamp}:${nonce}`;
|
|
191
|
+
const signResult = await Account.Instance().signData(userAddress, message);
|
|
192
|
+
const signature = Buffer.from(signResult.signature.slice(2), "hex");
|
|
193
|
+
// 9. 上传预密钥(服务器会自动丢弃超过最大数量的部分)
|
|
194
|
+
await this.serverClient.uploadPreKeys({
|
|
195
|
+
userAddress,
|
|
196
|
+
prekeys,
|
|
197
|
+
publicKey: account.pubkey,
|
|
198
|
+
signatureScheme: "ED25519",
|
|
199
|
+
signature: bytesToBase64(signature),
|
|
200
|
+
timestamp,
|
|
201
|
+
nonce,
|
|
202
|
+
});
|
|
237
203
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
204
|
+
/**
|
|
205
|
+
* 生成随机 nonce
|
|
206
|
+
*/
|
|
207
|
+
generateNonce() {
|
|
208
|
+
const array = new Uint8Array(16);
|
|
209
|
+
crypto.getRandomValues(array);
|
|
210
|
+
return Array.from(array, (b) => b.toString(16).padStart(2, "0")).join("");
|
|
244
211
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
timestamp
|
|
262
|
-
nonce
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
212
|
+
/**
|
|
213
|
+
* 建立与对方的会话
|
|
214
|
+
*/
|
|
215
|
+
async establishSession(myAddress, peerAddress, peerDeviceId = DEFAULT_DEVICE_ID) {
|
|
216
|
+
const protocolAddress = new SignalProtocolAddress(peerAddress, peerDeviceId);
|
|
217
|
+
// 检查是否已有会话
|
|
218
|
+
const existingSession = await this.store.loadSession(protocolAddress.toString());
|
|
219
|
+
if (existingSession) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
// 获取账户信息以生成签名
|
|
223
|
+
const account = await Account.Instance().get(myAddress, false);
|
|
224
|
+
if (!account?.pubkey) {
|
|
225
|
+
throw new MessengerError(MessengerErrorCode.IDENTITY_NOT_FOUND, `Account not found for ${myAddress}`);
|
|
226
|
+
}
|
|
227
|
+
// 构造签名
|
|
228
|
+
const timestamp = Date.now();
|
|
229
|
+
const nonce = this.generateNonce();
|
|
230
|
+
const publicKeyWithFlag = account.pubkey;
|
|
231
|
+
// 签名格式: get_bundle:{address}:{timestamp}:{nonce}
|
|
232
|
+
const message = `get_bundle:${myAddress}:${timestamp}:${nonce}`;
|
|
233
|
+
const signResult = await Account.Instance().signData(myAddress, message);
|
|
234
|
+
const signature = Buffer.from(signResult.signature.slice(2), "hex");
|
|
235
|
+
// 获取对方密钥包(带签名验证)
|
|
236
|
+
const remoteBundle = await this.serverClient.fetchRemoteBundle(peerAddress, myAddress, publicKeyWithFlag, {
|
|
237
|
+
signatureScheme: "ED25519",
|
|
238
|
+
signature: bytesToBase64(new Uint8Array(signature)),
|
|
239
|
+
timestamp,
|
|
240
|
+
nonce,
|
|
241
|
+
}, peerDeviceId);
|
|
242
|
+
const preferredPreKey = remoteBundle.signedPrekey;
|
|
243
|
+
if (!preferredPreKey) {
|
|
244
|
+
throw new MessengerError(MessengerErrorCode.IDENTITY_NOT_FOUND, `No signed prekey available for ${peerAddress}`);
|
|
245
|
+
}
|
|
246
|
+
// 转换为 Signal Protocol 设备格式
|
|
247
|
+
const identityKeyBytes = base64ToBytes(remoteBundle.identityKey);
|
|
248
|
+
const preKeyPublicBytes = base64ToBytes(preferredPreKey.publicKey);
|
|
249
|
+
const signatureBytes = base64ToBytes(preferredPreKey.signature);
|
|
250
|
+
// 注意:identityKey 和 signedPreKey.publicKey 都不要 decode 去掉前缀!
|
|
251
|
+
// 因为当初签名时用的就是带 0x05 前缀的原始公钥!
|
|
252
|
+
const originalIdentityKeyWithPrefix = new Uint8Array(identityKeyBytes);
|
|
253
|
+
const originalPreKeyWithPrefix = new Uint8Array(preKeyPublicBytes);
|
|
254
|
+
const device = {
|
|
255
|
+
registrationId: remoteBundle.registrationId,
|
|
256
|
+
identityKey: originalIdentityKeyWithPrefix.buffer.slice(originalIdentityKeyWithPrefix.byteOffset, originalIdentityKeyWithPrefix.byteOffset +
|
|
257
|
+
originalIdentityKeyWithPrefix.byteLength),
|
|
258
|
+
signedPreKey: {
|
|
259
|
+
keyId: preferredPreKey.keyId,
|
|
260
|
+
publicKey: originalPreKeyWithPrefix.buffer.slice(originalPreKeyWithPrefix.byteOffset, originalPreKeyWithPrefix.byteOffset +
|
|
261
|
+
originalPreKeyWithPrefix.byteLength),
|
|
262
|
+
signature: new Uint8Array(signatureBytes).buffer.slice(signatureBytes.byteOffset, signatureBytes.byteOffset + signatureBytes.byteLength),
|
|
263
|
+
},
|
|
264
|
+
// 服务器只提供 signedPreKey,没有单独的 one-time preKey
|
|
265
|
+
// 这是可以的,Signal Protocol 支持仅使用 signedPreKey 建立会话
|
|
266
|
+
preKey: undefined,
|
|
267
|
+
};
|
|
268
|
+
// 建立会话
|
|
269
|
+
const builder = new SessionBuilder(this.store, protocolAddress);
|
|
270
|
+
await builder.processPreKey(device);
|
|
271
|
+
// 显式存储对方的身份密钥,以便后续解密对方的回复
|
|
272
|
+
// 使用 protocolAddress.toString() 作为键(包含 deviceId)
|
|
273
|
+
await this.store.saveIdentity(protocolAddress.toString(), device.identityKey);
|
|
272
274
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
)
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
peerDeviceId
|
|
318
|
-
);
|
|
319
|
-
const sessionKey = protocolAddress.toString();
|
|
320
|
-
const existingSession = await this.store.loadSession(sessionKey);
|
|
321
|
-
const isNewSession = !existingSession;
|
|
322
|
-
if (isNewSession) {
|
|
323
|
-
await this.establishSession(myAddress, peerAddress, peerDeviceId);
|
|
275
|
+
/**
|
|
276
|
+
* 加密消息
|
|
277
|
+
* @param myAddress 发送方地址
|
|
278
|
+
* @param peerAddress 接收方地址
|
|
279
|
+
* @param plaintext 明文
|
|
280
|
+
* @param peerDeviceId 设备ID
|
|
281
|
+
* @returns 加密后的消息(type 表示底层 Signal Protocol 消息类型:3=PreKeyMessage, 1=WhisperMessage)
|
|
282
|
+
*/
|
|
283
|
+
async encryptMessage(myAddress, peerAddress, plaintext, peerDeviceId = DEFAULT_DEVICE_ID) {
|
|
284
|
+
const protocolAddress = new SignalProtocolAddress(peerAddress, peerDeviceId);
|
|
285
|
+
// 检查是否已有会话(用于确定底层消息类型)
|
|
286
|
+
const sessionKey = protocolAddress.toString();
|
|
287
|
+
const existingSession = await this.store.loadSession(sessionKey);
|
|
288
|
+
const isNewSession = !existingSession;
|
|
289
|
+
// 只有在新会话时才建立会话,避免重置已存在的会话状态
|
|
290
|
+
if (isNewSession) {
|
|
291
|
+
await this.establishSession(myAddress, peerAddress, peerDeviceId);
|
|
292
|
+
}
|
|
293
|
+
const cipher = new SessionCipher(this.store, protocolAddress);
|
|
294
|
+
const encoder = new TextEncoder();
|
|
295
|
+
const cipherMessage = await cipher.encrypt(encoder.encode(plaintext).buffer);
|
|
296
|
+
// Convert body to ArrayBuffer if it's a string
|
|
297
|
+
let bodyBuffer;
|
|
298
|
+
if (typeof cipherMessage.body === "string") {
|
|
299
|
+
const bodyBytes = Buffer.from(cipherMessage.body, "binary");
|
|
300
|
+
bodyBuffer = new Uint8Array(bodyBytes).buffer;
|
|
301
|
+
}
|
|
302
|
+
else if (cipherMessage.body) {
|
|
303
|
+
bodyBuffer = cipherMessage.body;
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
throw new MessengerError(MessengerErrorCode.ENCRYPTION_FAILED, "Cipher message body is empty");
|
|
307
|
+
}
|
|
308
|
+
// 使用 SessionCipher 返回的消息类型(1 或 3)
|
|
309
|
+
// SessionCipher 根据 session.pendingPreKey 是否存在来决定消息类型
|
|
310
|
+
/*const msgType = cipherMessage.type === 3 ? "PREKEY" : "WHISPER";
|
|
311
|
+
console.log(
|
|
312
|
+
`[Session Debug] 加密完成: msgType=${msgType}(${cipherMessage.type}), bodyLength=${bodyBuffer.byteLength}, isNewSession=${isNewSession}`,
|
|
313
|
+
);*/
|
|
314
|
+
return {
|
|
315
|
+
type: cipherMessage.type,
|
|
316
|
+
body: bodyBuffer,
|
|
317
|
+
registrationId: cipherMessage.registrationId,
|
|
318
|
+
};
|
|
324
319
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
320
|
+
/**
|
|
321
|
+
* 解密消息
|
|
322
|
+
*/
|
|
323
|
+
async decryptMessage(myAddress, peerAddress, ciphertext, msgType, peerDeviceId = DEFAULT_DEVICE_ID) {
|
|
324
|
+
const protocolAddress = new SignalProtocolAddress(peerAddress, peerDeviceId);
|
|
325
|
+
// Signal 协议中,接收方直接使用自己的私钥解密消息
|
|
326
|
+
// decryptPreKeyWhisperMessage 会自动处理会话建立,不需要预先获取发送方的密钥包
|
|
327
|
+
// 发送方使用接收方的预密钥公钥加密,接收方使用自己的预密钥私钥解密
|
|
328
|
+
const cipher = new SessionCipher(this.store, protocolAddress);
|
|
329
|
+
const decoder = new TextDecoder();
|
|
330
|
+
// 检查会话状态
|
|
331
|
+
const sessionKey = protocolAddress.toString();
|
|
332
|
+
const existingSession = await this.store.loadSession(sessionKey);
|
|
333
|
+
let plaintextBuffer;
|
|
334
|
+
const ciphertextArray = new Uint8Array(ciphertext);
|
|
335
|
+
let ciphertextBinary = "";
|
|
336
|
+
for (let i = 0; i < ciphertextArray.length; i++) {
|
|
337
|
+
ciphertextBinary += String.fromCharCode(ciphertextArray[i]);
|
|
338
|
+
}
|
|
339
|
+
try {
|
|
340
|
+
if (msgType === MessageType.PREKEY_MESSAGE) {
|
|
341
|
+
// 【新增】如果已有会话,说明对方重置了会话,需要删除旧会话
|
|
342
|
+
if (existingSession) {
|
|
343
|
+
await this.store.removeSession(sessionKey);
|
|
344
|
+
// 重新创建 cipher(使用更新后的 store)
|
|
345
|
+
const newCipher = new SessionCipher(this.store, protocolAddress);
|
|
346
|
+
plaintextBuffer =
|
|
347
|
+
await newCipher.decryptPreKeyWhisperMessage(ciphertextBinary, "binary");
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
plaintextBuffer = await cipher.decryptPreKeyWhisperMessage(ciphertextBinary, "binary");
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
// 解密前检查会话状态
|
|
355
|
+
/*const sessionBefore = await this.store.loadSession(sessionKey);
|
|
356
|
+
console.log(
|
|
357
|
+
`[Session Debug] 解密前会话状态: ${sessionBefore ? "存在" : "不存在"}`,
|
|
358
|
+
);*/
|
|
359
|
+
plaintextBuffer = await cipher.decryptWhisperMessage(ciphertextBinary, "binary");
|
|
360
|
+
// 解密后检查会话状态
|
|
361
|
+
/*const sessionAfter = await this.store.loadSession(sessionKey);
|
|
362
|
+
console.log(
|
|
363
|
+
`[Session Debug] 解密后会话状态: ${sessionAfter ? "存在" : "不存在"}`,
|
|
364
|
+
);*/
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
catch (error) {
|
|
368
|
+
/*console.error(`[Session Debug] 解密失败:`);
|
|
369
|
+
console.error(
|
|
370
|
+
` 错误类型: ${error instanceof Error ? error.constructor.name : typeof error}`,
|
|
371
|
+
);
|
|
372
|
+
console.error(
|
|
373
|
+
` 错误消息: ${error instanceof Error ? error.message : String(error)}`,
|
|
374
|
+
);
|
|
375
|
+
if (error instanceof Error && error.stack) {
|
|
376
|
+
console.error(` 堆栈: ${error.stack.split("\n")[0]}`);
|
|
377
|
+
}
|
|
378
|
+
console.error(` 上下文:`);
|
|
379
|
+
console.error(` - myAddress: ${myAddress}`);
|
|
380
|
+
console.error(` - peerAddress: ${peerAddress}`);
|
|
381
|
+
console.error(
|
|
382
|
+
` - msgType: ${msgType} (${msgType === MessageType.PREKEY_MESSAGE ? "PREKEY" : "WHISPER"})`,
|
|
383
|
+
);
|
|
384
|
+
console.error(` - sessionKey: ${sessionKey}`);
|
|
385
|
+
console.error(
|
|
386
|
+
` - existingSession: ${existingSession ? "存在" : "不存在"}`,
|
|
387
|
+
);
|
|
388
|
+
console.error(` - ciphertext.length: ${ciphertext.byteLength}`);
|
|
389
|
+
*/
|
|
390
|
+
console.log("error:", error);
|
|
391
|
+
throw error;
|
|
392
|
+
}
|
|
393
|
+
return decoder.decode(plaintextBuffer);
|
|
341
394
|
}
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* 解密消息
|
|
350
|
-
*/
|
|
351
|
-
async decryptMessage(myAddress, peerAddress, ciphertext, msgType, peerDeviceId = DEFAULT_DEVICE_ID) {
|
|
352
|
-
const protocolAddress = new SignalProtocolAddress(
|
|
353
|
-
peerAddress,
|
|
354
|
-
peerDeviceId
|
|
355
|
-
);
|
|
356
|
-
const cipher = new SessionCipher(this.store, protocolAddress);
|
|
357
|
-
const decoder = new TextDecoder();
|
|
358
|
-
const sessionKey = protocolAddress.toString();
|
|
359
|
-
const existingSession = await this.store.loadSession(sessionKey);
|
|
360
|
-
let plaintextBuffer;
|
|
361
|
-
const ciphertextArray = new Uint8Array(ciphertext);
|
|
362
|
-
let ciphertextBinary = "";
|
|
363
|
-
for (let i = 0; i < ciphertextArray.length; i++) {
|
|
364
|
-
ciphertextBinary += String.fromCharCode(ciphertextArray[i]);
|
|
395
|
+
/**
|
|
396
|
+
* 获取本地身份公钥
|
|
397
|
+
*/
|
|
398
|
+
async getIdentityKey() {
|
|
399
|
+
const identity = await this.ensureIdentity();
|
|
400
|
+
return bytesToBase64(arrayBufferToUint8Array(identity.signalIdentity.pubKey));
|
|
365
401
|
}
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
protocolAddress
|
|
373
|
-
);
|
|
374
|
-
plaintextBuffer = await newCipher.decryptPreKeyWhisperMessage(
|
|
375
|
-
ciphertextBinary,
|
|
376
|
-
"binary"
|
|
377
|
-
);
|
|
378
|
-
} else {
|
|
379
|
-
plaintextBuffer = await cipher.decryptPreKeyWhisperMessage(
|
|
380
|
-
ciphertextBinary,
|
|
381
|
-
"binary"
|
|
382
|
-
);
|
|
383
|
-
}
|
|
384
|
-
} else {
|
|
385
|
-
plaintextBuffer = await cipher.decryptWhisperMessage(
|
|
386
|
-
ciphertextBinary,
|
|
387
|
-
"binary"
|
|
388
|
-
);
|
|
389
|
-
}
|
|
390
|
-
} catch (error) {
|
|
391
|
-
console.log("error:", error);
|
|
392
|
-
throw error;
|
|
402
|
+
/**
|
|
403
|
+
* 获取注册 ID
|
|
404
|
+
*/
|
|
405
|
+
async getRegistrationId() {
|
|
406
|
+
const identity = await this.ensureIdentity();
|
|
407
|
+
return identity.registrationId;
|
|
393
408
|
}
|
|
394
|
-
return decoder.decode(plaintextBuffer);
|
|
395
|
-
}
|
|
396
|
-
/**
|
|
397
|
-
* 获取本地身份公钥
|
|
398
|
-
*/
|
|
399
|
-
async getIdentityKey() {
|
|
400
|
-
const identity = await this.ensureIdentity();
|
|
401
|
-
return bytesToBase64(
|
|
402
|
-
arrayBufferToUint8Array(identity.signalIdentity.pubKey)
|
|
403
|
-
);
|
|
404
|
-
}
|
|
405
|
-
/**
|
|
406
|
-
* 获取注册 ID
|
|
407
|
-
*/
|
|
408
|
-
async getRegistrationId() {
|
|
409
|
-
const identity = await this.ensureIdentity();
|
|
410
|
-
return identity.registrationId;
|
|
411
|
-
}
|
|
412
409
|
}
|
|
413
|
-
|
|
414
|
-
MessengerSession
|
|
415
|
-
};
|
|
410
|
+
//# sourceMappingURL=session.js.map
|