@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
|
@@ -71,13 +71,13 @@ declare abstract class Keypair extends Signer {
|
|
|
71
71
|
* 33-byte Bech32 encoded string starting with `haneulprivkey`, and
|
|
72
72
|
* parse out the signature scheme and the private key in bytes.
|
|
73
73
|
*/
|
|
74
|
-
declare function
|
|
74
|
+
declare function decodeHaneulPrivateKey(value: string): ParsedKeypair;
|
|
75
75
|
/**
|
|
76
76
|
* This returns a Bech32 encoded string starting with `haneulprivkey`,
|
|
77
77
|
* encoding 33-byte `flag || bytes` for the given the 32-byte private
|
|
78
78
|
* key and its signature scheme.
|
|
79
79
|
*/
|
|
80
|
-
declare function
|
|
80
|
+
declare function encodeHaneulPrivateKey(bytes: Uint8Array, scheme: SignatureScheme): string;
|
|
81
81
|
//#endregion
|
|
82
|
-
export { HANEUL_PRIVATE_KEY_PREFIX, Keypair, LEGACY_PRIVATE_KEY_SIZE, PRIVATE_KEY_SIZE, ParsedKeypair, SignatureWithBytes, Signer,
|
|
82
|
+
export { HANEUL_PRIVATE_KEY_PREFIX, Keypair, LEGACY_PRIVATE_KEY_SIZE, PRIVATE_KEY_SIZE, ParsedKeypair, SignatureWithBytes, Signer, decodeHaneulPrivateKey, encodeHaneulPrivateKey };
|
|
83
83
|
//# sourceMappingURL=keypair.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keypair.d.mts","names":[],"sources":["../../src/cryptography/keypair.ts"],"
|
|
1
|
+
{"version":3,"file":"keypair.d.mts","names":[],"sources":["../../src/cryptography/keypair.ts"],"mappings":";;;;;;;;;cAgBa,gBAAA;AAAA,cACA,uBAAA;AAAA,cACA,yBAAA;AAAA,KAED,aAAA;EACX,MAAA,EAAQ,eAAA;EACR,SAAA,EAAW,UAAA;AAAA;AAAA,UAGK,kBAAA;EAChB,KAAA;EACA,SAAA;AAAA;AAAA,UAGgB,qBAAA;EAChB,WAAA,EAAa,WAAA;EACb,MAAA,EAAQ,iBAAA;AAAA;;;;uBAMa,MAAA;EAAA,SACZ,IAAA,CAAK,KAAA,EAAO,UAAA,GAAa,OAAA,CAAQ,UAAA,CAAW,WAAA;EAnB7B;;;;EAwBlB,cAAA,CAAe,KAAA,EAAO,UAAA,EAAY,MAAA,EAAQ,WAAA,GAAc,OAAA,CAAQ,kBAAA;EAtBtE;;;EAwCM,eAAA,CAAgB,KAAA,EAAO,UAAA,GAAU,OAAA,CAAA,kBAAA;EArCvB;;;EA2CV,mBAAA,CAAoB,KAAA,EAAO,UAAA,GAAU,OAAA;;;;EAYrC,yBAAA,CAAA;IACL,WAAA;IACA;EAAA,GACE,qBAAA,GAAwB,OAAA,CAC1B,iBAAA,CAAkB,iBAAA;IAAoB,WAAA;IAAmB,OAAA;EAAA;EAa1D,eAAA,CAAA;EAjEQ;;;EAAA,SAwEC,YAAA,CAAA,GAAgB,eAAA;EAlEE;;;EAAA,SAuElB,YAAA,CAAA,GAAgB,SAAA;AAAA;AAAA,uBAGJ,OAAA,SAAgB,MAAA;EApET;;;EAAA,SAwEnB,YAAA,CAAA;AAAA;;;;;;iBAQM,sBAAA,CAAuB,KAAA,WAAgB,aAAA;;;;;;iBAqBvC,sBAAA,CAAuB,KAAA,EAAO,UAAA,EAAY,MAAA,EAAQ,eAAA"}
|
|
@@ -67,7 +67,7 @@ var Keypair = class extends Signer {};
|
|
|
67
67
|
* 33-byte Bech32 encoded string starting with `haneulprivkey`, and
|
|
68
68
|
* parse out the signature scheme and the private key in bytes.
|
|
69
69
|
*/
|
|
70
|
-
function
|
|
70
|
+
function decodeHaneulPrivateKey(value) {
|
|
71
71
|
const { prefix, words } = bech32.decode(value);
|
|
72
72
|
if (prefix !== HANEUL_PRIVATE_KEY_PREFIX) throw new Error("invalid private key prefix");
|
|
73
73
|
const extendedSecretKey = new Uint8Array(bech32.fromWords(words));
|
|
@@ -82,7 +82,7 @@ function decodeSuiPrivateKey(value) {
|
|
|
82
82
|
* encoding 33-byte `flag || bytes` for the given the 32-byte private
|
|
83
83
|
* key and its signature scheme.
|
|
84
84
|
*/
|
|
85
|
-
function
|
|
85
|
+
function encodeHaneulPrivateKey(bytes, scheme) {
|
|
86
86
|
if (bytes.length !== PRIVATE_KEY_SIZE) throw new Error("Invalid bytes length");
|
|
87
87
|
const flag = SIGNATURE_SCHEME_TO_FLAG[scheme];
|
|
88
88
|
const privKeyBytes = new Uint8Array(bytes.length + 1);
|
|
@@ -92,5 +92,5 @@ function encodeSuiPrivateKey(bytes, scheme) {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
//#endregion
|
|
95
|
-
export { HANEUL_PRIVATE_KEY_PREFIX, Keypair, LEGACY_PRIVATE_KEY_SIZE, PRIVATE_KEY_SIZE, Signer,
|
|
95
|
+
export { HANEUL_PRIVATE_KEY_PREFIX, Keypair, LEGACY_PRIVATE_KEY_SIZE, PRIVATE_KEY_SIZE, Signer, decodeHaneulPrivateKey, encodeHaneulPrivateKey };
|
|
96
96
|
//# sourceMappingURL=keypair.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keypair.mjs","names":[],"sources":["../../src/cryptography/keypair.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs, toBase64 } from '@haneullabs/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\nimport { bech32 } from '@scure/base';\n\nimport type { IntentScope } from './intent.js';\nimport { messageWithIntent } from './intent.js';\nimport type { PublicKey } from './publickey.js';\nimport { SIGNATURE_FLAG_TO_SCHEME, SIGNATURE_SCHEME_TO_FLAG } from './signature-scheme.js';\nimport type { SignatureScheme } from './signature-scheme.js';\nimport { toSerializedSignature } from './signature.js';\nimport type { Transaction } from '../transactions/Transaction.js';\nimport type { ClientWithCoreApi, HaneulClientTypes } from '../client/index.js';\n\nexport const PRIVATE_KEY_SIZE = 32;\nexport const LEGACY_PRIVATE_KEY_SIZE = 64;\nexport const HANEUL_PRIVATE_KEY_PREFIX = 'haneulprivkey';\n\nexport type ParsedKeypair = {\n\tscheme: SignatureScheme;\n\tsecretKey: Uint8Array;\n};\n\nexport interface SignatureWithBytes {\n\tbytes: string;\n\tsignature: string;\n}\n\nexport interface SignAndExecuteOptions {\n\ttransaction: Transaction;\n\tclient: ClientWithCoreApi;\n}\n\n/**\n * TODO: Document\n */\nexport abstract class Signer {\n\tabstract sign(bytes: Uint8Array): Promise<Uint8Array<ArrayBuffer>>;\n\t/**\n\t * Sign messages with a specific intent. By combining the message bytes with the intent before hashing and signing,\n\t * it ensures that a signed message is tied to a specific purpose and domain separator is provided\n\t */\n\tasync signWithIntent(bytes: Uint8Array, intent: IntentScope): Promise<SignatureWithBytes> {\n\t\tconst intentMessage = messageWithIntent(intent, bytes);\n\t\tconst digest = blake2b(intentMessage, { dkLen: 32 });\n\n\t\tconst signature = toSerializedSignature({\n\t\t\tsignature: await this.sign(digest),\n\t\t\tsignatureScheme: this.getKeyScheme(),\n\t\t\tpublicKey: this.getPublicKey(),\n\t\t});\n\n\t\treturn {\n\t\t\tsignature,\n\t\t\tbytes: toBase64(bytes),\n\t\t};\n\t}\n\t/**\n\t * Signs provided transaction by calling `signWithIntent()` with a `TransactionData` provided as intent scope\n\t */\n\tasync signTransaction(bytes: Uint8Array) {\n\t\treturn this.signWithIntent(bytes, 'TransactionData');\n\t}\n\t/**\n\t * Signs provided personal message by calling `signWithIntent()` with a `PersonalMessage` provided as intent scope\n\t */\n\tasync signPersonalMessage(bytes: Uint8Array) {\n\t\tconst { signature } = await this.signWithIntent(\n\t\t\tbcs.byteVector().serialize(bytes).toBytes(),\n\t\t\t'PersonalMessage',\n\t\t);\n\n\t\treturn {\n\t\t\tbytes: toBase64(bytes),\n\t\t\tsignature,\n\t\t};\n\t}\n\n\tasync signAndExecuteTransaction({\n\t\ttransaction,\n\t\tclient,\n\t}: SignAndExecuteOptions): Promise<\n\t\tHaneulClientTypes.TransactionResult<{ transaction: true; effects: true }>\n\t> {\n\t\ttransaction.setSenderIfNotSet(this.toHaneulAddress());\n\t\tconst bytes = await transaction.build({ client });\n\t\tconst { signature } = await this.signTransaction(bytes);\n\n\t\treturn client.core.executeTransaction({\n\t\t\ttransaction: bytes,\n\t\t\tsignatures: [signature],\n\t\t\tinclude: { transaction: true, effects: true },\n\t\t});\n\t}\n\n\ttoHaneulAddress(): string {\n\t\treturn this.getPublicKey().toHaneulAddress();\n\t}\n\n\t/**\n\t * Get the key scheme of the keypair: Secp256k1 or ED25519\n\t */\n\tabstract getKeyScheme(): SignatureScheme;\n\n\t/**\n\t * The public key for this keypair\n\t */\n\tabstract getPublicKey(): PublicKey;\n}\n\nexport abstract class Keypair extends Signer {\n\t/**\n\t * This returns the Bech32 secret key string for this keypair.\n\t */\n\tabstract getSecretKey(): string;\n}\n\n/**\n * This returns an ParsedKeypair object based by validating the\n * 33-byte Bech32 encoded string starting with `haneulprivkey`, and\n * parse out the signature scheme and the private key in bytes.\n */\nexport function
|
|
1
|
+
{"version":3,"file":"keypair.mjs","names":[],"sources":["../../src/cryptography/keypair.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs, toBase64 } from '@haneullabs/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\nimport { bech32 } from '@scure/base';\n\nimport type { IntentScope } from './intent.js';\nimport { messageWithIntent } from './intent.js';\nimport type { PublicKey } from './publickey.js';\nimport { SIGNATURE_FLAG_TO_SCHEME, SIGNATURE_SCHEME_TO_FLAG } from './signature-scheme.js';\nimport type { SignatureScheme } from './signature-scheme.js';\nimport { toSerializedSignature } from './signature.js';\nimport type { Transaction } from '../transactions/Transaction.js';\nimport type { ClientWithCoreApi, HaneulClientTypes } from '../client/index.js';\n\nexport const PRIVATE_KEY_SIZE = 32;\nexport const LEGACY_PRIVATE_KEY_SIZE = 64;\nexport const HANEUL_PRIVATE_KEY_PREFIX = 'haneulprivkey';\n\nexport type ParsedKeypair = {\n\tscheme: SignatureScheme;\n\tsecretKey: Uint8Array;\n};\n\nexport interface SignatureWithBytes {\n\tbytes: string;\n\tsignature: string;\n}\n\nexport interface SignAndExecuteOptions {\n\ttransaction: Transaction;\n\tclient: ClientWithCoreApi;\n}\n\n/**\n * TODO: Document\n */\nexport abstract class Signer {\n\tabstract sign(bytes: Uint8Array): Promise<Uint8Array<ArrayBuffer>>;\n\t/**\n\t * Sign messages with a specific intent. By combining the message bytes with the intent before hashing and signing,\n\t * it ensures that a signed message is tied to a specific purpose and domain separator is provided\n\t */\n\tasync signWithIntent(bytes: Uint8Array, intent: IntentScope): Promise<SignatureWithBytes> {\n\t\tconst intentMessage = messageWithIntent(intent, bytes);\n\t\tconst digest = blake2b(intentMessage, { dkLen: 32 });\n\n\t\tconst signature = toSerializedSignature({\n\t\t\tsignature: await this.sign(digest),\n\t\t\tsignatureScheme: this.getKeyScheme(),\n\t\t\tpublicKey: this.getPublicKey(),\n\t\t});\n\n\t\treturn {\n\t\t\tsignature,\n\t\t\tbytes: toBase64(bytes),\n\t\t};\n\t}\n\t/**\n\t * Signs provided transaction by calling `signWithIntent()` with a `TransactionData` provided as intent scope\n\t */\n\tasync signTransaction(bytes: Uint8Array) {\n\t\treturn this.signWithIntent(bytes, 'TransactionData');\n\t}\n\t/**\n\t * Signs provided personal message by calling `signWithIntent()` with a `PersonalMessage` provided as intent scope\n\t */\n\tasync signPersonalMessage(bytes: Uint8Array) {\n\t\tconst { signature } = await this.signWithIntent(\n\t\t\tbcs.byteVector().serialize(bytes).toBytes(),\n\t\t\t'PersonalMessage',\n\t\t);\n\n\t\treturn {\n\t\t\tbytes: toBase64(bytes),\n\t\t\tsignature,\n\t\t};\n\t}\n\n\tasync signAndExecuteTransaction({\n\t\ttransaction,\n\t\tclient,\n\t}: SignAndExecuteOptions): Promise<\n\t\tHaneulClientTypes.TransactionResult<{ transaction: true; effects: true }>\n\t> {\n\t\ttransaction.setSenderIfNotSet(this.toHaneulAddress());\n\t\tconst bytes = await transaction.build({ client });\n\t\tconst { signature } = await this.signTransaction(bytes);\n\n\t\treturn client.core.executeTransaction({\n\t\t\ttransaction: bytes,\n\t\t\tsignatures: [signature],\n\t\t\tinclude: { transaction: true, effects: true },\n\t\t});\n\t}\n\n\ttoHaneulAddress(): string {\n\t\treturn this.getPublicKey().toHaneulAddress();\n\t}\n\n\t/**\n\t * Get the key scheme of the keypair: Secp256k1 or ED25519\n\t */\n\tabstract getKeyScheme(): SignatureScheme;\n\n\t/**\n\t * The public key for this keypair\n\t */\n\tabstract getPublicKey(): PublicKey;\n}\n\nexport abstract class Keypair extends Signer {\n\t/**\n\t * This returns the Bech32 secret key string for this keypair.\n\t */\n\tabstract getSecretKey(): string;\n}\n\n/**\n * This returns an ParsedKeypair object based by validating the\n * 33-byte Bech32 encoded string starting with `haneulprivkey`, and\n * parse out the signature scheme and the private key in bytes.\n */\nexport function decodeHaneulPrivateKey(value: string): ParsedKeypair {\n\tconst { prefix, words } = bech32.decode(value as `${string}1${string}`);\n\tif (prefix !== HANEUL_PRIVATE_KEY_PREFIX) {\n\t\tthrow new Error('invalid private key prefix');\n\t}\n\tconst extendedSecretKey = new Uint8Array(bech32.fromWords(words));\n\tconst secretKey = extendedSecretKey.slice(1);\n\tconst signatureScheme =\n\t\tSIGNATURE_FLAG_TO_SCHEME[extendedSecretKey[0] as keyof typeof SIGNATURE_FLAG_TO_SCHEME];\n\n\treturn {\n\t\tscheme: signatureScheme,\n\t\tsecretKey: secretKey,\n\t};\n}\n\n/**\n * This returns a Bech32 encoded string starting with `haneulprivkey`,\n * encoding 33-byte `flag || bytes` for the given the 32-byte private\n * key and its signature scheme.\n */\nexport function encodeHaneulPrivateKey(bytes: Uint8Array, scheme: SignatureScheme): string {\n\tif (bytes.length !== PRIVATE_KEY_SIZE) {\n\t\tthrow new Error('Invalid bytes length');\n\t}\n\tconst flag = SIGNATURE_SCHEME_TO_FLAG[scheme];\n\tconst privKeyBytes = new Uint8Array(bytes.length + 1);\n\tprivKeyBytes.set([flag]);\n\tprivKeyBytes.set(bytes, 1);\n\treturn bech32.encode(HANEUL_PRIVATE_KEY_PREFIX, bech32.toWords(privKeyBytes));\n}\n"],"mappings":";;;;;;;;AAgBA,MAAa,mBAAmB;AAChC,MAAa,0BAA0B;AACvC,MAAa,4BAA4B;;;;AAoBzC,IAAsB,SAAtB,MAA6B;;;;;CAM5B,MAAM,eAAe,OAAmB,QAAkD;EAEzF,MAAM,SAAS,QADO,kBAAkB,QAAQ,MAAM,EAChB,EAAE,OAAO,IAAI,CAAC;AAQpD,SAAO;GACN,WAPiB,sBAAsB;IACvC,WAAW,MAAM,KAAK,KAAK,OAAO;IAClC,iBAAiB,KAAK,cAAc;IACpC,WAAW,KAAK,cAAc;IAC9B,CAAC;GAID,OAAO,SAAS,MAAM;GACtB;;;;;CAKF,MAAM,gBAAgB,OAAmB;AACxC,SAAO,KAAK,eAAe,OAAO,kBAAkB;;;;;CAKrD,MAAM,oBAAoB,OAAmB;EAC5C,MAAM,EAAE,cAAc,MAAM,KAAK,eAChC,IAAI,YAAY,CAAC,UAAU,MAAM,CAAC,SAAS,EAC3C,kBACA;AAED,SAAO;GACN,OAAO,SAAS,MAAM;GACtB;GACA;;CAGF,MAAM,0BAA0B,EAC/B,aACA,UAGC;AACD,cAAY,kBAAkB,KAAK,iBAAiB,CAAC;EACrD,MAAM,QAAQ,MAAM,YAAY,MAAM,EAAE,QAAQ,CAAC;EACjD,MAAM,EAAE,cAAc,MAAM,KAAK,gBAAgB,MAAM;AAEvD,SAAO,OAAO,KAAK,mBAAmB;GACrC,aAAa;GACb,YAAY,CAAC,UAAU;GACvB,SAAS;IAAE,aAAa;IAAM,SAAS;IAAM;GAC7C,CAAC;;CAGH,kBAA0B;AACzB,SAAO,KAAK,cAAc,CAAC,iBAAiB;;;AAc9C,IAAsB,UAAtB,cAAsC,OAAO;;;;;;AAY7C,SAAgB,uBAAuB,OAA8B;CACpE,MAAM,EAAE,QAAQ,UAAU,OAAO,OAAO,MAA+B;AACvE,KAAI,WAAW,0BACd,OAAM,IAAI,MAAM,6BAA6B;CAE9C,MAAM,oBAAoB,IAAI,WAAW,OAAO,UAAU,MAAM,CAAC;CACjE,MAAM,YAAY,kBAAkB,MAAM,EAAE;AAI5C,QAAO;EACN,QAHA,yBAAyB,kBAAkB;EAIhC;EACX;;;;;;;AAQF,SAAgB,uBAAuB,OAAmB,QAAiC;AAC1F,KAAI,MAAM,WAAW,iBACpB,OAAM,IAAI,MAAM,uBAAuB;CAExC,MAAM,OAAO,yBAAyB;CACtC,MAAM,eAAe,IAAI,WAAW,MAAM,SAAS,EAAE;AACrD,cAAa,IAAI,CAAC,KAAK,CAAC;AACxB,cAAa,IAAI,OAAO,EAAE;AAC1B,QAAO,OAAO,OAAO,2BAA2B,OAAO,QAAQ,aAAa,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
//#region src/cryptography/mnemonics.d.ts
|
|
2
2
|
/**
|
|
3
|
-
* Parse and validate a path that is compliant to SLIP-0010 in form m/44'/
|
|
3
|
+
* Parse and validate a path that is compliant to SLIP-0010 in form m/44'/8282'/{account_index}'/{change_index}'/{address_index}'.
|
|
4
4
|
*
|
|
5
|
-
* @param path path string (e.g. `m/44'/
|
|
5
|
+
* @param path path string (e.g. `m/44'/8282'/0'/0'/0'`).
|
|
6
6
|
*/
|
|
7
7
|
declare function isValidHardenedPath(path: string): boolean;
|
|
8
8
|
/**
|
|
9
|
-
* Parse and validate a path that is compliant to BIP-32 in form m/54'/
|
|
10
|
-
* for Secp256k1 and m/74'/
|
|
9
|
+
* Parse and validate a path that is compliant to BIP-32 in form m/54'/8282'/{account_index}'/{change_index}/{address_index}
|
|
10
|
+
* for Secp256k1 and m/74'/8282'/{account_index}'/{change_index}/{address_index} for Secp256r1.
|
|
11
11
|
*
|
|
12
12
|
* Note that the purpose for Secp256k1 is registered as 54, to differentiate from Ed25519 with purpose 44.
|
|
13
13
|
*
|
|
14
|
-
* @param path path string (e.g. `m/54'/
|
|
14
|
+
* @param path path string (e.g. `m/54'/8282'/0'/0/0`).
|
|
15
15
|
*/
|
|
16
16
|
declare function isValidBIP32Path(path: string): boolean;
|
|
17
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mnemonics.d.mts","names":[],"sources":["../../src/cryptography/mnemonics.ts"],"
|
|
1
|
+
{"version":3,"file":"mnemonics.d.mts","names":[],"sources":["../../src/cryptography/mnemonics.ts"],"mappings":";;AAUA;;;;iBAAgB,mBAAA,CAAoB,IAAA;AAepC;;;;;AAYA;;;AAZA,iBAAgB,gBAAA,CAAiB,IAAA;;AAqBjC;;;;iBATgB,cAAA,CAAe,SAAA,WAAoB,UAAA;;;;;;iBASnC,iBAAA,CAAkB,SAAA"}
|
|
@@ -3,24 +3,24 @@ import { mnemonicToSeedSync } from "@scure/bip39";
|
|
|
3
3
|
|
|
4
4
|
//#region src/cryptography/mnemonics.ts
|
|
5
5
|
/**
|
|
6
|
-
* Parse and validate a path that is compliant to SLIP-0010 in form m/44'/
|
|
6
|
+
* Parse and validate a path that is compliant to SLIP-0010 in form m/44'/8282'/{account_index}'/{change_index}'/{address_index}'.
|
|
7
7
|
*
|
|
8
|
-
* @param path path string (e.g. `m/44'/
|
|
8
|
+
* @param path path string (e.g. `m/44'/8282'/0'/0'/0'`).
|
|
9
9
|
*/
|
|
10
10
|
function isValidHardenedPath(path) {
|
|
11
|
-
if (!(/* @__PURE__ */ new RegExp("^m\\/44'\\/
|
|
11
|
+
if (!(/* @__PURE__ */ new RegExp("^m\\/44'\\/8282'\\/[0-9]+'\\/[0-9]+'\\/[0-9]+'+$")).test(path)) return false;
|
|
12
12
|
return true;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* Parse and validate a path that is compliant to BIP-32 in form m/54'/
|
|
16
|
-
* for Secp256k1 and m/74'/
|
|
15
|
+
* Parse and validate a path that is compliant to BIP-32 in form m/54'/8282'/{account_index}'/{change_index}/{address_index}
|
|
16
|
+
* for Secp256k1 and m/74'/8282'/{account_index}'/{change_index}/{address_index} for Secp256r1.
|
|
17
17
|
*
|
|
18
18
|
* Note that the purpose for Secp256k1 is registered as 54, to differentiate from Ed25519 with purpose 44.
|
|
19
19
|
*
|
|
20
|
-
* @param path path string (e.g. `m/54'/
|
|
20
|
+
* @param path path string (e.g. `m/54'/8282'/0'/0/0`).
|
|
21
21
|
*/
|
|
22
22
|
function isValidBIP32Path(path) {
|
|
23
|
-
if (!(/* @__PURE__ */ new RegExp("^m\\/(54|74)'\\/
|
|
23
|
+
if (!(/* @__PURE__ */ new RegExp("^m\\/(54|74)'\\/8282'\\/[0-9]+'\\/[0-9]+\\/[0-9]+$")).test(path)) return false;
|
|
24
24
|
return true;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mnemonics.mjs","names":["bip39MnemonicToSeedSync"],"sources":["../../src/cryptography/mnemonics.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport { toHex } from '@haneullabs/bcs';\nimport { mnemonicToSeedSync as bip39MnemonicToSeedSync } from '@scure/bip39';\n\n/**\n * Parse and validate a path that is compliant to SLIP-0010 in form m/44'/
|
|
1
|
+
{"version":3,"file":"mnemonics.mjs","names":["bip39MnemonicToSeedSync"],"sources":["../../src/cryptography/mnemonics.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport { toHex } from '@haneullabs/bcs';\nimport { mnemonicToSeedSync as bip39MnemonicToSeedSync } from '@scure/bip39';\n\n/**\n * Parse and validate a path that is compliant to SLIP-0010 in form m/44'/8282'/{account_index}'/{change_index}'/{address_index}'.\n *\n * @param path path string (e.g. `m/44'/8282'/0'/0'/0'`).\n */\nexport function isValidHardenedPath(path: string): boolean {\n\tif (!new RegExp(\"^m\\\\/44'\\\\/8282'\\\\/[0-9]+'\\\\/[0-9]+'\\\\/[0-9]+'+$\").test(path)) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n\n/**\n * Parse and validate a path that is compliant to BIP-32 in form m/54'/8282'/{account_index}'/{change_index}/{address_index}\n * for Secp256k1 and m/74'/8282'/{account_index}'/{change_index}/{address_index} for Secp256r1.\n *\n * Note that the purpose for Secp256k1 is registered as 54, to differentiate from Ed25519 with purpose 44.\n *\n * @param path path string (e.g. `m/54'/8282'/0'/0/0`).\n */\nexport function isValidBIP32Path(path: string): boolean {\n\tif (!new RegExp(\"^m\\\\/(54|74)'\\\\/8282'\\\\/[0-9]+'\\\\/[0-9]+\\\\/[0-9]+$\").test(path)) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n\n/**\n * Uses KDF to derive 64 bytes of key data from mnemonic with empty password.\n *\n * @param mnemonics 12 words string split by spaces.\n */\nexport function mnemonicToSeed(mnemonics: string): Uint8Array {\n\treturn bip39MnemonicToSeedSync(mnemonics, '');\n}\n\n/**\n * Derive the seed in hex format from a 12-word mnemonic string.\n *\n * @param mnemonics 12 words string split by spaces.\n */\nexport function mnemonicToSeedHex(mnemonics: string): string {\n\treturn toHex(mnemonicToSeed(mnemonics));\n}\n"],"mappings":";;;;;;;;;AAUA,SAAgB,oBAAoB,MAAuB;AAC1D,KAAI,kBAAC,IAAI,OAAO,mDAAmD,EAAC,KAAK,KAAK,CAC7E,QAAO;AAER,QAAO;;;;;;;;;;AAWR,SAAgB,iBAAiB,MAAuB;AACvD,KAAI,kBAAC,IAAI,OAAO,qDAAqD,EAAC,KAAK,KAAK,CAC/E,QAAO;AAER,QAAO;;;;;;;AAQR,SAAgB,eAAe,WAA+B;AAC7D,QAAOA,mBAAwB,WAAW,GAAG;;;;;;;AAQ9C,SAAgB,kBAAkB,WAA2B;AAC5D,QAAO,MAAM,eAAe,UAAU,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { IntentScope } from "./intent.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/cryptography/publickey.d.ts
|
|
4
|
-
|
|
5
4
|
/**
|
|
6
5
|
* Value to be converted into public key.
|
|
7
6
|
*/
|
|
@@ -24,7 +23,7 @@ declare abstract class PublicKey {
|
|
|
24
23
|
* base-64. A Haneul public key is formed by the concatenation
|
|
25
24
|
* of the scheme flag with the raw bytes of the public key
|
|
26
25
|
*/
|
|
27
|
-
|
|
26
|
+
toHaneulPublicKey(): string;
|
|
28
27
|
verifyWithIntent(bytes: Uint8Array, signature: Uint8Array | string, intent: IntentScope): Promise<boolean>;
|
|
29
28
|
/**
|
|
30
29
|
* Verifies that the signature is valid for for the provided PersonalMessage
|
|
@@ -42,7 +41,7 @@ declare abstract class PublicKey {
|
|
|
42
41
|
* Returns the bytes representation of the public key
|
|
43
42
|
* prefixed with the signature scheme flag
|
|
44
43
|
*/
|
|
45
|
-
|
|
44
|
+
toHaneulBytes(): Uint8Array<ArrayBuffer>;
|
|
46
45
|
/**
|
|
47
46
|
* Return the Haneul address associated with this Ed25519 public key
|
|
48
47
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publickey.d.mts","names":[],"sources":["../../src/cryptography/publickey.ts"],"
|
|
1
|
+
{"version":3,"file":"publickey.d.mts","names":[],"sources":["../../src/cryptography/publickey.ts"],"mappings":";;;;;AAgBA;KAAY,iBAAA,YAA6B,UAAA,GAAa,QAAA;;;AAoBtD;uBAAsB,SAAA;;;;EAIrB,MAAA,CAAO,SAAA,EAAW,SAAA;EA8BT;;;EAvBT,QAAA,CAAA;EAIA,QAAA,CAAA;EAyC+B;;;;;EA9B/B,iBAAA,CAAA;EAKA,gBAAA,CACC,KAAA,EAAO,UAAA,EACP,SAAA,EAAW,UAAA,WACX,MAAA,EAAQ,WAAA,GACN,OAAA;EAoEmB;;;EA1DtB,qBAAA,CAAsB,OAAA,EAAS,UAAA,EAAY,SAAA,EAAW,UAAA,YAAsB,OAAA;EA0DF;;;EA/C1E,iBAAA,CAAkB,WAAA,EAAa,UAAA,EAAY,SAAA,EAAW,UAAA,YAAsB,OAAA;EA7C5E;;;EAoDA,aAAA,CAAc,OAAA;EA/BN;;;;EAuCR,aAAA,CAAA,GAAiB,UAAA,CAAW,WAAA;EArC3B;;;EAiDD,eAAA,CAAA;EAtCsB;;;EAAA,SAgDb,UAAA,CAAA,GAAc,UAAA,CAAW,WAAA;EArClC;;;EAAA,SA0CS,IAAA,CAAA;EA1CkC;;;EAAA,SA+ClC,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY,SAAA,EAAW,UAAA,YAAsB,OAAA;AAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HANEUL_ADDRESS_LENGTH, normalizeHaneulAddress } from "../utils/haneul-types.mjs";
|
|
2
|
-
import { bcs as
|
|
2
|
+
import { bcs as haneulBcs } from "../bcs/index.mjs";
|
|
3
3
|
import { messageWithIntent } from "./intent.mjs";
|
|
4
4
|
import { SIGNATURE_FLAG_TO_SCHEME, SIGNATURE_SCHEME_TO_SIZE } from "./signature-scheme.mjs";
|
|
5
5
|
import { fromBase64, toBase64 } from "@haneullabs/bcs";
|
|
@@ -37,8 +37,8 @@ var PublicKey = class {
|
|
|
37
37
|
* base-64. A Haneul public key is formed by the concatenation
|
|
38
38
|
* of the scheme flag with the raw bytes of the public key
|
|
39
39
|
*/
|
|
40
|
-
|
|
41
|
-
return toBase64(this.
|
|
40
|
+
toHaneulPublicKey() {
|
|
41
|
+
return toBase64(this.toHaneulBytes());
|
|
42
42
|
}
|
|
43
43
|
verifyWithIntent(bytes, signature, intent) {
|
|
44
44
|
const digest = blake2b(messageWithIntent(intent, bytes), { dkLen: 32 });
|
|
@@ -48,7 +48,7 @@ var PublicKey = class {
|
|
|
48
48
|
* Verifies that the signature is valid for for the provided PersonalMessage
|
|
49
49
|
*/
|
|
50
50
|
verifyPersonalMessage(message, signature) {
|
|
51
|
-
return this.verifyWithIntent(
|
|
51
|
+
return this.verifyWithIntent(haneulBcs.byteVector().serialize(message).toBytes(), signature, "PersonalMessage");
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* Verifies that the signature is valid for for the provided Transaction
|
|
@@ -66,18 +66,18 @@ var PublicKey = class {
|
|
|
66
66
|
* Returns the bytes representation of the public key
|
|
67
67
|
* prefixed with the signature scheme flag
|
|
68
68
|
*/
|
|
69
|
-
|
|
69
|
+
toHaneulBytes() {
|
|
70
70
|
const rawBytes = this.toRawBytes();
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return
|
|
71
|
+
const haneulBytes = new Uint8Array(rawBytes.length + 1);
|
|
72
|
+
haneulBytes.set([this.flag()]);
|
|
73
|
+
haneulBytes.set(rawBytes, 1);
|
|
74
|
+
return haneulBytes;
|
|
75
75
|
}
|
|
76
76
|
/**
|
|
77
77
|
* Return the Haneul address associated with this Ed25519 public key
|
|
78
78
|
*/
|
|
79
79
|
toHaneulAddress() {
|
|
80
|
-
return normalizeHaneulAddress(bytesToHex(blake2b(this.
|
|
80
|
+
return normalizeHaneulAddress(bytesToHex(blake2b(this.toHaneulBytes(), { dkLen: 32 })).slice(0, HANEUL_ADDRESS_LENGTH * 2));
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
83
|
function parseSerializedKeypairSignature(serializedSignature) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publickey.mjs","names":["bcs"],"sources":["../../src/cryptography/publickey.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@haneullabs/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\nimport { bytesToHex } from '@noble/hashes/utils.js';\n\nimport { bcs } from '../bcs/index.js';\nimport { normalizeHaneulAddress, HANEUL_ADDRESS_LENGTH } from '../utils/haneul-types.js';\nimport type { IntentScope } from './intent.js';\nimport { messageWithIntent } from './intent.js';\nimport { SIGNATURE_FLAG_TO_SCHEME, SIGNATURE_SCHEME_TO_SIZE } from './signature-scheme.js';\n\n/**\n * Value to be converted into public key.\n */\nexport type PublicKeyInitData = string | Uint8Array | Iterable<number>;\n\nexport function bytesEqual(a: Uint8Array, b: Uint8Array) {\n\tif (a === b) return true;\n\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * A public key\n */\nexport abstract class PublicKey {\n\t/**\n\t * Checks if two public keys are equal\n\t */\n\tequals(publicKey: PublicKey) {\n\t\treturn bytesEqual(this.toRawBytes(), publicKey.toRawBytes());\n\t}\n\n\t/**\n\t * Return the base-64 representation of the public key\n\t */\n\ttoBase64() {\n\t\treturn toBase64(this.toRawBytes());\n\t}\n\n\ttoString(): never {\n\t\tthrow new Error(\n\t\t\t'`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.',\n\t\t);\n\t}\n\n\t/**\n\t * Return the Haneul representation of the public key encoded in\n\t * base-64. A Haneul public key is formed by the concatenation\n\t * of the scheme flag with the raw bytes of the public key\n\t */\n\
|
|
1
|
+
{"version":3,"file":"publickey.mjs","names":["bcs"],"sources":["../../src/cryptography/publickey.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@haneullabs/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\nimport { bytesToHex } from '@noble/hashes/utils.js';\n\nimport { bcs } from '../bcs/index.js';\nimport { normalizeHaneulAddress, HANEUL_ADDRESS_LENGTH } from '../utils/haneul-types.js';\nimport type { IntentScope } from './intent.js';\nimport { messageWithIntent } from './intent.js';\nimport { SIGNATURE_FLAG_TO_SCHEME, SIGNATURE_SCHEME_TO_SIZE } from './signature-scheme.js';\n\n/**\n * Value to be converted into public key.\n */\nexport type PublicKeyInitData = string | Uint8Array | Iterable<number>;\n\nexport function bytesEqual(a: Uint8Array, b: Uint8Array) {\n\tif (a === b) return true;\n\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * A public key\n */\nexport abstract class PublicKey {\n\t/**\n\t * Checks if two public keys are equal\n\t */\n\tequals(publicKey: PublicKey) {\n\t\treturn bytesEqual(this.toRawBytes(), publicKey.toRawBytes());\n\t}\n\n\t/**\n\t * Return the base-64 representation of the public key\n\t */\n\ttoBase64() {\n\t\treturn toBase64(this.toRawBytes());\n\t}\n\n\ttoString(): never {\n\t\tthrow new Error(\n\t\t\t'`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.',\n\t\t);\n\t}\n\n\t/**\n\t * Return the Haneul representation of the public key encoded in\n\t * base-64. A Haneul public key is formed by the concatenation\n\t * of the scheme flag with the raw bytes of the public key\n\t */\n\ttoHaneulPublicKey(): string {\n\t\tconst bytes = this.toHaneulBytes();\n\t\treturn toBase64(bytes);\n\t}\n\n\tverifyWithIntent(\n\t\tbytes: Uint8Array,\n\t\tsignature: Uint8Array | string,\n\t\tintent: IntentScope,\n\t): Promise<boolean> {\n\t\tconst intentMessage = messageWithIntent(intent, bytes);\n\t\tconst digest = blake2b(intentMessage, { dkLen: 32 });\n\n\t\treturn this.verify(digest, signature);\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided PersonalMessage\n\t */\n\tverifyPersonalMessage(message: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\treturn this.verifyWithIntent(\n\t\t\tbcs.byteVector().serialize(message).toBytes(),\n\t\t\tsignature,\n\t\t\t'PersonalMessage',\n\t\t);\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided Transaction\n\t */\n\tverifyTransaction(transaction: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\treturn this.verifyWithIntent(transaction, signature, 'TransactionData');\n\t}\n\n\t/**\n\t * Verifies that the public key is associated with the provided address\n\t */\n\tverifyAddress(address: string): boolean {\n\t\treturn this.toHaneulAddress() === address;\n\t}\n\n\t/**\n\t * Returns the bytes representation of the public key\n\t * prefixed with the signature scheme flag\n\t */\n\ttoHaneulBytes(): Uint8Array<ArrayBuffer> {\n\t\tconst rawBytes = this.toRawBytes();\n\t\tconst haneulBytes = new Uint8Array(rawBytes.length + 1);\n\t\thaneulBytes.set([this.flag()]);\n\t\thaneulBytes.set(rawBytes, 1);\n\n\t\treturn haneulBytes;\n\t}\n\n\t/**\n\t * Return the Haneul address associated with this Ed25519 public key\n\t */\n\ttoHaneulAddress(): string {\n\t\t// Each hex char represents half a byte, hence hex address doubles the length\n\t\treturn normalizeHaneulAddress(\n\t\t\tbytesToHex(blake2b(this.toHaneulBytes(), { dkLen: 32 })).slice(0, HANEUL_ADDRESS_LENGTH * 2),\n\t\t);\n\t}\n\n\t/**\n\t * Return the byte array representation of the public key\n\t */\n\tabstract toRawBytes(): Uint8Array<ArrayBuffer>;\n\n\t/**\n\t * Return signature scheme flag of the public key\n\t */\n\tabstract flag(): number;\n\n\t/**\n\t * Verifies that the signature is valid for for the provided message\n\t */\n\tabstract verify(data: Uint8Array, signature: Uint8Array | string): Promise<boolean>;\n}\n\nexport function parseSerializedKeypairSignature(serializedSignature: string) {\n\tconst bytes = fromBase64(serializedSignature);\n\n\tconst signatureScheme =\n\t\tSIGNATURE_FLAG_TO_SCHEME[bytes[0] as keyof typeof SIGNATURE_FLAG_TO_SCHEME];\n\n\tswitch (signatureScheme) {\n\t\tcase 'ED25519':\n\t\tcase 'Secp256k1':\n\t\tcase 'Secp256r1':\n\t\t\tconst size =\n\t\t\t\tSIGNATURE_SCHEME_TO_SIZE[signatureScheme as keyof typeof SIGNATURE_SCHEME_TO_SIZE];\n\t\t\tconst signature = bytes.slice(1, bytes.length - size);\n\t\t\tconst publicKey = bytes.slice(1 + signature.length);\n\n\t\t\treturn {\n\t\t\t\tserializedSignature,\n\t\t\t\tsignatureScheme,\n\t\t\t\tsignature,\n\t\t\t\tpublicKey,\n\t\t\t\tbytes,\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new Error('Unsupported signature scheme');\n\t}\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAgB,WAAW,GAAe,GAAe;AACxD,KAAI,MAAM,EAAG,QAAO;AAEpB,KAAI,EAAE,WAAW,EAAE,OAClB,QAAO;AAGR,MAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,IAC7B,KAAI,EAAE,OAAO,EAAE,GACd,QAAO;AAGT,QAAO;;;;;AAMR,IAAsB,YAAtB,MAAgC;;;;CAI/B,OAAO,WAAsB;AAC5B,SAAO,WAAW,KAAK,YAAY,EAAE,UAAU,YAAY,CAAC;;;;;CAM7D,WAAW;AACV,SAAO,SAAS,KAAK,YAAY,CAAC;;CAGnC,WAAkB;AACjB,QAAM,IAAI,MACT,4FACA;;;;;;;CAQF,oBAA4B;AAE3B,SAAO,SADO,KAAK,eAAe,CACZ;;CAGvB,iBACC,OACA,WACA,QACmB;EAEnB,MAAM,SAAS,QADO,kBAAkB,QAAQ,MAAM,EAChB,EAAE,OAAO,IAAI,CAAC;AAEpD,SAAO,KAAK,OAAO,QAAQ,UAAU;;;;;CAMtC,sBAAsB,SAAqB,WAAkD;AAC5F,SAAO,KAAK,iBACXA,UAAI,YAAY,CAAC,UAAU,QAAQ,CAAC,SAAS,EAC7C,WACA,kBACA;;;;;CAMF,kBAAkB,aAAyB,WAAkD;AAC5F,SAAO,KAAK,iBAAiB,aAAa,WAAW,kBAAkB;;;;;CAMxE,cAAc,SAA0B;AACvC,SAAO,KAAK,iBAAiB,KAAK;;;;;;CAOnC,gBAAyC;EACxC,MAAM,WAAW,KAAK,YAAY;EAClC,MAAM,cAAc,IAAI,WAAW,SAAS,SAAS,EAAE;AACvD,cAAY,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;AAC9B,cAAY,IAAI,UAAU,EAAE;AAE5B,SAAO;;;;;CAMR,kBAA0B;AAEzB,SAAO,uBACN,WAAW,QAAQ,KAAK,eAAe,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAC5F;;;AAmBH,SAAgB,gCAAgC,qBAA6B;CAC5E,MAAM,QAAQ,WAAW,oBAAoB;CAE7C,MAAM,kBACL,yBAAyB,MAAM;AAEhC,SAAQ,iBAAR;EACC,KAAK;EACL,KAAK;EACL,KAAK;GACJ,MAAM,OACL,yBAAyB;GAC1B,MAAM,YAAY,MAAM,MAAM,GAAG,MAAM,SAAS,KAAK;AAGrD,UAAO;IACN;IACA;IACA;IACA,WANiB,MAAM,MAAM,IAAI,UAAU,OAAO;IAOlD;IACA;EACF,QACC,OAAM,IAAI,MAAM,+BAA+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-scheme.d.mts","names":[],"sources":["../../src/cryptography/signature-scheme.ts"],"
|
|
1
|
+
{"version":3,"file":"signature-scheme.d.mts","names":[],"sources":["../../src/cryptography/signature-scheme.ts"],"mappings":";cAGa,wBAAA;EAAA;;;;;;;cASA,wBAAA;;;;;;cAOA,wBAAA;EAAA;;;;;;;KASD,eAAA;AAAA,KAQA,aAAA,gBAA6B,wBAAA"}
|
|
@@ -3,15 +3,12 @@ import { SignatureScheme } from "./signature-scheme.mjs";
|
|
|
3
3
|
import { MultiSigStruct } from "../multisig/publickey.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/cryptography/signature.d.ts
|
|
6
|
-
|
|
7
6
|
/**
|
|
8
7
|
* Pair of signature and corresponding public key
|
|
9
8
|
*/
|
|
10
9
|
type SerializeSignatureInput = {
|
|
11
|
-
signatureScheme: SignatureScheme;
|
|
12
|
-
/** Base64-encoded
|
|
13
|
-
signature: Uint8Array;
|
|
14
|
-
/** Base64-encoded public key */
|
|
10
|
+
signatureScheme: SignatureScheme; /** Base64-encoded signature */
|
|
11
|
+
signature: Uint8Array; /** Base64-encoded public key */
|
|
15
12
|
publicKey?: PublicKey;
|
|
16
13
|
};
|
|
17
14
|
/**
|
|
@@ -26,14 +23,6 @@ declare function toSerializedSignature({
|
|
|
26
23
|
* Decodes a serialized signature into its constituent components: the signature scheme, the actual signature, and the public key
|
|
27
24
|
*/
|
|
28
25
|
declare function parseSerializedSignature(serializedSignature: string): {
|
|
29
|
-
signatureScheme: "Passkey";
|
|
30
|
-
serializedSignature: string;
|
|
31
|
-
signature: Uint8Array<ArrayBufferLike>;
|
|
32
|
-
authenticatorData: Uint8Array<ArrayBufferLike>;
|
|
33
|
-
clientDataJson: string;
|
|
34
|
-
userSignature: Uint8Array<ArrayBuffer>;
|
|
35
|
-
publicKey: Uint8Array<ArrayBuffer>;
|
|
36
|
-
} | {
|
|
37
26
|
serializedSignature: string;
|
|
38
27
|
signatureScheme: "ZkLogin";
|
|
39
28
|
zkLogin: {
|
|
@@ -57,6 +46,14 @@ declare function parseSerializedSignature(serializedSignature: string): {
|
|
|
57
46
|
};
|
|
58
47
|
signature: Uint8Array<ArrayBufferLike>;
|
|
59
48
|
publicKey: Uint8Array<ArrayBuffer>;
|
|
49
|
+
} | {
|
|
50
|
+
signatureScheme: "Passkey";
|
|
51
|
+
serializedSignature: string;
|
|
52
|
+
signature: Uint8Array<ArrayBufferLike>;
|
|
53
|
+
authenticatorData: Uint8Array<ArrayBufferLike>;
|
|
54
|
+
clientDataJson: string;
|
|
55
|
+
userSignature: Uint8Array<ArrayBuffer>;
|
|
56
|
+
publicKey: Uint8Array<ArrayBuffer>;
|
|
60
57
|
} | {
|
|
61
58
|
serializedSignature: string;
|
|
62
59
|
signatureScheme: "ED25519" | "Secp256k1" | "Secp256r1";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.d.mts","names":[],"sources":["../../src/cryptography/signature.ts"],"
|
|
1
|
+
{"version":3,"file":"signature.d.mts","names":[],"sources":["../../src/cryptography/signature.ts"],"mappings":";;;;;;;AAiBA;KAAY,uBAAA;EACX,eAAA,EAAiB,eAAA,EAAA;EAEjB,SAAA,EAAW,UAAA,EAEC;EAAZ,SAAA,GAAY,SAAA;AAAA;;;;iBAMG,qBAAA,CAAA;EACf,SAAA;EACA,eAAA;EACA;AAAA,GACE,uBAAA;;;;iBAgBa,wBAAA,CAAyB,mBAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { bcs as
|
|
1
|
+
import { bcs as haneulBcs } from "../bcs/index.mjs";
|
|
2
2
|
import { SIGNATURE_FLAG_TO_SCHEME, SIGNATURE_SCHEME_TO_FLAG } from "./signature-scheme.mjs";
|
|
3
3
|
import { parseSerializedKeypairSignature } from "./publickey.mjs";
|
|
4
4
|
import { parseSerializedPasskeySignature } from "../keypairs/passkey/publickey.mjs";
|
|
@@ -29,7 +29,7 @@ function parseSerializedSignature(serializedSignature) {
|
|
|
29
29
|
case "MultiSig": return {
|
|
30
30
|
serializedSignature,
|
|
31
31
|
signatureScheme,
|
|
32
|
-
multisig:
|
|
32
|
+
multisig: haneulBcs.MultiSig.parse(bytes.slice(1)),
|
|
33
33
|
bytes,
|
|
34
34
|
signature: void 0
|
|
35
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.mjs","names":["bcs"],"sources":["../../src/cryptography/signature.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@haneullabs/bcs';\n\nimport { bcs } from '../bcs/index.js';\nimport { parseSerializedPasskeySignature } from '../keypairs/passkey/publickey.js';\nimport type { MultiSigStruct } from '../multisig/publickey.js';\nimport { parseSerializedZkLoginSignature } from '../zklogin/publickey.js';\nimport { parseSerializedKeypairSignature } from './publickey.js';\nimport type { PublicKey } from './publickey.js';\nimport type { SignatureScheme } from './signature-scheme.js';\nimport { SIGNATURE_FLAG_TO_SCHEME, SIGNATURE_SCHEME_TO_FLAG } from './signature-scheme.js';\n\n/**\n * Pair of signature and corresponding public key\n */\nexport type SerializeSignatureInput = {\n\tsignatureScheme: SignatureScheme;\n\t/** Base64-encoded signature */\n\tsignature: Uint8Array;\n\t/** Base64-encoded public key */\n\tpublicKey?: PublicKey;\n};\n\n/**\n * Takes in a signature, its associated signing scheme and a public key, then serializes this data\n */\nexport function toSerializedSignature({\n\tsignature,\n\tsignatureScheme,\n\tpublicKey,\n}: SerializeSignatureInput): string {\n\tif (!publicKey) {\n\t\tthrow new Error('`publicKey` is required');\n\t}\n\n\tconst pubKeyBytes = publicKey.toRawBytes();\n\tconst serializedSignature = new Uint8Array(1 + signature.length + pubKeyBytes.length);\n\tserializedSignature.set([SIGNATURE_SCHEME_TO_FLAG[signatureScheme]]);\n\tserializedSignature.set(signature, 1);\n\tserializedSignature.set(pubKeyBytes, 1 + signature.length);\n\treturn toBase64(serializedSignature);\n}\n\n/**\n * Decodes a serialized signature into its constituent components: the signature scheme, the actual signature, and the public key\n */\nexport function parseSerializedSignature(serializedSignature: string) {\n\tconst bytes = fromBase64(serializedSignature);\n\n\tconst signatureScheme =\n\t\tSIGNATURE_FLAG_TO_SCHEME[bytes[0] as keyof typeof SIGNATURE_FLAG_TO_SCHEME];\n\n\tswitch (signatureScheme) {\n\t\tcase 'Passkey':\n\t\t\treturn parseSerializedPasskeySignature(serializedSignature);\n\t\tcase 'MultiSig':\n\t\t\tconst multisig: MultiSigStruct = bcs.MultiSig.parse(bytes.slice(1));\n\t\t\treturn {\n\t\t\t\tserializedSignature,\n\t\t\t\tsignatureScheme,\n\t\t\t\tmultisig,\n\t\t\t\tbytes,\n\t\t\t\tsignature: undefined,\n\t\t\t};\n\t\tcase 'ZkLogin':\n\t\t\treturn parseSerializedZkLoginSignature(serializedSignature);\n\t\tcase 'ED25519':\n\t\tcase 'Secp256k1':\n\t\tcase 'Secp256r1':\n\t\t\treturn parseSerializedKeypairSignature(serializedSignature);\n\t\tdefault:\n\t\t\tthrow new Error('Unsupported signature scheme');\n\t}\n}\n"],"mappings":";;;;;;;;;;;AA4BA,SAAgB,sBAAsB,EACrC,WACA,iBACA,aACmC;AACnC,KAAI,CAAC,UACJ,OAAM,IAAI,MAAM,0BAA0B;CAG3C,MAAM,cAAc,UAAU,YAAY;CAC1C,MAAM,sBAAsB,IAAI,WAAW,IAAI,UAAU,SAAS,YAAY,OAAO;AACrF,qBAAoB,IAAI,CAAC,yBAAyB,iBAAiB,CAAC;AACpE,qBAAoB,IAAI,WAAW,EAAE;AACrC,qBAAoB,IAAI,aAAa,IAAI,UAAU,OAAO;AAC1D,QAAO,SAAS,oBAAoB;;;;;AAMrC,SAAgB,yBAAyB,qBAA6B;CACrE,MAAM,QAAQ,WAAW,oBAAoB;CAE7C,MAAM,kBACL,yBAAyB,MAAM;AAEhC,SAAQ,iBAAR;EACC,KAAK,UACJ,QAAO,gCAAgC,oBAAoB;EAC5D,KAAK,WAEJ,QAAO;GACN;GACA;GACA,UAJgCA,
|
|
1
|
+
{"version":3,"file":"signature.mjs","names":["bcs"],"sources":["../../src/cryptography/signature.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@haneullabs/bcs';\n\nimport { bcs } from '../bcs/index.js';\nimport { parseSerializedPasskeySignature } from '../keypairs/passkey/publickey.js';\nimport type { MultiSigStruct } from '../multisig/publickey.js';\nimport { parseSerializedZkLoginSignature } from '../zklogin/publickey.js';\nimport { parseSerializedKeypairSignature } from './publickey.js';\nimport type { PublicKey } from './publickey.js';\nimport type { SignatureScheme } from './signature-scheme.js';\nimport { SIGNATURE_FLAG_TO_SCHEME, SIGNATURE_SCHEME_TO_FLAG } from './signature-scheme.js';\n\n/**\n * Pair of signature and corresponding public key\n */\nexport type SerializeSignatureInput = {\n\tsignatureScheme: SignatureScheme;\n\t/** Base64-encoded signature */\n\tsignature: Uint8Array;\n\t/** Base64-encoded public key */\n\tpublicKey?: PublicKey;\n};\n\n/**\n * Takes in a signature, its associated signing scheme and a public key, then serializes this data\n */\nexport function toSerializedSignature({\n\tsignature,\n\tsignatureScheme,\n\tpublicKey,\n}: SerializeSignatureInput): string {\n\tif (!publicKey) {\n\t\tthrow new Error('`publicKey` is required');\n\t}\n\n\tconst pubKeyBytes = publicKey.toRawBytes();\n\tconst serializedSignature = new Uint8Array(1 + signature.length + pubKeyBytes.length);\n\tserializedSignature.set([SIGNATURE_SCHEME_TO_FLAG[signatureScheme]]);\n\tserializedSignature.set(signature, 1);\n\tserializedSignature.set(pubKeyBytes, 1 + signature.length);\n\treturn toBase64(serializedSignature);\n}\n\n/**\n * Decodes a serialized signature into its constituent components: the signature scheme, the actual signature, and the public key\n */\nexport function parseSerializedSignature(serializedSignature: string) {\n\tconst bytes = fromBase64(serializedSignature);\n\n\tconst signatureScheme =\n\t\tSIGNATURE_FLAG_TO_SCHEME[bytes[0] as keyof typeof SIGNATURE_FLAG_TO_SCHEME];\n\n\tswitch (signatureScheme) {\n\t\tcase 'Passkey':\n\t\t\treturn parseSerializedPasskeySignature(serializedSignature);\n\t\tcase 'MultiSig':\n\t\t\tconst multisig: MultiSigStruct = bcs.MultiSig.parse(bytes.slice(1));\n\t\t\treturn {\n\t\t\t\tserializedSignature,\n\t\t\t\tsignatureScheme,\n\t\t\t\tmultisig,\n\t\t\t\tbytes,\n\t\t\t\tsignature: undefined,\n\t\t\t};\n\t\tcase 'ZkLogin':\n\t\t\treturn parseSerializedZkLoginSignature(serializedSignature);\n\t\tcase 'ED25519':\n\t\tcase 'Secp256k1':\n\t\tcase 'Secp256r1':\n\t\t\treturn parseSerializedKeypairSignature(serializedSignature);\n\t\tdefault:\n\t\t\tthrow new Error('Unsupported signature scheme');\n\t}\n}\n"],"mappings":";;;;;;;;;;;AA4BA,SAAgB,sBAAsB,EACrC,WACA,iBACA,aACmC;AACnC,KAAI,CAAC,UACJ,OAAM,IAAI,MAAM,0BAA0B;CAG3C,MAAM,cAAc,UAAU,YAAY;CAC1C,MAAM,sBAAsB,IAAI,WAAW,IAAI,UAAU,SAAS,YAAY,OAAO;AACrF,qBAAoB,IAAI,CAAC,yBAAyB,iBAAiB,CAAC;AACpE,qBAAoB,IAAI,WAAW,EAAE;AACrC,qBAAoB,IAAI,aAAa,IAAI,UAAU,OAAO;AAC1D,QAAO,SAAS,oBAAoB;;;;;AAMrC,SAAgB,yBAAyB,qBAA6B;CACrE,MAAM,QAAQ,WAAW,oBAAoB;CAE7C,MAAM,kBACL,yBAAyB,MAAM;AAEhC,SAAQ,iBAAR;EACC,KAAK,UACJ,QAAO,gCAAgC,oBAAoB;EAC5D,KAAK,WAEJ,QAAO;GACN;GACA;GACA,UAJgCA,UAAI,SAAS,MAAM,MAAM,MAAM,EAAE,CAAC;GAKlE;GACA,WAAW;GACX;EACF,KAAK,UACJ,QAAO,gCAAgC,oBAAoB;EAC5D,KAAK;EACL,KAAK;EACL,KAAK,YACJ,QAAO,gCAAgC,oBAAoB;EAC5D,QACC,OAAM,IAAI,MAAM,+BAA+B"}
|
package/dist/faucet/faucet.d.mts
CHANGED
|
@@ -14,12 +14,12 @@ type FaucetFailure = {
|
|
|
14
14
|
internal: string;
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
-
declare function
|
|
17
|
+
declare function requestHaneulFromFaucetV2(input: {
|
|
18
18
|
host: string;
|
|
19
19
|
recipient: string;
|
|
20
20
|
headers?: HeadersInit;
|
|
21
21
|
}): Promise<FaucetResponseV2>;
|
|
22
22
|
declare function getFaucetHost(network: 'testnet' | 'devnet' | 'localnet'): "https://faucet.testnet.haneul.io" | "https://faucet.devnet.haneul.io" | "http://127.0.0.1:9123";
|
|
23
23
|
//#endregion
|
|
24
|
-
export { FaucetRateLimitError, getFaucetHost,
|
|
24
|
+
export { FaucetRateLimitError, getFaucetHost, requestHaneulFromFaucetV2 };
|
|
25
25
|
//# sourceMappingURL=faucet.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faucet.d.mts","names":[],"sources":["../../src/faucet/faucet.ts"],"
|
|
1
|
+
{"version":3,"file":"faucet.d.mts","names":[],"sources":["../../src/faucet/faucet.ts"],"mappings":";cAGa,oBAAA,SAA6B,KAAA;AAAA,KAErC,cAAA;EACJ,MAAA;EACA,EAAA;EACA,gBAAA;AAAA;AAAA,KAGI,gBAAA;EACJ,MAAA,cAAoB,aAAA;EACpB,UAAA,EAAY,cAAA;AAAA;AAAA,KAGR,aAAA;EACJ,OAAA;IACC,QAAA;EAAA;AAAA;AAAA,iBAuCoB,yBAAA,CAA0B,KAAA;EAC/C,IAAA;EACA,SAAA;EACA,OAAA,GAAU,WAAA;AAAA,IACV,OAAA,CAAA,gBAAA;AAAA,iBAoBe,aAAA,CAAc,OAAA"}
|
package/dist/faucet/faucet.mjs
CHANGED
|
@@ -17,7 +17,7 @@ async function faucetRequest({ host, path, body, headers, method }) {
|
|
|
17
17
|
throw new Error(`Encountered error when parsing response from faucet, error: ${e}, status ${res.status}, response ${res}`);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
async function
|
|
20
|
+
async function requestHaneulFromFaucetV2(input) {
|
|
21
21
|
const response = await faucetRequest({
|
|
22
22
|
host: input.host,
|
|
23
23
|
path: "/v2/gas",
|
|
@@ -38,5 +38,5 @@ function getFaucetHost(network) {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
//#endregion
|
|
41
|
-
export { FaucetRateLimitError, getFaucetHost,
|
|
41
|
+
export { FaucetRateLimitError, getFaucetHost, requestHaneulFromFaucetV2 };
|
|
42
42
|
//# sourceMappingURL=faucet.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faucet.mjs","names":[],"sources":["../../src/faucet/faucet.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport class FaucetRateLimitError extends Error {}\n\ntype FaucetCoinInfo = {\n\tamount: number;\n\tid: string;\n\ttransferTxDigest: string;\n};\n\ntype FaucetResponseV2 = {\n\tstatus: 'Success' | FaucetFailure;\n\tcoins_sent: FaucetCoinInfo[] | null;\n};\n\ntype FaucetFailure = {\n\tFailure: {\n\t\tinternal: string;\n\t};\n};\n\ntype FaucetRequest = {\n\thost: string;\n\tpath: string;\n\tbody?: Record<string, any>;\n\theaders?: HeadersInit;\n\tmethod: 'GET' | 'POST';\n};\n\nasync function faucetRequest<T>({ host, path, body, headers, method }: FaucetRequest): Promise<T> {\n\tconst endpoint = new URL(path, host).toString();\n\tconst res = await fetch(endpoint, {\n\t\tmethod,\n\t\tbody: body ? JSON.stringify(body) : undefined,\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...headers,\n\t\t},\n\t});\n\n\tif (res.status === 429) {\n\t\tthrow new FaucetRateLimitError(\n\t\t\t`Too many requests from this client have been sent to the faucet. Please retry later`,\n\t\t);\n\t}\n\n\ttry {\n\t\tconst parsed = await res.json();\n\t\treturn parsed as T;\n\t} catch (e) {\n\t\tthrow new Error(\n\t\t\t`Encountered error when parsing response from faucet, error: ${e}, status ${res.status}, response ${res}`,\n\t\t);\n\t}\n}\n\nexport async function
|
|
1
|
+
{"version":3,"file":"faucet.mjs","names":[],"sources":["../../src/faucet/faucet.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport class FaucetRateLimitError extends Error {}\n\ntype FaucetCoinInfo = {\n\tamount: number;\n\tid: string;\n\ttransferTxDigest: string;\n};\n\ntype FaucetResponseV2 = {\n\tstatus: 'Success' | FaucetFailure;\n\tcoins_sent: FaucetCoinInfo[] | null;\n};\n\ntype FaucetFailure = {\n\tFailure: {\n\t\tinternal: string;\n\t};\n};\n\ntype FaucetRequest = {\n\thost: string;\n\tpath: string;\n\tbody?: Record<string, any>;\n\theaders?: HeadersInit;\n\tmethod: 'GET' | 'POST';\n};\n\nasync function faucetRequest<T>({ host, path, body, headers, method }: FaucetRequest): Promise<T> {\n\tconst endpoint = new URL(path, host).toString();\n\tconst res = await fetch(endpoint, {\n\t\tmethod,\n\t\tbody: body ? JSON.stringify(body) : undefined,\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...headers,\n\t\t},\n\t});\n\n\tif (res.status === 429) {\n\t\tthrow new FaucetRateLimitError(\n\t\t\t`Too many requests from this client have been sent to the faucet. Please retry later`,\n\t\t);\n\t}\n\n\ttry {\n\t\tconst parsed = await res.json();\n\t\treturn parsed as T;\n\t} catch (e) {\n\t\tthrow new Error(\n\t\t\t`Encountered error when parsing response from faucet, error: ${e}, status ${res.status}, response ${res}`,\n\t\t);\n\t}\n}\n\nexport async function requestHaneulFromFaucetV2(input: {\n\thost: string;\n\trecipient: string;\n\theaders?: HeadersInit;\n}) {\n\tconst response = await faucetRequest<FaucetResponseV2>({\n\t\thost: input.host,\n\t\tpath: '/v2/gas',\n\t\tbody: {\n\t\t\tFixedAmountRequest: {\n\t\t\t\trecipient: input.recipient,\n\t\t\t},\n\t\t},\n\t\theaders: input.headers,\n\t\tmethod: 'POST',\n\t});\n\n\tif (response.status !== 'Success') {\n\t\tthrow new Error(`Faucet request failed: ${response.status.Failure.internal}`);\n\t}\n\n\treturn response;\n}\n\nexport function getFaucetHost(network: 'testnet' | 'devnet' | 'localnet') {\n\tswitch (network) {\n\t\tcase 'testnet':\n\t\t\treturn 'https://faucet.testnet.haneul.io';\n\t\tcase 'devnet':\n\t\t\treturn 'https://faucet.devnet.haneul.io';\n\t\tcase 'localnet':\n\t\t\treturn 'http://127.0.0.1:9123';\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown network: ${network}`);\n\t}\n}\n"],"mappings":";AAGA,IAAa,uBAAb,cAA0C,MAAM;AA2BhD,eAAe,cAAiB,EAAE,MAAM,MAAM,MAAM,SAAS,UAAqC;CACjG,MAAM,WAAW,IAAI,IAAI,MAAM,KAAK,CAAC,UAAU;CAC/C,MAAM,MAAM,MAAM,MAAM,UAAU;EACjC;EACA,MAAM,OAAO,KAAK,UAAU,KAAK,GAAG;EACpC,SAAS;GACR,gBAAgB;GAChB,GAAG;GACH;EACD,CAAC;AAEF,KAAI,IAAI,WAAW,IAClB,OAAM,IAAI,qBACT,sFACA;AAGF,KAAI;AAEH,SADe,MAAM,IAAI,MAAM;UAEvB,GAAG;AACX,QAAM,IAAI,MACT,+DAA+D,EAAE,WAAW,IAAI,OAAO,aAAa,MACpG;;;AAIH,eAAsB,0BAA0B,OAI7C;CACF,MAAM,WAAW,MAAM,cAAgC;EACtD,MAAM,MAAM;EACZ,MAAM;EACN,MAAM,EACL,oBAAoB,EACnB,WAAW,MAAM,WACjB,EACD;EACD,SAAS,MAAM;EACf,QAAQ;EACR,CAAC;AAEF,KAAI,SAAS,WAAW,UACvB,OAAM,IAAI,MAAM,0BAA0B,SAAS,OAAO,QAAQ,WAAW;AAG9E,QAAO;;AAGR,SAAgB,cAAc,SAA4C;AACzE,SAAQ,SAAR;EACC,KAAK,UACJ,QAAO;EACR,KAAK,SACJ,QAAO;EACR,KAAK,WACJ,QAAO;EACR,QACC,OAAM,IAAI,MAAM,oBAAoB,UAAU"}
|
package/dist/faucet/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FaucetRateLimitError, getFaucetHost,
|
|
2
|
-
export { FaucetRateLimitError, getFaucetHost,
|
|
1
|
+
import { FaucetRateLimitError, getFaucetHost, requestHaneulFromFaucetV2 } from "./faucet.mjs";
|
|
2
|
+
export { FaucetRateLimitError, getFaucetHost, requestHaneulFromFaucetV2 };
|
package/dist/faucet/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { FaucetRateLimitError, getFaucetHost,
|
|
1
|
+
import { FaucetRateLimitError, getFaucetHost, requestHaneulFromFaucetV2 } from "./faucet.mjs";
|
|
2
2
|
|
|
3
|
-
export { FaucetRateLimitError, getFaucetHost,
|
|
3
|
+
export { FaucetRateLimitError, getFaucetHost, requestHaneulFromFaucetV2 };
|
|
@@ -45,11 +45,24 @@ interface HaneulGraphQLClientOptions<Queries extends Record<string, GraphQLDocum
|
|
|
45
45
|
mvr?: HaneulClientTypes.MvrOptions;
|
|
46
46
|
}
|
|
47
47
|
declare class HaneulGraphQLRequestError extends Error {}
|
|
48
|
-
declare const
|
|
49
|
-
declare function
|
|
48
|
+
declare const HANEUL_CLIENT_BRAND: never;
|
|
49
|
+
declare function isHaneulGraphQLClient(client: unknown): client is HaneulGraphQLClient;
|
|
50
|
+
interface DynamicFieldInclude {
|
|
51
|
+
value?: boolean;
|
|
52
|
+
}
|
|
53
|
+
type DynamicFieldEntryWithValue<Include extends DynamicFieldInclude = {}> = HaneulClientTypes.DynamicFieldEntry & {
|
|
54
|
+
value: Include extends {
|
|
55
|
+
value: true;
|
|
56
|
+
} ? HaneulClientTypes.DynamicFieldValue : undefined;
|
|
57
|
+
};
|
|
58
|
+
interface ListDynamicFieldsWithValueResponse<Include extends DynamicFieldInclude = {}> {
|
|
59
|
+
hasNextPage: boolean;
|
|
60
|
+
cursor: string | null;
|
|
61
|
+
dynamicFields: DynamicFieldEntryWithValue<Include>[];
|
|
62
|
+
}
|
|
50
63
|
declare class HaneulGraphQLClient<Queries extends Record<string, GraphQLDocument> = {}> extends BaseClient implements HaneulClientTypes.TransportMethods {
|
|
51
64
|
#private;
|
|
52
|
-
[
|
|
65
|
+
[HANEUL_CLIENT_BRAND]: boolean;
|
|
53
66
|
core: GraphQLCoreClient;
|
|
54
67
|
get mvr(): HaneulClientTypes.MvrMethods;
|
|
55
68
|
constructor({
|
|
@@ -75,7 +88,9 @@ declare class HaneulGraphQLClient<Queries extends Record<string, GraphQLDocument
|
|
|
75
88
|
waitForTransaction<Include extends HaneulClientTypes.TransactionInclude = {}>(input: HaneulClientTypes.WaitForTransactionOptions<Include>): Promise<HaneulClientTypes.TransactionResult<Include>>;
|
|
76
89
|
simulateTransaction<Include extends HaneulClientTypes.SimulateTransactionInclude = {}>(input: HaneulClientTypes.SimulateTransactionOptions<Include>): Promise<HaneulClientTypes.SimulateTransactionResult<Include>>;
|
|
77
90
|
getReferenceGasPrice(): Promise<HaneulClientTypes.GetReferenceGasPriceResponse>;
|
|
78
|
-
listDynamicFields(input: HaneulClientTypes.ListDynamicFieldsOptions
|
|
91
|
+
listDynamicFields<Include extends DynamicFieldInclude = {}>(input: HaneulClientTypes.ListDynamicFieldsOptions & {
|
|
92
|
+
include?: Include & DynamicFieldInclude;
|
|
93
|
+
}): Promise<ListDynamicFieldsWithValueResponse<Include>>;
|
|
79
94
|
getDynamicField(input: HaneulClientTypes.GetDynamicFieldOptions): Promise<HaneulClientTypes.GetDynamicFieldResponse>;
|
|
80
95
|
getMoveFunction(input: HaneulClientTypes.GetMoveFunctionOptions): Promise<HaneulClientTypes.GetMoveFunctionResponse>;
|
|
81
96
|
resolveTransactionPlugin(): TransactionPlugin;
|
|
@@ -83,5 +98,5 @@ declare class HaneulGraphQLClient<Queries extends Record<string, GraphQLDocument
|
|
|
83
98
|
defaultNameServiceName(input: HaneulClientTypes.DefaultNameServiceNameOptions): Promise<HaneulClientTypes.DefaultNameServiceNameResponse>;
|
|
84
99
|
}
|
|
85
100
|
//#endregion
|
|
86
|
-
export { GraphQLDocument, GraphQLQueryOptions, GraphQLQueryResult, GraphQLResponseErrors, HaneulGraphQLClient, HaneulGraphQLClientOptions, HaneulGraphQLRequestError,
|
|
101
|
+
export { GraphQLDocument, GraphQLQueryOptions, GraphQLQueryResult, GraphQLResponseErrors, HaneulGraphQLClient, HaneulGraphQLClientOptions, HaneulGraphQLRequestError, isHaneulGraphQLClient };
|
|
87
102
|
//# sourceMappingURL=client.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.mts","names":[],"sources":["../../src/graphql/client.ts"],"
|
|
1
|
+
{"version":3,"file":"client.d.mts","names":[],"sources":["../../src/graphql/client.ts"],"mappings":"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"}
|