wowok 2.1.13 → 2.1.16
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 +160 -164
- package/dist/cjs/bcs/bcs.js.map +1 -1
- package/dist/cjs/bcs/effects.js +109 -112
- package/dist/cjs/bcs/effects.js.map +1 -1
- package/dist/cjs/bcs/index.js +49 -58
- package/dist/cjs/bcs/index.js.map +1 -1
- package/dist/cjs/bcs/pure.js +14 -17
- package/dist/cjs/bcs/pure.js.map +1 -1
- package/dist/cjs/bcs/type-tag-serializer.js +6 -11
- package/dist/cjs/bcs/type-tag-serializer.js.map +1 -1
- package/dist/cjs/bcs/types.js +1 -4
- package/dist/cjs/bcs/types.js.map +1 -1
- package/dist/cjs/client/index.js +4 -15
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/client/network.js +3 -7
- package/dist/cjs/client/network.js.map +1 -1
- package/dist/cjs/cryptography/index.js +6 -27
- package/dist/cjs/cryptography/index.js.map +1 -1
- package/dist/cjs/cryptography/intent.js +4 -7
- package/dist/cjs/cryptography/intent.js.map +1 -1
- package/dist/cjs/cryptography/keypair.js +26 -33
- package/dist/cjs/cryptography/keypair.js.map +1 -1
- package/dist/cjs/cryptography/mnemonics.js +8 -14
- package/dist/cjs/cryptography/mnemonics.js.map +1 -1
- package/dist/cjs/cryptography/publickey.js +19 -25
- package/dist/cjs/cryptography/publickey.js.map +1 -1
- package/dist/cjs/cryptography/signature-scheme.js +3 -6
- package/dist/cjs/cryptography/signature-scheme.js.map +1 -1
- package/dist/cjs/cryptography/signature.js +14 -18
- package/dist/cjs/cryptography/signature.js.map +1 -1
- package/dist/cjs/experimental/cache.js +1 -5
- package/dist/cjs/experimental/cache.js.map +1 -1
- package/dist/cjs/experimental/client.js +3 -7
- package/dist/cjs/experimental/client.js.map +1 -1
- package/dist/cjs/experimental/core.js +11 -15
- package/dist/cjs/experimental/core.js.map +1 -1
- package/dist/cjs/experimental/errors.js +2 -7
- package/dist/cjs/experimental/errors.js.map +1 -1
- package/dist/cjs/experimental/index.js +5 -12
- package/dist/cjs/experimental/index.js.map +1 -1
- package/dist/cjs/experimental/persistent-storage.js +30 -36
- package/dist/cjs/experimental/persistent-storage.js.map +1 -1
- package/dist/cjs/experimental/persistent-storage.test.js +18 -20
- package/dist/cjs/experimental/persistent-storage.test.js.map +1 -1
- package/dist/cjs/experimental/transports/utils.js +6 -10
- package/dist/cjs/experimental/transports/utils.js.map +1 -1
- package/dist/cjs/experimental/types.js +1 -2
- package/dist/cjs/experimental/types.js.map +1 -1
- package/dist/cjs/faucet/faucet.js +6 -15
- package/dist/cjs/faucet/faucet.js.map +1 -1
- package/dist/cjs/faucet/index.js +1 -10
- package/dist/cjs/faucet/index.js.map +1 -1
- package/dist/cjs/grpc/client.js +20 -24
- package/dist/cjs/grpc/client.js.map +1 -1
- package/dist/cjs/grpc/core.js +65 -70
- package/dist/cjs/grpc/core.js.map +1 -1
- package/dist/cjs/grpc/index.js +2 -7
- package/dist/cjs/grpc/index.js.map +1 -1
- package/dist/cjs/grpc/proto/google/protobuf/any.js +10 -13
- package/dist/cjs/grpc/proto/google/protobuf/any.js.map +1 -1
- package/dist/cjs/grpc/proto/google/protobuf/duration.js +8 -11
- package/dist/cjs/grpc/proto/google/protobuf/duration.js.map +1 -1
- package/dist/cjs/grpc/proto/google/protobuf/empty.js +3 -6
- package/dist/cjs/grpc/proto/google/protobuf/empty.js.map +1 -1
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +7 -10
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.js.map +1 -1
- package/dist/cjs/grpc/proto/google/protobuf/struct.js +25 -28
- package/dist/cjs/grpc/proto/google/protobuf/struct.js.map +1 -1
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +11 -14
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.js.map +1 -1
- package/dist/cjs/grpc/proto/google/rpc/error_details.js +36 -39
- package/dist/cjs/grpc/proto/google/rpc/error_details.js.map +1 -1
- package/dist/cjs/grpc/proto/google/rpc/status.js +5 -8
- package/dist/cjs/grpc/proto/google/rpc/status.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +5 -8
- package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +3 -6
- package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +3 -6
- package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +13 -16
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +10 -13
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +20 -23
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +29 -32
- package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +12 -15
- package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +2 -5
- package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +11 -14
- package/dist/cjs/grpc/proto/sui/rpc/v2/event.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +17 -20
- package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +45 -48
- package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +3 -6
- package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +7 -10
- package/dist/cjs/grpc/proto/sui/rpc/v2/input.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +5 -8
- package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +13 -17
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +73 -76
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +48 -51
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +10 -14
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +36 -39
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +8 -12
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +21 -24
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +15 -18
- package/dist/cjs/grpc/proto/sui/rpc/v2/object.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +3 -6
- package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +5 -8
- package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +3 -6
- package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +67 -70
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +2 -5
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +7 -11
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +15 -18
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +11 -15
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +67 -70
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +7 -11
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +13 -16
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +38 -41
- package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +124 -127
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +8 -12
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +41 -44
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -1
- package/dist/cjs/index.js +22 -87
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jsonRpc/client.js +29 -34
- package/dist/cjs/jsonRpc/client.js.map +1 -1
- package/dist/cjs/jsonRpc/core.js +29 -33
- package/dist/cjs/jsonRpc/core.js.map +1 -1
- package/dist/cjs/jsonRpc/errors.js +3 -9
- package/dist/cjs/jsonRpc/errors.js.map +1 -1
- package/dist/cjs/jsonRpc/http-transport.js +9 -13
- package/dist/cjs/jsonRpc/http-transport.js.map +1 -1
- package/dist/cjs/jsonRpc/index.js +3 -12
- package/dist/cjs/jsonRpc/index.js.map +1 -1
- package/dist/cjs/jsonRpc/json-rpc-resolver.js +19 -22
- package/dist/cjs/jsonRpc/json-rpc-resolver.js.map +1 -1
- package/dist/cjs/jsonRpc/rpc-websocket-client.js +5 -9
- package/dist/cjs/jsonRpc/rpc-websocket-client.js.map +1 -1
- package/dist/cjs/jsonRpc/types/chain.js +1 -2
- package/dist/cjs/jsonRpc/types/chain.js.map +1 -1
- package/dist/cjs/jsonRpc/types/changes.js +1 -2
- package/dist/cjs/jsonRpc/types/changes.js.map +1 -1
- package/dist/cjs/jsonRpc/types/coins.js +1 -2
- package/dist/cjs/jsonRpc/types/coins.js.map +1 -1
- package/dist/cjs/jsonRpc/types/common.js +1 -2
- package/dist/cjs/jsonRpc/types/common.js.map +1 -1
- package/dist/cjs/jsonRpc/types/generated.js +1 -2
- package/dist/cjs/jsonRpc/types/generated.js.map +1 -1
- package/dist/cjs/jsonRpc/types/index.js +1 -2
- package/dist/cjs/jsonRpc/types/index.js.map +1 -1
- package/dist/cjs/jsonRpc/types/params.js +1 -2
- package/dist/cjs/jsonRpc/types/params.js.map +1 -1
- package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +7 -11
- package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js.map +1 -1
- package/dist/cjs/keypairs/ed25519/index.js +2 -8
- package/dist/cjs/keypairs/ed25519/index.js.map +1 -1
- package/dist/cjs/keypairs/ed25519/keypair.js +26 -30
- package/dist/cjs/keypairs/ed25519/keypair.js.map +1 -1
- package/dist/cjs/keypairs/ed25519/publickey.js +10 -14
- package/dist/cjs/keypairs/ed25519/publickey.js.map +1 -1
- package/dist/cjs/keypairs/index.js +4 -20
- package/dist/cjs/keypairs/index.js.map +1 -1
- package/dist/cjs/keypairs/passkey/index.js +2 -9
- package/dist/cjs/keypairs/passkey/index.js.map +1 -1
- package/dist/cjs/keypairs/passkey/keypair.js +29 -35
- package/dist/cjs/keypairs/passkey/keypair.js.map +1 -1
- package/dist/cjs/keypairs/passkey/publickey.js +35 -41
- package/dist/cjs/keypairs/passkey/publickey.js.map +1 -1
- package/dist/cjs/keypairs/passkey/types.js +1 -2
- package/dist/cjs/keypairs/passkey/types.js.map +1 -1
- package/dist/cjs/keypairs/secp256k1/index.js +2 -8
- package/dist/cjs/keypairs/secp256k1/index.js.map +1 -1
- package/dist/cjs/keypairs/secp256k1/keypair.js +25 -29
- package/dist/cjs/keypairs/secp256k1/keypair.js.map +1 -1
- package/dist/cjs/keypairs/secp256k1/publickey.js +11 -15
- package/dist/cjs/keypairs/secp256k1/publickey.js.map +1 -1
- package/dist/cjs/keypairs/secp256r1/index.js +2 -8
- package/dist/cjs/keypairs/secp256r1/index.js.map +1 -1
- package/dist/cjs/keypairs/secp256r1/keypair.js +25 -29
- package/dist/cjs/keypairs/secp256r1/keypair.js.map +1 -1
- package/dist/cjs/keypairs/secp256r1/publickey.js +12 -16
- package/dist/cjs/keypairs/secp256r1/publickey.js.map +1 -1
- package/dist/cjs/multisig/index.js +2 -8
- package/dist/cjs/multisig/index.js.map +1 -1
- package/dist/cjs/multisig/publickey.js +40 -45
- package/dist/cjs/multisig/publickey.js.map +1 -1
- package/dist/cjs/multisig/signer.js +5 -9
- package/dist/cjs/multisig/signer.js.map +1 -1
- package/dist/cjs/transactions/Arguments.js +5 -8
- package/dist/cjs/transactions/Arguments.js.map +1 -1
- package/dist/cjs/transactions/Commands.js +21 -24
- package/dist/cjs/transactions/Commands.js.map +1 -1
- package/dist/cjs/transactions/Inputs.js +7 -10
- package/dist/cjs/transactions/Inputs.js.map +1 -1
- package/dist/cjs/transactions/ObjectCache.js +7 -13
- package/dist/cjs/transactions/ObjectCache.js.map +1 -1
- package/dist/cjs/transactions/Transaction.js +54 -59
- package/dist/cjs/transactions/Transaction.js.map +1 -1
- package/dist/cjs/transactions/TransactionData.js +27 -31
- package/dist/cjs/transactions/TransactionData.js.map +1 -1
- package/dist/cjs/transactions/__tests__/Transaction.test.js +71 -73
- package/dist/cjs/transactions/__tests__/Transaction.test.js.map +1 -1
- package/dist/cjs/transactions/__tests__/bcs.test.js +26 -28
- package/dist/cjs/transactions/__tests__/bcs.test.js.map +1 -1
- package/dist/cjs/transactions/data/internal.js +122 -126
- package/dist/cjs/transactions/data/internal.js.map +1 -1
- package/dist/cjs/transactions/data/v1.js +114 -119
- package/dist/cjs/transactions/data/v1.js.map +1 -1
- package/dist/cjs/transactions/data/v2.js +63 -66
- package/dist/cjs/transactions/data/v2.js.map +1 -1
- package/dist/cjs/transactions/executor/caching.js +7 -11
- package/dist/cjs/transactions/executor/caching.js.map +1 -1
- package/dist/cjs/transactions/executor/parallel.js +20 -24
- package/dist/cjs/transactions/executor/parallel.js.map +1 -1
- package/dist/cjs/transactions/executor/queue.js +2 -7
- package/dist/cjs/transactions/executor/queue.js.map +1 -1
- package/dist/cjs/transactions/executor/serial.js +11 -16
- package/dist/cjs/transactions/executor/serial.js.map +1 -1
- package/dist/cjs/transactions/hash.js +3 -6
- package/dist/cjs/transactions/hash.js.map +1 -1
- package/dist/cjs/transactions/index.js +12 -31
- package/dist/cjs/transactions/index.js.map +1 -1
- package/dist/cjs/transactions/intents/CoinWithBalance.js +21 -25
- package/dist/cjs/transactions/intents/CoinWithBalance.js.map +1 -1
- package/dist/cjs/transactions/object.js +4 -7
- package/dist/cjs/transactions/object.js.map +1 -1
- package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +2 -7
- package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js.map +1 -1
- package/dist/cjs/transactions/pure.js +19 -22
- package/dist/cjs/transactions/pure.js.map +1 -1
- package/dist/cjs/transactions/resolve.js +10 -15
- package/dist/cjs/transactions/resolve.js.map +1 -1
- package/dist/cjs/transactions/serializer.js +34 -40
- package/dist/cjs/transactions/serializer.js.map +1 -1
- package/dist/cjs/transactions/utils.js +15 -23
- package/dist/cjs/transactions/utils.js.map +1 -1
- package/dist/cjs/utils/constants.js +18 -21
- package/dist/cjs/utils/constants.js.map +1 -1
- package/dist/cjs/utils/derived-objects.js +5 -8
- package/dist/cjs/utils/derived-objects.js.map +1 -1
- package/dist/cjs/utils/dynamic-fields.js +9 -12
- package/dist/cjs/utils/dynamic-fields.js.map +1 -1
- package/dist/cjs/utils/format.js +2 -6
- package/dist/cjs/utils/format.js.map +1 -1
- package/dist/cjs/utils/index.js +10 -46
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/move-registry.js +5 -10
- package/dist/cjs/utils/move-registry.js.map +1 -1
- package/dist/cjs/utils/sui-types.js +15 -25
- package/dist/cjs/utils/sui-types.js.map +1 -1
- package/dist/cjs/utils/suins.js +2 -6
- package/dist/cjs/utils/suins.js.map +1 -1
- package/dist/cjs/verify/index.js +1 -9
- package/dist/cjs/verify/index.js.map +1 -1
- package/dist/cjs/verify/verify.js +21 -28
- package/dist/cjs/verify/verify.js.map +1 -1
- package/dist/cjs/version.js +2 -5
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/w/call/allocation.js +88 -99
- package/dist/cjs/w/call/allocation.js.map +1 -1
- package/dist/cjs/w/call/arb.js +49 -58
- package/dist/cjs/w/call/arb.js.map +1 -1
- package/dist/cjs/w/call/arbitration.js +380 -406
- package/dist/cjs/w/call/arbitration.js.map +1 -1
- package/dist/cjs/w/call/base.js +63 -73
- package/dist/cjs/w/call/base.js.map +1 -1
- package/dist/cjs/w/call/contact.js +111 -123
- package/dist/cjs/w/call/contact.js.map +1 -1
- package/dist/cjs/w/call/demand.js +221 -238
- package/dist/cjs/w/call/demand.js.map +1 -1
- package/dist/cjs/w/call/entity.js +58 -75
- package/dist/cjs/w/call/entity.js.map +1 -1
- package/dist/cjs/w/call/guard-ins.js +1191 -1196
- package/dist/cjs/w/call/guard-ins.js.map +1 -1
- package/dist/cjs/w/call/guard.js +265 -286
- package/dist/cjs/w/call/guard.js.map +1 -1
- package/dist/cjs/w/call/index.js +22 -66
- package/dist/cjs/w/call/index.js.map +1 -1
- package/dist/cjs/w/call/machine.js +351 -378
- package/dist/cjs/w/call/machine.js.map +1 -1
- package/dist/cjs/w/call/order.js +102 -113
- package/dist/cjs/w/call/order.js.map +1 -1
- package/dist/cjs/w/call/passport.js +53 -65
- package/dist/cjs/w/call/passport.js.map +1 -1
- package/dist/cjs/w/call/payment.js +41 -50
- package/dist/cjs/w/call/payment.js.map +1 -1
- package/dist/cjs/w/call/permission.js +233 -263
- package/dist/cjs/w/call/permission.js.map +1 -1
- package/dist/cjs/w/call/personal.js +38 -42
- package/dist/cjs/w/call/personal.js.map +1 -1
- package/dist/cjs/w/call/progress.js +222 -240
- package/dist/cjs/w/call/progress.js.map +1 -1
- package/dist/cjs/w/call/proof.js +23 -30
- package/dist/cjs/w/call/proof.js.map +1 -1
- package/dist/cjs/w/call/repository.js +283 -302
- package/dist/cjs/w/call/repository.js.map +1 -1
- package/dist/cjs/w/call/resource.js +27 -37
- package/dist/cjs/w/call/resource.js.map +1 -1
- package/dist/cjs/w/call/reward.js +227 -241
- package/dist/cjs/w/call/reward.js.map +1 -1
- package/dist/cjs/w/call/service.js +653 -694
- package/dist/cjs/w/call/service.js.map +1 -1
- package/dist/cjs/w/call/treasury.js +270 -289
- package/dist/cjs/w/call/treasury.js.map +1 -1
- package/dist/cjs/w/call/util.js +201 -208
- package/dist/cjs/w/call/util.js.map +1 -1
- package/dist/cjs/w/common.js +117 -168
- package/dist/cjs/w/common.js.map +1 -1
- package/dist/cjs/w/exception.js +18 -30
- package/dist/cjs/w/exception.js.map +1 -1
- package/dist/cjs/w/index.js +8 -24
- package/dist/cjs/w/index.js.map +1 -1
- package/dist/cjs/w/local/account.js +73 -77
- package/dist/cjs/w/local/account.js.map +1 -1
- package/dist/cjs/w/local/cache.js +5 -9
- package/dist/cjs/w/local/cache.js.map +1 -1
- package/dist/cjs/w/local/config.js +10 -14
- package/dist/cjs/w/local/config.js.map +1 -1
- package/dist/cjs/w/local/index.js +65 -98
- package/dist/cjs/w/local/index.js.map +1 -1
- package/dist/cjs/w/local/local.js +59 -65
- package/dist/cjs/w/local/local.js.map +1 -1
- package/dist/cjs/w/local/storage.js +13 -56
- package/dist/cjs/w/local/storage.js.map +1 -1
- package/dist/cjs/w/local/token.js +20 -24
- package/dist/cjs/w/local/token.js.map +1 -1
- package/dist/cjs/w/local/util.js +3 -39
- package/dist/cjs/w/local/util.js.map +1 -1
- package/dist/cjs/w/local/wip.js +22 -70
- package/dist/cjs/w/local/wip.js.map +1 -1
- package/dist/cjs/w/messenger/crypto.js +34 -57
- package/dist/cjs/w/messenger/crypto.js.map +1 -1
- package/dist/cjs/w/messenger/index.js +4 -31
- package/dist/cjs/w/messenger/index.js.map +1 -1
- package/dist/cjs/w/messenger/messenger-api.d.ts +1 -3
- package/dist/cjs/w/messenger/messenger-api.js +128 -178
- package/dist/cjs/w/messenger/messenger-api.js.map +1 -1
- package/dist/cjs/w/messenger/messenger-manager.d.ts +3 -5
- package/dist/cjs/w/messenger/messenger-manager.js +65 -69
- package/dist/cjs/w/messenger/messenger-manager.js.map +1 -1
- package/dist/cjs/w/messenger/messenger.js +100 -137
- package/dist/cjs/w/messenger/messenger.js.map +1 -1
- package/dist/cjs/w/messenger/server.js +40 -44
- package/dist/cjs/w/messenger/server.js.map +1 -1
- package/dist/cjs/w/messenger/session.js +52 -56
- package/dist/cjs/w/messenger/session.js.map +1 -1
- package/dist/cjs/w/messenger/storage.js +13 -57
- package/dist/cjs/w/messenger/storage.js.map +1 -1
- package/dist/cjs/w/messenger/types.d.ts +3 -1
- package/dist/cjs/w/messenger/types.js +23 -27
- package/dist/cjs/w/messenger/types.js.map +1 -1
- package/dist/cjs/w/messenger/utils.js +1 -4
- package/dist/cjs/w/messenger/utils.js.map +1 -1
- package/dist/cjs/w/query/bult-in.js +22 -27
- package/dist/cjs/w/query/bult-in.js.map +1 -1
- package/dist/cjs/w/query/event.js +13 -18
- package/dist/cjs/w/query/event.js.map +1 -1
- package/dist/cjs/w/query/index.js +5 -21
- package/dist/cjs/w/query/index.js.map +1 -1
- package/dist/cjs/w/query/object.js +229 -266
- package/dist/cjs/w/query/object.js.map +1 -1
- package/dist/cjs/w/query/received.js +17 -21
- package/dist/cjs/w/query/received.js.map +1 -1
- package/dist/cjs/w/query/util.js +13 -17
- package/dist/cjs/w/query/util.js.map +1 -1
- package/dist/cjs/w/util.js +211 -225
- package/dist/cjs/w/util.js.map +1 -1
- package/dist/esm/experimental/persistent-storage.test.js +1 -1
- package/dist/esm/experimental/persistent-storage.test.js.map +1 -1
- package/dist/esm/w/messenger/messenger-api.d.ts +1 -3
- package/dist/esm/w/messenger/messenger-api.js +7 -8
- package/dist/esm/w/messenger/messenger-api.js.map +1 -1
- package/dist/esm/w/messenger/messenger-manager.d.ts +3 -5
- package/dist/esm/w/messenger/messenger-manager.js +16 -16
- package/dist/esm/w/messenger/messenger-manager.js.map +1 -1
- package/dist/esm/w/messenger/types.d.ts +3 -1
- package/dist/esm/w/messenger/types.js.map +1 -1
- package/package.json +7 -4
- package/scripts/download-prebuilds.js +213 -195
- package/scripts/install-better-sqlite3.js +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../../../src/keypairs/ed25519/keypair.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../../../src/keypairs/ed25519/keypair.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const publickey_js_1 = require("../../cryptography/publickey.js");
|
|
9
|
-
const signature_scheme_js_1 = require("../../cryptography/signature-scheme.js");
|
|
3
|
+
import { fromBase64 } from "@mysten/bcs";
|
|
4
|
+
import { ed25519 } from "@noble/curves/ed25519";
|
|
5
|
+
import { bytesEqual, parseSerializedKeypairSignature, PublicKey, } from "../../cryptography/publickey.js";
|
|
6
|
+
import { SIGNATURE_SCHEME_TO_FLAG } from "../../cryptography/signature-scheme.js";
|
|
10
7
|
const PUBLIC_KEY_SIZE = 32;
|
|
11
8
|
/**
|
|
12
9
|
* An Ed25519 public key
|
|
13
10
|
*/
|
|
14
|
-
class Ed25519PublicKey extends
|
|
11
|
+
export class Ed25519PublicKey extends PublicKey {
|
|
15
12
|
static SIZE = PUBLIC_KEY_SIZE;
|
|
16
13
|
data;
|
|
17
14
|
/**
|
|
@@ -21,7 +18,7 @@ class Ed25519PublicKey extends publickey_js_1.PublicKey {
|
|
|
21
18
|
constructor(value) {
|
|
22
19
|
super();
|
|
23
20
|
if (typeof value === "string") {
|
|
24
|
-
this.data =
|
|
21
|
+
this.data = fromBase64(value);
|
|
25
22
|
}
|
|
26
23
|
else if (value instanceof Uint8Array) {
|
|
27
24
|
this.data = value;
|
|
@@ -49,7 +46,7 @@ class Ed25519PublicKey extends publickey_js_1.PublicKey {
|
|
|
49
46
|
* Return the Sui address associated with this Ed25519 public key
|
|
50
47
|
*/
|
|
51
48
|
flag() {
|
|
52
|
-
return
|
|
49
|
+
return SIGNATURE_SCHEME_TO_FLAG["ED25519"];
|
|
53
50
|
}
|
|
54
51
|
/**
|
|
55
52
|
* Verifies that the signature is valid for for the provided message
|
|
@@ -57,11 +54,11 @@ class Ed25519PublicKey extends publickey_js_1.PublicKey {
|
|
|
57
54
|
async verify(message, signature) {
|
|
58
55
|
let bytes;
|
|
59
56
|
if (typeof signature === "string") {
|
|
60
|
-
const parsed =
|
|
57
|
+
const parsed = parseSerializedKeypairSignature(signature);
|
|
61
58
|
if (parsed.signatureScheme !== "ED25519") {
|
|
62
59
|
throw new Error("Invalid signature scheme");
|
|
63
60
|
}
|
|
64
|
-
if (!
|
|
61
|
+
if (!bytesEqual(this.toRawBytes(), parsed.publicKey)) {
|
|
65
62
|
throw new Error("Signature does not match public key");
|
|
66
63
|
}
|
|
67
64
|
bytes = parsed.signature;
|
|
@@ -69,8 +66,7 @@ class Ed25519PublicKey extends publickey_js_1.PublicKey {
|
|
|
69
66
|
else {
|
|
70
67
|
bytes = signature;
|
|
71
68
|
}
|
|
72
|
-
return
|
|
69
|
+
return ed25519.verify(bytes, message, this.toRawBytes());
|
|
73
70
|
}
|
|
74
71
|
}
|
|
75
|
-
exports.Ed25519PublicKey = Ed25519PublicKey;
|
|
76
72
|
//# sourceMappingURL=publickey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publickey.js","sourceRoot":"","sources":["../../../../src/keypairs/ed25519/publickey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publickey.js","sourceRoot":"","sources":["../../../../src/keypairs/ed25519/publickey.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,sCAAsC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EACN,UAAU,EACV,+BAA+B,EAC/B,SAAS,GACT,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC9C,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC;IACtB,IAAI,CAA0B;IAEtC;;;OAGG;IACH,YAAY,KAAwB;QACnC,KAAK,EAAE,CAAC;QAER,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,GAAG,KAAgC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACd,sCAAsC,eAAe,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CACtF,CAAC;QACH,CAAC;IACF,CAAC;IAED;;OAEG;IACM,MAAM,CAAC,SAA2B;QAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,UAAU;QACT,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,IAAI;QACH,OAAO,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACX,OAAmB,EACnB,SAA8B;QAE9B,IAAI,KAAK,CAAC;QACV,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACxD,CAAC;YAED,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,KAAK,GAAG,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1D,CAAC"}
|
|
@@ -1,23 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright (c) Wowok.
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
-
}
|
|
10
|
-
Object.defineProperty(o, k2, desc);
|
|
11
|
-
}) : (function(o, m, k, k2) {
|
|
12
|
-
if (k2 === undefined) k2 = k;
|
|
13
|
-
o[k2] = m[k];
|
|
14
|
-
}));
|
|
15
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
16
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
17
|
-
};
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
__exportStar(require("./ed25519/index.js"), exports);
|
|
20
|
-
__exportStar(require("./passkey/index.js"), exports);
|
|
21
|
-
__exportStar(require("./secp256k1/index.js"), exports);
|
|
22
|
-
__exportStar(require("./secp256r1/index.js"), exports);
|
|
3
|
+
export * from "./ed25519/index.js";
|
|
4
|
+
export * from "./passkey/index.js";
|
|
5
|
+
export * from "./secp256k1/index.js";
|
|
6
|
+
export * from "./secp256r1/index.js";
|
|
23
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keypairs/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keypairs/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,sCAAsC;AAEtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PasskeyPublicKey = exports.findCommonPublicKey = exports.BrowserPasskeyProvider = exports.PasskeyKeypair = void 0;
|
|
4
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
5
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(exports, "BrowserPasskeyProvider", { enumerable: true, get: function () { return keypair_js_1.BrowserPasskeyProvider; } });
|
|
9
|
-
Object.defineProperty(exports, "findCommonPublicKey", { enumerable: true, get: function () { return keypair_js_1.findCommonPublicKey; } });
|
|
10
|
-
var publickey_js_1 = require("./publickey.js");
|
|
11
|
-
Object.defineProperty(exports, "PasskeyPublicKey", { enumerable: true, get: function () { return publickey_js_1.PasskeyPublicKey; } });
|
|
3
|
+
export { PasskeyKeypair, BrowserPasskeyProvider, findCommonPublicKey, } from "./keypair.js";
|
|
4
|
+
export { PasskeyPublicKey } from "./publickey.js";
|
|
12
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/keypairs/passkey/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/keypairs/passkey/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,sCAAsC;AACtC,OAAO,EACN,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GACnB,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const bcs_js_1 = require("../../bcs/bcs.js");
|
|
13
|
-
const index_js_1 = require("../../cryptography/index.js");
|
|
14
|
-
const publickey_js_1 = require("./publickey.js");
|
|
3
|
+
import { toBase64 } from "@mysten/bcs";
|
|
4
|
+
import { secp256r1 } from "@noble/curves/p256";
|
|
5
|
+
import { blake2b } from "@noble/hashes/blake2b";
|
|
6
|
+
import { sha256 } from "@noble/hashes/sha256";
|
|
7
|
+
import { randomBytes } from "@noble/hashes/utils";
|
|
8
|
+
import { PasskeyAuthenticator } from "../../bcs/bcs.js";
|
|
9
|
+
import { messageWithIntent, SIGNATURE_SCHEME_TO_FLAG, Signer, } from "../../cryptography/index.js";
|
|
10
|
+
import { parseDerSPKI, PASSKEY_PUBLIC_KEY_SIZE, PASSKEY_SIGNATURE_SIZE, PasskeyPublicKey, } from "./publickey.js";
|
|
15
11
|
// Default browser implementation
|
|
16
|
-
class BrowserPasskeyProvider {
|
|
12
|
+
export class BrowserPasskeyProvider {
|
|
17
13
|
#name;
|
|
18
14
|
#options;
|
|
19
15
|
constructor(name, options) {
|
|
@@ -33,7 +29,7 @@ class BrowserPasskeyProvider {
|
|
|
33
29
|
name: this.#name,
|
|
34
30
|
displayName: this.#name,
|
|
35
31
|
...this.#options.user,
|
|
36
|
-
id:
|
|
32
|
+
id: randomBytes(10),
|
|
37
33
|
},
|
|
38
34
|
challenge: new TextEncoder().encode("Create passkey wallet on Sui"),
|
|
39
35
|
pubKeyCredParams: [{ alg: -7, type: "public-key" }],
|
|
@@ -58,12 +54,11 @@ class BrowserPasskeyProvider {
|
|
|
58
54
|
}));
|
|
59
55
|
}
|
|
60
56
|
}
|
|
61
|
-
exports.BrowserPasskeyProvider = BrowserPasskeyProvider;
|
|
62
57
|
/**
|
|
63
58
|
* @experimental
|
|
64
59
|
* A passkey signer used for signing transactions. This is a client side implementation for [SIP-9](https://github.com/sui-foundation/sips/blob/main/sips/sip-9.md).
|
|
65
60
|
*/
|
|
66
|
-
class PasskeyKeypair extends
|
|
61
|
+
export class PasskeyKeypair extends Signer {
|
|
67
62
|
publicKey;
|
|
68
63
|
provider;
|
|
69
64
|
/**
|
|
@@ -107,8 +102,8 @@ class PasskeyKeypair extends index_js_1.Signer {
|
|
|
107
102
|
}
|
|
108
103
|
else {
|
|
109
104
|
const derSPKI = credential.response.getPublicKey();
|
|
110
|
-
const pubkeyUncompressed =
|
|
111
|
-
const pubkey =
|
|
105
|
+
const pubkeyUncompressed = parseDerSPKI(new Uint8Array(derSPKI));
|
|
106
|
+
const pubkey = secp256r1.ProjectivePoint.fromHex(pubkeyUncompressed);
|
|
112
107
|
const pubkeyCompressed = pubkey.toRawBytes(true);
|
|
113
108
|
return new PasskeyKeypair(pubkeyCompressed, provider);
|
|
114
109
|
}
|
|
@@ -117,7 +112,7 @@ class PasskeyKeypair extends index_js_1.Signer {
|
|
|
117
112
|
* Return the public key for this passkey.
|
|
118
113
|
*/
|
|
119
114
|
getPublicKey() {
|
|
120
|
-
return new
|
|
115
|
+
return new PasskeyPublicKey(this.publicKey);
|
|
121
116
|
}
|
|
122
117
|
/**
|
|
123
118
|
* Return the signature for the provided data (i.e. blake2b(intent_message)).
|
|
@@ -132,19 +127,19 @@ class PasskeyKeypair extends index_js_1.Signer {
|
|
|
132
127
|
const decoder = new TextDecoder();
|
|
133
128
|
const clientDataJSONString = decoder.decode(clientDataJSON);
|
|
134
129
|
// parse the signature from DER format, normalize and convert to compressed format (33 bytes).
|
|
135
|
-
const sig =
|
|
130
|
+
const sig = secp256r1.Signature.fromDER(new Uint8Array(credential.response.signature));
|
|
136
131
|
const normalized = sig.normalizeS().toCompactRawBytes();
|
|
137
|
-
if (normalized.length !==
|
|
138
|
-
this.publicKey.length !==
|
|
132
|
+
if (normalized.length !== PASSKEY_SIGNATURE_SIZE ||
|
|
133
|
+
this.publicKey.length !== PASSKEY_PUBLIC_KEY_SIZE) {
|
|
139
134
|
throw new Error("Invalid signature or public key length");
|
|
140
135
|
}
|
|
141
136
|
// construct userSignature as flag || sig || pubkey for the secp256r1 signature.
|
|
142
137
|
const arr = new Uint8Array(1 + normalized.length + this.publicKey.length);
|
|
143
|
-
arr.set([
|
|
138
|
+
arr.set([SIGNATURE_SCHEME_TO_FLAG["Secp256r1"]]);
|
|
144
139
|
arr.set(normalized, 1);
|
|
145
140
|
arr.set(this.publicKey, 1 + normalized.length);
|
|
146
141
|
// serialize all fields into a passkey signature according to https://github.com/sui-foundation/sips/blob/main/sips/sip-9.md#signature-encoding
|
|
147
|
-
return
|
|
142
|
+
return PasskeyAuthenticator.serialize({
|
|
148
143
|
authenticatorData: authenticatorData,
|
|
149
144
|
clientDataJson: clientDataJSONString,
|
|
150
145
|
userSignature: arr,
|
|
@@ -156,19 +151,19 @@ class PasskeyKeypair extends index_js_1.Signer {
|
|
|
156
151
|
*/
|
|
157
152
|
async signWithIntent(bytes, intent) {
|
|
158
153
|
// prepend it into an intent message and computes the digest.
|
|
159
|
-
const intentMessage =
|
|
160
|
-
const digest =
|
|
154
|
+
const intentMessage = messageWithIntent(intent, bytes);
|
|
155
|
+
const digest = blake2b(intentMessage, { dkLen: 32 });
|
|
161
156
|
// sign the digest.
|
|
162
157
|
const signature = await this.sign(digest);
|
|
163
158
|
// prepend with the passkey flag.
|
|
164
159
|
const serializedSignature = new Uint8Array(1 + signature.length);
|
|
165
160
|
serializedSignature.set([
|
|
166
|
-
|
|
161
|
+
SIGNATURE_SCHEME_TO_FLAG[this.getKeyScheme()],
|
|
167
162
|
]);
|
|
168
163
|
serializedSignature.set(signature, 1);
|
|
169
164
|
return {
|
|
170
|
-
signature:
|
|
171
|
-
bytes:
|
|
165
|
+
signature: toBase64(serializedSignature),
|
|
166
|
+
bytes: toBase64(bytes),
|
|
172
167
|
};
|
|
173
168
|
}
|
|
174
169
|
/**
|
|
@@ -206,13 +201,13 @@ class PasskeyKeypair extends index_js_1.Signer {
|
|
|
206
201
|
static async signAndRecover(provider, message) {
|
|
207
202
|
const credential = await provider.get(message);
|
|
208
203
|
const fullMessage = messageFromAssertionResponse(credential.response);
|
|
209
|
-
const sig =
|
|
204
|
+
const sig = secp256r1.Signature.fromDER(new Uint8Array(credential.response.signature));
|
|
210
205
|
const res = [];
|
|
211
206
|
for (let i = 0; i < 4; i++) {
|
|
212
207
|
const s = sig.addRecoveryBit(i);
|
|
213
208
|
try {
|
|
214
|
-
const pubkey = s.recoverPublicKey(
|
|
215
|
-
const pk = new
|
|
209
|
+
const pubkey = s.recoverPublicKey(sha256(fullMessage));
|
|
210
|
+
const pk = new PasskeyPublicKey(pubkey.toRawBytes(true));
|
|
216
211
|
res.push(pk);
|
|
217
212
|
}
|
|
218
213
|
catch {
|
|
@@ -222,7 +217,6 @@ class PasskeyKeypair extends index_js_1.Signer {
|
|
|
222
217
|
return res;
|
|
223
218
|
}
|
|
224
219
|
}
|
|
225
|
-
exports.PasskeyKeypair = PasskeyKeypair;
|
|
226
220
|
/**
|
|
227
221
|
* Finds the unique public key that exists in both arrays, throws error if the common
|
|
228
222
|
* pubkey does not equal to one.
|
|
@@ -231,7 +225,7 @@ exports.PasskeyKeypair = PasskeyKeypair;
|
|
|
231
225
|
* @param arr2 - The second pubkeys array.
|
|
232
226
|
* @returns The only common pubkey in both arrays.
|
|
233
227
|
*/
|
|
234
|
-
function findCommonPublicKey(arr1, arr2) {
|
|
228
|
+
export function findCommonPublicKey(arr1, arr2) {
|
|
235
229
|
const matchingPubkeys = [];
|
|
236
230
|
for (const pubkey1 of arr1) {
|
|
237
231
|
for (const pubkey2 of arr2) {
|
|
@@ -251,7 +245,7 @@ function findCommonPublicKey(arr1, arr2) {
|
|
|
251
245
|
function messageFromAssertionResponse(response) {
|
|
252
246
|
const authenticatorData = new Uint8Array(response.authenticatorData);
|
|
253
247
|
const clientDataJSON = new Uint8Array(response.clientDataJSON);
|
|
254
|
-
const clientDataJSONDigest =
|
|
248
|
+
const clientDataJSONDigest = sha256(clientDataJSON);
|
|
255
249
|
return new Uint8Array([...authenticatorData, ...clientDataJSONDigest]);
|
|
256
250
|
}
|
|
257
251
|
//# sourceMappingURL=keypair.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../../../src/keypairs/passkey/keypair.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../../../src/keypairs/passkey/keypair.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const signature_scheme_js_1 = require("../../cryptography/signature-scheme.js");
|
|
14
|
-
exports.PASSKEY_PUBLIC_KEY_SIZE = 33;
|
|
15
|
-
exports.PASSKEY_UNCOMPRESSED_PUBLIC_KEY_SIZE = 65;
|
|
16
|
-
exports.PASSKEY_SIGNATURE_SIZE = 64;
|
|
3
|
+
import { fromBase64, toBase64 } from "@mysten/bcs";
|
|
4
|
+
import { secp256r1 } from "@noble/curves/p256";
|
|
5
|
+
import { sha256 } from "@noble/hashes/sha256";
|
|
6
|
+
import { PasskeyAuthenticator } from "../../bcs/bcs.js";
|
|
7
|
+
import { bytesEqual, PublicKey } from "../../cryptography/publickey.js";
|
|
8
|
+
import { SIGNATURE_SCHEME_TO_FLAG } from "../../cryptography/signature-scheme.js";
|
|
9
|
+
export const PASSKEY_PUBLIC_KEY_SIZE = 33;
|
|
10
|
+
export const PASSKEY_UNCOMPRESSED_PUBLIC_KEY_SIZE = 65;
|
|
11
|
+
export const PASSKEY_SIGNATURE_SIZE = 64;
|
|
17
12
|
/** Fixed DER header for secp256r1 SubjectPublicKeyInfo
|
|
18
13
|
DER structure for P-256 SPKI:
|
|
19
14
|
30 -- SEQUENCE
|
|
@@ -32,7 +27,7 @@ DER structure for P-256 SPKI:
|
|
|
32
27
|
===== above bytes are considered header =====
|
|
33
28
|
04 || x || y -- uncompressed point (65 bytes: 0x04 || 32-byte x || 32-byte y)
|
|
34
29
|
*/
|
|
35
|
-
|
|
30
|
+
export const SECP256R1_SPKI_HEADER = new Uint8Array([
|
|
36
31
|
0x30,
|
|
37
32
|
0x59, // SEQUENCE, length 89
|
|
38
33
|
0x30,
|
|
@@ -63,8 +58,8 @@ exports.SECP256R1_SPKI_HEADER = new Uint8Array([
|
|
|
63
58
|
/**
|
|
64
59
|
* A passkey public key
|
|
65
60
|
*/
|
|
66
|
-
class PasskeyPublicKey extends
|
|
67
|
-
static SIZE =
|
|
61
|
+
export class PasskeyPublicKey extends PublicKey {
|
|
62
|
+
static SIZE = PASSKEY_PUBLIC_KEY_SIZE;
|
|
68
63
|
data;
|
|
69
64
|
/**
|
|
70
65
|
* Create a new PasskeyPublicKey object
|
|
@@ -73,7 +68,7 @@ class PasskeyPublicKey extends publickey_js_1.PublicKey {
|
|
|
73
68
|
constructor(value) {
|
|
74
69
|
super();
|
|
75
70
|
if (typeof value === "string") {
|
|
76
|
-
this.data =
|
|
71
|
+
this.data = fromBase64(value);
|
|
77
72
|
}
|
|
78
73
|
else if (value instanceof Uint8Array) {
|
|
79
74
|
this.data = value;
|
|
@@ -81,8 +76,8 @@ class PasskeyPublicKey extends publickey_js_1.PublicKey {
|
|
|
81
76
|
else {
|
|
82
77
|
this.data = Uint8Array.from(value);
|
|
83
78
|
}
|
|
84
|
-
if (this.data.length !==
|
|
85
|
-
throw new Error(`Invalid public key input. Expected ${
|
|
79
|
+
if (this.data.length !== PASSKEY_PUBLIC_KEY_SIZE) {
|
|
80
|
+
throw new Error(`Invalid public key input. Expected ${PASSKEY_PUBLIC_KEY_SIZE} bytes, got ${this.data.length}`);
|
|
86
81
|
}
|
|
87
82
|
}
|
|
88
83
|
/**
|
|
@@ -101,7 +96,7 @@ class PasskeyPublicKey extends publickey_js_1.PublicKey {
|
|
|
101
96
|
* Return the Sui address associated with this Secp256r1 public key
|
|
102
97
|
*/
|
|
103
98
|
flag() {
|
|
104
|
-
return
|
|
99
|
+
return SIGNATURE_SCHEME_TO_FLAG["Passkey"];
|
|
105
100
|
}
|
|
106
101
|
/**
|
|
107
102
|
* Verifies that the signature is valid for for the provided message
|
|
@@ -113,23 +108,22 @@ class PasskeyPublicKey extends publickey_js_1.PublicKey {
|
|
|
113
108
|
return false;
|
|
114
109
|
}
|
|
115
110
|
// parse challenge from base64 url
|
|
116
|
-
const parsedChallenge =
|
|
117
|
-
if (!
|
|
111
|
+
const parsedChallenge = fromBase64(clientDataJSON.challenge.replace(/-/g, "+").replace(/_/g, "/"));
|
|
112
|
+
if (!bytesEqual(message, parsedChallenge)) {
|
|
118
113
|
return false;
|
|
119
114
|
}
|
|
120
|
-
const pk = parsed.userSignature.slice(1 +
|
|
121
|
-
if (!
|
|
115
|
+
const pk = parsed.userSignature.slice(1 + PASSKEY_SIGNATURE_SIZE);
|
|
116
|
+
if (!bytesEqual(this.toRawBytes(), pk)) {
|
|
122
117
|
return false;
|
|
123
118
|
}
|
|
124
119
|
const payload = new Uint8Array([
|
|
125
120
|
...parsed.authenticatorData,
|
|
126
|
-
...
|
|
121
|
+
...sha256(parsed.clientDataJson),
|
|
127
122
|
]);
|
|
128
|
-
const sig = parsed.userSignature.slice(1,
|
|
129
|
-
return
|
|
123
|
+
const sig = parsed.userSignature.slice(1, PASSKEY_SIGNATURE_SIZE + 1);
|
|
124
|
+
return secp256r1.verify(sig, sha256(payload), pk);
|
|
130
125
|
}
|
|
131
126
|
}
|
|
132
|
-
exports.PasskeyPublicKey = PasskeyPublicKey;
|
|
133
127
|
/**
|
|
134
128
|
* Parses a DER SubjectPublicKeyInfo into an uncompressed public key. This also verifies
|
|
135
129
|
* that the curve used is P-256 (secp256r1).
|
|
@@ -137,40 +131,40 @@ exports.PasskeyPublicKey = PasskeyPublicKey;
|
|
|
137
131
|
* @param data: DER SubjectPublicKeyInfo
|
|
138
132
|
* @returns uncompressed public key (`0x04 || x || y`)
|
|
139
133
|
*/
|
|
140
|
-
function parseDerSPKI(derBytes) {
|
|
134
|
+
export function parseDerSPKI(derBytes) {
|
|
141
135
|
// Verify length and header bytes are expected
|
|
142
136
|
if (derBytes.length !==
|
|
143
|
-
|
|
137
|
+
SECP256R1_SPKI_HEADER.length + PASSKEY_UNCOMPRESSED_PUBLIC_KEY_SIZE) {
|
|
144
138
|
throw new Error("Invalid DER length");
|
|
145
139
|
}
|
|
146
|
-
for (let i = 0; i <
|
|
147
|
-
if (derBytes[i] !==
|
|
140
|
+
for (let i = 0; i < SECP256R1_SPKI_HEADER.length; i++) {
|
|
141
|
+
if (derBytes[i] !== SECP256R1_SPKI_HEADER[i]) {
|
|
148
142
|
throw new Error("Invalid spki header");
|
|
149
143
|
}
|
|
150
144
|
}
|
|
151
|
-
if (derBytes[
|
|
145
|
+
if (derBytes[SECP256R1_SPKI_HEADER.length] !== 0x04) {
|
|
152
146
|
throw new Error("Invalid point marker");
|
|
153
147
|
}
|
|
154
148
|
// Returns the last 65 bytes `04 || x || y`
|
|
155
|
-
return derBytes.slice(
|
|
149
|
+
return derBytes.slice(SECP256R1_SPKI_HEADER.length);
|
|
156
150
|
}
|
|
157
151
|
/**
|
|
158
152
|
* Parse signature from bytes or base64 string into the following fields.
|
|
159
153
|
*/
|
|
160
|
-
function parseSerializedPasskeySignature(signature) {
|
|
161
|
-
const bytes = typeof signature === "string" ?
|
|
162
|
-
if (bytes[0] !==
|
|
154
|
+
export function parseSerializedPasskeySignature(signature) {
|
|
155
|
+
const bytes = typeof signature === "string" ? fromBase64(signature) : signature;
|
|
156
|
+
if (bytes[0] !== SIGNATURE_SCHEME_TO_FLAG.Passkey) {
|
|
163
157
|
throw new Error("Invalid signature scheme");
|
|
164
158
|
}
|
|
165
|
-
const dec =
|
|
159
|
+
const dec = PasskeyAuthenticator.parse(bytes.slice(1));
|
|
166
160
|
return {
|
|
167
161
|
signatureScheme: "Passkey",
|
|
168
|
-
serializedSignature:
|
|
162
|
+
serializedSignature: toBase64(bytes),
|
|
169
163
|
signature: bytes,
|
|
170
164
|
authenticatorData: dec.authenticatorData,
|
|
171
165
|
clientDataJson: dec.clientDataJson,
|
|
172
166
|
userSignature: new Uint8Array(dec.userSignature),
|
|
173
|
-
publicKey: new Uint8Array(dec.userSignature.slice(1 +
|
|
167
|
+
publicKey: new Uint8Array(dec.userSignature.slice(1 + PASSKEY_SIGNATURE_SIZE)),
|
|
174
168
|
};
|
|
175
169
|
}
|
|
176
170
|
//# sourceMappingURL=publickey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publickey.js","sourceRoot":"","sources":["../../../../src/keypairs/passkey/publickey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publickey.js","sourceRoot":"","sources":["../../../../src/keypairs/passkey/publickey.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/keypairs/passkey/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/keypairs/passkey/types.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,sCAAsC"}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var keypair_js_1 = require("./keypair.js");
|
|
7
|
-
Object.defineProperty(exports, "DEFAULT_SECP256K1_DERIVATION_PATH", { enumerable: true, get: function () { return keypair_js_1.DEFAULT_SECP256K1_DERIVATION_PATH; } });
|
|
8
|
-
Object.defineProperty(exports, "Secp256k1Keypair", { enumerable: true, get: function () { return keypair_js_1.Secp256k1Keypair; } });
|
|
9
|
-
var publickey_js_1 = require("./publickey.js");
|
|
10
|
-
Object.defineProperty(exports, "Secp256k1PublicKey", { enumerable: true, get: function () { return publickey_js_1.Secp256k1PublicKey; } });
|
|
3
|
+
export { DEFAULT_SECP256K1_DERIVATION_PATH, Secp256k1Keypair, } from "./keypair.js";
|
|
4
|
+
export { Secp256k1PublicKey } from "./publickey.js";
|
|
11
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/keypairs/secp256k1/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/keypairs/secp256k1/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,sCAAsC;AAEtC,OAAO,EACN,iCAAiC,EACjC,gBAAgB,GAEhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|