@haneullabs/haneul 2.5.1 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +129 -0
- package/README.md +36 -36
- package/dist/bcs/bcs.d.mts +6 -7
- package/dist/bcs/bcs.d.mts.map +1 -1
- package/dist/bcs/bcs.mjs.map +1 -1
- package/dist/bcs/effects.mjs.map +1 -1
- package/dist/bcs/index.d.mts +2 -2
- package/dist/bcs/index.d.mts.map +1 -1
- package/dist/bcs/index.mjs +2 -2
- package/dist/bcs/index.mjs.map +1 -1
- package/dist/bcs/pure.d.mts.map +1 -1
- package/dist/bcs/type-tag-serializer.d.mts.map +1 -1
- package/dist/bcs/types.d.mts +0 -1
- package/dist/bcs/types.d.mts.map +1 -1
- package/dist/client/cache.d.mts.map +1 -1
- package/dist/client/client.d.mts.map +1 -1
- package/dist/client/core-resolver.d.mts.map +1 -1
- package/dist/client/core-resolver.mjs +87 -68
- package/dist/client/core-resolver.mjs.map +1 -1
- package/dist/client/core.d.mts +9 -8
- package/dist/client/core.d.mts.map +1 -1
- package/dist/client/core.mjs +29 -10
- package/dist/client/core.mjs.map +1 -1
- package/dist/client/errors.d.mts.map +1 -1
- package/dist/client/mvr.d.mts +0 -1
- package/dist/client/mvr.d.mts.map +1 -1
- package/dist/client/types.d.mts +110 -24
- package/dist/client/types.d.mts.map +1 -1
- package/dist/client/utils.d.mts.map +1 -1
- package/dist/client/utils.mjs +7 -7
- package/dist/client/utils.mjs.map +1 -1
- package/dist/cryptography/index.d.mts +2 -2
- package/dist/cryptography/index.mjs +2 -2
- package/dist/cryptography/intent.d.mts +2 -2
- package/dist/cryptography/intent.d.mts.map +1 -1
- package/dist/cryptography/intent.mjs +2 -2
- package/dist/cryptography/intent.mjs.map +1 -1
- package/dist/cryptography/keypair.d.mts +3 -3
- package/dist/cryptography/keypair.d.mts.map +1 -1
- package/dist/cryptography/keypair.mjs +3 -3
- package/dist/cryptography/keypair.mjs.map +1 -1
- package/dist/cryptography/mnemonics.d.mts +5 -5
- package/dist/cryptography/mnemonics.d.mts.map +1 -1
- package/dist/cryptography/mnemonics.mjs +7 -7
- package/dist/cryptography/mnemonics.mjs.map +1 -1
- package/dist/cryptography/publickey.d.mts +2 -3
- package/dist/cryptography/publickey.d.mts.map +1 -1
- package/dist/cryptography/publickey.mjs +10 -10
- package/dist/cryptography/publickey.mjs.map +1 -1
- package/dist/cryptography/signature-scheme.d.mts.map +1 -1
- package/dist/cryptography/signature.d.mts +10 -13
- package/dist/cryptography/signature.d.mts.map +1 -1
- package/dist/cryptography/signature.mjs +2 -2
- package/dist/cryptography/signature.mjs.map +1 -1
- package/dist/faucet/faucet.d.mts +2 -2
- package/dist/faucet/faucet.d.mts.map +1 -1
- package/dist/faucet/faucet.mjs +2 -2
- package/dist/faucet/faucet.mjs.map +1 -1
- package/dist/faucet/index.d.mts +2 -2
- package/dist/faucet/index.mjs +2 -2
- package/dist/graphql/client.d.mts +20 -5
- package/dist/graphql/client.d.mts.map +1 -1
- package/dist/graphql/client.mjs +55 -7
- package/dist/graphql/client.mjs.map +1 -1
- package/dist/graphql/core.d.mts +6 -5
- package/dist/graphql/core.d.mts.map +1 -1
- package/dist/graphql/core.mjs +43 -47
- package/dist/graphql/core.mjs.map +1 -1
- package/dist/graphql/generated/queries.d.mts +0 -1
- package/dist/graphql/generated/queries.d.mts.map +1 -1
- package/dist/graphql/generated/queries.mjs +46 -10
- package/dist/graphql/generated/queries.mjs.map +1 -1
- package/dist/graphql/generated/tada-env.d.mts +706 -98
- package/dist/graphql/generated/tada-env.d.mts.map +1 -1
- package/dist/graphql/index.d.mts +2 -2
- package/dist/graphql/index.mjs +2 -2
- package/dist/graphql/schema/index.d.mts +0 -1
- package/dist/graphql/schema/index.d.mts.map +1 -1
- package/dist/graphql/types.d.mts.map +1 -1
- package/dist/grpc/client.d.mts +20 -5
- package/dist/grpc/client.d.mts.map +1 -1
- package/dist/grpc/client.mjs +47 -7
- package/dist/grpc/client.mjs.map +1 -1
- package/dist/grpc/core.d.mts +6 -5
- package/dist/grpc/core.d.mts.map +1 -1
- package/dist/grpc/core.mjs +35 -34
- package/dist/grpc/core.mjs.map +1 -1
- package/dist/grpc/index.d.mts +2 -2
- package/dist/grpc/index.mjs +2 -2
- package/dist/grpc/proto/google/protobuf/any.d.mts +0 -1
- package/dist/grpc/proto/google/protobuf/any.d.mts.map +1 -1
- package/dist/grpc/proto/google/protobuf/duration.d.mts +0 -1
- package/dist/grpc/proto/google/protobuf/duration.d.mts.map +1 -1
- package/dist/grpc/proto/google/protobuf/field_mask.d.mts +0 -1
- package/dist/grpc/proto/google/protobuf/field_mask.d.mts.map +1 -1
- package/dist/grpc/proto/google/protobuf/struct.d.mts +1 -2
- package/dist/grpc/proto/google/protobuf/struct.d.mts.map +1 -1
- package/dist/grpc/proto/google/protobuf/timestamp.d.mts +0 -1
- package/dist/grpc/proto/google/protobuf/timestamp.d.mts.map +1 -1
- package/dist/grpc/proto/google/rpc/status.d.mts +0 -1
- package/dist/grpc/proto/google/rpc/status.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/argument.d.mts +1 -2
- package/dist/grpc/proto/haneul/rpc/v2/argument.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/balance_change.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/balance_change.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/bcs.d.mts +1 -2
- package/dist/grpc/proto/haneul/rpc/v2/bcs.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/bcs.mjs.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/checkpoint.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/checkpoint.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/checkpoint_contents.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/checkpoint_contents.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/checkpoint_summary.d.mts +1 -2
- package/dist/grpc/proto/haneul/rpc/v2/checkpoint_summary.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/effects.d.mts +5 -6
- package/dist/grpc/proto/haneul/rpc/v2/effects.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/epoch.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/epoch.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/error_reason.d.mts +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/error_reason.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/event.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/event.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/executed_transaction.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/executed_transaction.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/execution_status.d.mts +8 -9
- package/dist/grpc/proto/haneul/rpc/v2/execution_status.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/execution_status.mjs +4 -4
- package/dist/grpc/proto/haneul/rpc/v2/execution_status.mjs.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/gas_cost_summary.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/gas_cost_summary.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/input.d.mts +3 -4
- package/dist/grpc/proto/haneul/rpc/v2/input.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/jwk.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/jwk.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/ledger_service.client.d.mts +4 -5
- package/dist/grpc/proto/haneul/rpc/v2/ledger_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/ledger_service.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/ledger_service.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/move_package.d.mts +5 -6
- package/dist/grpc/proto/haneul/rpc/v2/move_package.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/move_package_service.client.d.mts +4 -5
- package/dist/grpc/proto/haneul/rpc/v2/move_package_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/move_package_service.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/move_package_service.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/name_service.client.d.mts +4 -5
- package/dist/grpc/proto/haneul/rpc/v2/name_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/name_service.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/name_service.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/object.d.mts +38 -2
- package/dist/grpc/proto/haneul/rpc/v2/object.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/object.mjs +26 -1
- package/dist/grpc/proto/haneul/rpc/v2/object.mjs.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/object_reference.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/object_reference.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/owner.d.mts +1 -2
- package/dist/grpc/proto/haneul/rpc/v2/owner.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/protocol_config.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/protocol_config.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/signature.d.mts +1 -2
- package/dist/grpc/proto/haneul/rpc/v2/signature.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/signature.mjs.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/signature_scheme.d.mts +2 -2
- package/dist/grpc/proto/haneul/rpc/v2/signature_scheme.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/signature_scheme.mjs +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/signature_scheme.mjs.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/signature_verification_service.client.d.mts +4 -5
- package/dist/grpc/proto/haneul/rpc/v2/signature_verification_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/signature_verification_service.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/signature_verification_service.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/state_service.client.d.mts +4 -5
- package/dist/grpc/proto/haneul/rpc/v2/state_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/state_service.d.mts +4 -5
- package/dist/grpc/proto/haneul/rpc/v2/state_service.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/subscription_service.client.d.mts +4 -5
- package/dist/grpc/proto/haneul/rpc/v2/subscription_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/subscription_service.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/subscription_service.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/system_state.d.mts +3 -4
- package/dist/grpc/proto/haneul/rpc/v2/system_state.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/system_state.mjs +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/system_state.mjs.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/transaction.d.mts +4 -5
- package/dist/grpc/proto/haneul/rpc/v2/transaction.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/transaction_execution_service.client.d.mts +0 -1
- package/dist/grpc/proto/haneul/rpc/v2/transaction_execution_service.client.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/transaction_execution_service.d.mts +9 -2
- package/dist/grpc/proto/haneul/rpc/v2/transaction_execution_service.d.mts.map +1 -1
- package/dist/grpc/proto/haneul/rpc/v2/transaction_execution_service.mjs +23 -12
- package/dist/grpc/proto/haneul/rpc/v2/transaction_execution_service.mjs.map +1 -1
- package/dist/grpc/proto/types.d.mts +2 -2
- package/dist/grpc/proto/types.d.mts.map +1 -1
- package/dist/grpc/proto/types.mjs +2 -1
- package/dist/jsonRpc/client.d.mts +4 -7
- package/dist/jsonRpc/client.d.mts.map +1 -1
- package/dist/jsonRpc/client.mjs +4 -33
- package/dist/jsonRpc/client.mjs.map +1 -1
- package/dist/jsonRpc/core.d.mts +8 -15
- package/dist/jsonRpc/core.d.mts.map +1 -1
- package/dist/jsonRpc/core.mjs +81 -34
- package/dist/jsonRpc/core.mjs.map +1 -1
- package/dist/jsonRpc/errors.d.mts.map +1 -1
- package/dist/jsonRpc/http-transport.d.mts +1 -17
- package/dist/jsonRpc/http-transport.d.mts.map +1 -1
- package/dist/jsonRpc/http-transport.mjs +0 -23
- package/dist/jsonRpc/http-transport.mjs.map +1 -1
- package/dist/jsonRpc/index.d.mts +3 -3
- package/dist/jsonRpc/network.d.mts.map +1 -1
- package/dist/jsonRpc/types/chain.d.mts.map +1 -1
- package/dist/jsonRpc/types/changes.d.mts.map +1 -1
- package/dist/jsonRpc/types/coins.d.mts.map +1 -1
- package/dist/jsonRpc/types/common.d.mts +1 -2
- package/dist/jsonRpc/types/common.d.mts.map +1 -1
- package/dist/jsonRpc/types/generated.d.mts +101 -129
- package/dist/jsonRpc/types/generated.d.mts.map +1 -1
- package/dist/jsonRpc/types/index.d.mts +1 -1
- package/dist/jsonRpc/types/params.d.mts +9 -14
- package/dist/jsonRpc/types/params.d.mts.map +1 -1
- package/dist/keypairs/ed25519/keypair.d.mts +8 -6
- package/dist/keypairs/ed25519/keypair.d.mts.map +1 -1
- package/dist/keypairs/ed25519/keypair.mjs +13 -9
- package/dist/keypairs/ed25519/keypair.mjs.map +1 -1
- package/dist/keypairs/ed25519/publickey.d.mts +0 -1
- package/dist/keypairs/ed25519/publickey.d.mts.map +1 -1
- package/dist/keypairs/passkey/keypair.d.mts +12 -5
- package/dist/keypairs/passkey/keypair.d.mts.map +1 -1
- package/dist/keypairs/passkey/keypair.mjs +20 -7
- package/dist/keypairs/passkey/keypair.mjs.map +1 -1
- package/dist/keypairs/passkey/publickey.d.mts +0 -1
- package/dist/keypairs/passkey/publickey.d.mts.map +1 -1
- package/dist/keypairs/passkey/types.d.mts.map +1 -1
- package/dist/keypairs/secp256k1/keypair.d.mts +3 -3
- package/dist/keypairs/secp256k1/keypair.d.mts.map +1 -1
- package/dist/keypairs/secp256k1/keypair.mjs +6 -6
- package/dist/keypairs/secp256k1/keypair.mjs.map +1 -1
- package/dist/keypairs/secp256k1/publickey.d.mts +0 -1
- package/dist/keypairs/secp256k1/publickey.d.mts.map +1 -1
- package/dist/keypairs/secp256r1/keypair.d.mts +3 -3
- package/dist/keypairs/secp256r1/keypair.d.mts.map +1 -1
- package/dist/keypairs/secp256r1/keypair.mjs +6 -6
- package/dist/keypairs/secp256r1/keypair.mjs.map +1 -1
- package/dist/keypairs/secp256r1/publickey.d.mts +0 -1
- package/dist/keypairs/secp256r1/publickey.d.mts.map +1 -1
- package/dist/multisig/publickey.d.mts +1 -0
- package/dist/multisig/publickey.d.mts.map +1 -1
- package/dist/multisig/publickey.mjs +8 -8
- package/dist/multisig/publickey.mjs.map +1 -1
- package/dist/multisig/signer.d.mts.map +1 -1
- package/dist/transactions/Arguments.d.mts.map +1 -1
- package/dist/transactions/Commands.d.mts +1 -1
- package/dist/transactions/Commands.d.mts.map +1 -1
- package/dist/transactions/Commands.mjs.map +1 -1
- package/dist/transactions/Inputs.d.mts.map +1 -1
- package/dist/transactions/ObjectCache.d.mts +3 -3
- package/dist/transactions/ObjectCache.d.mts.map +1 -1
- package/dist/transactions/Transaction.d.mts +32 -6
- package/dist/transactions/Transaction.d.mts.map +1 -1
- package/dist/transactions/Transaction.mjs +23 -1
- package/dist/transactions/Transaction.mjs.map +1 -1
- package/dist/transactions/TransactionData.d.mts.map +1 -1
- package/dist/transactions/TransactionData.mjs +8 -8
- package/dist/transactions/TransactionData.mjs.map +1 -1
- package/dist/transactions/data/internal.d.mts +109 -109
- package/dist/transactions/data/internal.d.mts.map +1 -1
- package/dist/transactions/data/internal.mjs.map +1 -1
- package/dist/transactions/data/v1.d.mts +220 -221
- package/dist/transactions/data/v1.d.mts.map +1 -1
- package/dist/transactions/data/v2.d.mts +16 -16
- package/dist/transactions/data/v2.d.mts.map +1 -1
- package/dist/transactions/data/v2.mjs.map +1 -1
- package/dist/transactions/executor/caching.mjs +2 -2
- package/dist/transactions/executor/caching.mjs.map +1 -1
- package/dist/transactions/executor/parallel.d.mts +1 -1
- package/dist/transactions/executor/parallel.d.mts.map +1 -1
- package/dist/transactions/executor/parallel.mjs +1 -1
- package/dist/transactions/executor/parallel.mjs.map +1 -1
- package/dist/transactions/executor/serial.d.mts +3 -3
- package/dist/transactions/executor/serial.d.mts.map +1 -1
- package/dist/transactions/executor/serial.mjs.map +1 -1
- package/dist/transactions/intents/CoinWithBalance.d.mts.map +1 -1
- package/dist/transactions/intents/CoinWithBalance.mjs +174 -97
- package/dist/transactions/intents/CoinWithBalance.mjs.map +1 -1
- package/dist/transactions/object.d.mts.map +1 -1
- package/dist/transactions/pure.d.mts.map +1 -1
- package/dist/transactions/pure.mjs +12 -12
- package/dist/transactions/pure.mjs.map +1 -1
- package/dist/transactions/resolve.d.mts.map +1 -1
- package/dist/transactions/resolve.mjs +3 -3
- package/dist/transactions/resolve.mjs.map +1 -1
- package/dist/transactions/serializer.d.mts.map +1 -1
- package/dist/transactions/serializer.mjs +15 -15
- package/dist/transactions/serializer.mjs.map +1 -1
- package/dist/transactions/utils.d.mts +0 -1
- package/dist/transactions/utils.d.mts.map +1 -1
- package/dist/utils/coin-reservation.mjs +67 -0
- package/dist/utils/coin-reservation.mjs.map +1 -0
- package/dist/utils/constants.d.mts +2 -1
- package/dist/utils/constants.d.mts.map +1 -1
- package/dist/utils/constants.mjs +2 -1
- package/dist/utils/constants.mjs.map +1 -1
- package/dist/utils/derived-objects.d.mts +0 -1
- package/dist/utils/derived-objects.d.mts.map +1 -1
- package/dist/utils/dynamic-fields.d.mts.map +1 -1
- package/dist/utils/dynamic-fields.mjs +4 -4
- package/dist/utils/dynamic-fields.mjs.map +1 -1
- package/dist/utils/format.d.mts.map +1 -1
- package/dist/utils/haneul-types.d.mts.map +1 -1
- package/dist/utils/haneul-types.mjs +8 -0
- package/dist/utils/haneul-types.mjs.map +1 -1
- package/dist/utils/haneulns.d.mts.map +1 -1
- package/dist/utils/index.d.mts +2 -2
- package/dist/utils/index.mjs +2 -2
- package/dist/utils/move-registry.d.mts.map +1 -1
- package/dist/verify/index.d.mts +2 -2
- package/dist/verify/index.mjs +2 -2
- package/dist/verify/verify.d.mts +2 -2
- package/dist/verify/verify.d.mts.map +1 -1
- package/dist/verify/verify.mjs +2 -2
- package/dist/verify/verify.mjs.map +1 -1
- package/dist/version.mjs +1 -1
- package/dist/version.mjs.map +1 -1
- package/dist/zklogin/address.d.mts.map +1 -1
- package/dist/zklogin/bcs.d.mts +14 -14
- package/dist/zklogin/bcs.d.mts.map +1 -1
- package/dist/zklogin/jwt-decode.d.mts +0 -1
- package/dist/zklogin/jwt-decode.d.mts.map +1 -1
- package/dist/zklogin/jwt-utils.d.mts +0 -1
- package/dist/zklogin/jwt-utils.d.mts.map +1 -1
- package/dist/zklogin/nonce.d.mts.map +1 -1
- package/dist/zklogin/nonce.mjs +1 -1
- package/dist/zklogin/nonce.mjs.map +1 -1
- package/dist/zklogin/poseidon.d.mts.map +1 -1
- package/dist/zklogin/publickey.d.mts +0 -1
- package/dist/zklogin/publickey.d.mts.map +1 -1
- package/dist/zklogin/signature.d.mts.map +1 -1
- package/dist/zklogin/utils.d.mts.map +1 -1
- package/dist/zklogin/utils.mjs +1 -1
- package/dist/zklogin/utils.mjs.map +1 -1
- package/docs/bcs.md +132 -0
- package/docs/clients/core.md +616 -0
- package/docs/clients/graphql.md +99 -0
- package/docs/clients/grpc.md +152 -0
- package/docs/clients/index.md +93 -0
- package/docs/clients/json-rpc.md +235 -0
- package/docs/cryptography/keypairs.md +259 -0
- package/docs/cryptography/multisig.md +192 -0
- package/docs/cryptography/passkey.md +111 -0
- package/docs/cryptography/webcrypto-signer.md +81 -0
- package/docs/executors.md +148 -0
- package/docs/faucet.md +26 -0
- package/docs/hello-haneul.md +115 -0
- package/docs/index.md +56 -0
- package/docs/install.md +61 -0
- package/docs/llm-docs.md +32 -0
- package/docs/llms-index.md +66 -0
- package/docs/migrations/0.38.md +57 -0
- package/docs/migrations/haneul-1.0.md +454 -0
- package/docs/migrations/haneul-2.0/agent-prompt.md +42 -0
- package/docs/migrations/haneul-2.0/dapp-kit.md +350 -0
- package/docs/migrations/haneul-2.0/deepbook-v3.md +33 -0
- package/docs/migrations/haneul-2.0/haneul.md +341 -0
- package/docs/migrations/haneul-2.0/haneulns.md +42 -0
- package/docs/migrations/haneul-2.0/index.md +161 -0
- package/docs/migrations/haneul-2.0/json-rpc-migration.md +399 -0
- package/docs/migrations/haneul-2.0/kiosk.md +120 -0
- package/docs/migrations/haneul-2.0/sdk-maintainers.md +91 -0
- package/docs/migrations/haneul-2.0/seal.md +14 -0
- package/docs/migrations/haneul-2.0/wallet-builders.md +66 -0
- package/docs/migrations/haneul-2.0/walrus.md +41 -0
- package/docs/migrations/haneul-2.0/zksend.md +94 -0
- package/docs/plugins.md +255 -0
- package/docs/sdk-building.md +341 -0
- package/docs/transaction-building/basics.md +297 -0
- package/docs/transaction-building/gas.md +62 -0
- package/docs/transaction-building/intents.md +61 -0
- package/docs/transaction-building/offline.md +71 -0
- package/docs/transaction-building/sponsored-transactions.md +22 -0
- package/docs/utils/derived_objects.md +80 -0
- package/docs/utils/index.md +53 -0
- package/docs/zklogin.md +78 -0
- package/package.json +199 -199
- package/src/bcs/bcs.ts +13 -13
- package/src/bcs/effects.ts +20 -20
- package/src/bcs/index.ts +2 -2
- package/src/client/core-resolver.ts +150 -100
- package/src/client/core.ts +62 -22
- package/src/client/types.ts +109 -24
- package/src/cryptography/index.ts +2 -2
- package/src/cryptography/keypair.ts +2 -2
- package/src/cryptography/mnemonics.ts +7 -7
- package/src/cryptography/publickey.ts +8 -8
- package/src/faucet/faucet.ts +1 -1
- package/src/faucet/index.ts +1 -1
- package/src/graphql/client.ts +100 -8
- package/src/graphql/core.ts +73 -80
- package/src/graphql/generated/queries.ts +301 -51
- package/src/graphql/generated/schema.graphql +407 -104
- package/src/graphql/generated/tada-env.ts +779 -58
- package/src/graphql/index.ts +1 -1
- package/src/graphql/queries/getAllBalances.graphql +1 -1
- package/src/graphql/queries/getBalance.graphql +1 -1
- package/src/graphql/queries/getCoins.graphql +2 -2
- package/src/graphql/queries/getDynamicFields.graphql +9 -1
- package/src/graphql/queries/getMoveFunction.graphql +1 -1
- package/src/graphql/queries/getProtocolConfig.graphql +18 -0
- package/src/graphql/queries/nameService.graphql +1 -1
- package/src/graphql/queries/objects.graphql +11 -1
- package/src/graphql/queries/transactions.graphql +1 -3
- package/src/graphql/queries/verifyZkLoginSignature.graphql +1 -2
- package/src/grpc/client.ts +66 -8
- package/src/grpc/core.ts +74 -35
- package/src/grpc/index.ts +1 -1
- package/src/grpc/proto/haneul/rpc/v2/bcs.ts +1 -1
- package/src/grpc/proto/haneul/rpc/v2/execution_status.ts +4 -4
- package/src/grpc/proto/haneul/rpc/v2/object.ts +44 -0
- package/src/grpc/proto/haneul/rpc/v2/signature.ts +1 -1
- package/src/grpc/proto/haneul/rpc/v2/signature_scheme.ts +1 -1
- package/src/grpc/proto/haneul/rpc/v2/system_state.ts +4 -4
- package/src/grpc/proto/haneul/rpc/v2/transaction_execution_service.ts +16 -0
- package/src/jsonRpc/client.ts +5 -23
- package/src/jsonRpc/core.ts +114 -41
- package/src/jsonRpc/http-transport.ts +0 -52
- package/src/jsonRpc/index.ts +0 -1
- package/src/jsonRpc/types/common.ts +0 -1
- package/src/jsonRpc/types/generated.ts +2 -2
- package/src/jsonRpc/types/params.ts +6 -6
- package/src/keypairs/ed25519/keypair.ts +14 -10
- package/src/keypairs/passkey/keypair.ts +22 -8
- package/src/keypairs/secp256k1/keypair.ts +6 -6
- package/src/keypairs/secp256r1/keypair.ts +6 -6
- package/src/multisig/publickey.ts +1 -1
- package/src/transactions/Commands.ts +1 -1
- package/src/transactions/Transaction.ts +38 -1
- package/src/transactions/TransactionData.ts +3 -3
- package/src/transactions/__tests__/bcs.test.ts +3 -3
- package/src/transactions/data/internal.ts +12 -12
- package/src/transactions/data/v2.ts +6 -6
- package/src/transactions/executor/caching.ts +2 -2
- package/src/transactions/executor/parallel.ts +1 -2
- package/src/transactions/executor/serial.ts +1 -1
- package/src/transactions/intents/CoinWithBalance.ts +247 -121
- package/src/utils/coin-reservation.ts +84 -0
- package/src/utils/constants.ts +2 -0
- package/src/utils/haneul-types.ts +16 -1
- package/src/utils/index.ts +1 -0
- package/src/verify/index.ts +1 -1
- package/src/verify/verify.ts +1 -1
- package/src/version.ts +1 -1
- package/src/zklogin/nonce.ts +1 -1
- package/src/zklogin/utils.ts +1 -1
- package/dist/jsonRpc/rpc-websocket-client.d.mts +0 -26
- package/dist/jsonRpc/rpc-websocket-client.d.mts.map +0 -1
- package/dist/jsonRpc/rpc-websocket-client.mjs +0 -135
- package/dist/jsonRpc/rpc-websocket-client.mjs.map +0 -1
- package/src/jsonRpc/rpc-websocket-client.ts +0 -241
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.mjs","names":["bcs"],"sources":["../../src/transactions/serializer.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { BcsType } from '@haneullabs/bcs';\n\nimport { bcs } from '../bcs/index.js';\nimport type { HaneulMoveNormalizedType } from '../jsonRpc/index.js';\nimport { MOVE_STDLIB_ADDRESS, HANEUL_FRAMEWORK_ADDRESS } from '../utils/index.js';\nimport { normalizeHaneulAddress } from '../utils/haneul-types.js';\nimport type { HaneulClientTypes } from '../client/types.js';\n\n/**\n * Parses a type name like \"0x2::tx_context::TxContext\" into package, module, and name parts.\n */\nfunction parseTypeName(typeName: string): { package: string; module: string; name: string } {\n\tconst parts = typeName.split('::');\n\tif (parts.length !== 3) {\n\t\tthrow new Error(`Invalid type name format: ${typeName}`);\n\t}\n\treturn { package: parts[0], module: parts[1], name: parts[2] };\n}\n\nexport function isTxContext(param: HaneulClientTypes.OpenSignature): boolean {\n\tif (param.body.$kind !== 'datatype') {\n\t\treturn false;\n\t}\n\n\tconst { package: pkg, module, name } = parseTypeName(param.body.datatype.typeName);\n\n\treturn (\n\t\tnormalizeHaneulAddress(pkg) === HANEUL_FRAMEWORK_ADDRESS &&\n\t\tmodule === 'tx_context' &&\n\t\tname === 'TxContext'\n\t);\n}\n\nexport function getPureBcsSchema(\n\ttypeSignature: HaneulClientTypes.OpenSignatureBody,\n): BcsType<any> | null {\n\tswitch (typeSignature.$kind) {\n\t\tcase 'address':\n\t\t\treturn bcs.Address;\n\t\tcase 'bool':\n\t\t\treturn bcs.Bool;\n\t\tcase 'u8':\n\t\t\treturn bcs.U8;\n\t\tcase 'u16':\n\t\t\treturn bcs.U16;\n\t\tcase 'u32':\n\t\t\treturn bcs.U32;\n\t\tcase 'u64':\n\t\t\treturn bcs.U64;\n\t\tcase 'u128':\n\t\t\treturn bcs.U128;\n\t\tcase 'u256':\n\t\t\treturn bcs.U256;\n\t\tcase 'vector': {\n\t\t\tif (typeSignature.vector.$kind === 'u8') {\n\t\t\t\treturn bcs.byteVector().transform({\n\t\t\t\t\tinput: (val: string | Uint8Array) =>\n\t\t\t\t\t\ttypeof val === 'string' ? new TextEncoder().encode(val) : val,\n\t\t\t\t\toutput: (val) => val,\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst type = getPureBcsSchema(typeSignature.vector);\n\t\t\treturn type ? bcs.vector(type) : null;\n\t\t}\n\t\tcase 'datatype': {\n\t\t\tconst { package: pkg, module, name } = parseTypeName(typeSignature.datatype.typeName);\n\t\t\tconst normalizedPkg = normalizeHaneulAddress(pkg);\n\n\t\t\tif (normalizedPkg === MOVE_STDLIB_ADDRESS) {\n\t\t\t\tif (module === 'ascii' && name === 'String') {\n\t\t\t\t\treturn bcs.String;\n\t\t\t\t}\n\t\t\t\tif (module === 'string' && name === 'String') {\n\t\t\t\t\treturn bcs.String;\n\t\t\t\t}\n\t\t\t\tif (module === 'option' && name === 'Option') {\n\t\t\t\t\tconst type = getPureBcsSchema(typeSignature.datatype.typeParameters[0]);\n\t\t\t\t\treturn type ? bcs.vector(type) : null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (normalizedPkg === HANEUL_FRAMEWORK_ADDRESS) {\n\t\t\t\tif (module === 'object' && name === 'ID') {\n\t\t\t\t\treturn bcs.Address;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\t\tcase 'typeParameter':\n\t\tcase 'unknown':\n\t\t\treturn null;\n\t}\n}\n\nexport function normalizedTypeToMoveTypeSignature(\n\ttype: HaneulMoveNormalizedType,\n): HaneulClientTypes.OpenSignature {\n\tif (typeof type === 'object' && 'Reference' in type) {\n\t\treturn {\n\t\t\treference: 'immutable',\n\t\t\tbody: normalizedTypeToMoveTypeSignatureBody(type.Reference),\n\t\t};\n\t}\n\tif (typeof type === 'object' && 'MutableReference' in type) {\n\t\treturn {\n\t\t\treference: 'mutable',\n\t\t\tbody: normalizedTypeToMoveTypeSignatureBody(type.MutableReference),\n\t\t};\n\t}\n\n\treturn {\n\t\treference: null,\n\t\tbody: normalizedTypeToMoveTypeSignatureBody(type),\n\t};\n}\n\nfunction normalizedTypeToMoveTypeSignatureBody(\n\ttype: HaneulMoveNormalizedType,\n): HaneulClientTypes.OpenSignatureBody {\n\tif (typeof type === 'string') {\n\t\tswitch (type) {\n\t\t\tcase 'Address':\n\t\t\t\treturn { $kind: 'address' };\n\t\t\tcase 'Bool':\n\t\t\t\treturn { $kind: 'bool' };\n\t\t\tcase 'U8':\n\t\t\t\treturn { $kind: 'u8' };\n\t\t\tcase 'U16':\n\t\t\t\treturn { $kind: 'u16' };\n\t\t\tcase 'U32':\n\t\t\t\treturn { $kind: 'u32' };\n\t\t\tcase 'U64':\n\t\t\t\treturn { $kind: 'u64' };\n\t\t\tcase 'U128':\n\t\t\t\treturn { $kind: 'u128' };\n\t\t\tcase 'U256':\n\t\t\t\treturn { $kind: 'u256' };\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unexpected type ${type}`);\n\t\t}\n\t}\n\n\tif ('Vector' in type) {\n\t\treturn { $kind: 'vector', vector: normalizedTypeToMoveTypeSignatureBody(type.Vector) };\n\t}\n\n\tif ('Struct' in type) {\n\t\treturn {\n\t\t\t$kind: 'datatype',\n\t\t\tdatatype: {\n\t\t\t\ttypeName: `${type.Struct.address}::${type.Struct.module}::${type.Struct.name}`,\n\t\t\t\ttypeParameters: type.Struct.typeArguments.map(normalizedTypeToMoveTypeSignatureBody),\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('TypeParameter' in type) {\n\t\treturn { $kind: 'typeParameter', index: type.TypeParameter };\n\t}\n\n\tthrow new Error(`Unexpected type ${JSON.stringify(type)}`);\n}\n\nexport function pureBcsSchemaFromOpenSignatureBody(\n\ttypeSignature: HaneulClientTypes.OpenSignatureBody,\n): BcsType<any> {\n\tswitch (typeSignature.$kind) {\n\t\tcase 'address':\n\t\t\treturn bcs.Address;\n\t\tcase 'bool':\n\t\t\treturn bcs.Bool;\n\t\tcase 'u8':\n\t\t\treturn bcs.U8;\n\t\tcase 'u16':\n\t\t\treturn bcs.U16;\n\t\tcase 'u32':\n\t\t\treturn bcs.U32;\n\t\tcase 'u64':\n\t\t\treturn bcs.U64;\n\t\tcase 'u128':\n\t\t\treturn bcs.U128;\n\t\tcase 'u256':\n\t\t\treturn bcs.U256;\n\t\tcase 'vector':\n\t\t\treturn bcs.vector(pureBcsSchemaFromOpenSignatureBody(typeSignature.vector));\n\t\tdefault:\n\t\t\tthrow new Error(`Expected pure typeSignature, but got ${JSON.stringify(typeSignature)}`);\n\t}\n}\n"],"mappings":";;;;;;;;AAcA,SAAS,cAAc,UAAqE;CAC3F,MAAM,QAAQ,SAAS,MAAM,KAAK;AAClC,KAAI,MAAM,WAAW,EACpB,OAAM,IAAI,MAAM,6BAA6B,WAAW;AAEzD,QAAO;EAAE,SAAS,MAAM;EAAI,QAAQ,MAAM;EAAI,MAAM,MAAM;EAAI;;AAG/D,SAAgB,YAAY,OAAiD;AAC5E,KAAI,MAAM,KAAK,UAAU,WACxB,QAAO;CAGR,MAAM,EAAE,SAAS,KAAK,QAAQ,SAAS,cAAc,MAAM,KAAK,SAAS,SAAS;AAElF,QACC,uBAAuB,IAAI,KAAK,4BAChC,WAAW,gBACX,SAAS;;AAIX,SAAgB,iBACf,eACsB;AACtB,SAAQ,cAAc,OAAtB;EACC,KAAK,UACJ,QAAOA,
|
|
1
|
+
{"version":3,"file":"serializer.mjs","names":["bcs"],"sources":["../../src/transactions/serializer.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { BcsType } from '@haneullabs/bcs';\n\nimport { bcs } from '../bcs/index.js';\nimport type { HaneulMoveNormalizedType } from '../jsonRpc/index.js';\nimport { MOVE_STDLIB_ADDRESS, HANEUL_FRAMEWORK_ADDRESS } from '../utils/index.js';\nimport { normalizeHaneulAddress } from '../utils/haneul-types.js';\nimport type { HaneulClientTypes } from '../client/types.js';\n\n/**\n * Parses a type name like \"0x2::tx_context::TxContext\" into package, module, and name parts.\n */\nfunction parseTypeName(typeName: string): { package: string; module: string; name: string } {\n\tconst parts = typeName.split('::');\n\tif (parts.length !== 3) {\n\t\tthrow new Error(`Invalid type name format: ${typeName}`);\n\t}\n\treturn { package: parts[0], module: parts[1], name: parts[2] };\n}\n\nexport function isTxContext(param: HaneulClientTypes.OpenSignature): boolean {\n\tif (param.body.$kind !== 'datatype') {\n\t\treturn false;\n\t}\n\n\tconst { package: pkg, module, name } = parseTypeName(param.body.datatype.typeName);\n\n\treturn (\n\t\tnormalizeHaneulAddress(pkg) === HANEUL_FRAMEWORK_ADDRESS &&\n\t\tmodule === 'tx_context' &&\n\t\tname === 'TxContext'\n\t);\n}\n\nexport function getPureBcsSchema(\n\ttypeSignature: HaneulClientTypes.OpenSignatureBody,\n): BcsType<any> | null {\n\tswitch (typeSignature.$kind) {\n\t\tcase 'address':\n\t\t\treturn bcs.Address;\n\t\tcase 'bool':\n\t\t\treturn bcs.Bool;\n\t\tcase 'u8':\n\t\t\treturn bcs.U8;\n\t\tcase 'u16':\n\t\t\treturn bcs.U16;\n\t\tcase 'u32':\n\t\t\treturn bcs.U32;\n\t\tcase 'u64':\n\t\t\treturn bcs.U64;\n\t\tcase 'u128':\n\t\t\treturn bcs.U128;\n\t\tcase 'u256':\n\t\t\treturn bcs.U256;\n\t\tcase 'vector': {\n\t\t\tif (typeSignature.vector.$kind === 'u8') {\n\t\t\t\treturn bcs.byteVector().transform({\n\t\t\t\t\tinput: (val: string | Uint8Array) =>\n\t\t\t\t\t\ttypeof val === 'string' ? new TextEncoder().encode(val) : val,\n\t\t\t\t\toutput: (val) => val,\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst type = getPureBcsSchema(typeSignature.vector);\n\t\t\treturn type ? bcs.vector(type) : null;\n\t\t}\n\t\tcase 'datatype': {\n\t\t\tconst { package: pkg, module, name } = parseTypeName(typeSignature.datatype.typeName);\n\t\t\tconst normalizedPkg = normalizeHaneulAddress(pkg);\n\n\t\t\tif (normalizedPkg === MOVE_STDLIB_ADDRESS) {\n\t\t\t\tif (module === 'ascii' && name === 'String') {\n\t\t\t\t\treturn bcs.String;\n\t\t\t\t}\n\t\t\t\tif (module === 'string' && name === 'String') {\n\t\t\t\t\treturn bcs.String;\n\t\t\t\t}\n\t\t\t\tif (module === 'option' && name === 'Option') {\n\t\t\t\t\tconst type = getPureBcsSchema(typeSignature.datatype.typeParameters[0]);\n\t\t\t\t\treturn type ? bcs.vector(type) : null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (normalizedPkg === HANEUL_FRAMEWORK_ADDRESS) {\n\t\t\t\tif (module === 'object' && name === 'ID') {\n\t\t\t\t\treturn bcs.Address;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\t\tcase 'typeParameter':\n\t\tcase 'unknown':\n\t\t\treturn null;\n\t}\n}\n\nexport function normalizedTypeToMoveTypeSignature(\n\ttype: HaneulMoveNormalizedType,\n): HaneulClientTypes.OpenSignature {\n\tif (typeof type === 'object' && 'Reference' in type) {\n\t\treturn {\n\t\t\treference: 'immutable',\n\t\t\tbody: normalizedTypeToMoveTypeSignatureBody(type.Reference),\n\t\t};\n\t}\n\tif (typeof type === 'object' && 'MutableReference' in type) {\n\t\treturn {\n\t\t\treference: 'mutable',\n\t\t\tbody: normalizedTypeToMoveTypeSignatureBody(type.MutableReference),\n\t\t};\n\t}\n\n\treturn {\n\t\treference: null,\n\t\tbody: normalizedTypeToMoveTypeSignatureBody(type),\n\t};\n}\n\nfunction normalizedTypeToMoveTypeSignatureBody(\n\ttype: HaneulMoveNormalizedType,\n): HaneulClientTypes.OpenSignatureBody {\n\tif (typeof type === 'string') {\n\t\tswitch (type) {\n\t\t\tcase 'Address':\n\t\t\t\treturn { $kind: 'address' };\n\t\t\tcase 'Bool':\n\t\t\t\treturn { $kind: 'bool' };\n\t\t\tcase 'U8':\n\t\t\t\treturn { $kind: 'u8' };\n\t\t\tcase 'U16':\n\t\t\t\treturn { $kind: 'u16' };\n\t\t\tcase 'U32':\n\t\t\t\treturn { $kind: 'u32' };\n\t\t\tcase 'U64':\n\t\t\t\treturn { $kind: 'u64' };\n\t\t\tcase 'U128':\n\t\t\t\treturn { $kind: 'u128' };\n\t\t\tcase 'U256':\n\t\t\t\treturn { $kind: 'u256' };\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unexpected type ${type}`);\n\t\t}\n\t}\n\n\tif ('Vector' in type) {\n\t\treturn { $kind: 'vector', vector: normalizedTypeToMoveTypeSignatureBody(type.Vector) };\n\t}\n\n\tif ('Struct' in type) {\n\t\treturn {\n\t\t\t$kind: 'datatype',\n\t\t\tdatatype: {\n\t\t\t\ttypeName: `${type.Struct.address}::${type.Struct.module}::${type.Struct.name}`,\n\t\t\t\ttypeParameters: type.Struct.typeArguments.map(normalizedTypeToMoveTypeSignatureBody),\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('TypeParameter' in type) {\n\t\treturn { $kind: 'typeParameter', index: type.TypeParameter };\n\t}\n\n\tthrow new Error(`Unexpected type ${JSON.stringify(type)}`);\n}\n\nexport function pureBcsSchemaFromOpenSignatureBody(\n\ttypeSignature: HaneulClientTypes.OpenSignatureBody,\n): BcsType<any> {\n\tswitch (typeSignature.$kind) {\n\t\tcase 'address':\n\t\t\treturn bcs.Address;\n\t\tcase 'bool':\n\t\t\treturn bcs.Bool;\n\t\tcase 'u8':\n\t\t\treturn bcs.U8;\n\t\tcase 'u16':\n\t\t\treturn bcs.U16;\n\t\tcase 'u32':\n\t\t\treturn bcs.U32;\n\t\tcase 'u64':\n\t\t\treturn bcs.U64;\n\t\tcase 'u128':\n\t\t\treturn bcs.U128;\n\t\tcase 'u256':\n\t\t\treturn bcs.U256;\n\t\tcase 'vector':\n\t\t\treturn bcs.vector(pureBcsSchemaFromOpenSignatureBody(typeSignature.vector));\n\t\tdefault:\n\t\t\tthrow new Error(`Expected pure typeSignature, but got ${JSON.stringify(typeSignature)}`);\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.mts","names":[],"sources":["../../src/transactions/utils.ts"],"
|
|
1
|
+
{"version":3,"file":"utils.d.mts","names":[],"sources":["../../src/transactions/utils.ts"],"mappings":";;;;iBAsEgB,UAAA,CAAW,KAAA,YAAiB,KAAA,IAAS,QAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { normalizeHaneulAddress } from "./haneul-types.mjs";
|
|
2
|
+
import { TypeTagSerializer } from "../bcs/type-tag-serializer.mjs";
|
|
3
|
+
import { bcs as haneulBcs } from "../bcs/index.mjs";
|
|
4
|
+
import { deriveDynamicFieldID } from "./dynamic-fields.mjs";
|
|
5
|
+
import { ObjectRefSchema } from "../transactions/data/internal.mjs";
|
|
6
|
+
import { fromBase58, fromHex, toBase58, toHex } from "@haneullabs/bcs";
|
|
7
|
+
import { parse } from "valibot";
|
|
8
|
+
|
|
9
|
+
//#region src/utils/coin-reservation.ts
|
|
10
|
+
const HANEUL_ACCUMULATOR_ROOT_OBJECT_ID = normalizeHaneulAddress("0xacc");
|
|
11
|
+
const ACCUMULATOR_KEY_TYPE_TAG = TypeTagSerializer.parseFromStr("0x2::accumulator::Key<0x2::balance::Balance<0x2::haneul::HANEUL>>");
|
|
12
|
+
const COIN_RESERVATION_MAGIC = new Uint8Array([
|
|
13
|
+
172,
|
|
14
|
+
172,
|
|
15
|
+
172,
|
|
16
|
+
172,
|
|
17
|
+
172,
|
|
18
|
+
172,
|
|
19
|
+
172,
|
|
20
|
+
172,
|
|
21
|
+
172,
|
|
22
|
+
172,
|
|
23
|
+
172,
|
|
24
|
+
172,
|
|
25
|
+
172,
|
|
26
|
+
172,
|
|
27
|
+
172,
|
|
28
|
+
172,
|
|
29
|
+
172,
|
|
30
|
+
172,
|
|
31
|
+
172,
|
|
32
|
+
172
|
|
33
|
+
]);
|
|
34
|
+
function isCoinReservationDigest(digestBase58) {
|
|
35
|
+
return fromBase58(digestBase58).slice(12, 32).every((byte, i) => byte === COIN_RESERVATION_MAGIC[i]);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Derives the accumulator dynamic field object ID for the given owner,
|
|
39
|
+
* then XORs it with the chain identifier bytes to produce the objectId
|
|
40
|
+
* for the coin reservation ref.
|
|
41
|
+
*/
|
|
42
|
+
function deriveReservationObjectId(owner, chainIdentifier) {
|
|
43
|
+
const accBytes = fromHex(deriveDynamicFieldID(HANEUL_ACCUMULATOR_ROOT_OBJECT_ID, ACCUMULATOR_KEY_TYPE_TAG, haneulBcs.Address.serialize(owner).toBytes()).slice(2));
|
|
44
|
+
const chainBytes = fromBase58(chainIdentifier);
|
|
45
|
+
if (chainBytes.length !== 32) throw new Error(`Invalid chain identifier length: expected 32 bytes, got ${chainBytes.length}`);
|
|
46
|
+
const xored = new Uint8Array(32);
|
|
47
|
+
for (let i = 0; i < 32; i++) xored[i] = accBytes[i] ^ chainBytes[i];
|
|
48
|
+
return `0x${toHex(xored)}`;
|
|
49
|
+
}
|
|
50
|
+
function createCoinReservationRef(reservedBalance, owner, chainIdentifier, epoch) {
|
|
51
|
+
const digestBytes = new Uint8Array(32);
|
|
52
|
+
const view = new DataView(digestBytes.buffer);
|
|
53
|
+
view.setBigUint64(0, reservedBalance, true);
|
|
54
|
+
const epochNum = Number(epoch);
|
|
55
|
+
if (!Number.isSafeInteger(epochNum) || epochNum < 0 || epochNum > 4294967295) throw new Error(`Epoch ${epoch} out of u32 range for coin reservation digest`);
|
|
56
|
+
view.setUint32(8, epochNum, true);
|
|
57
|
+
digestBytes.set(COIN_RESERVATION_MAGIC, 12);
|
|
58
|
+
return parse(ObjectRefSchema, {
|
|
59
|
+
objectId: deriveReservationObjectId(owner, chainIdentifier),
|
|
60
|
+
version: "0",
|
|
61
|
+
digest: toBase58(digestBytes)
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
//#endregion
|
|
66
|
+
export { createCoinReservationRef, isCoinReservationDigest };
|
|
67
|
+
//# sourceMappingURL=coin-reservation.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coin-reservation.mjs","names":["bcs"],"sources":["../../src/utils/coin-reservation.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase58, fromHex, toBase58, toHex } from '@haneullabs/bcs';\nimport { parse } from 'valibot';\n\nimport { bcs, TypeTagSerializer } from '../bcs/index.js';\nimport { ObjectRefSchema } from '../transactions/data/internal.js';\nimport { deriveDynamicFieldID } from './dynamic-fields.js';\nimport { normalizeHaneulAddress } from './index.js';\n\nconst HANEUL_ACCUMULATOR_ROOT_OBJECT_ID = normalizeHaneulAddress('0xacc');\nconst ACCUMULATOR_KEY_TYPE_TAG = TypeTagSerializer.parseFromStr(\n\t'0x2::accumulator::Key<0x2::balance::Balance<0x2::haneul::HANEUL>>',\n);\n\nexport const COIN_RESERVATION_MAGIC = new Uint8Array([\n\t0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac,\n\t0xac, 0xac, 0xac, 0xac,\n]);\n\nexport function isCoinReservationDigest(digestBase58: string): boolean {\n\tconst digestBytes = fromBase58(digestBase58);\n\tconst last20Bytes = digestBytes.slice(12, 32);\n\treturn last20Bytes.every((byte, i) => byte === COIN_RESERVATION_MAGIC[i]);\n}\n\nexport function parseCoinReservationBalance(digestBase58: string): bigint {\n\tconst digestBytes = fromBase58(digestBase58);\n\tconst view = new DataView(digestBytes.buffer, digestBytes.byteOffset, digestBytes.byteLength);\n\treturn view.getBigUint64(0, true);\n}\n\n/**\n * Derives the accumulator dynamic field object ID for the given owner,\n * then XORs it with the chain identifier bytes to produce the objectId\n * for the coin reservation ref.\n */\nfunction deriveReservationObjectId(owner: string, chainIdentifier: string): string {\n\tconst keyBcs = bcs.Address.serialize(owner).toBytes();\n\tconst accumulatorId = deriveDynamicFieldID(\n\t\tHANEUL_ACCUMULATOR_ROOT_OBJECT_ID,\n\t\tACCUMULATOR_KEY_TYPE_TAG,\n\t\tkeyBcs,\n\t);\n\n\t// XOR the accumulator object ID bytes with the chain identifier bytes\n\tconst accBytes = fromHex(accumulatorId.slice(2));\n\tconst chainBytes = fromBase58(chainIdentifier);\n\tif (chainBytes.length !== 32) {\n\t\tthrow new Error(`Invalid chain identifier length: expected 32 bytes, got ${chainBytes.length}`);\n\t}\n\tconst xored = new Uint8Array(32);\n\tfor (let i = 0; i < 32; i++) {\n\t\txored[i] = accBytes[i] ^ chainBytes[i];\n\t}\n\treturn `0x${toHex(xored)}`;\n}\n\nexport function createCoinReservationRef(\n\treservedBalance: bigint,\n\towner: string,\n\tchainIdentifier: string,\n\tepoch: string,\n) {\n\tconst digestBytes = new Uint8Array(32);\n\tconst view = new DataView(digestBytes.buffer);\n\t// Bytes 0-7: reserved balance as LE u64\n\tview.setBigUint64(0, reservedBalance, true);\n\t// Bytes 8-11: epoch_id as LE u32\n\tconst epochNum = Number(epoch);\n\tif (!Number.isSafeInteger(epochNum) || epochNum < 0 || epochNum > 0xffffffff) {\n\t\tthrow new Error(`Epoch ${epoch} out of u32 range for coin reservation digest`);\n\t}\n\tview.setUint32(8, epochNum, true);\n\t// Bytes 12-31: magic bytes\n\tdigestBytes.set(COIN_RESERVATION_MAGIC, 12);\n\n\treturn parse(ObjectRefSchema, {\n\t\tobjectId: deriveReservationObjectId(owner, chainIdentifier),\n\t\tversion: '0',\n\t\tdigest: toBase58(digestBytes),\n\t});\n}\n"],"mappings":";;;;;;;;;AAWA,MAAM,oCAAoC,uBAAuB,QAAQ;AACzE,MAAM,2BAA2B,kBAAkB,aAClD,oEACA;AAED,MAAa,yBAAyB,IAAI,WAAW;CACpD;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAC1F;CAAM;CAAM;CAAM;CAClB,CAAC;AAEF,SAAgB,wBAAwB,cAA+B;AAGtE,QAFoB,WAAW,aAAa,CACZ,MAAM,IAAI,GAAG,CAC1B,OAAO,MAAM,MAAM,SAAS,uBAAuB,GAAG;;;;;;;AAc1E,SAAS,0BAA0B,OAAe,iBAAiC;CASlF,MAAM,WAAW,QAPK,qBACrB,mCACA,0BAHcA,UAAI,QAAQ,UAAU,MAAM,CAAC,SAAS,CAKpD,CAGsC,MAAM,EAAE,CAAC;CAChD,MAAM,aAAa,WAAW,gBAAgB;AAC9C,KAAI,WAAW,WAAW,GACzB,OAAM,IAAI,MAAM,2DAA2D,WAAW,SAAS;CAEhG,MAAM,QAAQ,IAAI,WAAW,GAAG;AAChC,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IACvB,OAAM,KAAK,SAAS,KAAK,WAAW;AAErC,QAAO,KAAK,MAAM,MAAM;;AAGzB,SAAgB,yBACf,iBACA,OACA,iBACA,OACC;CACD,MAAM,cAAc,IAAI,WAAW,GAAG;CACtC,MAAM,OAAO,IAAI,SAAS,YAAY,OAAO;AAE7C,MAAK,aAAa,GAAG,iBAAiB,KAAK;CAE3C,MAAM,WAAW,OAAO,MAAM;AAC9B,KAAI,CAAC,OAAO,cAAc,SAAS,IAAI,WAAW,KAAK,WAAW,WACjE,OAAM,IAAI,MAAM,SAAS,MAAM,+CAA+C;AAE/E,MAAK,UAAU,GAAG,UAAU,KAAK;AAEjC,aAAY,IAAI,wBAAwB,GAAG;AAE3C,QAAO,MAAM,iBAAiB;EAC7B,UAAU,0BAA0B,OAAO,gBAAgB;EAC3D,SAAS;EACT,QAAQ,SAAS,YAAY;EAC7B,CAAC"}
|
|
@@ -9,7 +9,8 @@ declare const HANEUL_SYSTEM_MODULE_NAME = "haneul_system";
|
|
|
9
9
|
declare const HANEUL_TYPE_ARG = "0x0000000000000000000000000000000000000000000000000000000000000002::haneul::HANEUL";
|
|
10
10
|
declare const HANEUL_SYSTEM_STATE_OBJECT_ID = "0x0000000000000000000000000000000000000000000000000000000000000005";
|
|
11
11
|
declare const HANEUL_RANDOM_OBJECT_ID = "0x0000000000000000000000000000000000000000000000000000000000000008";
|
|
12
|
+
declare const HANEUL_COIN_REGISTRY_OBJECT_ID = "0x000000000000000000000000000000000000000000000000000000000000000c";
|
|
12
13
|
declare const HANEUL_DENY_LIST_OBJECT_ID = "0x0000000000000000000000000000000000000000000000000000000000000403";
|
|
13
14
|
//#endregion
|
|
14
|
-
export { GEUNHWA_PER_HANEUL, HANEUL_CLOCK_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS };
|
|
15
|
+
export { GEUNHWA_PER_HANEUL, HANEUL_CLOCK_OBJECT_ID, HANEUL_COIN_REGISTRY_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS };
|
|
15
16
|
//# sourceMappingURL=constants.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.mts","names":[],"sources":["../../src/utils/constants.ts"],"
|
|
1
|
+
{"version":3,"file":"constants.d.mts","names":[],"sources":["../../src/utils/constants.ts"],"mappings":";cAGa,eAAA;AAAA,cACA,kBAAA;AAAA,cAEA,mBAAA;AAAA,cAEA,wBAAA;AAAA,cAEA,qBAAA;AAAA,cAEA,sBAAA;AAAA,cAEA,yBAAA;AAAA,cACA,eAAA;AAAA,cACA,6BAAA;AAAA,cAEA,uBAAA;AAAA,cAEA,8BAAA;AAAA,cAEA,0BAAA"}
|
package/dist/utils/constants.mjs
CHANGED
|
@@ -9,8 +9,9 @@ const HANEUL_SYSTEM_MODULE_NAME = "haneul_system";
|
|
|
9
9
|
const HANEUL_TYPE_ARG = `${HANEUL_FRAMEWORK_ADDRESS}::haneul::HANEUL`;
|
|
10
10
|
const HANEUL_SYSTEM_STATE_OBJECT_ID = "0x0000000000000000000000000000000000000000000000000000000000000005";
|
|
11
11
|
const HANEUL_RANDOM_OBJECT_ID = "0x0000000000000000000000000000000000000000000000000000000000000008";
|
|
12
|
+
const HANEUL_COIN_REGISTRY_OBJECT_ID = "0x000000000000000000000000000000000000000000000000000000000000000c";
|
|
12
13
|
const HANEUL_DENY_LIST_OBJECT_ID = "0x0000000000000000000000000000000000000000000000000000000000000403";
|
|
13
14
|
|
|
14
15
|
//#endregion
|
|
15
|
-
export { GEUNHWA_PER_HANEUL, HANEUL_CLOCK_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS };
|
|
16
|
+
export { GEUNHWA_PER_HANEUL, HANEUL_CLOCK_OBJECT_ID, HANEUL_COIN_REGISTRY_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS };
|
|
16
17
|
//# sourceMappingURL=constants.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":[],"sources":["../../src/utils/constants.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport const HANEUL_DECIMALS = 9;\nexport const GEUNHWA_PER_HANEUL = BigInt(1000000000);\n\nexport const MOVE_STDLIB_ADDRESS =\n\t'0x0000000000000000000000000000000000000000000000000000000000000001';\nexport const HANEUL_FRAMEWORK_ADDRESS =\n\t'0x0000000000000000000000000000000000000000000000000000000000000002';\nexport const HANEUL_SYSTEM_ADDRESS =\n\t'0x0000000000000000000000000000000000000000000000000000000000000003';\nexport const HANEUL_CLOCK_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000006';\nexport const HANEUL_SYSTEM_MODULE_NAME = 'haneul_system';\nexport const HANEUL_TYPE_ARG = `${HANEUL_FRAMEWORK_ADDRESS}::haneul::HANEUL`;\nexport const HANEUL_SYSTEM_STATE_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000005';\nexport const HANEUL_RANDOM_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000008';\nexport const HANEUL_DENY_LIST_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000403';\n"],"mappings":";AAGA,MAAa,kBAAkB;AAC/B,MAAa,qBAAqB,OAAO,IAAW;AAEpD,MAAa,sBACZ;AACD,MAAa,2BACZ;AACD,MAAa,wBACZ;AACD,MAAa,yBACZ;AACD,MAAa,4BAA4B;AACzC,MAAa,kBAAkB,GAAG,yBAAyB;AAC3D,MAAa,gCACZ;AACD,MAAa,0BACZ;AACD,MAAa,6BACZ"}
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":[],"sources":["../../src/utils/constants.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport const HANEUL_DECIMALS = 9;\nexport const GEUNHWA_PER_HANEUL = BigInt(1000000000);\n\nexport const MOVE_STDLIB_ADDRESS =\n\t'0x0000000000000000000000000000000000000000000000000000000000000001';\nexport const HANEUL_FRAMEWORK_ADDRESS =\n\t'0x0000000000000000000000000000000000000000000000000000000000000002';\nexport const HANEUL_SYSTEM_ADDRESS =\n\t'0x0000000000000000000000000000000000000000000000000000000000000003';\nexport const HANEUL_CLOCK_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000006';\nexport const HANEUL_SYSTEM_MODULE_NAME = 'haneul_system';\nexport const HANEUL_TYPE_ARG = `${HANEUL_FRAMEWORK_ADDRESS}::haneul::HANEUL`;\nexport const HANEUL_SYSTEM_STATE_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000005';\nexport const HANEUL_RANDOM_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000008';\nexport const HANEUL_COIN_REGISTRY_OBJECT_ID =\n\t'0x000000000000000000000000000000000000000000000000000000000000000c';\nexport const HANEUL_DENY_LIST_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000403';\n"],"mappings":";AAGA,MAAa,kBAAkB;AAC/B,MAAa,qBAAqB,OAAO,IAAW;AAEpD,MAAa,sBACZ;AACD,MAAa,2BACZ;AACD,MAAa,wBACZ;AACD,MAAa,yBACZ;AACD,MAAa,4BAA4B;AACzC,MAAa,kBAAkB,GAAG,yBAAyB;AAC3D,MAAa,gCACZ;AACD,MAAa,0BACZ;AACD,MAAa,iCACZ;AACD,MAAa,6BACZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-objects.d.mts","names":[],"sources":["../../src/utils/derived-objects.ts"],"
|
|
1
|
+
{"version":3,"file":"derived-objects.d.mts","names":[],"sources":["../../src/utils/derived-objects.ts"],"mappings":";;;;;AAUA;iBAAgB,cAAA,CACf,QAAA,UACA,OAAA,SAAgB,OAAA,CAAQ,WAAA,EACxB,GAAA,EAAK,UAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-fields.d.mts","names":[],"sources":["../../src/utils/dynamic-fields.ts"],"
|
|
1
|
+
{"version":3,"file":"dynamic-fields.d.mts","names":[],"sources":["../../src/utils/dynamic-fields.ts"],"mappings":";;;iBASgB,oBAAA,CACf,QAAA,UACA,OAAA,SAAgB,OAAA,CAAQ,WAAA,EACxB,GAAA,EAAK,UAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { bcs as
|
|
1
|
+
import { bcs as haneulBcs } from "../bcs/index.mjs";
|
|
2
2
|
import { toHex } from "@haneullabs/bcs";
|
|
3
3
|
import { blake2b } from "@noble/hashes/blake2.js";
|
|
4
4
|
|
|
5
5
|
//#region src/utils/dynamic-fields.ts
|
|
6
6
|
function deriveDynamicFieldID(parentId, typeTag, key) {
|
|
7
|
-
const address =
|
|
8
|
-
const tag =
|
|
9
|
-
const keyLength =
|
|
7
|
+
const address = haneulBcs.Address.serialize(parentId).toBytes();
|
|
8
|
+
const tag = haneulBcs.TypeTag.serialize(typeTag).toBytes();
|
|
9
|
+
const keyLength = haneulBcs.u64().serialize(key.length).toBytes();
|
|
10
10
|
const hash = blake2b.create({ dkLen: 32 });
|
|
11
11
|
hash.update(new Uint8Array([240]));
|
|
12
12
|
hash.update(address);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-fields.mjs","names":["bcs"],"sources":["../../src/utils/dynamic-fields.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { toHex } from '@haneullabs/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\n\nimport type { TypeTag } from '../bcs/bcs.js';\nimport { bcs } from '../bcs/index.js';\n\nexport function deriveDynamicFieldID(\n\tparentId: string,\n\ttypeTag: typeof TypeTag.$inferInput,\n\tkey: Uint8Array,\n) {\n\tconst address = bcs.Address.serialize(parentId).toBytes();\n\tconst tag = bcs.TypeTag.serialize(typeTag).toBytes();\n\tconst keyLength = bcs.u64().serialize(key.length).toBytes();\n\n\tconst hash = blake2b.create({\n\t\tdkLen: 32,\n\t});\n\n\thash.update(new Uint8Array([0xf0]));\n\thash.update(address);\n\thash.update(keyLength);\n\thash.update(key);\n\thash.update(tag);\n\n\treturn `0x${toHex(hash.digest().slice(0, 32))}`;\n}\n"],"mappings":";;;;;AASA,SAAgB,qBACf,UACA,SACA,KACC;CACD,MAAM,UAAUA,
|
|
1
|
+
{"version":3,"file":"dynamic-fields.mjs","names":["bcs"],"sources":["../../src/utils/dynamic-fields.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { toHex } from '@haneullabs/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\n\nimport type { TypeTag } from '../bcs/bcs.js';\nimport { bcs } from '../bcs/index.js';\n\nexport function deriveDynamicFieldID(\n\tparentId: string,\n\ttypeTag: typeof TypeTag.$inferInput,\n\tkey: Uint8Array,\n) {\n\tconst address = bcs.Address.serialize(parentId).toBytes();\n\tconst tag = bcs.TypeTag.serialize(typeTag).toBytes();\n\tconst keyLength = bcs.u64().serialize(key.length).toBytes();\n\n\tconst hash = blake2b.create({\n\t\tdkLen: 32,\n\t});\n\n\thash.update(new Uint8Array([0xf0]));\n\thash.update(address);\n\thash.update(keyLength);\n\thash.update(key);\n\thash.update(tag);\n\n\treturn `0x${toHex(hash.digest().slice(0, 32))}`;\n}\n"],"mappings":";;;;;AASA,SAAgB,qBACf,UACA,SACA,KACC;CACD,MAAM,UAAUA,UAAI,QAAQ,UAAU,SAAS,CAAC,SAAS;CACzD,MAAM,MAAMA,UAAI,QAAQ,UAAU,QAAQ,CAAC,SAAS;CACpD,MAAM,YAAYA,UAAI,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS;CAE3D,MAAM,OAAO,QAAQ,OAAO,EAC3B,OAAO,IACP,CAAC;AAEF,MAAK,OAAO,IAAI,WAAW,CAAC,IAAK,CAAC,CAAC;AACnC,MAAK,OAAO,QAAQ;AACpB,MAAK,OAAO,UAAU;AACtB,MAAK,OAAO,IAAI;AAChB,MAAK,OAAO,IAAI;AAEhB,QAAO,KAAK,MAAM,KAAK,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.mts","names":[],"sources":["../../src/utils/format.ts"],"
|
|
1
|
+
{"version":3,"file":"format.d.mts","names":[],"sources":["../../src/utils/format.ts"],"mappings":";iBAKgB,aAAA,CAAc,OAAA;AAAA,iBAUd,YAAA,CAAa,MAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haneul-types.d.mts","names":[],"sources":["../../src/utils/haneul-types.ts"],"
|
|
1
|
+
{"version":3,"file":"haneul-types.d.mts","names":[],"sources":["../../src/utils/haneul-types.ts"],"mappings":";;iBAUgB,wBAAA,CAAyB,KAAA,WAAgB,KAAA;AAAA,cAe5C,qBAAA;AAAA,iBACG,oBAAA,CAAqB,KAAA,WAAgB,KAAA;AAAA,iBAIrC,qBAAA,CAAsB,KAAA;AAAA,iBAoDtB,gBAAA,CAAiB,IAAA;AAAA,KASrB,SAAA;EACX,OAAA;EACA,MAAA;EACA,IAAA;EACA,UAAA,YAAsB,SAAA;AAAA;AAAA,iBAwBP,cAAA,CAAe,IAAA,WAAe,SAAA;AAAA,iBA0B9B,kBAAA,CAAmB,IAAA,WAAe,SAAA;;AAnHlD;;;;;AAoDA;;;;;iBA0FgB,sBAAA,CAAuB,KAAA,UAAe,UAAA;AAAA,iBAQtC,uBAAA,CAAwB,KAAA,UAAe,UAAA"}
|
|
@@ -57,6 +57,14 @@ function isValidStructTag(type) {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
function parseTypeTag(type) {
|
|
60
|
+
if (type.startsWith("vector<")) {
|
|
61
|
+
if (!type.endsWith(">")) throw new Error(`Invalid type tag: ${type}`);
|
|
62
|
+
const inner = type.slice(7, -1);
|
|
63
|
+
if (!inner) throw new Error(`Invalid type tag: ${type}`);
|
|
64
|
+
const parsed = parseTypeTag(inner);
|
|
65
|
+
if (typeof parsed === "string") return `vector<${parsed}>`;
|
|
66
|
+
return `vector<${normalizeStructTag(parsed)}>`;
|
|
67
|
+
}
|
|
60
68
|
if (!type.includes("::")) return type;
|
|
61
69
|
return parseStructTag(type);
|
|
62
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haneul-types.mjs","names":[],"sources":["../../src/utils/haneul-types.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase58, splitGenericParameters } from '@haneullabs/bcs';\n\nimport { isValidNamedPackage } from './move-registry.js';\n\nconst TX_DIGEST_LENGTH = 32;\n\n/** Returns whether the tx digest is valid based on the serialization format */\nexport function isValidTransactionDigest(value: string): value is string {\n\ttry {\n\t\tconst buffer = fromBase58(value);\n\t\treturn buffer.length === TX_DIGEST_LENGTH;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n// TODO - can we automatically sync this with rust length definition?\n// Source of truth is\n// https://github.com/GeunhwaJeong/haneul/blob/acb2b97ae21f47600e05b0d28127d88d0725561d/
|
|
1
|
+
{"version":3,"file":"haneul-types.mjs","names":[],"sources":["../../src/utils/haneul-types.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase58, splitGenericParameters } from '@haneullabs/bcs';\n\nimport { isValidNamedPackage } from './move-registry.js';\n\nconst TX_DIGEST_LENGTH = 32;\n\n/** Returns whether the tx digest is valid based on the serialization format */\nexport function isValidTransactionDigest(value: string): value is string {\n\ttry {\n\t\tconst buffer = fromBase58(value);\n\t\treturn buffer.length === TX_DIGEST_LENGTH;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n// TODO - can we automatically sync this with rust length definition?\n// Source of truth is\n// https://github.com/GeunhwaJeong/haneul/blob/acb2b97ae21f47600e05b0d28127d88d0725561d/crates/haneul-types/src/base_types.rs#L67\n// which uses the Move account address length\n// https://github.com/move-language/move/blob/67ec40dc50c66c34fd73512fcc412f3b68d67235/language/move-core/types/src/account_address.rs#L23 .\n\nexport const HANEUL_ADDRESS_LENGTH = 32;\nexport function isValidHaneulAddress(value: string): value is string {\n\treturn isHex(value) && getHexByteLength(value) === HANEUL_ADDRESS_LENGTH;\n}\n\nexport function isValidHaneulObjectId(value: string): boolean {\n\treturn isValidHaneulAddress(value);\n}\n\nconst MOVE_IDENTIFIER_REGEX = /^[a-zA-Z][a-zA-Z0-9_]*$/;\n\nexport function isValidMoveIdentifier(name: string): boolean {\n\treturn MOVE_IDENTIFIER_REGEX.test(name);\n}\n\nconst PRIMITIVE_TYPE_TAGS = [\n\t'bool',\n\t'u8',\n\t'u16',\n\t'u32',\n\t'u64',\n\t'u128',\n\t'u256',\n\t'address',\n\t'signer',\n];\n\nconst VECTOR_TYPE_REGEX = /^vector<(.+)>$/;\n\nfunction isValidTypeTag(type: string): boolean {\n\tif (PRIMITIVE_TYPE_TAGS.includes(type)) return true;\n\n\tconst vectorMatch = type.match(VECTOR_TYPE_REGEX);\n\tif (vectorMatch) return isValidTypeTag(vectorMatch[1]);\n\n\tif (type.includes('::')) return isValidStructTag(type);\n\n\treturn false;\n}\n\nfunction isValidParsedStructTag(tag: StructTag): boolean {\n\tif (!isValidHaneulAddress(tag.address) && !isValidNamedPackage(tag.address)) {\n\t\treturn false;\n\t}\n\n\tif (!isValidMoveIdentifier(tag.module) || !isValidMoveIdentifier(tag.name)) {\n\t\treturn false;\n\t}\n\n\treturn tag.typeParams.every((param) => {\n\t\tif (typeof param === 'string') {\n\t\t\treturn isValidTypeTag(param);\n\t\t}\n\t\treturn isValidParsedStructTag(param);\n\t});\n}\n\nexport function isValidStructTag(type: string): boolean {\n\ttry {\n\t\tconst tag = parseStructTag(type);\n\t\treturn isValidParsedStructTag(tag);\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport type StructTag = {\n\taddress: string;\n\tmodule: string;\n\tname: string;\n\ttypeParams: (string | StructTag)[];\n};\n\nfunction parseTypeTag(type: string): string | StructTag {\n\tif (type.startsWith('vector<')) {\n\t\tif (!type.endsWith('>')) {\n\t\t\tthrow new Error(`Invalid type tag: ${type}`);\n\t\t}\n\t\tconst inner = type.slice(7, -1);\n\t\tif (!inner) {\n\t\t\tthrow new Error(`Invalid type tag: ${type}`);\n\t\t}\n\t\tconst parsed = parseTypeTag(inner);\n\t\tif (typeof parsed === 'string') {\n\t\t\treturn `vector<${parsed}>`;\n\t\t}\n\t\treturn `vector<${normalizeStructTag(parsed)}>`;\n\t}\n\n\tif (!type.includes('::')) return type;\n\n\treturn parseStructTag(type);\n}\n\nexport function parseStructTag(type: string): StructTag {\n\tconst parts = type.split('::');\n\n\tif (parts.length < 3) {\n\t\tthrow new Error(`Invalid struct tag: ${type}`);\n\t}\n\n\tconst [address, module] = parts;\n\tconst isMvrPackage = isValidNamedPackage(address);\n\n\tconst rest = type.slice(address.length + module.length + 4);\n\tconst name = rest.includes('<') ? rest.slice(0, rest.indexOf('<')) : rest;\n\tconst typeParams = rest.includes('<')\n\t\t? splitGenericParameters(rest.slice(rest.indexOf('<') + 1, rest.lastIndexOf('>'))).map(\n\t\t\t\t(typeParam) => parseTypeTag(typeParam.trim()),\n\t\t\t)\n\t\t: [];\n\n\treturn {\n\t\taddress: isMvrPackage ? address : normalizeHaneulAddress(address),\n\t\tmodule,\n\t\tname,\n\t\ttypeParams,\n\t};\n}\n\nexport function normalizeStructTag(type: string | StructTag): string {\n\tconst { address, module, name, typeParams } =\n\t\ttypeof type === 'string' ? parseStructTag(type) : type;\n\n\tconst formattedTypeParams =\n\t\ttypeParams?.length > 0\n\t\t\t? `<${typeParams\n\t\t\t\t\t.map((typeParam) =>\n\t\t\t\t\t\ttypeof typeParam === 'string' ? typeParam : normalizeStructTag(typeParam),\n\t\t\t\t\t)\n\t\t\t\t\t.join(',')}>`\n\t\t\t: '';\n\n\treturn `${address}::${module}::${name}${formattedTypeParams}`;\n}\n\n/**\n * Perform the following operations:\n * 1. Make the address lower case\n * 2. Prepend `0x` if the string does not start with `0x`.\n * 3. Add more zeros if the length of the address(excluding `0x`) is less than `HANEUL_ADDRESS_LENGTH`\n *\n * WARNING: if the address value itself starts with `0x`, e.g., `0x0x`, the default behavior\n * is to treat the first `0x` not as part of the address. The default behavior can be overridden by\n * setting `forceAdd0x` to true\n *\n */\nexport function normalizeHaneulAddress(value: string, forceAdd0x: boolean = false): string {\n\tlet address = value.toLowerCase();\n\tif (!forceAdd0x && address.startsWith('0x')) {\n\t\taddress = address.slice(2);\n\t}\n\treturn `0x${address.padStart(HANEUL_ADDRESS_LENGTH * 2, '0')}`;\n}\n\nexport function normalizeHaneulObjectId(value: string, forceAdd0x: boolean = false): string {\n\treturn normalizeHaneulAddress(value, forceAdd0x);\n}\n\nfunction isHex(value: string): boolean {\n\treturn /^(0x|0X)?[a-fA-F0-9]+$/.test(value) && value.length % 2 === 0;\n}\n\nfunction getHexByteLength(value: string): number {\n\treturn /^(0x|0X)/.test(value) ? (value.length - 2) / 2 : value.length / 2;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haneulns.d.mts","names":[],"sources":["../../src/utils/haneulns.ts"],"
|
|
1
|
+
{"version":3,"file":"haneulns.d.mts","names":[],"sources":["../../src/utils/haneulns.ts"],"mappings":";iBAQgB,mBAAA,CAAoB,IAAA;AAAA,iBAYpB,qBAAA,CAAsB,IAAA,UAAc,MAAA"}
|
package/dist/utils/index.d.mts
CHANGED
|
@@ -2,9 +2,9 @@ import { normalizeTypeTag } from "../bcs/type-tag-serializer.mjs";
|
|
|
2
2
|
import { HANEUL_ADDRESS_LENGTH, isValidHaneulAddress, isValidHaneulObjectId, isValidStructTag, isValidTransactionDigest, normalizeHaneulAddress, normalizeHaneulObjectId, normalizeStructTag, parseStructTag } from "./haneul-types.mjs";
|
|
3
3
|
import { formatAddress, formatDigest } from "./format.mjs";
|
|
4
4
|
import { isValidHaneulNSName, normalizeHaneulNSName } from "./haneulns.mjs";
|
|
5
|
-
import { GEUNHWA_PER_HANEUL, HANEUL_CLOCK_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS } from "./constants.mjs";
|
|
5
|
+
import { GEUNHWA_PER_HANEUL, HANEUL_CLOCK_OBJECT_ID, HANEUL_COIN_REGISTRY_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS } from "./constants.mjs";
|
|
6
6
|
import { isValidNamedPackage, isValidNamedType } from "./move-registry.mjs";
|
|
7
7
|
import { deriveDynamicFieldID } from "./dynamic-fields.mjs";
|
|
8
8
|
import { deriveObjectID } from "./derived-objects.mjs";
|
|
9
9
|
import { fromBase58, fromBase64, fromHex, toBase58, toBase64, toHex } from "@haneullabs/bcs";
|
|
10
|
-
export { GEUNHWA_PER_HANEUL, HANEUL_ADDRESS_LENGTH, HANEUL_CLOCK_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS, deriveDynamicFieldID, deriveObjectID, formatAddress, formatDigest, fromBase58, fromBase64, fromHex, isValidHaneulAddress, isValidHaneulNSName, isValidHaneulObjectId, isValidNamedPackage, isValidNamedType, isValidStructTag, isValidTransactionDigest, normalizeHaneulAddress, normalizeHaneulNSName, normalizeHaneulObjectId, normalizeStructTag, normalizeTypeTag, parseStructTag, toBase58, toBase64, toHex };
|
|
10
|
+
export { GEUNHWA_PER_HANEUL, HANEUL_ADDRESS_LENGTH, HANEUL_CLOCK_OBJECT_ID, HANEUL_COIN_REGISTRY_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS, deriveDynamicFieldID, deriveObjectID, formatAddress, formatDigest, fromBase58, fromBase64, fromHex, isValidHaneulAddress, isValidHaneulNSName, isValidHaneulObjectId, isValidNamedPackage, isValidNamedType, isValidStructTag, isValidTransactionDigest, normalizeHaneulAddress, normalizeHaneulNSName, normalizeHaneulObjectId, normalizeStructTag, normalizeTypeTag, parseStructTag, toBase58, toBase64, toHex };
|
package/dist/utils/index.mjs
CHANGED
|
@@ -3,9 +3,9 @@ import { isValidNamedPackage, isValidNamedType } from "./move-registry.mjs";
|
|
|
3
3
|
import { HANEUL_ADDRESS_LENGTH, isValidHaneulAddress, isValidHaneulObjectId, isValidStructTag, isValidTransactionDigest, normalizeHaneulAddress, normalizeHaneulObjectId, normalizeStructTag, parseStructTag } from "./haneul-types.mjs";
|
|
4
4
|
import { normalizeTypeTag } from "../bcs/type-tag-serializer.mjs";
|
|
5
5
|
import { deriveDynamicFieldID } from "./dynamic-fields.mjs";
|
|
6
|
-
import { GEUNHWA_PER_HANEUL, HANEUL_CLOCK_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS } from "./constants.mjs";
|
|
6
|
+
import { GEUNHWA_PER_HANEUL, HANEUL_CLOCK_OBJECT_ID, HANEUL_COIN_REGISTRY_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS } from "./constants.mjs";
|
|
7
7
|
import { formatAddress, formatDigest } from "./format.mjs";
|
|
8
8
|
import { deriveObjectID } from "./derived-objects.mjs";
|
|
9
9
|
import { fromBase58, fromBase64, fromHex, toBase58, toBase64, toHex } from "@haneullabs/bcs";
|
|
10
10
|
|
|
11
|
-
export { GEUNHWA_PER_HANEUL, HANEUL_ADDRESS_LENGTH, HANEUL_CLOCK_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS, deriveDynamicFieldID, deriveObjectID, formatAddress, formatDigest, fromBase58, fromBase64, fromHex, isValidHaneulAddress, isValidHaneulNSName, isValidHaneulObjectId, isValidNamedPackage, isValidNamedType, isValidStructTag, isValidTransactionDigest, normalizeHaneulAddress, normalizeHaneulNSName, normalizeHaneulObjectId, normalizeStructTag, normalizeTypeTag, parseStructTag, toBase58, toBase64, toHex };
|
|
11
|
+
export { GEUNHWA_PER_HANEUL, HANEUL_ADDRESS_LENGTH, HANEUL_CLOCK_OBJECT_ID, HANEUL_COIN_REGISTRY_OBJECT_ID, HANEUL_DECIMALS, HANEUL_DENY_LIST_OBJECT_ID, HANEUL_FRAMEWORK_ADDRESS, HANEUL_RANDOM_OBJECT_ID, HANEUL_SYSTEM_ADDRESS, HANEUL_SYSTEM_MODULE_NAME, HANEUL_SYSTEM_STATE_OBJECT_ID, HANEUL_TYPE_ARG, MOVE_STDLIB_ADDRESS, deriveDynamicFieldID, deriveObjectID, formatAddress, formatDigest, fromBase58, fromBase64, fromHex, isValidHaneulAddress, isValidHaneulNSName, isValidHaneulObjectId, isValidNamedPackage, isValidNamedType, isValidStructTag, isValidTransactionDigest, normalizeHaneulAddress, normalizeHaneulNSName, normalizeHaneulObjectId, normalizeStructTag, normalizeTypeTag, parseStructTag, toBase58, toBase64, toHex };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"move-registry.d.mts","names":[],"sources":["../../src/utils/move-registry.ts"],"
|
|
1
|
+
{"version":3,"file":"move-registry.d.mts","names":[],"sources":["../../src/utils/move-registry.ts"],"mappings":";cAea,mBAAA,GAAuB,IAAA;AAApC;;;AAAA,cAmBa,gBAAA,GAAoB,IAAA"}
|
package/dist/verify/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { publicKeyFromHaneulBytes, publicKeyFromRawBytes, verifyPersonalMessageSignature, verifySignature, verifyTransactionSignature } from "./verify.mjs";
|
|
2
|
+
export { publicKeyFromHaneulBytes, publicKeyFromRawBytes, verifyPersonalMessageSignature, verifySignature, verifyTransactionSignature };
|
package/dist/verify/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { publicKeyFromHaneulBytes, publicKeyFromRawBytes, verifyPersonalMessageSignature, verifySignature, verifyTransactionSignature } from "./verify.mjs";
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export { publicKeyFromHaneulBytes, publicKeyFromRawBytes, verifyPersonalMessageSignature, verifySignature, verifyTransactionSignature };
|
package/dist/verify/verify.d.mts
CHANGED
|
@@ -19,10 +19,10 @@ declare function publicKeyFromRawBytes(signatureScheme: SignatureScheme, bytes:
|
|
|
19
19
|
client?: ClientWithCoreApi;
|
|
20
20
|
address?: string;
|
|
21
21
|
}): PublicKey;
|
|
22
|
-
declare function
|
|
22
|
+
declare function publicKeyFromHaneulBytes(publicKey: string | Uint8Array, options?: {
|
|
23
23
|
client?: ClientWithCoreApi;
|
|
24
24
|
address?: string;
|
|
25
25
|
}): PublicKey;
|
|
26
26
|
//#endregion
|
|
27
|
-
export {
|
|
27
|
+
export { publicKeyFromHaneulBytes, publicKeyFromRawBytes, verifyPersonalMessageSignature, verifySignature, verifyTransactionSignature };
|
|
28
28
|
//# sourceMappingURL=verify.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.mts","names":[],"sources":["../../src/verify/verify.ts"],"
|
|
1
|
+
{"version":3,"file":"verify.d.mts","names":[],"sources":["../../src/verify/verify.ts"],"mappings":";;;;;;iBAesB,eAAA,CACrB,KAAA,EAAO,UAAA,EACP,SAAA,UACA,OAAA;EACC,OAAA;AAAA,IAEC,OAAA,CAAQ,SAAA;AAAA,iBAcW,8BAAA,CACrB,OAAA,EAAS,UAAA,EACT,SAAA,UACA,OAAA;EAAW,MAAA,GAAS,iBAAA;EAAmB,OAAA;AAAA,IACrC,OAAA,CAAQ,SAAA;AAAA,iBAmBW,0BAAA,CACrB,WAAA,EAAa,UAAA,EACb,SAAA,UACA,OAAA;EAAW,MAAA,GAAS,iBAAA;EAAmB,OAAA;AAAA,IACrC,OAAA,CAAQ,SAAA;AAAA,iBAwCK,qBAAA,CACf,eAAA,EAAiB,eAAA,EACjB,KAAA,EAAO,UAAA,EACP,OAAA;EAAW,MAAA,GAAS,iBAAA;EAAmB,OAAA;AAAA,IACrC,SAAA;AAAA,iBAgCa,wBAAA,CACf,SAAA,WAAoB,UAAA,EACpB,OAAA;EAAW,MAAA,GAAS,iBAAA;EAAmB,OAAA;AAAA,IAAuB,SAAA"}
|
package/dist/verify/verify.mjs
CHANGED
|
@@ -65,12 +65,12 @@ function publicKeyFromRawBytes(signatureScheme, bytes, options = {}) {
|
|
|
65
65
|
if (options.address && publicKey.toHaneulAddress() !== options.address) throw new Error(`Public key bytes do not match the provided address`);
|
|
66
66
|
return publicKey;
|
|
67
67
|
}
|
|
68
|
-
function
|
|
68
|
+
function publicKeyFromHaneulBytes(publicKey, options = {}) {
|
|
69
69
|
const bytes = typeof publicKey === "string" ? fromBase64(publicKey) : publicKey;
|
|
70
70
|
const signatureScheme = SIGNATURE_FLAG_TO_SCHEME[bytes[0]];
|
|
71
71
|
return publicKeyFromRawBytes(signatureScheme, bytes.slice(1), options);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
//#endregion
|
|
75
|
-
export {
|
|
75
|
+
export { publicKeyFromHaneulBytes, publicKeyFromRawBytes, verifyPersonalMessageSignature, verifySignature, verifyTransactionSignature };
|
|
76
76
|
//# sourceMappingURL=verify.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.mjs","names":[],"sources":["../../src/verify/verify.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@haneullabs/bcs';\n\nimport type { PublicKey, SignatureFlag, SignatureScheme } from '../cryptography/index.js';\nimport { parseSerializedSignature, SIGNATURE_FLAG_TO_SCHEME } from '../cryptography/index.js';\nimport { Ed25519PublicKey } from '../keypairs/ed25519/publickey.js';\nimport { PasskeyPublicKey } from '../keypairs/passkey/publickey.js';\nimport { Secp256k1PublicKey } from '../keypairs/secp256k1/publickey.js';\nimport { Secp256r1PublicKey } from '../keypairs/secp256r1/publickey.js';\nimport { MultiSigPublicKey } from '../multisig/publickey.js';\nimport { ZkLoginPublicIdentifier } from '../zklogin/publickey.js';\nimport type { ClientWithCoreApi } from '../client/core.js';\n\nexport async function verifySignature(\n\tbytes: Uint8Array,\n\tsignature: string,\n\toptions?: {\n\t\taddress?: string;\n\t},\n): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature);\n\n\tif (!(await parsedSignature.publicKey.verify(bytes, parsedSignature.serializedSignature))) {\n\t\tthrow new Error(`Signature is not valid for the provided data`);\n\t}\n\n\tif (options?.address && !parsedSignature.publicKey.verifyAddress(options.address)) {\n\t\tthrow new Error(`Signature is not valid for the provided address`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nexport async function verifyPersonalMessageSignature(\n\tmessage: Uint8Array,\n\tsignature: string,\n\toptions: { client?: ClientWithCoreApi; address?: string } = {},\n): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature, options);\n\n\tif (\n\t\t!(await parsedSignature.publicKey.verifyPersonalMessage(\n\t\t\tmessage,\n\t\t\tparsedSignature.serializedSignature,\n\t\t))\n\t) {\n\t\tthrow new Error(`Signature is not valid for the provided message`);\n\t}\n\n\tif (options?.address && !parsedSignature.publicKey.verifyAddress(options.address)) {\n\t\tthrow new Error(`Signature is not valid for the provided address`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nexport async function verifyTransactionSignature(\n\ttransaction: Uint8Array,\n\tsignature: string,\n\toptions: { client?: ClientWithCoreApi; address?: string } = {},\n): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature, options);\n\n\tif (\n\t\t!(await parsedSignature.publicKey.verifyTransaction(\n\t\t\ttransaction,\n\t\t\tparsedSignature.serializedSignature,\n\t\t))\n\t) {\n\t\tthrow new Error(`Signature is not valid for the provided Transaction`);\n\t}\n\n\tif (options?.address && !parsedSignature.publicKey.verifyAddress(options.address)) {\n\t\tthrow new Error(`Signature is not valid for the provided address`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nfunction parseSignature(signature: string, options: { client?: ClientWithCoreApi } = {}) {\n\tconst parsedSignature = parseSerializedSignature(signature);\n\n\tif (parsedSignature.signatureScheme === 'MultiSig') {\n\t\treturn {\n\t\t\t...parsedSignature,\n\t\t\tpublicKey: new MultiSigPublicKey(parsedSignature.multisig.multisig_pk),\n\t\t};\n\t}\n\n\tconst publicKey = publicKeyFromRawBytes(\n\t\tparsedSignature.signatureScheme,\n\t\tparsedSignature.publicKey,\n\t\toptions,\n\t);\n\treturn {\n\t\t...parsedSignature,\n\t\tpublicKey,\n\t};\n}\n\nexport function publicKeyFromRawBytes(\n\tsignatureScheme: SignatureScheme,\n\tbytes: Uint8Array,\n\toptions: { client?: ClientWithCoreApi; address?: string } = {},\n): PublicKey {\n\tlet publicKey: PublicKey;\n\tswitch (signatureScheme) {\n\t\tcase 'ED25519':\n\t\t\tpublicKey = new Ed25519PublicKey(bytes);\n\t\t\tbreak;\n\t\tcase 'Secp256k1':\n\t\t\tpublicKey = new Secp256k1PublicKey(bytes);\n\t\t\tbreak;\n\t\tcase 'Secp256r1':\n\t\t\tpublicKey = new Secp256r1PublicKey(bytes);\n\t\t\tbreak;\n\t\tcase 'MultiSig':\n\t\t\tpublicKey = new MultiSigPublicKey(bytes);\n\t\t\tbreak;\n\t\tcase 'ZkLogin':\n\t\t\tpublicKey = ZkLoginPublicIdentifier.fromBytes(bytes, options);\n\t\t\tbreak;\n\t\tcase 'Passkey':\n\t\t\tpublicKey = new PasskeyPublicKey(bytes);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported signature scheme ${signatureScheme}`);\n\t}\n\n\tif (options.address && publicKey.toHaneulAddress() !== options.address) {\n\t\tthrow new Error(`Public key bytes do not match the provided address`);\n\t}\n\n\treturn publicKey;\n}\n\nexport function
|
|
1
|
+
{"version":3,"file":"verify.mjs","names":[],"sources":["../../src/verify/verify.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@haneullabs/bcs';\n\nimport type { PublicKey, SignatureFlag, SignatureScheme } from '../cryptography/index.js';\nimport { parseSerializedSignature, SIGNATURE_FLAG_TO_SCHEME } from '../cryptography/index.js';\nimport { Ed25519PublicKey } from '../keypairs/ed25519/publickey.js';\nimport { PasskeyPublicKey } from '../keypairs/passkey/publickey.js';\nimport { Secp256k1PublicKey } from '../keypairs/secp256k1/publickey.js';\nimport { Secp256r1PublicKey } from '../keypairs/secp256r1/publickey.js';\nimport { MultiSigPublicKey } from '../multisig/publickey.js';\nimport { ZkLoginPublicIdentifier } from '../zklogin/publickey.js';\nimport type { ClientWithCoreApi } from '../client/core.js';\n\nexport async function verifySignature(\n\tbytes: Uint8Array,\n\tsignature: string,\n\toptions?: {\n\t\taddress?: string;\n\t},\n): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature);\n\n\tif (!(await parsedSignature.publicKey.verify(bytes, parsedSignature.serializedSignature))) {\n\t\tthrow new Error(`Signature is not valid for the provided data`);\n\t}\n\n\tif (options?.address && !parsedSignature.publicKey.verifyAddress(options.address)) {\n\t\tthrow new Error(`Signature is not valid for the provided address`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nexport async function verifyPersonalMessageSignature(\n\tmessage: Uint8Array,\n\tsignature: string,\n\toptions: { client?: ClientWithCoreApi; address?: string } = {},\n): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature, options);\n\n\tif (\n\t\t!(await parsedSignature.publicKey.verifyPersonalMessage(\n\t\t\tmessage,\n\t\t\tparsedSignature.serializedSignature,\n\t\t))\n\t) {\n\t\tthrow new Error(`Signature is not valid for the provided message`);\n\t}\n\n\tif (options?.address && !parsedSignature.publicKey.verifyAddress(options.address)) {\n\t\tthrow new Error(`Signature is not valid for the provided address`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nexport async function verifyTransactionSignature(\n\ttransaction: Uint8Array,\n\tsignature: string,\n\toptions: { client?: ClientWithCoreApi; address?: string } = {},\n): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature, options);\n\n\tif (\n\t\t!(await parsedSignature.publicKey.verifyTransaction(\n\t\t\ttransaction,\n\t\t\tparsedSignature.serializedSignature,\n\t\t))\n\t) {\n\t\tthrow new Error(`Signature is not valid for the provided Transaction`);\n\t}\n\n\tif (options?.address && !parsedSignature.publicKey.verifyAddress(options.address)) {\n\t\tthrow new Error(`Signature is not valid for the provided address`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nfunction parseSignature(signature: string, options: { client?: ClientWithCoreApi } = {}) {\n\tconst parsedSignature = parseSerializedSignature(signature);\n\n\tif (parsedSignature.signatureScheme === 'MultiSig') {\n\t\treturn {\n\t\t\t...parsedSignature,\n\t\t\tpublicKey: new MultiSigPublicKey(parsedSignature.multisig.multisig_pk),\n\t\t};\n\t}\n\n\tconst publicKey = publicKeyFromRawBytes(\n\t\tparsedSignature.signatureScheme,\n\t\tparsedSignature.publicKey,\n\t\toptions,\n\t);\n\treturn {\n\t\t...parsedSignature,\n\t\tpublicKey,\n\t};\n}\n\nexport function publicKeyFromRawBytes(\n\tsignatureScheme: SignatureScheme,\n\tbytes: Uint8Array,\n\toptions: { client?: ClientWithCoreApi; address?: string } = {},\n): PublicKey {\n\tlet publicKey: PublicKey;\n\tswitch (signatureScheme) {\n\t\tcase 'ED25519':\n\t\t\tpublicKey = new Ed25519PublicKey(bytes);\n\t\t\tbreak;\n\t\tcase 'Secp256k1':\n\t\t\tpublicKey = new Secp256k1PublicKey(bytes);\n\t\t\tbreak;\n\t\tcase 'Secp256r1':\n\t\t\tpublicKey = new Secp256r1PublicKey(bytes);\n\t\t\tbreak;\n\t\tcase 'MultiSig':\n\t\t\tpublicKey = new MultiSigPublicKey(bytes);\n\t\t\tbreak;\n\t\tcase 'ZkLogin':\n\t\t\tpublicKey = ZkLoginPublicIdentifier.fromBytes(bytes, options);\n\t\t\tbreak;\n\t\tcase 'Passkey':\n\t\t\tpublicKey = new PasskeyPublicKey(bytes);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported signature scheme ${signatureScheme}`);\n\t}\n\n\tif (options.address && publicKey.toHaneulAddress() !== options.address) {\n\t\tthrow new Error(`Public key bytes do not match the provided address`);\n\t}\n\n\treturn publicKey;\n}\n\nexport function publicKeyFromHaneulBytes(\n\tpublicKey: string | Uint8Array,\n\toptions: { client?: ClientWithCoreApi; address?: string } = {},\n) {\n\tconst bytes = typeof publicKey === 'string' ? fromBase64(publicKey) : publicKey;\n\n\tconst signatureScheme = SIGNATURE_FLAG_TO_SCHEME[bytes[0] as SignatureFlag];\n\n\treturn publicKeyFromRawBytes(signatureScheme, bytes.slice(1), options);\n}\n"],"mappings":";;;;;;;;;;;AAeA,eAAsB,gBACrB,OACA,WACA,SAGqB;CACrB,MAAM,kBAAkB,eAAe,UAAU;AAEjD,KAAI,CAAE,MAAM,gBAAgB,UAAU,OAAO,OAAO,gBAAgB,oBAAoB,CACvF,OAAM,IAAI,MAAM,+CAA+C;AAGhE,KAAI,SAAS,WAAW,CAAC,gBAAgB,UAAU,cAAc,QAAQ,QAAQ,CAChF,OAAM,IAAI,MAAM,kDAAkD;AAGnE,QAAO,gBAAgB;;AAGxB,eAAsB,+BACrB,SACA,WACA,UAA4D,EAAE,EACzC;CACrB,MAAM,kBAAkB,eAAe,WAAW,QAAQ;AAE1D,KACC,CAAE,MAAM,gBAAgB,UAAU,sBACjC,SACA,gBAAgB,oBAChB,CAED,OAAM,IAAI,MAAM,kDAAkD;AAGnE,KAAI,SAAS,WAAW,CAAC,gBAAgB,UAAU,cAAc,QAAQ,QAAQ,CAChF,OAAM,IAAI,MAAM,kDAAkD;AAGnE,QAAO,gBAAgB;;AAGxB,eAAsB,2BACrB,aACA,WACA,UAA4D,EAAE,EACzC;CACrB,MAAM,kBAAkB,eAAe,WAAW,QAAQ;AAE1D,KACC,CAAE,MAAM,gBAAgB,UAAU,kBACjC,aACA,gBAAgB,oBAChB,CAED,OAAM,IAAI,MAAM,sDAAsD;AAGvE,KAAI,SAAS,WAAW,CAAC,gBAAgB,UAAU,cAAc,QAAQ,QAAQ,CAChF,OAAM,IAAI,MAAM,kDAAkD;AAGnE,QAAO,gBAAgB;;AAGxB,SAAS,eAAe,WAAmB,UAA0C,EAAE,EAAE;CACxF,MAAM,kBAAkB,yBAAyB,UAAU;AAE3D,KAAI,gBAAgB,oBAAoB,WACvC,QAAO;EACN,GAAG;EACH,WAAW,IAAI,kBAAkB,gBAAgB,SAAS,YAAY;EACtE;CAGF,MAAM,YAAY,sBACjB,gBAAgB,iBAChB,gBAAgB,WAChB,QACA;AACD,QAAO;EACN,GAAG;EACH;EACA;;AAGF,SAAgB,sBACf,iBACA,OACA,UAA4D,EAAE,EAClD;CACZ,IAAI;AACJ,SAAQ,iBAAR;EACC,KAAK;AACJ,eAAY,IAAI,iBAAiB,MAAM;AACvC;EACD,KAAK;AACJ,eAAY,IAAI,mBAAmB,MAAM;AACzC;EACD,KAAK;AACJ,eAAY,IAAI,mBAAmB,MAAM;AACzC;EACD,KAAK;AACJ,eAAY,IAAI,kBAAkB,MAAM;AACxC;EACD,KAAK;AACJ,eAAY,wBAAwB,UAAU,OAAO,QAAQ;AAC7D;EACD,KAAK;AACJ,eAAY,IAAI,iBAAiB,MAAM;AACvC;EACD,QACC,OAAM,IAAI,MAAM,gCAAgC,kBAAkB;;AAGpE,KAAI,QAAQ,WAAW,UAAU,iBAAiB,KAAK,QAAQ,QAC9D,OAAM,IAAI,MAAM,qDAAqD;AAGtE,QAAO;;AAGR,SAAgB,yBACf,WACA,UAA4D,EAAE,EAC7D;CACD,MAAM,QAAQ,OAAO,cAAc,WAAW,WAAW,UAAU,GAAG;CAEtE,MAAM,kBAAkB,yBAAyB,MAAM;AAEvD,QAAO,sBAAsB,iBAAiB,MAAM,MAAM,EAAE,EAAE,QAAQ"}
|
package/dist/version.mjs
CHANGED
package/dist/version.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","names":[],"sources":["../src/version.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '2.
|
|
1
|
+
{"version":3,"file":"version.mjs","names":[],"sources":["../src/version.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '2.13.0';\nexport const TARGETED_RPC_VERSION = '1.0.0';\n"],"mappings":";AAKA,MAAa,kBAAkB;AAC/B,MAAa,uBAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.d.mts","names":[],"sources":["../../src/zklogin/address.ts"],"
|
|
1
|
+
{"version":3,"file":"address.d.mts","names":[],"sources":["../../src/zklogin/address.ts"],"mappings":";iBAgBgB,6BAAA,CACf,WAAA,UACA,GAAA,UACA,aAAA;AAAA,iBA+Ce,YAAA,CAAa,GAAA,UAAa,QAAA,mBAA2B,aAAA;AAAA,UAmBpD,4BAAA;EAChB,SAAA;EACA,UAAA;EACA,QAAA;EACA,GAAA;EACA,GAAA;EACA,aAAA;AAAA;AAAA,iBAGe,qBAAA,CAAA;EACf,SAAA;EACA,UAAA;EACA,GAAA;EACA,GAAA;EACA,QAAA;EACA;AAAA,GACE,4BAAA"}
|
package/dist/zklogin/bcs.d.mts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _haneullabs_bcs810 from "@haneullabs/bcs";
|
|
2
2
|
import { InferBcsInput } from "@haneullabs/bcs";
|
|
3
3
|
|
|
4
4
|
//#region src/zklogin/bcs.d.ts
|
|
5
|
-
declare const zkLoginSignature:
|
|
6
|
-
inputs:
|
|
7
|
-
proofPoints:
|
|
8
|
-
a:
|
|
5
|
+
declare const zkLoginSignature: _haneullabs_bcs810.BcsStruct<{
|
|
6
|
+
inputs: _haneullabs_bcs810.BcsStruct<{
|
|
7
|
+
proofPoints: _haneullabs_bcs810.BcsStruct<{
|
|
8
|
+
a: _haneullabs_bcs810.BcsType<string[], Iterable<string> & {
|
|
9
9
|
length: number;
|
|
10
10
|
}, string>;
|
|
11
|
-
b:
|
|
11
|
+
b: _haneullabs_bcs810.BcsType<string[][], Iterable<Iterable<string> & {
|
|
12
12
|
length: number;
|
|
13
13
|
}> & {
|
|
14
14
|
length: number;
|
|
15
15
|
}, string>;
|
|
16
|
-
c:
|
|
16
|
+
c: _haneullabs_bcs810.BcsType<string[], Iterable<string> & {
|
|
17
17
|
length: number;
|
|
18
18
|
}, string>;
|
|
19
19
|
}, string>;
|
|
20
|
-
issBase64Details:
|
|
21
|
-
value:
|
|
22
|
-
indexMod4:
|
|
20
|
+
issBase64Details: _haneullabs_bcs810.BcsStruct<{
|
|
21
|
+
value: _haneullabs_bcs810.BcsType<string, string, "string">;
|
|
22
|
+
indexMod4: _haneullabs_bcs810.BcsType<number, number, "u8">;
|
|
23
23
|
}, string>;
|
|
24
|
-
headerBase64:
|
|
25
|
-
addressSeed:
|
|
24
|
+
headerBase64: _haneullabs_bcs810.BcsType<string, string, "string">;
|
|
25
|
+
addressSeed: _haneullabs_bcs810.BcsType<string, string, "string">;
|
|
26
26
|
}, string>;
|
|
27
|
-
maxEpoch:
|
|
28
|
-
userSignature:
|
|
27
|
+
maxEpoch: _haneullabs_bcs810.BcsType<string, string | number | bigint, "u64">;
|
|
28
|
+
userSignature: _haneullabs_bcs810.BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "vector<u8>">;
|
|
29
29
|
}, string>;
|
|
30
30
|
type ZkLoginSignature = InferBcsInput<typeof zkLoginSignature>;
|
|
31
31
|
type ZkLoginSignatureInputs = ZkLoginSignature['inputs'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bcs.d.mts","names":[],"sources":["../../src/zklogin/bcs.ts"],"
|
|
1
|
+
{"version":3,"file":"bcs.d.mts","names":[],"sources":["../../src/zklogin/bcs.ts"],"mappings":";;;;cAMa,gBAAA,qBAAgB,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;KAkBjB,gBAAA,GAAmB,aAAA,QAAqB,gBAAA;AAAA,KACxC,sBAAA,GAAyB,gBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-decode.d.mts","names":[],"sources":["../../src/zklogin/jwt-decode.ts"],"
|
|
1
|
+
{"version":3,"file":"jwt-decode.d.mts","names":[],"sources":["../../src/zklogin/jwt-decode.ts"],"mappings":";UAwCiB,UAAA;EAChB,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;EACA,GAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-utils.d.mts","names":[],"sources":["../../src/zklogin/jwt-utils.ts"],"
|
|
1
|
+
{"version":3,"file":"jwt-utils.d.mts","names":[],"sources":["../../src/zklogin/jwt-utils.ts"],"mappings":";;;iBAsHgB,SAAA,CAAU,GAAA,WAAc,IAAA,CAAK,UAAA;EAC5C,GAAA;EACA,GAAA;EACA,GAAA;EACA,MAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nonce.d.mts","names":[],"sources":["../../src/zklogin/nonce.ts"],"
|
|
1
|
+
{"version":3,"file":"nonce.d.mts","names":[],"sources":["../../src/zklogin/nonce.ts"],"mappings":";;;iBAqBgB,kBAAA,CAAA;AAAA,iBAKA,aAAA,CAAc,SAAA,EAAW,SAAA,EAAW,QAAA,UAAkB,UAAA"}
|
package/dist/zklogin/nonce.mjs
CHANGED
|
@@ -15,7 +15,7 @@ function generateRandomness() {
|
|
|
15
15
|
return String(toBigIntBE(randomBytes(16)));
|
|
16
16
|
}
|
|
17
17
|
function generateNonce(publicKey, maxEpoch, randomness) {
|
|
18
|
-
const publicKeyBytes = toBigIntBE(publicKey.
|
|
18
|
+
const publicKeyBytes = toBigIntBE(publicKey.toHaneulBytes());
|
|
19
19
|
const Z = toPaddedBigEndianBytes(poseidonHash([
|
|
20
20
|
publicKeyBytes / 2n ** 128n,
|
|
21
21
|
publicKeyBytes % 2n ** 128n,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nonce.mjs","names":[],"sources":["../../src/zklogin/nonce.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { toHex } from '@haneullabs/bcs';\nimport { randomBytes } from '@noble/hashes/utils.js';\nimport { base64urlnopad } from '@scure/base';\n\nimport type { PublicKey } from '../cryptography/publickey.js';\nimport { poseidonHash } from './poseidon.js';\nimport { toPaddedBigEndianBytes } from './utils.js';\n\nexport const NONCE_LENGTH = 27;\n\nfunction toBigIntBE(bytes: Uint8Array) {\n\tconst hex = toHex(bytes);\n\tif (hex.length === 0) {\n\t\treturn BigInt(0);\n\t}\n\treturn BigInt(`0x${hex}`);\n}\n\nexport function generateRandomness() {\n\t// Once Node 20 enters LTS, we can just use crypto.getRandomValues(new Uint8Array(16)), but until then we use `randomBytes` to improve compatibility:\n\treturn String(toBigIntBE(randomBytes(16)));\n}\n\nexport function generateNonce(publicKey: PublicKey, maxEpoch: number, randomness: bigint | string) {\n\tconst publicKeyBytes = toBigIntBE(publicKey.
|
|
1
|
+
{"version":3,"file":"nonce.mjs","names":[],"sources":["../../src/zklogin/nonce.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { toHex } from '@haneullabs/bcs';\nimport { randomBytes } from '@noble/hashes/utils.js';\nimport { base64urlnopad } from '@scure/base';\n\nimport type { PublicKey } from '../cryptography/publickey.js';\nimport { poseidonHash } from './poseidon.js';\nimport { toPaddedBigEndianBytes } from './utils.js';\n\nexport const NONCE_LENGTH = 27;\n\nfunction toBigIntBE(bytes: Uint8Array) {\n\tconst hex = toHex(bytes);\n\tif (hex.length === 0) {\n\t\treturn BigInt(0);\n\t}\n\treturn BigInt(`0x${hex}`);\n}\n\nexport function generateRandomness() {\n\t// Once Node 20 enters LTS, we can just use crypto.getRandomValues(new Uint8Array(16)), but until then we use `randomBytes` to improve compatibility:\n\treturn String(toBigIntBE(randomBytes(16)));\n}\n\nexport function generateNonce(publicKey: PublicKey, maxEpoch: number, randomness: bigint | string) {\n\tconst publicKeyBytes = toBigIntBE(publicKey.toHaneulBytes());\n\tconst eph_public_key_0 = publicKeyBytes / 2n ** 128n;\n\tconst eph_public_key_1 = publicKeyBytes % 2n ** 128n;\n\tconst bigNum = poseidonHash([eph_public_key_0, eph_public_key_1, maxEpoch, BigInt(randomness)]);\n\tconst Z = toPaddedBigEndianBytes(bigNum, 20);\n\tconst nonce = base64urlnopad.encode(Z);\n\n\tif (nonce.length !== NONCE_LENGTH) {\n\t\tthrow new Error(`Length of nonce ${nonce} (${nonce.length}) is not equal to ${NONCE_LENGTH}`);\n\t}\n\treturn nonce;\n}\n"],"mappings":";;;;;;;AAWA,MAAa,eAAe;AAE5B,SAAS,WAAW,OAAmB;CACtC,MAAM,MAAM,MAAM,MAAM;AACxB,KAAI,IAAI,WAAW,EAClB,QAAO,OAAO,EAAE;AAEjB,QAAO,OAAO,KAAK,MAAM;;AAG1B,SAAgB,qBAAqB;AAEpC,QAAO,OAAO,WAAW,YAAY,GAAG,CAAC,CAAC;;AAG3C,SAAgB,cAAc,WAAsB,UAAkB,YAA6B;CAClG,MAAM,iBAAiB,WAAW,UAAU,eAAe,CAAC;CAI5D,MAAM,IAAI,uBADK,aAAa;EAFH,iBAAiB,MAAM;EACvB,iBAAiB,MAAM;EACiB;EAAU,OAAO,WAAW;EAAC,CAAC,EACtD,GAAG;CAC5C,MAAM,QAAQ,eAAe,OAAO,EAAE;AAEtC,KAAI,MAAM,WAAW,aACpB,OAAM,IAAI,MAAM,mBAAmB,MAAM,IAAI,MAAM,OAAO,oBAAoB,eAAe;AAE9F,QAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poseidon.d.mts","names":[],"sources":["../../src/zklogin/poseidon.ts"],"
|
|
1
|
+
{"version":3,"file":"poseidon.d.mts","names":[],"sources":["../../src/zklogin/poseidon.ts"],"mappings":";iBA4CgB,YAAA,CAAa,MAAA"}
|